#include "building.h" #include #include "../game.h" Building * BuildingInit(Game *game, int id, int x, int y){ Sprite *newSprite = SpriteCreate(game->textures, TE_BAUSTELLE, x, y); SpriteListInsert(game->sprites, newSprite); Building *new = malloc(sizeof(Building)); new->sprite = newSprite; new->id = id; new->isBaustelle = 1; new->progress = 0; new->next = 0; new->prev = 0; return new; } BuildingList * BuildingListInit(){ BuildingList *new = malloc(sizeof(BuildingList)); new->head = 0; new->tail = 0; return new; } void BuildingFinishConstruction(Game *game, Building *building){ building->isBaustelle = 0; int textureId = 0; switch(building->id){ case BU_HOUSE: textureId = TE_BUILDING; break; default: printf("WARNING: BUILDINGFINDISHEDCONSTRADJFALKDF AUFGERUFEN MIT UNBEKANNTER ID111!!\n"); } building->sprite->texture = game->textures->textures[textureId]; // Zur Sicherheit. Sollte eigentlich nix ändern, weil texture hmmpf früher bescheid wisse SpriteListSpriteChanged(game->sprites, building->sprite); } void BuildingListPrintForward(BuildingList *buildings){ } void BuildingListInsert(BuildingList *buildings, Building *data){ if(buildings->head == 0){ buildings->head = data; buildings->tail = data; } else{ buildings->tail->next = data; data->prev = buildings->tail; buildings->tail = data; } } void BuildingListRemove(BuildingList *buildings, Building *remove){ if(remove == 0){ printf("WARNING: TRIED TO REMOVE NULLPOINTER\n"); } else if(buildings->head == remove && buildings->tail == remove){ buildings->head = 0; buildings->tail = 0; } else if(buildings->head == remove){ remove->next->prev = 0; buildings->head = remove->next; } else if(buildings->tail == remove){ remove->prev->next = 0; buildings->tail = remove->prev; } else{ remove->prev->next = remove->next; remove->next->prev = remove->prev; } remove->next = 0; remove->prev = 0; }