From 19b9cb16f877f0bb2d1bef03bea90212c2cb951c Mon Sep 17 00:00:00 2001 From: Justin Marshall Date: Sun, 2 Aug 2020 18:26:40 -0700 Subject: [PATCH] Added anim frame range support for buildings in rules.ini. Added prism tower. --- EXPAND3.mix | Bin 2021694 -> 2150759 bytes code/redalert/bdata.cpp | 41 +++++++++++++++++++++++++++++++++++++ code/redalert/building.cpp | 14 +++++++++++-- code/redalert/defines.h | 2 ++ code/redalert/type.h | 8 ++++++++ rules.ini | 36 ++++++++++++++++++++++++++++++++ 6 files changed, 99 insertions(+), 2 deletions(-) diff --git a/EXPAND3.mix b/EXPAND3.mix index b35e5683b76c0d4aa2420b51c358504f3b37b505..fccbcde40b407377ac2da0189b63c9127f9b0528 100644 GIT binary patch delta 114603 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 E0`P2UH~;_u delta 437 zcmaF9sF`u!rs{eIAdp}Xxgp2Ev6FRTw;l^a(+mcNU!m!D&COOD2dv%$Y;eZbVL&BQcwQ=o?44>2)7_qA0Dd<@SLnHjY7kKYa0#K>@gm4P8?@wbNxJAi8Hfr>Jp7MUvShDgY>=9x`s z5@cur$~`b-@e*kf1X~uhRo(mJ1SzmV7rR#ZUH>Etw)m_Gr~izH5WTa=N`7L+y<1%RVy;+B93*wp-dV0x=U1GXpUT5VHa?8xXStF$WNH z0x=g5a|1CC5c2{t9}x2cu>cSY0=rH00|1%xghc=V diff --git a/code/redalert/bdata.cpp b/code/redalert/bdata.cpp index b3808d3..1da4f3d 100644 --- a/code/redalert/bdata.cpp +++ b/code/redalert/bdata.cpp @@ -568,6 +568,36 @@ static BuildingTypeClass const ClassTesla( (short const *)OList12 // OVERLAPLIST:List of overlap cell offset. ); +static BuildingTypeClass const ClassPrisom( + STRUCT_PRISOM, + TXT_TESLA, // NAME: Short name of the structure. + "GGPRIS", // NAME: Short name of the structure. + FACING_S, // Foundation direction from center of building. + XYP_COORD(0, 0), // Exit point for produced units. + REMAP_ALTERNATE, // Sidebar remap logic. + 0x00C8, // Vertical offset. + 0x0000, // Primary weapon offset along turret centerline. + 0x0000, // Primary weapon lateral offset along turret centerline. + false, // Is this building a fake (decoy?) + false, // Animation rate is regulated for constant speed? + false, // Always use the given name for the building? + false, // Is this a wall type structure? + false, // Simple (one frame) damage imagery? + false, // Is it invisible to radar? + true, // Can the player select this? + true, // Is this a legal target for attack or move? + false, // Is this an insignificant building? + false, // Theater specific graphic image? + false, // Does it have a rotating turret? + true, // Can the building be color remapped to indicate owner? + RTTI_NONE, // The object type produced at this factory. + DIR_N, // Starting idle frame to match construction. + BSIZE_12, // SIZE: Building size. + NULL, // Preferred exit cell list. + (short const*)List12, // OCCUPYLIST: List of active foundation squares. + (short const*)OList12 // OVERLAPLIST:List of overlap cell offset. +); + static BuildingTypeClass const ClassTurret( STRUCT_TURRET, TXT_TURRET, // NAME: Short name of the structure. @@ -3133,6 +3163,8 @@ void BuildingTypeClass::Init_Heap(void) #ifdef RA_AF new BuildingTypeClass(ClassAFV01); // STRUCT_AFV01 #endif + + new BuildingTypeClass(ClassPrisom); } Image_t* BuildingTypeClass::LoadHDImage(const char* fullname, int& numHDShapes, bool remapHouse) { @@ -4052,6 +4084,15 @@ bool BuildingTypeClass::Read_INI(CCINIClass & ini) ActiveAnimAnimShape = MFCD::Retrieve(ConstructAnimName); } + IdleAnimNonDamagedStart = ini.Get_Int(Name(), "IdleAnimNonDamagedStart", -1); + IdleAnimNonDamagedFrames = ini.Get_Int(Name(), "IdleAnimNonDamagedFrames", -1); + IdleAnimDamagedStart = ini.Get_Int(Name(), "IdleAnimDamagedStart", -1); + IdleAnimDamagedFrames = ini.Get_Int(Name(), "IdleAnimDamagedFrames", -1); + ActiveAnimNonDamagedStart = ini.Get_Int(Name(), "ActiveAnimNonDamagedStart", -1); + ActiveAnimNonDamagedFrames = ini.Get_Int(Name(), "ActiveAnimNonDamagedFrames", -1); + ActiveAnimDamagedStart = ini.Get_Int(Name(), "ActiveAnimDamagedStart", -1); + ActiveAnimDamagedFrames = ini.Get_Int(Name(), "ActiveAnimDamagedFrames", -1); + if (Power < 0) { Drain = -Power; Power = 0; diff --git a/code/redalert/building.cpp b/code/redalert/building.cpp index cc9f27e..6bb4c89 100644 --- a/code/redalert/building.cpp +++ b/code/redalert/building.cpp @@ -505,13 +505,23 @@ void BuildingClass::Draw_It(int x, int y, WindowNumberType window) const // jmarshall idle/construction animation if (Class->IdleAnimShape != NULL) { int shapeNum = animFrameNum; - shapeNum = shapeNum % Get_Build_Frame_Count(Class->IdleAnimShape); + int maxframes = Get_Build_Frame_Count(Class->IdleAnimShape); + if (Class->IdleAnimNonDamagedFrames != -1) { + maxframes = Class->IdleAnimNonDamagedFrames; + } + + shapeNum = shapeNum % maxframes; Techno_Draw_Object(Class->IdleAnimShape, shapeNum, x, y, window); } if (BState == BSTATE_ACTIVE && Class->ActiveAnimAnimShape != NULL) { int shapeNum = Shape_Number(); - shapeNum = shapeNum % Get_Build_Frame_Count(Class->ActiveAnimAnimShape); + int maxframes = Get_Build_Frame_Count(Class->ActiveAnimAnimShape); + if (Class->ActiveAnimNonDamagedFrames != -1) { + maxframes = Class->ActiveAnimNonDamagedFrames; + } + + shapeNum = shapeNum % maxframes; Techno_Draw_Object(Class->ActiveAnimAnimShape, shapeNum, x, y, window); } diff --git a/code/redalert/defines.h b/code/redalert/defines.h index dc13015..5595f1a 100644 --- a/code/redalert/defines.h +++ b/code/redalert/defines.h @@ -1477,6 +1477,8 @@ typedef enum StructType : char { #ifdef RA_AF STRUCT_AFV01, #endif + STRUCT_PRISOM, + STRUCT_COUNT, STRUCT_FIRST=0 } StructType; diff --git a/code/redalert/type.h b/code/redalert/type.h index bd44842..cc4e31c 100644 --- a/code/redalert/type.h +++ b/code/redalert/type.h @@ -821,6 +821,14 @@ class BuildingTypeClass : public TechnoTypeClass { const void* CustomTheatrePalette[3]; const void* IdleAnimShape; const void* ActiveAnimAnimShape; + int IdleAnimNonDamagedStart; + int IdleAnimNonDamagedFrames; + int IdleAnimDamagedStart; + int IdleAnimDamagedFrames; + int ActiveAnimNonDamagedStart; + int ActiveAnimNonDamagedFrames; + int ActiveAnimDamagedStart; + int ActiveAnimDamagedFrames; private: /* diff --git a/rules.ini b/rules.ini index 427752d..318dea8 100644 --- a/rules.ini +++ b/rules.ini @@ -1422,6 +1422,42 @@ Snow=eapal1sno.pal Temperate=eapal1tem.pal IdleAnim=EACNST_A.SHP ActiveAnim=EACNST_WORKING.SHP +IdleAnimNonDamagedStart=0 +IdleAnimNonDamagedFrames=6 +IdleAnimDamagedStart=0 +IdleAnimDamagedFrames=6 +ActiveAnimNonDamagedStart=0 +ActiveAnimNonDamagedFrames=41 +ActiveAnimDamagedStart=0 +ActiveAnimDamagedFrames=41 + +; Tesla coil +[GGPRIS] +Primary=TeslaZap +Strength=400 +Armor=heavy +TechLevel=1 +Sight=8 +Owner=allies +Cost=5 +Points=80 +Power=-10 +Ammo=3 +Powered=true +Sensors=yes +Crewed=yes +IdleAnim=GGPRIS_B.SHP +ActiveAnim=GGPRIS_A.SHP +Snow=eapal1sno.pal +Temperate=eapal1tem.pa +IdleAnimNonDamagedStart=0 +IdleAnimNonDamagedFrames=8 +IdleAnimDamagedStart=9 +IdleAnimDamagedFrames=8 +ActiveAnimNonDamagedStart=0 +ActiveAnimNonDamagedFrames=9 +ActiveAnimDamagedStart=10 +ActiveAnimDamagedFrames=9 ; refinery [PROC]