Compare commits
2 commits
Author | SHA1 | Date | |
---|---|---|---|
|
a8a1ed1116 | ||
|
659a4a3268 |
19 changed files with 152 additions and 65 deletions
Binary file not shown.
Binary file not shown.
|
@ -28,6 +28,9 @@
|
||||||
#define AIRMOVE_THRESHOLD 64
|
#define AIRMOVE_THRESHOLD 64
|
||||||
#define QUICKTURN_RATE (-360.0) // Rotational velocity (degrees/second).
|
#define QUICKTURN_RATE (-360.0) // Rotational velocity (degrees/second).
|
||||||
|
|
||||||
|
qboolean BranchCheckDismemberAction(playerinfo_t *playerinfo, int weapon);
|
||||||
|
|
||||||
|
|
||||||
vec3_t handmins = {-2.0, -2.0, 0},
|
vec3_t handmins = {-2.0, -2.0, 0},
|
||||||
handmaxs = {2.0, 2.0, 2.0};
|
handmaxs = {2.0, 2.0, 2.0};
|
||||||
|
|
||||||
|
@ -2774,13 +2777,15 @@ qboolean PlayerActionCheckVault(playerinfo_t *playerinfo, float value)
|
||||||
|
|
||||||
if (grabfraction < 0.5)
|
if (grabfraction < 0.5)
|
||||||
{
|
{
|
||||||
|
if ( (playerinfo->flags & PLAYER_FLAG_NO_LARM) && (playerinfo->flags & PLAYER_FLAG_NO_RARM) )
|
||||||
|
return false;//can't do half pull up with no arms
|
||||||
|
|
||||||
|
// This is strange, but the VAULT_LOW is actually a high wall vault.
|
||||||
PlayerAnimSetVault(playerinfo, ASEQ_VAULT_LOW);
|
PlayerAnimSetVault(playerinfo, ASEQ_VAULT_LOW);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( (playerinfo->flags & PLAYER_FLAG_NO_LARM) && (playerinfo->flags & PLAYER_FLAG_NO_RARM) )
|
// ...and PULLUP_HALFWALL is just a hop. SO I moved the arm check to the high wall vault.
|
||||||
return false;//can't do half pull up with no arms
|
|
||||||
|
|
||||||
PlayerAnimSetVault(playerinfo, ASEQ_PULLUP_HALFWALL);
|
PlayerAnimSetVault(playerinfo, ASEQ_PULLUP_HALFWALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2862,9 +2867,16 @@ void PlayerActionPushAway(playerinfo_t *playerinfo, float value)
|
||||||
qboolean PlayerActionCheckRopeGrab(playerinfo_t *playerinfo, float stomp_org)
|
qboolean PlayerActionCheckRopeGrab(playerinfo_t *playerinfo, float stomp_org)
|
||||||
{
|
{
|
||||||
if(!playerinfo->isclient)
|
if(!playerinfo->isclient)
|
||||||
return(playerinfo->G_PlayerActionCheckRopeGrab(playerinfo,stomp_org));
|
{ // Check dismemberment before game side rope check.
|
||||||
|
if (playerinfo->flags & PLAYER_FLAG_NO_LARM || playerinfo->flags & PLAYER_FLAG_NO_RARM)
|
||||||
|
return(false);
|
||||||
|
else
|
||||||
|
return(playerinfo->G_PlayerActionCheckRopeGrab(playerinfo,stomp_org));
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
return(false);
|
return(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-----------------------------------------------
|
/*-----------------------------------------------
|
||||||
|
|
|
@ -234,6 +234,52 @@ int CheckSlopedStand (playerinfo_t *playerinfo)
|
||||||
return ASEQ_NONE;
|
return ASEQ_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*-----------------------------------------------
|
||||||
|
BranchCheckDismemberAction
|
||||||
|
-----------------------------------------------*/
|
||||||
|
|
||||||
|
PLAYER_API qboolean BranchCheckDismemberAction(playerinfo_t *playerinfo, int weapon)
|
||||||
|
{
|
||||||
|
//If these nodes are on, then any weapon selection is a valid one
|
||||||
|
if ( (!(playerinfo->flags & PLAYER_FLAG_NO_RARM)) && (!(playerinfo->flags & PLAYER_FLAG_NO_LARM)) )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
//No arm, no shot
|
||||||
|
if (weapon == ITEM_WEAPON_FLYINGFIST)
|
||||||
|
{
|
||||||
|
if (playerinfo->flags & PLAYER_FLAG_NO_RARM)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (weapon == ITEM_WEAPON_MAGICMISSILE || weapon == ITEM_WEAPON_MACEBALLS)
|
||||||
|
{
|
||||||
|
//Powered up is right arm, non-powered is left
|
||||||
|
if (playerinfo->powerup_timer > playerinfo->leveltime)
|
||||||
|
{
|
||||||
|
if (playerinfo->flags & PLAYER_FLAG_NO_RARM)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (playerinfo->flags & PLAYER_FLAG_NO_LARM)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (weapon == ITEM_WEAPON_HELLSTAFF || weapon == ITEM_WEAPON_SWORDSTAFF)
|
||||||
|
{
|
||||||
|
if (playerinfo->flags & PLAYER_FLAG_NO_RARM)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else //Any other weapon will need both hands
|
||||||
|
{
|
||||||
|
if (playerinfo->flags & PLAYER_FLAG_NO_LARM || playerinfo->flags & PLAYER_FLAG_NO_RARM)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Player is able to complete the action
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*-----------------------------------------------
|
/*-----------------------------------------------
|
||||||
ChickenBranchLwrStanding
|
ChickenBranchLwrStanding
|
||||||
-----------------------------------------------*/
|
-----------------------------------------------*/
|
||||||
|
@ -425,7 +471,8 @@ int BranchLwrStanding(playerinfo_t *playerinfo)
|
||||||
if (playerinfo->advancedstaff && // Special move
|
if (playerinfo->advancedstaff && // Special move
|
||||||
playerinfo->seqcmd[ACMDL_ACTION] &&
|
playerinfo->seqcmd[ACMDL_ACTION] &&
|
||||||
playerinfo->pers.weaponready == WEAPON_READY_SWORDSTAFF &&
|
playerinfo->pers.weaponready == WEAPON_READY_SWORDSTAFF &&
|
||||||
playerinfo->seqcmd[ACMDU_ATTACK])
|
playerinfo->seqcmd[ACMDU_ATTACK] &&
|
||||||
|
BranchCheckDismemberAction(playerinfo, ITEM_WEAPON_SWORDSTAFF))
|
||||||
{
|
{
|
||||||
return ASEQ_WSWORD_LOWERDOWNSTAB;
|
return ASEQ_WSWORD_LOWERDOWNSTAB;
|
||||||
}
|
}
|
||||||
|
@ -1860,50 +1907,6 @@ int BranchLwrClimbing(playerinfo_t *playerinfo)
|
||||||
return(ASEQ_NONE);
|
return(ASEQ_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-----------------------------------------------
|
|
||||||
BranchCheckDismemberAction
|
|
||||||
-----------------------------------------------*/
|
|
||||||
|
|
||||||
PLAYER_API qboolean BranchCheckDismemberAction(playerinfo_t *playerinfo, int weapon)
|
|
||||||
{
|
|
||||||
//If these nodes are on, then any weapon selection is a valid one
|
|
||||||
if ( (!(playerinfo->flags & PLAYER_FLAG_NO_RARM)) && (!(playerinfo->flags & PLAYER_FLAG_NO_LARM)) )
|
|
||||||
return true;
|
|
||||||
|
|
||||||
//No arm, no shot
|
|
||||||
if (weapon == ITEM_WEAPON_FLYINGFIST)
|
|
||||||
{
|
|
||||||
if (playerinfo->flags & PLAYER_FLAG_NO_RARM)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if (weapon == ITEM_WEAPON_MAGICMISSILE || weapon == ITEM_WEAPON_MACEBALLS)
|
|
||||||
{
|
|
||||||
//Powered up is right arm, non-powered is left
|
|
||||||
if (playerinfo->powerup_timer > playerinfo->leveltime)
|
|
||||||
{
|
|
||||||
if (playerinfo->flags & PLAYER_FLAG_NO_RARM)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (playerinfo->flags & PLAYER_FLAG_NO_LARM)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (weapon == ITEM_WEAPON_HELLSTAFF || weapon == ITEM_WEAPON_SWORDSTAFF)
|
|
||||||
{
|
|
||||||
if (playerinfo->flags & PLAYER_FLAG_NO_RARM)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else //Any other weapon will need both hands
|
|
||||||
{
|
|
||||||
if (playerinfo->flags & PLAYER_FLAG_NO_LARM || playerinfo->flags & PLAYER_FLAG_NO_RARM)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Player is able to complete the action
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*-----------------------------------------------
|
/*-----------------------------------------------
|
||||||
BranchUprReadyHands
|
BranchUprReadyHands
|
||||||
|
|
|
@ -2447,14 +2447,14 @@ panimframe_t player_frames_stafflowerdownstab [] =
|
||||||
FRAME_spikedwn5, PlayerMoveFunc, 25*UNJH_VALUE, 0, 0, NULL, 0, NULL,
|
FRAME_spikedwn5, PlayerMoveFunc, 25*UNJH_VALUE, 0, 0, NULL, 0, NULL,
|
||||||
FRAME_spikedwn6, NULL, 0, 0, 0, NULL, 0, NULL,
|
FRAME_spikedwn6, NULL, 0, 0, 0, NULL, 0, NULL,
|
||||||
FRAME_spikedwn7, NULL, 0, 0, 0, PlayerActionSwordAttack, 21, NULL,
|
FRAME_spikedwn7, NULL, 0, 0, 0, PlayerActionSwordAttack, 21, NULL,
|
||||||
FRAME_spikedwn8, NULL, 0, 0, 0, PlayerActionSwordAttack, 21, NULL,
|
FRAME_spikedwn8, NULL, 0, 0, 0, PlayerActionSwordAttack, 22, NULL,
|
||||||
};
|
};
|
||||||
panimmove_t player_move_stafflowerdownstab = {8, player_frames_stafflowerdownstab, PlayerAnimLowerUpdate};
|
panimmove_t player_move_stafflowerdownstab = {8, player_frames_stafflowerdownstab, PlayerAnimLowerUpdate};
|
||||||
|
|
||||||
// Pull staff out after stab
|
// Pull staff out after stab
|
||||||
panimframe_t player_frames_stafflowerpullout [] =
|
panimframe_t player_frames_stafflowerpullout [] =
|
||||||
{
|
{
|
||||||
FRAME_pullout1, NULL, 0, 0, 0, PlayerActionSwordAttack, 21, NULL,
|
FRAME_pullout1, NULL, 0, 0, 0, PlayerActionSwordAttack, 22, NULL,
|
||||||
FRAME_pullout2, NULL, 0, 0, 0, NULL, 0, NULL,
|
FRAME_pullout2, NULL, 0, 0, 0, NULL, 0, NULL,
|
||||||
FRAME_pullout3, NULL, 0, 0, 0, NULL, 0, NULL,
|
FRAME_pullout3, NULL, 0, 0, 0, NULL, 0, NULL,
|
||||||
FRAME_pullout4, NULL, 0, 0, 0, NULL, 0, NULL,
|
FRAME_pullout4, NULL, 0, 0, 0, NULL, 0, NULL,
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
|
|
||||||
///// IMPORTANT !!! THIS IS THE STRING THAT DETERMINES IF YOU CAN JOIN A SERVER - IE YOU HAVE THE RIGHT CLIENT EFFECTS DLL
|
///// IMPORTANT !!! THIS IS THE STRING THAT DETERMINES IF YOU CAN JOIN A SERVER - IE YOU HAVE THE RIGHT CLIENT EFFECTS DLL
|
||||||
char *client_string = {"Heretic II v1.04"};
|
char *client_string = {"Heretic II v1.06"};
|
||||||
|
|
||||||
client_fx_import_t fxi;
|
client_fx_import_t fxi;
|
||||||
|
|
||||||
|
|
|
@ -813,18 +813,19 @@ qboolean ValidItem(gitem_t *item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((item->tag == ITEM_DEFENSE_TORNADO) && (no_tornado->value))
|
if ((item->flags & IT_DEFENSE) && (item->tag == ITEM_DEFENSE_TORNADO) && (no_tornado->value))
|
||||||
return false;
|
return false;
|
||||||
else if ((item->tag == ITEM_DEFENSE_POLYMORPH) && (no_morph->value))
|
else if ((item->flags & IT_DEFENSE) && (item->tag == ITEM_DEFENSE_POLYMORPH) && (no_morph->value))
|
||||||
return false;
|
return false;
|
||||||
else if ((item->tag == ITEM_DEFENSE_SHIELD) && (no_shield->value))
|
else if ((item->flags & IT_DEFENSE) && (item->tag == ITEM_DEFENSE_SHIELD) && (no_shield->value))
|
||||||
return false;
|
return false;
|
||||||
else if ((item->tag == ITEM_DEFENSE_TELEPORT) && (no_teleport->value))
|
else if ((item->flags & IT_DEFENSE) && (item->tag == ITEM_DEFENSE_TELEPORT) && (no_teleport->value))
|
||||||
return false;
|
return false;
|
||||||
else if ((item->tag == ITEM_WEAPON_PHOENIXBOW) && (no_phoenix->value))
|
else if ((item->flags & IT_OFFENSE) && (item->tag == ITEM_WEAPON_PHOENIXBOW) && (no_phoenix->value))
|
||||||
return false;
|
return false;
|
||||||
else if ((item->tag == ITEM_WEAPON_MACEBALLS) && (no_irondoom->value))
|
else if ((item->flags & IT_OFFENSE) && (item->tag == ITEM_WEAPON_MACEBALLS) && (no_irondoom->value))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if DEMO_CODE
|
#if DEMO_CODE
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
#if DEMO_CODE
|
#if DEMO_CODE
|
||||||
#define GAMEVERSION "Heretic2Dmo"
|
#define GAMEVERSION "Heretic2Dmo"
|
||||||
#else
|
#else
|
||||||
#define GAMEVERSION "Heretic2v14"
|
#define GAMEVERSION "Heretic2v16"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Protocol bytes that can be directly added to messages.
|
// Protocol bytes that can be directly added to messages.
|
||||||
|
@ -837,6 +837,7 @@ extern cvar_t *monster_speeds;
|
||||||
extern cvar_t *pvs_cull;
|
extern cvar_t *pvs_cull;
|
||||||
|
|
||||||
extern cvar_t *game_test; // sfs--for testing the speed impact of code changes
|
extern cvar_t *game_test; // sfs--for testing the speed impact of code changes
|
||||||
|
extern cvar_t *dm_no_bodies;
|
||||||
|
|
||||||
extern cvar_t *player_dll;
|
extern cvar_t *player_dll;
|
||||||
|
|
||||||
|
|
|
@ -101,6 +101,7 @@ cvar_t *no_shield;
|
||||||
cvar_t *no_teleport;
|
cvar_t *no_teleport;
|
||||||
|
|
||||||
cvar_t *game_test;
|
cvar_t *game_test;
|
||||||
|
cvar_t *dm_no_bodies;
|
||||||
|
|
||||||
cvar_t *player_dll;
|
cvar_t *player_dll;
|
||||||
|
|
||||||
|
|
|
@ -3396,6 +3396,9 @@ void SP_obj_shrine (edict_t *self)
|
||||||
++self->style;
|
++self->style;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// make sure we always send the model
|
||||||
|
self->s.effects |= EF_ALWAYS_ADD_EFFECTS;
|
||||||
|
|
||||||
// make the ball appear in the middle
|
// make the ball appear in the middle
|
||||||
VectorScale(self->s.angles, ANGLE_TO_RAD, offset);
|
VectorScale(self->s.angles, ANGLE_TO_RAD, offset);
|
||||||
DirFromAngles(offset, offset2);
|
DirFromAngles(offset, offset2);
|
||||||
|
|
|
@ -367,6 +367,7 @@ void InitGame (void)
|
||||||
log_file_line_header = gi.cvar("log_file_line_header", "", CVAR_ARCHIVE);
|
log_file_line_header = gi.cvar("log_file_line_header", "", CVAR_ARCHIVE);
|
||||||
|
|
||||||
blood_level = gi.cvar ("blood_level", VIOLENCE_DEFAULT_STR, CVAR_ARCHIVE);
|
blood_level = gi.cvar ("blood_level", VIOLENCE_DEFAULT_STR, CVAR_ARCHIVE);
|
||||||
|
dm_no_bodies = gi.cvar ("dm_no_bodies", "0", CVAR_ARCHIVE);
|
||||||
|
|
||||||
gi.cvar("flash_screen", "1", 0);
|
gi.cvar("flash_screen", "1", 0);
|
||||||
|
|
||||||
|
|
52
Toolkit/Programming/GameCode/game/game.plg
Normal file
52
Toolkit/Programming/GameCode/game/game.plg
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<pre>
|
||||||
|
<h1>Build Log</h1>
|
||||||
|
<h3>
|
||||||
|
--------------------Configuration: Player - Win32 Debug--------------------
|
||||||
|
</h3>
|
||||||
|
<h3>Command Lines</h3>
|
||||||
|
Creating temporary file "C:\WINDOWS\TEMP\RSP50B3.TMP" with contents
|
||||||
|
[
|
||||||
|
/nologo /MTd /W3 /Gm /Gi /ZI /Od /I "../qcommon" /I "../game" /I "../client" /I "../server" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "PLAYER_DLL" /D "_DEVEL" /FR".\Debug/" /Fp".\Debug/Player.pch" /YX /Fo".\Debug/" /Fd".\Debug/" /FD /c
|
||||||
|
"C:\heretic2\code\Player\p_actions.c"
|
||||||
|
]
|
||||||
|
Creating command line "cl.exe @C:\WINDOWS\TEMP\RSP50B3.TMP"
|
||||||
|
Creating temporary file "C:\WINDOWS\TEMP\RSP50B4.TMP" with contents
|
||||||
|
[
|
||||||
|
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib H2Common.lib /nologo /base:"0x110d0000" /version:1.0 /subsystem:windows /dll /incremental:yes /pdb:"../Debug/Player.pdb" /debug /machine:I386 /out:"../Debug/Player.dll" /implib:"../Debug/Player.lib" /pdbtype:sept /libpath:"..\Debug"
|
||||||
|
.\Debug\main.obj
|
||||||
|
.\Debug\p_actions.obj
|
||||||
|
.\Debug\p_anim_branch.obj
|
||||||
|
.\Debug\p_anim_data.obj
|
||||||
|
.\Debug\p_animactor.obj
|
||||||
|
.\Debug\p_anims.obj
|
||||||
|
.\Debug\p_chicken.obj
|
||||||
|
.\Debug\p_chicken_anim.obj
|
||||||
|
.\Debug\p_ctrl.obj
|
||||||
|
.\Debug\p_items.obj
|
||||||
|
.\Debug\p_main.obj
|
||||||
|
.\Debug\p_weapon.obj
|
||||||
|
\heretic2\code\Debug\H2Common.lib
|
||||||
|
]
|
||||||
|
Creating command line "link.exe @C:\WINDOWS\TEMP\RSP50B4.TMP"
|
||||||
|
<h3>Output Window</h3>
|
||||||
|
Compiling...
|
||||||
|
p_actions.c
|
||||||
|
Linking...
|
||||||
|
<h3>
|
||||||
|
--------------------Configuration: quake2 - Win32 Debug--------------------
|
||||||
|
</h3>
|
||||||
|
<h3>Command Lines</h3>
|
||||||
|
<h3>
|
||||||
|
--------------------Configuration: game - Win32 Debug--------------------
|
||||||
|
</h3>
|
||||||
|
<h3>Command Lines</h3>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Results</h3>
|
||||||
|
gamex86.dll - 0 error(s), 0 warning(s)
|
||||||
|
</pre>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -1714,7 +1714,7 @@ void respawn (edict_t *self)
|
||||||
{
|
{
|
||||||
// FIXME: make bodyque objects obey gravity.
|
// FIXME: make bodyque objects obey gravity.
|
||||||
|
|
||||||
if(!(self->flags & FL_CHICKEN))
|
if(!(self->flags & FL_CHICKEN) && !((int)dm_no_bodies->value))
|
||||||
{
|
{
|
||||||
// We're not set as a chicken, so duplicate ourselves.
|
// We're not set as a chicken, so duplicate ourselves.
|
||||||
|
|
||||||
|
|
|
@ -115,6 +115,10 @@ enum FeatureTypes
|
||||||
#define ROTATE_SIGNALER 0x04
|
#define ROTATE_SIGNALER 0x04
|
||||||
#define ROTATE_ABSOLUTE 0x08
|
#define ROTATE_ABSOLUTE 0x08
|
||||||
|
|
||||||
|
|
||||||
|
// MoveRotate (disk-file command)
|
||||||
|
#define MOVEROTATE_SIGNALER 0x01
|
||||||
|
|
||||||
// Wait
|
// Wait
|
||||||
#define WAIT_CLEAR 0x80
|
#define WAIT_CLEAR 0x80
|
||||||
|
|
||||||
|
|
|
@ -803,8 +803,8 @@ typedef struct
|
||||||
#define CS_LIGHTS (CS_IMAGES+MAX_IMAGES)
|
#define CS_LIGHTS (CS_IMAGES+MAX_IMAGES)
|
||||||
#define CS_ITEMS (CS_LIGHTS+MAX_LIGHTSTYLES)
|
#define CS_ITEMS (CS_LIGHTS+MAX_LIGHTSTYLES)
|
||||||
#define CS_PLAYERSKINS (CS_ITEMS+MAX_ITEMS)
|
#define CS_PLAYERSKINS (CS_ITEMS+MAX_ITEMS)
|
||||||
#define CS_WELCOME (CS_PLAYERSKINS+MAX_CLIENTS)
|
#define CS_WELCOME (CS_PLAYERSKINS+MAX_CLIENTS) // give us 4 welcome string messages so we can have a total of 256 characters per message
|
||||||
#define MAX_CONFIGSTRINGS CS_WELCOME + 1
|
#define MAX_CONFIGSTRINGS CS_WELCOME + 4
|
||||||
|
|
||||||
// ************************************************************************************************
|
// ************************************************************************************************
|
||||||
// EffectsBuffer_t
|
// EffectsBuffer_t
|
||||||
|
|
|
@ -143,6 +143,7 @@ void SpellCastDropTornado(edict_t *caster, vec3_t startpos, vec3_t aimangles, ve
|
||||||
|
|
||||||
// use the speed active ef_flag to tell the client effect when the effect is over
|
// use the speed active ef_flag to tell the client effect when the effect is over
|
||||||
tornado->s.effects |= EF_ALWAYS_ADD_EFFECTS ;
|
tornado->s.effects |= EF_ALWAYS_ADD_EFFECTS ;
|
||||||
|
tornado->svflags |= SVF_ALWAYS_SEND;
|
||||||
tornado->solid = SOLID_NOT;
|
tornado->solid = SOLID_NOT;
|
||||||
tornado->clipmask = MASK_SOLID;
|
tornado->clipmask = MASK_SOLID;
|
||||||
tornado->targetEnt = caster;
|
tornado->targetEnt = caster;
|
||||||
|
|
BIN
Toolkit/Programming/GameCode/heretic2mods.ncb
Normal file
BIN
Toolkit/Programming/GameCode/heretic2mods.ncb
Normal file
Binary file not shown.
BIN
Toolkit/Programming/GameCode/heretic2mods.opt
Normal file
BIN
Toolkit/Programming/GameCode/heretic2mods.opt
Normal file
Binary file not shown.
|
@ -9,9 +9,9 @@
|
||||||
#define BASEDIRNAME "base"
|
#define BASEDIRNAME "base"
|
||||||
|
|
||||||
#define VERSION_MAJOR "1"
|
#define VERSION_MAJOR "1"
|
||||||
#define VERSION_MINOR "04"
|
#define VERSION_MINOR "06"
|
||||||
#define VERSION_LOCAL "01"
|
#define VERSION_LOCAL "01"
|
||||||
#define VERSION_DATE "0309"
|
#define VERSION_DATE "0504"
|
||||||
#define VERSION_ITERATION "01"
|
#define VERSION_ITERATION "01"
|
||||||
|
|
||||||
#define VERSIONDISP (VERSION_MAJOR"."VERSION_MINOR)
|
#define VERSIONDISP (VERSION_MAJOR"."VERSION_MINOR)
|
||||||
|
@ -23,6 +23,8 @@
|
||||||
#define GAME_DECLSPEC __declspec(dllimport)
|
#define GAME_DECLSPEC __declspec(dllimport)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define NO_BLOOD 0
|
||||||
|
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
|
||||||
|
@ -155,7 +157,7 @@ PROTOCOL
|
||||||
|
|
||||||
// protocol.h -- communications protocols
|
// protocol.h -- communications protocols
|
||||||
|
|
||||||
#define PROTOCOL_VERSION 50
|
#define PROTOCOL_VERSION 51
|
||||||
|
|
||||||
//=========================================
|
//=========================================
|
||||||
|
|
||||||
|
@ -884,6 +886,12 @@ extern cvar_t *host_speeds;
|
||||||
extern cvar_t *log_stats;
|
extern cvar_t *log_stats;
|
||||||
extern cvar_t *player_dll;
|
extern cvar_t *player_dll;
|
||||||
|
|
||||||
|
extern cvar_t *allow_download;
|
||||||
|
extern cvar_t *allow_download_maps;
|
||||||
|
extern cvar_t *allow_download_players;
|
||||||
|
extern cvar_t *allow_download_models;
|
||||||
|
extern cvar_t *allow_download_sounds;
|
||||||
|
|
||||||
extern FILE *log_stats_file;
|
extern FILE *log_stats_file;
|
||||||
|
|
||||||
// host_speeds times
|
// host_speeds times
|
||||||
|
|
Loading…
Reference in a new issue