Compare commits

..

No commits in common. "master" and "v1.04" have entirely different histories.

19 changed files with 65 additions and 152 deletions

View File

@ -28,9 +28,6 @@
#define AIRMOVE_THRESHOLD 64
#define QUICKTURN_RATE (-360.0) // Rotational velocity (degrees/second).
qboolean BranchCheckDismemberAction(playerinfo_t *playerinfo, int weapon);
vec3_t handmins = {-2.0, -2.0, 0},
handmaxs = {2.0, 2.0, 2.0};
@ -2777,15 +2774,13 @@ qboolean PlayerActionCheckVault(playerinfo_t *playerinfo, float value)
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);
}
else
{
// ...and PULLUP_HALFWALL is just a hop. SO I moved the arm check to the high wall vault.
if ( (playerinfo->flags & PLAYER_FLAG_NO_LARM) && (playerinfo->flags & PLAYER_FLAG_NO_RARM) )
return false;//can't do half pull up with no arms
PlayerAnimSetVault(playerinfo, ASEQ_PULLUP_HALFWALL);
}
@ -2867,16 +2862,9 @@ void PlayerActionPushAway(playerinfo_t *playerinfo, float value)
qboolean PlayerActionCheckRopeGrab(playerinfo_t *playerinfo, float stomp_org)
{
if(!playerinfo->isclient)
{ // 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));
}
return(playerinfo->G_PlayerActionCheckRopeGrab(playerinfo,stomp_org));
else
{
return(false);
}
}
/*-----------------------------------------------

View File

@ -234,52 +234,6 @@ int CheckSlopedStand (playerinfo_t *playerinfo)
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
-----------------------------------------------*/
@ -471,8 +425,7 @@ int BranchLwrStanding(playerinfo_t *playerinfo)
if (playerinfo->advancedstaff && // Special move
playerinfo->seqcmd[ACMDL_ACTION] &&
playerinfo->pers.weaponready == WEAPON_READY_SWORDSTAFF &&
playerinfo->seqcmd[ACMDU_ATTACK] &&
BranchCheckDismemberAction(playerinfo, ITEM_WEAPON_SWORDSTAFF))
playerinfo->seqcmd[ACMDU_ATTACK])
{
return ASEQ_WSWORD_LOWERDOWNSTAB;
}
@ -1907,6 +1860,50 @@ int BranchLwrClimbing(playerinfo_t *playerinfo)
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

View File

@ -2447,14 +2447,14 @@ panimframe_t player_frames_stafflowerdownstab [] =
FRAME_spikedwn5, PlayerMoveFunc, 25*UNJH_VALUE, 0, 0, NULL, 0, NULL,
FRAME_spikedwn6, NULL, 0, 0, 0, NULL, 0, NULL,
FRAME_spikedwn7, NULL, 0, 0, 0, PlayerActionSwordAttack, 21, NULL,
FRAME_spikedwn8, NULL, 0, 0, 0, PlayerActionSwordAttack, 22, NULL,
FRAME_spikedwn8, NULL, 0, 0, 0, PlayerActionSwordAttack, 21, NULL,
};
panimmove_t player_move_stafflowerdownstab = {8, player_frames_stafflowerdownstab, PlayerAnimLowerUpdate};
// Pull staff out after stab
panimframe_t player_frames_stafflowerpullout [] =
{
FRAME_pullout1, NULL, 0, 0, 0, PlayerActionSwordAttack, 22, NULL,
FRAME_pullout1, NULL, 0, 0, 0, PlayerActionSwordAttack, 21, NULL,
FRAME_pullout2, 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,

View File

@ -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
char *client_string = {"Heretic II v1.06"};
char *client_string = {"Heretic II v1.04"};
client_fx_import_t fxi;

View File

@ -813,19 +813,18 @@ qboolean ValidItem(gitem_t *item)
}
}
if ((item->flags & IT_DEFENSE) && (item->tag == ITEM_DEFENSE_TORNADO) && (no_tornado->value))
if ((item->tag == ITEM_DEFENSE_TORNADO) && (no_tornado->value))
return false;
else if ((item->flags & IT_DEFENSE) && (item->tag == ITEM_DEFENSE_POLYMORPH) && (no_morph->value))
else if ((item->tag == ITEM_DEFENSE_POLYMORPH) && (no_morph->value))
return false;
else if ((item->flags & IT_DEFENSE) && (item->tag == ITEM_DEFENSE_SHIELD) && (no_shield->value))
else if ((item->tag == ITEM_DEFENSE_SHIELD) && (no_shield->value))
return false;
else if ((item->flags & IT_DEFENSE) && (item->tag == ITEM_DEFENSE_TELEPORT) && (no_teleport->value))
else if ((item->tag == ITEM_DEFENSE_TELEPORT) && (no_teleport->value))
return false;
else if ((item->flags & IT_OFFENSE) && (item->tag == ITEM_WEAPON_PHOENIXBOW) && (no_phoenix->value))
else if ((item->tag == ITEM_WEAPON_PHOENIXBOW) && (no_phoenix->value))
return false;
else if ((item->flags & IT_OFFENSE) && (item->tag == ITEM_WEAPON_MACEBALLS) && (no_irondoom->value))
else if ((item->tag == ITEM_WEAPON_MACEBALLS) && (no_irondoom->value))
return false;
}
#if DEMO_CODE

