UFO: Alien Invasion
Loading...
Searching...
No Matches
q_shared.h
Go to the documentation of this file.
1
7
8/*
9All original material Copyright (C) 2002-2025 UFO: Alien Invasion.
10
11Original file from Quake 2 v3.21: quake2-2.31/game/q_shared.h
12Copyright (C) 1997-2001 Id Software, Inc.
13
14This program is free software; you can redistribute it and/or
15modify it under the terms of the GNU General Public License
16as published by the Free Software Foundation; either version 2
17of the License, or (at your option) any later version.
18
19This program is distributed in the hope that it will be useful,
20but WITHOUT ANY WARRANTY; without even the implied warranty of
21MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
22
23See the GNU General Public License for more details.
24
25You should have received a copy of the GNU General Public License
26along with this program; if not, write to the Free Software
27Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28
29*/
30
31#pragma once
32
33#include "../shared/ufotypes.h"
34#include "../shared/shared.h"
35#include "../shared/mathlib.h"
36#include "../shared/defines.h"
37#include "../common/list.h"
38
39#include "inv_shared.h"
40#include "chr_shared.h"
41#include "q_sizes.h"
42
43#ifdef DEDICATED_ONLY
44/* no gettext support for dedicated servers */
45# define _(String) String
46# define ngettext(x, y, cnt) x
47#endif
48
49/*
50==============================================================
51SYSTEM SPECIFIC
52==============================================================
53*/
54
55/* this is only here so the functions in q_shared.c can link */
56void Sys_Error(const char* error, ...) __attribute__((noreturn, format(__printf__, 1, 2)));
57void Com_Printf(const char* msg, ...) __attribute__((format(__printf__, 1, 2)));
58void Com_DPrintf(int level, const char* msg, ...) __attribute__((format(__printf__, 2, 3)));
59
60#define TEAM_NO_ACTIVE -1
61#define TEAM_CIVILIAN 0
62#define TEAM_PHALANX 1
63#define TEAM_ALIEN 7
64#define TEAM_MAX_HUMAN TEAM_ALIEN - 1
65
66/*
67==========================================================
68ELEMENTS COMMUNICATED ACROSS THE NET
69==========================================================
70*/
71
73#define EVENT_INSTANTLY 0x80
74
144
177
186
187#define DOOR_ROTATION_ANGLE 90
188
202
203extern const char* pa_format[PA_NUM_EVENTS];
204
206typedef int32_t shoot_types_t;
211#define ST_RIGHT 0
216#define ST_RIGHT_REACTION 1
221#define ST_LEFT 2
226#define ST_LEFT_REACTION 3
231#define ST_HEADGEAR 4
236#define ST_NUM_SHOOT_TYPES 5
237
239#define IS_SHOT_REACTION(x) ((x) == ST_RIGHT_REACTION || (x) == ST_LEFT_REACTION)
241#define IS_SHOT_LEFT(x) ((x) == ST_LEFT || (x) == ST_LEFT_REACTION)
243#define IS_SHOT_RIGHT(x) ((x) == ST_RIGHT || (x) == ST_RIGHT_REACTION)
245#define IS_SHOT_HEADGEAR(x) ((x) == ST_HEADGEAR)
246
247/* shoot flags */
248#define SF_IMPACT 1
249#define SF_BODY 2
250#define SF_BOUNCING 4
251#define SF_BOUNCED 8
252
253/* is used in events where two edicts can be send, one actor and one receiver - but one of them can
254 * be nullptr, e.g. in a case where the actor is a trigger */
255#define SKIP_LOCAL_ENTITY (-1)
256
257#define MAX_DEATH 3
258
259/* State flags - transferred as short (so max 16 bits please) */
260/* public states */
261#define STATE_PUBLIC 0x00FF
262#define STATE_DEAD 0x0003
263#define STATE_CROUCHED 0x0004
264#define STATE_PANIC 0x0008
265
266#define STATE_RAGE 0x0010
267#define STATE_INSANE 0x0020
268#define STATE_STUN 0x0043
269#define STATE_DAZED 0x0080
270
271/* private states */
272#define STATE_REACTION 0x0300
273#define STATE_SHAKEN 0x0400
274#define STATE_XVI 0x0800
275
276#define GRAVITY 500.0
277
278#define MAX_SKILL 100
279#define MAX_MAXHP 255
280#define MIN_TU 39
281#define WEIGHT_LIGHT 0.2f
282#define WEIGHT_HEAVY 0.5f
283#define WEIGHT_NORMAL_PENALTY 0.3f
284#define WEIGHT_HEAVY_PENALTY 0.6f
285#define WEIGHT_FACTOR 1000.0f
286
287#define GET_ENCUMBRANCE_PENALTY(weight, max) (1.0f - ((weight) > (max) * WEIGHT_FACTOR * WEIGHT_HEAVY ? WEIGHT_HEAVY_PENALTY : (weight) > (max) * WEIGHT_FACTOR * WEIGHT_LIGHT ? WEIGHT_NORMAL_PENALTY : 0.0f))
289#define GET_ACC( ab, sk, pn ) ((pn) - (((float)(ab) - 10) / (MAX_SKILL / 2) + ((float)(sk) - 10) / (MAX_SKILL / 2)) / 2)
290#define GET_MORALE( ab ) (std::min((100 + (ab) * 150/MAX_SKILL), 255))
291#define GET_TU( ab, md ) (MIN_TU * (md) + (ab) * 20 / MAX_SKILL)
292
293#define DOOR_OPEN_REVERSE 4
294#define GET_SLIDING_DOOR_SHIFT_VECTOR(dir, speed, vecout) \
295 do { const bool reverse = (dir) & DOOR_OPEN_REVERSE; VectorClear(vecout); vecout[dir & 3] = reverse ? -speed : speed; } while (0);
296
297/* For a RMA with 50 tiles we need about 1k. So let's take 2k */
298#define MAX_TILESTRINGS 8
299#define MAX_CLIENTS 256 /* absolute limit */
300#define MAX_GENERAL (MAX_CLIENTS*2) /* general config strings */
301#define MAX_ENTITYSTRINGS 2
302
309#define CS_NAME 0
310#define CS_MAPTITLE 1
311#define CS_MAXCLIENTS 2
312#define CS_MAPCHECKSUM 3
313#define CS_MAXSOLDIERSPERTEAM 4
314#define CS_MAXSOLDIERSPERPLAYER 5
315#define CS_ENABLEMORALE 6
316#define CS_MAXTEAMS 7
317#define CS_PLAYERCOUNT 8
318#define CS_VERSION 9
319#define CS_UFOCHECKSUM 10
320#define CS_OBJECTAMOUNT 11
321#define CS_LIGHTMAP 12
322#define CS_MAPZONE 13
323#define CS_VICTORY_CONDITIONS 14
324#define CS_ENTITYSTRING 15
325#define CS_TILES (CS_ENTITYSTRING+MAX_ENTITYSTRINGS)
326#define CS_POSITIONS (CS_TILES+MAX_TILESTRINGS)
327#define CS_MODELS (CS_POSITIONS+MAX_TILESTRINGS)
328#define CS_PLAYERNAMES (CS_MODELS+MAX_MODELS)
329#define CS_GENERAL (CS_PLAYERNAMES+MAX_CLIENTS)
330#define MAX_CONFIGSTRINGS (CS_GENERAL+MAX_GENERAL)
331
333#define MAX_GAMETYPES 16
334
335#define MAX_CVARLISTINGAMETYPE 16
336typedef struct cvarlist_s {
339} cvarlist_t;
340
341typedef struct gametype_s {
342 char id[MAX_VAR];
343 char name[MAX_VAR];
346} gametype_t;
347
355class TerrainDef /* a single entry in the table */
356{
357public:
358 byte rgbRed;
361 char terrainName[20];
365
366 TerrainDef() : rgbRed(128), rgbGreen(255), rgbBlue(0), survivalChance(2.5f), rainChance(0.2f), snowChance(0.1f) {
367 strcpy(terrainName, "grass");
368 }
369 TerrainDef(byte _rgbRed, byte _rgbGreen, byte _rgbBlue, const char* _terrainName, float _survivalChance, float _rainChance, float _snowChance) {
370 rgbRed = _rgbRed;
371 rgbGreen = _rgbGreen;
372 rgbBlue = _rgbBlue;
373 strcpy(terrainName, _terrainName);
374 survivalChance = _survivalChance;
375 rainChance = _rainChance;
376 snowChance = _snowChance;
377 }
378};
379
387
388#define MAX_TERRAINDEFS 16
390{
392
393 inline const TerrainDef* findByColor(const byte* const color) const {
394 return findByColor(color[0], color[1], color[2]);
395 }
396 inline const TerrainDef* findByColor(byte red, byte green, byte blue) const {
397 for (int i = 0; i < MAX_TERRAINDEFS; i++) {
398 const TerrainDef* p = terrainDefTable[i];
399 if (!p)
400 break;
401 if (p->rgbRed == red && p->rgbGreen == green && p->rgbBlue == blue)
402 return p;
403 }
404 return nullptr;
405 }
406 inline const TerrainDef* findByName(const char* tname) const {
407 for (int i = 0; i < MAX_TERRAINDEFS; i++) {
408 const TerrainDef* p = terrainDefTable[i];
409 if (!p)
410 break;
411 if (Q_streq(p->terrainName, tname))
412 return p;
413 }
414 return nullptr;
415 }
416public:
418 terrainDefTable[0] = nullptr;
419 }
421 for (int i = 0; i < MAX_TERRAINDEFS; i++) {
422 if (terrainDefTable[i])
423 delete terrainDefTable[i];
424 }
425 }
426
427 bool add(const TerrainDef* tdef);
428 const char* getWeather (const byte* const color);
429
435 inline float getSurvivalChance(const byte* const color) const {
436 const TerrainDef* p = findByColor(color);
437 return p ? p->survivalChance : 0.0;
438 }
439 inline float getRainChance(const byte* const color) const {
440 const TerrainDef* p = findByColor(color);
441 return p ? p->rainChance : 0.0;
442 }
443 inline float getSnowChance(const byte* const color) const {
444 const TerrainDef* p = findByColor(color);
445 return p ? p->snowChance : 0.0;
446 }
447
455 inline const char* getTerrainName(const byte* const color) const {
456 const TerrainDef* p = findByColor(color);
457 return p ? p->terrainName : "grass";
458 }
459};
460
500
501#define MapDef_ForeachCondition(var, condition) \
502 for (int var##__loopvar = 0; (var) = nullptr, var##__loopvar < Com_GetMapDefNumber(); var##__loopvar++) \
503 if ((var) = Com_GetMapDefByIDX(var##__loopvar), !(condition)) {} else
504
505#define MapDef_Foreach(var) MapDef_ForeachCondition(var, 1)
506int Com_GetMapDefNumber(void);
508mapDef_t* Com_GetMapDefinitionByID(const char* mapDefID);
509
576
577extern csi_t csi;
578
580#define REJ_PASSWORD_REQUIRED_OR_INCORRECT "Password required or incorrect."
581#define BAD_RCON_PASSWORD "Bad rcon_password."
582#define REJ_BANNED "Banned."
583#define REJ_SERVER_FULL "Server is full."
584#define REJ_SERVER_VERSION_MISMATCH "The server is running a different version of the game."
585#define REJ_GAME_ALREADY_STARTED "Game has started already."
586#define REJ_CONNECTION_REFUSED "Connection refused."
587
588#define SV_CMD_CONNECT "connect"
589#define SV_CMD_RCON "rcon"
590#define SV_CMD_STATUS "status"
591#define SV_CMD_TEAMINFO "teaminfo"
592#define SV_CMD_INFO "info"
593#define SV_CMD_PRINT "print"
594
595/* unused */
596#define SV_CMD_ACK "ack"
597#define CL_CMD_PING "ping"
598#define CL_CMD_ECHO "echo"
599/* unused end */
600
601#define CL_PRECACHE "precache"
602#define CL_SPAWNSOLDIERS "spawnsoldiers"
603#define CL_STARTMATCH "startmatch"
604
605#define CL_CMD_COMMAND "cmd"
606#define CL_CMD_CLIENT_CONNECT "client_connect"
607
608#define NET_STATE_NEW "new"
609#define NET_STATE_BEGIN "begin"
610#define NET_STATE_STARTMATCH "startmatch"
611#define NET_STATE_DISCONNECT "disconnect"
612#define NET_STATE_INFO "info"
#define MAX_CHARACTER_TEMPLATES
Definition chr_shared.h:229
#define MAX_TEAMDEFS
Definition chr_shared.h:228
#define MAX_UGV
Definition chr_shared.h:227
Terrain property table entry Terrain is defined by the file map_earth_terrain.png in pics/geoscape....
Definition q_shared.h:356
byte rgbRed
Definition q_shared.h:358
byte rgbGreen
Definition q_shared.h:359
float rainChance
Definition q_shared.h:363
byte rgbBlue
Definition q_shared.h:360
TerrainDef(byte _rgbRed, byte _rgbGreen, byte _rgbBlue, const char *_terrainName, float _survivalChance, float _rainChance, float _snowChance)
Definition q_shared.h:369
char terrainName[20]
Definition q_shared.h:361
float survivalChance
Definition q_shared.h:362
float snowChance
Definition q_shared.h:364
const TerrainDef * findByName(const char *tname) const
Definition q_shared.h:406
float getSnowChance(const byte *const color) const
Definition q_shared.h:443
const char * getTerrainName(const byte *const color) const
Translate color value to terrain type.
Definition q_shared.h:455
bool add(const TerrainDef *tdef)
Translate color value to terrain type to random weather code.
Definition q_shared.cpp:53
const char * getWeather(const byte *const color)
Translate color value to terrain type to random weather code.
Definition q_shared.cpp:78
float getSurvivalChance(const byte *const color) const
Translate color value to terrain type and then to survival probability.
Definition q_shared.h:435
const TerrainDef * findByColor(const byte *const color) const
Definition q_shared.h:393
const TerrainDef * terrainDefTable[MAX_TERRAINDEFS]
Definition q_shared.h:391
float getRainChance(const byte *const color) const
Definition q_shared.h:439
const TerrainDef * findByColor(byte red, byte green, byte blue) const
Definition q_shared.h:396
csi_t csi
Definition common.cpp:39
void Com_DPrintf(int level, const char *fmt,...)
A Com_Printf that only shows up if the "developer" cvar is set.
Definition common.cpp:440
void Com_Printf(const char *const fmt,...)
Definition common.cpp:428
static const vec4_t red
static const vec4_t green
#define __attribute__(x)
Definition cxx.h:37
Defined CONSTANTS (Macros are elsewhere).
level_locals_t level
Definition g_main.cpp:38
common object-, inventory-, container- and firemode-related functions headers.
#define MAX_MAPDEFS
Definition inv_shared.h:39
#define MAX_TEAMS_PER_MISSION
Definition inv_shared.h:618
#define MAX_DAMAGETYPES
Definition inv_shared.h:258
#define MAX_IMPLANTS
Definition inv_shared.h:38
#define MAX_INVDEFS
Definition inv_shared.h:368
#define MAX_EQUIPDEFS
Definition inv_shared.h:603
#define MAX_OBJDEFS
Definition inv_shared.h:37
LINKED LIST interface.
const char * pa_format[]
Player action format strings for netchannel transfer.
Definition q_shared.cpp:34
camera_type_t
Definition q_shared.h:178
@ CAMERA_MAX
Definition q_shared.h:182
@ CAMERA_ENSURE_32BIT
Definition q_shared.h:184
@ CAMERA_STATIONARY
Definition q_shared.h:180
@ CAMERA_MOBILE
Definition q_shared.h:179
#define MAX_GAMETYPES
Definition q_shared.h:333
event_t
Possible event values.
Definition q_shared.h:79
@ EV_ACTOR_REACTIONFIRECHANGE
Definition q_shared.h:101
@ EV_ACTOR_SHOOT
Definition q_shared.h:108
@ EV_INV_TRANSFER
Definition q_shared.h:124
@ EV_INV_AMMO
Definition q_shared.h:122
@ EV_DOOR_CLOSE
Definition q_shared.h:136
@ EV_ACTOR_REACTIONFIRETARGETUPDATE
Definition q_shared.h:104
@ EV_NUM_EVENTS
Definition q_shared.h:142
@ EV_ACTOR_REACTIONFIREABORTSHOT
Definition q_shared.h:105
@ EV_ENDROUND
Definition q_shared.h:83
@ EV_ACTOR_WOUND
Definition q_shared.h:118
@ EV_MODEL_EXPLODE_TRIGGERED
Definition q_shared.h:128
@ EV_ACTOR_STATECHANGE
Definition q_shared.h:116
@ EV_ADD_EDICT
Definition q_shared.h:95
@ EV_ACTOR_STATS
Definition q_shared.h:115
@ EV_ENDROUNDANNOUNCE
Definition q_shared.h:84
@ EV_MODEL_EXPLODE
Definition q_shared.h:127
@ EV_CAMERA_APPEAR
Definition q_shared.h:140
@ EV_NULL
Definition q_shared.h:80
@ EV_INV_RELOAD
Definition q_shared.h:123
@ EV_RESULTS
Definition q_shared.h:86
@ EV_ADD_BRUSH_MODEL
Definition q_shared.h:94
@ EV_START
Definition q_shared.h:82
@ EV_ENT_PERISH
Definition q_shared.h:91
@ EV_CENTERVIEW
Definition q_shared.h:87
@ EV_INV_DEL
Definition q_shared.h:121
@ EV_ACTOR_REACTIONFIREADDTARGET
Definition q_shared.h:102
@ EV_PARTICLE_APPEAR
Definition q_shared.h:130
@ EV_ENT_DESTROY
Definition q_shared.h:93
@ EV_ACTOR_END_SHOOT
Definition q_shared.h:111
@ EV_DOOR_OPEN
Definition q_shared.h:135
@ EV_CLIENT_ACTION
Definition q_shared.h:137
@ EV_MOVECAMERA
Definition q_shared.h:88
@ EV_ACTOR_THROW
Definition q_shared.h:110
@ EV_ACTOR_APPEAR
Definition q_shared.h:97
@ EV_ACTOR_MOVE
Definition q_shared.h:100
@ EV_ACTOR_REVITALISED
Definition q_shared.h:114
@ EV_RESET
Definition q_shared.h:81
@ EV_ACTOR_START_SHOOT
Definition q_shared.h:107
@ EV_ACTOR_SHOOT_HIDDEN
Definition q_shared.h:109
@ EV_ACTOR_TURN
Definition q_shared.h:99
@ EV_ACTOR_RESERVATIONCHANGE
Definition q_shared.h:117
@ EV_PARTICLE_SPAWN
Definition q_shared.h:131
@ EV_RESET_CLIENT_ACTION
Definition q_shared.h:138
@ EV_ENT_APPEAR
Definition q_shared.h:90
@ EV_ACTOR_ADD
Definition q_shared.h:98
@ EV_SOUND
Definition q_shared.h:133
@ EV_ACTOR_DIE
Definition q_shared.h:113
@ EV_INV_ADD
Definition q_shared.h:120
@ EV_ACTOR_REACTIONFIREREMOVETARGET
Definition q_shared.h:103
int Com_GetMapDefNumber(void)
mapDef_t * Com_GetMapDefByIDX(int index)
mapDef_t * Com_GetMapDefinitionByID(const char *mapDefID)
Definition scripts.cpp:3598
entity_type_t
Definition q_shared.h:145
@ ET_SOLID
Definition q_shared.h:166
@ ET_ACTOR
Definition q_shared.h:148
@ ET_TRIGGER_NEXTMAP
Definition q_shared.h:155
@ ET_ACTOR2x2
Definition q_shared.h:160
@ ET_CIVILIANTARGET
Definition q_shared.h:161
@ ET_TRIGGER_RESCUE
Definition q_shared.h:154
@ ET_ROTATING
Definition q_shared.h:158
@ ET_TRIGGER_HURT
Definition q_shared.h:152
@ ET_TRIGGER_TOUCH
Definition q_shared.h:153
@ ENTITY_TYPE_ENSURE_32BIT
Definition q_shared.h:175
@ ET_MESSAGE
Definition q_shared.h:167
@ ET_MISSION
Definition q_shared.h:162
@ ET_ACTORHIDDEN
Definition q_shared.h:163
@ ET_PARTICLE
Definition q_shared.h:164
@ ET_BREAKABLE
Definition q_shared.h:150
@ ET_SMOKE
Definition q_shared.h:168
@ ET_NULL
Definition q_shared.h:146
@ ET_DOOR
Definition q_shared.h:156
@ ET_DOOR_SLIDING
Definition q_shared.h:157
@ ET_TRIGGER
Definition q_shared.h:151
@ ET_CAMERA
Definition q_shared.h:171
@ ET_SOUND
Definition q_shared.h:165
@ ET_FIRE
Definition q_shared.h:169
@ ET_ACTORSPAWN
Definition q_shared.h:147
@ ET_SMOKESTUN
Definition q_shared.h:170
@ ET_ACTOR2x2SPAWN
Definition q_shared.h:159
@ ET_MAX
Definition q_shared.h:173
@ ET_ITEM
Definition q_shared.h:149
#define MAX_TERRAINDEFS
Terrain property table Terrain is defined by the file map_earth_terrain.png in pics/geoscape....
Definition q_shared.h:388
int32_t shoot_types_t
Available shoot types - also see the ST_ constants.
Definition q_shared.h:206
void format(__printf__, 1, 2)))
#define MAX_CVARLISTINGAMETYPE
Definition q_shared.h:335
player_action_t
Definition q_shared.h:189
@ PA_SHOOT
Definition q_shared.h:194
@ PA_INVMOVE
Definition q_shared.h:196
@ PA_NULL
Definition q_shared.h:190
@ PA_USE
Definition q_shared.h:195
@ PA_STATE
Definition q_shared.h:193
@ PA_REACT_SELECT
Definition q_shared.h:197
@ PA_RESERVE_STATE
Definition q_shared.h:198
@ PA_TURN
Definition q_shared.h:191
@ PA_NUM_EVENTS
Definition q_shared.h:200
@ PA_MOVE
Definition q_shared.h:192
void Sys_Error(const char *error,...) __attribute__((noreturn
QGL_EXTERN GLuint index
Definition r_gl.h:110
QGL_EXTERN GLint i
Definition r_gl.h:113
#define Q_streq(a, b)
Definition shared.h:136
#define MAX_VAR
Definition shared.h:36
The csi structure is the client-server-information structure which contains all the static data neede...
Definition q_shared.h:515
ugv_t ugvs[MAX_UGV]
Definition q_shared.h:564
int damPlasma
Definition q_shared.h:532
int damBlast
Definition q_shared.h:528
const chrTemplate_t * alienChrTemplates[MAX_TEAMS_PER_MISSION]
Definition q_shared.h:554
int numMDs
Definition q_shared.h:572
mapDef_t mds[MAX_MAPDEFS]
Definition q_shared.h:571
linkedList_t * bodyTemplates
Definition q_shared.h:560
equipDef_t eds[MAX_EQUIPDEFS]
Definition q_shared.h:540
int damFire
Definition q_shared.h:528
int numUGV
Definition q_shared.h:565
damageType_t dts[MAX_DAMAGETYPES]
Definition q_shared.h:544
teamDef_t teamDef[MAX_TEAMDEFS]
Definition q_shared.h:548
int numIDs
Definition q_shared.h:525
int numAlienTeams
Definition q_shared.h:555
int damParticle
Definition q_shared.h:532
TerrainDefs terrainDefs
Definition q_shared.h:574
int numImplants
Definition q_shared.h:521
int numDTs
Definition q_shared.h:545
objDef_t ods[MAX_OBJDEFS]
Definition q_shared.h:517
int damLaser
Definition q_shared.h:532
int damNormal
Definition q_shared.h:528
int damSmoke
Definition q_shared.h:536
chrTemplate_t chrTemplates[MAX_CHARACTER_TEMPLATES]
Definition q_shared.h:558
int numGTs
Definition q_shared.h:568
int numTeamDefs
Definition q_shared.h:549
int numChrTemplates
Definition q_shared.h:559
int numODs
Definition q_shared.h:518
const teamDef_t * alienTeams[MAX_TEAMS_PER_MISSION]
Definition q_shared.h:553
int numEDs
Definition q_shared.h:541
invDef_t ids[MAX_INVDEFS]
Definition q_shared.h:524
gametype_t gts[MAX_GAMETYPES]
Definition q_shared.h:567
int damShock
Definition q_shared.h:529
int damStunGas
Definition q_shared.h:533
linkedList_t * actorNames
Definition q_shared.h:562
int damIncendiary
Definition q_shared.h:537
implantDef_t implants[MAX_IMPLANTS]
Definition q_shared.h:520
int damStunElectro
Definition q_shared.h:535
char value[MAX_VAR]
Definition q_shared.h:338
char name[MAX_VAR]
Definition q_shared.h:337
char name[MAX_VAR]
Definition q_shared.h:343
cvarlist_t cvars[MAX_CVARLISTINGAMETYPE]
Definition q_shared.h:344
int num_cvars
Definition q_shared.h:345
inventory definition for our menus
Definition inv_shared.h:371
int timesAlreadyUsed
Definition q_shared.h:490
linkedList_t * gameTypes
Definition q_shared.h:476
char * size
Definition q_shared.h:470
linkedList_t * aircraft
Definition q_shared.h:492
int teams
Definition q_shared.h:475
char * mapTheme
Definition q_shared.h:464
linkedList_t * ufos
Definition q_shared.h:491
bool storyRelated
Definition q_shared.h:489
char * onwin
Definition q_shared.h:497
char * victoryCondition
Definition q_shared.h:467
char * id
Definition q_shared.h:463
linkedList_t * terrains
Definition q_shared.h:486
char * onlose
Definition q_shared.h:498
int hwclass
Definition q_shared.h:482
char * missionBriefing
Definition q_shared.h:469
char * civTeam
Definition q_shared.h:471
linkedList_t * cultures
Definition q_shared.h:488
float victoryBonusPerAlien
Definition q_shared.h:468
int maxAliens
Definition q_shared.h:483
bool hurtAliens
Definition q_shared.h:484
bool campaign
Definition q_shared.h:480
char * description
Definition q_shared.h:466
linkedList_t * params
Definition q_shared.h:465
bool multiplayer
Definition q_shared.h:474
bool singleplayer
Definition q_shared.h:481
linkedList_t * populations
Definition q_shared.h:487
Defines all attributes of objects used in the inventory.
Definition inv_shared.h:264
Defines a type of UGV/Robot.
Definition chr_shared.h:245
Cross-platform type definitions.