X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=quakedef.h;h=ec5c72b6efb29fbb305e5d0f0ed17bb542fd3a24;hp=57d2e537a8314168d8ee7e2b73780790e7e27c59;hb=HEAD;hpb=2b784d13eb570cf4d3cedf7f445d5947cc769646 diff --git a/quakedef.h b/quakedef.h index 57d2e537..510b4ec2 100644 --- a/quakedef.h +++ b/quakedef.h @@ -22,84 +22,26 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifndef QUAKEDEF_H #define QUAKEDEF_H - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "qtypes.h" - -extern char *buildstring; -extern char engineversion[128]; +#include "darkplaces.h" #define GAMENAME "id1" +#define STARTCONFIGFILENAME "quake.rc" +#define CONFIGFILENAME "config.cfg" -#define MAX_NUM_ARGVS 50 - - -#define MAX_QPATH 128 // max length of a quake game pathname -#define MAX_OSPATH 1024 // max length of a filesystem pathname - -#define ON_EPSILON 0.1 // point on plane side epsilon - -#define MAX_PACKETFRAGMENT 1024 // max length of packet fragment -#define NET_MAXMESSAGE 65536 -#define NET_MINRATE 1000 // limits "rate" and "sv_maxrate" cvars -#define NET_MAXRATE 25000 // limits "rate" and "sv_maxrate" cvars - -// -// per-level limits -// -// LordHavoc: increased entity limit to 2048 from 600 -#define MAX_EDICTS 32768 // FIXME: ouch! ouch! ouch! -#define MAX_LIGHTSTYLES 256 // LordHavoc: increased from 64, NOTE special consideration is needed in savegames! -// LordHavoc: increased model and sound limits from 256 and 256 to 4096 and 4096 (and added protocol extensions accordingly to break the 256 barrier) -#define MAX_MODELS 4096 -#define MAX_SOUNDS 4096 - -#define SAVEGAME_COMMENT_LENGTH 39 - -#define MAX_STYLESTRING 64 - -// -// stats are integers communicated to the client by the server -// -#define MAX_CL_STATS 256 -#define STAT_HEALTH 0 -#define STAT_FRAGS 1 -#define STAT_WEAPON 2 -#define STAT_AMMO 3 -#define STAT_ARMOR 4 -#define STAT_WEAPONFRAME 5 -#define STAT_SHELLS 6 -#define STAT_NAILS 7 -#define STAT_ROCKETS 8 -#define STAT_CELLS 9 -#define STAT_ACTIVEWEAPON 10 -#define STAT_TOTALSECRETS 11 -#define STAT_TOTALMONSTERS 12 -#define STAT_SECRETS 13 // bumped on client side by svc_foundsecret -#define STAT_MONSTERS 14 // bumped by svc_killedmonster -#define STAT_ITEMS 15 // FTE, DP -#define STAT_VIEWHEIGHT 16 // FTE, DP -//#define STAT_TIME 17 // FTE -//#define STAT_VIEW2 20 // FTE -#define STAT_VIEWZOOM 21 // DP +// moveflags values +#define MOVEFLAG_VALID 0x80000000 +#define MOVEFLAG_Q2AIRACCELERATE 0x00000001 +#define MOVEFLAG_NOGRAVITYONGROUND 0x00000002 +#define MOVEFLAG_GRAVITYUNAFFECTEDBYTICRATE 0x00000004 // stock defines - -#define IT_SHOTGUN 1 -#define IT_SUPER_SHOTGUN 2 -#define IT_NAILGUN 4 -#define IT_SUPER_NAILGUN 8 -#define IT_GRENADE_LAUNCHER 16 -#define IT_ROCKET_LAUNCHER 32 -#define IT_LIGHTNING 64 +#define IT_SHOTGUN 1 +#define IT_SUPER_SHOTGUN 2 +#define IT_NAILGUN 4 +#define IT_SUPER_NAILGUN 8 +#define IT_GRENADE_LAUNCHER 16 +#define IT_ROCKET_LAUNCHER 32 +#define IT_LIGHTNING 64 #define IT_SUPER_LIGHTNING 128 #define IT_SHELLS 256 #define IT_NAILS 512 @@ -112,14 +54,15 @@ extern char engineversion[128]; #define IT_SUPERHEALTH 65536 #define IT_KEY1 131072 #define IT_KEY2 262144 -#define IT_INVISIBILITY 524288 -#define IT_INVULNERABILITY 1048576 -#define IT_SUIT 2097152 -#define IT_QUAD 4194304 -#define IT_SIGIL1 (1<<28) -#define IT_SIGIL2 (1<<29) -#define IT_SIGIL3 (1<<30) -#define IT_SIGIL4 (1<<31) +#define IT_INVISIBILITY 524288 +#define IT_INVULNERABILITY 1048576 +#define IT_SUIT 2097152 +#define IT_QUAD 4194304 +#define IT_SIGIL1 (1u<<28) +#define IT_SIGIL2 (1u<<29) +#define IT_SIGIL3 (1u<<30) +#define IT_SIGIL4 (1u<<31) +// UBSan: unsigned literals because left shifting by 31 causes signed overflow, although it works as expected on x86. //=========================================== // AK nexuiz changed and added defines @@ -179,84 +122,45 @@ extern char engineversion[128]; //=========================================== -// LordHavoc: increased player limit from 16 to 255 -#define MAX_SCOREBOARD 255 -// LordHavoc: increased name limit from 32 to 64 characters -#define MAX_SCOREBOARDNAME 64 -// infostring sizes used by QuakeWorld support -#define MAX_USERINFO_STRING 196 -#define MAX_SERVERINFO_STRING 512 -#define MAX_LOCALINFO_STRING 32768 - -#include "zone.h" -#include "fs.h" -#include "common.h" -#include "cvar.h" -#include "bspfile.h" -#include "sys.h" #include "vid.h" -#include "mathlib.h" #include "r_textures.h" +#include "crypto.h" #include "draw.h" #include "screen.h" #include "netconn.h" #include "protocol.h" -#include "cmd.h" #include "sbar.h" #include "sound.h" #include "model_shared.h" +#include "world.h" #include "client.h" #include "render.h" #include "progs.h" #include "progsvm.h" #include "server.h" +#include "phys.h" #include "input.h" -#include "world.h" #include "keys.h" -#include "console.h" +#ifdef CONFIG_MENU #include "menu.h" - +#endif +#include "csprogs.h" #include "glquake.h" - #include "palette.h" -extern qboolean noclip_anglehack; - -extern char engineversion[128]; -extern cvar_t developer; - -extern double host_frametime; -// the real frametime, before slowmo and clamping are applied (used for console scrolling) -extern double host_realframetime; -// incremented every frame, never reset -extern int host_framecount; -// not bounded in any way, changed at start of every frame, never reset -extern double realtime; +extern qbool noclip_anglehack; -void Host_ClearMemory(void); -void Host_InitCommands(void); -void Host_Init(void); -void Host_Shutdown(void); -void Host_StartVideo(void); -void Host_Error(const char *error, ...); -void Host_Frame(float time); -void Host_Quit_f(void); -void Host_ClientCommands(const char *fmt, ...); -void Host_ShutdownServer(void); -void Host_Reconnect_f(void); - -void Host_AbortCurrentFrame(void); - -// skill level for currently loaded level (in case the user changes the cvar while the level is running, this reflects the level actually in use) +/// skill level for currently loaded level (in case the user changes the cvar while the level is running, this reflects the level actually in use) extern int current_skill; // // chase // extern cvar_t chase_active; +extern cvar_t cl_viewmodel_scale; void Chase_Init (void); void Chase_Reset (void); @@ -264,8 +168,14 @@ void Chase_Update (void); void fractalnoise(unsigned char *noise, int size, int startgrid); void fractalnoisequick(unsigned char *noise, int size, int startgrid); +float noise4f(float x, float y, float z, float w); void Sys_Shared_Init(void); +// Flag in size field of demos to indicate a client->server packet. Demo +// playback will ignore this, but it may be useful to make DP sniff packets to +// debug protocol exploits. +#define DEMOMSG_CLIENT_TO_SERVER 0x80000000 + #endif