Place buildings

This commit is contained in:
2023-11-11 07:01:49 +01:00
parent 7513ecc7eb
commit 1908150635
8 changed files with 173 additions and 27 deletions

View File

@@ -100,6 +100,31 @@ static BuildingType getTileBuilding(BzTile tile) {
}
}
static BzTile getBuildingTile(BuildingType type) {
switch (type) {
case BUILDINGS_KEEP: return 0;
case BUILDINGS_GRANARY: return 3;
case BUILDINGS_ARMORY: return 4;
case BUILDINGS_WAREHOUSE: return 5;
case BUILDINGS_MINE: return 6;
case BUILDINGS_BARACKS: return 8;
case BUILDINGS_ORCHARD: return 10;
case BUILDINGS_ANIMAL_FARM: return 12;
case BUILDINGS_PLAYER_RED: return 31;
case BUILDINGS_FLETCHER: return 35;
case BUILDINGS_PLAYER_BLUE: return 63;
case BUILDINGS_SMITHY: return 67;
case BUILDINGS_WORKSHOP: return 72;
case BUILDINGS_FARM: return 74;
case BUILDINGS_ROAD: return 96;
case BUILDINGS_WALL: return 97;
case BUILDINGS_GATEHOUSE: return 98;
case BUILDINGS_TOWER: return 128;
case BUILDINGS_SMALL_TOWER: return 130;
default: return -1;
}
}
static BuildingType getBuildingFromStr(const char *str) {
if (strncmp("keep", str, 4) == 0) return BUILDINGS_KEEP;
if (strncmp("granary", str, 7) == 0) return BUILDINGS_GRANARY;
@@ -122,6 +147,32 @@ static BuildingType getBuildingFromStr(const char *str) {
if (strncmp("small_tower", str, 11) == 0) return BUILDINGS_SMALL_TOWER;
else return BUILDINGS_NONE;
}
static const char *getBuildingStr(BuildingType type) {
switch (type) {
case BUILDINGS_NONE: return "none";
case BUILDINGS_KEEP: return "keep";
case BUILDINGS_GRANARY: return "granary";
case BUILDINGS_ARMORY: return "armory";
case BUILDINGS_WAREHOUSE: return "warehouse";
case BUILDINGS_MINE: return "mine";
case BUILDINGS_BARACKS: return "baracks";
case BUILDINGS_ORCHARD: return "orchard";
case BUILDINGS_ANIMAL_FARM: return "animal_farm";
case BUILDINGS_PLAYER_RED: return "player_red";
case BUILDINGS_FLETCHER: return "fletcher";
case BUILDINGS_PLAYER_BLUE: return "player_blue";
case BUILDINGS_SMITHY: return "smithy";
case BUILDINGS_WORKSHOP: return "workshop";
case BUILDINGS_FARM: return "farm";
case BUILDINGS_ROAD: return "road";
case BUILDINGS_WALL: return "wall";
case BUILDINGS_GATEHOUSE: return "gatehouse";
case BUILDINGS_TOWER: return "tower";
case BUILDINGS_SMALL_TOWER: return "small_tower";
default: return NULL;
}
}
static void getBuildingSize(BuildingType type, BzTile *outWidth, BzTile *outHeight) {
switch (type) {
case BUILDINGS_KEEP: