mirror of
https://github.com/UberGames/rpgxEF.git
synced 2024-11-10 07:11:34 +00:00
Big documentation update
This commit is contained in:
parent
71671b4fca
commit
3ffe39bf3a
14 changed files with 1051 additions and 855 deletions
|
@ -303,15 +303,6 @@ static void ClientImpacts( gentity_t *ent, pmove_t *pm ) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
============
|
|
||||||
G_TouchTriggers
|
|
||||||
============
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* Find all trigger entities that ent's current position touches.
|
|
||||||
* Spectators will only interact with teleporters.
|
|
||||||
*/
|
|
||||||
void G_TouchTriggers( gentity_t *ent ) {
|
void G_TouchTriggers( gentity_t *ent ) {
|
||||||
int i, num;
|
int i, num;
|
||||||
int touch[MAX_GENTITIES];
|
int touch[MAX_GENTITIES];
|
||||||
|
@ -931,10 +922,6 @@ static qhandle_t shieldDamageSound=0;
|
||||||
static qhandle_t shieldMurderSound=0;
|
static qhandle_t shieldMurderSound=0;
|
||||||
static qhandle_t shieldDeactivateSound=0;
|
static qhandle_t shieldDeactivateSound=0;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove a forcefield
|
|
||||||
*/
|
|
||||||
void G_Active_ShieldRemove(gentity_t *self)
|
void G_Active_ShieldRemove(gentity_t *self)
|
||||||
{
|
{
|
||||||
self->think = G_FreeEntity;
|
self->think = G_FreeEntity;
|
||||||
|
@ -2210,15 +2197,6 @@ static void ClientThink_real( gentity_t *ent ) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
==================
|
|
||||||
ClientThink
|
|
||||||
|
|
||||||
==================
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* A new command has arrived from the client
|
|
||||||
*/
|
|
||||||
void ClientThink( int clientNum ) {
|
void ClientThink( int clientNum ) {
|
||||||
gentity_t *ent;
|
gentity_t *ent;
|
||||||
|
|
||||||
|
@ -2290,16 +2268,6 @@ static void SpectatorClientEndFrame( gentity_t *ent ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
==============
|
|
||||||
ClientEndFrame
|
|
||||||
==============
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* Called at the end of each server frame for each connected client
|
|
||||||
* A fast client will have multiple ClientThink for each ClientEdFrame,
|
|
||||||
* while a slow client may have multiple ClientEndFrame between ClientThink.
|
|
||||||
*/
|
|
||||||
void ClientEndFrame( gentity_t *ent ) {
|
void ClientEndFrame( gentity_t *ent ) {
|
||||||
int i;
|
int i;
|
||||||
playerState_t *ps = &ent->client->ps;
|
playerState_t *ps = &ent->client->ps;
|
||||||
|
|
|
@ -519,16 +519,6 @@ void G_Client_Respawn( gentity_t *ent ) {
|
||||||
tent->s.clientNum = ent->s.clientNum;
|
tent->s.clientNum = ent->s.clientNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
================
|
|
||||||
G_Client_TeamCount
|
|
||||||
|
|
||||||
Returns number of players on a team
|
|
||||||
================
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* Returns number of players on a team
|
|
||||||
*/
|
|
||||||
team_t G_Client_TeamCount( int ignoreClientNum, int team ) {
|
team_t G_Client_TeamCount( int ignoreClientNum, int team ) {
|
||||||
int i;
|
int i;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
@ -548,13 +538,6 @@ team_t G_Client_TeamCount( int ignoreClientNum, int team ) {
|
||||||
return (team_t)count;
|
return (team_t)count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
================
|
|
||||||
G_Client_PickTeam
|
|
||||||
|
|
||||||
================
|
|
||||||
*/
|
|
||||||
team_t G_Client_PickTeam( int ignoreClientNum ) {
|
team_t G_Client_PickTeam( int ignoreClientNum ) {
|
||||||
int counts[TEAM_NUM_TEAMS];
|
int counts[TEAM_NUM_TEAMS];
|
||||||
|
|
||||||
|
|
|
@ -17,12 +17,6 @@ extern int numKilled;
|
||||||
extern clInitStatus_t clientInitialStatus[];
|
extern clInitStatus_t clientInitialStatus[];
|
||||||
extern qboolean levelExiting;
|
extern qboolean levelExiting;
|
||||||
|
|
||||||
/*
|
|
||||||
==================
|
|
||||||
DeathmatchScoreboardMessage
|
|
||||||
|
|
||||||
==================
|
|
||||||
*/
|
|
||||||
void DeathmatchScoreboardMessage( gentity_t *ent ) {
|
void DeathmatchScoreboardMessage( gentity_t *ent ) {
|
||||||
char entry[1024];
|
char entry[1024];
|
||||||
char string[1400];
|
char string[1400];
|
||||||
|
@ -75,14 +69,6 @@ void DeathmatchScoreboardMessage( gentity_t *ent ) {
|
||||||
string ) );
|
string ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
==================
|
|
||||||
Cmd_Score_f
|
|
||||||
|
|
||||||
Request current scoreboard information
|
|
||||||
==================
|
|
||||||
*/
|
|
||||||
void Cmd_Score_f( gentity_t *ent ) {
|
void Cmd_Score_f( gentity_t *ent ) {
|
||||||
DeathmatchScoreboardMessage( ent );
|
DeathmatchScoreboardMessage( ent );
|
||||||
}
|
}
|
||||||
|
@ -106,12 +92,6 @@ static qboolean CheatsOk( gentity_t *ent ) {
|
||||||
return qtrue;
|
return qtrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
==================
|
|
||||||
ConcatArgs
|
|
||||||
==================
|
|
||||||
*/
|
|
||||||
char *ConcatArgs( int start ) {
|
char *ConcatArgs( int start ) {
|
||||||
int i, c, tlen;
|
int i, c, tlen;
|
||||||
static char line[MAX_STRING_CHARS];
|
static char line[MAX_STRING_CHARS];
|
||||||
|
@ -625,13 +605,6 @@ static void Cmd_Kill_f( gentity_t *ent )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
=================
|
|
||||||
BroadCastTeamChange
|
|
||||||
|
|
||||||
Let everyone know about a team change
|
|
||||||
=================
|
|
||||||
*/
|
|
||||||
void BroadcastTeamChange( gclient_t *client, int oldTeam )
|
void BroadcastTeamChange( gclient_t *client, int oldTeam )
|
||||||
{
|
{
|
||||||
clientSession_t *sess = &client->sess;
|
clientSession_t *sess = &client->sess;
|
||||||
|
@ -681,11 +654,6 @@ void BroadcastClassChange( gclient_t *client, pclass_t oldPClass )
|
||||||
trap_SendServerCommand( -1, va("cp \"%.15s" S_COLOR_WHITE "%s\n\"", client->pers.netname, g_classData[client->sess.sessionClass].message) );
|
trap_SendServerCommand( -1, va("cp \"%.15s" S_COLOR_WHITE "%s\n\"", client->pers.netname, g_classData[client->sess.sessionClass].message) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
=================
|
|
||||||
SetTeam
|
|
||||||
=================
|
|
||||||
*/
|
|
||||||
qboolean SetTeam( gentity_t *ent, char *s ) {
|
qboolean SetTeam( gentity_t *ent, char *s ) {
|
||||||
int team, oldTeam;
|
int team, oldTeam;
|
||||||
gclient_t *client;
|
gclient_t *client;
|
||||||
|
@ -977,14 +945,7 @@ qboolean SetClass( gentity_t *ent, char *s, char *teamName, qboolean SaveToCvar
|
||||||
|
|
||||||
return qtrue;
|
return qtrue;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
=================
|
|
||||||
StopFollowing
|
|
||||||
|
|
||||||
If the client being followed leaves the game, or you just want to drop
|
|
||||||
to free floating spectator mode
|
|
||||||
=================
|
|
||||||
*/
|
|
||||||
void StopFollowing( gentity_t *ent ) {
|
void StopFollowing( gentity_t *ent ) {
|
||||||
playerState_t *ps = &ent->client->ps;
|
playerState_t *ps = &ent->client->ps;
|
||||||
clientSession_t *sess = &ent->client->sess;
|
clientSession_t *sess = &ent->client->sess;
|
||||||
|
@ -1285,11 +1246,6 @@ static void Cmd_Flight_f( gentity_t *ent )
|
||||||
trap_SendServerCommand( ent-g_entities, va("print \"%s\"", msg));
|
trap_SendServerCommand( ent-g_entities, va("print \"%s\"", msg));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
=================
|
|
||||||
Cmd_FollowCycle_f
|
|
||||||
=================
|
|
||||||
*/
|
|
||||||
void Cmd_FollowCycle_f( gentity_t *ent, int dir ) {
|
void Cmd_FollowCycle_f( gentity_t *ent, int dir ) {
|
||||||
int clientnum;
|
int clientnum;
|
||||||
int original;
|
int original;
|
||||||
|
|
|
@ -72,13 +72,7 @@ void SetScore( gentity_t *ent, int score ) {
|
||||||
//RPG-X: RedTechie - Lets enable score updating without this scores will not be updated
|
//RPG-X: RedTechie - Lets enable score updating without this scores will not be updated
|
||||||
ent->client->UpdateScore = qfalse;
|
ent->client->UpdateScore = qfalse;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
=================
|
|
||||||
TossClientItems
|
|
||||||
|
|
||||||
Toss the weapon and powerups for the killed player
|
|
||||||
=================
|
|
||||||
*/
|
|
||||||
void TossClientItems( gentity_t *self, qboolean dis_con ) {
|
void TossClientItems( gentity_t *self, qboolean dis_con ) {
|
||||||
gitem_t *item;
|
gitem_t *item;
|
||||||
float angle;
|
float angle;
|
||||||
|
@ -171,11 +165,6 @@ static void GibEntity( gentity_t *self, int killer ) {
|
||||||
self->r.contents = 0;
|
self->r.contents = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
==================
|
|
||||||
body_die
|
|
||||||
==================
|
|
||||||
*/
|
|
||||||
void body_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int damage, int meansOfDeath ) {
|
void body_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int damage, int meansOfDeath ) {
|
||||||
int contents;
|
int contents;
|
||||||
contents = trap_PointContents( self->r.currentOrigin, -1 );
|
contents = trap_PointContents( self->r.currentOrigin, -1 );
|
||||||
|
@ -1050,30 +1039,6 @@ static int G_LocationDamage(vec3_t point, gentity_t* targ, gentity_t* attacker,
|
||||||
return take;
|
return take;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
============
|
|
||||||
T_Damage
|
|
||||||
|
|
||||||
targ entity that is being damaged
|
|
||||||
inflictor entity that is causing the damage
|
|
||||||
attacker entity that caused the inflictor to damage targ
|
|
||||||
example: targ=monster, inflictor=rocket, attacker=player
|
|
||||||
|
|
||||||
dir direction of the attack for knockback
|
|
||||||
point point at which the damage is being inflicted, used for headshots
|
|
||||||
damage amount of damage being inflicted
|
|
||||||
knockback force to be applied against targ as a result of the damage
|
|
||||||
|
|
||||||
inflictor, attacker, dir, and point can be NULL for environmental effects
|
|
||||||
|
|
||||||
dflags these flags are used to control how T_Damage works
|
|
||||||
DAMAGE_RADIUS damage was indirect (from a nearby explosion)
|
|
||||||
DAMAGE_NO_ARMOR armor does not protect from this damage
|
|
||||||
DAMAGE_NO_KNOCKBACK do not affect velocity, just view angles
|
|
||||||
DAMAGE_NO_PROTECTION kills godmode, armor, everything
|
|
||||||
============
|
|
||||||
*/
|
|
||||||
|
|
||||||
void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker,
|
void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker,
|
||||||
vec3_t dir, vec3_t point, int damage, int dflags, int mod ) {
|
vec3_t dir, vec3_t point, int damage, int dflags, int mod ) {
|
||||||
gclient_t *client;
|
gclient_t *client;
|
||||||
|
@ -1360,15 +1325,6 @@ void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker,
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
============
|
|
||||||
CanDamage
|
|
||||||
|
|
||||||
Returns qtrue if the inflictor can directly damage the target. Used for
|
|
||||||
explosions and melee attacks.
|
|
||||||
============
|
|
||||||
*/
|
|
||||||
qboolean CanDamage (gentity_t *targ, vec3_t origin) {
|
qboolean CanDamage (gentity_t *targ, vec3_t origin) {
|
||||||
vec3_t dest;
|
vec3_t dest;
|
||||||
trace_t tr;
|
trace_t tr;
|
||||||
|
@ -1418,12 +1374,6 @@ qboolean CanDamage (gentity_t *targ, vec3_t origin) {
|
||||||
return qfalse;
|
return qfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
============
|
|
||||||
G_RadiusDamage
|
|
||||||
============
|
|
||||||
*/
|
|
||||||
extern void tripwireThink ( gentity_t *ent );
|
extern void tripwireThink ( gentity_t *ent );
|
||||||
qboolean G_RadiusDamage ( vec3_t origin, gentity_t *attacker, float damage, float radius,
|
qboolean G_RadiusDamage ( vec3_t origin, gentity_t *attacker, float damage, float radius,
|
||||||
gentity_t *ignore, int dflags, int mod) {
|
gentity_t *ignore, int dflags, int mod) {
|
||||||
|
@ -1531,12 +1481,7 @@ qboolean IsBorg(gentity_t *ent) {
|
||||||
|
|
||||||
extern void InitBBrush(gentity_t *ent);
|
extern void InitBBrush(gentity_t *ent);
|
||||||
extern void SP_misc_model_breakable(gentity_t* self);
|
extern void SP_misc_model_breakable(gentity_t* self);
|
||||||
/*
|
|
||||||
============
|
|
||||||
G_Repair
|
|
||||||
RPG-X | GSIO01 | 09/05/2009
|
|
||||||
============
|
|
||||||
*/
|
|
||||||
void G_Repair(gentity_t *ent, gentity_t *tr_ent, float rate) {
|
void G_Repair(gentity_t *ent, gentity_t *tr_ent, float rate) {
|
||||||
float distance;
|
float distance;
|
||||||
vec3_t help, forward;
|
vec3_t help, forward;
|
||||||
|
|
|
@ -111,13 +111,6 @@ int Min_Weapon(int num)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
Padd_Add
|
|
||||||
RPG-X | Marcin | 06/12/2008
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
void Padd_Add( gentity_t *key, gentity_t *who, char *txt )
|
void Padd_Add( gentity_t *key, gentity_t *who, char *txt )
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
@ -158,12 +151,6 @@ void Padd_Add( gentity_t *key, gentity_t *who, char *txt )
|
||||||
++paddDataNum;
|
++paddDataNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
Padd_Get
|
|
||||||
RPG-X | Marcin | 06/12/2008
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
char *Padd_Get( gentity_t *key, gentity_t *who )
|
char *Padd_Get( gentity_t *key, gentity_t *who )
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -188,12 +175,6 @@ char *Padd_Get( gentity_t *key, gentity_t *who )
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
Padd_Remove
|
|
||||||
RPG-X | Marcin | 06/12/2008
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
void Padd_Remove( gentity_t *key )
|
void Padd_Remove( gentity_t *key )
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
@ -452,11 +433,6 @@ int Pickup_Armor( gentity_t *ent, gentity_t *other ) {
|
||||||
|
|
||||||
//======================================================================
|
//======================================================================
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
RespawnItem
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
void RespawnItem( gentity_t *ent ) {
|
void RespawnItem( gentity_t *ent ) {
|
||||||
if(!ent) return;
|
if(!ent) return;
|
||||||
|
|
||||||
|
@ -503,11 +479,6 @@ void RespawnItem( gentity_t *ent ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
Touch_Item
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
void Touch_Item (gentity_t *ent, gentity_t *other, trace_t *trace) {
|
void Touch_Item (gentity_t *ent, gentity_t *other, trace_t *trace) {
|
||||||
int respawn;
|
int respawn;
|
||||||
|
|
||||||
|
@ -736,14 +707,6 @@ gentity_t *DropWeapon( gentity_t *ent, gitem_t *item, float angle, int flags, ch
|
||||||
return LaunchItem( item, ent, origin, velocity, flags, txt );
|
return LaunchItem( item, ent, origin, velocity, flags, txt );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
================
|
|
||||||
Drop_Item
|
|
||||||
|
|
||||||
Spawns an item and tosses it forward
|
|
||||||
================
|
|
||||||
*/
|
|
||||||
gentity_t *Drop_Item( gentity_t *ent, gitem_t *item, float angle ) {
|
gentity_t *Drop_Item( gentity_t *ent, gitem_t *item, float angle ) {
|
||||||
vec3_t velocity;
|
vec3_t velocity;
|
||||||
vec3_t angles;
|
vec3_t angles;
|
||||||
|
@ -773,14 +736,6 @@ void Use_Item( gentity_t *ent, gentity_t *other, gentity_t *activator ) {
|
||||||
|
|
||||||
//======================================================================
|
//======================================================================
|
||||||
|
|
||||||
/*
|
|
||||||
================
|
|
||||||
FinishSpawningItem
|
|
||||||
|
|
||||||
Traces down to find where an item should rest, instead of letting them
|
|
||||||
free fall from their spawn points
|
|
||||||
================
|
|
||||||
*/
|
|
||||||
void FinishSpawningItem( gentity_t *ent ) {
|
void FinishSpawningItem( gentity_t *ent ) {
|
||||||
trace_t tr;
|
trace_t tr;
|
||||||
vec3_t dest;
|
vec3_t dest;
|
||||||
|
@ -955,11 +910,6 @@ qboolean FinishSpawningDecoy( gentity_t *ent, int itemIndex )
|
||||||
|
|
||||||
qboolean itemRegistered[MAX_ITEMS];
|
qboolean itemRegistered[MAX_ITEMS];
|
||||||
|
|
||||||
/*
|
|
||||||
==============
|
|
||||||
ClearRegisteredItems
|
|
||||||
==============
|
|
||||||
*/
|
|
||||||
void ClearRegisteredItems( void ) {
|
void ClearRegisteredItems( void ) {
|
||||||
memset( itemRegistered, 0, sizeof( itemRegistered ) );
|
memset( itemRegistered, 0, sizeof( itemRegistered ) );
|
||||||
// players always start with the base weapon
|
// players always start with the base weapon
|
||||||
|
@ -979,13 +929,6 @@ void ClearRegisteredItems( void ) {
|
||||||
RegisterItem( BG_FindItemForWeapon( WP_7 ) );
|
RegisterItem( BG_FindItemForWeapon( WP_7 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
RegisterItem
|
|
||||||
|
|
||||||
The item will be added to the precache list
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
void RegisterItem( gitem_t *item ) {
|
void RegisterItem( gitem_t *item ) {
|
||||||
if ( !item ) {
|
if ( !item ) {
|
||||||
G_Error( "RegisterItem: NULL" );
|
G_Error( "RegisterItem: NULL" );
|
||||||
|
@ -995,15 +938,6 @@ void RegisterItem( gitem_t *item ) {
|
||||||
itemRegistered[ item - bg_itemlist ] = qtrue;
|
itemRegistered[ item - bg_itemlist ] = qtrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
SaveRegisteredItems
|
|
||||||
|
|
||||||
Write the needed items to a config string
|
|
||||||
so the client will know which ones to precache
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
void SaveRegisteredItems( void ) {
|
void SaveRegisteredItems( void ) {
|
||||||
char string[MAX_ITEMS+1];
|
char string[MAX_ITEMS+1];
|
||||||
int i;
|
int i;
|
||||||
|
@ -1062,16 +996,6 @@ qboolean G_ItemClassnameSuppressed( char *itemname )
|
||||||
return G_ItemSuppressed( itemType, itemTag );
|
return G_ItemSuppressed( itemType, itemTag );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
============
|
|
||||||
G_SpawnItem
|
|
||||||
|
|
||||||
Sets the clipping size and plants the object on the floor.
|
|
||||||
|
|
||||||
Items can't be immediately dropped to floor, because they might
|
|
||||||
be on an entity that hasn't spawned yet.
|
|
||||||
============
|
|
||||||
*/
|
|
||||||
void G_SpawnItem (gentity_t *ent, gitem_t *item) {
|
void G_SpawnItem (gentity_t *ent, gitem_t *item) {
|
||||||
if ( G_ItemSuppressed( item->giType, item->giTag ) )
|
if ( G_ItemSuppressed( item->giType, item->giTag ) )
|
||||||
{
|
{
|
||||||
|
@ -1130,13 +1054,6 @@ void G_BounceItem( gentity_t *ent, trace_t *trace ) {
|
||||||
ent->s.pos.trTime = level.time;
|
ent->s.pos.trTime = level.time;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
================
|
|
||||||
G_RunItem
|
|
||||||
|
|
||||||
================
|
|
||||||
*/
|
|
||||||
void G_RunItem( gentity_t *ent ) {
|
void G_RunItem( gentity_t *ent ) {
|
||||||
vec3_t origin;
|
vec3_t origin;
|
||||||
trace_t tr;
|
trace_t tr;
|
||||||
|
|
1032
code/game/g_local.h
1032
code/game/g_local.h
File diff suppressed because it is too large
Load diff
|
@ -1982,11 +1982,7 @@ void G_InitGame( int levelTime, int randomSeed, int restart ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
extern list_iter_p iterTimedMessages; /* list iterator for timed messages */
|
extern list_iter_p iterTimedMessages; /* list iterator for timed messages */
|
||||||
/*
|
|
||||||
=================
|
|
||||||
G_ShutdownGame
|
|
||||||
=================
|
|
||||||
*/
|
|
||||||
void G_ShutdownGame( int restart ) {
|
void G_ShutdownGame( int restart ) {
|
||||||
G_Printf ("==== ShutdownGame ====\n");
|
G_Printf ("==== ShutdownGame ====\n");
|
||||||
|
|
||||||
|
@ -2319,14 +2315,6 @@ void SendScoreboardMessageToAllClients( void ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
========================
|
|
||||||
MoveClientToIntermission
|
|
||||||
|
|
||||||
When the intermission starts, this will be called for all players.
|
|
||||||
If a new client connects, this will be called after the spawn function.
|
|
||||||
========================
|
|
||||||
*/
|
|
||||||
void MoveClientToIntermission( gentity_t *ent ) {
|
void MoveClientToIntermission( gentity_t *ent ) {
|
||||||
entityState_t *es = &ent->s;
|
entityState_t *es = &ent->s;
|
||||||
playerState_t *ps = &ent->client->ps;
|
playerState_t *ps = &ent->client->ps;
|
||||||
|
@ -2356,13 +2344,6 @@ void MoveClientToIntermission( gentity_t *ent ) {
|
||||||
ent->r.contents = 0;
|
ent->r.contents = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
==================
|
|
||||||
FindIntermissionPoint
|
|
||||||
|
|
||||||
This is also used for spectator spawns
|
|
||||||
==================
|
|
||||||
*/
|
|
||||||
void FindIntermissionPoint( void ) {
|
void FindIntermissionPoint( void ) {
|
||||||
gentity_t *ent, *target;
|
gentity_t *ent, *target;
|
||||||
vec3_t dir;
|
vec3_t dir;
|
||||||
|
|
|
@ -365,12 +365,6 @@ static void G_RunStuckMissile( gentity_t *ent )
|
||||||
G_RunThink( ent );
|
G_RunThink( ent );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
================
|
|
||||||
G_Missile_Run
|
|
||||||
|
|
||||||
================
|
|
||||||
*/
|
|
||||||
void G_Missile_Run( gentity_t *ent ) {
|
void G_Missile_Run( gentity_t *ent ) {
|
||||||
vec3_t origin;
|
vec3_t origin;
|
||||||
trace_t tr;
|
trace_t tr;
|
||||||
|
@ -416,12 +410,6 @@ void G_Missile_Run( gentity_t *ent ) {
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
/*
|
|
||||||
=================
|
|
||||||
fire_plasma
|
|
||||||
|
|
||||||
=================
|
|
||||||
*/
|
|
||||||
gentity_t *fire_plasma (gentity_t *self, vec3_t start, vec3_t dir) {
|
gentity_t *fire_plasma (gentity_t *self, vec3_t start, vec3_t dir) {
|
||||||
gentity_t *bolt;
|
gentity_t *bolt;
|
||||||
|
|
||||||
|
@ -492,13 +480,6 @@ gentity_t *fire_comprifle(gentity_t *self, vec3_t start, vec3_t dir) {
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
=================
|
|
||||||
fire_quantum
|
|
||||||
|
|
||||||
=================
|
|
||||||
*/
|
|
||||||
gentity_t *fire_quantum (gentity_t *self, vec3_t start, vec3_t dir) {
|
gentity_t *fire_quantum (gentity_t *self, vec3_t start, vec3_t dir) {
|
||||||
gentity_t *bolt;
|
gentity_t *bolt;
|
||||||
|
|
||||||
|
@ -536,11 +517,6 @@ gentity_t *fire_quantum (gentity_t *self, vec3_t start, vec3_t dir) {
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
/*
|
|
||||||
=================
|
|
||||||
fire_grenade
|
|
||||||
=================
|
|
||||||
*/
|
|
||||||
gentity_t *fire_grenade (gentity_t *self, vec3_t start, vec3_t dir) {
|
gentity_t *fire_grenade (gentity_t *self, vec3_t start, vec3_t dir) {
|
||||||
gentity_t *bolt;
|
gentity_t *bolt;
|
||||||
|
|
||||||
|
@ -580,12 +556,6 @@ gentity_t *fire_grenade (gentity_t *self, vec3_t start, vec3_t dir) {
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
=================
|
|
||||||
fire_rocket
|
|
||||||
=================
|
|
||||||
*/
|
|
||||||
gentity_t *fire_rocket (gentity_t *self, vec3_t start, vec3_t dir) {
|
gentity_t *fire_rocket (gentity_t *self, vec3_t start, vec3_t dir) {
|
||||||
gentity_t *bolt;
|
gentity_t *bolt;
|
||||||
|
|
||||||
|
|
|
@ -358,12 +358,6 @@ static void G_MoverTeam( gentity_t *ent ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
================
|
|
||||||
G_Mover_Run
|
|
||||||
|
|
||||||
================
|
|
||||||
*/
|
|
||||||
void G_Mover_Run( gentity_t *ent ) {
|
void G_Mover_Run( gentity_t *ent ) {
|
||||||
// if not a team captain, don't do anything, because
|
// if not a team captain, don't do anything, because
|
||||||
// the captain will handle everything
|
// the captain will handle everything
|
||||||
|
@ -775,12 +769,6 @@ void Reached_BinaryMover( gentity_t *ent ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
================
|
|
||||||
G_Mover_UseBinaryMover
|
|
||||||
================
|
|
||||||
*/
|
|
||||||
void G_Mover_UseBinaryMover( gentity_t *ent, gentity_t *other, gentity_t *activator ) {
|
void G_Mover_UseBinaryMover( gentity_t *ent, gentity_t *other, gentity_t *activator ) {
|
||||||
int total;
|
int total;
|
||||||
int partial;
|
int partial;
|
||||||
|
@ -1218,11 +1206,6 @@ static void Touch_DoorTriggerSpectator( gentity_t *ent, gentity_t *other, trace_
|
||||||
|
|
||||||
void DoorTriggerReactivate(gentity_t *ent);
|
void DoorTriggerReactivate(gentity_t *ent);
|
||||||
|
|
||||||
/*
|
|
||||||
================
|
|
||||||
G_Mover_TouchDoorTrigger
|
|
||||||
================
|
|
||||||
*/
|
|
||||||
void G_Mover_TouchDoorTrigger( gentity_t *ent, gentity_t *other, trace_t *trace ) {
|
void G_Mover_TouchDoorTrigger( gentity_t *ent, gentity_t *other, trace_t *trace ) {
|
||||||
#if 0
|
#if 0
|
||||||
vec3_t vec, doorcenter, movedir;
|
vec3_t vec, doorcenter, movedir;
|
||||||
|
|
|
@ -13,11 +13,6 @@
|
||||||
sqlite3 *user_db;
|
sqlite3 *user_db;
|
||||||
qboolean sql_ready = qfalse;
|
qboolean sql_ready = qfalse;
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
G_Sql_Check_StepReturn
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
static qboolean G_Sql_Check_StepReturn(int r) {
|
static qboolean G_Sql_Check_StepReturn(int r) {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case SQLITE_ROW:
|
case SQLITE_ROW:
|
||||||
|
@ -30,11 +25,6 @@ static qboolean G_Sql_Check_StepReturn(int r) {
|
||||||
return qtrue;
|
return qtrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
G_Sql_Check_PrepareReturn
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
static qboolean G_Sql_Check_PrepareReturn(int r) {
|
static qboolean G_Sql_Check_PrepareReturn(int r) {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case SQLITE_OK:
|
case SQLITE_OK:
|
||||||
|
@ -46,11 +36,6 @@ static qboolean G_Sql_Check_PrepareReturn(int r) {
|
||||||
return qtrue;
|
return qtrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
G_Sql_Check_BindReturn
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
static qboolean G_Sql_Check_BindReturn(int r) {
|
static qboolean G_Sql_Check_BindReturn(int r) {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case SQLITE_OK:
|
case SQLITE_OK:
|
||||||
|
@ -62,11 +47,6 @@ static qboolean G_Sql_Check_BindReturn(int r) {
|
||||||
return qtrue;
|
return qtrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
G_Sql_Md5
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
static char *G_Sql_Md5(const char *s) {
|
static char *G_Sql_Md5(const char *s) {
|
||||||
char *res;
|
char *res;
|
||||||
unsigned char sig[16];
|
unsigned char sig[16];
|
||||||
|
@ -89,11 +69,6 @@ static char *G_Sql_Md5(const char *s) {
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
G_SqlInit
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
qboolean G_Sql_Init(void) {
|
qboolean G_Sql_Init(void) {
|
||||||
int res;
|
int res;
|
||||||
sqlite3_stmt *stmt;
|
sqlite3_stmt *stmt;
|
||||||
|
@ -152,11 +127,6 @@ qboolean G_Sql_Init(void) {
|
||||||
return qtrue;
|
return qtrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
G_Sql_Shutdown
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
void G_Sql_Shutdown(void) {
|
void G_Sql_Shutdown(void) {
|
||||||
|
|
||||||
if(!sql_use.integer) return;
|
if(!sql_use.integer) return;
|
||||||
|
@ -166,11 +136,6 @@ void G_Sql_Shutdown(void) {
|
||||||
sqlite3_close(user_db);
|
sqlite3_close(user_db);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
G_Sql_UserDB_Del
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
qboolean G_Sql_UserDB_Del(const char *uName) {
|
qboolean G_Sql_UserDB_Del(const char *uName) {
|
||||||
sqlite3_stmt *stmt;
|
sqlite3_stmt *stmt;
|
||||||
int res, id = -1;
|
int res, id = -1;
|
||||||
|
@ -241,11 +206,6 @@ qboolean G_Sql_UserDB_Del(const char *uName) {
|
||||||
return qtrue;
|
return qtrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
G_Sql_UserAdd
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
qboolean G_Sql_UserDB_Add(const char *uName, const char *password) {
|
qboolean G_Sql_UserDB_Add(const char *uName, const char *password) {
|
||||||
sqlite3_stmt *stmt;
|
sqlite3_stmt *stmt;
|
||||||
int res, id;
|
int res, id;
|
||||||
|
@ -334,11 +294,6 @@ qboolean G_Sql_UserDB_Add(const char *uName, const char *password) {
|
||||||
return qtrue;
|
return qtrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
G_Sql_UserDB_login
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
qboolean G_Sql_UserDB_Login(const char *uName, const char *pwd, int clientnum) {
|
qboolean G_Sql_UserDB_Login(const char *uName, const char *pwd, int clientnum) {
|
||||||
sqlite3_stmt *stmt;
|
sqlite3_stmt *stmt;
|
||||||
int res, id;
|
int res, id;
|
||||||
|
@ -406,11 +361,6 @@ qboolean G_Sql_UserDB_Login(const char *uName, const char *pwd, int clientnum) {
|
||||||
return qtrue;
|
return qtrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
G_Sql_UserDB_CheckRight
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
qboolean G_Sql_UserDB_CheckRight(int uid, int right) {
|
qboolean G_Sql_UserDB_CheckRight(int uid, int right) {
|
||||||
sqlite3_stmt *stmt;
|
sqlite3_stmt *stmt;
|
||||||
int res;
|
int res;
|
||||||
|
@ -454,11 +404,6 @@ qboolean G_Sql_UserDB_CheckRight(int uid, int right) {
|
||||||
return qfalse;
|
return qfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
G_Sql_UserDB_AddRight
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
qboolean G_Sql_UserDB_AddRight(int uid, int right) {
|
qboolean G_Sql_UserDB_AddRight(int uid, int right) {
|
||||||
sqlite3_stmt *stmt;
|
sqlite3_stmt *stmt;
|
||||||
int res;
|
int res;
|
||||||
|
@ -512,11 +457,6 @@ qboolean G_Sql_UserDB_AddRight(int uid, int right) {
|
||||||
return qtrue;
|
return qtrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
G_Sql_UserDB_RemoveRight
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
qboolean G_Sql_UserDB_RemoveRight(int uid, int right) {
|
qboolean G_Sql_UserDB_RemoveRight(int uid, int right) {
|
||||||
sqlite3_stmt *stmt;
|
sqlite3_stmt *stmt;
|
||||||
int res;
|
int res;
|
||||||
|
@ -570,11 +510,6 @@ qboolean G_Sql_UserDB_RemoveRight(int uid, int right) {
|
||||||
return qtrue;
|
return qtrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
===============
|
|
||||||
G_Sql_UserDB_GetUID
|
|
||||||
===============
|
|
||||||
*/
|
|
||||||
int G_Sql_UserDB_GetUID(const char *uName) {
|
int G_Sql_UserDB_GetUID(const char *uName) {
|
||||||
sqlite3_stmt *stmt;
|
sqlite3_stmt *stmt;
|
||||||
int res;
|
int res;
|
||||||
|
|
|
@ -128,11 +128,6 @@ static void UpdateIPBans (void)
|
||||||
trap_Cvar_Set( "g_banIPs", iplist );
|
trap_Cvar_Set( "g_banIPs", iplist );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
=================
|
|
||||||
G_FilterPacket
|
|
||||||
=================
|
|
||||||
*/
|
|
||||||
qboolean G_FilterPacket (char *from)
|
qboolean G_FilterPacket (char *from)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -790,12 +785,6 @@ static void Svcmd_LuaRestart_f(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
=================
|
|
||||||
ConsoleCommand
|
|
||||||
|
|
||||||
=================
|
|
||||||
*/
|
|
||||||
qboolean ConsoleCommand( void ) { //void
|
qboolean ConsoleCommand( void ) { //void
|
||||||
char cmd[MAX_TOKEN_CHARS];
|
char cmd[MAX_TOKEN_CHARS];
|
||||||
|
|
||||||
|
|
|
@ -431,13 +431,6 @@ trigger_teleport
|
||||||
|
|
||||||
#define MAX_TRANSPORTER_POINTS 16
|
#define MAX_TRANSPORTER_POINTS 16
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Select a random spawn point.
|
|
||||||
*
|
|
||||||
* Select a random spawn point.
|
|
||||||
*
|
|
||||||
* @return a random spawn point
|
|
||||||
*/
|
|
||||||
gentity_t *SelectRandomSpawnPoint( void )
|
gentity_t *SelectRandomSpawnPoint( void )
|
||||||
{
|
{
|
||||||
gentity_t *spot = NULL;
|
gentity_t *spot = NULL;
|
||||||
|
|
|
@ -31,15 +31,6 @@ static int remapCount = 0;
|
||||||
/** List of shader remaps */
|
/** List of shader remaps */
|
||||||
static shaderRemap_t remappedShaders[MAX_SHADER_REMAPS];
|
static shaderRemap_t remappedShaders[MAX_SHADER_REMAPS];
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Add a new shader remap.
|
|
||||||
*
|
|
||||||
* Remaps oldShader with newShader.
|
|
||||||
*
|
|
||||||
* @param oldShader shader to be remapped
|
|
||||||
* @param newShader replacement shader
|
|
||||||
* @param timeOffset time offset
|
|
||||||
*/
|
|
||||||
void AddRemap(const char *oldShader, const char *newShader, float timeOffset) {
|
void AddRemap(const char *oldShader, const char *newShader, float timeOffset) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -131,56 +122,20 @@ int G_FindConfigstringIndex( char *name, int start, int max, qboolean create ) {
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the model index for a model.
|
|
||||||
*
|
|
||||||
* Get the model index for a model.
|
|
||||||
*
|
|
||||||
* @param name the model name
|
|
||||||
*
|
|
||||||
* @return the models index
|
|
||||||
*/
|
|
||||||
int G_ModelIndex( char *name ) {
|
int G_ModelIndex( char *name ) {
|
||||||
return G_FindConfigstringIndex (name, CS_MODELS, MAX_MODELS, qtrue);
|
return G_FindConfigstringIndex (name, CS_MODELS, MAX_MODELS, qtrue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the sound index for a sound.
|
|
||||||
*
|
|
||||||
* Get the sound index for a sound.
|
|
||||||
*
|
|
||||||
* @param name the sound name
|
|
||||||
*
|
|
||||||
* @return the sounds index
|
|
||||||
*/
|
|
||||||
int G_SoundIndex( char *name ) {
|
int G_SoundIndex( char *name ) {
|
||||||
return G_FindConfigstringIndex (name, CS_SOUNDS, MAX_SOUNDS, qtrue);
|
return G_FindConfigstringIndex (name, CS_SOUNDS, MAX_SOUNDS, qtrue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the tric string index.
|
|
||||||
*
|
|
||||||
* Get the tric string index.
|
|
||||||
*
|
|
||||||
* @param name the tric string name
|
|
||||||
*
|
|
||||||
* @return the tric strings index
|
|
||||||
*/
|
|
||||||
int G_TricStringIndex( char *name ) {
|
int G_TricStringIndex( char *name ) {
|
||||||
return G_FindConfigstringIndex (name, CS_TRIC_STRINGS, MAX_TRIC_STRINGS, qtrue);
|
return G_FindConfigstringIndex (name, CS_TRIC_STRINGS, MAX_TRIC_STRINGS, qtrue);
|
||||||
}
|
}
|
||||||
|
|
||||||
//=====================================================================
|
//=====================================================================
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Issue a team command.
|
|
||||||
*
|
|
||||||
* Issue a team command.
|
|
||||||
*
|
|
||||||
* @param team the team
|
|
||||||
* @param cmd the command
|
|
||||||
*/
|
|
||||||
void G_TeamCommand( team_t team, char *cmd ) {
|
void G_TeamCommand( team_t team, char *cmd ) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -193,22 +148,6 @@ void G_TeamCommand( team_t team, char *cmd ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* \brief Finds an entity.
|
|
||||||
*
|
|
||||||
* Searches all active entities for the next one that holds
|
|
||||||
* the matching string at fieldofs (use the FOFS() macro) in the structure.
|
|
||||||
* Searches beginning at the entity after from, or the beginning if NULL
|
|
||||||
* NULL will be returned if the end of the list is reached.
|
|
||||||
*
|
|
||||||
* @param from search from this entity on
|
|
||||||
* @param fieldofs in which field to look
|
|
||||||
* @param match string to match
|
|
||||||
*
|
|
||||||
* @return an matching entity or NULL
|
|
||||||
*/
|
|
||||||
gentity_t *G_Find (gentity_t *from, int fieldofs, const char *match)
|
gentity_t *G_Find (gentity_t *from, int fieldofs, const char *match)
|
||||||
{
|
{
|
||||||
char *s;
|
char *s;
|
||||||
|
@ -236,15 +175,6 @@ gentity_t *G_Find (gentity_t *from, int fieldofs, const char *match)
|
||||||
/** Maximum number of possible choices for G_PickTarget. */
|
/** Maximum number of possible choices for G_PickTarget. */
|
||||||
#define MAXCHOICES 32
|
#define MAXCHOICES 32
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Pick a target.
|
|
||||||
*
|
|
||||||
* Selects a random entity from among the targets.
|
|
||||||
*
|
|
||||||
* @param targetname the targets targetname
|
|
||||||
*
|
|
||||||
* @return an entity or NULL
|
|
||||||
*/
|
|
||||||
gentity_t *G_PickTarget (char *targetname)
|
gentity_t *G_PickTarget (char *targetname)
|
||||||
{
|
{
|
||||||
gentity_t *ent = NULL;
|
gentity_t *ent = NULL;
|
||||||
|
@ -325,18 +255,6 @@ gentity_t *G_PickTarget (char *targetname)
|
||||||
return choice[rand() % num_choices];
|
return choice[rand() % num_choices];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Use all targets of the given entity.
|
|
||||||
*
|
|
||||||
* Goes through all entities and calls ther use function if their
|
|
||||||
* targetname, swapname, truename, falsename, bluename are matching
|
|
||||||
* the target. activator should be set the the inflictor of this function
|
|
||||||
* call.
|
|
||||||
*
|
|
||||||
* @param ent the entity
|
|
||||||
* @param activator the activator
|
|
||||||
* @param target target to match
|
|
||||||
*/
|
|
||||||
void G_UseTargets2( gentity_t *ent, gentity_t *activator, char *target ) {
|
void G_UseTargets2( gentity_t *ent, gentity_t *activator, char *target ) {
|
||||||
gentity_t *t;
|
gentity_t *t;
|
||||||
|
|
||||||
|
@ -507,14 +425,6 @@ void G_UseTargets2( gentity_t *ent, gentity_t *activator, char *target ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Use all of the given entity's targets.
|
|
||||||
*
|
|
||||||
* Use all of the given entity's targets.
|
|
||||||
*
|
|
||||||
* @param ent the entity
|
|
||||||
* @param activator the initiator of the function call
|
|
||||||
*/
|
|
||||||
void G_UseTargets( gentity_t *ent, gentity_t *activator ) {
|
void G_UseTargets( gentity_t *ent, gentity_t *activator ) {
|
||||||
if ( !ent ) {
|
if ( !ent ) {
|
||||||
return;
|
return;
|
||||||
|
@ -522,19 +432,6 @@ void G_UseTargets( gentity_t *ent, gentity_t *activator ) {
|
||||||
G_UseTargets2( ent, activator, ent->target );
|
G_UseTargets2( ent, activator, ent->target );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Create a temporary vector.
|
|
||||||
*
|
|
||||||
* This is just a convenience function
|
|
||||||
* for making temporary vectors for function calls
|
|
||||||
*
|
|
||||||
* @param x x-value
|
|
||||||
* @param y y-value
|
|
||||||
* @param z z-value
|
|
||||||
*
|
|
||||||
* @return temporary vector
|
|
||||||
*/
|
|
||||||
float *tv( float x, float y, float z ) {
|
float *tv( float x, float y, float z ) {
|
||||||
static int index;
|
static int index;
|
||||||
static vec3_t vecs[8];
|
static vec3_t vecs[8];
|
||||||
|
@ -554,17 +451,6 @@ float *tv( float x, float y, float z ) {
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Converts a vector to a string to be printed.
|
|
||||||
*
|
|
||||||
* This is just a convenience function
|
|
||||||
* for printing vectors
|
|
||||||
*
|
|
||||||
* @param v the vector
|
|
||||||
*
|
|
||||||
* @return string representation of the vector
|
|
||||||
*/
|
|
||||||
char *vtos( const vec3_t v ) {
|
char *vtos( const vec3_t v ) {
|
||||||
static int index;
|
static int index;
|
||||||
static char str[8][32];
|
static char str[8][32];
|
||||||
|
@ -579,19 +465,6 @@ char *vtos( const vec3_t v ) {
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Converts angles to move directions.
|
|
||||||
*
|
|
||||||
* The editor only specifies a single value for angles (yaw),
|
|
||||||
* but we have special constants to generate an up or down direction.
|
|
||||||
* Angles will be cleared, because it is being used to represent a direction
|
|
||||||
* instead of an orientation.
|
|
||||||
*
|
|
||||||
* @param angles the angles
|
|
||||||
* @param movedir the movedir
|
|
||||||
*/
|
|
||||||
void G_SetMovedir( vec3_t angles, vec3_t movedir ) {
|
void G_SetMovedir( vec3_t angles, vec3_t movedir ) {
|
||||||
static vec3_t VEC_UP = {0, -1, 0};
|
static vec3_t VEC_UP = {0, -1, 0};
|
||||||
static vec3_t MOVEDIR_UP = {0, 0, 1};
|
static vec3_t MOVEDIR_UP = {0, 0, 1};
|
||||||
|
@ -608,15 +481,6 @@ void G_SetMovedir( vec3_t angles, vec3_t movedir ) {
|
||||||
VectorClear( angles );
|
VectorClear( angles );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the yaw from a vector.
|
|
||||||
*
|
|
||||||
* Get the yaw from a vector.
|
|
||||||
*
|
|
||||||
* @param vec the vector
|
|
||||||
*
|
|
||||||
* @return the yaw
|
|
||||||
*/
|
|
||||||
float vectoyaw( const vec3_t vec ) {
|
float vectoyaw( const vec3_t vec ) {
|
||||||
float yaw;
|
float yaw;
|
||||||
|
|
||||||
|
@ -638,13 +502,6 @@ float vectoyaw( const vec3_t vec ) {
|
||||||
return yaw;
|
return yaw;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Init the entity.
|
|
||||||
*
|
|
||||||
* Inits a given game entity.
|
|
||||||
*
|
|
||||||
* @param e the entity
|
|
||||||
*/
|
|
||||||
void G_InitGentity( gentity_t *e ) {
|
void G_InitGentity( gentity_t *e ) {
|
||||||
e->inuse = qtrue;
|
e->inuse = qtrue;
|
||||||
e->classname = "noclass";
|
e->classname = "noclass";
|
||||||
|
@ -652,19 +509,6 @@ void G_InitGentity( gentity_t *e ) {
|
||||||
e->r.ownerNum = ENTITYNUM_NONE;
|
e->r.ownerNum = ENTITYNUM_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Spawns a new entity.
|
|
||||||
*
|
|
||||||
* Either finds a free entity, or allocates a new one.
|
|
||||||
* The slots from 0 to MAX_CLIENTS-1 are always reserved for clients,
|
|
||||||
* and will never be used by anything else.
|
|
||||||
* Try to avoid reusing an entity that was recently freed, because it
|
|
||||||
* can cause the client to think the entity morphed into something else
|
|
||||||
* instead of being removed and recreated, which can cause interpolated
|
|
||||||
* angles and bad trails.
|
|
||||||
*
|
|
||||||
* @return a new entity or NULL
|
|
||||||
*/
|
|
||||||
gentity_t *G_Spawn( void ) {
|
gentity_t *G_Spawn( void ) {
|
||||||
int i, force;
|
int i, force;
|
||||||
gentity_t *e;
|
gentity_t *e;
|
||||||
|
@ -745,14 +589,6 @@ gentity_t *G_Spawn( void ) {
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Free an entity.
|
|
||||||
*
|
|
||||||
* Marks the entity as free.
|
|
||||||
*
|
|
||||||
* @param ed entity to free
|
|
||||||
*/
|
|
||||||
void G_FreeEntity( gentity_t *ed ) {
|
void G_FreeEntity( gentity_t *ed ) {
|
||||||
trap_UnlinkEntity (ed); /* unlink from world */
|
trap_UnlinkEntity (ed); /* unlink from world */
|
||||||
|
|
||||||
|
@ -774,18 +610,6 @@ void G_FreeEntity( gentity_t *ed ) {
|
||||||
ed->inuse = qfalse;
|
ed->inuse = qfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Spawn an temporary entity.
|
|
||||||
*
|
|
||||||
* Spawns an event entity that will be auto-removed
|
|
||||||
* The origin will be snapped to save net bandwidth, so care
|
|
||||||
* must be taken if the origin is right on a surface (snap towards start vector first)
|
|
||||||
*
|
|
||||||
* @param origin the origin
|
|
||||||
* @param event the event to use for this entity
|
|
||||||
*
|
|
||||||
* @return the temporary entity
|
|
||||||
*/
|
|
||||||
gentity_t *G_TempEntity( vec3_t origin, int event ) {
|
gentity_t *G_TempEntity( vec3_t origin, int event ) {
|
||||||
gentity_t *e;
|
gentity_t *e;
|
||||||
vec3_t snapped;
|
vec3_t snapped;
|
||||||
|
@ -817,14 +641,6 @@ Kill box
|
||||||
==============================================================================
|
==============================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Kill all that would be inside a new one.
|
|
||||||
*
|
|
||||||
* Kills all entities that would touch the proposed new positioning
|
|
||||||
* of ent. Ent should be unlinked before calling this!
|
|
||||||
*
|
|
||||||
* @param ent the entity
|
|
||||||
*/
|
|
||||||
void G_KillBox (gentity_t *ent) {
|
void G_KillBox (gentity_t *ent) {
|
||||||
int i, num;
|
int i, num;
|
||||||
int touch[MAX_GENTITIES];
|
int touch[MAX_GENTITIES];
|
||||||
|
@ -848,17 +664,6 @@ void G_KillBox (gentity_t *ent) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \author J2J
|
|
||||||
* \brief Push all entities away that are inside a new entity.
|
|
||||||
*
|
|
||||||
* Basically does teh same as G_KillBox except it will
|
|
||||||
* push players and other entities away instead of killing them.
|
|
||||||
*
|
|
||||||
* @param ent the entity
|
|
||||||
*
|
|
||||||
* @return was an ent moved?
|
|
||||||
*/
|
|
||||||
qboolean G_MoveBox (gentity_t *ent )
|
qboolean G_MoveBox (gentity_t *ent )
|
||||||
{
|
{
|
||||||
int i, num;
|
int i, num;
|
||||||
|
@ -895,17 +700,6 @@ qboolean G_MoveBox (gentity_t *ent )
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Adds a new Predictable event.
|
|
||||||
*
|
|
||||||
* Use for non-pmove events that would also be predicted on the
|
|
||||||
* client side: jumppads and item pickups
|
|
||||||
* Adds an event+parm and twiddles the event counter
|
|
||||||
*
|
|
||||||
* @param ent the entity
|
|
||||||
* @param event the event
|
|
||||||
* @param eventParm any parameters for the event
|
|
||||||
*/
|
|
||||||
void G_AddPredictableEvent( gentity_t *ent, int event, int eventParm ) {
|
void G_AddPredictableEvent( gentity_t *ent, int event, int eventParm ) {
|
||||||
if ( !ent->client ) {
|
if ( !ent->client ) {
|
||||||
return;
|
return;
|
||||||
|
@ -913,16 +707,6 @@ void G_AddPredictableEvent( gentity_t *ent, int event, int eventParm ) {
|
||||||
BG_AddPredictableEventToPlayerstate( event, eventParm, &ent->client->ps );
|
BG_AddPredictableEventToPlayerstate( event, eventParm, &ent->client->ps );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Add a new event.
|
|
||||||
*
|
|
||||||
* Adds an event+parm and twiddles the event counter
|
|
||||||
*
|
|
||||||
* @param ent the entity
|
|
||||||
* @param event the event
|
|
||||||
* @param eventParm parameter for the event
|
|
||||||
*/
|
|
||||||
void G_AddEvent( gentity_t *ent, int event, int eventParm ) {
|
void G_AddEvent( gentity_t *ent, int event, int eventParm ) {
|
||||||
int bits;
|
int bits;
|
||||||
playerState_t *ps = &ent->client->ps;
|
playerState_t *ps = &ent->client->ps;
|
||||||
|
@ -948,15 +732,6 @@ void G_AddEvent( gentity_t *ent, int event, int eventParm ) {
|
||||||
ent->eventTime = level.time;
|
ent->eventTime = level.time;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Makes an entity to play a non looping sound.
|
|
||||||
*
|
|
||||||
* Makes an entity to play a non looping sound.
|
|
||||||
*
|
|
||||||
* @param ent the entity
|
|
||||||
* @param soundIndex the sounds index
|
|
||||||
*/
|
|
||||||
void G_Sound( gentity_t *ent, int soundIndex ) {
|
void G_Sound( gentity_t *ent, int soundIndex ) {
|
||||||
gentity_t *te;
|
gentity_t *te;
|
||||||
|
|
||||||
|
@ -967,15 +742,6 @@ void G_Sound( gentity_t *ent, int soundIndex ) {
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set the Origin of an entity.
|
|
||||||
*
|
|
||||||
* Sets the pos trajectory for a fixed position
|
|
||||||
*
|
|
||||||
* @param ent the entity
|
|
||||||
* @param origin the new origin
|
|
||||||
*/
|
|
||||||
void G_SetOrigin( gentity_t *ent, vec3_t origin ) {
|
void G_SetOrigin( gentity_t *ent, vec3_t origin ) {
|
||||||
// lets try this to fix setting origins for brush ents without origin brush
|
// lets try this to fix setting origins for brush ents without origin brush
|
||||||
VectorCopy(origin, ent->pos1); // needs testing
|
VectorCopy(origin, ent->pos1); // needs testing
|
||||||
|
@ -990,14 +756,6 @@ void G_SetOrigin( gentity_t *ent, vec3_t origin ) {
|
||||||
VectorCopy( origin, ent->s.origin); /* RPG-X | GSIO01 | 24.08.2009 */
|
VectorCopy( origin, ent->s.origin); /* RPG-X | GSIO01 | 24.08.2009 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set the angles of an entity.
|
|
||||||
*
|
|
||||||
* Sets the pos trajectory for a fixed angular position
|
|
||||||
*
|
|
||||||
* @param ent the entity
|
|
||||||
* @param angles the new angles
|
|
||||||
*/
|
|
||||||
void G_SetAngles(gentity_t *ent, vec3_t angles) {
|
void G_SetAngles(gentity_t *ent, vec3_t angles) {
|
||||||
VectorCopy(angles, ent->s.apos.trBase);
|
VectorCopy(angles, ent->s.apos.trBase);
|
||||||
ent->s.apos.trType = TR_STATIONARY;
|
ent->s.apos.trType = TR_STATIONARY;
|
||||||
|
@ -1339,17 +1097,6 @@ gentity_t *G_GetNearestPlayer(vec3_t origin, float radius, list_p ignore ) {
|
||||||
return nearest;
|
return nearest;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \author GSIO01
|
|
||||||
* \brief Get all entities with the specified targetname.
|
|
||||||
*
|
|
||||||
* Get all entities with the specified targetname.
|
|
||||||
*
|
|
||||||
* @param targetname the targetname
|
|
||||||
* @param entities the result
|
|
||||||
*
|
|
||||||
* @return number of entities found
|
|
||||||
*/
|
|
||||||
int G_GetEntityByTargetname(const char *targetname, list_p entities) {
|
int G_GetEntityByTargetname(const char *targetname, list_p entities) {
|
||||||
int i;
|
int i;
|
||||||
gentity_t *t;
|
gentity_t *t;
|
||||||
|
@ -1369,17 +1116,6 @@ int G_GetEntityByTargetname(const char *targetname, list_p entities) {
|
||||||
return entities->length;
|
return entities->length;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \author GSIO01
|
|
||||||
* \brief Get all entities with specified target.
|
|
||||||
*
|
|
||||||
* Get all entities matching the specifie target.
|
|
||||||
*
|
|
||||||
* @param target target the entities should have
|
|
||||||
* @param entities the result
|
|
||||||
*
|
|
||||||
* @return number of matches found
|
|
||||||
*/
|
|
||||||
int G_GetEntityByTarget(const char *target, list_p entities) {
|
int G_GetEntityByTarget(const char *target, list_p entities) {
|
||||||
int i;
|
int i;
|
||||||
gentity_t *t;
|
gentity_t *t;
|
||||||
|
@ -1399,18 +1135,6 @@ int G_GetEntityByTarget(const char *target, list_p entities) {
|
||||||
return entities->length;
|
return entities->length;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \author GSIO01
|
|
||||||
* \brief Get all entities with specified brush model
|
|
||||||
*
|
|
||||||
* Get all entities matching the specified brush model.
|
|
||||||
* Normally this only shoud be one entity.
|
|
||||||
*
|
|
||||||
* @param bmodel brush model to match
|
|
||||||
* @param entities the result
|
|
||||||
*
|
|
||||||
* @return number of matches found
|
|
||||||
*/
|
|
||||||
int G_GetEntityByBmodel(char *bmodel, list_p entities) {
|
int G_GetEntityByBmodel(char *bmodel, list_p entities) {
|
||||||
int i;
|
int i;
|
||||||
gentity_t *t;
|
gentity_t *t;
|
||||||
|
|
|
@ -61,15 +61,6 @@ extern vmCvar_t rpg_photonAltDamage;
|
||||||
#define QUANTUM_ALT_SPLASH_DAM rpg_photonAltDamage.integer
|
#define QUANTUM_ALT_SPLASH_DAM rpg_photonAltDamage.integer
|
||||||
#define QUANTUM_ALT_SPLASH_RAD 80
|
#define QUANTUM_ALT_SPLASH_RAD 80
|
||||||
|
|
||||||
/**
|
|
||||||
Round a vector to integers for more efficient network
|
|
||||||
transmission, but make sure that it rounds towards a given point
|
|
||||||
rather than blindly truncating. This prevents it from truncating
|
|
||||||
into a wall.
|
|
||||||
|
|
||||||
@param v vector to round
|
|
||||||
@param to rounded vector
|
|
||||||
*/
|
|
||||||
void G_Weapon_SnapVectorTowards( vec3_t v, vec3_t to ) {
|
void G_Weapon_SnapVectorTowards( vec3_t v, vec3_t to ) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -1328,13 +1319,6 @@ static void WP_FireQuantumBurst( gentity_t *ent, qboolean alt_fire )
|
||||||
G_LogWeaponFire(ent->s.number, WP_9);
|
G_LogWeaponFire(ent->s.number, WP_9);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Checks wether accuray for this hit should be logged.
|
|
||||||
*
|
|
||||||
* @param target the target entity
|
|
||||||
* @param attacker the attacker entity
|
|
||||||
*/
|
|
||||||
qboolean G_Weapon_LogAccuracyHit( gentity_t *target, gentity_t *attacker ) {
|
qboolean G_Weapon_LogAccuracyHit( gentity_t *target, gentity_t *attacker ) {
|
||||||
if( !target->takedamage ) {
|
if( !target->takedamage ) {
|
||||||
return qfalse;
|
return qfalse;
|
||||||
|
@ -1496,20 +1480,6 @@ static float WP_ShotAltSize[WP_NUM_WEAPONS] =
|
||||||
/* 0,*/ /* WP_7 */
|
/* 0,*/ /* WP_7 */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Calculates the muzzle point.
|
|
||||||
*
|
|
||||||
* Calculates the muzzle point.
|
|
||||||
*
|
|
||||||
* @param ent the player
|
|
||||||
* @param fwd the forward vector
|
|
||||||
* @param rt the right vector
|
|
||||||
* @param vup the up vector
|
|
||||||
* @param muzzlePoint the muzzle point
|
|
||||||
* @param projsize projsize
|
|
||||||
*/
|
|
||||||
void G_Weapon_CalcMuzzlePoint ( gentity_t *ent, vec3_t fwd, vec3_t rt, vec3_t vup, vec3_t muzzlePoint, float projsize)
|
void G_Weapon_CalcMuzzlePoint ( gentity_t *ent, vec3_t fwd, vec3_t rt, vec3_t vup, vec3_t muzzlePoint, float projsize)
|
||||||
{
|
{
|
||||||
int weapontype;
|
int weapontype;
|
||||||
|
@ -1734,14 +1704,6 @@ FireWeapon
|
||||||
#define ACCURACY_TRACKING_DELAY 100 /* in ms */
|
#define ACCURACY_TRACKING_DELAY 100 /* in ms */
|
||||||
#define NUM_FAST_WEAPONS 3
|
#define NUM_FAST_WEAPONS 3
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Fire weapons.
|
|
||||||
*
|
|
||||||
* Handles weapon firing.
|
|
||||||
*
|
|
||||||
* @param ent the player
|
|
||||||
* @param alt_fire was this alt fire mode?
|
|
||||||
*/
|
|
||||||
void FireWeapon( gentity_t *ent, qboolean alt_fire )
|
void FireWeapon( gentity_t *ent, qboolean alt_fire )
|
||||||
{
|
{
|
||||||
float projsize;
|
float projsize;
|
||||||
|
|
Loading…
Reference in a new issue