194 lines
5.7 KiB
C
194 lines
5.7 KiB
C
// This file was generated by: extract_tileset_classes.py
|
|
|
|
#include <breeze.h>
|
|
#include <string.h>
|
|
|
|
|
|
typedef enum BUILDINGS {
|
|
BUILDINGS_NONE,
|
|
BUILDINGS_KEEP,
|
|
BUILDINGS_GRANARY,
|
|
BUILDINGS_ARMORY,
|
|
BUILDINGS_WAREHOUSE,
|
|
BUILDINGS_MINE,
|
|
BUILDINGS_BARACKS,
|
|
BUILDINGS_ORCHARD,
|
|
BUILDINGS_ANIMAL_FARM,
|
|
BUILDINGS_FLETCHER,
|
|
BUILDINGS_SMITHY,
|
|
BUILDINGS_WORKSHOP,
|
|
BUILDINGS_FARM,
|
|
BUILDINGS_ROAD,
|
|
BUILDINGS_WALL,
|
|
BUILDINGS_GATEHOUSE,
|
|
BUILDINGS_TOWER,
|
|
BUILDINGS_SMALL_TOWER,
|
|
BUILDINGS_COUNT
|
|
} BUILDINGS;
|
|
|
|
|
|
static BUILDINGS getTileBuilding(BzTile tile) {
|
|
switch (tile) {
|
|
case 0:
|
|
case 1:
|
|
case 2:
|
|
case 32:
|
|
case 33:
|
|
case 34:
|
|
case 64:
|
|
case 65:
|
|
case 66:
|
|
return BUILDINGS_KEEP;
|
|
case 3:
|
|
return BUILDINGS_GRANARY;
|
|
case 4:
|
|
return BUILDINGS_ARMORY;
|
|
case 5:
|
|
return BUILDINGS_WAREHOUSE;
|
|
case 6:
|
|
case 7:
|
|
case 38:
|
|
case 39:
|
|
return BUILDINGS_MINE;
|
|
case 8:
|
|
case 9:
|
|
case 40:
|
|
case 41:
|
|
return BUILDINGS_BARACKS;
|
|
case 10:
|
|
case 11:
|
|
case 42:
|
|
case 43:
|
|
return BUILDINGS_ORCHARD;
|
|
case 12:
|
|
case 13:
|
|
case 44:
|
|
case 45:
|
|
return BUILDINGS_ANIMAL_FARM;
|
|
case 35:
|
|
case 36:
|
|
return BUILDINGS_FLETCHER;
|
|
case 67:
|
|
case 68:
|
|
return BUILDINGS_SMITHY;
|
|
case 72:
|
|
case 73:
|
|
return BUILDINGS_WORKSHOP;
|
|
case 74:
|
|
return BUILDINGS_FARM;
|
|
case 96:
|
|
return BUILDINGS_ROAD;
|
|
case 97:
|
|
return BUILDINGS_WALL;
|
|
case 98:
|
|
return BUILDINGS_GATEHOUSE;
|
|
case 128:
|
|
case 129:
|
|
case 160:
|
|
case 161:
|
|
return BUILDINGS_TOWER;
|
|
case 130:
|
|
return BUILDINGS_SMALL_TOWER;
|
|
default:
|
|
return BUILDINGS_NONE;
|
|
}
|
|
}
|
|
|
|
static BUILDINGS getBuildingFromStr(const char *str) {
|
|
if (strncmp("keep", str, 4) == 0) return BUILDINGS_KEEP;
|
|
if (strncmp("granary", str, 7) == 0) return BUILDINGS_GRANARY;
|
|
if (strncmp("armory", str, 6) == 0) return BUILDINGS_ARMORY;
|
|
if (strncmp("warehouse", str, 9) == 0) return BUILDINGS_WAREHOUSE;
|
|
if (strncmp("mine", str, 4) == 0) return BUILDINGS_MINE;
|
|
if (strncmp("baracks", str, 7) == 0) return BUILDINGS_BARACKS;
|
|
if (strncmp("orchard", str, 7) == 0) return BUILDINGS_ORCHARD;
|
|
if (strncmp("animal_farm", str, 11) == 0) return BUILDINGS_ANIMAL_FARM;
|
|
if (strncmp("fletcher", str, 8) == 0) return BUILDINGS_FLETCHER;
|
|
if (strncmp("smithy", str, 6) == 0) return BUILDINGS_SMITHY;
|
|
if (strncmp("workshop", str, 8) == 0) return BUILDINGS_WORKSHOP;
|
|
if (strncmp("farm", str, 4) == 0) return BUILDINGS_FARM;
|
|
if (strncmp("road", str, 4) == 0) return BUILDINGS_ROAD;
|
|
if (strncmp("wall", str, 4) == 0) return BUILDINGS_WALL;
|
|
if (strncmp("gatehouse", str, 9) == 0) return BUILDINGS_GATEHOUSE;
|
|
if (strncmp("tower", str, 5) == 0) return BUILDINGS_TOWER;
|
|
if (strncmp("small_tower", str, 11) == 0) return BUILDINGS_SMALL_TOWER;
|
|
else return BUILDINGS_NONE;
|
|
}
|
|
static void getBuildingSize(BUILDINGS type, BzTile *outWidth, BzTile *outHeight) {
|
|
switch (type) {
|
|
case BUILDINGS_KEEP:
|
|
if (outWidth) *outWidth = 3;
|
|
if (outHeight) *outHeight = 3;
|
|
break;
|
|
case BUILDINGS_GRANARY:
|
|
if (outWidth) *outWidth = 1;
|
|
if (outHeight) *outHeight = 1;
|
|
break;
|
|
case BUILDINGS_ARMORY:
|
|
if (outWidth) *outWidth = 1;
|
|
if (outHeight) *outHeight = 1;
|
|
break;
|
|
case BUILDINGS_WAREHOUSE:
|
|
if (outWidth) *outWidth = 1;
|
|
if (outHeight) *outHeight = 1;
|
|
break;
|
|
case BUILDINGS_MINE:
|
|
if (outWidth) *outWidth = 2;
|
|
if (outHeight) *outHeight = 2;
|
|
break;
|
|
case BUILDINGS_BARACKS:
|
|
if (outWidth) *outWidth = 2;
|
|
if (outHeight) *outHeight = 2;
|
|
break;
|
|
case BUILDINGS_ORCHARD:
|
|
if (outWidth) *outWidth = 2;
|
|
if (outHeight) *outHeight = 2;
|
|
break;
|
|
case BUILDINGS_ANIMAL_FARM:
|
|
if (outWidth) *outWidth = 2;
|
|
if (outHeight) *outHeight = 2;
|
|
break;
|
|
case BUILDINGS_FLETCHER:
|
|
if (outWidth) *outWidth = 2;
|
|
if (outHeight) *outHeight = 1;
|
|
break;
|
|
case BUILDINGS_SMITHY:
|
|
if (outWidth) *outWidth = 2;
|
|
if (outHeight) *outHeight = 1;
|
|
break;
|
|
case BUILDINGS_WORKSHOP:
|
|
if (outWidth) *outWidth = 2;
|
|
if (outHeight) *outHeight = 1;
|
|
break;
|
|
case BUILDINGS_FARM:
|
|
if (outWidth) *outWidth = 1;
|
|
if (outHeight) *outHeight = 1;
|
|
break;
|
|
case BUILDINGS_ROAD:
|
|
if (outWidth) *outWidth = 1;
|
|
if (outHeight) *outHeight = 1;
|
|
break;
|
|
case BUILDINGS_WALL:
|
|
if (outWidth) *outWidth = 1;
|
|
if (outHeight) *outHeight = 1;
|
|
break;
|
|
case BUILDINGS_GATEHOUSE:
|
|
if (outWidth) *outWidth = 1;
|
|
if (outHeight) *outHeight = 1;
|
|
break;
|
|
case BUILDINGS_TOWER:
|
|
if (outWidth) *outWidth = 2;
|
|
if (outHeight) *outHeight = 2;
|
|
break;
|
|
case BUILDINGS_SMALL_TOWER:
|
|
if (outWidth) *outWidth = 1;
|
|
if (outHeight) *outHeight = 1;
|
|
break;
|
|
default:
|
|
if (outWidth) *outWidth = 0;
|
|
if (outHeight) *outHeight = 0;
|
|
break;
|
|
}
|
|
}
|
|
|