View File

@ -27,7 +27,7 @@
#if DEMO_CODE
#define GAMEVERSION "Heretic2Dmo"
#else
#define GAMEVERSION "Heretic2v16"
#define GAMEVERSION "Heretic2v14"
#endif
// Protocol bytes that can be directly added to messages.
@ -837,7 +837,6 @@ extern cvar_t *monster_speeds;
extern cvar_t *pvs_cull;
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;

View File

@ -101,7 +101,6 @@ cvar_t *no_shield;
cvar_t *no_teleport;
cvar_t *game_test;
cvar_t *dm_no_bodies;
cvar_t *player_dll;

View File

@ -3396,9 +3396,6 @@ void SP_obj_shrine (edict_t *self)
++self->style;
}
// make sure we always send the model
self->s.effects |= EF_ALWAYS_ADD_EFFECTS;
// make the ball appear in the middle
VectorScale(self->s.angles, ANGLE_TO_RAD, offset);
DirFromAngles(offset, offset2);

View File

@ -367,7 +367,6 @@ void InitGame (void)
log_file_line_header = gi.cvar("log_file_line_header", "", 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);

View File

@ -1,52 +0,0 @@
<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>

View File

@ -1714,7 +1714,7 @@ void respawn (edict_t *self)
{
// FIXME: make bodyque objects obey gravity.
if(!(self->flags & FL_CHICKEN) && !((int)dm_no_bodies->value))
if(!(self->flags & FL_CHICKEN))
{
// We're not set as a chicken, so duplicate ourselves.

View File

@ -115,10 +115,6 @@ enum FeatureTypes
#define ROTATE_SIGNALER 0x04
#define ROTATE_ABSOLUTE 0x08
// MoveRotate (disk-file command)
#define MOVEROTATE_SIGNALER 0x01
// Wait
#define WAIT_CLEAR 0x80

View File

@ -803,8 +803,8 @@ typedef struct
#define CS_LIGHTS (CS_IMAGES+MAX_IMAGES)
#define CS_ITEMS (CS_LIGHTS+MAX_LIGHTSTYLES)
#define CS_PLAYERSKINS (CS_ITEMS+MAX_ITEMS)
#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 + 4
#define CS_WELCOME (CS_PLAYERSKINS+MAX_CLIENTS)
#define MAX_CONFIGSTRINGS CS_WELCOME + 1
// ************************************************************************************************
// EffectsBuffer_t

View File

@ -143,7 +143,6 @@ 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
tornado->s.effects |= EF_ALWAYS_ADD_EFFECTS ;
tornado->svflags |= SVF_ALWAYS_SEND;
tornado->solid = SOLID_NOT;
tornado->clipmask = MASK_SOLID;
tornado->targetEnt = caster;

View File

@ -9,9 +9,9 @@
#define BASEDIRNAME "base"
#define VERSION_MAJOR "1"
#define VERSION_MINOR "06"
#define VERSION_MINOR "04"
#define VERSION_LOCAL "01"
#define VERSION_DATE "0504"
#define VERSION_DATE "0309"
#define VERSION_ITERATION "01"
#define VERSIONDISP (VERSION_MAJOR"."VERSION_MINOR)
@ -23,8 +23,6 @@
#define GAME_DECLSPEC __declspec(dllimport)
#endif
#define NO_BLOOD 0
#ifdef WIN32
@ -157,7 +155,7 @@ PROTOCOL
// protocol.h -- communications protocols
#define PROTOCOL_VERSION 51
#define PROTOCOL_VERSION 50
//=========================================
@ -886,12 +884,6 @@ extern cvar_t *host_speeds;
extern cvar_t *log_stats;
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;
// host_speeds times