-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathDataCopies.hpp
133 lines (123 loc) · 4.25 KB
/
DataCopies.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#pragma once
#include <cstdint>
#include <utility>
#include <vector>
#include "genie/dat/DatFile.h"
class GraphicCopies
{
public:
int16_t IconID = -1;
std::pair<int16_t, int16_t> StandingGraphic = { -1, -1 };
int16_t DyingGraphic = -1;
int16_t UndeadGraphic = -1;
uint8_t DamageGraphicCount = 0;
std::vector<genie::unit::DamageGraphic> DamageGraphics;
int16_t ConstructionGraphicID = -1;
int16_t SnowGraphicID = -1;
int16_t DestructionGraphicID = -1;
int16_t DestructionRubbleGraphicID = -1;
int16_t ResearchingGraphic = -1;
int16_t ResearchCompletedGraphic = -1;
int16_t SpawningGraphic = -1;
int16_t UpgradeGraphic = -1;
int16_t HeroGlowGraphic = -1;
int32_t GarrisonGraphic = -1;
int32_t SpecialGraphic = -1;
int16_t AttackGraphic = -1;
int16_t WalkingGraphic = -1;
int16_t RunningGraphic = -1;
GraphicCopies() {}
~GraphicCopies() {}
};
class AdvCopies // Used to copy units with various settings.
{
public:
// AllCivs is used as follows
// 0x01 = normal copy
// 0x02 = special copy
// 0x04 =
// 0x08 = from AoE 1
// 0x10 = damage graphics
// 0x20 = attacks
// 0x40 = armors
// 0x80 = commands
// 0x100 = drop sites
int16_t AllCivs;
std::vector<std::vector<bool>> UnitExists;
std::vector<std::vector<genie::Unit>> UnitCopies;
std::vector<std::vector<GraphicCopies>> UnitGraphics;
std::vector<short> UnitDamageGraphicExists;
std::vector<std::vector<genie::unit::DamageGraphic>> UnitDamageGraphics;
std::vector<short> UnitDropSiteExists;
std::vector<std::vector<int16_t>> UnitDropSites;
std::vector<short> UnitAttackExists;
std::vector<std::vector<genie::unit::AttackOrArmor>> UnitAttacks;
std::vector<short> UnitArmorExists;
std::vector<std::vector<genie::unit::AttackOrArmor>> UnitArmors;
std::vector<short> UnitCommandExists;
std::vector<std::vector<genie::Task>> UnitCommands;
AdvCopies()
{
UnitCopies.resize(1); // Civs
UnitGraphics.resize(1); // Civs
UnitDamageGraphics.resize(1); // Civs
UnitDropSites.resize(1); // Civs
UnitAttacks.resize(1); // Civs
UnitArmors.resize(1); // Civs
UnitCommands.resize(1); // Civs
UnitGraphics[0].resize(1);
}
~AdvCopies() {}
};
class Copies
{
public:
Copies() {}
~Copies() {}
std::vector<genie::Tech> Tech;
std::vector<genie::Effect> Effect;
std::vector<genie::EffectCommand> EffectCmd;
std::vector<genie::TechTreeAge> TTAge;
std::vector<long> TTAgeBuild;
std::vector<long> TTAgeUnit;
std::vector<long> TTAgeRes;
std::vector<long> TTMode;
std::vector<long> TTItem;
std::vector<char> TTUnknown4;
std::vector<char> TTUnknown5;
std::vector<genie::BuildingConnection> TTBuildCon;
std::vector<long> TTBuildBuild;
std::vector<long> TTBuildUnit;
std::vector<long> TTBuildRes;
std::vector<genie::UnitConnection> TTUnitCon;
std::vector<long> TTUnitUnit;
std::vector<genie::ResearchConnection> TTResCon;
std::vector<long> TTResBuild;
std::vector<long> TTResUnit;
std::vector<long> TTResRes;
std::vector<genie::Civ> Civ;
std::vector<float> Resource;
AdvCopies Dat; // Advanced unit copying.
std::vector<genie::UnitHeader> UnitHeader;
std::vector<genie::UnitLine> UnitLine;
std::vector<int16_t> UnitLineUnit;
std::vector<genie::Graphic> Graphic;
std::vector<uint32_t> GraphicPointer, TRptr1, TRptr2;
std::vector<genie::GraphicDelta> GraphicDelta;
std::vector<genie::Terrain> Terrain;
std::vector<short> TerBorder;
std::vector<genie::TerrainRestriction> TerrainRestriction;
std::vector<float> TerrainRestrictionSubAccess;
std::vector<genie::TerrainPassGraphic> TerrainRestrictionSubGraphics;
std::vector<genie::Sound> Sound;
std::vector<genie::SoundItem> SoundItem;
std::vector<genie::PlayerColour> PlayerColor;
std::vector<genie::TerrainBorder> TerrainBorder;
std::vector<std::vector<genie::FrameData>> BorderBorder;
std::vector<genie::FrameData> FrameData;
std::vector<genie::MapInfo> Map;
std::vector<genie::MapLand> MapLand;
std::vector<genie::MapTerrain> MapTerrain;
std::vector<genie::MapUnit> MapUnit;
std::vector<genie::MapElevation> MapElevation;
};