12#ifndef TT_INCLUDE_PURCHASESETTINGSDEFCLASS_H
13#define TT_INCLUDE_PURCHASESETTINGSDEFCLASS_H
14#include "Definition.h"
15#include "Engine_String.h"
17#include "TranslateDBClass.h"
19#include "NetworkObjectClass.h"
20#include "ExtendedNetworkObject.h"
21#include "BuildingGameObjDef.h"
22using namespace BuildingConstants;
23#define PTTEAM(t) (t?0:1)
24class PurchaseSettingsDefClass
abstract :
public DefinitionClass,
public NetworkObjectClass {
41 PurchaseSettingsDefClass();
42 ~PurchaseSettingsDefClass();
43 void setDirtyBitsForClient(
const int clientId);
44 const PersistFactoryClass &Get_Factory()
const;
45 bool Save(ChunkSaveClass &csave);
46 bool Load(ChunkLoadClass &cload);
47 void Load_Variables(ChunkLoadClass &cload);
48 uint32 Get_Class_ID()
const;
49 PersistClass *Create()
const;
50 static SCRIPTS_API PurchaseSettingsDefClass *Find_Definition(TYPE type,TEAM team);
52 virtual void Dump (FileClass &file);
54 DECLARE_EDITABLE(PurchaseSettingsDefClass,DefinitionClass);
58 void Set_Delete_Pending()
61 unsigned int Get_Network_Class_ID ()
const {
return 2004; }
65 void Export_Occasional(BitStreamClass &packet);
66 void Import_Occasional(BitStreamClass &packet);
69 int Get_Definition(
int index)
71 return presetids[index];
73 int Get_Cost(
int index)
77 const wchar_t *Get_Name(
int index)
79 return TRANSLATE(stringids[index]);
81 const char *Get_Texture(
int index)
83 return textures[index];
85 int Get_Alt_Definition(
int index,
int index2)
87 return altpresetids[index][index2];
89 const char *Get_Alt_Texture(
int index,
int index2)
91 return alttextures[index][index2];
93 int Get_String(
int index)
95 return stringids[index];
105 int Get_Tech_Level(
int index)
107 return TechLevel[index];
109 bool Get_Factory_Not_Required(
int index)
111 return FactoryNotRequired[index];
113 BuildingType Get_Factory_Building(
int index)
115 return Factory[index];
117 BuildingType Get_Tech_Building(
int index)
119 return TechBuilding[index];
121 void Set_Tech_Level(
int index,
int level)
123 TechLevel[index] = level;
125 void Set_Factory_Building(
int index,BuildingType type)
127 Factory[index] = type;
129 void Set_Tech_Building(
int index,BuildingType type)
131 TechBuilding[index] = type;
133 bool Get_Hidden(
int index)
135 return Hidden[index];
137 bool Get_Disabled(
int index)
139 return Disabled[index];
141 bool Get_Busy(
int index)
145 void Set_Hidden(
int index,
bool b)
148 Set_Object_Dirty_Bit(BIT_OCCASIONAL,
true);
150 void Set_Disabled(
int index,
bool b)
153 Set_Object_Dirty_Bit(BIT_OCCASIONAL,
true);
155 void Set_Busy(
int index,
bool b)
158 Set_Object_Dirty_Bit(BIT_OCCASIONAL,
true);
160 bool Get_Page_Hidden()
164 void Set_Page_Hidden(
bool b)
167 Set_Object_Dirty_Bit(BIT_OCCASIONAL,
true);
169 bool Get_Page_Disabled()
173 void Set_Page_Disabled(
bool b)
176 Set_Object_Dirty_Bit(BIT_OCCASIONAL,
true);
182 void Set_Page_Busy(
bool b)
185 Set_Object_Dirty_Bit(BIT_OCCASIONAL,
true);
187 void Set_Definition(
int index,
int preset) {
188 presetids[index] = preset;
190 void Set_Alt_Definition(
int index,
int index2,
int preset) {
191 altpresetids[index][index2] = preset;
193 void Set_Cost(
int index,
int cost) {
202 unsigned int stringids[10];
203 StringClass textures[10];
208 BuildingType Factory[10];
209 BuildingType TechBuilding[10];
210 bool FactoryNotRequired[10];
211 int altpresetids[10][3];
212 StringClass alttextures[10][3];
216 static PurchaseSettingsDefClass *DefinitionArray[4][7];
217 friend class PresetDump;
220IMPLEMENT_EXTENDED_NETWORK_OBJECT(PurchaseSettingsDefClass);