From 3cf174942b5665e408512d7885d26b86be9f5aef Mon Sep 17 00:00:00 2001 From: johns <> Date: Thu, 6 Apr 2000 22:06:02 +0000 Subject: [PATCH] Old animations removed, now in the UnitType struct. --- action/action_die.cpp | 8 +- action/action_minegold.cpp | 12 +- action/action_stand.cpp | 20 ++- action/action_still.cpp | 178 +++---------------------- include/unittype.h | 7 +- unit/script_unittype.cpp | 10 +- unit/ut_table.cpp | 261 ++++++++++++++++++++++--------------- 7 files changed, 207 insertions(+), 289 deletions(-) diff --git a/action/action_die.cpp b/action/action_die.cpp index 6cb52a4d7..152d165f1 100644 --- a/action/action_die.cpp +++ b/action/action_die.cpp @@ -155,6 +155,8 @@ global char UnitCorpse[UnitTypeInternalMax] = { #endif +extern Animation ** UnitCorpse; + /** ** Unit dies! ** @@ -180,8 +182,8 @@ global int HandleActionDie(Unit* unit) break; default: - if( type<UnitTypeInternalMax && UnitDie[type] ) { - UnitShowAnimation(unit,UnitDie[type]); + if( unit->Type->Animations ) { + UnitShowAnimation(unit,unit->Type->Animations->Die); } else { DebugLevel0("FIXME: die animation missing\n"); unit->Reset=1; @@ -201,7 +203,7 @@ global int HandleActionDie(Unit* unit) return 1; } unit->SubAction=type; - unit->Type=&UnitTypes[UnitDeadBody]; + unit->Type=UnitTypeByIdent("unit-dead-body"); unit->Frame=0; unit->State=0; unit->Reset=0; diff --git a/action/action_minegold.cpp b/action/action_minegold.cpp index a62215cd5..be1529958 100644 --- a/action/action_minegold.cpp +++ b/action/action_minegold.cpp @@ -167,8 +167,10 @@ local int MineInGoldmine(Unit* unit) } else if( unit->Type->Type==UnitPeasant ) { unit->Type=&UnitTypes[UnitPeasantWithGold]; } else { - DebugLevel0("Wrong unit for mining gold %d\n" - ,unit->Type->Type); + DebugLevel0("Wrong unit (%d,%d) for mining gold %d (%s)\n" + ,unit->X,unit->Y + ,unit->Type->Type + ,unit->Type->Name); } if( UnitVisible(unit) ) { MustRedraw|=RedrawMap; @@ -283,8 +285,10 @@ global void HandleActionMineGold(Unit* unit) } else if( unit->Type->Type==UnitPeasantWithGold ) { unit->Type=&UnitTypes[UnitPeasant]; } else { - DebugLevel0("Wrong unit for returning gold %d\n" - ,unit->Type->Type); + DebugLevel0("Wrong unit (%d,%d) for returning gold %d (%s)\n" + ,unit->X,unit->Y + ,unit->Type->Type + ,unit->Type->Name); } if( WAIT_FOR_GOLD<UNIT_MAX_WAIT ) { diff --git a/action/action_stand.cpp b/action/action_stand.cpp index b0249561c..b01a6ecaa 100644 --- a/action/action_stand.cpp +++ b/action/action_stand.cpp @@ -17,6 +17,10 @@ //@{ +/*---------------------------------------------------------------------------- +-- Includes +----------------------------------------------------------------------------*/ + #include <stdio.h> #include <stdlib.h> @@ -33,9 +37,9 @@ #include "sound_server.h" #include "missile.h" -#ifndef USE_CCL2 -extern Animation* UnitStillAnimation[UnitTypeInternalMax]; -#endif +/*---------------------------------------------------------------------------- +-- Functions +----------------------------------------------------------------------------*/ /** ** Unit stands ground! @@ -60,10 +64,9 @@ global void HandleActionStandGround(Unit* unit) // // Still animation // - DebugCheck( type->Type>=UnitTypeInternalMax - || !UnitStillAnimation[type->Type] ); + DebugCheck( !type->Animations || !type->Animations->Still ); - UnitShowAnimation(unit,UnitStillAnimation[type->Type]); + UnitShowAnimation(unit,type->Animations->Still); // // FIXME: this a workaround of a bad code. @@ -83,7 +86,7 @@ global void HandleActionStandGround(Unit* unit) } // - // Building: burning + // Building: burning FIXME: must moved to general point // if( type->Building ) { if( unit->HP ) { @@ -112,6 +115,8 @@ global void HandleActionStandGround(Unit* unit) } } +#if 0 + // JOHNS: critters removed here // // Critters: are moving random around. // @@ -160,6 +165,7 @@ global void HandleActionStandGround(Unit* unit) } } +#endif // // Workers and mage didn't attack automatic diff --git a/action/action_still.cpp b/action/action_still.cpp index b67e07026..50dcb8272 100644 --- a/action/action_still.cpp +++ b/action/action_still.cpp @@ -17,6 +17,10 @@ //@{ +/*---------------------------------------------------------------------------- +-- Includes +----------------------------------------------------------------------------*/ + #include <stdio.h> #include <stdlib.h> @@ -33,166 +37,16 @@ #include "sound_server.h" #include "missile.h" -#ifndef USE_CCL2 /*---------------------------------------------------------------------------- --- Still +-- Functions ----------------------------------------------------------------------------*/ -// Gryphon rider, Kurdan and Sky'ree: -local Animation GryphonRiderStill[] = { - {2, 0, 6, 0}, {2, 0, 6, 5}, {2, 0, 6, 5}, {3, 0, 6, 5} -}; - -// Dragon, Deathwing: -local Animation DragonStill[] = { - {2, 0, 6, 0}, {2, 0, 6, 5}, {2, 0, 6, 5}, {3, 0, 6, 5} -}; - -// GnomishFlyingMachine: -local Animation GnomishFlyingMachineStill[] = { - {2, 0, 1, 0}, {2, 0, 1, 5}, {2, 0, 1, 0}, {3, 0, 1,-5} -}; - -// Daemon: -local Animation DaemonStill[] = { - {2, 0, 4, 0}, {2, 0, 4, 5}, {2, 0, 4, 5}, {3, 0, 4, 5} -}; - -// Default: -local Animation DefaultStill[] = { -// FIXME: Reset frame 0, wait 1, than endless wait 5 - {0, 0, 4, 0}, {3, 0, 1, 0} -}; - -/* -** Still animation. FIXME: move this to unit-type, CCL configurable -*/ -global Animation* UnitStillAnimation[UnitTypeInternalMax] = { - DefaultStill, // UnitFootman - DefaultStill, // UnitGrunt - DefaultStill, // UnitPeasant - DefaultStill, // UnitPeon - DefaultStill, // UnitBallista - DefaultStill, // UnitCatapult - DefaultStill, // UnitKnight - DefaultStill, // UnitOgre - DefaultStill, // UnitArcher - DefaultStill, // UnitAxethrower - DefaultStill, // UnitMage - DefaultStill, // UnitDeathKnight - DefaultStill, // UnitPaladin - DefaultStill, // UnitOgreMage - DefaultStill, // UnitDwarves - DefaultStill, // UnitGoblinSappers - DefaultStill, // UnitAttackPeasant - DefaultStill, // UnitAttackPeon - DefaultStill, // UnitRanger - DefaultStill, // UnitBerserker - DefaultStill, // UnitAlleria - DefaultStill, // UnitTeronGorefiend - GryphonRiderStill, // UnitKurdanAndSky_ree - DefaultStill, // UnitDentarg - DefaultStill, // UnitKhadgar - DefaultStill, // UnitGromHellscream - DefaultStill, // UnitTankerHuman - DefaultStill, // UnitTankerOrc - DefaultStill, // UnitTransportHuman - DefaultStill, // UnitTransportOrc - DefaultStill, // UnitElvenDestroyer - DefaultStill, // UnitTrollDestroyer - DefaultStill, // UnitBattleship - DefaultStill, // UnitJuggernaught - DefaultStill, // UnitNothing - DragonStill, // UnitDeathwing - DefaultStill, // UnitNothing1 - DefaultStill, // UnitNothing2 - DefaultStill, // UnitGnomishSubmarine - DefaultStill, // UnitGiantTurtle - GnomishFlyingMachineStill, // UnitGnomishFlyingMachine - DefaultStill, // UnitGoblinZeppelin - GryphonRiderStill, // UnitGryphonRider - DragonStill, // UnitDragon - DefaultStill, // UnitTuralyon - DefaultStill, // UnitEyeOfKilrogg - DefaultStill, // UnitDanath - DefaultStill, // UnitKorgathBladefist - DefaultStill, // UnitNothing3 - DefaultStill, // UnitCho_gall - DefaultStill, // UnitLothar - DefaultStill, // UnitGul_dan - DefaultStill, // UnitUtherLightbringer - DefaultStill, // UnitZuljin - DefaultStill, // UnitNothing4 - DefaultStill, // UnitSkeleton - DaemonStill, // UnitDaemon - DefaultStill, // UnitCritter - DefaultStill, // UnitFarm - DefaultStill, // UnitPigFarm - DefaultStill, // UnitBarracksHuman - DefaultStill, // UnitBarracksOrc - DefaultStill, // UnitChurch - DefaultStill, // UnitAltarOfStorms - DefaultStill, // UnitScoutTowerHuman - DefaultStill, // UnitScoutTowerOrc - DefaultStill, // UnitStables - DefaultStill, // UnitOgreMound - DefaultStill, // UnitGnomishInventor - DefaultStill, // UnitGoblinAlchemist - DefaultStill, // UnitGryphonAviary - DefaultStill, // UnitDragonRoost - DefaultStill, // UnitShipyardHuman - DefaultStill, // UnitShipyardOrc - DefaultStill, // UnitTownHall - DefaultStill, // UnitGreatHall - DefaultStill, // UnitElvenLumberMill - DefaultStill, // UnitTrollLumberMill - DefaultStill, // UnitFoundryHuman - DefaultStill, // UnitFoundryOrc - DefaultStill, // UnitMageTower - DefaultStill, // UnitTempleOfTheDamned - DefaultStill, // UnitBlacksmithHuman - DefaultStill, // UnitBlacksmithOrc - DefaultStill, // UnitRefineryHuman - DefaultStill, // UnitRefineryOrc - DefaultStill, // UnitOilPlatformHuman - DefaultStill, // UnitOilPlatformOrc - DefaultStill, // UnitKeep - DefaultStill, // UnitStronghold - DefaultStill, // UnitCastle - DefaultStill, // UnitFortress - DefaultStill, // UnitGoldMine - DefaultStill, // UnitOilPatch - DefaultStill, // UnitStartLocationHuman - DefaultStill, // UnitStartLocationOrc - DefaultStill, // UnitGuardTowerHuman - DefaultStill, // UnitGuardTowerOrc - DefaultStill, // UnitCannonTowerHuman - DefaultStill, // UnitCannonTowerOrc - DefaultStill, // UnitCircleofPower - DefaultStill, // UnitDarkPortal - DefaultStill, // UnitRunestone - DefaultStill, // UnitWallHuman - DefaultStill, // UnitWallOrc - DefaultStill, // UnitDeadBody - DefaultStill, // Unit1x1DestroyedPlace - DefaultStill, // Unit2x2DestroyedPlace - DefaultStill, // Unit3x3DestroyedPlace - DefaultStill, // Unit4x4DestroyedPlace - DefaultStill, // UnitPeonWithGold - DefaultStill, // UnitPeasantWithGold - DefaultStill, // UnitPeonWithWood - DefaultStill, // UnitPeasantWithWood - DefaultStill, // UnitTankerHumanFull - DefaultStill, // UnitTankerOrcFull -}; -#endif - /** ** Unit stands still! */ global void HandleActionStill(Unit* unit) { - UnitType* type; + const UnitType* type; Unit* goal; DebugLevel3(__FUNCTION__": %Zd\n",UnitNumber(unit)); @@ -208,10 +62,9 @@ global void HandleActionStill(Unit* unit) // // Still animation // - DebugCheck( type->Type>=UnitTypeInternalMax - || !UnitStillAnimation[type->Type] ); + DebugCheck( !type->Animations || !type->Animations->Still ); - UnitShowAnimation(unit,UnitStillAnimation[type->Type]); + UnitShowAnimation(unit,type->Animations->Still); // // FIXME: this a workaround of a bad code. @@ -226,12 +79,12 @@ global void HandleActionStill(Unit* unit) } - if( !unit->Reset ) { // animation can't be aborted + if( !unit->Reset ) { // animation can't be aborted here return; } // - // Building: burning + // Building: burning FIXME: must moved to general point // if( type->Building ) { if( unit->HP ) { @@ -274,9 +127,15 @@ global void HandleActionStill(Unit* unit) // // Critters: are moving random around. // + // FIXME: critters: skeleton and daemon are also critters?????? if( type->Critter ) { - // FIXME: critters: skeleton and daemon are also critters?????? - if( type->Type==UnitCritter ) { + static const UnitType* critter; + + if( !critter ) { + // FIXME: remove or move the by ident, it is to slow! + critter=UnitTypeByIdent("unit-critter"); + } + if( type==critter ) { int x; int y; @@ -306,6 +165,7 @@ global void HandleActionStill(Unit* unit) } if( x!=unit->X || y!=unit->Y ) { // FIXME: Don't use pathfinder for this. + // FIXME: atleast prove the field is free. unit->Command.Action=UnitActionMove; unit->Command.Data.Move.Fast=1; unit->Command.Data.Move.Goal=NoUnitP; diff --git a/include/unittype.h b/include/unittype.h index 7193e7e9d..1797f81f9 100644 --- a/include/unittype.h +++ b/include/unittype.h @@ -341,14 +341,9 @@ struct _unit_type_ { ----------------------------------------------------------------------------*/ extern char UnitTypeType[]; /// unit type type +// FIXME: this limit must be removed! extern UnitType UnitTypes[UnitTypeInternalMax]; /// all unit types -#ifdef USE_CCL2 -extern Animation ** UnitDie; -extern Animation ** UnitCorpse; -extern Animation ** UnitStillAnimation; -#endif - /*---------------------------------------------------------------------------- -- Functions ----------------------------------------------------------------------------*/ diff --git a/unit/script_unittype.cpp b/unit/script_unittype.cpp index 596bf62e4..c2061d35b 100644 --- a/unit/script_unittype.cpp +++ b/unit/script_unittype.cpp @@ -650,9 +650,7 @@ local Animation * GetSingleAnimation(SCM list){ } -global Animation ** UnitDie; global Animation ** UnitCorpse; -global Animation ** UnitStillAnimation; /** ** Get animation data @@ -682,16 +680,17 @@ local SCM CclAnimType(SCM list) switch( type ){ case 0: - UnitStillAnimation = whole_animation; for( i=0; i<UnitTypeInternalMax; ++i ) { unittype=UnitTypeByWcNum(i); if( !unittype->Animations ) { unittype->Animations=calloc(sizeof(*unittype->Animations),1); } + // FIXME: animations are shared? CclFree(unittype->Animations->Still); unittype->Animations->Still=whole_animation[i]; } DebugLevel2("Loading UnitStillAnimation\n"); + free(whole_animation); break; case 1: for( i=0; i<UnitTypeInternalMax; ++i ) { @@ -703,9 +702,9 @@ local SCM CclAnimType(SCM list) unittype->Animations->Move=whole_animation[i]; } DebugLevel2("Loading UnitMoveAnimation\n"); + free(whole_animation); break; case 2: - UnitDie = whole_animation; for( i=0; i<UnitTypeInternalMax; ++i ) { unittype=UnitTypeByWcNum(i); if( !unittype->Animations ) { @@ -715,6 +714,7 @@ local SCM CclAnimType(SCM list) unittype->Animations->Die=whole_animation[i]; } DebugLevel2("Loading UnitDie\n"); + free(whole_animation); break; case 3: UnitCorpse = whole_animation; @@ -737,9 +737,11 @@ local SCM CclAnimType(SCM list) unittype->Animations->Attack=whole_animation[i]; } DebugLevel2("Loading UnitAttack\n"); + free(whole_animation); break; default: DebugLevel1(__FUNCTION__":Unknown unit-type %d\n",type); + free(whole_animation); break; } return list; diff --git a/unit/ut_table.cpp b/unit/ut_table.cpp index 6bbf4fb80..6b4b0ea9e 100644 --- a/unit/ut_table.cpp +++ b/unit/ut_table.cpp @@ -84,7 +84,7 @@ local ButtonConfig _FootmanButtons[] = { #define _KurdanAndSky_reeButtons NULL #define _DentargButtons NULL #define _KhadgarButtons NULL -#define _GnomHellscreamButtons NULL +#define _GromHellscreamButtons NULL #define _TankerHumanButtons NULL #define _TankerOrcButtons NULL #define _TransportHumanButtons NULL @@ -182,12 +182,36 @@ local ButtonConfig _FootmanButtons[] = { -- Animations ----------------------------------------------------------------------------*/ -/// Default: -local Animation _DefaultStill[] = { +/*---------------------------------------------------------------------------- +-- Still +----------------------------------------------------------------------------*/ + +// Default: +local Animation DefaultStill[] = { // FIXME: Reset frame 0, wait 1, than endless wait 5 {0, 0, 4, 0}, {3, 0, 1, 0} }; +// Gryphon rider, Kurdan and Sky'ree: +local Animation GryphonRiderStill[] = { + {2, 0, 6, 0}, {2, 0, 6, 5}, {2, 0, 6, 5}, {3, 0, 6, 5} +}; + +// Dragon, Deathwing: +local Animation DragonStill[] = { + {2, 0, 6, 0}, {2, 0, 6, 5}, {2, 0, 6, 5}, {3, 0, 6, 5} +}; + +// GnomishFlyingMachine: +local Animation GnomishFlyingMachineStill[] = { + {2, 0, 1, 0}, {2, 0, 1, 5}, {2, 0, 1, 0}, {3, 0, 1,-5} +}; + +// Daemon: +local Animation DaemonStill[] = { + {2, 0, 4, 0}, {2, 0, 4, 5}, {2, 0, 4, 5}, {3, 0, 4, 5} +}; + /*---------------------------------------------------------------------------- -- Move Table ----------------------------------------------------------------------------*/ @@ -705,7 +729,7 @@ local Animation DestroyedWaterSiteDie[] = { #define FootmanAnimations GruntAnimations /// Footman,Grunt,Grom Hellscream,Danath,Korgath Bladefist local Animations GruntAnimations[] = { -{ _DefaultStill, +{ DefaultStill, GruntMove, GruntAttack, GruntDie, @@ -715,7 +739,7 @@ local Animations GruntAnimations[] = { #define PeasantAnimations PeonAnimations // Peon, Peasant, Attacking Peon, Attacking Peasant. local Animations PeonAnimations[] = { -{ NULL, +{ DefaultStill, PeonMove, PeonAttack, PeonDie, @@ -723,7 +747,7 @@ local Animations PeonAnimations[] = { }; local Animations BallistaAnimations[] = { -{ NULL, +{ DefaultStill, BallistaMove, BallistaAttack, NULL, @@ -731,7 +755,7 @@ local Animations BallistaAnimations[] = { }; local Animations CatapultAnimations[] = { -{ NULL, +{ DefaultStill, CatapultMove, CatapultAttack, NULL, @@ -739,49 +763,49 @@ local Animations CatapultAnimations[] = { }; local Animations KnightAnimations[] = { -{ NULL, +{ DefaultStill, KnightMove, - NULL, + KnightAttack, KnightDie, NULL } }; local Animations OgreAnimations[] = { -{ NULL, +{ DefaultStill, OgreMove, - NULL, + OgreAttack, OgreDie, NULL } }; local Animations ArcherAnimations[] = { -{ NULL, +{ DefaultStill, ArcherMove, - NULL, + ArcherAttack, ArcherDie, NULL } }; local Animations AxethrowerAnimations[] = { -{ NULL, +{ DefaultStill, AxethrowerMove, - NULL, + AxethrowerAttack, AxethrowerDie, NULL } }; local Animations MageAnimations[] = { -{ NULL, +{ DefaultStill, MageMove, - NULL, + MageAttack, MageDie, NULL } }; local Animations DeathKnightAnimations[] = { -{ NULL, +{ DefaultStill, DeathKnightMove, - NULL, + DeathKnightAttack, DeathKnightDie, NULL } }; @@ -790,17 +814,17 @@ local Animations DeathKnightAnimations[] = { #define OgreMageAnimations OgreAnimations local Animations DwarvesAnimations[] = { -{ NULL, +{ DefaultStill, DwarvesMove, - NULL, + DwarvesAttack, DwarvesDie, NULL } }; local Animations GoblinSappersAnimations[] = { -{ NULL, +{ DefaultStill, GoblinSappersMove, - NULL, + GoblinSappersAttack, GoblinSappersDie, NULL } }; @@ -813,43 +837,43 @@ local Animations GoblinSappersAnimations[] = { #define AlleriaAnimations ArcherAnimations #define TeronGorefiendAnimations DeathKnightAnimations -#define KurdanAndSky_reeAnimations NULL -#define DentargAnimations NULL -#define KhadgarAnimations NULL -#define GnomHellscreamAnimations NULL +#define KurdanAndSky_reeAnimations GryphonRiderAnimations +#define DentargAnimations OgreAnimations +#define KhadgarAnimations MageAnimations +#define GromHellscreamAnimations GruntAnimations #define TankerHumanAnimations TankerOrcAnimations local Animations TankerOrcAnimations[] = { -{ NULL, +{ DefaultStill, TankerMove, - NULL, + TankerAttack, TankerDie, NULL } }; #define TransportHumanAnimations TransportOrcAnimations local Animations TransportOrcAnimations[] = { -{ NULL, +{ DefaultStill, TransportMove, - NULL, + TransportAttack, TransportDie, NULL } }; #define ElvenDestroyerAnimations TrollDestroyerAnimations local Animations TrollDestroyerAnimations[] = { -{ NULL, +{ DefaultStill, DestroyerMove, - NULL, + DestroyerAttack, DestroyerDie, NULL } }; #define BattleshipAnimations JuggernaughtAnimations local Animations JuggernaughtAnimations[] = { -{ NULL, +{ DefaultStill, BattleshipMove, - NULL, + BattleshipAttack, BattleshipDie, NULL } }; @@ -862,41 +886,41 @@ local Animations JuggernaughtAnimations[] = { #define GnomishSubmarineAnimations GiantTurtleAnimations local Animations GiantTurtleAnimations[] = { -{ NULL, +{ DefaultStill, SubmarineMove, - NULL, + SubmarineAttack, SubmarineDie, NULL } }; local Animations GnomishFlyingMachineAnimations[] = { -{ NULL, +{ GnomishFlyingMachineStill, GnomishFlyingMachineMove, - NULL, + GnomishFlyingMachineAttack, GnomishFlyingMachineDie, NULL } }; local Animations GoblinZeppelinAnimations[] = { -{ NULL, +{ DefaultStill, GoblinZeppelinMove, - NULL, + GoblinZeppelinAttack, NULL, NULL } }; local Animations GryphonRiderAnimations[] = { -{ NULL, +{ GryphonRiderStill, GryphonRiderMove, - NULL, + GryphonRiderAttack, GryphonRiderDie, NULL } }; local Animations DragonAnimations[] = { -{ NULL, +{ DragonStill, DragonMove, - NULL, + DragonAttack, DragonDie, NULL } }; @@ -904,9 +928,9 @@ local Animations DragonAnimations[] = { #define TuralyonAnimations KnightAnimations local Animations EyeOfKilroggAnimations[] = { -{ NULL, +{ DefaultStill, EyeOfKilroggMove, - NULL, + EyeOfKilroggAttack, NULL, NULL } }; @@ -922,81 +946,106 @@ local Animations EyeOfKilroggAnimations[] = { #define Nothing4Animations NULL local Animations SkeletonAnimations[] = { -{ NULL, +{ DefaultStill, SkeletonMove, - NULL, + SkeletonAttack, SkeletonDie, NULL } }; local Animations DaemonAnimations[] = { -{ NULL, +{ DaemonStill, DaemonMove, - NULL, + DaemonAttack, DaemonDie, NULL } }; local Animations CritterAnimations[] = { -{ NULL, +{ DefaultStill, CritterMove, - NULL, + CritterAttack, CritterDie, NULL } }; -#define FarmAnimations NULL -#define PigFarmAnimations NULL -#define BarracksHumanAnimations NULL -#define BarracksOrcAnimations NULL -#define ChurchAnimations NULL -#define AltarOfStormsAnimations NULL -#define ScoutTowerHumanAnimations NULL -#define ScoutTowerOrcAnimations NULL -#define StablesAnimations NULL -#define OgreMoundAnimations NULL -#define GnomishInventorAnimations NULL -#define GoblinAlchemistAnimations NULL -#define GryphonAviaryAnimations NULL -#define DragonRoostAnimations NULL -#define ShipyardHumanAnimations NULL -#define ShipyardOrcAnimations NULL -#define TownHallAnimations NULL -#define GreatHallAnimations NULL -#define ElvenLumberMillAnimations NULL -#define TrollLumberMillAnimations NULL -#define FoundryHumanAnimations NULL -#define FoundryOrcAnimations NULL -#define MageTowerAnimations NULL -#define TempleOfTheDamnedAnimations NULL -#define BlacksmithHumanAnimations NULL -#define BlacksmithOrcAnimations NULL -#define RefineryHumanAnimations NULL -#define RefineryOrcAnimations NULL -#define OilPlatformHumanAnimations NULL -#define OilPlatformOrcAnimations NULL -#define KeepAnimations NULL -#define StrongholdAnimations NULL -#define CastleAnimations NULL -#define FortressAnimations NULL -#define GoldMineAnimations NULL -#define OilPatchAnimations NULL -#define StartLocationHumanAnimations NULL -#define StartLocationOrcAnimations NULL -#define GuardTowerHumanAnimations NULL -#define GuardTowerOrcAnimations NULL -#define CannonTowerHumanAnimations NULL -#define CannonTowerOrcAnimations NULL -#define CircleofPowerAnimations NULL -#define DarkPortalAnimations NULL -#define RunestoneAnimations NULL -#define WallHumanAnimations NULL -#define WallOrcAnimations NULL -#define DeadBodyAnimations NULL -#define Destroyed1x1PlaceAnimations NULL -#define Destroyed2x2PlaceAnimations NULL -#define Destroyed3x3PlaceAnimations NULL -#define Destroyed4x4PlaceAnimations NULL +local Animations BuildingAnimations[] = { +{ DefaultStill, + NULL, + NULL, + NULL, + NULL } +}; + +local Animations GuardTowerAnimations[] = { +{ DefaultStill, + NULL, + GuardTowerAttack, + NULL, + NULL } +}; + +local Animations CannonTowerAnimations[] = { +{ DefaultStill, + NULL, + CannonTowerAttack, + NULL, + NULL } +}; + +#define FarmAnimations BuildingAnimations +#define PigFarmAnimations BuildingAnimations +#define BarracksHumanAnimations BuildingAnimations +#define BarracksOrcAnimations BuildingAnimations +#define ChurchAnimations BuildingAnimations +#define AltarOfStormsAnimations BuildingAnimations +#define ScoutTowerHumanAnimations BuildingAnimations +#define ScoutTowerOrcAnimations BuildingAnimations +#define StablesAnimations BuildingAnimations +#define OgreMoundAnimations BuildingAnimations +#define GnomishInventorAnimations BuildingAnimations +#define GoblinAlchemistAnimations BuildingAnimations +#define GryphonAviaryAnimations BuildingAnimations +#define DragonRoostAnimations BuildingAnimations +#define ShipyardHumanAnimations BuildingAnimations +#define ShipyardOrcAnimations BuildingAnimations +#define TownHallAnimations BuildingAnimations +#define GreatHallAnimations BuildingAnimations +#define ElvenLumberMillAnimations BuildingAnimations +#define TrollLumberMillAnimations BuildingAnimations +#define FoundryHumanAnimations BuildingAnimations +#define FoundryOrcAnimations BuildingAnimations +#define MageTowerAnimations BuildingAnimations +#define TempleOfTheDamnedAnimations BuildingAnimations +#define BlacksmithHumanAnimations BuildingAnimations +#define BlacksmithOrcAnimations BuildingAnimations +#define RefineryHumanAnimations BuildingAnimations +#define RefineryOrcAnimations BuildingAnimations +#define OilPlatformHumanAnimations BuildingAnimations +#define OilPlatformOrcAnimations BuildingAnimations +#define KeepAnimations BuildingAnimations +#define StrongholdAnimations BuildingAnimations +#define CastleAnimations BuildingAnimations +#define FortressAnimations BuildingAnimations +#define GoldMineAnimations BuildingAnimations +#define OilPatchAnimations BuildingAnimations +#define StartLocationHumanAnimations BuildingAnimations +#define StartLocationOrcAnimations BuildingAnimations +#define GuardTowerHumanAnimations GuardTowerAnimations +#define GuardTowerOrcAnimations GuardTowerAnimations +#define CannonTowerHumanAnimations CannonTowerAnimations +#define CannonTowerOrcAnimations CannonTowerAnimations +#define CircleofPowerAnimations BuildingAnimations +#define DarkPortalAnimations BuildingAnimations +#define RunestoneAnimations BuildingAnimations +#define WallHumanAnimations BuildingAnimations +#define WallOrcAnimations BuildingAnimations + +#define DeadBodyAnimations BuildingAnimations +#define Destroyed1x1PlaceAnimations BuildingAnimations +#define Destroyed2x2PlaceAnimations BuildingAnimations +#define Destroyed3x3PlaceAnimations BuildingAnimations +#define Destroyed4x4PlaceAnimations BuildingAnimations #define PeasantWithGoldAnimations PeasantAnimations #define PeonWithGoldAnimations PeonAnimations @@ -1948,7 +1997,7 @@ global UnitType UnitTypes[] = { ,DEFAULT ,DEFAULT } , 72, 72 // graphic size - ,GnomHellscreamAnimations // animations + ,GromHellscreamAnimations // animations ,{ "icon-grom-hellscream" } ,{ "missile-none" } // Missile ,CorpseHuman