昨天HF问单位类型的结构,这个分析还有很多TA的功能没有做的,所以分析的数据文件就不发了,不过这个头文件修正,又补充了不少,做mod的话,应该可以有一些帮助,因为用了很久,出错的地方和理解错的地方比较少了,所以公开出来,主要是集合了SY_SJ, SY_YEHA, xon等的劳动,以及自己的一点点补充:
/*
This file has been generated by IDA Pro.
It contains local type definitions from
D:\CAVEDOG\TOTALA\SWeaponA2.idb
*/
/* 6 */
#pragma pack(push, 1)
struct TAMainStruct
{
char TAVersionStr[12];
int TAProgramStruct_Ptr;
int DSoundP;
int HAPINET_Object;
char unknow_0_[1201];
int unknow_0__;
int unknow_0___;
char unknow_0____[72];
int TAIngameGUIStruct;
char unknow_0______[108];
char AlteredUnitLimit;
char field_58A[2127];
char PlayerCameraRectColorInRadar;
char field_DDA[1301];
int ChatTextBegin;
char field_12F3[59];
int field_132E;
char field_1332[1782];
int field_1A28;
char field_1A2C[311];
PlayerStruct PlayerStructArray[10];
char unknow_2[331];
int unknow_2_;
int AllyStruct_Ptr;
char field_29A4[144];
int PacketBufferSize;
int PacketBuffer_p;
__int16 CurrentPlayerNumbers;
int ChatTextIndex;
char HumanPlayer_EyeBallID;
char LOS_Sight_PlayerID_Game;
char NetworkLayerEnabled;
char unknow_2____[585];
__int16 BuildPosX;
__int16 BuildPosY;
int BuildPosRealX;
int Height;
int BuildPosRealY;
int unknow_3;
int Height2;
char unknow_4[6];
__int16 MouseMapPosX;
char unknow_5[6];
__int16 MouseMapPosY;
char unknow_6[4];
__int16 MouseOverUnit;
__int16 unknow_7;
char field_2CBE;
char field_2CBF[5];
__int16 BuildNum;
char BuildSpotState;
char unknow_8[44];
WeaponStruct WeaponsTypedefArray[256];
int NumProjectiles;
int Projectiles_p;
char MapDataStruct_NotPtr[16];
int WreckageInfo_p;
char unknow_10[28];
int RadarPictureSize_InGameMeasure;
int RadarPictureHeight_InGameMeasure;
int FeatureMapSizeX;
int FeatureMapSizeY;
int EyeBallMapWidth;
int EyeBallMapHeight;
char field_14243[16];
int NumFeatureDefs;
char unknow_12[20];
int TEDGENERATEDPIC;
int FeatureDef_p;
char unknow_13[8];
int EyeBallMemory_p;
__int16 unknow_14;
__int16 MovingEyeBall;
char field_14283[4];
int FeaturesArray_p;
char unknow_15[48];
int field_142BB;
int field_142BF;
int field_142C3;
int field_142C7;
char MinimapEyeBallRect[16];
int RadarFinal_p;
int RadarMapped_p;
int RadarPicture_p;
__int16 XOffset_RadarMap_MiniMapMeasure;
__int16 YOffset_RadarMap_MiniMapMeasure;
__int16 RadarPicSizeWidth_MiniMapMeasure;
__int16 RadarPicSizeHeight_MiniMapMeasure;
__int16 unknow_16;
__int16 field_142F1;
int CirclePointer;
char unknow_17[40];
int EyeBallMapX;
int EyeBallMapY;
int EyeBallMapXScrollingTo_;
int EyeBallMapYScrollingTo_;
char unknow_18[30];
__int16 scrollspeed;
__int16 EveryPlayerUnitsNumber;
char TotalGameUnits[6];
int BeginUnitsArray_p;
int EndOfUnitsArray_p;
int HotUnits_AryPtr;
int HotRadarUnits_pw;
int NumHotUnits;
int NumHotRadarUnits;
char unknow_20[32];
int UnitsTypedefArrayCount_p;
char field_14393[8];
int UnitsTypedefArray_p;
char unknow_21[1088];
int _0_FontValidCharNumber;
int _1_FontValidCharNumber;
char field_147E7[308];
int NumExplosions;
ExplosionStruct ExplosionsAry[300];
int unknow_p_23;
char unknow_24[102012];
int EffectVoiceNum;
char field_33A13[1024];
char EffectVoiceAry;
char field_33E14[16383];
int SoundClassAry;
int SoundClassNumber;
int field_37E1B;
char field_37E1F[24];
int InGamePos_X;
int InGamePos_Y;
char field_37E3F[167];
__int16 EveryPlayerUnitsNumber_0;
char field_37EE8[6];
int Difficulty;
int side;
int field_37EF6;
int InterfaceType;
int field_37EFE;
int SingleLOSType;
int screenchat;
char field_37F0A[15];
__int16 SoundMode;
int DisplaymodeWidth;
int DisplaymodeHeight;
char field_37F23[12];
__int16 field_37F2F;
char field_37F31[12];
RaceSideData RaceSideDataAry[5];
char field_38A37[842];
int TotalPlayers_CanBe;
char field_38D85[1124];
int GameSettingStruct_Ptr;
char field_391ED[44];
int SingleCommanderDeath;
int SingleMapping;
int SingleLineOfSight;
int SingleLOSType_;
char field_39229[3543];
};
#pragma pack(pop)
/* 10 */
#pragma pack(push, 1)
struct TickCountStruct
{
int LastTickCount;
char unknow_[56];
int AllDeleyIn3Sub_468CF0;
int AllDeleyIn4Sub_468CF0;
char unknow__[8];
int AllDeleyIn1Sub_468CF0;
};
#pragma pack(pop)
/* 11 */
#pragma pack(push, 1)
struct UnitsInGameStruct
{
int MoveClass;
int UsedSpot;
int field_8;
int field_C;
int Weapon1_p;
char unknow_1[11];
char IsBuilder;
char unknow_2[12];
int Weapon2_p;
char unknow_3[24];
int Weapon3_p;
char unknow_4[16];
int UnitOrders_p;
char UnitState;
char unknow_5[3];
__int16 ZTurn;
__int16 XTurn;
__int16 YTurn;
__int16 unknow3;
__int16 XPos;
__int16 unknow4;
__int16 ZPos;
__int16 YPos__;
__int16 YPos;
__int16 XGridPos;
__int16 YGridPos;
__int16 XLargeGridPos;
__int16 YLargeGridPos;
char unknow_6[4];
int unknow_p_7;
char unknow_8[8];
int FirstUnit_p;
int UnitType_p;
int Owner_p;
int UnitScriptingData_p;
int Object3do_P;
int UNKnow_10;
__int16 UnitTypeID_Word_;
int UnitInGameID;
char field_AC[12];
__int16 Kills;
char UNKnow_11[50];
int Owner2_p;
int Attacker_p;
char unknow_12[2];
char HealthPerA;
char HealthPerB;
char unKnow_13[2];
char RecentDamage;
char Height;
__int16 OwnerIndex;
char gap_FE[1];
char Los_Sight_PlayerID_Unit;
char unknow_14[4];
int Nanoframe;
__int16 Health;
char unKnow_15[4];
__int16 cIsCloaked;
int UnitSelectedStateMask;
char unknow_16[4];
};
#pragma pack(pop)
/* 12 */
#pragma pack(push, 1)
struct UnitsInGameStructPtr
{
int UnitsInGameStruct;
};
#pragma pack(pop)
/* 13 */
enum COB_Opcodes
{
COB_MovePieceWithSpeed = 0x10001000,
COB_TurnPieceWithSpeed = 0x10002000,
COB_StartSpin = 0x10003000,
COB_StopSpin = 0x10004000,
COB_ShowPiece = 0x10005000,
COB_HidePiece = 0x10006000,
COB_CachePiece = 0x10007000,
COB_DontCachePiece = 0x10008000,
COB_Unknown4 = 0x10009000,
COB_DontShadow = 0x1000A000,
COB_MovePieceNow = 0x1000B000,
COB_TurnPieceNow = 0x1000C000,
COB_Shade = 0x1000D000,
COB_DontShade = 0x1000E000,
COB_EmitSfx = 0x1000F000,
COB_WaitForTurn = 0x10011000,
COB_WaitForMove = 0x10012000,
COB_Sleep = 0x10013000,
COB_MetaPush = 0x10021000,
COB_PushConstantOntoStack = 0x10021001,
COB_PushLocalVariableOntoStack = 0x10021002,
COB_PushStaticVariableOntoStack = 0x10021004,
COB_StackAllocate = 0x10022000,
COB_MetaPop = 0x10023000,
COB_SetLocalVariable = 0x10023002,
COB_SetStaticVariable = 0x10023004,
COB_PopStack = 0x10024000,
COB_Add = 0x10031000,
COB_Subtract = 0x10032000,
COB_Multiply = 0x10033000,
COB_Divide = 0x10034000,
COB_BitwiseAnd = 0x10035000,
COB_BitwiseOr = 0x10036000,
COB_BitwiseXor = 0x10037000,
COB_BitwiseNot = 0x10038000,
COB_Unknown1 = 0x10039000,
COB_Unknown2 = 0x1003A000,
COB_Unknown3 = 0x1003B000,
COB_Random = 0x10041000,
COB_GetUnitValue = 0x10042000,
COB_GetFunctionResult = 0x10043000,
COB_Unknown11 = 0x10044000,
COB_Unknown12 = 0x10045000,
COB_LessThan = 0x10051000,
COB_LessThanOrEqual = 0x10052000,
COB_GreaterThan = 0x10053000,
COB_GreaterThanOrEqual = 0x10054000,
COB_Equal = 0x10055000,
COB_NotEqual = 0x10056000,
COB_Unknown13 = 0x10057000,
COB_LogicalOr = 0x10058000,
COB_LogicalXor(check) = 0x10059000,
COB_Unknown15 = 0x1005A000,
COB_StartScript = 0x10061000,
COB_CallScript = 0x10062000,
COB_Unknown16 = 0x10063000,
COB_JumpToOffset = 0x10064000,
COB_Return = 0x10065000,
COB_JumpToOffsetIfFalse = 0x10066000,
COB_Signal = 0x10067000,
COB_SetSignalMask = 0x10068000,
COB_Explode = 0x10071000,
COB_PlaySound = 0x10072000,
COB_MapCommand = 0x10073000,
COB_SetUnitValue = 0x10082000,
COB_AttachUnit = 0x10083000,
COB_DropUnit = 0x10084000,
COB_ValidOPMask = 0x100FF000,
};
/* 14 */
enum COB_RunningFlags
{
COB_NotInUse = 0x0,
COB_RunningFlags_2 = 0x100000,
COB_RunningFlags_3 = 0x200000,
COB_RunningFlags_4 = 0x400000,
COB_IsRunnable = 0x1000000,
COB_RunningFlags_1 = 0x2000000,
COB_CallScriptWait = 0x2800000,
};
/* 15 */
enum PacketID
{
PacketID_Encypted = 0x3,
PacketID_Compressed = 0x4,
PacketID_ObjectState = 0xC,
};
/* 16 */
enum PlayerType
{
Player_none = 0x0,
Player_LocalHuman = 0x1,
Player_AI = 0x2,
Player_RemoteHuman = 0x3,
Player_RemoteAI = 0x4,
};
/* 17 */
enum SharedStates
{
SharedMetal = 0x2,
SharedEnergy = 0x4,
SharedLOS = 0x8,
SharedMappings = 0x20,
SharedRadar = 0x40,
};
/* 18 */
#pragma pack(push, 1)
struct ExplosionStruct
{
void *Debris;
__int16 Frame;
char data2[6];
void *FXGaf;
char data3[12];
int XPos;
int ZPos;
int YPos;
char data4[36];
__int16 XTurn;
__int16 ZTurn;
__int16 YTurn;
char data5[2];
};
#pragma pack(pop)
/* 19 */
#pragma pack(push, 1)
struct ProjectileStruct
{
void *Weapon;
int XPos;
int ZPos;
int YPos;
int XPosStart;
int ZPosStart;
int YPosStart;
int XSpeed;
int ZSpeed;
int YSpeed;
char data1[14];
__int16 XTurn;
__int16 ZTurn;
__int16 YTurn;
char data2[22];
int field_52;
char field_56[16];
char ProjectileLos_PlayerID;
char field_67[2];
char WeaponFlags;
char data3;
};
#pragma pack(pop)
/* 20 */
#pragma pack(push, 1)
struct WeaponStruct
{
char WeaponName[32];
char WeaponDescription[64];
int Unkn1;
int pWeaponUnkStruct;
int weaponvelocity;
int startvelocity;
int weaponacceleration;
int objects3d_file;
void *LandExplodeAsGFX;
void *WaterExplodeAsGFX;
char data4[64];
int energypershot;
int metalpershot;
int minbarrelangle;
int shakemagnitude;
int shakeduration;
__int16 DefaultDamage;
__int16 areaofeffect;
float EdgeEffectivnes;
__int16 Range;
__int16 data5;
int coverage;
__int16 reloadtime;
__int16 weapontimer;
__int16 turnrate;
__int16 burst;
__int16 burstrate;
__int16 sprayangle;
__int16 duration;
__int16 randomdecay;
__int16 soundstart_EffectVoiceID;
__int16 soundhit_EffectID;
__int16 soundwater_EffectID;
__int16 smokedelay;
__int16 flighttime;
__int16 holdtime;
__int16 field_100;
__int16 field_102;
__int16 accuracy;
__int16 nTolerance;
__int16 pitchtolerance;
char ID;
char cFireStarter;
char RenderType;
char color;
char color2;
char gap_10F[2];
int WeaponTypeMask_;
};
#pragma pack(pop)
/* 21 */
#pragma pack(push, 1)
struct PlayerResourcesStruct
{
float fCurrentEnergy;
float fEnergyProducton;
float fEnergyExpense;
float fCurrentMetal;
float fMetalProduction;
float fMetalExpense;
float fMaxEnergyStorage;
float fMaxMetalStorage;
double fTotalEnergyProduced;
double fTotalMetalProduced;
double fTotalEnergyConsumed;
double fTotalMetalConsumed;
double fEnergyWasted;
double fMetalWasted;
int fPlayerEnergyStorage;
double PlayerMetalStorage;
};
#pragma pack(pop)
/* 22 */
#pragma pack(push, 1)
struct UnitDefStruct
{
char Name[32];
char UnitName[32];
char UnitDescription[64];
char ObjectName[32];
char Side[3];
char data5[167];
__int16 FootX;
__int16 FootY;
void *YardMap;
char unknow_1[12];
int XWidth;
char unknow_2[4];
int YWidth;
char unknow_3[4];
int ZWidth;
int unknow_4;
int field_176;
int field_17A;
int field_17E;
int field_182;
int buildcostenergy;
int buildcostmetal;
int field_18E;
int lRawSpeed_maxvelocity;
char data9[8];
int acceleration;
int bankscale;
int pitchscale;
int damagemodifier;
int moverate1;
int moverate2;
int movementclass;
__int16 turnrate;
__int16 corpse;
__int16 maxwaterdepth;
__int16 minwaterdepth;
int energymake;
int energyuse;
int metalmake;
int extractsmetal;
int windgenerator;
int tidalgenerator;
int cloakcost;
int cloakcostmoving;
int energystorage;
int metalstorage;
int buildtime;
int weapon1;
int weapon2;
int weapon3;
__int16 nMaxHP;
char data8[2];
__int16 nWorkerTime;
__int16 nHealTime;
__int16 nSightDistance;
__int16 nRadarDistance;
__int16 nSonarDistance;
__int16 mincloakdistance;
__int16 radardistancejam;
__int16 sonardistancejam;
__int16 SoundClassIndex;
__int16 nBuildDistance;
char builddistance[2];
__int16 nManeuverLeashLength;
__int16 attackrunlength;
__int16 kamikazedistance;
__int16 sortbias;
char cruisealt;
char data4;
__int16 UnitTypeID;
int explodeas;
int selfdestructas;
char maxslope;
char badslope;
char transportsize;
char transportcapacity;
char waterline;
char makesmetal;
char gap_22E[1];
char bmcode;
char defaultmissiontypeIndex;
int wpri_badTargetCategory_MaskAryPtr;
int wsec_badTargetCategory_MaskAryPtr;
int wspe_badTargetCategory_MaskAryPtr;
int noChaseCategory_MaskAryPtr;
int UnitTypeMask_;
int UnitTypeMask_1;
};
#pragma pack(pop)
/* 24 */
#pragma pack(push, 1)
struct PlayerStruct
{
int PlayerActive;
int field_4;
char field_8[4];
char PlayerNum;
char field_D[3];
int field_10;
char field_14[14];
char field_22;
char field_23[4];
int PlayerInfo;
char Name[30];
char SecondName[30];
int Units_Begin;
int Units_End;
char field_6F[4];
char PlayerType;
int field_74;
char field_78[4];
int field_7C;
int field_80;
int field_84;
int field_88;
PlayerResourcesStruct Resource;
char field_E8[8];
int UpdateTime;
int WinLoseTime;
int DisplayTimer;
__int16 Kills_word;
__int16 Losses;
char field_100[8];
char field_108[10];
char field_112[46];
int UnitsCounters;
__int16 UnitsNumber;
char PlayerNumber;
char field_147[2];
__int16 AddPlayerStorage_word;
};
#pragma pack(pop)
/* 25 */
#pragma pack(push, 1)
struct PlayerInfoStruct
{
char MapName[32];
char gap_20[117];
char Raceside;
char PlayerLogoColor;
char SharedBits;
char gap_98[3];
char field_9B;
};
#pragma pack(pop)
/* 26 */
#pragma pack(push, 1)
struct PlayerData
{
PlayerInfoStruct field_0;
};
#pragma pack(pop)
/* 27 */
#pragma pack(push, 1)
struct ScriptSlot
{
int Flags;
int InstrIndex;
int StackIndex;
int LoopsToWait;
int field_10;
int field_14;
int ScriptToWaitOn;
int field_1C;
int MethodReturnedCallBack;
void *Stack;
int field_28;
int field_2C;
int field_30;
int field_34;
int field_38;
int field_3C;
int field_40[8];
int field_60;
};
#pragma pack(pop)
/* 28 */
#pragma pack(push, 1)
struct CobHeader
{
int Version;
int MethodCount;
int PieceCount;
int BytecodeLength;
int StaticVariablesCount;
int Always_0;
int MethodEntryPoints;
int MethodNameOffsets;
int PieceNameOffsets;
int ByteCodeStart;
int NameArray;
};
#pragma pack(pop)
/* 29 */
#pragma pack(push, 1)
struct ScriptSlotArray
{
ScriptSlot ScriptSlots[8];
};
#pragma pack(pop)
/* 30 */
#pragma pack(push, 1)
struct UnitScriptingData
{
char field_0[8];
void *pCOB;
int field_C;
void *GlobalVars;
int field_14;
int field_18;
ScriptSlotArray ScriptSlots;
char gap_33c[512];
int StartRunningNow;
};
#pragma pack(pop)
/* 31 */
#pragma pack(push, 1)
struct COB_StackFrame
{
ScriptSlot field_0;
};
#pragma pack(pop)
/* 32 */
#pragma pack(push, 1)
struct HAPINET
{
char Buffer[1200];
char gap_4b0[5];
int DataSize;
int BufferPtr;
char gap_4bd[8];
int DirectPlayInterface;
};
#pragma pack(pop)
/* 33 */
#pragma pack(push, 1)
struct StaticVarStuct_1
{
void *FunctionPtr;
char field_4[16];
int field_14;
char field_18[48];
int field_48;
char field_4C[480];
int field_22C;
int field_230;
int field_234;
int field_238;
};
#pragma pack(pop)
/* 34 */
#pragma pack(push, 1)
struct RadarPicStruc
{
int XSize;
int YSize;
int Unk1;
void *PixelPTR;
};
#pragma pack(pop)
/* 39 */
#pragma pack(push, 1)
struct UnitOrdersStruct
{
int unknow_1;
__int16 unknow_1_;
int unknow_1___;
char unknow_1____[4];
int unknow_2_p;
int unknow_3;
char unknow_4[8];
int ThisPTR;
int PosX;
int PosZ;
int PosY;
char unknow_5[6];
char FootPrint;
char unknow_6[12];
char UnitOrderFlags;
char unknow_7[8];
int NextOrder_uosp;
char unknow_8[4];
int unknow_9_p;
};
#pragma pack(pop)
/* 40 */
struct WreckageInfoStruct
{
int unk1;
LPVOID unk2;
int XPos;
int ZPos;
int YPos;
char data1[12];
__int16 ZTurn;
__int16 XTurn;
__int16 YTurn;
char data2[10];
};
/* 41 */
struct FeatureStruct
{
char data1[8];
__int16 FeatureDefIndex;
__int16 WreckageInfoIndex;
char data2[1];
};
/* 42 */
struct FeatureDefStruct
{
char Name[32];
char data1[96];
char Description[20];
char Data2[108];
};
/* 43 */
struct MapFileStruct
{
char data[516];
char TNTFile[260];
};
/* 44 */
struct Point3
{
int x;
int y;
int z;
};
/* 45 */
struct DebrisStruct
{
char data1[36];
Point3 *Vertices;
DWORD *Unk;
char data2[8];
};
/* 46 */
struct Unk1Struct
{
char data1[24];
FXGafStruct *Texture;
char data2[4];
};
/* 47 */
struct FXGafStruct
{
__int16 Frames;
char data1[6];
char Name[32];
int FramePointers[1];
};
/* 48 */
struct DSoundStruct
{
char data1[36];
DWORD Directsound;
DWORD DirectsoundBuffer;
char data2[12];
DWORD DirectsoundBuffer2;
};
/* 49 */
struct Object3doStruct
{
__int16 NumParts;
char data1[2];
int TimeVisible;
char data2[4];
UnitsInGameStruct *ThisUnit;
LPVOID *UnkPTR1;
LPVOID *UnkPTR2;
char data3[6];
struct PrimitiveStruct *BaseObject;
};
/* 50 */
struct PrimitiveInfoStruct
{
char data1[28];
char *Name;
};
/* 51 */
struct PrimitiveStruct
{
PrimitiveInfoStruct *PrimitiveInfo;
int XPos;
int ZPos;
int YPos;
unsigned __int16 XTurn;
unsigned __int16 ZTurn;
unsigned __int16 YTurn;
char data3[18];
BYTE Visible[2];
char data2[1];
struct PrimitiveStruct *SiblingObject;
struct PrimitiveStruct *ChildObject;
struct PrimitiveStruct *ParrentObject;
};
/* 52 */
struct RadarPicStruct
{
int XSize;
int YSize;
int Unk1;
LPVOID *PixelPTR;
};
/* 53 */
struct ParticleSystemStruct
{
LPVOID DrawFunc;
char data1[8];
int Type;
struct SmokeGraphics *firstDraw;
struct SmokeGraphics *lastDraw;
LPVOID *Unk;
char data2[48];
};
/* 54 */
struct ParticleBase
{
char data[8];
ParticleSystemStruct **particles;
char data2[8];
ParticleSystemStruct **ParticlePTRArray;
int SmokeParticleStructSize;
int maxParticles;
int curParticles;
};
/* 55 */
struct SmokeGraphics
{
FXGafStruct *gaf;
int XPos;
int ZPos;
int YPos;
int unknown;
int frame;
int unknown2;
int MoreSubs;
};
/* 56 */
#pragma pack(push, 1)
struct Context_Screen
{
int Width;
int Height;
int PixelPerLine;
int ScreenColorBits_Ptr;
int field_10;
int field_14;
__int16 field_18;
__int16 field_1A;
RECT ScreenRect;
int field_2C;
};
#pragma pack(pop)
/* 57 */
#pragma pack(push, 1)
struct FontStruct
{
__int16 Left;
__int16 Top;
__int16 Right;
__int16 Buttom;
char TransparentColorMask;
char PackedFont;
char field_A;
char gap_b[5];
int FontColorBits_Ptr;
};
#pragma pack(pop)
/* 58 */
enum UnitSelectState
{
UnitValid = 0x4,
UnitSelected = 0x10,
UnitValid2 = 0x20,
};
/* 59 */
#pragma pack(push, 1)
struct TAProgramStruct
{
int HInstance;
int field_4;
int WindowsClassName;
int WindowsName;
char field_10[48];
int TAMainWndHwnd;
int WholeScreen_TAWindowDIBSECTION;
int WndMemHDC_TAWindowHDC;
int Palette_TAWindowHPALETTE;
int field_50;
int BackMemHDC_TAWindowHDC;
char field_58[44];
int TAlplpDD_TAFullScreen;
int TAlpTADrawSurface_TAFullScreen;
int lplp_unknow_TAFullScreen;
char field_90[44];
int MainScreenContext;
char field_C0[20];
int TA_LPDDSURFACEDESC;
int lplpTADrawSurface;
int GameScreenUpdatingFlag_1;
char field_E0[16];
__int16 field_F0;
int GameScreenUpdatingFlag_2;
int InputBuffer[30];
int TotalChar_InputBuffer;
int ReadChar_InputBuffer;
char field_176[1186];
int HPIFileAryPtr;
int HPIFileNumber;
};
#pragma pack(pop)
/* 60 */
#pragma pack(push, 1)
struct RaceSideData
{
char name[30];
char nameprefix[4];
char commanderUnitName[32];
RECT Logo_rect;
RECT Energy_rect;
RECT EnergyNum_rect;
RECT METALBAR_rect;
RECT METALNUM_rect;
RECT TOTALUNITS_rect;
RECT TOTALTIME_rect;
RECT ENERGYMAX_rect;
RECT METALMAX_rect;
RECT ENERGY0_rect;
RECT METAL0_rect;
RECT ENERGYPRODUCED;
RECT ENERGYCONSUMED;
RECT METALPRODUCED;
RECT METALCONSUMED;
RECT LOGO2;
RECT UNITNAME;
RECT DAMAGEBAR;
RECT UNITENERGYMAKE;
RECT UNITENERGYUSE;
RECT UNITMETALMAKE;
RECT UNITMETALUSE;
RECT MISSIONTEXT;
RECT UNITNAME2;
RECT field_1C2;
RECT NAME;
RECT DESCRIPTION;
RECT RELOAD_RaceID;
char field_202[32];
int energycolor;
int metalcolor;
int field_22A;
int Font_File;
};
#pragma pack(pop)
/* 61 */
#pragma pack(push, 1)
struct AllyStruct
{
int PlayerType;
int RaceSide;
int AllyTeamID;
int StartMetal;
int StartEnergy;
int field_14;
int field_18;
};
#pragma pack(pop)
/* 62 */
enum PlayerType_AllyStruct
{
OPEN = 0x0,
HUMAN = 0x1,
COMPUTRE = 0x2,
};
/* 63 */
enum PlayerTeam_AllyStruct
{
TEAM1 = 0x0,
TEAM2 = 0x1,
TEAM3 = 0x2,
TEAM4 = 0x3,
TEAM5 = 0x4,
NOTEAM = 0x5,
};
/* 64 */
#pragma pack(push, 1)
struct MapDataStruct
{
char field_0[144];
};
#pragma pack(pop)
/* 65 */
#pragma pack(push, 1)
struct GameSettingStruct
{
int MultiOrSingleState;
char field_4[3392];
int field_D44;
char field_D48[108];
int MapStartPosAry_;
int MapStartPosNumber;
char field_DBC[263];
};
#pragma pack(pop)
/* 66 */
#pragma pack(push, 1)
struct MapStartPos
{
int ValidMapStartPos_;
int PlayerID;
__int16 X_Pos;
__int16 Y_Pos;
};
#pragma pack(pop)
/* 67 */
#pragma pack(push, 1)
struct temp_MapStartPos_InCreatePlayerCommander
{
__int16 field_0;
__int16 X_Pos;
int Zero_field;
__int16 field_8;
__int16 Y_Pos;
};
#pragma pack(pop)
/* 68 */
#pragma pack(push, 1)
struct SoundClass
{
char field_0[352];
};
#pragma pack(pop)
/* 69 */
#pragma pack(push, 1)
struct WeaponUnkStruct
{
char gap_0[1];
char field_1;
char gap_2[3];
int field_5;
int field_9;
int field_D;
};
#pragma pack(pop)
/* 70 */
enum WeaponMask
{
targetable_mask = 0x20000000,
interceptor_mask = 0x40000000,
};
/* 71 */
enum WeaponMask_shift
{
targetable = 0x1D,
interceptor = 0x1E,
};
/* End of file */