mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-07 08:50:47 +00:00
f5d14f826a
They created different code depending on the passed index, this was changed to always emit the optional parameter, even when not needed, so that the interpreter does not need to second-guess.
138 lines
4.5 KiB
C
138 lines
4.5 KiB
C
#pragma once
|
|
|
|
#include "names.h"
|
|
|
|
BEGIN_DUKE_NS
|
|
|
|
// gamedef.c
|
|
|
|
enum
|
|
{
|
|
// store global game definitions
|
|
MAXGAMEVARS = 512,
|
|
MAXVARLABEL = 26,
|
|
MAXGAMEEVENTS = 128
|
|
|
|
};
|
|
|
|
enum
|
|
{
|
|
GAMEVAR_FLAG_PERPLAYER = 1, // per-player variable
|
|
GAMEVAR_FLAG_PERACTOR = 2, // per-actor variable
|
|
GAMEVAR_FLAG_USER_MASK = 3,
|
|
|
|
// internal flags only...
|
|
GAMEVAR_FLAG_DEFAULT = 256, // allow override
|
|
GAMEVAR_FLAG_SECRET = 512, // don't dump...
|
|
GAMEVAR_FLAG_NODEFAULT = 1024, // don't add to 'default' array.
|
|
GAMEVAR_FLAG_SYSTEM = 2048, // cannot change mode flags...(only default value)
|
|
GAMEVAR_FLAG_READONLY = 4096, // values are read-only (no setvar allowed)
|
|
GAMEVAR_FLAG_PLONG = 8192, // plValue is a pointer to a long
|
|
GAMEVAR_FLAG_PFUNC = 8192, // plValue is a pointer to a getter function
|
|
};
|
|
|
|
enum
|
|
{
|
|
NAM_GRENADE_LIFETIME = 120,
|
|
NAM_GRENADE_LIFETIME_VAR = 30,
|
|
};
|
|
|
|
extern int* aplWeaponClip[MAX_WEAPONS]; // number of items in clip
|
|
extern int* aplWeaponReload[MAX_WEAPONS]; // delay to reload (include fire)
|
|
extern int* aplWeaponFireDelay[MAX_WEAPONS]; // delay to fire
|
|
extern int* aplWeaponHoldDelay[MAX_WEAPONS]; // delay after release fire button to fire (0 for none)
|
|
extern int* aplWeaponTotalTime[MAX_WEAPONS]; // The total time the weapon is cycling before next fire.
|
|
extern int* aplWeaponFlags[MAX_WEAPONS]; // Flags for weapon
|
|
extern int* aplWeaponShoots[MAX_WEAPONS]; // what the weapon shoots
|
|
extern int* aplWeaponSpawnTime[MAX_WEAPONS]; // the frame at which to spawn an item
|
|
extern int* aplWeaponSpawn[MAX_WEAPONS]; // the item to spawn
|
|
extern int* aplWeaponShotsPerBurst[MAX_WEAPONS]; // number of shots per 'burst' (one ammo per 'burst'
|
|
extern int* aplWeaponWorksLike[MAX_WEAPONS]; // What original the weapon works like
|
|
extern int* aplWeaponInitialSound[MAX_WEAPONS]; // Sound made when initialy firing. zero for no sound
|
|
extern int* aplWeaponFireSound[MAX_WEAPONS]; // Sound made when firing (each time for automatic)
|
|
extern int* aplWeaponSound2Time[MAX_WEAPONS]; // Alternate sound time
|
|
extern int* aplWeaponSound2Sound[MAX_WEAPONS]; // Alternate sound sound ID
|
|
|
|
|
|
enum
|
|
{
|
|
// 'holstering' clears the current clip
|
|
WEAPON_FLAG_HOLSTER_CLEARS_CLIP = 1,
|
|
// weapon 'glows' (shrinker and grower)
|
|
WEAPON_FLAG_GLOWS = 2,
|
|
// automatic fire (continues while 'fire' is held down
|
|
WEAPON_FLAG_AUTOMATIC = 4,
|
|
// during 'hold time' fire every frame
|
|
WEAPON_FLAG_FIREEVERYOTHER = 8,
|
|
// during 'hold time' fire every third frame.
|
|
WEAPON_FLAG_FIREEVERYTHIRD = 16,
|
|
// restart for automatic is 'randomized' by RND 3
|
|
WEAPON_FLAG_RANDOMRESTART = 32,
|
|
// uses ammo for each shot (for automatic)
|
|
WEAPON_FLAG_AMMOPERSHOT = 64,
|
|
// weapon is the 'bomb' trigger
|
|
WEAPON_FLAG_BOMB_TRIGGER = 128,
|
|
// weapon use does not cause user to become 'visible'
|
|
WEAPON_FLAG_NOVISIBLE = 256,
|
|
// weapon 'throws' the 'shoots' item...
|
|
WEAPON_FLAG_THROWIT = 512,
|
|
// check weapon availability at 'reload' time
|
|
WEAPON_FLAG_CHECKATRELOAD = 1024,
|
|
// player stops jumping before actual fire (like tripbomb in duke)
|
|
WEAPON_FLAG_STANDSTILL = 2048,
|
|
// just spawn
|
|
WEAPON_FLAG_SPAWNTYPE1 = 0,
|
|
// spawn like shotgun shells
|
|
WEAPON_FLAG_SPAWNTYPE2 = 4096,
|
|
// spawn like chaingun shells
|
|
WEAPON_FLAG_SPAWNTYPE3 = 8192
|
|
};
|
|
|
|
|
|
typedef struct
|
|
{
|
|
union
|
|
{
|
|
int lValue;
|
|
int* plValue;
|
|
int (*getter)();
|
|
};
|
|
int defaultValue;
|
|
unsigned int dwFlags;
|
|
char szLabel[MAXVARLABEL];
|
|
TArray<int> plArray;
|
|
} MATTGAMEVAR;
|
|
|
|
extern MATTGAMEVAR aGameVars[MAXGAMEVARS];
|
|
extern int iGameVarCount;
|
|
|
|
extern int g_iReturnVarID; // var ID of "RETURN"
|
|
extern int g_iWeaponVarID; // var ID of "WEAPON"
|
|
extern int g_iWorksLikeVarID; // var ID of "WORKSLIKE"
|
|
extern int g_iZRangeVarID; // var ID of "ZRANGE"
|
|
extern int g_iAngRangeVarID; // var ID of "ANGRANGE"
|
|
extern int g_iAimAngleVarID; // var ID of "AUTOAIMANGLE"
|
|
extern int g_iAtWithVarID; // var ID of "AtWith"
|
|
extern int g_iLoTagID; // var ID of "LOTAG"
|
|
extern int g_iHiTagID; // ver ID of "HITAG"
|
|
extern int g_iTextureID; // var ID of "TEXTURE"
|
|
extern int g_iThisActorID; // var ID of "THISACTOR"
|
|
|
|
int AddGameVar(const char *pszLabel, intptr_t lValue, unsigned dwFlags);
|
|
int GetGameID(const char *szGameLabel);
|
|
int GetDefID(const char *szGameLabel);
|
|
void ClearGameVars(void);
|
|
void AddSystemVars();
|
|
void ResetGameVars(void);
|
|
int GetGameVarID(int id, int sActor, int sPlayer);
|
|
void SetGameVarID(int id, int lValue, int sActor, int sPlayer);
|
|
int GetGameVar(const char* szGameLabel, int lDefault, int sActor, int sPlayer);
|
|
|
|
void ClearGameEvents();
|
|
bool IsGameEvent(int i);
|
|
void InitGameVarPointers(void);
|
|
void ResetSystemDefaults(void);
|
|
|
|
|
|
|
|
END_DUKE_NS
|