-
Notifications
You must be signed in to change notification settings - Fork 58
/
global.h
153 lines (123 loc) · 3.16 KB
/
global.h
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#pragma once
#include "build.h"
#include "duke3d.h"
#include "quotemgr.h"
#include "sounds.h"
#include "constants.h"
#include "types.h"
#include "d_net.h"
#include "serialize_obj.h"
#include "tiletexture.h"
BEGIN_DUKE_NS
extern user_defs ud;
struct DukeGameInfo
{
// Static constant global state
double playerfriction;
double gravity;
double playerheight;
double gutsscale;
int respawnactortime;
int bouncemineblastradius;
int respawnitemtime;
int morterblastradius;
int numfreezebounces;
int pipebombblastradius;
int rpgblastradius;
int seenineblastradius;
int shrinkerblastradius;
int tripbombblastradius;
int camerashitable;
int max_player_health;
int max_armour_amount;
int lasermode;
int freezerhurtowner;
int impact_damage;
int firstdebris;
ActorInfo actorinfo[MAXTILES];
int16_t max_ammo_amount[MAX_WEAPONS];
PClassActor* weaponsandammosprites[15];
int displayflags;
// global gamevars from WW2GI. Put here so we can modify these values without having to depend on CON.
int tripbombcontrol;
int stickybomb_lifetime;
int stickybomb_lifetime_var;
int grenade_lifetime;
int grenade_lifetime_var;
};
extern DukeGameInfo gs;
inline TObjPtr<DDukeActor*> camsprite;
inline TObjPtr<DDukeActor*> spriteq[1024];
inline TObjPtr<DDukeActor*> currentCommentarySprite;
extern int otherp; // transient helper, MP only
extern int actor_tog; // cheat state
extern intptr_t apScriptGameEvent[];
extern TArray<int> ScriptCode;
extern int playerswhenstarted;
extern int show_shareware;
extern int screenpeek;
// Variables that must be saved
extern int rtsplaying;
extern player_struct ps[MAXPLAYERS];
extern int spriteqamount;
extern int lastvisinc;
extern animwalltype animwall[MAXANIMWALLS];
extern int numanimwalls;
extern int numclouds;
extern int global_random;
extern int mirrorcnt;
extern int numplayersprites;
extern int spriteqloc;
extern int thunder_brightness;
inline DukeLevel dlevel;
enum animtype_t
{
anim_floorz,
anim_ceilingz,
anim_vertexx,
anim_vertexy,
};
struct animate
{
sectortype* sect;
int target;
int8_t type;
double goal;
double vel;
};
extern TArray<animate> animates;
extern sectortype* clouds[256];
extern float cloudx;
extern float cloudy;
extern int cloudclock;
extern TArray<Cycler> cyclers;
extern TArray<AmbientTags> ambienttags;
extern sectortype* mirrorsector[64];
extern walltype* mirrorwall[64];
extern int wupass;
extern int thunderon;
extern int ufospawn;
extern int ufocnt;
extern int hulkspawn;
extern int lastlevel;
extern sectortype* geosectorwarp[MAXGEOSECTORS];
extern sectortype* geosectorwarp2[MAXGEOSECTORS];
extern sectortype* geosector[MAXGEOSECTORS];
extern double geox[MAXGEOSECTORS];
extern double geoy[MAXGEOSECTORS];
extern double geox2[MAXGEOSECTORS];
extern double geoy2[MAXGEOSECTORS];
extern int geocnt;
extern TArray<DVector2> mspos;
extern int WindTime;
extern DAngle WindDir;
extern short fakebubba_spawn, mamaspawn_count, banjosound;
extern uint8_t enemysizecheat /*raat607*/, chickenphase /* raat605*/, RRRA_ExitedLevel;
extern player_orig po[MAXPLAYERS];
extern int32_t g_cdTrack;
#define xx(n) inline PClassActor* n##Class;
#include "classnames.h"
#undef xx
void RegisterClasses();
END_DUKE_NS
#include "inlines.h"