34#define GAMEVERSION "OPENMOHAA"
36#define BODY_QUEUE_SIZE 8
38#define INFINITE 1000000
40#define FRAMETIME level.frametime
41#define CARNAGE_REWARD_TIME 3000
42#define REWARD_SPRITE_TIME 2000
44#define INTERMISSION_DELAY_TIME 1000
45#define SP_INTERMISSION_DELAY_TIME 5000
48#define FL_FLY (1 << 0)
49#define FL_SWIM (1 << 1)
50#define FL_INWATER (1 << 2)
51#define FL_GODMODE (1 << 3)
52#define FL_NOTARGET (1 << 4)
53#define FL_PARTIALGROUND (1 << 5)
54#define FL_TEAMSLAVE (1 << 6)
55#define FL_NO_KNOCKBACK (1 << 7)
56#define FL_THINK (1 << 8)
57#define FL_BLOOD (1 << 9)
58#define FL_DIE_GIBS (1 << 10)
59#define FL_DIE_EXPLODE (1 << 11)
60#define FL_ROTATEDBOUNDS (1 << 12)
61#define FL_DONTSAVE (1 << 13)
62#define FL_IMMOBILE (1 << 14)
63#define FL_PARTIAL_IMMOBILE (1 << 15)
64#define FL_POSTTHINK (1 << 17)
65#define FL_TOUCH_TRIGGERS (1 << 18)
66#define FL_AUTOAIM (1 << 19)
67#define FL_ANIMATE (1 << 20)
68#define FL_UNKNOWN2 (1 << 21)
70#define SOUND_RADIUS 1500.0f
93} playerTeamStateState_t;
96 playerTeamStateState_t state;
107 float lasthurtcarrier;
108 float lastreturnedflag;
110 float lastfraggedcarrier;
115#define FOLLOW_ACTIVE1 -1
116#define FOLLOW_ACTIVE2 -2
123 teamtype_t sessionTeam;
125 spectatorState_t spectatorState;
132#define MAX_NETNAME 32
133#define MAX_VOTE_COUNT 3
138qboolean G_SpawnString(
const char *key,
const char *defaultString,
char **out);
140qboolean G_SpawnFloat(
const char *key,
const char *defaultString,
float *out);
141qboolean G_SpawnInt(
const char *key,
const char *defaultString,
int *out);
142qboolean G_SpawnVector(
const char *key,
const char *defaultString,
float *out);
143void G_SpawnEntitiesFromString(
void);
144char *G_NewString(
const char *
string);
145const char *G_FixTIKIPath(
const char *in);
146void G_GetNullEntityState(entityState_t *nullState);
151void Cmd_Score_f(gentity_t *ent);
152void StopFollowing(gentity_t *ent);
153void BroadcastTeamChange(gclient_t *client,
int oldTeam);
154void SetTeam(gentity_t *ent,
char *s);
155void Cmd_FollowCycle_f(gentity_t *ent,
int dir);
166float G_Random(
float n);
167float G_CRandom(
void);
168float G_CRandom(
float n);
170int G_ModelIndex(
const char *name);
171int G_SoundIndex(
const char *name);
172void G_TeamCommand(teamtype_t team,
char *cmd);
173void G_KillBox(gentity_t *ent);
174qboolean M_CheckBottom(
Entity *ent);
175gentity_t *G_PickTarget(
char *targetname);
176void G_UseTargets(gentity_t *ent, gentity_t *activator);
177void G_SetMovedir(vec3_t angles, vec3_t movedir);
179void G_InitGentity(gentity_t *e);
180gentity_t *G_Spawn(
void);
181gentity_t *G_TempEntity(vec3_t origin,
int event);
182void G_Sound(gentity_t *ent,
int channel,
int soundIndex);
183void G_FreeEntity(gentity_t *e);
184qboolean G_entitiesFree(
void);
190float PlayersRangeFromSpot(
Entity *ent);
195void G_TouchTriggers(gentity_t *ent);
196void G_TouchSolids(gentity_t *ent);
198void G_CenterPrintToAllClients(
const char *pszString);
199void G_PrintToAllClients(
const char *pszString,
int iType = 1);
200void G_PrintDeathMessage(
201 const char *s1,
const char *s2,
const char *attackerName,
const char *victimName,
Player *victim,
const char *type
203void G_PrintDeathMessage_Old(
const char *pszString);
204void G_WarnPlayer(
class Player *player,
const char *format, ...);
205int G_NumClients(
void);
207int G_WeaponIndex(
const char *name);
212SkelMat4 *G_TIKI_Transform(gentity_t *edict,
int num);
213qboolean G_TIKI_IsOnGround(gentity_t *edict,
int num,
float threshold);
214qboolean G_Command_ProcessFile(
const char *filename, qboolean quiet);
216char *G_TimeString(
float fTime);
217char *CanonicalTikiName(
const char *szInName);
219float *tv(
float x,
float y,
float z);
220char *vtos(
const vec3_t v);
222void G_SetOrigin(gentity_t *ent, vec3_t origin);
223void AddRemap(
const char *oldShader,
const char *newShader,
float timeOffset);
224const char *BuildShaderStateConfig(
void);
226void G_DebugTargets(
Entity *e,
const str& from);
228void G_DebugString(
Vector pos,
float scale,
float r,
float g,
float b,
const char *pszText, ...);
230qboolean KillBox(
Entity *ent);
232void ChangeMusic(
const char *current,
const char *fallback, qboolean force);
233void ChangeMusicVolume(
float volume,
float fade_time);
234void RestoreMusicVolume(
float fade_time);
235void ChangeSoundtrack(
const char *soundtrack);
236void RestoreSoundtrack(
void);
237int G_AIEventTypeFromString(
const char *pszType);
238const char *G_AIEventStringFromType(
int iType);
239float G_AIEventRadius(
int iType);
240void G_BroadcastAIEvent(
Entity *originator,
Vector origin,
char *pszType);
241void G_BroadcastAIEvent(
Entity *originator,
Vector origin,
int iType,
float radius);
244void G_ArchiveEdict(
Archiver& arc, gentity_t *edict);
246const char *G_LocationNumToDispString(
int iLocation);
247str G_WeaponClassNumToName(
int num);
248int G_WeaponClassNameToNum(
str name);
251void G_CheckIntermissionExit(
void);
252void G_CheckStartRules(
void);
253void G_CheckExitRules(
void);
256void G_UpdateMatchEndTime(
void);
258void G_MoveClientToIntermission(
Entity *ent);
259void G_DisplayScores(
Entity *ent);
260void G_HideScores(
Entity *ent);
261void G_DisplayScoresToAllClients(
void);
262void G_HideScoresToAllClients(
void);
267void G_ProcessCacheInitCommands(dtiki_t *tiki);
269void G_SetTrajectory(gentity_t *ent, vec3_t org);
274qboolean CanDamage(gentity_t *targ, vec3_t origin);
277 gentity_t *inflictor,
285qboolean G_RadiusDamage(vec3_t origin, gentity_t *attacker,
float damage,
float radius, gentity_t *ignore,
int mod);
286int G_InvulnerabilityEffect(gentity_t *targ, vec3_t dir, vec3_t point, vec3_t impactpoint, vec3_t bouncedir);
287void body_die(gentity_t *self, gentity_t *inflictor, gentity_t *attacker,
int damage,
int meansOfDeath);
288void TossClientItems(gentity_t *self);
290void TossClientPersistantPowerups(gentity_t *self);
292void TossClientCubes(gentity_t *self);
296#define DAMAGE_RADIUS 0x00000001
297#define DAMAGE_NO_ARMOR 0x00000002
298#define DAMAGE_ENERGY 0x00000004
299#define DAMAGE_NO_KNOCKBACK 0x00000008
300#define DAMAGE_BULLET 0x00000010
301#define DAMAGE_NO_PROTECTION 0x00000020
302#define DAMAGE_NO_SKILL 0x00000040
307void G_RunMissile(gentity_t *ent);
309gentity_t *fire_blaster(gentity_t *self, vec3_t start, vec3_t aimdir);
310gentity_t *fire_plasma(gentity_t *self, vec3_t start, vec3_t aimdir);
311gentity_t *fire_grenade(gentity_t *self, vec3_t start, vec3_t aimdir);
312gentity_t *fire_rocket(gentity_t *self, vec3_t start, vec3_t dir);
313gentity_t *fire_bfg(gentity_t *self, vec3_t start, vec3_t dir);
314gentity_t *fire_grapple(gentity_t *self, vec3_t start, vec3_t dir);
316gentity_t *fire_nail(gentity_t *self, vec3_t start, vec3_t forward, vec3_t right, vec3_t up);
317gentity_t *fire_prox(gentity_t *self, vec3_t start, vec3_t aimdir);
323void G_RunMover(gentity_t *ent);
324void Touch_DoorTrigger(gentity_t *ent, gentity_t *other,
trace_t *trace);
325void Use_BinaryMover(gentity_t *ent, gentity_t *other, gentity_t *activator);
330void trigger_teleporter_touch(gentity_t *self, gentity_t *other,
trace_t *trace);
335void TeleportPlayer(gentity_t *player, vec3_t origin, vec3_t angles);
337void DropPortalSource(gentity_t *ent);
338void DropPortalDestination(gentity_t *ent);
344qboolean LogAccuracyHit(gentity_t *target, gentity_t *attacker);
345void SnapVectorTowards(vec3_t v, vec3_t to);
346qboolean CheckGauntletAttack(gentity_t *ent);
347void Weapon_HookFree(gentity_t *ent);
348void Weapon_HookThink(gentity_t *ent);
349void CalcMuzzlePoint(gentity_t *ent, vec3_t forward, vec3_t right, vec3_t up, vec3_t muzzlePoint);
354gentity_t *G_Find(gentity_t *from,
int fieldofs,
const char *match);
355teamtype_t TeamCount(
int ignoreClientNum,
int team);
356int TeamLeader(
int team);
357teamtype_t PickTeam(
int ignoreClientNum);
358void SetClientViewAngle(gentity_t *ent, vec3_t angle);
360void CopyToBodyQue(gentity_t *ent);
361void respawn(gentity_t *ent);
362void BeginIntermission(
void);
363void InitClientPersistant(gclient_t *client);
364void InitClientResp(gclient_t *client);
365void InitBodyQue(
void);
366void ClientSpawn(gentity_t *ent);
367void player_die(gentity_t *self, gentity_t *inflictor, gentity_t *attacker,
int damage,
int mod);
368void AddScore(gentity_t *ent, vec3_t origin,
int score);
369void CalculateRanks(
void);
374qboolean G_ConsoleCommand(
void);
375void G_ProcessIPBans(
void);
376qboolean G_FilterPacket(
char *from);
381void FireWeapon(gentity_t *ent);
383void G_StartKamikaze(gentity_t *ent);
389void MoveClientToIntermission(gentity_t *client);
390void G_SetStats(gentity_t *ent);
391void DeathmatchScoreboardMessage(gentity_t *client);
404void FindIntermissionPoint(
void);
405void SetLeader(
int team,
int client);
406void CheckTeamLeader(
int team);
407void G_RunThink(gentity_t *ent);
408void QDECL G_LogPrintf(
const char *fmt, ...);
409void SendScoreboardMessageToAllClients(
void);
410void QDECL G_Printf(
const char *fmt, ...);
411void QDECL G_Error(
const char *fmt, ...) __attribute__ ((noreturn, format(printf, 1, 2)));
412void QDECL G_Error(errorParm_t type, const
char *fmt, ...) __attribute__((noreturn, format(printf, 2, 3)));
417void G_BotConnect(
int clientNum, qboolean firstTime, const
char* userinfo);
418const
char *G_ClientConnect(
int clientNum, qboolean firstTime, qboolean differentMap);
419void G_ClientUserinfoChanged(gentity_t *ent, const
char *userinfo);
420void G_ClientDisconnect(gentity_t *ent);
421void G_ClientBegin(gentity_t *ent, usercmd_t *cmd);
422void G_SetClientConfigString(gentity_t *ent);
423void G_ClientCommand(gentity_t *ent);
425void G_PrintfClient(gentity_t *ent, const
char *fmt, ...);
430void G_ClientThink(gentity_t *ent, usercmd_t *cmd, usereyes_t *eyeinfo);
431void ClientEndFrame(gentity_t *ent);
432void G_ClientEndServerFrames(
void);
433void G_ClientDoBlends(
void);
434void FindIntermissionPoint(
void);
435void G_RunClient(gentity_t *ent);
440qboolean OnSameTeam(gentity_t *ent1, gentity_t *ent2);
441void Team_CheckDroppedItem(gentity_t *dropped);
442qboolean CheckObeliskAttack(gentity_t *obelisk, gentity_t *attacker);
447void *G_Alloc(
int size);
448void G_InitMemory(
void);
449void Svcmd_GameMem_f(
void);
454void G_ReadClientSessionData(gclient_t *client);
455void G_InitClientPersistant(gclient_t *client, const
char *userinfo);
457void G_InitWorldSession(
void);
458void G_WriteSessionData(
void);
463void UpdateTournamentInfo(
void);
464void SpawnModelsOnVictoryPads(
void);
465void Svcmd_AbortPodium_f(
void);
476 qboolean groundPlane;
477 vec3_t groundPlaneNormal;
483 float desired_dir[2];
491 int touchents[MAXTOUCH];
493 qboolean hit_obstacle;
495 int hit_temp_obstacle;
497 vec3_t obstacle_normal;
501void MmoveSingle(mmove_t *mmove);
504void VmoveSingle(
struct vmove_s *mmove);
507#define MAX_FILEPATH 144
511 char characterfile[MAX_FILEPATH];
513 char team[MAX_FILEPATH];
516int BotAISetup(
int restart);
518int BotAILoadMap(
int restart);
519int BotAISetupClient(
int client,
struct bot_settings_s *settings, qboolean restart);
520int BotAIShutdownClient(
int client, qboolean restart);
521int BotAIStartFrame(
int time);
522void BotTestAAS(vec3_t origin);
524extern gentity_t *g_entities;
525#define FOFS(x) ((size_t) & (((gentity_t *)0)->x))
Definition container.h:85
Definition playerstart.h:34
Definition SkelMat4.h:355
Definition q_shared.h:1524
Definition q_shared.h:1452