|
|
|
@ -69,6 +69,25 @@ enum TileLayoutFlags {
|
|
|
|
|
};
|
|
|
|
|
DECLARE_ENUM_AS_BIT_SET(TileLayoutFlags)
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Determines which sprite to use from a spriteset for a specific construction stage.
|
|
|
|
|
* @param construction_stage Construction stage 0 - 3.
|
|
|
|
|
* @param num_sprites Number of available sprites to select stage from.
|
|
|
|
|
* @return Sprite to use
|
|
|
|
|
*/
|
|
|
|
|
static inline uint GetConstructionStageOffset(uint construction_stage, uint num_sprites)
|
|
|
|
|
{
|
|
|
|
|
assert(num_sprites > 0);
|
|
|
|
|
if (num_sprites > 4) num_sprites = 4;
|
|
|
|
|
switch (construction_stage) {
|
|
|
|
|
case 0: return 0;
|
|
|
|
|
case 1: return num_sprites > 2 ? 1 : 0;
|
|
|
|
|
case 2: return num_sprites > 2 ? num_sprites - 2 : 0;
|
|
|
|
|
case 3: return num_sprites - 1;
|
|
|
|
|
default: NOT_REACHED();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Additional modifiers for items in sprite layouts.
|
|
|
|
|
*/
|
|
|
|
|