diff options
Diffstat (limited to 'Building.c')
| -rw-r--r-- | Building.c | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/Building.c b/Building.c new file mode 100644 index 0000000..34be606 --- /dev/null +++ b/Building.c @@ -0,0 +1,81 @@ +/* ************************************** + * Includes * + * **************************************/ + +#include "Building.h" +#include "BarracksSpr.c" + +/* ************************************** + * Defines * + * **************************************/ + +/* ************************************** + * Local variables * + * **************************************/ + +/* Sprites */ +static TYPE_SPRITE BarracksSpr; +static TYPE_SPRITE BarracksShadowSpr; + +/* Tables */ +static uint8_t BuildingHPTable[] = { 100 }; +static TYPE_SPRITE * BuildingSprTable[] = {&BarracksSpr}; +static TYPE_SPRITE * BuildingShadowSprTable[] = {&BarracksShadowSpr}; + +void BuildingInit(void) +{ + BarracksSpr.Data = BarracksSpr_Data; + BarracksSpr.w = GfxGetWidthFromSpriteData(BarracksSpr_Data); + BarracksSpr.h = GfxGetHeightFromSpriteData(BarracksSpr_Data); + BarracksSpr.flip = 0; + BarracksSpr.rotation = 0; + BarracksSpr.color = GFX_BLACK; + + BarracksShadowSpr.Data = BarracksShadowSpr_Data; + BarracksShadowSpr.w = GfxGetWidthFromSpriteData(BarracksShadowSpr_Data); + BarracksShadowSpr.h = GfxGetHeightFromSpriteData(BarracksShadowSpr_Data); + BarracksShadowSpr.flip = 0; + BarracksShadowSpr.rotation = 0; + BarracksShadowSpr.color = GFX_GRAY; + +} + +uint8_t BuildingGetHpFromID(uint8_t id) +{ + return BuildingHPTable[id]; +} + +void BuildingDraw(TYPE_CAMERA * ptrCamera, TYPE_BUILDING * ptrBuilding) +{ + uint8_t id = ptrBuilding->id; + + if(ptrBuilding->built == false) + { + return; + } + + CameraApplyCoordinatesToSprite( ptrCamera, + BuildingShadowSprTable[id], + ptrBuilding->x - 6, + ptrBuilding->y ); + GfxDrawSprite(BuildingShadowSprTable[id]); + + CameraApplyCoordinatesToSprite( ptrCamera, + BuildingSprTable[id], + ptrBuilding->x, + ptrBuilding->y ); + + GfxDrawSprite(&BarracksSpr); + +} + +uint8_t BuildingGetWidthFromID(uint8_t id) +{ + return GfxGetWidthFromSpriteData(BuildingSprTable[id]->Data); +} + +uint8_t BuildingGetHeightFromID(uint8_t id) +{ + return GfxGetHeightFromSpriteData(BuildingSprTable[id]->Data); +} + |
