/* This file has been generated by IDA Pro. It contains local type definitions from F:\Games\CIV3\Civilization III\Conquests\Civ3Conquests.idb */ /* 1 */ #pragma pack(push, 1) struct _msExcept7 { int Magic; int Count; void *InfoPtr; int CountDtr; void *DtrPtr; int _unk[2]; }; #pragma pack(pop) /* 2 */ #pragma pack(push, 1) struct _msExcInfo { int Id; void *Proc; }; #pragma pack(pop) /* 3 */ #pragma pack(push, 1) struct _msExcExt { int _unk[3]; int Count; void *RttiBlkPtr; }; #pragma pack(pop) /* 4 */ #pragma pack(push, 1) struct _msRttiDscr { int _unk; void *RttiPtr; int spoff; void *Dtr; }; #pragma pack(pop) /* 5 */ #pragma pack(push, 1) struct class_City_Form { class_Base_Form Base; struct_City_Screen_FileNames Files; int Production_Queue_Form_Status; int field_19C8[3]; int Current_Era; int Current_Era2; int Current_Culture_Group2; int Current_Culture_Group; int field_19E4; class_Tile *Current_Tile; class_City *CurrentCity; class_Button Current_Order_Btn; class_Button City_View_Btn; class_Button Exit_Btn; class_Button Next_Btn; class_Button Prev_Btn; class_Button Hurry_Btn; class_Button Draft_Btn; class_Button Governor_Btn; class_Button Resources_View_Btn; class_Tile_Image_Info Background_Image; class_Tile_Image_Info HurryButton_Images[3]; class_Tile_Image_Info Govern_Images[3]; class_Tile_Image_Info DraftButton_Images[3]; class_Tile_Image_Info ProdButton_Images[3]; class_Tile_Image_Info PopheadHilite_Image; class_PCX_Image PCX1; struct_City_Icon_Images City_Icons_Images; class_Tile_Image_Info City_Icons_Images_42[4]; class_Tile_Image_Info Top_Buttons_Images[12]; class_Tile_Image_Info City_View_Btn_Image; class_Tile_Image_Info Close_Btn_Images[3]; class_Tile_Image_Info BottomFadeBar_Image; class_Tile_Image_Info BottomFadeBarAlpha; class_Tile_Image_Info TopFadeBar_Image; class_Tile_Image_Info TopFadeBarAlpha_Image; class_Tile_Image_Info ProductionQueueBox_Image; class_Tile_Image_Info ProductionQueueBar_Image; class_Tile_Image_Info *Improvement_Images_Small; class_Tile_Image_Info *Improvement_Images_Large; void *Luxury_Res_Images[8]; int field_6570[61]; class_Tile_Image_Info Image_1; class_Tile_Image_Info Image_2; tagRECT Citizens_Rect; tagRECT Production_Rect; tagRECT Rect1; tagRECT Food_Storage_Rect; tagRECT Food_Consumption_Rect; tagRECT Income_Rect; tagRECT Gold_Income_Rect; tagRECT Science_Income_Rect; tagRECT Luxury_Income_Rect; tagRECT Pollution_Wastes_Rect; tagRECT Food_Storage_Indicator_Rect; tagRECT Production_Storage_Indicator; tagRECT field_677C; tagRECT field_678C; tagRECT field_679C; tagRECT field_67AC; tagRECT field_67BC; tagRECT field_67CC; tagRECT field_67DC; tagRECT field_67EC; tagRECT field_67FC; tagRECT field_680C; tagRECT field_681C; tagRECT field_682C; tagRECT Culture_Rect; tagRECT Units_Rect; tagRECT Pollution_Rect; tagRECT Rects_2[5]; class_Scroll_Bar Units_Scroll_Bar; class_Base_List_Box Order_List; class_Base_List_Box Order_Queue_List; class_Base_List_Box Improvement_List; class_Base_Form Order_Queue_Dialog; int field_96A8; int Units_Start_Index; int field_96B0; int field_96B4[5]; class_FLC_Animation struct_188; struct_City_Form_Labels Labels; int field_98D0[67]; class_Tile_Image_Info QueueBase_Image; }; #pragma pack(pop) /* 6 */ #pragma pack(push, 1) struct struct_City_Form_vtable { struct_Base_Form_vtable m00; }; #pragma pack(pop) /* 7 */ #pragma pack(push, 1) struct class_City { class_City_Base_vtable *vtable; int BaseBody[6]; class_City_Body Body; }; #pragma pack(pop) /* 8 */ #pragma pack(push, 1) struct class_City_Base_vtable { int m00; int m01; int m02; int m03; int m04; int m05; int m06; int m07; int m08; int m09; int m10; int m11; int m12; int (__thiscall *m13)(class_City *); int (__thiscall *m14)(_DWORD, _DWORD); int m15; int m16; int m17; int m18; int m19; int m20; int m21; int m22; int m23; int m24; int m25; bool (__thiscall *m26)(class_City *, int *, char *, char *); int m27; }; #pragma pack(pop) /* 9 */ #pragma pack(push, 1) struct class_Citizen { int vtable; int field_4; char str_CTZN[4]; int field_C; int field_10; int field_14; int field_18; int Body; char Status; char field_21; __int16 Tile_Index2; int field_24[65]; int Mood; int Gender; int Turn_Of_Create; int CityID; int ID; int WorkerType; int RaceID; int field_144; int Turn_1; }; #pragma pack(pop) /* 10 */ #pragma pack(push, 1) struct class_Leader { struct_Leader_vtable *vtable; int field_4[6]; int ID; int RaceID; int field_24[2]; int CapitalID; int field_30; int field_34; int field_38; int Golden_Age_End; int Status; int Gold_Decrement; int Gold_Encoded; int field_4C[21]; int GovenmentType; int Mobilization_Level; int Tiles_Discovered; int field_AC[14]; int field_E4; int field_E8[3]; int Era; int Research_Bulbs; int Current_Research_ID; int Current_Research_Turns; int Future_Techs_Count; __int16 AI_Strategy_Unit_Counts[20]; int field_130[22]; int Armies_Count; int Unit_Count; int Military_Units_Count; int Cities_Count; int field_198; int field_19C; int field_1A0; int Tax_Luxury; int Tax_Cash; int Tax_Science; int field_1B0[736]; char At_War[32]; char field_D50[32]; char field_D70[32]; int field_D90[72]; int Contacts[32]; int Relation_Treaties[32]; int Military_Allies[32]; int Trade_Embargos[32]; int field_10B0[18]; int Color_Table_ID; int field_10FC; int field_1100[7]; int field_111C[36]; int field_11AC[8]; int field_11CC; int field_11D0[252]; int field_15C0; int field_15C4; int field_15C8; int field_15CC; int Science_Age_Status; int Science_Age_End; int field_15D8; __int16 *Improvement_Counts; int field_15E0; int Improvements_Counts; int *Small_Wonders; int field_15EC; __int16 *Units_Counts; int field_15F4; int field_15F8; __int16 *Spaceship_Parts_Count; int *ContinentStat4; int ContinentStat3; int *ContinentCities; int ContinentStat2; int *ContinentStat1; byte *Available_Resources; byte *Available_Resources_Counts; class_Civ_Treaties Treaties[32]; class_Culture Culture; class_Espionage Espionage_1; class_Espionage Espionage_2; int field_18C0[260]; class_Leader_Data_10 Data_10_Array2[32]; class_Leader_Data_10 Data_10_Array3[32]; class_Hash_Table Auto_Improvements; }; #pragma pack(pop) /* 11 */ #pragma pack(push, 1) struct class_Government { int vtable; int field_4; int field_8; int b_Default_Type; int b_Transition_Type; int b_Requires_Maintenance; int b_Flag1; int b_Standard_Tile_Penalty; int b_Standard_Trade_Bonus; int b_Xenophobic; int b_Force_Resettlement; struct_String64 Name; char Civilipedia_Entry[32]; struct_RulerTitle RulerTitles[4]; int CurruptionAndWaste; int ImmuneTo; int Diplomats_Experience; int Spies_Experience; void *PropagandaData; int HurryProduction; int AssimilationChange; int DratfLimit; int Military_Police_Limit; int field_1B0; int Ruler_Titles_Count; int RequireID; int RateCap; int WorkRate; int field_1C4; int field_1C8; int field_1CC; int All_Units_Free; int City_Class_Free_Units[3]; int Unit_Support_Cost; int Last; }; #pragma pack(pop) /* 12 */ #pragma pack(push, 1) struct struct_RulerTitle { char Male[32]; char Female[32]; }; #pragma pack(pop) /* 13 */ #pragma pack(push, 1) struct struct_UnitType { int field_0; int field_4; char Name[32]; char Civilipedia_Entry[32]; int Bombard_Strength; int Bombard_Range; int Transport_Capacity; int Cost; int Defence; int ID; int Attack; int OperationalRange; int PopulationCost; int FireRate; int Movement; int AdvReq; int UpgradeToID; int ResReq[3]; int UnitAbilities; int AI_Strategy; int Available_To; int field_94; int field_98; int Unit_Class; int IconID_2; int Hit_Point_Bonus; int Standard_Actions; int Special_Actions; int Worker_Actions; int Air_Missions; int field_B8; int Bombard_Fix; int field_C0; int field_C4; int field_C8; int field_CC; int b_Not_King; int field_D4; int field_D8; int field_DC; int field_E0; int field_E4; int field_E8; int field_EC; int field_F0; int field_F4; int field_F8; int Stealth_Attack_Count; int field_100; int *Stealth_Attack_Units; int *Stealth_Attack_Units_End; int *Stealth_Attack_Units_End2; int field_110; int field_114; int field_118; int field_11C; int field_120; int field_124; int Create_Craters; float WorkerStrength; int Extra_Abilities; int Air_Defence; }; #pragma pack(pop) /* 14 */ #pragma pack(push, 1) struct class_Unit { struct_Unit_vtable *vtable; int field_4; char str_UNIT[4]; int field_C[4]; class_Unit_Body Body; }; #pragma pack(pop) /* 15 */ #pragma pack(push, 1) struct struct_UnitItem { int field_0; class_Unit_Body *Unit; }; #pragma pack(pop) /* 16 */ #pragma pack(push, 1) struct class_Unit_Body { int vtable; int ID; int X; int Y; int PrevMoveX; int PrevMoveY; int CivID; int RaceID; int field_20; int UnitTypeID; int Combat_Experience; int Status; int Damage; int Moves; int Job_Value; int Job_ID; __int16 Active; __int16 field_42; int Container_Unit; int UnitState; int field_4C[3]; struct_String64 Custom_Name; int field_98[69]; int Auto_CityID; int field_1B0[10]; int field_1D8; class_IDLS IDLS; int field_210[12]; tagRECT Rect; int field_250[4]; class_FLC_Animation Animation; }; #pragma pack(pop) /* 17 */ #pragma pack(push, 1) struct class_Tile { class_Tile_vtable *vtable; char River_Code; char Territory_OwnerID; __int16 field_6; int ResourceType; int TileUnitID; __int16 SquareParts; __int16 VictoryPoint; int field_14; __int16 Barbarian_TribeID; __int16 CityID; __int16 Tile_BuildingID; __int16 ContinentID; int field_20; int Ruins; int Overlays; int SquareType; int Terrain_Overlays; int field_34; int field_38; class_Tile_Body Body; }; #pragma pack(pop) /* 18 */ #pragma pack(push, 1) struct class_Map { struct_Map_vtable *vtable; struct_World_Features World; int TileCount; struct_Map_Worker_Job_Info WorkerJobs[13]; class_Tile **Tiles; int *ResourceCounts; int field_150; int Height; int Civ_Distance; int Civ_Count; int TileCount_Stat; int field_164; int Width; int Starting_Locations[32]; int Seed; int Flags; class_Map_Body Body; int field_210; class_Continent *Continents; int field_218; int field_21C; int field_220; int field_224; int field_228; int field_22C; int Continent_Count; class_Map_Renderer Renderer; }; #pragma pack(pop) /* 19 */ #pragma pack(push, 1) struct class_Tile_Body { class_Base Base; int Fog_Of_War; int FOWStatus; int V3; int Visibility; int CircuitFlags; __int16 CityAreaID; __int16 Values[32]; char Visibile_Overlays[32]; __int16 field_92; int field_D0_Visibility; int field_D4; struct_1A4 *field_D8; }; #pragma pack(pop) /* 20 */ #pragma pack(push, 1) struct class_Tile_vtable { int m0_Get_SquareType_Container; char (__thiscall *m1_Set_Square_Type)(class_Tile *, int, signed int); void (__thiscall *m2_Set_Square_Real_Type)(class_Tile *, int, signed int); int (__thiscall *m3_Set_Square_Base_Type)(class_Tile *, int); void (__thiscall *m4_Dispose)(class_Tile *this, _DWORD); int m5; char (__thiscall *m06_Check_Airfield)(class_Tile *, _DWORD); int (__thiscall *m7_Check_Barbarian_Camp)(class_Tile *, _DWORD); int m08_Check_field_30_bit_23; int m9; int m10; void (__thiscall *m11_set_field_20_lobyte)(class_Tile *, signed int); int (__thiscall *m12_Check_Forest_Pines)(class_Tile *); int (__thiscall *m13_Check_Fortress)(class_Tile *, int); char (__thiscall *m14_Check_Barricade)(class_Tile *, int); int (__thiscall *m15_Check_Goody_Hut)(class_Tile *, int); int m16; char (__thiscall *m17_Check_Irrigation)(class_Tile *, int); int (__thiscall *m18_Check_Mines)(class_Tile *, int); char (__thiscall *m19_Check_Outpost)(class_Tile *, int); unsigned __int8 (__thiscall *m20_Check_Pollution)(class_Tile *, _DWORD); int (__thiscall *m21_Check_Crates)(class_Tile *, _DWORD); int m22; int (__thiscall *m23_Check_Railroads)(class_Tile *, int); unsigned __int8 (__thiscall *m24_Check_River)(class_Tile *); int (__thiscall *m25_Check_Roads)(class_Tile *this, int); bool (__thiscall *m26_Check_Tile_Building)(class_Tile *); int (__thiscall *m27_Check_Special_Resource)(class_Tile *); char (__thiscall *m28_Check_field_30_bit_15)(class_Tile *); int (__thiscall *m29_Check_Mountain_Snowcap)(class_Tile *this); int (__thiscall *m30_Check_is_LM)(class_Tile *); void (__thiscall *m31_set_field_30_bit_29)(class_Tile *, bool); char (__thiscall *m32_Check_field_30_bit_19)(class_Tile *); char (__thiscall *m33_Check_Radar)(class_Tile *, int); int (__thiscall *m34_Check_field_20_hiword)(class_Tile *); int (__thiscall *m35_Check_Is_Water)(class_Tile *); int (__thiscall *m36_Get_Ruins)(class_Tile *); char (__thiscall *m37_Get_River_Code)(class_Tile *); char (__thiscall *m38_Get_Territory_OwnerID)(class_Tile *); int (__thiscall *m39_Get_Resource_Type)(class_Tile *); int (__thiscall *m40_get_TileUnit_ID)(class_Tile *); int (__thiscall *m41_Get_Square_Parts)(class_Tile *); int (__thiscall *m42_Get_Overlays)(class_Tile *, int); int (__thiscall *m43_Get_field_30)(class_Tile *); __int16 (__thiscall *m44_Get_Barbarian_TribeID)(class_Tile *); int (__thiscall *m45_Get_City_ID)(class_Tile *this); int (__thiscall *m46_Get_ContinentID)(class_Tile *); __int16 (__thiscall *m47_Get_Tile_BuildingID)(class_Tile *); __int16 (__thiscall *m48_Get_field_20_hiword)(class_Tile *); int (__thiscall *m49_Get_Square_RealType)(_DWORD); int (__thiscall *m50_Get_Square_BaseType)(class_Tile *); void (__thiscall *m51_Unset_Tile_Flags)(class_Tile *, int, int, int, int); void (__thiscall *m52_Unset_River_Code_call_m53)(class_Tile *, char); int (__thiscall *m53_set_River_Code_field_30)(class_Tile *); void (__thiscall *m54_Set_Square_Parts)(class_Tile *this, int Square_Parts); void (__thiscall *m55_Set_Barbarian_TribeID)(class_Tile *, __int16); int (__thiscall *m56_Set_Tile_Flags)(class_Tile *this, int FlagSet, int Flags, int X, int Y); void (__thiscall *m57_Set_CityID)(class_Tile *, int); void (__thiscall *m58_Set_ContinentID)(class_Tile *this, _DWORD); int (__thiscall *m59_Process_Cities)(class_Tile *, signed int); void (__thiscall *m60_Set_Ruins)(class_Tile *, _DWORD); int (__thiscall *m61_Set_River_Code_Flood_Plains)(class_Tile *, int); void (__thiscall *m62_Set_Tile_BuildingID)(class_Tile *, __int16); int (__thiscall *m63_get_field_34)(class_Tile *); int (__thiscall *m64_set_field_34)(class_Tile *, int); int m65; void (__thiscall *m66_Set_Territory_OwnerID)(class_Tile *, char); int m67; int m68; int (__thiscall *m69_get_Tile_City_CivID)(_DWORD); int (__thiscall *m70_Get_Tile_Building_OwnerID)(class_Tile *); int (__thiscall *m71_Check_Worker_Job)(class_Tile *); int (__thiscall *m72_Get_Pollution_Effect)(class_Tile *); int m73; void (__thiscall *m74_Set_Square_Type)(class_Tile *, int, int, int); void (__thiscall *m75_Clear)(class_Tile *, signed int); int m76; }; #pragma pack(pop) /* 21 */ #pragma pack(push, 1) struct class_Race { class_Race_vtable *vtable; int field_4[4]; struct_String24 *CityNames; struct_String32 *MilitaryLeaders; char LeaderName[32]; char Title[24]; char Civilopedia_Entry[32]; char AdjectiveName[40]; char CountryName[40]; char SingularName[40]; struct_RaceEraAnimations EraAnimations[4]; int CultureGroupID; int LeaderGender; int CivGender; int AggressionLevel; int ID; int ShunnedGovernment; int FavoriteGovernment; int CityNamesCount; int MilitaryLeadersCount; int DefaultColor; int AlternateColor; int StartupAdvances[4]; int Bonuses; int GovernorSettings; int BuildNever; int BuildOften; int Plurality; int LeaderUnitID; int Flavours; int field_964; int DiplomacyTextIndex; int ScientificLeadersCount; int ScientificLeaders; }; #pragma pack(pop) /* 22 */ #pragma pack(push, 1) struct struct_RaceEraAnimations { char ForwardFilename[260]; char ReverseFilename[260]; }; #pragma pack(pop) /* 23 */ #pragma pack(push, 1) struct struct_String32 { char S[32]; }; #pragma pack(pop) /* 24 */ #pragma pack(push, 1) struct struct_String24 { char S[24]; }; #pragma pack(pop) /* 25 */ #pragma pack(push, 1) struct struct_String16 { char field_0[16]; }; #pragma pack(pop) /* 26 */ #pragma pack(push, 1) struct class_Race_vtable { int (__thiscall *CheckBonus)(class_Race *this, int BonusID); int GetBonuses; int GetAdjectiveName; int GetCountryName; int GetLeaderName; int GetTitle; char *(__thiscall *GetSingularName)(class_Race *); int GetStartupAdvance; int f1; }; #pragma pack(pop) /* 27 */ #pragma pack(push, 1) struct class_Citizens { int vtable; class_Citizen_Info *Items; int field_8; int field_C; int LastIndex; int Capacity; }; #pragma pack(pop) /* 28 */ #pragma pack(push, 1) struct class_Citizen_Info { int field_0; class_Citizen_Body *Body; }; #pragma pack(pop) /* 29 */ #pragma pack(push, 1) struct class_Citizen_Body { int vtable; int field_20[66]; int Mood; int Gender; int field_130; int field_134; int field_138; int WorkerType; int RaceID; int field_144; int field_148; }; #pragma pack(pop) /* 30 */ #pragma pack(push, 1) struct class_Advance { int field_0; char Name[32]; char Civilopedia_Entry[32]; int Cost; int Era; int Civ_Entry_Index; int X; int Y; int Reqs[4]; int Flags; int Flavours; int field_70; }; #pragma pack(pop) /* 32 */ #pragma pack(push, 1) struct struct_JGL_Graphics_vtable { int m00; int m01_Create_Window; int m02; int m03; int m04; int m05; int m06; int m07; int m08; int m09; int m10; int m11; int m12; int m13; int m14; int m15; int m16; int m17; int m18; int m19; int m20; int m21; int m22; int m23; int m24; int m25; int m26; int m27; int m28; int m29; int m30; int m31_Create_Image; int m32; int m33; int m34; int m35; int m36; int m37; int m38; int m39_Set_Triple_Values; int m40_Get_Triple_Values; int m41; int m42; int m43; int m44; int m45_Null; int m46; int m47; int m48; int m49; int m50; int m51; int m52; int m53; int m54; int m55; int m56; int m57; int m58; int m59; int m60; int m61; int m62; int m63; int m64; int m65; int m66; int m67; int m68; int m69; int m70; int m71; int m72; int m73; int m74; int m75; int m76; int m77; int m78; int m79; int m80; int m81; int m82; int m83; int m84; int m85; }; #pragma pack(pop) /* 33 */ #pragma pack(push, 1) struct class_City_Body { void *Body_vtable; int ID; __int16 X; __int16 Y; char CivID; char field_D; char field_E; char field_F; int Improvements_Maintenance; int Status; int Common_Policy; int Production_Policy; int Production_Policy_Often; int StoredFood; int StoredProduction; int Improvements_Pollution; int Order_ID; int Order_Type; int field_38[6]; int DraftCount; int field_70[11]; int Available_Resources; int field_84; int field_A4; class_Buildings_Info Buildings; class_Citizens Citizens; int field_F4[9]; class_Population Population; int CultureIncome; int Total_Cultures[32]; int field_1A4; int Rioting_Change_Value; int Tiles_Food; int Tiles_Production; int Tiles_Commerce; int field_1B8; int field_1BC; int field_1C0; char CityName[20]; int field_1D8; int Order_Queue_Count; struct_City_Order Orders_Queue[9]; int FoodRequired; int ProductionLoss; int Corruption; int FoodIncome; int ProductionIncome; int CashIncome; int Luxury; int Science; int AddCash; int AddLuxury; int AddScience; int AddTaxes; class_City_Improvements Improvements_1; class_City_Improvements Improvements_2; class_Date Found_Date; int field_350; int field_354; int Improvement_Count; int field_35C; int *Unit_Produce_Times; int field_364; int field_368; class_CTPG CTPG; int Current_Improvement_Shields; int struct_198; int field_3A4[96]; int Last; }; #pragma pack(pop) /* 34 */ #pragma pack(push, 1) struct class_CityItem { int field_0; class_City_Body *City; }; #pragma pack(pop) /* 35 */ #pragma pack(push, 1) struct type_info { void *vftable; int _m_data; char _m_d_name[]; }; #pragma pack(pop) /* 36 */ #pragma pack(push, 1) struct PMD { int mdisp; int pdisp; int vdisp; }; #pragma pack(pop) /* 37 */ #pragma pack(push, 1) struct RTTIBaseClassDescriptor { void *pTypeDescriptor; int numContainedBases; PMD pmd; int attributes; }; #pragma pack(pop) /* 38 */ #pragma pack(push, 1) struct RTTIClassHierarchyDescriptor { int signature; int attributes; int numBaseClasses; void *pBaseClassArray; }; #pragma pack(pop) /* 39 */ #pragma pack(push, 1) struct RTTICompleteObjectLocator { int signature; int offset; int cdOffset; void *pTypeDescriptor; void *pClassDescriptor; }; #pragma pack(pop) /* 40 */ #pragma pack(push, 1) struct RTCI { void *m_lpszClassName; int m_nObjectSize; int m_wSchema; void *m_pfnCreateObject; void *m_pfnGetBaseClass; int m_pNextClass; int m_pClassInit; }; #pragma pack(pop) /* 41 */ #pragma pack(push, 1) struct class_Citizen_Base { class_Citizen_Base_vtable *vtable; int field_4; char str_CTZN[4]; int field_C; int field_10; int field_14; int field_18; class_Citizen_Body Body; }; #pragma pack(pop) /* 42 */ #pragma pack(push, 1) struct class_Tile_Base_vtable { int ctor; int m1; int m2; int m3; int m4; }; #pragma pack(pop) /* 43 */ #pragma pack(push, 1) struct class_Citizen_Base_vtable { int ctor; int m1; int m2; int m3; int m4; }; #pragma pack(pop) /* 44 */ #pragma pack(push, 1) struct class_Base { class_Base_vtable *vtable; int field_4; int ClassName; int DataLength; int field_10; void *pStart; void *pEnd; }; #pragma pack(pop) /* 45 */ #pragma pack(push, 1) struct class_Continent { class_Base Base; class_Continent_Body Body; }; #pragma pack(pop) /* 46 */ #pragma pack(push, 1) struct class_Continent_Body { int vtable; int V1; int TileCount; }; #pragma pack(pop) /* 47 */ #pragma pack(push, 1) struct class_Buildings_Info { class_Base Base; struct_Buildings_Info_Item *Items; int Count; int field_24; int field_28; int field_2C; int field_30; }; #pragma pack(pop) /* 48 */ #pragma pack(push, 1) struct class_Population { class_Base Base; int Jobs; int Size; }; #pragma pack(pop) /* 49 */ #pragma pack(push, 1) struct class_City_Improvements { class_Base Base; char Improvements[32]; int Count; int Aligned_Capacity; }; #pragma pack(pop) /* 50 */ #pragma pack(push, 1) struct class_Cities { int vtable; class_CityItem *Cities; int V1; int V2; int LastIndex; int Capacity; }; #pragma pack(pop) /* 51 */ #pragma pack(push, 1) struct class_Units { int vtable; struct_UnitItem *Units; int V1; int V2; int LastIndex; int Capacity; }; #pragma pack(pop) /* 52 */ enum VitrualKeys { VK_LBUTTON = 0x1, VK_RBUTTON = 0x2, VK_CANCEL = 0x3, VK_MBUTTON = 0x4, VK_XBUTTON1 = 0x5, VK_XBUTTON2 = 0x6, VK_BACK = 0x8, VK_TAB = 0x9, VK_CLEAR = 0xC, VK_RETURN = 0xD, VK_SHIFT = 0x10, VK_CONTROL = 0x11, VK_MENU = 0x12, VK_PAUSE = 0x13, VK_CAPITAL = 0x14, VK_KANA = 0x15, VK_KANJI = 0x19, VK_ESCAPE = 0x1B, VK_CONVERT = 0x1C, VK_NONCONVERT = 0x1D, VK_ACCEPT = 0x1E, VK_MODECHANGE = 0x1F, VK_SPACE = 0x20, VK_PRIOR = 0x21, VK_NEXT = 0x22, VK_END = 0x23, VK_HOME = 0x24, VK_LEFT = 0x25, VK_UP = 0x26, VK_RIGHT = 0x27, VK_DOWN = 0x28, VK_SELECT = 0x29, VK_PRINT = 0x2A, VK_EXECUTE = 0x2B, VK_SNAPSHOT = 0x2C, VK_INSERT = 0x2D, VK_DELETE = 0x2E, VK_HELP = 0x2F, VK_0 = 0x30, VK_1 = 0x31, VK_2 = 0x32, VK_3 = 0x33, VK_4 = 0x34, VK_5 = 0x35, VK_6 = 0x36, VK_7 = 0x37, VK_8 = 0x38, VK_9 = 0x39, VK_A = 0x41, VK_B = 0x42, VK_C = 0x43, VK_D = 0x44, VK_E = 0x45, VK_F = 0x46, VK_G = 0x47, VK_H = 0x48, VK_I = 0x49, VK_J = 0x4A, VK_K = 0x4B, VK_L = 0x4C, VK_M = 0x4D, VK_N = 0x4E, VK_O = 0x4F, VK_P = 0x50, VK_Q = 0x51, VK_R = 0x52, VK_S = 0x53, VK_T = 0x54, VK_U = 0x55, VK_V = 0x56, VK_W = 0x57, VK_X = 0x58, VK_Y = 0x59, VK_Z = 0x5A, VK_LWIN = 0x5B, VK_RWIN = 0x5C, VK_APPS = 0x5D, VK_SLEEP = 0x5F, VK_NUMPAD0 = 0x60, VK_NUMPAD1 = 0x61, VK_NUMPAD2 = 0x62, VK_NUMPAD3 = 0x63, VK_NUMPAD4 = 0x64, VK_NUMPAD5 = 0x65, VK_NUMPAD6 = 0x66, VK_NUMPAD7 = 0x67, VK_NUMPAD8 = 0x68, VK_NUMPAD9 = 0x69, VK_MULTIPLY = 0x6A, VK_ADD = 0x6B, VK_SEPARATOR = 0x6C, VK_SUBTRACT = 0x6D, VK_DECIMAL = 0x6E, VK_DIVIDE = 0x6F, VK_F1 = 0x70, VK_F2 = 0x71, VK_F3 = 0x72, VK_F4 = 0x73, VK_F5 = 0x74, VK_F6 = 0x75, VK_F7 = 0x76, VK_F8 = 0x77, VK_F9 = 0x78, VK_F10 = 0x79, VK_F11 = 0x7A, VK_F12 = 0x7B, VK_F13 = 0x7C, VK_F14 = 0x7D, VK_F15 = 0x7E, VK_F16 = 0x7F, VK_F17 = 0x80, VK_F18 = 0x81, VK_F19 = 0x82, VK_F20 = 0x83, VK_F21 = 0x84, VK_F22 = 0x85, VK_F23 = 0x86, VK_F24 = 0x87, VK_NUMLOCK = 0x90, VK_SCROLL = 0x91, VK_OEM_NEC_EQUAL = 0x92, VK_OEM_FJ_JISHO = 0x92, VK_OEM_FJ_MASSHOU = 0x93, VK_OEM_FJ_TOUROKU = 0x94, VK_OEM_FJ_LOYA = 0x95, VK_OEM_FJ_ROYA = 0x96, VK_LSHIFT = 0xA0, VK_RSHIFT = 0xA1, VK_LCONTROL = 0xA2, VK_RCONTROL = 0xA3, VK_LMENU = 0xA4, VK_RMENU = 0xA5, VK_BROWSER_BACK = 0xA6, VK_BROWSER_FORWARD = 0xA7, VK_BROWSER_REFRESH = 0xA8, VK_BROWSER_STOP = 0xA9, VK_BROWSER_SEARCH = 0xAA, VK_BROWSER_FAVORITES = 0xAB, VK_BROWSER_HOME = 0xAC, VK_VOLUME_MUTE = 0xAD, VK_VOLUME_DOWN = 0xAE, VK_VOLUME_UP = 0xAF, VK_MEDIA_NEXT_TRACK = 0xB0, VK_MEDIA_PREV_TRACK = 0xB1, VK_MEDIA_STOP = 0xB2, VK_MEDIA_PLAY_PAUSE = 0xB3, VK_LAUNCH_MAIL = 0xB4, VK_LAUNCH_MEDIA_SELECT = 0xB5, VK_LAUNCH_APP1 = 0xB6, VK_LAUNCH_APP2 = 0xB7, VK_OEM_1 = 0xBA, VK_OEM_PLUS = 0xBB, VK_OEM_COMMA = 0xBC, VK_OEM_MINUS = 0xBD, VK_OEM_PERIOD = 0xBE, VK_OEM_2 = 0xBF, VK_OEM_3 = 0xC0, VK_OEM_4 = 0xDB, VK_OEM_5 = 0xDC, VK_OEM_6 = 0xDD, VK_OEM_7 = 0xDE, VK_OEM_8 = 0xDF, VK_OEM_AX = 0x0, VK_OEM_102 = 0x0, VK_ICO_HELP = 0x0, VK_ICO_00 = 0x0, VK_PROCESSKEY = 0x0, VK_ICO_CLEAR = 0x0, VK_PACKET = 0x0, VK_OEM_RESET = 0x0, VK_OEM_JUMP = 0xEA, VK_OEM_PA1 = 0xEB, VK_OEM_PA2 = 0xEC, VK_OEM_PA3 = 0xED, VK_OEM_WSCTRL = 0xEE, VK_OEM_CUSEL = 0xEF, VK_OEM_ATTN = 0xF0, VK_OEM_FINISH = 0xF1, VK_OEM_COPY = 0xF2, VK_OEM_AUTO = 0xF3, VK_OEM_ENLW = 0xF4, VK_OEM_BACKTAB = 0xF5, VK_ATTN = 0xF6, VK_CRSEL = 0xF7, VK_EXSEL = 0xF8, VK_EREOF = 0xF9, VK_PLAY = 0xFA, VK_ZOOM = 0xFB, VK_NONAME = 0xFC, VK_PA1 = 0xFD, VK_OEM_CLEAR = 0xFE, }; /* 53 */ #pragma pack(push, 1) struct class_Main_Window { int vtable; int field_4[5029]; int ScreenX; int ScreenY; int field_4EA0[10145]; int field_ED24; int field_ED28; }; #pragma pack(pop) /* 54 */ #pragma pack(push, 1) struct class_Map_Body { class_Base Base; }; #pragma pack(pop) /* 56 */ #pragma pack(push, 1) struct class_BIC { class_Base Base; int field_1C[523]; int field_848; int field_84C; int field_850[10]; int ImprovementsCount; int CitiesCount; int CitizenTypeCount; int ColoniesCount; int CulturalOpinionCount; int DifficultyLevelCount; int ErasCount; int DiplomatMissionCount; int CombatExperienceCount; int ResourceTypeCount; int GovernmentsCount; int Player_Count; int UnitTypeCount; int RacesCount; int StartingLocationsCount; int AdvanceCount; int WorkerJobCount; int TileTypesCount; int UnitsCount; int WorldSizesCount; int field_8C8; int Header; int field_8D0; int field_8D4[180]; struct_Improvement *Improvements; struct_Citizen_Type *CitizenTypes; int Cities; int Colonies; int CulturalOpinions; struct_Difficulty_Level *DifficultyLevels; struct_Era_Type *Eras; int DiplomatMissions; struct_Combat_Experience *CombatExperience; int Game; int field_BCC; int field_BD0; int field_BD4; int field_BD8[3132]; class_Race *Races; struct_Resource_Type *ResourceTypes; class_Government *Governments; struct_Scenario_Player *Players; struct_UnitType *UnitTypes; class_General General; struct_Starting_Location *StartingLocations; class_Advance *Advances; struct_Worker_Job *WorkerJobs; struct_Tile_Type *TileTypes; int Units; struct_World_Size *WorldSizes; int Flavours; int ScreenWidth; int ScreenHeight; int field_3E38; int field_3E3C; class_Unknown_5 Unknown5; class_Map Map; }; #pragma pack(pop) /* 57 */ #pragma pack(push, 1) struct struct_Map_vtable { char (__thiscall *m00_Create_Tiles)(class_Map *, int); int (__thiscall *m01_Create_WH_Tiles)(class_Map *); int m02; void (__thiscall *m03)(class_Map *); void (__thiscall *m04_Clear_Tiles)(class_Map *); int m05; int m06; int m07_Init_Continents2; int m08; int m09_Init; bool (__thiscall *m10_Get_Map_Zoom)(class_Map *); int m11_Get_Tile_by_XY2; class_Tile *(__thiscall *m12_Get_Tile_by_XY)(class_Map *, int, int); class_Tile *(__thiscall *m13_Get_Tile_by_Index)(class_Map *, int); int m14; int m15_null; int m16; int m17; char (__thiscall *m18)(class_Map *, int, int); int (__thiscall *m19_Create_Tiles)(class_Map *, class_Tile **); int m20; int m21; int m22; int m23; int m24; int m25; int m26; int m27; int m28_Find_Center_Neighbour_Point; int m29; void (__thiscall *m30_Init_Tiles)(class_Map *this, int SquareType, int); void (__thiscall *m31)(class_Map *this); void (__thiscall *m32)(class_Map *); int (__thiscall *m33_Get_Continent)(class_Map *, _DWORD); int (__thiscall *m34_Get_Continent_Count)(class_Map *); int (__thiscall *m35_Get_BIC_Sub_Data)(class_Map *this, int Object_Type, int Object_Index, void *Object); }; #pragma pack(pop) /* 58 */ #pragma pack(push, 1) struct struct_Base_List_Item { int V; void *Object; }; #pragma pack(pop) /* 59 */ #pragma pack(push, 1) struct class_Base_List { int vtable; struct_Base_List_Item *Items; int V1; int V2; int LastIndex; int Capacity; }; #pragma pack(pop) /* 60 */ enum SquareTypes { SQ_Desert = 0x0, SQ_Plains = 0x1, SQ_Grassland = 0x2, SQ_Tundra = 0x3, SQ_FloodPlain = 0x4, SQ_Hills = 0x5, SQ_Mountains = 0x6, SQ_Forest = 0x7, SQ_Jungle = 0x8, SQ_Swamp = 0x9, SQ_Volcano = 0xA, SQ_Coast = 0xB, SQ_Sea = 0xC, SQ_Ocean = 0xD, }; /* 61 */ #pragma pack(push, 1) struct class_TileUnits { class_Base_List Base; int DefaultValue; }; #pragma pack(pop) /* 62 */ #pragma pack(push, 1) struct class_Game { class_Base Base; }; #pragma pack(pop) /* 63 */ #pragma pack(push, 1) struct class_Map_Renderer { struct_Map_Renderer_vtable *vtable; int field_4[173]; int MapGrid_Flag; int b_Action_Mode; int field_2C0; int field_2C4; int field_2C8; int field_2CC; int Action_Mode_Range; int Action_Mode_CenterX; int Action_Mode_CenterY; int Flags; class_Map *Map; int field_2E4[50]; struct_String260 PCX_Airfields_and_Detect; struct_String260 PCX_Airfields_and_Detect_Shadow; struct_String260 PCX_Flood_Plains; struct_String260 PCX_Fog_of_War; struct_String260 PCX_Grassland_Forests; struct_String260 PCX_Plains_Forests; struct_String260 PCX_Tundra_Forests; struct_String260 PCX_Goody_Huts; struct_String260 PCX_Hills; struct_String260 PCX_Hills_Forests; struct_String260 PCX_Hills_Jungles; struct_String260 PCX_Irrigation_Desert; struct_String260 PCX_Irrigation; struct_String260 PCX_Irrigation_Plains; struct_String260 PCX_Irrigation_Tundra; struct_String260 PCX_Mountains; struct_String260 PCX_Mountain_Forests; struct_String260 PCX_Mountain_Jungles; struct_String260 PCX_Mountains_Show; struct_String260 PCX_LM_Hills; struct_String260 PCX_LM_Mountains; struct_String260 PCX_LM_Forests; struct_String260 PCX_LM_Terrain_Images[9]; struct_String260 PCX_Marsh; struct_String260 PCX_Volcanos; struct_String260 PCX_Volcanos_Forests; struct_String260 PCX_Volcanos_Jungles; struct_String260 PCX_Volcanos_Snow; struct_String260 PCX_Polar_Icecaps; struct_String260 PCX_Pollution; struct_String260 PCX_Craters; struct_String260 PCX_Railroads; struct_String260 PCX_Roads; struct_String260 PCX_Terrain_Buildings; struct_String260 PCX_Territory; struct_String260 PCX_Tnt; struct_String260 PCX_Victory; struct_String260 PCX_Waterfalls; struct_String260 PCX_LM_Terrain; struct_String260 PCX_Delta_Rivers; struct_String260 PCX_Rivers; struct_String260 PCX_Std_Terrain_Images[9]; int field_3E94[4]; int field_3EA4; int field_3EA8; class_Tile_Image_Info *Resources; class_Tile_Image_Info *ResourcesShadows; class_Tile_Image_Info Terrain_Buldings_Barbarian_Camp; class_Tile_Image_Info Terrain_Buldings_Mines; class_Tile_Image_Info Victory_Image; class_Tile_Image_Info Flood_Plains_Images[16]; class_Tile_Image_Info Fog_Of_War_Images[81]; class_Tile_Image_Info Polar_Icecaps_Images[32]; class_Tile_Image_Info Railroads_Images[272]; class_Tile_Image_Info Roads_Images[256]; class_Tile_Image_Info Terrain_Buldings_Airfields[2]; class_Tile_Image_Info Terrain_Buldings_Airfields_Shadow[2]; class_Tile_Image_Info Terrain_Buldings_Camp[4]; class_Tile_Image_Info Terrain_Buldings_Fortress[4]; class_Tile_Image_Info Terrain_Buldings_Barricade[4]; class_Tile_Image_Info Goody_Huts_Images[8]; class_Tile_Image_Info Terrain_Buldings_Outposts[3]; class_Tile_Image_Info Terrain_Buldings_Outposts_Shadow[3]; class_Tile_Image_Info Pollution[25]; class_Tile_Image_Info Craters[25]; class_Tile_Image_Info Terrain_Buldings_Radar; class_Tile_Image_Info Terrain_Buldings_Radar_Shadow; class_Tile_Image_Info Tnt_Images[18]; class_Tile_Image_Info Waterfalls_Images[4]; class_Tile_Image_Info LM_Terrain[7]; class_Tile_Image_Info Marsh_Large[8]; class_Tile_Image_Info Marsh_Small[10]; class_Tile_Image_Info field_C650; class_Tile_Image_Info field_C67C; class_Tile_Image_Info Volcanos_Images[16]; class_Tile_Image_Info Volcanos_Forests_Images[16]; class_Tile_Image_Info Volcanos_Jungles_Images[16]; class_Tile_Image_Info Volcanos_Snow_Images[16]; class_Tile_Image_Info Grassland_Forests_Large[8]; class_Tile_Image_Info Plains_Forests_Large[8]; class_Tile_Image_Info Tundra_Forests_Large[8]; class_Tile_Image_Info Grassland_Forests_Small[10]; class_Tile_Image_Info Plains_Forests_Small[10]; class_Tile_Image_Info Tundra_Forests_Small[10]; class_Tile_Image_Info Grassland_Forests_Pines[12]; class_Tile_Image_Info Plains_Forests_Pines[12]; class_Tile_Image_Info Tundra_Forests_Pines[12]; class_Tile_Image_Info Irrigation_Desert_Images[16]; class_Tile_Image_Info Irrigation_Plains_Images[16]; class_Tile_Image_Info Irrigation_Images[16]; class_Tile_Image_Info Irrigation_Tundra_Images[16]; class_Tile_Image_Info Grassland_Jungles_Large[8]; class_Tile_Image_Info Grassland_Jungles_Small[12]; class_Tile_Image_Info Mountains_Images[16]; class_Tile_Image_Info Mountains_Forests_Images[16]; class_Tile_Image_Info Mountains_Jungles_Images[16]; class_Tile_Image_Info Mountains_Snow_Images[16]; class_Tile_Image_Info Hills_Images[16]; class_Tile_Image_Info Hills_Forests_Images[16]; class_Tile_Image_Info Hills_Jungle_Images[16]; struct_Tile_Image_Info_List Std_Terrain_Images[9]; class_Tile_Image_Info Delta_Rivers_Images[16]; class_Tile_Image_Info Mountain_Rivers_Images[16]; class_Tile_Image_Info Territory_Images[8]; class_Tile_Image_Info LM_Mountains_Images[16]; class_Tile_Image_Info LM_Forests_Large_Images[8]; class_Tile_Image_Info LM_Forests_Small_Images[10]; class_Tile_Image_Info LM_Forests_Pines_Images[12]; class_Tile_Image_Info LM_Hills_Images[16]; struct_Tile_Image_Info_List LM_Terrain_Images[9]; }; #pragma pack(pop) /* 64 */ #pragma pack(push, 1) struct class_Unknown_3 { int vtable; int V1; void *Units[1024]; int Unit_Count; int field_100C[572]; int field_18FC; int field_1900; int field_1904; }; #pragma pack(pop) /* 65 */ #pragma pack(push, 1) struct class_Tile_Info_Form { class_Base_Form Base; class_Tile_Image_Info Image; class_Button Close_Btn; int field_C74; }; #pragma pack(pop) /* 66 */ #pragma pack(push, 1) struct struct_Resource_Type { int ID; char Name[24]; char Civilopedia_Entry[32]; int Class; int AppearanceRatio; int DisappearanceProbability; int IconID; int RequireID; int Food; int Shield; int Commerce; }; #pragma pack(pop) /* 67 */ #pragma pack(push, 1) struct struct_String64 { char S[64]; }; #pragma pack(pop) /* 68 */ #pragma pack(push, 1) struct struct_Tile_Type { int V0; int field_4; int Ptr1; struct_String32 Name; struct_String32 Civilopedia_Entry; int IrrigationBonus; int MiningBonus; int RoadsBonus; int DefenceBonus; int MoveCost; int field_60; int FoodBase; int ProductionBase; int TradeBase; int WorkerJobID; int PollutionsEffect; struct_Tile_Type_Flags Flags; int field_80; int field_84; int LM_FoodBase; int LM_ProductionBase; int LM_TradeBase; int LM_IrrigationBonus; int LM_MiningBonus; int LM_Roads_Bonus; int LM_MoveCost; int LM_DefenceBonus; struct_String32 LM_Name; struct_String32 LM_Entry; int field_E8; int field_EC; }; #pragma pack(pop) /* 69 */ #pragma pack(push, 1) struct struct_Worker_Job { int V; struct_String32 Name; struct_String32 Civilopedia_Entry; int TurnToComplete; int RequireID; int Resource1ID; int Resource2ID; struct_String32 Order; }; #pragma pack(pop) /* 70 */ #pragma pack(push, 1) struct struct_World_Size { int V; int OptimalCityCount; int TechRate; int field_C; int field_10; int field_14; int field_18; int field_1C; int field_20; struct_String32 Name; int Height; int CivDistance; int CivCount; int Width; }; #pragma pack(pop) /* 71 */ #pragma pack(push, 1) struct struct_Cultural_Levels { struct_String64 *Levels; int Multiplier; int Count; }; #pragma pack(pop) /* 72 */ #pragma pack(push, 1) struct class_General { int vtable; int V1; struct_String32 CityTypeNames[3]; int *SpaceshipPartsNeeded; int BarbarianAdvUnitID; int BarbarianBasicUnitID; int BarbarianSeaUnitID; int ArmySupportCities; int TurnPenalty_Hurry; int TurnPenalty_Draft; int ShieldCostPerGold; int DefenceBonus_Fortress; int HappyCitizensAffect; int V2; int V3; int ForestValueInShields; int ShieldValueInGold; int CitizenValueInShields; int Default_Difficulty; int BattleCreatedUnitID; int BuildArmyUnitID; int DefenceBonus_Building; int DefenceBonus_Citizen; int DefaultMoneyResource; int InterceptChance_Air; int InterceptChance_Stealth; int SpaceshipParts_Count; int StartingTreasury; int V4; int FoodPerCitizen; int DefenceBonus_River; int ChanceOfRioting; int DefaultUnit_Scout; int DefaultUnit_Captured; int RoadsMovementRate; int DefaultUnit_Start1; int DefaultUnit_Start2; int LoveKing_Min_Poppulation; int DefenceBonus_Cities[3]; int MaximumSize_Town; int MaximumSize_City; int V5; int DefenceBonus_Fortification; struct_Cultural_Levels CulturalLevels; int BorderFactor; int FutureTechCost; int GoldenAgeTurns; int ResearchTime_Max; int ResearchTime_Min; int FlagUnitID; int FoodUpdateCost; }; #pragma pack(pop) /* 73 */ #pragma pack(push, 1) struct class_Unknown_5 { int V[9]; }; #pragma pack(pop) /* 74 */ #pragma pack(push, 1) struct class_Unknown_6 { int vtable; }; #pragma pack(pop) /* 75 */ enum BICDataCodes { BIC_Header = 0x23524556, BIC_StartingLocations = 0x434F4C53, BIC_Leaders = 0x4441454C, BIC_Resources = 0x444F4F47, BIC_Races = 0x45434152, BIC_Tiles = 0x454C4954, BIC_GeneralSettings = 0x454C5552, BIC_Game = 0x454D4147, BIC_DifficultyLevels = 0x46464944, BIC_Improvements = 0x47444C42, BIC_Advances = 0x48434554, BIC_WorkerJobs = 0x4D524654, BIC_Diplomats = 0x4E505345, BIC_Citizens = 0x4E5A5443, BIC_UnitTypes = 0x4F545250, BIC_WorldMap = 0x50414D57, BIC_WorldCharacteristics = 0x52484357, BIC_CombatExperience = 0x52505845, BIC_TileTypes = 0x52524554, BIC_Eras = 0x53415245, BIC_Units = 0x54494E55, BIC_Culture = 0x544C5543, BIC_Continents = 0x544E4F43, BIC_Governments = 0x54564F47, BIC_Flavours = 0x56414C46, BIC_Colonies = 0x594E4C43, BIC_Cities = 0x59544943, BIC_WorldSizes = 0x5A495357, }; /* 76 */ #pragma pack(push, 1) struct class_Tile_Type_Image { int vtable; struct_String64 Name; struct_String64 CivilopediaEntry; struct_String64 SmallImageFile; struct_String64 LargeImageFile; int field_104; int field_108; int field_10C; int field_110; int field_114; int field_118; int field_11C; int field_120; int field_124; int field_128; int field_12C; struct_Tile_Type *TileType; }; #pragma pack(pop) /* 77 */ #pragma pack(push, 1) struct struct_Improvement { int field_0[17]; struct_String32 Name; struct_String32 CivilopediaEntry; int Double_Happiness_Building; int Gain_Building_Global; int Gain_Building_Continent; int ImprovementID; int Cost; int Culture; int Combat_Bombard; int Naval_Bombard_Defence; int Combat_Defence; int NavalDefenceBonus; int Maintenance; int Happy_Faces_All; int Happy_Faces; int Unhappy_Faces_All; int Unhappy_Faces; int RequiredBuildingsCount; int AirPower; int NavalPower; int Pollution; int Production; int GovernmentID; int SpaceshipPart; int RequiredID; int ObsoleteID; int Resource1ID; int Resource2ID; int ImprovementFlags; ImprovementTypeCharacteristics Characterictics; int SmallWonderFlags; int WonderFlags; int ArmyRequiredCount; int Flavours; int field_104; int Unit_Produced; int Unit_Frequency; }; #pragma pack(pop) /* 78 */ #pragma pack(push, 1) struct struct_Citizen_Type { int V1; int V2; struct_String32 Name; struct_String32 CivilopediaEntry; struct_String32 PluralName; int RequireID; int Luxury; int Research; int Tax; int Corruption; int Construction; }; #pragma pack(pop) /* 79 */ #pragma pack(push, 1) struct struct_Map_Renderer_vtable { int m00; int m01; int m02; int m03; int m04; int (__thiscall *m05_Check_dword_9AFD34)(_DWORD); void (__thiscall *m06_Draw_Tile_Terrain)(class_Map_Renderer *this, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void (__thiscall *m07_Draw_Tile_City_and_Victory_Point)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void (__thiscall *m08_Draw_Tile_Forests_Jungles_Swamp)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void (__thiscall *m09_Draw_Tile_Resources)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void (__thiscall *m10_Draw_Tile_Mountains_Hills_Volcano)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void (__thiscall *m11_Draw_Tile_Irrigation)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void (__thiscall *m12_Draw_Tile_Buildings)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void (__thiscall *m13_Draw_Tile_Pollution)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void (__thiscall *m14_Draw_Tile_Railroads)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void (__thiscall *m15_Draw_Tile_Rivers_and_Flood_Plains)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void (__thiscall *m16_Draw_Tile_Roads)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void (__thiscall *m17_Draw_Tile_Territory)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void (__thiscall *m18_Draw_Tile_Tnt)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void (__thiscall *m19_Draw_Tile_by_XY_and_Flags)(class_Map_Renderer *, int, int, int, int, signed int, int, int, int); int m20_Draw_Tiles; void (__thiscall *m21_Draw_Tiles_by_Flags)(class_Map_Renderer *, int, int, int, int, int, int X, int Y, int Flags); void (__thiscall *m22_Draw_Airfield)(class_Map_Renderer *, int, int, int, int, int, int); void (__thiscall *m23_Draw_Barbarian_Camp)(class_Map_Renderer *, int); void (__thiscall *m24_Draw_Terrain_Images)(class_Map_Renderer *, signed int, _DWORD, int, int, int, int, int); void (__thiscall *m25_Draw_City_Image)(class_Map_Renderer *, int, int, int, int, int, int); void (__thiscall *m26_Draw_Colony)(class_Map_Renderer *, int, int, int, int, int, int); void (__thiscall *m27_Draw_Flood_Plains)(class_Map_Renderer *, int, int, int, int); int (__thiscall *m28_Draw_Forests_Large)(class_Map_Renderer *, signed int, _DWORD, int, int, int, int); int (__thiscall *m29_Draw_Forests_Pines)(class_Map_Renderer *, signed int, _DWORD, int, int, int, int); int (__thiscall *m30_Draw_Forests_Small)(class_Map_Renderer *, signed int, _DWORD, int, int, int, int); void (__thiscall *m31_Draw_Fortress)(class_Map_Renderer *, int, int, int, int, int, int); void (__thiscall *m32_Draw_Barricade)(class_Map_Renderer *, int, int, int, int, int, int); int (__thiscall *m33_Draw_Resource)(class_Map_Renderer *, _DWORD, int, int, int, int, int, int); void (__thiscall *m34_Draw_Goody_Huts)(class_Map_Renderer *, _DWORD, int, int, int); void (__thiscall *m35_Check_Map_Zoom)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void (__thiscall *m36_Check_Map_Zoom)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); int (__thiscall *m37_Draw_Hills)(class_Map_Renderer *, int, int, int, int, int, int); signed int (__thiscall *m38_Draw_Irrigation)(class_Map_Renderer *, signed int, int, int, int, int); int (__thiscall *m39_Draw_Grassland_Jungles_Large)(class_Map_Renderer *, signed int, _DWORD, int, int, int); int (__thiscall *m40_Draw_Grassland_Jungles_Small)(class_Map_Renderer *, signed int, _DWORD, int, int, int); void (__thiscall *m41_Draw_Mines)(class_Map_Renderer *, int, int, int); int m42_Draw_Mountains; int (__thiscall *m43_Draw_Marsh_Large)(class_Map_Renderer *, signed int, _DWORD, int, int, int); int (__thiscall *m44_Draw_Marsg_Small)(class_Map_Renderer *, signed int, _DWORD, int, int, int); int (__thiscall *m45_Draw_Volcano)(class_Map_Renderer *, int, int, int, int, int); void (__thiscall *m46_Draw_Outpost)(class_Map_Renderer *, int, int, int, int, int, int); int (__thiscall *m47_Draw_Polar_Icecaps)(class_Map_Renderer *, int, int, int, int); int (__thiscall *m48_Draw_Pollution)(class_Map_Renderer *, int, int, int, int); void (__thiscall *m49_Draw_Craters)(class_Map_Renderer *, int, int, int, int); int (__thiscall *m50_Draw_Railroads)(class_Map_Renderer *this, int Image_Index, int, int, int); int (__thiscall *m51_Draw_Rivers)(class_Map_Renderer *, signed int, int, int, int, int); int (__thiscall *m52_Draw_Roads)(class_Map_Renderer *this, int ImageIndex, int, int, int); void (__thiscall *m53_Draw_City_Ruins)(class_Map_Renderer *, _DWORD, int, int, int); void (__thiscall *m54_null)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void (__thiscall *m55_Draw_Territory_Border)(class_Map_Renderer *, int, int, char, int, int, int, int, int); int (__thiscall *m56_null)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void (__thiscall *m57_Draw_Radar)(class_Map_Renderer *, int, int, int, int, int, int); void (__thiscall *m58_Draw_LM_Terrain)(_DWORD, _DWORD); int (__thiscall *m59_Draw_Tnt_Row0)(class_Map_Renderer *, _DWORD, int, int, int, int); int (__thiscall *m60_Draw_Row1)(class_Map_Renderer *, _DWORD, int, int, int); int (__thiscall *m61_Draw_Tnt_Row2)(class_Map_Renderer *, _DWORD, int, int, int, int); int (__thiscall *m62_Draw_Tnt_Row3)(class_Map_Renderer *, _DWORD, int, int, int, int); int (__thiscall *m63_Draw_Tnt_Row4)(class_Map_Renderer *, _DWORD, int, int, int, int); int (__thiscall *m64_Draw_Tnt_Row5)(class_Map_Renderer *, _DWORD, int, int, int); void (__thiscall *m65_null)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); int (__thiscall *m66_Draw_Victory_Point)(class_Map_Renderer *, int, int, int, int, int, int); int m67; void (__thiscall *m68_Toggle_Grid)(class_Map_Renderer *); int m69; void (__thiscall *m70_Draw_Info_Dialog_Tile)(class_Map_Renderer *, int, int, int, int, int, int); void (__thiscall *m71_Draw_Tiles)(class_Map_Renderer *this, int CivID, class_PCX_Image *PCX_Image, int Arg5); int m72; }; #pragma pack(pop) /* 80 */ #pragma pack(push, 1) struct struct_String260 { char S[260]; }; #pragma pack(pop) /* 81 */ #pragma pack(push, 1) struct class_Tile_Image_Info { struct_Tile_Image_Info_vtable *vtable; class_JGL_Image_Info *JGL_Image_Info; int field_8; class_PCX_Color_Table *Color_Table; int Width3; int Height3; int Width; int Height; int Width2; int Height2; int field_28; }; #pragma pack(pop) /* 82 */ #pragma pack(push, 1) struct struct_Tile_Image_Info_vtable { int m00; }; #pragma pack(pop) /* 83 */ #pragma pack(push, 1) struct struct_Tile_Image_Info_List { class_Tile_Image_Info field_0[81]; }; #pragma pack(pop) /* 84 */ #pragma pack(push, 1) struct class_PCX_Image { int vtable; class_JGL_Renderer JGL; }; #pragma pack(pop) /* 85 */ enum Resource_Type_Classes { RC_Bonus = 0x0, RC_Luxury = 0x1, RC_Strategic = 0x2, }; /* 86 */ #pragma pack(push, 1) struct class_Base_vtable { int m00; int m01; int (__thiscall *m02_Save_Data)(class_Base *, void *); int (__thiscall *m03_Read_Data)(class_Base *, void *); }; #pragma pack(pop) /* 87 */ #pragma pack(push, 1) struct struct_City_Screen_FileNames { struct_String260 CityIcons42; struct_String260 PCX_Background; struct_String260 DraftButton; struct_String260 BottomFadeBar; struct_String260 BottomFadeBarAlpha; struct_String260 TopFadeBar; struct_String260 TopFadeBarAlpha; struct_String260 Govern; struct_String260 HurryButton; struct_String260 CityIcons; struct_String260 LuxuryIconsSmall; struct_String260 PopheadHilite; struct_String260 MgmtButtons; struct_String260 ProdButton; struct_String260 ProductionQueueBar; struct_String260 QueueBase; struct_String260 ProductionQueueBox; struct_String260 Labels; struct_String260 XAndView; struct_String260 XAndView2; }; #pragma pack(pop) /* 88 */ enum City_Icons_Small { CIS_Icon00 = 0x0, CIS_Science_Large = 0x1, CIS_Money_Income = 0x2, CIS_Money_Outcome = 0x3, CIS_Production_Income = 0x4, CIS_Production_Outcome = 0x5, CIS_Food_Income = 0x6, CIS_Food_Outcome = 0x7, CIS_Production_Cell = 0x8, CIS_Food_Cell = 0x9, CIS_Food_Minus = 0xA, CIS_Pollution = 0xB, CIS_Luxury_Small = 0xC, CIS_Production_Small = 0xD, CIS_Money_Small = 0xE, CIS_Food_Small = 0xF, CIS_Science_Small = 0x10, CIS_Corruption = 0x11, CIS_Culture = 0x12, CIS_Happy_Face = 0x13, CIS_Production_Small_2 = 0x14, CIS_Money_Small_2 = 0x15, CIS_Food_Small_2 = 0x16, CIS_Treasury_1 = 0x17, CIS_Treasury_2 = 0x18, }; /* 89 */ #pragma pack(push, 1) struct struct_1A4 { int V[3]; class_FLC_Animation struct_188; int field_194[4]; }; #pragma pack(pop) /* 90 */ #pragma pack(push, 1) struct class_FLC_Animation { struct_188_vtable *vtable; struct_188_48 struct_48; int field_34[9]; class_FLC_Frame_Image Frame_1; class_FLC_Frame_Image Frame_2; int field_E0; class_Animation_Info *Animation_Info; int field_E8[5]; int field_FC; int field_100[7]; int Direction3; int Direction4; int field_124; int field_128; int field_12C; int field_130; class_Unit *Unit; struct_188_4C struct_4C; int Last; }; #pragma pack(pop) /* 91 */ #pragma pack(push, 1) struct struct_188_48 { int *vtable; int Direction; int field_8; int field_C[4]; int Direction2; int Animation_Type; int field_24; int field_28; int Last; }; #pragma pack(pop) /* 92 */ #pragma pack(push, 1) struct class_FLC_Frame_Image { int vtable; class_Flic_Anim_Info *Flic_Info; class_Tile_Image_Info Frame_Image; int field_34; struct_FLIC_CHUNK *Current_Frame_Chunk; int Current_Frame_ID; int Direction; }; #pragma pack(pop) /* 93 */ #pragma pack(push, 1) struct struct_188_4C { int field_0[19]; }; #pragma pack(pop) /* 94 */ enum AnimationTypes { Anim_Disorder = 0x1, Anim_Fireworks = 0x2, Anim_Hit = 0x3, Anim_Hit2 = 0x4, Anim_Hit3 = 0x5, Anim_Hit5 = 0x6, Anim_Miss = 0x7, Anim_WaterMiss = 0x8, Anim_Smolder = 0x9, Anim_Eruption = 0xA, Anim_Plague = 0xB, }; /* 95 */ #pragma pack(push, 1) struct class_Civilopedia_Article { struct_Civilopedia_Article_vtable *vtable; struct_String64 Name; struct_String64 Civilopedia_Entry; struct_String64 PCX_Small; struct_String64 PCX_Large; int b_Show_Description; int field_108; int Article_Type; int IconID; int field_114; int field_118; int field_11C; int field_120; int field_124; int field_128; int field_12C; int field_130; int field_134; }; #pragma pack(pop) /* 96 */ #pragma pack(push, 1) struct class_JGL_Renderer { class_JGL_Image *Image; int field_8[171]; int Last; }; #pragma pack(pop) /* 97 */ enum ImprovementTypeFlags { ITF_Center_of_Empire = 0x1, ITF_Veteran_Ground_Units = 0x2, ITF_50_Research_Output = 0x4, ITF_50_Luxury_Output = 0x8, ITF_50_Tax_Output = 0x10, ITF_Removes_Population_Pollution = 0x20, ITF_Reduces_Buildings_Pollution = 0x40, ITF_Resistant_To_Bribery = 0x80, ITF_Reduces_Corruption = 0x100, ITF_Doubles_City_Growth_Rate = 0x200, ITF_Increases_Luxury_Trade = 0x400, ITF_Allows_City_Level_2 = 0x800, ITF_Allows_City_Level_3 = 0x1000, ITF_Replaces_Other_Buildings = 0x2000, ITF_Must_Be_Near_Water = 0x4000, ITF_Must_Be_Near_River = 0x8000, ITF_Can_Explode_Or_Meltdown = 0x10000, ITF_Veteran_Sea_Units = 0x20000, ITF_Veteran_Air_Units = 0x40000, ITF_Capitalization = 0x80000, ITF_Allows_Water_Trade = 0x100000, ITF_Allows_Air_Trade = 0x200000, ITF_Reduces_War_Weariness = 0x400000, ITF_Increases_Shields_In_Water = 0x800000, ITF_Increases_Food_In_Water = 0x1000000, ITF_Increases_Trade_In_Water = 0x2000000, ITF_4000000 = 0x4000000, ITF_8000000 = 0x8000000, ITF_10000000 = 0x10000000, ITF_20000000 = 0x20000000, ITF_Produces_Unit = 0x40000000, ITF_Required_Goods_Must_Be_In_City_Radius = 0x80000000, }; /* 98 */ enum Worker_Jobs { WJ_Build_Mines = 0x0, WJ_Irrigate = 0x1, WJ_Build_Fortress = 0x2, WJ_Build_Road = 0x3, WJ_Build_Railroad = 0x4, WJ_Plant_Forest = 0x5, WJ_Clean_Forest = 0x6, WJ_Clear_Swamp = 0x7, WJ_Clean_Pollution = 0x8, WJ_Build_Airfield = 0x9, WJ_Build_Radar = 0xA, WJ_Build_Outpost = 0xB, WJ_Build_Barricade = 0xC, }; /* 99 */ enum ImprovementTypeCharacteristics { ITC_Coastal_Installation = 0x1, ITC_Militaristic = 0x2, ITC_Wonder = 0x4, ITC_Small_Wonder = 0x8, ITC_Continental_Mood_Effects = 0x10, ITC_Scientific = 0x20, ITC_Commercial = 0x40, ITC_Expansionistic = 0x80, ITC_Religious = 0x100, ITC_Industrious = 0x200, ITC_Agricultural = 0x400, ITC_Seafaring = 0x800, }; /* 100 */ enum ImprovementTypeFlags_Byte1 { ITF_B1_Reduces_Corruption = 0x1, ITF_B1_Doubles_City_Growth_Rate = 0x2, ITF_B1_Increases_Luxury_Trade = 0x4, ITF_B1_Allows_City_Level_2 = 0x8, ITF_B1_Allows_City_Level_3 = 0x10, ITF_B1_Replaces_Other_Buildings = 0x20, ITF_B1_Must_Be_Near_Water = 0x40, ITF_B1_Must_Be_Near_River = 0x80, }; /* 101 */ enum ImprovementTypeWonderFeatures { ITW_Safe_Sea_Travel = 0x1, ITW_Gain_Any_Advance_Owned_by_2_Civ = 0x2, ITW_Double_Combat_Strength_vs_Barbarians = 0x4, ITW_Ship_Movement_Inc_1 = 0x8, ITW_Doubles_Research_Output = 0x10, ITW_Trade_In_Each_Tile_inc_1 = 0x20, ITW_Halves_Unit_Upgrade_Cost = 0x40, ITW_Pays_Maintenance_For_Trade_Inst = 0x80, ITW_Allows_Construction_Of_Nuclear_Devices = 0x100, ITW_City_Growth_Inc_2_Citizens = 0x200, ITW_Free_Advance_Inc_2 = 0x400, ITW_Reduces_War_Weariness = 0x800, ITW_Unk1 = 0x1000, ITW_Allows_Diplomatic_Victory = 0x2000, ITW_Unk2 = 0x4000, ITW_Unk3 = 0x8000, ITW_Increases_Army_Value = 0x10000, ITW_Turist_Attraction = 0x20000, }; /* 102 */ enum ImprovementTypeSmallWonderFeatures { ITSW_Increases_Chance_Of_Leader_Appearance = 0x1, ITSW_Build_Army_Without_Leader = 0x2, ITSW_Larger_Armies = 0x4, ITSW_Treasury_Earns_5_Percent = 0x8, ITSW_Build_Spaceship_Parts = 0x10, ITSW_Reduces_Corruption = 0x20, ITSW_Decreases_Success_Of_Missile_Attacks = 0x40, ITSW_Allows_Spy_Missions = 0x80, ITSW_Allows_Healing_In_Enemy_Territory = 0x100, ITSW_200 = 0x200, ITSW_Requires_Victorous_Army = 0x400, }; /* 103 */ #pragma pack(push, 1) struct struct_Buildings_Info_Item { int Year; int CivID; int Culture; }; #pragma pack(pop) /* 104 */ #pragma pack(push, 1) struct class_Date { class_Base Base; struct_String16 Text; int field_2D[12]; int BaseTimeUnit; int Month; int Week; int Year; int field_6C; }; #pragma pack(pop) /* 105 */ enum CorruptionAndWasteTypes { CWT_Minimal = 0x0, CWT_Nuisance = 0x1, CWT_Problematic = 0x2, CWT_Rampant = 0x3, CWT_Catastrophic = 0x4, CWT_Communal = 0x5, CWT_Off = 0x6, }; /* 106 */ enum AdvanceTypeFlags { ATF_Enables_Diplomats = 0x1, ATF_Enables_Irrigation_Without_Fresh_Water = 0x2, ATF_Enables_Bridges = 0x4, ATF_Disabled_Deseases_From_Flood_Plains = 0x8, ATF_Enables_Conscription_Of_Units = 0x10, ATF_Enables_Mobilizations_Levels = 0x20, ATF_Enables_Recycling = 0x40, ATF_Enables_Precisious_Bombing = 0x80, ATF_Enables_Mutual_Protection_Pacts = 0x100, ATF_Enables_Right_Of_Passage_Treaties = 0x200, ATF_Enables_Military_Alliances = 0x400, ATF_Enables_Trade_Embargos = 0x800, ATF_Doubles_Effect_Of_Wealth = 0x1000, ATF_Enables_Trade_Over_Sea_Tiles = 0x2000, ATF_Enables_Trade_Over_Ocean_Tiles = 0x4000, ATF_Enables_Map_Trading = 0x8000, ATF_Enables_Communication_Trading = 0x10000, ATF_Not_Required_For_Era_Advancement = 0x20000, ATF_Doubles_Work_Rate_Of_Workers = 0x40000, ATF_Bonus_Tech = 0x200000, ATF_Reveal_Map = 0x400000, }; /* 107 */ enum Tile_Resource_Types { TRT_Food = 0x0, TRT_Shields = 0x1, TRT_Trade = 0x2, }; /* 108 */ enum CityStatusFlags { CSF_Civil_Disorder = 0x1, CSF_Airlift_Used = 0x4, CSF_Capitalization = 0x20, }; /* 109 */ enum UnitTypeAbilitiesFlags { UTAF_Wheeled = 0x1, UTAF_Foot_Unit = 0x2, }; /* 110 */ enum UnitTypeAIFlags { UTAI_Offence = 0x1, UTAI_Defence = 0x2, UTAI_Artillery = 0x4, UTAI_Explore = 0x8, UTAI_Army = 0x10, UTAI_Cruise_Missile = 0x20, UTAI_Air_Bombard = 0x40, UTAI_Air_Defence = 0x80, UTAI_Naval_Power = 0x100, UTAI_Air_Transport = 0x200, UTAI_Naval_Transport = 0x400, UTAI_Naval_Carrier = 0x800, UTAI_Terraform = 0x1000, UTAI_Settle = 0x2000, UTAI_Leader = 0x4000, UTAI_Tactical_Nuke = 0x8000, UTAI_ICBM = 0x10000, UTAI_Naval_Missile_Transport = 0x20000, UTAI_Flag_Unit = 0x40000, UTAI_King = 0x80000, }; /* 111 */ #pragma pack(push, 1) struct class_Main_GUI { class_Base_Form Base; int field_574[4]; int field_584; int field_588; int field_58C[769]; struct_String260 Main_Commands[29]; int field_2F04; int field_2F08; struct_String260 PCX_Files[25]; struct_String260 Unit_Commands[59]; class_Button Advisors_Btn; class_Button Menu_Btn; class_Button Geography_Btn; class_Button Civilopedia_Btn; class_Button Map_Navigator_Buttons[8]; class_Button Right_Panel_Buttons[7]; int field_10618[8]; int b_Navigate_City_Mode; int field_1063C[3]; int b_Move_Identical_Groups; int field_1064C[3]; int b_Navigate_Unit_Mode; int field_1065C[49]; class_Navigator_Data Navigator_Data; class_GUI_Form_1 Message_Box; int field_13370; class_Base_Form Sub_Form_1; int field_138E8[392]; tagRECT Rects1[3]; tagRECT Mini_Map_Drag_Rect; tagRECT Rects2[10]; tagRECT Unit_Status_Rect; tagRECT Mini_Map_Click_Rect; tagRECT Rects3[5]; int field_14058[32]; class_Tile_Image_Info Images[252]; class_Tile_Image_Info Image2; class_Tile_Image_Info Image3; class_Form_Data_30 Data_30_1; class_Form_Data_30 Data_30_2; int field_16CE0; class_Command_Button Unit_Command_Buttons[42]; }; #pragma pack(pop) /* 112 */ #pragma pack(push, 1) struct class_Sound_Info { int vtable; int field_4[26]; }; #pragma pack(pop) /* 113 */ #pragma pack(push, 1) struct struct_Sound_Info_Array { class_Sound_Info Items[63]; }; #pragma pack(pop) /* 114 */ #pragma pack(push, 1) struct class_Citizen_Mood_Array { int vtable; struct_String260 Mood_Text[14]; struct_String260 PCX_Heads; struct_String260 Labels_File; class_Tile_Image_Info Images[520]; }; #pragma pack(pop) /* 115 */ #pragma pack(push, 1) struct struct_Map_Body_vtable { int m00; int m01; int m02; int m03; int m04; }; #pragma pack(pop) /* 116 */ #pragma pack(push, 1) struct struct_Unit_vtable { int m00; int m01; int m02; int (__thiscall *m03_Read_Unit)(class_Unit *, int); int m04; int m05; int m06; int m07; int m08; int m09; int m10; int m11; int m12; int m13; int m14; int m15; int m16; int m17; int m18; int m19_Move; int m20; int m21; int m22; int (__thiscall *m23_Do_Work)(class_Unit *); int m24; int m25; int m26; int m27; }; #pragma pack(pop) /* 117 */ #pragma pack(push, 1) struct struct_188_vtable { int m00; void (__thiscall *m01)(class_FLC_Animation *this, float Timing); int m02; }; #pragma pack(pop) /* 118 */ #pragma pack(push, 1) struct class_Advisor_Renderer { int vtable; int field_4[2075]; int field_2070; }; #pragma pack(pop) /* 119 */ #pragma pack(push, 1) struct class_Trade_Net { int vtable; int Map_Width; int Current_Unit_X; int Current_Unit_Y; class_Unit *Current_Unit; int Current_Unit_CivID; int Flags; int *Data1; struct_Trade_Net_Distance_Info *Data2; struct_Trade_Net_Distance_Info *Data3; int V1; struct_Trade_Net_Distance_Info *Data4; struct_Trade_Net_Distance_Info *Data5; int V2; int Matrix[262144]; }; #pragma pack(pop) /* 120 */ enum UnitTypeAbilities { UTA_Wheeled = 0x0, UTA_Foot_Unit = 0x1, UTA_Blitz = 0x2, UTA_Cruise_Missile = 0x3, UTA_All_Terrains_As_Roads = 0x4, UTA_Radar = 0x5, UTA_Aphibious_unit = 0x6, UTA_Invisible = 0x7, UTA_Transports_Only_Aircraft = 0x8, UTA_Draft = 0x9, UTA_Immobile = 0xA, UTA_Sinks_In_Sea = 0xB, UTA_Sinks_In_Ocean = 0xC, UTA_Flag_unit = 0xD, UTA_Transports_Only_Foot_Unit = 0xE, UTA_Starts_Golden_Age = 0xF, UTA_Nuclear_Weapon = 0x10, UTA_Hidden_Nationality = 0x11, UTA_Army = 0x12, UTA_Leader = 0x13, UTA_Infinite_Bombard_Range = 0x14, UTA_Stealth = 0x15, UTA_Detect_Invisible = 0x16, UTA_Tacticle_Missile = 0x17, UTA_Transports_Only_Tacticle_Missiles = 0x18, UTA_Ranged_Attack_Animation = 0x19, UTA_Rotate_Before_Attack = 0x1A, UTA_Lethal_Land_Bombardment = 0x1B, UTA_Lethal_Sea_Bombardment = 0x1C, UTA_King = 0x1D, UTA_Requires_Escort = 0x1E, }; /* 121 */ #pragma pack(push, 1) struct struct_Map_Worker_Job_Info { int Set_Overlays_Flags; int Unset_Overlays_Flags; int field_8; int ID; int field_10; }; #pragma pack(pop) /* 122 */ enum RaceBonusFlags { RBF_Militaristic = 0x1, RBF_Commercial = 0x2, RBF_Expansionist = 0x4, RBF_Scientific = 0x8, RBF_Religious = 0x10, RBF_Industrious = 0x20, RBF_Agricultural = 0x40, RBF_Seafaring = 0x80, }; /* 123 */ enum RaceBonuses { RB_Militaristic = 0x0, RB_Commercial = 0x1, RB_Expansionist = 0x2, RB_Scientific = 0x3, RB_Religious = 0x4, RB_Industrious = 0x5, RB_Agricultural = 0x6, RB_Seafaring = 0x7, }; /* 124 */ #pragma pack(push, 1) struct class_Airfield { class_Tile_Building Base; int Used; }; #pragma pack(pop) /* 125 */ #pragma pack(push, 1) struct class_Airfield_Body { int vtable; int field_4; int field_8; int field_C; int field_10; int field_14; }; #pragma pack(pop) /* 126 */ #pragma pack(push, 1) struct class_Colony_Body { int vtable; int field_4; int field_8; int field_C; int field_10; }; #pragma pack(pop) /* 127 */ #pragma pack(push, 1) struct class_Colony { class_Tile_Building Base; }; #pragma pack(pop) /* 128 */ #pragma pack(push, 1) struct class_Radar_Tower_Body { int vtable; int field_4; int field_8; int field_C; int field_10; }; #pragma pack(pop) /* 129 */ #pragma pack(push, 1) struct class_Radar_Tower { class_Tile_Building Base; }; #pragma pack(pop) /* 130 */ #pragma pack(push, 1) struct class_Outpost_Body { int vtable; int field_4; int field_8; int field_C; int field_10; }; #pragma pack(pop) /* 131 */ #pragma pack(push, 1) struct class_Outpost { class_Tile_Building Base; }; #pragma pack(pop) /* 132 */ #pragma pack(push, 1) struct class_Victory_Point_Body { int vtable; int field_4; int field_8; int field_C; int field_10; }; #pragma pack(pop) /* 133 */ #pragma pack(push, 1) struct class_Victory_Point { class_Base Base; class_Victory_Point_Body Body; }; #pragma pack(pop) /* 134 */ #pragma pack(push, 1) struct class_Tile_Building_Body { int vtable; int ID; int X; int Y; int OwnerID; }; #pragma pack(pop) /* 135 */ #pragma pack(push, 1) struct class_Tile_Building { class_Base Base; class_Tile_Building_Body Body; }; #pragma pack(pop) /* 136 */ #pragma pack(push, 1) struct class_PCX_Color_Table { int vtable; class_JGL_Color_Table *JGL_Color_Table; int field_8[5]; int field_1C[14]; int Last; }; #pragma pack(pop) /* 137 */ enum UnitTypeClasses { UTC_Land = 0x0, UTC_Sea = 0x1, UTC_Air = 0x2, }; /* 138 */ #pragma pack(push, 1) struct struct_Tile_Type_Flags { char Allow_Cities; char Allow_Colonies; char Impassable; char Impassable_By_Wheeled_Units; char Allow_Airfields; char Allow_Forts; char Allow_Outposts; char Allow_Radar_Towers; }; #pragma pack(pop) /* 139 */ #pragma pack(push, 1) struct struct_String264 { char S[264]; }; #pragma pack(pop) /* 140 */ #pragma pack(push, 1) struct class_Advisor_Hints { int vtable; struct_String256 Empty_Message; int field_104; struct_String256 Advisor_Messages[6]; int Advisor_Current_Messages_ID[6]; }; #pragma pack(pop) /* 141 */ #pragma pack(push, 1) struct struct_String256 { char S[256]; }; #pragma pack(pop) /* 142 */ #pragma pack(push, 1) struct class_Advisor_Culture_Form { struct_Advisor_Form_vtable *vtable; struct_Base_Form_Data Base_Data; int field_574[2294]; int Cities_Count; int Cities_ID[512]; int Selected_City_Index; int field_3154; int field_3158; int field_315C[7]; int field_3178[21]; class_Button Buttons[6]; int field_5AC4[68]; int field_5BD4; int field_5BD8[27]; class_Scroll_Bar Cities_ScrollBar; class_Scroll_Bar City_Improvements_ScrollBar; }; #pragma pack(pop) /* 143 */ #pragma pack(push, 1) struct struct_Advisor_Form_vtable { struct_Base_Form_vtable Base; int m92_Get_AdvisorID; int m93; int m94; int m95; int m96; int m97; int m98; }; #pragma pack(pop) /* 144 */ #pragma pack(push, 1) struct class_Scroll_Bar { struct_Base_Form_vtable *vtable; struct_Base_Form_Data Base_Data; int field_574; int field_578[29]; int field_5EC[9]; class_Button Up_Btn; class_Button Down_Btn; int field_13B8; int field_13BC; }; #pragma pack(pop) /* 145 */ #pragma pack(push, 1) struct class_Base_Form { struct_Base_Form_vtable *vtable; struct_Base_Form_Data Data; }; #pragma pack(pop) /* 146 */ #pragma pack(push, 1) struct struct_Base_Form_Data { int field_0[15]; int Status_Flags; int field_40[22]; int Status1; int Status2; int field_A0[6]; class_Control_Tooltips Tooltips; int field_118[5]; class_Base_Form *Parent; int field_130[30]; int Left; int Top; int Right; int Bottom; int field_1B8; int field_1BC; int field_1C0[17]; int Cursor_Image; int field_208; int field_20C; int field_210[24]; class_PCX_Image Canvas; int field_528[17]; int Last; }; #pragma pack(pop) /* 147 */ #pragma pack(push, 1) struct class_Button { struct_Base_Form_vtable *vtable; struct_Base_Form_Data Base_Data; int field_574[29]; int ControlID; int field_5EC; int field_5F0; int Text; char *ToolTip; int field_5FC[19]; class_Tile_Image_Info **Border_Images[3]; class_Tile_Image_Info *Images[3]; int field_660[28]; int Last; }; #pragma pack(pop) /* 148 */ #pragma pack(push, 1) struct class_Advisor_Science_Form { struct_Advisor_Form_vtable *vtable; struct_Base_Form_Data Base_Data; int field_574[2974]; int Last; }; #pragma pack(pop) /* 149 */ #pragma pack(push, 1) struct class_Advisor_Foreign_Form { struct_Advisor_Form_vtable *vtable; struct_Base_Form_Data Base_Data; int field_574[3]; class_Tile_Image_Info Image1; int field_5AC; int field_5B0; int field_5B4; class_Base FAXX_Object; int Current_Tab; int Report_Civ_List[8]; byte Draw_Civ_Index_List[8]; char Relation_CheckBoxes_Values[6]; char Treaties_CheckBoxes_Values[3]; char field_609[3]; int field_60C[8]; struct_String260 Labels[46]; struct_String260 Str1; int Object_663CFC_1; int Object_663CFC_2; int Object_663CFC_3; int Image2; int Image3; int field_35FC[6]; int Leaders_X_Positions[8]; int Leaders_Y_Positions[8]; int field_3654[64]; int field_3754[35]; int field_37E0; int field_37E4[2]; int ScrollBar_Position; int field_37F0; int field_37F4; int field_37F8; int field_37FC; tagRECT Tabs_Rects[3]; tagRECT Leaders_Rects[8]; int field_38B0[4]; tagRECT Show_All_Btn_Rect; tagRECT Hide_All_Btn_Rect; tagRECT Button1_Rect; class_Button Button1; class_Button Button2; class_CheckBox Relations_CheckBoxes[6]; class_CheckBox Treaties_CheckBoxes[3]; class_Scroll_Bar ScrollBar; int Selected_Details_Civ; }; #pragma pack(pop) /* 150 */ #pragma pack(push, 1) struct class_Advisor_Military_Form { struct_Advisor_Form_vtable *vtable; struct_Base_Form_Data Base_Data; int field_574[17]; int field_5B8[7]; int field_5D4[9]; struct_String260 Labels[46]; struct_String260 field_34B0; class_Unit *Unit_1; class_Unit *Unit_2; class_City *City_1; class_City *City_2; int Selected_Civ; int field_35C8; int field_35CC; int field_35D0; int field_35D4; int Player_Units_Scroll_Position; int Target_Civ_Units_Scroll_Position; int Player_Cities_Count; int Target_Civ_Cities_Count; int field_35E8; int field_35EC; __int16 field_35F0; char Player_Civ_Tab; char Target_Civ_Tab; int field_35F4; int field_35F8; int field_35FC; class_Navigator_Data *Navigator; class_Button Close_Btn; int Player_Units_Scroll_Positions[6]; int Target_Civ_Units_Scroll_Positions[6]; int field_3D08[12]; int Lost_Units_Scroll_Positions[4]; class_Button Buttons1[6]; int field_6640[12]; class_Button Buttons2[6]; int field_8F68[12]; class_Button Buttons3[6]; int field_B890[12]; class_Button Buttons4[6]; int field_E1B8[12]; class_Button Buttons5[2]; int field_EF90[4]; class_Button Buttons6[2]; tagRECT field_FD48; tagRECT Player_List_Items_Rects[6]; tagRECT Player_List_Labels_Rects[6]; tagRECT Player_List_Units_Rects[6]; tagRECT Target_Civ_List_Items_Rects[6]; tagRECT Target_Civ_List_Labels_Rects[6]; tagRECT Target_Civ_List_Units_Rects[6]; tagRECT Tabs_Rects[4]; tagRECT Player_List_Label_Rect; tagRECT Target_Civ_List_Label_Rect; tagRECT field_FFF8; tagRECT field_10008; tagRECT field_10018; tagRECT field_10028; tagRECT field_10038; tagRECT field_10048; tagRECT field_10058; tagRECT field_10068; tagRECT field_10078; tagRECT field_10088; tagRECT field_10098; class_Control_Tooltips Tooltips; class_Tile_Image_Info Images1[5]; class_Scroll_Bar ScrollBar1; class_Scroll_Bar ScrollBar2; class_Scroll_Bar ScrollBar3; class_Scroll_Bar ScrollBar4; class_Scroll_Bar ScrollBars1[6]; class_Scroll_Bar ScrollBars2[6]; class_Scroll_Bar ScrollBar5; class_Scroll_Bar ScrollBar6; class_Scroll_Bar ScrollBar7; class_Scroll_Bar ScrollBar8; int field_28CE4[22]; int Last; }; #pragma pack(pop) /* 151 */ #pragma pack(push, 1) struct class_Advisor_Trade_Form { struct_Advisor_Form_vtable *vtable; struct_Base_Form_Data Base_Data; int field_574[3]; class_Tile_Image_Info Image1; int field_5AC; int field_5B0; int field_5B4; struct_String260 Labels[28]; int field_2228[48]; class_Button CloseBtn; int field_29BC[12]; tagRECT Local_Resources_Rect; tagRECT Import_Resource_Rect; tagRECT Export_Resources_Rect; tagRECT Non_Trade_Cities_Rect[7]; tagRECT field_2A8C; tagRECT Target_Civs_Rect[8]; tagRECT field_2B1C; int field_2B2C[24]; class_Scroll_Bar ScrollBar1; class_Scroll_Bar ScrollBar2; class_Scroll_Bar ScrollBar3; }; #pragma pack(pop) /* 152 */ #pragma pack(push, 1) struct class_Advisor_Internal_Form { struct_Advisor_Form_vtable *vtable; struct_Base_Form_Data Base_Data; int field_574[17]; struct_String260 Labels[55]; tagRECT Cities_Names_Rect[9]; tagRECT Cities_Citizens_Rects[9]; int Pointer1; int field_3EB8; int field_3EBC[7]; int field_3ED8; int field_3EDC[80]; __int16 Start_City_Index; __int16 Cities_Count; int field_4020[24]; __int16 City_ID_List[512]; tagRECT Tax_Science_Thumb_Rect; tagRECT Tax_Luxury_Thumb_Rect; tagRECT Gov_Btn_Rect; tagRECT Conscription_Btn_Rect; int field_44C0[44]; class_Tile_Image_Info Image1; void *Tax_Button_Images[3]; class_Scroll_Bar ScrollBar; tagRECT Tax_Science_Plus_Btn_Rect; tagRECT Tax_Science_Minus_Btn_Rect; tagRECT Tax_Luxury_Plus_Btn_Rect; tagRECT Tax_Luxury_Minus_Btn_Rect; tagRECT Tax_Science_Scroll_Bar_Rect; tagRECT Tax_Luxury_Scroll_Bar_Rect; class_Tile_Image_Info *Plus_Btn_Images; class_Tile_Image_Info *Minus_Btn_Images; class_Button Science_Plus_Btn; class_Button Luxury_Plus_Btn; class_Button Science_Minus_Btn; class_Button Luxury_Minus_Btn; class_Button Close_Btn; }; #pragma pack(pop) /* 153 */ #pragma pack(push, 1) struct class_Advisor_Base_Form { struct_Advisor_Form_vtable *vtable; struct_Base_Form_Data Base_Data; int field_574[2090]; int Last; }; #pragma pack(pop) /* 154 */ #pragma pack(push, 1) struct struct_City_Icon_Images { class_Tile_Image_Info Icon_00; class_Tile_Image_Info Icon_01; class_Tile_Image_Info Icon_02_Science; class_Tile_Image_Info Icon_03; class_Tile_Image_Info Icon_04; class_Tile_Image_Info Icon_05_Shield_Outcome; class_Tile_Image_Info Icon_06; class_Tile_Image_Info Icon_07; class_Tile_Image_Info Icon_08; class_Tile_Image_Info Icon_09; class_Tile_Image_Info Icon_10; class_Tile_Image_Info Icon_11_Pollution; class_Tile_Image_Info Icon_12_Happy_Faces; class_Tile_Image_Info Icon_13_Shield; class_Tile_Image_Info Icon_14_Gold; class_Tile_Image_Info Icon_15_Food; class_Tile_Image_Info Icon_16_Science; class_Tile_Image_Info Icon_17_Gold_Outcome; class_Tile_Image_Info Icon_18_Culture; class_Tile_Image_Info Icon_19_Happy_Faces; class_Tile_Image_Info Icon_20_Shield_Highlighted; class_Tile_Image_Info Icon_21_Gold_Highlighted; class_Tile_Image_Info Icon_22_Food_Highlighted; class_Tile_Image_Info Icon_23; class_Tile_Image_Info Icon_24_Treasury; }; #pragma pack(pop) /* 155 */ #pragma pack(push, 1) struct struct_Map_Cursor_Images { class_Tile_Image_Info C00; class_Tile_Image_Info C01; class_Tile_Image_Info C02; class_Tile_Image_Info C03; class_Tile_Image_Info C04; class_Tile_Image_Info C05; class_Tile_Image_Info C06; class_Tile_Image_Info Bombing; class_Tile_Image_Info C08; class_Tile_Image_Info Recon; class_Tile_Image_Info C10; class_Tile_Image_Info Precision_Bombing; class_Tile_Image_Info C12; class_Tile_Image_Info C13; class_Tile_Image_Info C14; class_Tile_Image_Info C15; class_Tile_Image_Info Auto_Air_Bombard; class_Tile_Image_Info C17; class_Tile_Image_Info C18; class_Tile_Image_Info C19; class_Tile_Image_Info C20; class_Tile_Image_Info C21; class_Tile_Image_Info C22; }; #pragma pack(pop) /* 156 */ #pragma pack(push, 1) struct struct_Old_Interface_Images { class_Tile_Image_Info Images[3]; int Last; }; #pragma pack(pop) /* 157 */ #pragma pack(push, 1) struct class_Main_Screen_Form { struct_Base_Form_vtable *vtable; struct_Base_Form_Data Base_Data; class_Base Console; class_Main_Screen_Data_170 Data_170_Array[50]; int field_4D70; class_Unit *Current_Unit; int field_4D78; class_City *Selected_City; int field_4D80; int field_4D84; class_Form_Data_30 Data_30_1; int field_4DB8; int Player_CivID; int field_4DC0[25]; class_Form_Data_30 Data_30_2; int field_4E54[7]; int TileX_Min; int TileX_Max; int TileY_Min; int TileY_Max; int field_4E80[19]; int Mode_Action; int field_4ED0; int Mode_Action_Range; class_Base_Form Units_Control; int field_544C; class_Main_GUI GUI; int field_2E14C[6]; class_Form_Data_30 Data_30_3; int field_2E194; int field_2E198; int field_2E19C; struct_Navigator_Point *First_Ptr; struct_Navigator_Point *Second_Ptr; int field_2E1A8[4]; class_Main_Screen_Data_1AD4 Data_1AD4; }; #pragma pack(pop) /* 158 */ #pragma pack(push, 1) struct struct_Main_Screen_Form_vtable { int m00; }; #pragma pack(pop) /* 159 */ #pragma pack(push, 1) struct class_Main_Screen_Data_1AD4 { int field_0; int field_4; class_Unit *Units[1024]; int Units_Count; class_Unit *Units2[512]; int Units2_Count; int field_1810[51]; int field_18DC; int field_18E0; int field_18E4[22]; class_FLC_Animation Unit_Cursor_Animation; int field_1AC4; int field_1AC8; int field_1ACC; int field_1AD0; int field_1AD4; int field_1AD8; int field_1ADC; int field_1AE0; int field_1AE4; int field_1AE8; int field_1AEC; }; #pragma pack(pop) /* 160 */ #pragma pack(push, 1) struct class_GUI_Data_30 { int vtable; int field_4[11]; }; #pragma pack(pop) /* 161 */ #pragma pack(push, 1) struct class_Command_Button { class_Button Button; int Command; int field_6D8; }; #pragma pack(pop) /* 162 */ #pragma pack(push, 1) struct class_Main_Screen_Data_170 { int vtable; int field_4[90]; int Last; }; #pragma pack(pop) /* 163 */ #pragma pack(push, 1) struct class_Form_Data_30 { int vtable; int field_4[11]; }; #pragma pack(pop) /* 164 */ #pragma pack(push, 1) struct class_GUI_Form_1 { struct_GUI_Form_1_vtable *vtable; struct_Base_Form_Data Base_Data; int field_574[26]; class_Button OK_Btn; class_Button Cancel_Btn; int field_1384[188]; int field_1674; int field_1678[652]; int field_20A8[34]; int Last; }; #pragma pack(pop) /* 165 */ #pragma pack(push, 1) struct struct_GUI_Form_1_vtable { int m00; int m01; int m02; int m03; int m04; int m05; int m06; int m07; int m08; int m09; int m10; int m11; int m12; int m13; int m14; int m15; int m16; int m17; int m18; int m19; int m20; int m21; int m22; int m23; int m24; int m25; int m26; int m27; int m28; int m29; int m30; int m31; int m32; int m33; int m34; int m35; int m36; int m37; int m38; int m39; int m40; int m41; int m42; int m43; int m44; int m45; int m46; int m47; int m48; int m49; int m50; int m51; int m52; int m53; int m54; int m55; int m56; int m57; int m58; int m59; int m60; int m61; int m62; int m63; int m64; int m65; int m66; int m67; int m68; int m69; int m70; int m71; int m72; int m73; int m74; int m75; int m76; int m77; int m78; int m79; int m80; int m81; int m82; int m83; int m84; int m85; int m86; int m87; int m88; int m89; int m90; int m91; void (__thiscall *m92_Init_Dialog)(void *, char *, char *, int, int, int, int); int m93; int m94; int m95; int m96; int m97; int m98; }; #pragma pack(pop) /* 166 */ #pragma pack(push, 1) struct struct_Base_Form_vtable { int m00; void (__thiscall *m01_Show_Enabled)(class_Base_Form *, _DWORD); void (__thiscall *m02_Show_Disabled)(class_Base_Form *); int m03; int m04; int m05; int m06; int m07; int m08; int m09; int m10; int m11; int m12; int m13; int m14; int m15; int m16; int m17; int m18; int m19; int m20; int m21; int m22_Draw; int m23; int m24; int m25_Process_Mouse_Wheel; int m26; int m27; int m28; void (__thiscall *m29_On_Left_Click)(class_Base_Form *, int, int); int m30; int m31; int m32_On_Right_Click; int m33_Process_Right_Click; int m34; int m35; int m36; int m37; int m38_On_Double_Click; int m39; int m40; int m41; int m42; int m43; int m44; int m45; int m46; int m47; int m48; int m49; int m50; int m51; int m52; int m53_On_Control_Click; int m54; int m55; int m56; int m57; int m58; int m59; int m60; int m61; int m62; int m63; int m64; int m65; int m66; int m67; void (__thiscall *m68_Show_Dialog)(_DWORD, _DWORD, _DWORD, _DWORD); int m69_Close_Dialog; int m70; int m71; int m72; void (__thiscall *m73_call_m22_Draw)(class_Base_Form *); int m74; int m75; int m76; int m77; int m78; int m79; int m80; int m81; int m82_On_Key_Down; int m83_On_Char; int m84_On_Mouse_Left_Down; int m85_On_Mouse_Left_Up; void (__thiscall *m86_On_Mouse_Right_Down)(class_Base_Form *, int, int, int, int); void (__thiscall *m87_On_Mouse_Right_Up)(class_Base_Form *this, _DWORD, _DWORD, _DWORD); int m88; int m89; int m90; int m91; }; #pragma pack(pop) /* 167 */ #pragma pack(push, 1) struct class_Governor_Form { struct_Base_Form_vtable *vtable; struct_Base_Form_Data Base_Data; class_CheckBox CheckBox; class_Tile_Image_Info Image1; int Current_City_ID; int field_C38; int field_C3C; int field_C40; int field_C44; int field_C48; struct_String260 Labels[37]; int Page; class_ComboBox Common_Policy_ComboBox_Array[14]; class_ComboBox Production_Policy_ComboBox_Array[30]; int Selected_Values_Common[14]; int Selected_Values_Production[30]; int field_94394; tagRECT Common_Link_Rect; tagRECT Production_Link_Rect; tagRECT OK_Btn_Rect; tagRECT Cancel_Btn_Rect; }; #pragma pack(pop) /* 168 */ #pragma pack(push, 1) struct class_ComboBox { int vtable; int field_4[6]; int Selected_Index; int field_20[2127]; class_ComboBox_Text_Control TextBox; class_Button Button; int ItemList; int field_2DBC[25]; int ListForm; int field_2E24[349]; int field_3398; int field_339C[72]; int ID; }; #pragma pack(pop) /* 169 */ #pragma pack(push, 1) struct class_Advisor_GUI { class_Base_Form Base; class_Advisor_Base_Form *pAdvisors[6]; int field_58C; int field_590; struct_String260 Advisor_Labels[7]; struct_String260 Moods[4]; struct_String260 Current_Advisor_Label; struct_String260 PCX_Files[18]; struct_String260 TXT_Labels; int Current_Advisor_ID; int field_2514[9]; class_Tile_Image_Info Backgrounds_Images[10]; class_Tile_Image_Info Advisor_Buttons_Images[18]; class_Tile_Image_Info Close_Button_Images[3]; class_Button field_2A8C; class_Tile_Image_Info Faces_Images[96]; class_Navigator_Data Navigator; int Last; }; #pragma pack(pop) /* 170 */ enum City_Form_Buttons { CFB_Orders = 542, CFB_CityView = 543, CFB_Exit = 545, CFB_Next = 546, CFB_Prev = 547, CFB_Hurry = 548, CFB_Draft = 549, CFB_Governor = 550, CFB_Resources_View = 551, }; /* 171 */ #pragma pack(push, 1) struct class_City_View_Form { class_Base_Form Base; class_Button Exit_Btn; int field_C48[3]; class_PCX_Image PCX; int field_F0C[10]; class_Tile_Image_Info Background_Image; int field_F60[198]; int field_1278[158]; int field_14F0[182]; class_Tile_Image_Info *Roads_Images[15]; class_Tile_Image_Info *Roads_Images2[3]; int field_1810[4]; class_Tile_Image_Info field_1820; class_Tile_Image_Info field_184C; class_Tile_Image_Info Terrain_Parts[28]; int field_1D48[257]; int field_214C[255]; class_City *City; int Era_ID; int Culture_GroupID; int field_2554[255]; int field_2950; }; #pragma pack(pop) /* 172 */ #pragma pack(push, 1) struct class_Context_Menu { class_Base_Form Base; int field_574; struct_Context_Menu_Item Items[256]; int field_2178[3]; int Item_Count; int field_2188; int ItemHeight; int Selected_Item; int field_2194; int field_2198[6]; int Last; }; #pragma pack(pop) /* 173 */ #pragma pack(push, 1) struct class_Base_List_Control { class_Base_Form Base; int field_574; int List2; int field_57C[61]; int Last; }; #pragma pack(pop) /* 174 */ #pragma pack(push, 1) struct class_Base_List_Box { int vtable; struct_Control_Data_Offsets *Offsets; int field_8[23]; int Data1; int field_68; int Parent; int field_70; class_Base_List_Control Control; }; #pragma pack(pop) /* 175 */ #pragma pack(push, 1) struct struct_Control_Data_Offsets { int V1; int Control; int List; }; #pragma pack(pop) /* 176 */ #pragma pack(push, 1) struct struct_Context_Menu_Item { char *Text; int field_4; int Menu_Item_ID; int Status; int field_10; class_Tile_Image_Info *Image; int field_18; }; #pragma pack(pop) /* 177 */ #pragma pack(push, 1) struct class_CheckBox_Control { class_Base_Form Base; int field_574; int List[62]; int Last; }; #pragma pack(pop) /* 178 */ #pragma pack(push, 1) struct class_CheckBox { struct_Control_Data_Offsets *Offsets; int field_4[7]; class_CheckBox_Control Control; }; #pragma pack(pop) /* 179 */ #pragma pack(push, 1) struct class_Parameters_Form { class_Base_Form Base; class_Tile_Image_Info Image1; class_Button OK_Btn; class_Button Cancel_Btn; class_CheckBox CheckBoxes[33]; int field_EC5C; int Dialog_Result; class_ComboBox ComboBox; int field_12124[6]; class_Scroll_Bar AllSound_ScrollBar; class_Scroll_Bar Music_ScrollBar; class_Scroll_Bar Effects_ScrollBar; }; #pragma pack(pop) /* 180 */ #pragma pack(push, 1) struct class_Navigator_Data { class_PCX_Image *Main_PCX; class_PCX_Image *PCX_0; tagRECT Rect; class_PCX_Image PCX_1; class_PCX_Image PCX_2; class_PCX_Image PCX_3; int field_840; struct_Navigator_Cell *field_844; int field_848; int field_84C; int Mini_Map_Width; int Mini_Map_Height; class_PCX_Image PCX_4; int Mini_Map_Width2; int Mini_Map_Height2; int field_B18; }; #pragma pack(pop) /* 181 */ #pragma pack(push, 1) struct class_Common_Dialog_Form { class_Base_Form Base; int field_574[26]; class_Button OK_Btn; class_Button Cancel_Btn; int field_1384[188]; int field_1674[577]; int field_1F78[111]; int field_2134; class_Base_Form SubForm; int field_26AC; int field_26B0; int Last; }; #pragma pack(pop) /* 182 */ #pragma pack(push, 1) struct class_Civilopedia_Form { class_Base_Form Base; int field_574[65]; class_Common_Dialog_Form Sub_Dialog; int field_2D30[6]; class_Tile_Image_Info Backgrounds_Images[8]; class_Tile_Image_Info Relations_Images[8]; class_Tile_Image_Info Color_Bars_Images[17]; class_Tile_Image_Info Next_Btn_Images[3]; class_Tile_Image_Info Prev_Btn_Images[3]; class_Tile_Image_Info Description_Btn_Images[3]; class_Tile_Image_Info Navigator_Buttons_Images[9]; int Current_Article_ID; int field_3610; int field_3614; int field_3618; int field_361C[16]; class_Button Close_Btn; class_Button Up_Btn; class_Button Right_Btn; class_Button Left_Btn; class_Button Next_Btn; class_Button Prev_Btn; class_Button Description_Btn; int History; char gap_662C[696]; int field_68E4; class_Scroll_Bar Scroll_Bar_1; class_Scroll_Bar Scroll_Bar_2; int field_9068; int field_906C; int Max_Article_ID; struct_String260 TXT_Civilopedia; class_Civilopedia_Article **Articles; }; #pragma pack(pop) /* 183 */ enum Civilopedia_Form_Buttons { CPFB_Close = 0, CPFB_Right = 1, CPFB_Left = 2, CPFB_Up = 3, CPFB_Next = 4, CPFB_Prev = 5, CPFB_Description = 6, }; /* 184 */ #pragma pack(push, 1) struct struct_Civilopedia_Article_vtable { int m00_ctor; void (__thiscall *m01_Draw_Article)(class_Civilopedia_Article *); int m02; int m03_Draw_Large_Icon; int m04_Draw_Small_Icon; int m05; }; #pragma pack(pop) /* 185 */ #pragma pack(push, 1) struct class_File_Dialog_Form { class_Base_Form Base; struct_String256 Label; class_File_Dialog_Body Body; class_Scroll_Bar Scroll_Bar; }; #pragma pack(pop) /* 186 */ #pragma pack(push, 1) struct class_TextBox { class_Base_Form Base; class_Scroll_Bar Scroll_Bar; int field_1934[16]; class_Form_Data_30 field_1974; }; #pragma pack(pop) /* 187 */ #pragma pack(push, 1) struct class_File_Dialog_Body { int field_0; int field_678; class_Tile_Image_Info Image; struct_String260 Root_Path; struct_String260 Game_Root_Path; int field_8B0[278]; class_Button OK_Btn; class_Button Cancel_Btn; class_TextBox File_Edit; char gap_2DE0[100]; class_Base_Form File_List; int field_3A2C[65]; }; #pragma pack(pop) /* 188 */ enum Main_GUI_Buttons { MGB_Geography = 42, MGB_Diplomacy = 43, MGB_Espionage = 44, MGB_Palace = 45, MGB_Victory = 46, MGB_Spaceship = 47, MGB_Task = 48, MGB_Menu = 49, MGB_Civilopedia = 50, MGB_Advisors = 51, MGB_Prev_City = 52, MGB_Navigate_City_Mode = 53, MGB_Next_City = 54, MGB_Prev_Unit = 55, MGB_Navigate_Unit_Mode = 56, MGB_Next_Unit = 57, MGB_Move_Unit_Group = 58, MGB_Move_Identical_Unit_Group = 59, }; /* 189 */ #pragma pack(push, 1) struct class_Main_Menu_Form { class_GUI_Form_1 Base; int field_2134; class_Base_Form Sub_Form; int field_26AC[6]; int Last; }; #pragma pack(pop) /* 190 */ #pragma pack(push, 1) struct class_Espionage_Form { class_Base_Form Base; class_Tile_Image_Info Image; class_Button OK_Btn; class_Button Cancel_Btn; class_Tile_Image_Info field_1348[3]; class_Tile_Image_Info field_13CC[4]; class_Tile_Image_Info field_147C[4]; class_Tile_Image_Info field_152C[2]; int field_1584; int field_1588; class_Scroll_Bar Scroll_Bar; int field_294C[1311]; int field_3DC8[174]; int field_4080[8]; int field_40A0; int Last; }; #pragma pack(pop) /* 191 */ #pragma pack(push, 1) struct class_Palace_View_Info { class_Base Base; int field_1C; int Items_Cultures[32]; int field_A0; int Builds_Done; int Items_Flags; int Builds_Remained; }; #pragma pack(pop) /* 192 */ #pragma pack(push, 1) struct class_Palace_View_Form { class_Base_Form Base; class_Palace_View_Info *Palace_Info; tagRECT CloseBtn_Rect; class_Button CloseBtn; class_Button Culture_Buttons[5]; struct_Button_Images_3 Icon_Images[5]; class_Tile_Image_Info Background_Image; class_Tile_Image_Info *Item_Images[5]; class_PCX_Image PCX; struct_Point *Items_Points; int Selected_CultureID; int Item_Counts[5]; int *Item_Rules[5]; int Max_Item_Image_Count; int Current_Active_Item; int field_3444; int field_3448; int Last; }; #pragma pack(pop) /* 193 */ enum Culture_Groups { CG_American = 0, CG_European = 1, CG_Roman = 2, CG_Mid_East = 3, CG_Asian = 4, }; /* 194 */ #pragma pack(push, 1) struct class_Text_Reader { int vtable; struct_String260 Str1; struct_String260 Str2; char *Buffer0; FILE *File; char *Buffer1; char *Buffer2; }; #pragma pack(pop) /* 195 */ #pragma pack(push, 1) struct struct_Button_Images_3 { class_Tile_Image_Info Images[3]; }; #pragma pack(pop) /* 196 */ #pragma pack(push, 1) struct struct_Point { int X; int Y; }; #pragma pack(pop) /* 197 */ #pragma pack(push, 1) struct class_Spaceship_Form { class_Base_Form Base; class_PCX_Image PCX; int field_82C; int field_830; class_Tile_Image_Info Background_Image; class_Tile_Image_Info Parts_Images[17]; class_Tile_Image_Info ProgressBar_Image; class_Tile_Image_Info Launch_Btn_Images[6]; class_Tile_Image_Info Big_Brother_Images[3]; int field_D04[54]; int Cities[10]; int Stat_1[10]; float Ratio_1[10]; int field_E54; }; #pragma pack(pop) /* 198 */ #pragma pack(push, 1) struct class_Demographics_Form { class_Base_Form Base; class_Tile_Image_Info *Background_Image; struct_String260 Strings[25]; int Top_Cities[5]; float Stat_Values[13]; int Stat_Ranks[13]; int field_1F58; class_Button CloseBtn; }; #pragma pack(pop) /* 199 */ #pragma pack(push, 1) struct class_Game_Version { int vtable; int field_4[7]; int Last; }; #pragma pack(pop) /* 200 */ enum Citizen_Mood_Types { CMT_Happy = 0, CMT_Content = 1, CMT_Unhappy = 2, CMT_Rebel = 3, }; /* 201 */ #pragma pack(push, 1) struct class_Victory_Conditions_Form { class_Base_Form Base; int field_574[5]; class_Tile_Image_Info Image1; class_Tile_Image_Info Image2; int field_5E0[6]; class_Scroll_Bar ScrollBar; class_Button CloseBtn; int field_208C; class_ComboBox ComboBox1; int field_5550; class_ComboBox ComboBox2; int field_8A14; }; #pragma pack(pop) /* 202 */ #pragma pack(push, 1) struct class_History { class_Base Base; int Item_Count; int field_20; class_History_Item *First_Item; class_History_Item *Last_Item; int field_2C; int field_30; int field_34; int field_38; int field_3C; }; #pragma pack(pop) /* 203 */ #pragma pack(push, 1) struct class_History_Item { int vtable; class_History_Item *Next; int field_8; int Date; int field_10; int field_14; int field_18; int field_1C; int field_20; int field_24; }; #pragma pack(pop) /* 204 */ #pragma pack(push, 1) struct struct_Combat_Experience { int field_0; struct_String32 Name; int Base_Hit_Points; int Retreat_Bonus; }; #pragma pack(pop) /* 205 */ #pragma pack(push, 1) struct class_Wonders_Form { class_Base_Form Base; class_Tile_Image_Info Background_Image; class_Tile_Image_Info Box_Image; class_Tile_Image_Info Box_Overlay_Image; class_Scroll_Bar Scroll_Bar; int field_19B8[24]; struct_String260 Labels[5]; int field_1F2C[10]; class_Button Close_Btn; }; #pragma pack(pop) /* 206 */ #pragma pack(push, 1) struct class_MP_LAN_Game_Parameters_Form { class_Base_Form Base; class_Tile_Image_Info Button4_Images[3]; class_Button Button1; int field_CCC; class_ComboBox ComboBoxList1[11]; int field_25110; class_Button Button2; class_Tile_Image_Info Background_Image; class_Tile_Image_Info Button1_Images[3]; class_Tile_Image_Info Button2_Images[3]; class_Tile_Image_Info Button3_Images[3]; class_PCX_Image PCX1; class_Button Buttons2[8]; class_ComboBox ComboBoxList2[8]; class_ComboBox ComboBoxList3[8]; class_TextBox TextBox1; class_Scroll_Bar ScrollBar1; class_Scroll_Bar ScrollBar2; }; #pragma pack(pop) /* 207 */ #pragma pack(push, 1) struct class_MP_Internet_Game_Parameters_Form { class_Base_Form Base; class_Button Button1; class_Tile_Image_Info Image1; class_Tile_Image_Info Images1[3]; class_Tile_Image_Info Images2[3]; class_Tile_Image_Info Images3[3]; class_Tile_Image_Info Image2; class_ComboBox ComboBoxList[2]; class_TextBox TextBox; class_Scroll_Bar ScrollBar; class_Button Buttons1[8]; }; #pragma pack(pop) /* 208 */ #pragma pack(push, 1) struct class_MP_Manager_Form { class_Base_Form Base; class_Button Close_Btn; class_Tile_Image_Info Lobby_Background_Image; class_Tile_Image_Info Lobby_Bar_Image; class_Tile_Image_Info Collapse_Btn_Image; class_Tile_Image_Info Expand_Btn_Image; class_Tile_Image_Info Game_Status_Images[3]; class_Tile_Image_Info Image1; tagRECT Rects[14]; struct_12C struct_12C_Array1[2048]; struct_12C struct_12C_Array2[2048]; class_TextBox Message_TextBox; class_Scroll_Bar Messages_ScrollBar; class_Scroll_Bar Games_ScrollBar; int field_130FAC[16923]; class_Tile_Image_Info Description_Btn_Images[3]; class_Button Direct_Connection_Btn; }; #pragma pack(pop) /* 209 */ #pragma pack(push, 1) struct struct_12C { int field_0[75]; }; #pragma pack(pop) /* 210 */ #pragma pack(push, 1) struct struct_Leader_vtable { int m00; int m01; int m02; int m03; int m04; int m05; int m06; int m07; int m08; int m09; int m10; int m11; int m12; int m13; int m14; int m15; int m16; int m17; int m18; int m19; int m20; int m21; int m22; int m23; int m24; int m25; int m26; int m27; void (__thiscall *m28)(class_Leader *); int m29; int m30; int m31; int m32; int m33; int m34; int m35; int m36; int m37; int m38; int m39; int m40; int m41; int m42; }; #pragma pack(pop) /* 211 */ #pragma pack(push, 1) struct class_Wonder_Form { class_Base_Form Base; class_Tile_Image_Info *Background; class_Tile_Image_Info *Image1; class_Tile_Image_Info View_Btn_Images[3]; int field_600[69]; int field_714[423]; class_Button View_Btn; class_Button CloseBtn; class_City *City; tagRECT Wonder_Image_Rect; int Last; }; #pragma pack(pop) /* 212 */ #pragma pack(push, 1) struct class_New_Game_Map_Form { class_Base_Form Base; int field_574; int field_578; int field_57C; class_Tile_Image_Info Background_Image; class_Tile_Image_Info Landmass_Water_Large_Images[9]; class_Tile_Image_Info Landmass_Water_Small_Images[27]; class_Tile_Image_Info Images3[3]; class_Tile_Image_Info Climate_Images[9]; class_Tile_Image_Info Images5[3]; class_Tile_Image_Info Images6[9]; class_Tile_Image_Info Images7[3]; class_Tile_Image_Info Images8[9]; class_TextBox MapSeed_TextBox; class_Button OkBtn; class_Button CloseBtn; class_PCX_Image PCX; int World_Size; int Barbarian_Activity; int Ocean_Coverage; int World_Landmass; int World_Aridity; int World_Temparature; int World_Age; int field_3C2C; int Dialog_Result; struct_String256 Str_Continue; struct_String256 Str_Back; }; #pragma pack(pop) /* 213 */ #pragma pack(push, 1) struct class_New_Game_Player_Form { class_Base_Form Base; int field_574; struct_String256 Str_Continue; struct_String256 Str_Back; class_PCX_Image PCX; class_PCX_Animation PCX_Animation; int field_E7C[13]; class_Tile_Image_Info Background_Image; class_Tile_Image_Info WhoLeader_Image; class_Tile_Image_Info Description_Button_Images[3]; class_Tile_Image_Info Custom_Leader_Button_Images[3]; class_Button OkBtn; class_Button CancelBtn; class_Button DescriptionBtn; class_Button ConstraintsBtn; class_PCX_Image PCX2; int field_2E18[4]; struct_Game_Limits Turns_Limit; int field_2E64; int field_2E68; int field_2E6C; int field_2E70[46]; class_ComboBox_2 ComboBox_Array[32]; int Dialog_Result; int field_6CA2C; int Last; }; #pragma pack(pop) /* 214 */ #pragma pack(push, 1) struct class_PCX_Animation { int vtable; class_PCX_Image PCX; class_Flic_Anim_Info field_2BC; class_FLC_Frame_Image field_340; class_Flic_Anim_Info field_384; class_FLC_Frame_Image field_408; }; #pragma pack(pop) /* 215 */ #pragma pack(push, 1) struct class_Flic_Anim_Info { class_FLC_Frame_Image Frame; struct_FLIC_HEADER *Flic_Anim_Data; struct_FLC_Direction_Start_Frames *Direction_Frames; struct_FLIC_CHUNK **Delta_Frames; int field_50; int p_Class_1; struct_FLIC_HEADER *FLC_Data_2; int field_5C; int field_60; int field_64; int field_68; int field_6C; int field_70; class_PCX_Color_Table *ColorTable1; class_PCX_Color_Table *Color_Table; int FLC_File_Size; int Last; }; #pragma pack(pop) /* 216 */ #pragma pack(push, 1) struct class_ComboBox_2 { class_ComboBox Base; int field_34C0[5]; int Last; }; #pragma pack(pop) /* 217 */ #pragma pack(push, 1) struct struct_Game_Limits { int Turns_Limit; int Time_Limit; int Points_Limit; int Destroyed_Cities_Limit; int City_Culture_Limit; int Civ_Culture_Limit; int Population_Limit; int Territory_Limit; int Wonders_Limit; int Destroyed_Units_Limit; int Advances_Limit; int Captured_Cities_Limit; int Victory_Point_Price; int Princess_Price; int Princess_Ransom; }; #pragma pack(pop) /* 218 */ #pragma pack(push, 1) struct struct_Default_Game_Limits { int Turns_Limit; int Points_Limit; int Destroyed_Cities_Limit; int City_Culture_Limit; int Civ_Culture_Limit; int Population_Limit; int Territory_Limit; int Wonders_Limit; int Destroyed_Units_Limit; int Advances_Limit; int Captured_Cities_Limit; int Victory_Point_Price; int Princess_Price; int Princess_Ransom; }; #pragma pack(pop) /* 220 */ #pragma pack(push, 1) struct class_Campain_Records_Form { class_Base_Form Base; class_Tile_Image_Info Background_Image; class_Button Ok_Btn; class_Button Cancel_Btn; class_Tile_Image_Info Next_Btn_Images[3]; class_Button Next_Btn; int field_1AA0; int field_1AA4; struct_String260 BIQ_File; int field_1BAC; }; #pragma pack(pop) /* 221 */ #pragma pack(push, 1) struct struct_Campain_Records_Labels { struct_String260 field_0; struct_String260 field_104; struct_String260 field_208; struct_String260 field_30C; struct_String260 field_410; struct_String260 field_514; struct_String260 field_618; struct_String260 field_71C; struct_String260 field_820; struct_String260 field_924; struct_String260 field_A28[9]; }; #pragma pack(pop) /* 222 */ #pragma pack(push, 1) struct class_Load_Scenario_Form { class_Base_Form Base; int field_574[10]; class_PCX_Image PCX; int field_854[65]; struct_String260 Labels[11]; int field_1484; class_Button Cancel_Btn; class_Button Ok_Btn; int Scenario_ListBox[349]; int field_27A4[89]; int field_2908; }; #pragma pack(pop) /* 223 */ #pragma pack(push, 1) struct class_Authors_Form { class_Base_Form Base; int field_574[10]; class_Button Close_Btn; int field_C70[522]; class_Tile_Image_Info Image1; class_Base_Form Sub_Form; int field_1A38; class_PCX_Image PCX; class_Button Button1; class_Form_Data_30 Data_30; }; #pragma pack(pop) /* 224 */ #pragma pack(push, 1) struct class_MP_Filters_Form { class_Base_Form Base; class_Tile_Image_Info Background; class_Button Ok_Btn; class_Button Cancel_Btn; class_ComboBox Server_ComboBox; struct_String260 Label_OK; struct_String260 Label_Cancel; tagRECT Rects[15]; int field_4B00[5]; int field_4B14; }; #pragma pack(pop) /* 225 */ #pragma pack(push, 1) struct struct_City_Form_Labels { int Strategic_Resources; int Improvements; int Production; int Food; int Trade_Income; int Luxury; int Culture; int Pollution; int Per_Turn; int To_Growth; int To_Build; int Single_Turn; int Multiple_Turns; int Percent; int Edit; int Hurry; int Granary; int Deficit; int Zero_Income; int Year_Of_Found; int Population; int Currency_Name; int Per_Turn2; int Total; int Orders_Queue; int Insert_Orders; int Empty_Order; int City_Units; int Activate; int Fortify; int Delete_Unit; int Upgdate_Unit; }; #pragma pack(pop) /* 226 */ enum Unit_Command_Values { UCV_Skip_Turn = 0x1, UCV_Wait = 0x2, UCV_Fortify = 0x4, UCV_Disband = 0x8, UCV_Go_TO = 0x10, UCV_Explore = 0x20, UCV_Sentry = 0x40, UCV_Load = 0x10000001, UCV_Unload = 0x10000002, UCV_Airlift = 0x10000004, UCV_Pillage = 0x10000008, UCV_Bombard = 0x10000010, UCV_Airdrop = 0x10000020, UCV_Build_Army = 0x10000040, UCV_Finish_Improvements = 0x10000080, UCV_Upgrade_Unit = 0x10000100, UCV_Capture = 0x10000200, UCV_Stealth_Attack = 0x10001000, UCV_Enslave = 0x10004000, UCV_Unknown = 0x10008000, UCV_Sacrifice = 0x10100000, UCV_Science_Age = 0x10200000, UCV_Build_Colony = 0x20000001, UCV_Build_City = 0x20000002, UCV_Build_Road = 0x20000004, UCV_Build_Railroad = 0x20000008, UCV_Build_Fortress = 0x20000010, UCV_Build_Mine = 0x20000020, UCV_Irrigate = 0x20000040, UCV_Clear_Forest = 0x20000080, UCV_Clear_Jungle = 0x20000100, UCV_Plant_Forest = 0x20000200, UCV_Clear_Pollution = 0x20000400, UCV_Automate = 0x20000800, UCV_Join_City = 0x20001000, UCV_Build_Airfield = 0x20002000, UCV_Build_Radar_Tower = 0x20004000, UCV_Build_Outpost = 0x20008000, UCV_Build_Barricade = 0x20010000, UCV_Bombing = 0x30000001, UCV_Recon = 0x30000002, UCV_Intercept = 0x30000004, UCV_Rebase = 0x30000008, UCV_Precision_Bombing = 0x30000010, UCV_Sentry_Wait = 0x40000001, UCV_Auto_Bombard = 0x40000002, UCV_Build_Remote_Colony = 0x40000004, UCV_Build_Road_To_Tile = 0x40000008, UCV_Build_Railroad_To_Tile = 0x40000010, UCV_Auto_Build_Trade_Routes = 0x40000020, UCV_Auto_Irrigate = 0x40000040, UCV_Auto_Clear_Forest = 0x40000080, UCV_Auto_Clear_Swamp = 0x40000100, UCV_Auto_Clear_Pollution = 0x40000200, UCV_Auto_City_Actions = 0x40000400, UCV_Auto_Save_Tiles = 0x40000800, UCV_Auto_Air_Bombard = 0x40001000, UCV_Unknown_40002000 = 0x40002000, UCV_Auto_Save_City_Tiles = 0x40004000, UCV_Go_To_City = 0x40008000, UCV_Rename = 0x40010000, }; /* 227 */ #pragma pack(push, 1) struct struct_Unit_Move_Target { int X; int Y; int Unit_CivID; int Bulding_OwnerID; int CivID; }; #pragma pack(pop) /* 228 */ enum Unit_Mode_Actions { UMA_Go_To = 0x1, UMA_Road_To_Tile = 0x2, UMA_Raiload_To_Tile = 0x3, UMA_Airdrop = 0x4, UMA_5 = 0x5, UMA_Bombard = 0x6, UMA_Air_Bombard = 0x7, UMA_Airlift = 0x8, UMA_Recon = 0x9, UMA_Rebase = 0xA, UMA_11 = 0xB, UMA_12 = 0xC, UMA_13 = 0xD, UMA_Build_Colony = 0xE, UMA_Auto_Bombard = 0xF, UMA_Auto_Air_Bombard = 0x10, UMA_17 = 0x11, UMA_18 = 0x12, UMA_19 = 0x13, UMA_20 = 0x14, UMA_21 = 0x15, UMA_22 = 0x16, }; /* 229 */ enum City_Order_Types { COT_Improvement = 0x1, COT_Unit = 0x2, }; /* 230 */ enum Hurry_Production_Type { HPT_Cannot_Hurry = 0x0, HPT_Forced_Labor = 0x1, HPT_Paid_Labor = 0x2, }; /* 231 */ #pragma pack(push, 1) struct class_Hash_Table { struct_Leader_Data_14_vtable *vtable; struct_Hash_Table_Item *Items; int Key_Count; int Capacity; int Hash_Bits; }; #pragma pack(pop) /* 232 */ #pragma pack(push, 1) struct struct_Leader_Data_14_vtable { int m00; int m01_Init_Items; int m02_Enlarge_Items; int m03; int m04_Is_Capacity_Low; int m05; int (__thiscall *m06_Get_Key_Index)(class_Hash_Table *, int); }; #pragma pack(pop) /* 233 */ #pragma pack(push, 1) struct struct_Hash_Table_Item { int Key; int Value; }; #pragma pack(pop) /* 234 */ #pragma pack(push, 1) struct class_Leader_Data_10 { int vtable; int field_4; int field_8; int field_C; }; #pragma pack(pop) /* 235 */ enum ImprovementTypeWonderFeatures_Byte1 { ITW_B1_Allows_Construction_Of_Nuclear_Devices = 0x1, ITW_B1_City_Growth_Inc_2_Citizens = 0x2, ITW_B1_Free_Advance_Inc_2 = 0x4, ITW_B1_Reduces_War_Weariness = 0x8, ITW_B1_Unk1 = 0x10, ITW_B1_Allows_Diplomatic_Victory = 0x20, ITW_B1_Unk2 = 0x40, ITW_B1_Unk3 = 0x80, ITW_B1_Increases_Army_Value = 0x100, ITW_B1_Turist_Attraction = 0x200, }; /* 236 */ #pragma pack(push, 1) struct class_New_Era_Form { class_Base_Form Base; class_Tile_Image_Info *Image1; class_Tile_Image_Info *Image2; struct_String256 field_57C; int field_67C; int Old_Era; int field_684; int field_688; int field_68C; int field_690; class_Radio_Button_List Radio_List; class_Button OK_Btn; class_Button Close_Btn; }; #pragma pack(pop) /* 237 */ #pragma pack(push, 1) struct class_Radio_Button_List { int vtable; class_Tile_Image_Info *Button_Images[3]; int field_10; int field_14[5]; class_Base_Form Control; int field_59C; class_Item_List2 Item_List; }; #pragma pack(pop) /* 238 */ #pragma pack(push, 1) struct class_Item_List2 { int vtable; int field_4[61]; int Last; }; #pragma pack(pop) /* 239 */ #pragma pack(push, 1) struct class_Culture { class_Base Base; int field_1C; int field_20; int field_24; int CivID; }; #pragma pack(pop) /* 240 */ #pragma pack(push, 1) struct class_Espionage { class_Base Base; int field_1C; int field_20; int field_24; int Type; int field_2C; int field_30; int field_34; int field_38; }; #pragma pack(pop) /* 241 */ #pragma pack(push, 1) struct class_CTPG { class_Base Base; int field_1C; int field_20; int field_24; int field_28; int field_2C; }; #pragma pack(pop) /* 242 */ #pragma pack(push, 1) struct struct_Default_Game_Settings { int Top_Menu; int Preferences; int Difficulty; int Rules; int Factions[31]; struct_Default_Game_Limits Game_Limits; int Aggression; int Main_Volume; int Sound_Volume; int Music_Volume; int Clean_Map; int Governor_Common; int Governor_Prod_Never; int Governor_Prod_Often; char Custom_Leader_Name[32]; char Custom_Leader_Title[24]; char Custom_Formal_Name[40]; char Custom_Noun[40]; char Custom_Adjective[40]; int Custom_Gender; int Unknown_Value; int World_Aridity; int Barbarian_Activity; int World_Landmass; int World_Ocean_Coverage; int World_Temperature; int World_Age; int World_Size; int World_Seed; char World_Seed_Name[12]; int Actual_Word_Aridity; int Actual_Barbarian_Activity; int Actual_World_Landmass; int Actual_World_Ocean_Coverage; int Actual_World_Temperature; int Actual_World_Age; int Actual_World_Size; int Actual_Civ_Array[31]; int Seafaring; }; #pragma pack(pop) /* 243 */ #pragma pack(push, 1) struct class_ComboBox_Text_Control { int vtable; int field_4[352]; int field_584; }; #pragma pack(pop) /* 244 */ #pragma pack(push, 1) struct class_Game_Results_Form { class_Base_Form Base; class_Tile_Image_Info Background; struct_Button_Images_3 Prev_Turn_Btn_Images; struct_Button_Images_3 Stop_Btn_Images; struct_Button_Images_3 Play_Btn_Images; struct_Button_Images_3 Next_Turn_Btn_Images; struct_Button_Images_3 First_Turn_Btn_Images; class_Tile_Image_Info ProgressBar_Image; class_ComboBox1 ComboBox; class_Replay_Turn *Current_Replay_Turn; int ItemList1[438]; class_Button Close_Btn; class_CheckBox CheckBox; tagRECT Prev_Turn_Btn_Rect; tagRECT Stop_Btn_Rect; tagRECT Play_Btn_Rect; tagRECT Next_Turn_Btn_Rect; tagRECT Mini_Map_Rect; tagRECT First_Turn_Btn_Rect; int Form_Left; int Form_Top; int field_51C8; int field_51CC; int Time; int field_51D4; int field_51D8; int Status; class_Common_Dialog_Form *Common_Dialog; class_Navigator_Data Navigator_Data; }; #pragma pack(pop) /* 245 */ #pragma pack(push, 1) struct class_ComboBox1 { int vtable; int field_4[6]; int Selected_Index; int field_20[2127]; class_ComboBox_Text_Control TextBox; class_Button Button; int ItemList; int field_2DBC[25]; int ListForm; int field_2E24[349]; int field_3398; int field_339C[72]; }; #pragma pack(pop) /* 246 */ #pragma pack(push, 1) struct class_Replay_Turn { class_Base Base; int Turn; int field_20; int field_24; struct_Replay_Entry_Node *Node; int field_2C; int Data_Ptr1; }; #pragma pack(pop) /* 247 */ #pragma pack(push, 1) struct struct_Replay_Turn_Node { struct_Replay_Turn_Node *Node1; struct_Replay_Turn_Node *Node2; class_Replay_Turn *Turn; }; #pragma pack(pop) /* 248 */ #pragma pack(push, 1) struct class_Replays { class_Base Base; struct_Replays_Body Body; }; #pragma pack(pop) /* 249 */ #pragma pack(push, 1) struct class_Replay_Entry { class_Base Base; char Type; char CivID; __int16 X; __int16 Y; char field_22; char field_23; char *Text; }; #pragma pack(pop) /* 250 */ #pragma pack(push, 1) struct struct_Replays_Body { int field_0; struct_Replay_Turn_Node *Node1; int Value1; struct_Replay_Turn_Node *Node2; int field_10; int field_14; int field_18; int field_1C; int field_20; }; #pragma pack(pop) /* 251 */ #pragma pack(push, 1) struct struct_Replay_Entry_Node { struct_Replay_Entry_Node *Node1; struct_Replay_Entry_Node *Node2; class_Replay_Entry *Entry; }; #pragma pack(pop) /* 252 */ #pragma pack(push, 1) struct struct_World_Features { int World_Aridity; int Final_World_Aridity; int Barbarian_Activity; int Final_Barbarians_Activity; int World_Landmass; int Final_World_Landmass; int Ocean_Coverage; int Final_Ocean_Coverage; int World_Temperature; int Final_World_Temperature; int World_Age; int Final_World_Age; int World_Size; int Continents_Data; int Tiles_Data; }; #pragma pack(pop) /* 253 */ #pragma pack(push, 1) struct struct_Starting_Location { int Owner_Type; int Owner_ID; int X; int Y; }; #pragma pack(pop) /* 254 */ enum Tile_Owner_Types { TOT_None = 0x0, TOT_Barbarians = 0x1, TOT_Civ = 0x2, TOT_Player = 0x3, }; /* 255 */ #pragma pack(push, 1) struct struct_Scenario_Player { int field_0[13]; int *Starting_Units; int field_38; int Free_Techs; int field_40; int field_44; int Starting_Treasury; int Government_ID; int Free_Techs_Count; int Starting_Units_Count; int field_58; int field_5C; int field_60; int field_64; int Last; }; #pragma pack(pop) /* 256 */ enum SquareType_Groups { SQG_xtgc = 0x0, SQG_xpgc = 0x1, SQG_xdgc = 0x2, SQG_xdpc = 0x3, SQG_xdgp = 0x4, SQG_xggc = 0x5, SQG_wCSO = 0x6, SQG_wSSS = 0x7, SQG_wOOO = 0x8, }; /* 257 */ #pragma pack(push, 1) struct struct_Navigator_Cell { __int16 X; __int16 Y; int field_4; struct_Navigator_Point **First_Point; struct_Navigator_Point **Last_Point; int field_10; int field_14; }; #pragma pack(pop) /* 258 */ #pragma pack(push, 1) struct struct_Navigator_Point { __int16 X; __int16 Y; }; #pragma pack(pop) /* 259 */ #pragma pack(push, 1) struct class_JGL_Image { struct_JGL_Image_vtable *vtable; int field_4; int field_8; _RTL_CRITICAL_SECTION Critical_Section; int BitCount; int field_28[6]; int Width2; tagRECT Clip_Rect; tagRECT Image_Rect; int field_64[6]; int field_7C; class_PCX_Image *PCX; BITMAPINFO Bitmap_Info; int field_B0[255]; HRGN hRegion; HBITMAP Prev_hBitmap; HBITMAP hBitmap; HDC Current_DC; HDC DC; void *Bits_Data; int DC_Links; int Bits_Data_Links; int Current_Bits_Data; int field_4D0; }; #pragma pack(pop) /* 260 */ #pragma pack(push, 1) struct struct_JGL_Image_vtable { int m00; int m01; void (__thiscall *m02_Clear_DC)(class_JGL_Image *); char *(__thiscall *m03_Get_Pixel_Data)(class_JGL_Image *this, int, int); void *(__thiscall *m04_Get_Bits_Data)(class_JGL_Image *this); char *(__thiscall *m05_m07_Get_Pixel)(class_JGL_Image *this, int X, int Y); int m06; char *(__thiscall *m07_m05_Get_Pixel)(class_JGL_Image *this, int X, int Y); int m08_Get_Bits_Data; int m09; HDC (__thiscall *m10_Get_DC)(class_JGL_Image *); void (__thiscall *m11_Release_DC)(class_JGL_Image *, int); int m12; int m13_Set_Clip_Region; int m14; int m15; int (__thiscall *m16_Copy_To_Dest)(class_JGL_Image *this, class_JGL_Image *Dest, tagRECT *SrcRect, tagRECT *DestRect); int m17_Register_Rect; int m18; int m19; int m20; int m21; int m22; int m23; int m24; int m25; int m26; int m27; int m28; int m29; int m30; int m31; int m32; int m33; int m34; int m35; int m36; int m37; int m38; int m39; int m40; int m41; int m42; int m43; int m44; int m45; int m46; int m47; int m48_Get_Field_4D0; int m49_Clip_Full_Image; int m50_Get_Clip_Rect; int m51; int m52_Get_Image_Rect; int m53; int (__thiscall *m54_Get_Width)(class_JGL_Image *this); int (__thiscall *m55_Get_Height)(class_JGL_Image *this); int m56; int (__thiscall *m57_Get_Bit_Count)(class_JGL_Image *); int m58; int m59_Set_Color_Table; }; #pragma pack(pop) /* 261 */ #pragma pack(push, 1) struct class_JGL_Graphics { struct_JGL_Graphics_vtable *vtable; int field_4[81]; int Last; }; #pragma pack(pop) /* 262 */ #pragma pack(push, 1) struct class_Window_Controller { struct_Window_Controller_vtable *vtable; }; #pragma pack(pop) /* 263 */ #pragma pack(push, 1) struct struct_Window_Controller_vtable { int m00; int m01; int m02; int m03; int m04; int m05; int m06; int m07; int m08; int m09; int m10; int m11; int m12; int m13; }; #pragma pack(pop) /* 264 */ #pragma pack(push, 1) struct class_JGL_Image_Info { struct_JGL_Image_Info_vtable *vtable; int field_4; int field_8; int field_C; int field_10; void *Bits_Data; int field_18; int field_1C; int BitCount; int field_24; int field_28; int Width2; int Width; int Height; _RTL_CRITICAL_SECTION Critical_Section; }; #pragma pack(pop) /* 265 */ #pragma pack(push, 1) struct struct_JGL_Color_Table_vtable { int m00; int m01; int m02; int m03; int m04_Get_Palette_Colors; int m05_Set_Palette_Colors; int m06; int m07; int m08_Get_Palette_Color; }; #pragma pack(pop) /* 266 */ #pragma pack(push, 1) struct class_JGL_Color_Table { struct_JGL_Color_Table_vtable *vtable; int field_4; int field_8; int field_C[512]; int PCX_Color_Table; int field_810; int field_814; int field_818; int field_81C; }; #pragma pack(pop) /* 267 */ #pragma pack(push, 1) struct struct_JGL_Image_Info_vtable { int m00; int m01; int m02; int m03; int m04_Set_Color_Table; int m05; int m06; int m07; int m08; int m09; int m10; int m11; int m12; int m13; int m14; int m15; int m16; int m17; int m18; int m19; int m20; int m21; int m22; int m23; int m24; int m25; int m26; int m27; int m28; int m29; int m30; int m31; int m32; int m33; int m34; int m35; int m36; int m37; int m38; int m39; int m40; }; #pragma pack(pop) /* 268 */ #pragma pack(push, 1) struct class_Units_Image_Data { int vtable; class_PCX_Color_Table *Color_Tables[32]; float Timing; float Timing2; int field_8C; void *field_90; int field_94; int field_98; void *Node; int Node_Count; }; #pragma pack(pop) /* 269 */ #pragma pack(push, 1) struct class_Animation_Info { struct_Animation_Info_vtable *vtable; int Data; int Color_Table; int field_C[33]; int field_90; int field_94; int field_98[41]; class_Flic_Anim_Info **Animations; int field_140[17]; int field_184[21]; float *field_1D8; int field_1DC; int field_1E0; int field_1E4; int *Frame_Counts; int field_1EC[8]; int field_20C; int field_210; int field_214; int field_218; int Last; }; #pragma pack(pop) /* 270 */ #pragma pack(push, 1) struct struct_Animation_Info_vtable { int m00_Clear; int m01; int m02_Load_INI; int m03; int m04; int m05; int m06; int m07_Tile_m39; }; #pragma pack(pop) /* 271 */ #pragma pack(push, 1) struct class_Animation_Data_60 { struct_Animation_Data_60_vtable *vtable; int field_4; int field_8[12]; int Animation_Time; int field_3C; int Ptr1; int field_44; int Prev; int Next; int field_50; int field_54; int field_58; int field_5C; }; #pragma pack(pop) /* 272 */ #pragma pack(push, 1) struct struct_Animation_Data_60_vtable { int m00; int m01; int m02; int m03; int m04; int m05; int m06; int m07; int m08; int m09; int m10; int m11; int m12; int m13; int m14; int m15; int m16; int m17; int m18; int m19; int m20; int m21; int m22; int m23; int m24; int m25; int m26; int m27; int m28; int m29; int m30; int m31; int m32; int m33; int m34; int m35; int m36; int m37; int m38; int m39; int m40; int m41; int m42; int m43; int m44; int m45; int m46; int m47; int m48; int m49; int m50; int m51; int m52; int m53; int m54; int m55; int m56; int m57; int m58; int m59; int m60; int m61; int m62; int m63; int m64; int m65; int m66; int m67; int m68; int m69; int m70; int m71; int m72; int m73; int m74; int m75; int m76; int m77; }; #pragma pack(pop) /* 273 */ #pragma pack(push, 1) struct class_IDLS { class_Base Base; int field_1C; int field_20; int field_24; int field_28; int field_2C; int field_30; }; #pragma pack(pop) /* 274 */ #pragma pack(push, 1) struct struct_FLIC_HEADER { DWORD size; WORD type; WORD frames; WORD width; WORD height; WORD depth; WORD flags; DWORD speed; WORD reserved1; DWORD created; DWORD creator; DWORD updated; DWORD updater; WORD aspect_dx; WORD aspect_dy; WORD ext_flags; WORD keyframes; WORD totalframes; DWORD req_memory; WORD max_regions; WORD transp_num; BYTE reserved2[24]; DWORD oframe1; DWORD oframe2; int field_58; int field_5C; __int16 Total_Directions; __int16 Frames_Per_Direction; __int16 Left; __int16 Top; __int16 Original_Width; __int16 Original_Height; int Animation_Time; int field_70; int field_74; int field_78; int field_7C; }; #pragma pack(pop) /* 276 */ #pragma pack(push, 1) struct struct_FLIC_CHUNK_HEADER { DWORD size; WORD type; }; #pragma pack(pop) /* 277 */ enum FLIC_Chuck_Types { FLCT_CEL_DATA = 0x3, FLCT_COLOR_256 = 0x4, FLCT_DELTA_FLC = 0x7, FLCT_COLOR_64 = 0xB, FLCT_DELTA_FLI = 0xC, FLCT_BLACK = 0xD, FLCT_BYTE_RUN = 0xF, FLCT_FLI_COPY = 0x10, FLCT_PSTAMP = 0x12, FLCT_DTA_BRUN = 0x19, FLCT_DTA_COPY = 0x1A, FLCT_DTA_LC = 0x1B, FLCT_LABEL = 0x1F, FLCT_BMP_MASK = 0x20, FLCT_MLEV_MASK = 0x21, FLCT_SEGMENT = 0x22, FLCT_KEY_IMAGE = 0x23, FLCT_KEY_PAL = 0x24, FLCT_REGION = 0x25, FLCT_WAVE = 0x26, FLCT_USERSTRING = 0x27, FLCT_RGN_MASK = 0x28, FLCT_LABELEX = 0x29, FLCT_SHIFT = 0x2A, FLCT_PATHMAP = 0x2B, FLCT_PREFIX_TYPE = 0xF100, FLCT_SCRIPT_CHUNK = 0xF1E0, FLCT_FRAME_TYPE_Low_10 = 0xF1EA, FLCT_FRAME_TYPE = 0xF1FA, FLCT_SEGMENT_TABLE = 0xF1FB, FLCT_HUFFMAN_TABLE = 0xF1FC, }; /* 278 */ #pragma pack(push, 1) struct struct_FLIC_FRAME_HEADER { struct_FLIC_CHUNK_HEADER Header; WORD chunks; WORD delay; __int16 reserved; WORD width; WORD height; }; #pragma pack(pop) /* 279 */ #pragma pack(push, 1) struct struct_FLIC_COLOR_256_HEADER { struct_FLIC_CHUNK_HEADER Header; __int16 packets; char skip_count; char copy_count; }; #pragma pack(pop) /* 280 */ #pragma pack(push, 1) union struct_FLIC_CHUNK { struct_FLIC_CHUNK_HEADER Chunk; struct_FLIC_FRAME_HEADER Frame; struct_FLIC_COLOR_256_HEADER Color_256; }; #pragma pack(pop) /* 281 */ union __m64 { unsigned __int64 m64_u64; float m64_f32[2]; __int8 m64_i8[8]; __int16 m64_i16[4]; __int32 m64_i32[2]; __int64 m64_i64; unsigned __int8 m64_u8[8]; unsigned __int16 m64_u16[4]; unsigned __int32 m64_u32[2]; }; /* 282 */ union __m128 { float m128_f32[4]; unsigned __int64 m128_u64[2]; __int8 m128_i8[16]; __int16 m128_i16[8]; __int32 m128_i32[4]; __int64 m128_i64[2]; unsigned __int8 m128_u8[16]; unsigned __int16 m128_u16[8]; unsigned __int32 m128_u32[4]; }; /* 283 */ struct __m128d { double m128d_f64[2]; }; /* 284 */ union __m128i { __int8 m128i_i8[16]; __int16 m128i_i16[8]; __int32 m128i_i32[4]; __int64 m128i_i64[2]; unsigned __int8 m128i_u8[16]; unsigned __int16 m128i_u16[8]; unsigned __int32 m128i_u32[4]; unsigned __int64 m128i_u64[2]; }; /* 285 */ #pragma pack(push, 1) struct struct_FLC_Direction_Start_Frames { struct_FLIC_CHUNK *Frames[8]; }; #pragma pack(pop) /* 286 */ #pragma pack(push, 1) struct struct_Animation_Node { struct_Animation_Node *Prev; struct_Animation_Node *Next; class_Animation_Info *Info; }; #pragma pack(pop) /* 287 */ #pragma pack(push, 1) struct struct_Era_Type { int V; struct_String64 Name; struct_String32 Civ_Entry; struct_String32 Reseachers_Names[5]; int V1; int V2; }; #pragma pack(pop) /* 288 */ #pragma pack(push, 1) struct class_Civ_Treaties { int vtable; int Count; class_Civ_Treaty *First; class_Civ_Treaty *Last; }; #pragma pack(pop) /* 289 */ #pragma pack(push, 1) struct class_Civ_Treaty { int vtable; int field_4; int field_8; int field_C; class_Civ_Treaty *Next; class_Civ_Treaty *Prev; }; #pragma pack(pop) /* 290 */ #pragma pack(push, 1) struct struct_Difficulty_Level { int V; struct_String64 Name; int Content_Citizens; int Transition_Time; int Defencive_Land_Units; int Offencive_Type_Units; int Start_Units_1; int Start_Units_2; int Additional_Free_Support; int Bonus_For_Each_City; int Attack_Bonus; int Cost_Factor; int Optimal_Cities; int AI_Trade_Rate; int Corruption_Level; int Quelled_Citizens; }; #pragma pack(pop) /* 291 */ enum Civ_Contact_Type { CCT_Have_Military_Map = 0x40, }; /* 292 */ enum Game_Render_Flags { GRF_Show_Enemy_Units = 0x8, }; /* 293 */ enum Goody_Hut_Message_Type { GHMT_Money = 0x0, GHMT_Maps = 0x1, GHMT_City = 0x2, GHMT_Nothing = 0x3, GHMT_Settlers = 0x4, GHMT_Mercenaries = 0x5, GHMT_Tech = 0x6, GHMT_Barbarians = 0x7, }; /* 294 */ enum UnitStateType { UnitState_Fortifying = 0x1, UnitState_Build_Mines = 0x2, UnitState_Irrigate = 0x3, UnitState_Build_Forest = 0x4, UnitState_Build_Road = 0x5, UnitState_Build_Railroad = 0x6, UnitState_Plant_Forest = 0x7, UnitState_Clean_Forest = 0x8, UnitState_Clear_Pollution = 0xA, UnitState_Build_Airfield = 0xB, UnitState_Build_Radar_Tower = 0xC, UnitState_Build_Outpost = 0xD, UnitState_Build_Barricade = 0xE, UnitState_Intercept = 0xF, UnitState_Go_To = 0x10, UnitState_Road_To_Tile = 0x11, UnitState_Railroad_To_Tile = 0x12, UnitState_Build_Colony = 0x13, UnitState_Auto_Irrigate = 0x14, UnitState_Build_Trade_Routes = 0x15, UnitState_Auto_Clear_Forest = 0x16, UnitState_Auto_Clear_Swamp = 0x17, UnitState_Auto_Clear_Pollution = 0x18, UnitState_Auto_Save_City_Tiles = 0x19, UnitState_Explore = 0x1A, UnitState_1B = 0x1B, UnitState_1C = 0x1C, UnitState_1D = 0x1D, UnitState_1E = 0x1E, UnitState_Auto_Bombard = 0x1F, UnitState_Auto_Air_Bombard = 0x20, }; /* 295 */ /* 296 */ #pragma pack(push, 1) struct class_Control_Tooltips { int vtable; int field_4; int field_8; int field_C; int field_10[4]; class_Form_Data_30 Data_30; class_Control_Tooltip *Items; int Capacity; int Count; int field_5C; }; #pragma pack(pop) /* 297 */ #pragma pack(push, 1) struct class_Control_Tooltip { int vtable; int Left; int Top; int Right; int Bottom; int field_14; int ID; char *Tooltip; }; #pragma pack(pop) /* 298 */ #pragma pack(push, 1) struct struct_City_Order { int OrderID; int OrderType; }; #pragma pack(pop) /* 299 */ enum ImprovementTypeSmallWonderFeatures_Byte1 { ITSW_B1_Allows_Healing_In_Enemy_Territory = 0x1, ITSW_B1_Required_Good_Must_be_in_City_Radius = 0x2, ITSW_B1_Requires_Victorous_Army = 0x4, }; /* 300 */ #pragma pack(push, 1) struct struct_Trade_Net_Distance_Info { __int16 field_0; char Remained_Moves; char Direction; __int16 field_4; __int16 Moves; __int16 field_8; __int16 field_A; __int16 Tile_Index; __int16 Radius_Neighbour_Index; }; #pragma pack(pop) /* 301 */ #pragma pack(push, 1) struct class_Game_Spy_Connection_Form { class_Base_Form Base; class_Button Cancel_Btn; class_Tile_Image_Info Calcen_Btn_Images[3]; int field_CCC[6]; char B1; char B2; __int16 Last; }; #pragma pack(pop) /* End of file */