12#ifndef TT_INCLUDE_BASECONTROLLERCLASS_H
13#define TT_INCLUDE_BASECONTROLLERCLASS_H
14#include "NetworkObjectClass.h"
15#include "OBBoxClass.h"
16#include "Engine_Vector.h"
26class BaseControllerClass :
27 public NetworkObjectClass
32 float OperationTimeFactor;
34 DynamicVectorClass<BuildingGameObj*> BuildingList;
36 bool CanGenerateSoldiers;
37 bool CanGenerateVehicles;
40 bool BeaconDestroyedBase;
41 OBBoxClass BeaconZone;
42 unsigned int AnnouncementInterval;
43 float AnnouncementTime;
44 float AnnouncementTime2;
45 unsigned int Unknown1;
46 unsigned int Unknown2;
49 BaseControllerClass();
50 ~BaseControllerClass();
51 void Import_Occasional(BitStreamClass &BitStream);
52 void Export_Occasional(BitStreamClass &BitStream);
53 void Set_Delete_Pending()
59 static BaseControllerClass *Find_Base(
int Team);
60 VehicleGameObj *Get_Harvester_Vehicle();
61 BuildingGameObj *Find_Building(
unsigned int Type);
62 void Power_Base(
bool Power);
63 void Set_Can_Generate_Soldiers(
bool CanGenerate);
64 void Set_Can_Generate_Vehicles(
bool CanGenerate);
65 void Set_Base_Destroyed(
bool BaseDesrtoyed);
67 void Set_Beacon_Destroyed_Base(
bool BeaconDestroyed);
68 void Enable_Radar(
bool Enable);
69 void Distribute_Funds_To_Each_Teammate(
int Amount);
70 void Distribute_Funds_To_Each_Teammate(
float Amount);
71 void On_Vehicle_Generated(VehicleGameObj *);
72 void On_Beacon_Warning(BeaconGameObj* beacon);
73 void Request_Harvester(
int harvesterDefinitionId);
75 static BaseControllerClass *Find_Base_For_Star();
76 void On_Beacon_Armed(BeaconGameObj *);
77 void On_Beacon_Disarmed(BeaconGameObj *);
78 void Add_Building(BuildingGameObj *b);
79 void On_Building_Damaged(BuildingGameObj *);
80 void On_Building_Destroyed(BuildingGameObj *);
81 void On_Building_Revived(BuildingGameObj *);
82 void On_Vehicle_Delivered(VehicleGameObj *);
83 void On_Vehicle_Damaged(VehicleGameObj *);
84 void On_Vehicle_Destroyed(VehicleGameObj *);
85 void Check_Base_Power();
86 void Check_Vehicle_Factory();
87 void Play_Announcement(
int announcement);
89 bool Can_Build_Ground();
90 bool Can_Build_Naval();
91 void Check_Prerequisites();
93 bool Is_Base_Powered()
const
97 float Get_Operation_Time_Factor()
const
99 return OperationTimeFactor;
101 bool Can_Generate_Soldiers()
const
103 return CanGenerateSoldiers;
105 bool Can_Generate_Vehicles()
const
107 return CanGenerateVehicles;
109 int Get_Player_Type()
const
113 bool Is_Base_Destroyed()
const
115 return BaseDestroyed;
117 bool Did_Beacon_Destroy_Base()
const
119 return BeaconDestroyedBase;
121 const OBBoxClass& Get_Beacon_Zone()
125 bool Is_Radar_Enabled()
const
129 DynamicVectorClass<BuildingGameObj*> &Get_Building_List()
133 bool Are_All_Buildings_Destroyed();
134 void Initialize(
int team);
135 void Initialize_Building_List();
136 void Reset_Building_List();
138 void Set_Base_Powered(
bool onoff);
139 void Set_Operation_Time_Factor(
float time);