UFO: Alien Invasion
Doxygen documentation generating
cp_building.h
Go to the documentation of this file.
1 
6 /*
7 Copyright (C) 2002-2023 UFO: Alien Invasion.
8 
9 This program is free software; you can redistribute it and/or
10 modify it under the terms of the GNU General Public License
11 as published by the Free Software Foundation; either version 2
12 of the License, or (at your option) any later version.
13 
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17 
18 See the GNU General Public License for more details.
19 
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
22 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23 */
24 
25 #pragma once
26 
27 #include "../../../shared/shared.h"
28 #include "../../DateTime.h"
29 
31 typedef enum {
35  /* and building needs workers */
39 
41 typedef enum {
48 
51 typedef enum {
71 
73 typedef struct building_s {
74  int idx;
75  struct building_s* tpl;
76  struct base_s* base;
78  const char* id;
79  char* name;
80  const char* image, *mapPart, *pedia;
81 
83  int fixCosts, varCosts;
84 
89  float level;
90 
91  class DateTime timeStart;
92  int buildTime;
93 
95 
97  char* onConstruct;
98  char* onDestroy;
99  char* onEnable;
100  char* onDisable;
101 
102  int maxCount;
105  bool mandatory;
106 
109 
111  struct technology_s* tech;
112  const struct building_s* dependsBuilding;
114  int capacity;
115 } building_t;
116 
117 void B_ParseBuildings(const char* name, const char** text, bool link);
118 bool B_BuildingScriptSanityCheck(void);
119 
120 building_t* B_GetBuildingTemplate(const char* buildingName);
121 building_t* B_GetBuildingTemplateSilent(const char* buildingName);
123 
124 buildingType_t B_GetBuildingTypeByBuildingID(const char* buildingID);
125 bool B_CheckBuildingDependencesStatus(const building_t* building);
126 bool B_IsBuildingBuiltUp(const building_t* building);
127 float B_GetConstructionTimeRemain(const building_t* building);
128 
129 bool B_FireEvent(const building_t* buildingTemplate, const struct base_s* base, buildingEvent_t eventType);
bool mandatory
Definition: cp_building.h:105
char * onConstruct
Definition: cp_building.h:97
Class describing a point of time.
Definition: DateTime.h:30
float level
Definition: cp_building.h:89
QGL_EXTERN GLint GLenum type
Definition: r_gl.h:94
struct building_s * tpl
Definition: cp_building.h:75
struct technology_s * tech
Definition: cp_building.h:111
int varCosts
Definition: cp_building.h:83
float B_GetConstructionTimeRemain(const building_t *building)
Returns the time remaining time of a building construction.
Definition: cp_building.cpp:50
bool B_IsBuildingBuiltUp(const building_t *building)
Returns if a building is fully buildt up.
Definition: cp_building.cpp:37
struct base_s * base
Definition: cp_building.h:76
buildingStatus_t buildingStatus
Definition: cp_building.h:94
bool B_FireEvent(const building_t *buildingTemplate, const struct base_s *base, buildingEvent_t eventType)
buildingType_t
All different building types.
Definition: cp_building.h:51
char * onDisable
Definition: cp_building.h:100
char * onDestroy
Definition: cp_building.h:98
int buildTime
Definition: cp_building.h:92
vec2_t pos
Definition: cp_building.h:104
char * name
Definition: cp_building.h:79
char * onEnable
Definition: cp_building.h:99
vec2_t size
Definition: cp_building.h:82
buildingEvent_t
Building events.
Definition: cp_building.h:41
QGL_EXTERN GLuint GLsizei GLsizei GLint GLenum GLchar * name
Definition: r_gl.h:110
const char * id
Definition: cp_building.h:78
bool B_BuildingScriptSanityCheck(void)
Checks the parsed buildings for errors.
const char * pedia
Definition: cp_building.h:80
const struct building_s * dependsBuilding
Definition: cp_building.h:112
building_t * B_GetBuildingTemplateSilent(const char *buildingName)
Returns the building in the global building-types list that has the unique name buildingID.
int maxEmployees
Definition: cp_building.h:108
const building_t * B_GetBuildingTemplateByType(buildingType_t type)
Returns the building template in the global building-types list for a buildingType.
vec_t vec2_t[2]
Definition: ufotypes.h:38
buildingType_t buildingType
Definition: cp_building.h:110
A building with all it's data.
Definition: cp_building.h:73
bool B_CheckBuildingDependencesStatus(const building_t *building)
Check that the dependences of a building is operationnal.
void B_ParseBuildings(const char *name, const char **text, bool link)
Copies an entry from the building description file into the list of building types.
buildingType_t B_GetBuildingTypeByBuildingID(const char *buildingID)
Returns the building type for a given building identified by its building id from the ufo script file...
Definition: cp_building.cpp:84
building_t * B_GetBuildingTemplate(const char *buildingName)
Returns the building in the global building-types list that has the unique name buildingID.
buildingStatus_t
All possible building status.
Definition: cp_building.h:31