Rebase step 4. Fix compiling errors.

This commit is contained in:
Alibek Omarov 2024-04-03 22:33:24 +03:00
parent 05f671697a
commit acbb427288
32 changed files with 191 additions and 143 deletions

View File

@ -77,11 +77,13 @@ set (CLDLL_SOURCES
../dlls/squeakgrenade.cpp ../dlls/squeakgrenade.cpp
../dlls/tripmine.cpp ../dlls/tripmine.cpp
../dlls/glock.cpp ../dlls/glock.cpp
../dlls/vorti.cpp
ev_hldm.cpp ev_hldm.cpp
hl/hl_baseentity.cpp hl/hl_baseentity.cpp
hl/hl_events.cpp hl/hl_events.cpp
hl/hl_objects.cpp hl/hl_objects.cpp
hl/hl_weapons.cpp hl/hl_weapons.cpp
aliencrosshair.cpp
ammo.cpp ammo.cpp
ammo_secondary.cpp ammo_secondary.cpp
ammohistory.cpp ammohistory.cpp
@ -132,12 +134,14 @@ if (USE_VGUI)
vgui_ConsolePanel.cpp vgui_ConsolePanel.cpp
vgui_ControlConfigPanel.cpp vgui_ControlConfigPanel.cpp
vgui_CustomObjects.cpp vgui_CustomObjects.cpp
vgui_DecaySparePlayer.cpp
vgui_MOTDWindow.cpp vgui_MOTDWindow.cpp
vgui_SchemeManager.cpp vgui_SchemeManager.cpp
vgui_ScorePanel.cpp vgui_ScorePanel.cpp
vgui_TeamFortressViewport.cpp vgui_TeamFortressViewport.cpp
vgui_SpectatorPanel.cpp vgui_SpectatorPanel.cpp
vgui_teammenu.cpp vgui_teammenu.cpp
vgui_notepad.cpp
voice_status.cpp voice_status.cpp
../game_shared/vgui_checkbutton2.cpp ../game_shared/vgui_checkbutton2.cpp
../game_shared/vgui_grid.cpp ../game_shared/vgui_grid.cpp

View File

@ -311,14 +311,6 @@ redraw the HUD.
int DLLEXPORT HUD_Redraw( float time, int intermission ) int DLLEXPORT HUD_Redraw( float time, int intermission )
{ {
// check if we are in OpenGl mode
if (IEngineStudio.IsHardware() == 1)
{
//RenderScreenGlow(); // SCREEN GLOW
if (gHUD.m_iCamMode == CAM_ON)
RenderCameraEffect();
}
gHUD.Redraw( time, intermission ); gHUD.Redraw( time, intermission );
return 1; return 1;

View File

@ -204,8 +204,8 @@ void CHudHealth::DrawAlienHealthBar( void )
rc = *m_prc2; rc = *m_prc2;
//rc.top += m_iHeight * ((float)(100-(min(100,m_iHealth))) * 0.01); // battery can go from 0 to 100 so * 0.01 goes from 0 to 1 //rc.top += m_iHeight * ((float)(100-(min(100,m_iHealth))) * 0.01); // battery can go from 0 to 100 so * 0.01 goes from 0 to 1
rc.left += m_iWidth * ((float)(100-(min(100,m_iHealth))) * 0.005); // battery can go from 0 to 100 so * 0.01 goes from 0 to 1 rc.left += m_iWidth * ((float)(100-(Q_min(100,m_iHealth))) * 0.005); // battery can go from 0 to 100 so * 0.01 goes from 0 to 1
rc.right -= m_iWidth * ((float)(100-(min(100,m_iHealth))) * 0.005); // battery can go from 0 to 100 so * 0.01 goes from 0 to 1 rc.right -= m_iWidth * ((float)(100-(Q_min(100,m_iHealth))) * 0.005); // battery can go from 0 to 100 so * 0.01 goes from 0 to 1
//UnpackRGB(r,g,b, gHUD.uColor); //UnpackRGB(r,g,b, gHUD.uColor);
r = 180; r = 180;

View File

@ -705,7 +705,7 @@ public:
int _cdecl MsgFunc_Concuss( const char *pszName, int iSize, void *pbuf ); int _cdecl MsgFunc_Concuss( const char *pszName, int iSize, void *pbuf );
int _cdecl MsgFunc_LensFlare( const char *pszName, int iSize, void *pbuf ); int _cdecl MsgFunc_LensFlare( const char *pszName, int iSize, void *pbuf );
int _cdecl MsgFunc_AimFrame( const char *pszName, int iSize, void *pbuf ); int _cdecl MsgFunc_AimFrame( const char *pszName, int iSize, void *pbuf );
int _cdecl MsgFunc_Camera( const char *pszName, int iSize, void *pbuf ); void _cdecl MsgFunc_Camera( const char *pszName, int iSize, void *pbuf );
int _cdecl MsgFunc_ChangePlayer( const char *pszName, int iSize, void *pbuf ); int _cdecl MsgFunc_ChangePlayer( const char *pszName, int iSize, void *pbuf );
// Screen information // Screen information

View File

@ -37,7 +37,7 @@ int CHudMessage::Init( void )
HOOK_MESSAGE( HudText ); HOOK_MESSAGE( HudText );
HOOK_MESSAGE( GameTitle ); HOOK_MESSAGE( GameTitle );
iFlags |= HUD_ALIEN; m_iFlags |= HUD_ALIEN;
gHUD.AddHudElem( this ); gHUD.AddHudElem( this );

View File

@ -5,8 +5,6 @@
// $NoKeywords: $ // $NoKeywords: $
//============================================================================= //=============================================================================
#include <windows.h>
//#include <gl/gl.h>
#include "hud.h" #include "hud.h"
#include "cl_util.h" #include "cl_util.h"

View File

@ -424,12 +424,14 @@ void V_CalcNormalRefdef( struct ref_params_s *pparams )
cl_entity_t *pwater; cl_entity_t *pwater;
// SKY START // SKY START
static struct model_t *savedviewmodel; static model_t *savedviewmodel;
//LRC - if this is the second pass through, then we've just drawn the sky, and now we're setting up the normal view. //LRC - if this is the second pass through, then we've just drawn the sky, and now we're setting up the normal view.
if( pparams->nextView == 1 ) if( pparams->nextView == 1 )
{ {
GrabCameraTexture(); // a1ba: as whole custom rendering code is commented out in original
// it wasn't merged here
// GrabCameraTexture();
view = gEngfuncs.GetViewModel(); view = gEngfuncs.GetViewModel();
view->model = savedviewmodel; view->model = savedviewmodel;
pparams->viewangles[0] = v_angles.x; pparams->viewangles[0] = v_angles.x;

View File

@ -89,7 +89,8 @@ def build(bld):
'dlls/satchel.cpp', 'dlls/satchel.cpp',
'dlls/shotgun.cpp', 'dlls/shotgun.cpp',
'dlls/squeakgrenade.cpp', 'dlls/squeakgrenade.cpp',
'dlls/tripmine.cpp' 'dlls/tripmine.cpp',
'dlls/vorti.cpp',
]) ])

View File

@ -45,9 +45,11 @@ else()
endif() endif()
set (SVDLL_SOURCES set (SVDLL_SOURCES
actanimating.cpp
agrunt.cpp agrunt.cpp
airtank.cpp airtank.cpp
aflock.cpp aflock.cpp
alienflyer.cpp
animating.cpp animating.cpp
animation.cpp animation.cpp
apache.cpp apache.cpp
@ -56,6 +58,8 @@ set (SVDLL_SOURCES
bigmomma.cpp bigmomma.cpp
bloater.cpp bloater.cpp
bmodels.cpp bmodels.cpp
bot.cpp
bot_combat.cpp
bullsquid.cpp bullsquid.cpp
buttons.cpp buttons.cpp
cbase.cpp cbase.cpp
@ -64,7 +68,9 @@ set (SVDLL_SOURCES
controller.cpp controller.cpp
crossbow.cpp crossbow.cpp
crowbar.cpp crowbar.cpp
decay_gamerules.cpp
defaultai.cpp defaultai.cpp
displacer.cpp
doors.cpp doors.cpp
effects.cpp effects.cpp
egon.cpp egon.cpp
@ -100,6 +106,7 @@ set (SVDLL_SOURCES
leech.cpp leech.cpp
lights.cpp lights.cpp
maprules.cpp maprules.cpp
modeltrain.cpp
monstermaker.cpp monstermaker.cpp
monsters.cpp monsters.cpp
monsterstate.cpp monsterstate.cpp
@ -108,6 +115,7 @@ set (SVDLL_SOURCES
multiplay_gamerules.cpp multiplay_gamerules.cpp
nihilanth.cpp nihilanth.cpp
nodes.cpp nodes.cpp
notepad.cpp
observer.cpp observer.cpp
osprey.cpp osprey.cpp
pathcorner.cpp pathcorner.cpp
@ -115,6 +123,7 @@ set (SVDLL_SOURCES
plats.cpp plats.cpp
player.cpp player.cpp
playermonster.cpp playermonster.cpp
priest.cpp
python.cpp python.cpp
rat.cpp rat.cpp
roach.cpp roach.cpp
@ -129,6 +138,7 @@ set (SVDLL_SOURCES
sound.cpp sound.cpp
soundent.cpp soundent.cpp
spectator.cpp spectator.cpp
spritetrain.cpp
squadmonster.cpp squadmonster.cpp
squeakgrenade.cpp squeakgrenade.cpp
subs.cpp subs.cpp
@ -141,6 +151,7 @@ set (SVDLL_SOURCES
turret.cpp turret.cpp
util.cpp util.cpp
vehicle.cpp vehicle.cpp
vorti.cpp
weapons.cpp weapons.cpp
world.cpp world.cpp
xen.cpp xen.cpp

View File

@ -180,14 +180,14 @@ void CAlienFlyer :: Spawn( void )
if (pev->spawnflags & SF_WAITFORTRIGGER) if (pev->spawnflags & SF_WAITFORTRIGGER)
{ {
SetUse( StartupUse ); SetUse( &CAlienFlyer::StartupUse );
m_activated = false; m_activated = false;
pev->effects |= EF_NODRAW; pev->effects |= EF_NODRAW;
} }
else else
{ {
SetThink( HuntThink ); SetThink( &CAlienFlyer::HuntThink );
SetTouch( FlyTouch ); SetTouch( &CAlienFlyer::FlyTouch );
pev->nextthink = gpGlobals->time + 1.0; pev->nextthink = gpGlobals->time + 1.0;
m_activated = true; m_activated = true;
} }
@ -222,7 +222,7 @@ void CAlienFlyer::Activate( void )
if ( FStringNull(pev->targetname) ) if ( FStringNull(pev->targetname) )
{ // not triggered, so start immediately { // not triggered, so start immediately
pev->nextthink = pev->ltime + 0.1; pev->nextthink = pev->ltime + 0.1;
SetThink( HuntThink ); SetThink( &CAlienFlyer::HuntThink );
} }
else else
pev->spawnflags |= SF_TRAIN_WAIT_RETRIGGER; pev->spawnflags |= SF_TRAIN_WAIT_RETRIGGER;
@ -253,8 +253,8 @@ void CAlienFlyer::NullThink( void )
void CAlienFlyer::StartupUse( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ) void CAlienFlyer::StartupUse( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value )
{ {
pev->effects &= ~EF_NODRAW; pev->effects &= ~EF_NODRAW;
SetThink( HuntThink ); SetThink( &CAlienFlyer::HuntThink );
SetTouch( FlyTouch ); SetTouch( &CAlienFlyer::FlyTouch );
pev->nextthink = gpGlobals->time + 0.1; pev->nextthink = gpGlobals->time + 0.1;
SetUse( NULL ); SetUse( NULL );
} }
@ -274,8 +274,8 @@ void CAlienFlyer :: Killed( entvars_t *pevAttacker, int iGib )
pev->gravity = 0.3; pev->gravity = 0.3;
UTIL_SetSize( pev, Vector( -32, -32, -64), Vector( 32, 32, 0) ); UTIL_SetSize( pev, Vector( -32, -32, -64), Vector( 32, 32, 0) );
SetThink( DyingThink ); SetThink( &CAlienFlyer::DyingThink );
SetTouch( CrashTouch ); SetTouch( &CAlienFlyer::CrashTouch );
pev->nextthink = gpGlobals->time + 0.1; pev->nextthink = gpGlobals->time + 0.1;
pev->health = 0; pev->health = 0;
pev->takedamage = DAMAGE_NO; pev->takedamage = DAMAGE_NO;
@ -428,7 +428,7 @@ void CAlienFlyer :: DyingThink( void )
WRITE_BYTE( BREAK_FLESH ); WRITE_BYTE( BREAK_FLESH );
MESSAGE_END(); MESSAGE_END();
SetThink( SUB_Remove ); SetThink( &CAlienFlyer::SUB_Remove );
pev->nextthink = gpGlobals->time + 0.1; pev->nextthink = gpGlobals->time + 0.1;
} }
} }
@ -806,4 +806,4 @@ void CAlienFlyer::TraceAttack( entvars_t *pevAttacker, float flDamage, Vector ve
// AddMultiDamage( pevAttacker, this, flDamage / 2.0, bitsDamageType ); // AddMultiDamage( pevAttacker, this, flDamage / 2.0, bitsDamageType );
UTIL_Ricochet( ptr->vecEndPos, 2.0 ); UTIL_Ricochet( ptr->vecEndPos, 2.0 );
} }
} }

View File

@ -63,11 +63,11 @@ BOOL skin_used[MAX_SKINS] = {
FALSE }; FALSE };
// store the names of the models... // store the names of the models...
char *bot_skins[MAX_SKINS] = { const char *bot_skins[MAX_SKINS] = {
"ginacol", "player/dm_slave/dm_slave" }; "ginacol", "player/dm_slave/dm_slave" };
// store the player names for each of the models... // store the player names for each of the models...
char *bot_names[MAX_SKINS] = { const char *bot_names[MAX_SKINS] = {
"Colette", "R-4913" }; "Colette", "R-4913" };
// sounds for TakeDamage speaking effects... // sounds for TakeDamage speaking effects...
@ -96,13 +96,13 @@ inline char *GET_INFOBUFFER( edict_t *e )
return (*g_engfuncs.pfnGetInfoKeyBuffer)( e ); return (*g_engfuncs.pfnGetInfoKeyBuffer)( e );
} }
inline char *GET_INFO_KEY_VALUE( char *infobuffer, char *key ) inline char *GET_INFO_KEY_VALUE( char *infobuffer, const char *key )
{ {
return (g_engfuncs.pfnInfoKeyValue( infobuffer, key )); return (g_engfuncs.pfnInfoKeyValue( infobuffer, key ));
} }
inline void SET_CLIENT_KEY_VALUE( int clientIndex, char *infobuffer, inline void SET_CLIENT_KEY_VALUE( int clientIndex, char *infobuffer,
char *key, char *value ) const char *key, const char *value )
{ {
(*g_engfuncs.pfnSetClientKeyValue)( clientIndex, infobuffer, key, value ); (*g_engfuncs.pfnSetClientKeyValue)( clientIndex, infobuffer, key, value );
} }

View File

@ -36,8 +36,8 @@
typedef struct // used in checking if bot can pick up ammo typedef struct // used in checking if bot can pick up ammo
{ {
char *ammo_name; const char *ammo_name;
char *weapon_name; const char *weapon_name;
int max_carry; int max_carry;
} ammo_check_t; } ammo_check_t;

View File

@ -113,7 +113,7 @@ ammo_check_t ammo_check[] = {
typedef struct typedef struct
{ {
char *enemy_name; const char *enemy_name;
byte enemy_id; byte enemy_id;
byte preferred_weapons_id[3]; byte preferred_weapons_id[3];
} enemy_weapon_check_t; } enemy_weapon_check_t;

View File

@ -93,7 +93,7 @@ void CEyeScanner::Spawn( void )
UTIL_SetSize( pev, Vector(-8,-8,0), Vector(8,8,32)); UTIL_SetSize( pev, Vector(-8,-8,0), Vector(8,8,32));
SetActivity( ACT_CROUCHIDLE ); SetActivity( ACT_CROUCHIDLE );
SetThink ( ScannerThink ); SetThink ( &CEyeScanner::ScannerThink );
pev->nextthink = gpGlobals->time + 0.1; pev->nextthink = gpGlobals->time + 0.1;
//pev->frame = RANDOM_FLOAT(0,255); //pev->frame = RANDOM_FLOAT(0,255);
} }
@ -196,7 +196,7 @@ void CEyeScanner :: Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE
m_iCheckLoop = 0; m_iCheckLoop = 0;
m_iCheckFrame = 1; m_iCheckFrame = 1;
m_bState = FALSE; m_bState = FALSE;
SetThink( UseThink ); SetThink( &CEyeScanner::UseThink );
pev->nextthink = gpGlobals->time + 1.5; pev->nextthink = gpGlobals->time + 1.5;
} }
@ -219,7 +219,7 @@ void CEyeScanner :: UseThink( void )
EMIT_SOUND( ENT(pev), CHAN_ITEM, sndScannerDeny, 0.85, ATTN_NORM ); EMIT_SOUND( ENT(pev), CHAN_ITEM, sndScannerDeny, 0.85, ATTN_NORM );
} }
SetThink( ScannerThink ); SetThink( &CEyeScanner::ScannerThink );
pev->skin = 0; pev->skin = 0;
return; return;
} }
@ -233,4 +233,4 @@ void CEyeScanner :: UseThink( void )
pev->skin = m_iCheckFrame; pev->skin = m_iCheckFrame;
m_iCheckFrame++; m_iCheckFrame++;
} }

View File

@ -42,7 +42,7 @@
// START BOT // START BOT
#include "bot.h" #include "bot.h"
void BotCreate(const char *skin, const char *name, const char skill); void BotCreate(const char *skin, const char *name, const char *skill);
extern int f_Observer; // flag for observer mode extern int f_Observer; // flag for observer mode
extern int f_botskill; // default bot skill level extern int f_botskill; // default bot skill level
extern int f_botdontshoot; // flag to disable targeting other ots extern int f_botdontshoot; // flag to disable targeting other ots
@ -1101,7 +1101,7 @@ void StartFrame( void )
// respawn 1 bot then wait a while (otherwise engine crashes) // respawn 1 bot then wait a while (otherwise engine crashes)
BotCreate(bot_respawn[index].skin, BotCreate(bot_respawn[index].skin,
bot_respawn[index].name, bot_respawn[index].name,
bot_respawn[index].skill); bot_respawn[index].skill);
respawn_time = gpGlobals->time + 1.0; // set next respawn time respawn_time = gpGlobals->time + 1.0; // set next respawn time
} }

View File

@ -17,6 +17,14 @@
// Author: Vyacheslav Dzhura ( slava.dzhura@gmail.com ; slava.dzhura@protonmail.com ) // Author: Vyacheslav Dzhura ( slava.dzhura@gmail.com ; slava.dzhura@protonmail.com )
// (C) 2008 // (C) 2008
// //
#ifdef XASH_WIN32
#include <windows.h>
#else
#include <unistd.h>
#include <sys/stat.h>
#define MAX_COMPUTERNAME_LENGTH 64 // random number
#endif
#include "extdll.h" #include "extdll.h"
#include "util.h" #include "util.h"
#include "cbase.h" #include "cbase.h"
@ -96,7 +104,7 @@ inline char *GET_INFOBUFFER( edict_t *e )
} }
inline void SET_CLIENT_KEY_VALUE( int clientIndex, char *infobuffer, inline void SET_CLIENT_KEY_VALUE( int clientIndex, char *infobuffer,
char *key, char *value ) const char *key, const char *value )
{ {
(*g_engfuncs.pfnSetClientKeyValue)( clientIndex, infobuffer, key, value ); (*g_engfuncs.pfnSetClientKeyValue)( clientIndex, infobuffer, key, value );
} }
@ -112,7 +120,7 @@ int getMapEntryId( int desiredId )
return -1; return -1;
} }
int findMapId( static char* szMapName ) int findMapId( char* szMapName )
{ {
int mapCount = sizeof(decayMaps)/sizeof(decayMaps[0]); int mapCount = sizeof(decayMaps)/sizeof(decayMaps[0]);
@ -163,14 +171,24 @@ void CDecayRules::SetAlienMode( bool bMode )
// ALERT( at_console, "Decay (alien mode = %d)\n", bSlaveCoop); // ALERT( at_console, "Decay (alien mode = %d)\n", bSlaveCoop);
} }
static void Platform_GetComputerName( char *buffer, size_t buffersize )
{
#if XASH_WIN32
DWORD size = buffersize;
GetComputerName( buffer, &size );
#else
gethostname( buffer, buffersize);
buffer[buffersize - 1] = 0; // unspecified by POSIX if truncated name will be null-terminated
#endif
}
//========================================================= //=========================================================
//========================================================= //=========================================================
CDecayRules::CDecayRules( void ) CDecayRules::CDecayRules( void )
{ {
char buffer[MAX_COMPUTERNAME_LENGTH+1]; char buffer[MAX_COMPUTERNAME_LENGTH+1];
DWORD size; Platform_GetComputerName( buffer, sizeof( buffer ));
size=sizeof(buffer);
GetComputerName(buffer,&size);
m_iMagicWord1 = 0; m_iMagicWord1 = 0;
@ -187,10 +205,10 @@ CDecayRules::CDecayRules( void )
statsLoad(); statsLoad();
memset( &this->pStats[0], 0, sizeof t_playerStats ); memset( &this->pStats[0], 0, sizeof( t_playerStats ));
memset( &this->pStats[1], 0, sizeof t_playerStats ); memset( &this->pStats[1], 0, sizeof( t_playerStats ));
memset( &this->pStats[2], 0, sizeof t_playerStats ); memset( &this->pStats[2], 0, sizeof( t_playerStats ));
memset( &this->pStats[3], 0, sizeof t_playerStats ); memset( &this->pStats[3], 0, sizeof( t_playerStats ));
int curMapId = this->getDecayMapId(); int curMapId = this->getDecayMapId();
if ( curMapId != -1 ) if ( curMapId != -1 )
@ -322,11 +340,8 @@ void CDecayRules::statsSave()
byte bEntryCount = 0; byte bEntryCount = 0;
/*********/ /*********/
char buffer[MAX_COMPUTERNAME_LENGTH+1]; char buffer[MAX_COMPUTERNAME_LENGTH+1];
DWORD size; Platform_GetComputerName( buffer, sizeof( buffer ));
size=sizeof(buffer);
GetComputerName(buffer,&size);
m_iMagicWord1 = 0; m_iMagicWord1 = 0;
int cnl = strlen(buffer); int cnl = strlen(buffer);
@ -442,7 +457,11 @@ void CDecayRules::statsExportXml( void )
char szFilename[MAX_PATH]; char szFilename[MAX_PATH];
GET_GAME_DIR( szFilename ); GET_GAME_DIR( szFilename );
strcat( szFilename, "/manual" ); strcat( szFilename, "/manual" );
#if XASH_WIN32
CreateDirectory( szFilename, NULL ); CreateDirectory( szFilename, NULL );
#else
mkdir( szFilename, 0777 );
#endif
strcat( szFilename, "/stats.xml" ); strcat( szFilename, "/stats.xml" );
FILE *fp; FILE *fp;
@ -910,9 +929,7 @@ int CDecayRules :: getDecayMapId()
void CDecayRules :: savePlayerStats( int playerId, int finalGrade, int damageGrade, int killsGrade, int accuracyGrade ) void CDecayRules :: savePlayerStats( int playerId, int finalGrade, int damageGrade, int killsGrade, int accuracyGrade )
{ {
char buffer[MAX_COMPUTERNAME_LENGTH+1]; char buffer[MAX_COMPUTERNAME_LENGTH+1];
DWORD size; Platform_GetComputerName( buffer, sizeof( buffer ));
size=sizeof(buffer);
GetComputerName(buffer,&size);
m_iMagicWord1 = 0; m_iMagicWord1 = 0;
@ -1271,7 +1288,7 @@ void CopyWeaponsAndAmmo(CBasePlayer *PlayerFrom, CBasePlayer *PlayerTo, bool bDu
pNextWeapon = pWeapon->m_pNext; pNextWeapon = pWeapon->m_pNext;
// problem here moving from tmpPlayer to player 2!!! // problem here moving from tmpPlayer to player 2!!!
if ( !pWeapon->m_pPlayer->RemovePlayerItem( pWeapon ) ) if ( !pWeapon->m_pPlayer->RemovePlayerItem( pWeapon, false ) )
{ {
ALERT( at_console, "problems removing weapon\n" ); ALERT( at_console, "problems removing weapon\n" );
} }

View File

@ -63,7 +63,7 @@ TYPEDESCRIPTION CTeleBall::m_SaveData[] =
IMPLEMENT_SAVERESTORE( CTeleBall, CBaseMonster ); IMPLEMENT_SAVERESTORE( CTeleBall, CBaseMonster );
void CTeleBall :: Spawn( void ) void CTeleBall::Spawn( void )
{ {
Precache( ); Precache( );
@ -83,8 +83,8 @@ void CTeleBall :: Spawn( void )
UTIL_SetSize(pev, Vector( 0, 0, 0), Vector(0, 0, 0)); UTIL_SetSize(pev, Vector( 0, 0, 0), Vector(0, 0, 0));
UTIL_SetOrigin( pev, pev->origin ); UTIL_SetOrigin( pev, pev->origin );
SetThink( TeleportThink ); SetThink( &CTeleBall::TeleportThink );
SetTouch( TeleportTouch ); SetTouch( &CTeleBall::TeleportTouch );
EMIT_SOUND(ENT(pev), CHAN_ITEM, "weapons/displacer_fire.wav", 1, ATTN_NORM); EMIT_SOUND(ENT(pev), CHAN_ITEM, "weapons/displacer_fire.wav", 1, ATTN_NORM);
int i; int i;
@ -98,7 +98,7 @@ void CTeleBall :: Spawn( void )
pBeam[i]->SetBrightness( 120 );//was 150 pBeam[i]->SetBrightness( 120 );//was 150
pBeam[i]->SetWidth( 45 ); pBeam[i]->SetWidth( 45 );
pBeam[i]->SetScrollRate( 35 ); pBeam[i]->SetScrollRate( 35 );
pBeam[i]->SetThink( SUB_Remove ); pBeam[i]->SetThink( &CBeam::SUB_Remove );
pBeam[i]->pev->nextthink = 0; //was gpGlobals->time + 1 pBeam[i]->pev->nextthink = 0; //was gpGlobals->time + 1
} }
@ -141,7 +141,7 @@ void CTeleBall:: PlayEffect( Vector Origin, CBaseEntity *pEntity )
pBeam[i]->SetBrightness( 150 ); pBeam[i]->SetBrightness( 150 );
pBeam[i]->SetWidth( 18 ); pBeam[i]->SetWidth( 18 );
pBeam[i]->SetScrollRate( 35 ); pBeam[i]->SetScrollRate( 35 );
pBeam[i]->SetThink( SUB_Remove ); pBeam[i]->SetThink( &CBeam::SUB_Remove );
pBeam[i]->pev->nextthink = gpGlobals->time + 1; //was 0.1 pBeam[i]->pev->nextthink = gpGlobals->time + 1; //was 0.1
} }
} }
@ -217,7 +217,7 @@ void CTeleBall::TeleportTouch( CBaseEntity *pOther )
SetTouch( NULL ); SetTouch( NULL );
pev->velocity = Vector( 0, 0, 0 ); //stop energy ball, otherwise it will "slide" pev->velocity = Vector( 0, 0, 0 ); //stop energy ball, otherwise it will "slide"
SetThink(TeleportKill); SetThink(&CTeleBall::TeleportKill);
pev->nextthink = gpGlobals->time+0.2; //allows energy ball to stay alive after it touched something pev->nextthink = gpGlobals->time+0.2; //allows energy ball to stay alive after it touched something
} }
@ -295,7 +295,7 @@ void CTeleBall::TeleportKill( void )
} }
for (int i=1;i<5;i++) UTIL_Remove( pBeam[i] ); //remove beams for (int i=1;i<5;i++) UTIL_Remove( pBeam[i] ); //remove beams
SetThink ( SUB_Remove ); SetThink ( &CTeleBall::SUB_Remove );
pev->nextthink = 0.2; pev->nextthink = 0.2;
} }
@ -395,7 +395,7 @@ void CDisplacer::SpinupThink( void )
return; return;
} }
SetThink(FireThink); SetThink(&CDisplacer::FireThink);
pev->nextthink=gpGlobals->time + 1.0; pev->nextthink=gpGlobals->time + 1.0;
//m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 3.0; //m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 3.0;
} }
@ -426,7 +426,7 @@ void CDisplacer::FireThink( void )
void CDisplacer::PrimaryAttack( void ) void CDisplacer::PrimaryAttack( void )
{ {
SetThink(SpinupThink); SetThink(&CDisplacer::SpinupThink);
pev->nextthink=gpGlobals->time + 0.1; pev->nextthink=gpGlobals->time + 0.1;
m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 1.5; m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 1.5;
} }
@ -533,7 +533,7 @@ void CDisplacer::PlayEffect( Vector Origin )
pBeam[i]->SetBrightness( 150 ); pBeam[i]->SetBrightness( 150 );
pBeam[i]->SetWidth( 18 ); pBeam[i]->SetWidth( 18 );
pBeam[i]->SetScrollRate( 35 ); pBeam[i]->SetScrollRate( 35 );
pBeam[i]->SetThink( SUB_Remove ); pBeam[i]->SetThink( &CBeam::SUB_Remove );
pBeam[i]->pev->nextthink = gpGlobals->time + 1; //was 0.1 pBeam[i]->pev->nextthink = gpGlobals->time + 1; //was 0.1
} }
} }
@ -575,4 +575,4 @@ void CDisplacer::WeaponIdle( void )
} }
SendWeaponAnim( iAnim ); SendWeaponAnim( iAnim );
} }

View File

@ -2596,7 +2596,7 @@ void CEnvDLight::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE us
if (pev->spawnflags & SF_DLIGHT_ONLYONCE) if (pev->spawnflags & SF_DLIGHT_ONLYONCE)
{ {
SetThink( SUB_Remove ); SetThink( &CEnvDLight::SUB_Remove );
pev->nextthink = 0; pev->nextthink = 0;
} }
} }
@ -2829,7 +2829,7 @@ void CEnvWarpBall::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE
pBeam[i]->SetBrightness( 150 ); pBeam[i]->SetBrightness( 150 );
pBeam[i]->SetWidth( 18 ); pBeam[i]->SetWidth( 18 );
pBeam[i]->SetScrollRate( 35 ); pBeam[i]->SetScrollRate( 35 );
pBeam[i]->SetThink( SUB_Remove ); pBeam[i]->SetThink( &CBeam::SUB_Remove );
pBeam[i]->pev->nextthink = gpGlobals->time + 1; //was 0.1 pBeam[i]->pev->nextthink = gpGlobals->time + 1; //was 0.1
} }
} }
@ -3038,7 +3038,7 @@ void CEnvShockwave::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE
if (!(pev->spawnflags & SF_SHOCKWAVE_REPEATABLE)) if (!(pev->spawnflags & SF_SHOCKWAVE_REPEATABLE))
{ {
SetThink( SUB_Remove ); SetThink( &CEnvShockwave::SUB_Remove );
pev->nextthink = 0; pev->nextthink = 0;
} }
} }
@ -3082,7 +3082,7 @@ void CEnvRTCamera :: Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYP
bActive = !bActive; bActive = !bActive;
if (bActive) if (bActive)
{ {
SetThink( ThinkOn ); SetThink( &CEnvRTCamera::ThinkOn );
pev->nextthink = gpGlobals->time + 1.0; pev->nextthink = gpGlobals->time + 1.0;
} else } else
{ {

View File

@ -382,7 +382,7 @@ void CMdlCharger::Spawn()
SetSequence( seqCharge_Inactive ); SetSequence( seqCharge_Inactive );
SetThink(ChargerThink); SetThink(&CMdlCharger::ChargerThink);
if (g_pGameRules->IsCoOp() ) if (g_pGameRules->IsCoOp() )
{ {
@ -580,7 +580,7 @@ void CMdlCharger::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE u
//pFluidTank->StartUse(); //pFluidTank->StartUse();
pev->nextthink = gpGlobals->time + 0.25; // pev->ltime pev->nextthink = gpGlobals->time + 0.25; // pev->ltime
SetThink(Off); SetThink(&CMdlCharger::Off);
// start the give shot sequence and do not use until it's finished // start the give shot sequence and do not use until it's finished
if (GetSequence() != seqCharge_GiveShot) if (GetSequence() != seqCharge_GiveShot)
@ -635,13 +635,13 @@ void CMdlCharger::Recharge(void)
//EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/medshot4.wav", 1.0, ATTN_NORM ); //EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/medshot4.wav", 1.0, ATTN_NORM );
m_iJuice = gSkillData.suitchargerCapacity; m_iJuice = gSkillData.suitchargerCapacity;
pev->skin = CHARGER_ACTIVE; // set the active skin pev->skin = CHARGER_ACTIVE; // set the active skin
SetThink( ChargerThink ); SetThink( &CMdlCharger::ChargerThink );
} }
void CMdlCharger::Off(void) void CMdlCharger::Off(void)
{ {
m_flStopCharge = gpGlobals->time + 0.25; m_flStopCharge = gpGlobals->time + 0.25;
SetThink( ChargerThink ); SetThink( &CMdlCharger::ChargerThink );
pev->nextthink = gpGlobals->time + 0.01; pev->nextthink = gpGlobals->time + 0.01;
// Stop looping sound. // Stop looping sound.
@ -653,10 +653,10 @@ void CMdlCharger::Off(void)
if ((!m_iJuice) && ( ( m_iReactivate = g_pGameRules->FlHEVChargerRechargeTime() ) > 0) ) if ((!m_iJuice) && ( ( m_iReactivate = g_pGameRules->FlHEVChargerRechargeTime() ) > 0) )
{ {
pev->nextthink = pev->ltime + m_iReactivate; pev->nextthink = pev->ltime + m_iReactivate;
SetThink( Recharge ); SetThink( &CMdlCharger::Recharge );
} }
//else //else
// SetThink( SUB_DoNothing ); // SetThink( &CMdlCharger::SUB_DoNothing );
SetSequence( seqCharge_RetractShot ); SetSequence( seqCharge_RetractShot );
} }

View File

@ -321,7 +321,7 @@ void CMdlWallHealthTank::Spawn()
SetBoneController( 0, 0 ); // -11 to 0 (empty to full) SetBoneController( 0, 0 ); // -11 to 0 (empty to full)
SetSequence( seq_Still ); SetSequence( seq_Still );
SetThink( TankThink ); SetThink( &CMdlWallHealthTank::TankThink );
if (g_pGameRules->IsCoOp() ) if (g_pGameRules->IsCoOp() )
{ {
@ -487,7 +487,7 @@ void CMdlWallHealth::Spawn()
// 180..360 - ang 90 use -270 // 180..360 - ang 90 use -270
SetSequence( seq_Inactive ); SetSequence( seq_Inactive );
SetThink(ChargerThink); SetThink(&CMdlWallHealth::ChargerThink);
pev->nextthink = gpGlobals->time + 0.1; pev->nextthink = gpGlobals->time + 0.1;
} }
@ -681,7 +681,7 @@ void CMdlWallHealth::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYP
pFluidTank->StartUse(); pFluidTank->StartUse();
pev->nextthink = gpGlobals->time + 0.25; // pev->ltime pev->nextthink = gpGlobals->time + 0.25; // pev->ltime
SetThink(Off); SetThink(&CMdlWallHealth::Off);
// start the give shot sequence and do not use until it's finished // start the give shot sequence and do not use until it's finished
if (GetSequence() != seq_GiveShot) if (GetSequence() != seq_GiveShot)
@ -729,13 +729,13 @@ void CMdlWallHealth::Recharge(void)
EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/medshot4.wav", 1.0, ATTN_NORM ); EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/medshot4.wav", 1.0, ATTN_NORM );
m_iJuice = gSkillData.healthchargerCapacity; m_iJuice = gSkillData.healthchargerCapacity;
pev->skin = HEALTHSTATION_FULL; // set the active skin pev->skin = HEALTHSTATION_FULL; // set the active skin
SetThink( ChargerThink ); SetThink( &CMdlWallHealth::ChargerThink );
} }
void CMdlWallHealth::Off(void) void CMdlWallHealth::Off(void)
{ {
m_flStopCharge = gpGlobals->time + 0.25; m_flStopCharge = gpGlobals->time + 0.25;
SetThink( ChargerThink ); SetThink( &CMdlWallHealth::ChargerThink );
pev->nextthink = gpGlobals->time + 0.01; pev->nextthink = gpGlobals->time + 0.01;
// Stop looping sound. // Stop looping sound.
@ -747,10 +747,10 @@ void CMdlWallHealth::Off(void)
if ((!m_iJuice) && ( ( m_iReactivate = g_pGameRules->FlHealthChargerRechargeTime() ) > 0) ) if ((!m_iJuice) && ( ( m_iReactivate = g_pGameRules->FlHealthChargerRechargeTime() ) > 0) )
{ {
pev->nextthink = pev->ltime + m_iReactivate; pev->nextthink = pev->ltime + m_iReactivate;
SetThink(Recharge); SetThink(&CMdlWallHealth::Recharge);
} }
//else //else
// SetThink( SUB_DoNothing ); // SetThink( &CMdlWallHealth::SUB_DoNothing );
} }
void CMdlWallHealth::TurnOff( void ) void CMdlWallHealth::TurnOff( void )

View File

@ -413,7 +413,7 @@ void CItemSlaveCollar::Spawn( void )
if (FBitSet(pev->spawnflags, 1)) // Start on if (FBitSet(pev->spawnflags, 1)) // Start on
{ {
m_bIsOn = true; m_bIsOn = true;
SetThink(ZapThink); // start zapping SetThink(&CItemSlaveCollar::ZapThink); // start zapping
pev->nextthink = gpGlobals->time; pev->nextthink = gpGlobals->time;
} }
} }
@ -435,9 +435,9 @@ void CItemSlaveCollar::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_T
m_bIsOn = false; m_bIsOn = false;
if ( m_bIsOn ) if ( m_bIsOn )
SetThink( ZapThink ); SetThink( &CItemSlaveCollar::ZapThink );
else else
SetThink( OffThink ); SetThink( &CItemSlaveCollar::OffThink );
pev->nextthink = gpGlobals->time + 0.01; pev->nextthink = gpGlobals->time + 0.01;
} }
@ -576,7 +576,7 @@ void CFocusEmitter::Spawn( void )
SetBodygroup( 1, 2 ); SetBodygroup( 1, 2 );
SetSequence( seqEmitterClosed ); SetSequence( seqEmitterClosed );
SetThink( EmitterThink ); SetThink( &CFocusEmitter::EmitterThink );
pev->nextthink = gpGlobals->time; pev->nextthink = gpGlobals->time;
CBaseEntity *LasTarget; CBaseEntity *LasTarget;
@ -666,7 +666,7 @@ void CFocusEmitter::EmitterThink( void )
MESSAGE_END(); MESSAGE_END();
if ( m_fSequenceFinished ) if ( m_fSequenceFinished )
{ {
SetThink( DyingThink ); SetThink( &CFocusEmitter::DyingThink );
pev->nextthink = gpGlobals->time + 0.1; pev->nextthink = gpGlobals->time + 0.1;
} }
break; break;

View File

@ -277,7 +277,7 @@ void CFuncModelTrain:: Next( void )
} }
} }
} }
SetThink( Next ); SetThink( &CFuncModelTrain::Next );
NextThink( pev->ltime + time, TRUE ); NextThink( pev->ltime + time, TRUE );
} }
else // end of path, stop else // end of path, stop
@ -298,7 +298,7 @@ void CFuncModelTrain:: Next( void )
// no, how long to get there? // no, how long to get there?
time = distance / m_oldSpeed; time = distance / m_oldSpeed;
pev->velocity = pev->velocity * (m_oldSpeed / distance); pev->velocity = pev->velocity * (m_oldSpeed / distance);
SetThink( DeadEnd ); SetThink( &CFuncModelTrain::DeadEnd );
NextThink( pev->ltime + time, FALSE ); NextThink( pev->ltime + time, FALSE );
} }
else else
@ -419,7 +419,7 @@ void CFuncModelTrain :: Find( void )
pev->angles.x = 0; pev->angles.x = 0;
UTIL_SetOrigin( pev, nextPos ); UTIL_SetOrigin( pev, nextPos );
NextThink( pev->ltime + 0.1, FALSE ); NextThink( pev->ltime + 0.1, FALSE );
SetThink( Next ); SetThink( &CFuncModelTrain::Next );
pev->speed = m_startSpeed; pev->speed = m_startSpeed;
} }
@ -467,14 +467,14 @@ void CFuncModelTrain :: NearestPath( void )
if ( pev->speed != 0 ) if ( pev->speed != 0 )
{ {
NextThink( pev->ltime + 0.1, FALSE ); NextThink( pev->ltime + 0.1, FALSE );
SetThink( Next ); SetThink( &CFuncModelTrain::Next );
} }
} }
void CFuncModelTrain ::OverrideReset( void ) void CFuncModelTrain ::OverrideReset( void )
{ {
NextThink( pev->ltime + 0.1, FALSE ); NextThink( pev->ltime + 0.1, FALSE );
SetThink( NearestPath ); SetThink( &CFuncModelTrain::NearestPath );
} }
void CFuncModelTrain ::Animate( float frames ) void CFuncModelTrain ::Animate( float frames )
@ -519,10 +519,10 @@ void CFuncModelTrain :: Spawn( void )
m_maxFrame = (float) MODEL_FRAMES( pev->modelindex ) - 1; m_maxFrame = (float) MODEL_FRAMES( pev->modelindex ) - 1;
NextThink( pev->ltime + 0.1, FALSE ); NextThink( pev->ltime + 0.1, FALSE );
SetThink( Find ); SetThink( &CFuncModelTrain::Find );
} }
void CFuncModelTrain :: Precache( void ) void CFuncModelTrain :: Precache( void )
{ {
PRECACHE_MODEL( (char *)STRING(pev->model) ); PRECACHE_MODEL( (char *)STRING(pev->model) );
} }

View File

@ -100,7 +100,7 @@ void CNotepad::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useT
pev->nextthink = pev->ltime + 0.25; pev->nextthink = pev->ltime + 0.25;
SetThink(Off); SetThink(&CNotepad::Off);
// Time to recharge yet? // Time to recharge yet?
@ -108,7 +108,7 @@ void CNotepad::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useT
return; return;
MESSAGE_BEGIN( MSG_ONE, gmsgNotepad, NULL, GetClassPtr((CBasePlayer *)pActivator->pev)->pev ); MESSAGE_BEGIN( MSG_ONE, gmsgNotepad, NULL, GetClassPtr((CBasePlayer *)pActivator->pev)->pev );
WRITE_STRING( (char[256])m_iszText ); WRITE_STRING( m_iszText );
WRITE_BYTE( m_iTitle ); WRITE_BYTE( m_iTitle );
MESSAGE_END(); MESSAGE_END();
@ -119,7 +119,7 @@ void CNotepad::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useT
void CNotepad::Recharge(void) void CNotepad::Recharge(void)
{ {
pev->frame = 0; pev->frame = 0;
SetThink( SUB_DoNothing ); SetThink( &CNotepad::SUB_DoNothing );
} }
void CNotepad::Off(void) void CNotepad::Off(void)
@ -129,8 +129,8 @@ void CNotepad::Off(void)
if ((!m_iJuice) && ( ( m_iReactivate = g_pGameRules->FlHealthChargerRechargeTime() ) > 0) ) if ((!m_iJuice) && ( ( m_iReactivate = g_pGameRules->FlHealthChargerRechargeTime() ) > 0) )
{ {
pev->nextthink = pev->ltime + m_iReactivate; pev->nextthink = pev->ltime + m_iReactivate;
SetThink(Recharge); SetThink(&CNotepad::Recharge);
} }
else else
SetThink( SUB_DoNothing ); SetThink( &CNotepad::SUB_DoNothing );
} }

View File

@ -189,7 +189,15 @@ int gmsgSetFOV = 0;
int gmsgShowMenu = 0; int gmsgShowMenu = 0;
int gmsgGeigerRange = 0; int gmsgGeigerRange = 0;
int gmsgTeamNames = 0; int gmsgTeamNames = 0;
int gmsgLensFlare = 0;
int gmsgAimFrame = 0;
int gmsgNotepad = 0;
int gmsgChangeMode = 0;
int gmsgCamera = 0;
int gmsgChangePlayer = 0;
int gmsgSparePlayer = 0;
int gmsgAlienState = 0;
int gmsgUpdateDecayPlayerName = 0;
int gmsgStatusText = 0; int gmsgStatusText = 0;
int gmsgStatusValue = 0; int gmsgStatusValue = 0;
@ -926,7 +934,7 @@ void CBasePlayer::PackAllItems( void )
pWeaponBox->pev->angles.x = 0;// don't let weaponbox tilt. pWeaponBox->pev->angles.x = 0;// don't let weaponbox tilt.
pWeaponBox->pev->angles.z = 0; pWeaponBox->pev->angles.z = 0;
pWeaponBox->SetThink( CWeaponBox::Kill ); pWeaponBox->SetThink( &CWeaponBox::Kill );
pWeaponBox->pev->nextthink = gpGlobals->time + 120; pWeaponBox->pev->nextthink = gpGlobals->time + 120;
// back these two lists up to their first elements // back these two lists up to their first elements
@ -3049,7 +3057,7 @@ inline char *GET_INFOBUFFER( edict_t *e )
} }
inline void SET_CLIENT_KEY_VALUE( int clientIndex, char *infobuffer, inline void SET_CLIENT_KEY_VALUE( int clientIndex, char *infobuffer,
char *key, char *value ) const char *key, const char *value )
{ {
(*g_engfuncs.pfnSetClientKeyValue)( clientIndex, infobuffer, key, value ); (*g_engfuncs.pfnSetClientKeyValue)( clientIndex, infobuffer, key, value );
} }
@ -3224,7 +3232,7 @@ void CBasePlayer::Spawn( void )
{ {
GiveNamedItem( "item_suit" ); GiveNamedItem( "item_suit" );
while ( pWeaponEntity = UTIL_FindEntityByClassname( pWeaponEntity, "game_player_equip" )) while(( pWeaponEntity = UTIL_FindEntityByClassname( pWeaponEntity, "game_player_equip" )))
{ {
pWeaponEntity->Touch( this ); pWeaponEntity->Touch( this );
} }
@ -3701,16 +3709,6 @@ void CBasePlayer::ForceClientDllUpdate( void )
m_fInitHUD = TRUE; // Force HUD gmsgResetHUD message m_fInitHUD = TRUE; // Force HUD gmsgResetHUD message
memset( m_rgAmmoLast, 0, sizeof( m_rgAmmoLast )); // a1ba: Force update AmmoX memset( m_rgAmmoLast, 0, sizeof( m_rgAmmoLast )); // a1ba: Force update AmmoX
int gmsgLensFlare = 0;
int gmsgAimFrame = 0;
int gmsgNotepad = 0;
int gmsgChangeMode = 0;
int gmsgCamera = 0;
int gmsgChangePlayer = 0;
int gmsgSparePlayer = 0;
int gmsgAlienState = 0;
int gmsgUpdateDecayPlayerName = 0;
// Now force all the necessary messages // Now force all the necessary messages
// to be sent. // to be sent.
UpdateClientData(); UpdateClientData();

View File

@ -1140,8 +1140,8 @@ void CPriestHeadBall :: Spawn( void )
UTIL_SetSize(pev, Vector( 0, 0, 0), Vector(0, 0, 0)); UTIL_SetSize(pev, Vector( 0, 0, 0), Vector(0, 0, 0));
UTIL_SetOrigin( pev, pev->origin ); UTIL_SetOrigin( pev, pev->origin );
SetThink( HuntThink ); SetThink( &CPriestHeadBall::HuntThink );
SetTouch( BounceTouch ); SetTouch( &CPriestHeadBall::BounceTouch );
m_vecIdeal = Vector( 0, 0, 0 ); m_vecIdeal = Vector( 0, 0, 0 );
@ -1234,7 +1234,7 @@ void CPriestHeadBall :: HuntThink( void )
m_flNextAttack = gpGlobals->time + 3.0; m_flNextAttack = gpGlobals->time + 3.0;
SetThink( DieThink ); SetThink( &CPriestHeadBall::DieThink );
pev->nextthink = gpGlobals->time + 0.3; pev->nextthink = gpGlobals->time + 0.3;
} }
// Crawl( ); // Crawl( );
@ -1345,8 +1345,8 @@ void CPriestZapBall :: Spawn( void )
UTIL_SetSize(pev, Vector( 0, 0, 0), Vector(0, 0, 0)); UTIL_SetSize(pev, Vector( 0, 0, 0), Vector(0, 0, 0));
UTIL_SetOrigin( pev, pev->origin ); UTIL_SetOrigin( pev, pev->origin );
SetThink( AnimateThink ); SetThink( &CPriestZapBall::AnimateThink );
SetTouch( ExplodeTouch ); SetTouch( &CPriestZapBall::ExplodeTouch );
m_hOwner = Instance( pev->owner ); m_hOwner = Instance( pev->owner );
pev->dmgtime = gpGlobals->time; // keep track of when ball spawned pev->dmgtime = gpGlobals->time; // keep track of when ball spawned

View File

@ -1542,7 +1542,7 @@ void CWheelChairScientist :: Spawn( )
m_afCapability = bits_CAP_HEAR | bits_CAP_TURN_HEAD | bits_CAP_DOORS_GROUP; m_afCapability = bits_CAP_HEAR | bits_CAP_TURN_HEAD | bits_CAP_DOORS_GROUP;
MonsterInit(); MonsterInit();
SetUse( FollowerUse ); SetUse( &CTalkMonster::FollowerUse );
} }
void CWheelChairScientist :: Precache( void ) void CWheelChairScientist :: Precache( void )
@ -1664,7 +1664,7 @@ void CRosenberg :: Spawn( )
SetBodygroup( HEAD_GROUP, 0 ); SetBodygroup( HEAD_GROUP, 0 );
MonsterInit(); MonsterInit();
SetUse( FollowerUse ); SetUse( &CTalkMonster::FollowerUse );
} }
void CRosenberg :: Precache( void ) void CRosenberg :: Precache( void )

View File

@ -276,7 +276,7 @@ void CFuncSpriteTrain:: Next( void )
} }
} }
} }
SetThink( Next ); SetThink( &CFuncSpriteTrain::Next );
NextThink( pev->ltime + time, TRUE ); NextThink( pev->ltime + time, TRUE );
} }
else // end of path, stop else // end of path, stop
@ -297,7 +297,7 @@ void CFuncSpriteTrain:: Next( void )
// no, how long to get there? // no, how long to get there?
time = distance / m_oldSpeed; time = distance / m_oldSpeed;
pev->velocity = pev->velocity * (m_oldSpeed / distance); pev->velocity = pev->velocity * (m_oldSpeed / distance);
SetThink( DeadEnd ); SetThink( &CFuncSpriteTrain::DeadEnd );
NextThink( pev->ltime + time, FALSE ); NextThink( pev->ltime + time, FALSE );
} }
else else
@ -418,7 +418,7 @@ void CFuncSpriteTrain :: Find( void )
pev->angles.x = 0; pev->angles.x = 0;
UTIL_SetOrigin( pev, nextPos ); UTIL_SetOrigin( pev, nextPos );
NextThink( pev->ltime + 0.1, FALSE ); NextThink( pev->ltime + 0.1, FALSE );
SetThink( Next ); SetThink( &CFuncSpriteTrain::Next );
pev->speed = m_startSpeed; pev->speed = m_startSpeed;
} }
@ -466,14 +466,14 @@ void CFuncSpriteTrain :: NearestPath( void )
if ( pev->speed != 0 ) if ( pev->speed != 0 )
{ {
NextThink( pev->ltime + 0.1, FALSE ); NextThink( pev->ltime + 0.1, FALSE );
SetThink( Next ); SetThink( &CFuncSpriteTrain::Next );
} }
} }
void CFuncSpriteTrain ::OverrideReset( void ) void CFuncSpriteTrain ::OverrideReset( void )
{ {
NextThink( pev->ltime + 0.1, FALSE ); NextThink( pev->ltime + 0.1, FALSE );
SetThink( NearestPath ); SetThink( &CFuncSpriteTrain::NearestPath );
} }
void CFuncSpriteTrain ::Animate( float frames ) void CFuncSpriteTrain ::Animate( float frames )
@ -518,10 +518,10 @@ void CFuncSpriteTrain :: Spawn( void )
m_maxFrame = (float) MODEL_FRAMES( pev->modelindex ) - 1; m_maxFrame = (float) MODEL_FRAMES( pev->modelindex ) - 1;
NextThink( pev->ltime + 0.1, FALSE ); NextThink( pev->ltime + 0.1, FALSE );
SetThink( Find ); SetThink( &CFuncSpriteTrain::Find );
} }
void CFuncSpriteTrain :: Precache( void ) void CFuncSpriteTrain :: Precache( void )
{ {
PRECACHE_MODEL( (char *)STRING(pev->model) ); PRECACHE_MODEL( (char *)STRING(pev->model) );
} }

View File

@ -30,7 +30,9 @@
#include "shake.h" // trigger_enddecay fading constants #include "shake.h" // trigger_enddecay fading constants
#include "effects.h" // env_render can use instance of CEnvMirroredLaser #include "effects.h" // env_render can use instance of CEnvMirroredLaser
#include "triggers.h" #include "triggers.h"
#if XASH_WIN32 // a1ba: bruh
#include "shellapi.h" #include "shellapi.h"
#endif
#define SF_TRIGGER_PUSH_START_OFF 2//spawnflag that makes trigger_push spawn turned OFF #define SF_TRIGGER_PUSH_START_OFF 2//spawnflag that makes trigger_push spawn turned OFF
#define SF_TRIGGER_HURT_TARGETONCE 1// Only fire hurt target once #define SF_TRIGGER_HURT_TARGETONCE 1// Only fire hurt target once
@ -617,7 +619,7 @@ void CMultiManager::ManagerThink( void )
if ( pev->spawnflags & SF_MM_KILLTARGETS ) if ( pev->spawnflags & SF_MM_KILLTARGETS )
{ {
CBaseEntity *pEntity = NULL; CBaseEntity *pEntity = NULL;
while (pEntity = UTIL_FindEntityByTargetname(pEntity, STRING( m_iTargetName[ m_index ] ))) while ((pEntity = UTIL_FindEntityByTargetname(pEntity, STRING( m_iTargetName[ m_index ] ))))
{ {
//ALERT( at_console, "Killing %s...\n", STRING( m_iTargetName[ m_index ] ) ); //ALERT( at_console, "Killing %s...\n", STRING( m_iTargetName[ m_index ] ) );
UTIL_Remove( pEntity ); UTIL_Remove( pEntity );
@ -1906,7 +1908,7 @@ void CChangeLevel::ChangeLevelNow( CBaseEntity *pActivator )
Vyacheslav Dzhura: 8/9/2008 Vyacheslav Dzhura: 8/9/2008
DONE: COMMENTED - EXPERIMENTAL!!!!!!!! DONE: COMMENTED - EXPERIMENTAL!!!!!!!!
*/ */
if ( g_pGameRules->IsCoOp ) if ( g_pGameRules->IsCoOp( ))
{ {
char cmd[128]; char cmd[128];
sprintf( cmd, "changelevel %s %s\n", st_szNextMap, st_szNextSpot ); sprintf( cmd, "changelevel %s %s\n", st_szNextMap, st_szNextSpot );
@ -2409,8 +2411,10 @@ void CTriggerEndSection::EndSectionUse( CBaseEntity *pActivator, CBaseEntity *pC
for( i = 0; i < strlen( szFilename2 ); i++) for( i = 0; i < strlen( szFilename2 ); i++)
if ( szFilename2[i] == '/' ) szFilename2[i] = '\\'; if ( szFilename2[i] == '/' ) szFilename2[i] = '\\';
#if XASH_WIN32 // a1ba: BRUH
if (!IS_DEDICATED_SERVER()) if (!IS_DEDICATED_SERVER())
ShellExecute( GetActiveWindow(), "open", "iexplore", szFilename, szFilename2, SW_MAXIMIZE); ShellExecute( GetActiveWindow(), "open", "iexplore", szFilename, szFilename2, SW_MAXIMIZE);
#endif // XASH_WIN32
// Only save on clients // Only save on clients
if( pActivator && !pActivator->IsNetClient() ) if( pActivator && !pActivator->IsNetClient() )
@ -2891,11 +2895,11 @@ void CTriggerEndDecay::Spawn( void )
InitTrigger(); InitTrigger();
SetThink( SUB_DoNothing ); SetThink( &CTriggerEndDecay::SUB_DoNothing );
SetUse ( EndDecayUse ); SetUse ( &CTriggerEndDecay::EndDecayUse );
// If it is a "use only" trigger, then don't set the touch function. // If it is a "use only" trigger, then don't set the touch function.
if ( ! (pev->spawnflags & SF_ENDSECTION_USEONLY) ) if ( ! (pev->spawnflags & SF_ENDSECTION_USEONLY) )
SetTouch( EndDecayTouch ); SetTouch( &CTriggerEndDecay::EndDecayTouch );
} }
/* /*
@ -3002,7 +3006,7 @@ void CTriggerEndDecay::EndDecayUse( CBaseEntity *pActivator, CBaseEntity *pCalle
UTIL_ShowMessageAll( STRING(pev->message) ); UTIL_ShowMessageAll( STRING(pev->message) );
pev->nextthink = gpGlobals->time + 7; pev->nextthink = gpGlobals->time + 7;
SetThink( EndDecayThink ); SetThink( &CTriggerEndDecay::EndDecayThink );
} }
void CTriggerEndDecay::EndDecayThink( void ) void CTriggerEndDecay::EndDecayThink( void )

View File

@ -131,7 +131,7 @@ void CVortiHands::PrimaryAttack()
if (! Swing( 1 )) if (! Swing( 1 ))
{ {
SetThink( SwingAgain ); SetThink( &CVortiHands::SwingAgain );
pev->nextthink = gpGlobals->time + 0.1; pev->nextthink = gpGlobals->time + 0.1;
} }
} }
@ -294,7 +294,7 @@ int CVortiHands::Swing( int fFirst )
#endif #endif
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.25; m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.25;
SetThink( Smack ); SetThink( &CVortiHands::Smack );
pev->nextthink = UTIL_WeaponTimeBase() + 0.2; pev->nextthink = UTIL_WeaponTimeBase() + 0.2;

View File

@ -455,7 +455,7 @@ void CBasePlayerItem::FallInit( void )
{ {
pev->solid = SOLID_TRIGGER; pev->solid = SOLID_TRIGGER;
UTIL_SetOrigin( pev, pev->origin );// link into world. UTIL_SetOrigin( pev, pev->origin );// link into world.
SetTouch (DefaultTouch); SetTouch (&CBasePlayerItem::DefaultTouch);
SetThink (NULL); SetThink (NULL);
return; return;
} }
@ -858,7 +858,7 @@ int CBasePlayerWeapon::UpdateClientData( CBasePlayer *pPlayer )
m_pNext->UpdateClientData( pPlayer ); m_pNext->UpdateClientData( pPlayer );
else else
{ {
ALERT( at_console, "'%s'->m_pNext sends to invalid class!\n", this->pszName ); ALERT( at_console, "'%s'->m_pNext sends to invalid class!\n", this->pszName() );
return 0; return 0;
} }
} }

21
how_to_play.txt Normal file
View File

@ -0,0 +1,21 @@
How to play
Single player game
Decay doesn't have usual single player mode as Half-Life has - it creates local LAN server instead and adds controllable bot (switch with "G" button) as second player. So to start playing "singleplayer" Decay you should use "Play Decay" menu and start server for "dy_accident1" map. Bot doesnt have any clever AI, it can merely protect itself, so you have to use the player switching frequently.
Be aware that you can't choose any other map from the start - they all are locked by default, as in original PlayStation(r)2 version of the game, and are opened as you progress through the game.
The other important note is that Decay doesn't allow any game saves (as original game) so if you are killed, the mission is automatically restarted. The only saved info is your progress through the levels and stats, which is done automatically upon mission completion. You can view your stats either by opening decay\manual\stats.xml or using shortcut in Decays Start Menu folder.
Internet game - details for how to set up server
Half-Life: Decay is a 2 person game and you can play not only with bot but with your friend. You can easily set up home LAN server and your friend will be able to join the game immediately, but with the Internet game it's all a bit other. The only way to do this is to have one of the 2 people host the server.
1. Go to tools, and download dedicated server ( under the tools tab in steam). It's only like 20 mb.
2. COPY your Decay folder (from your Half-Life folder under you SteamApps folder). example - " C:\program files\SteamApps\[YOURACCOUNT]\half-life\decay" into the dedicated server folder. example- " C:\program files\SteamApps\[YOURACCOUNT]\dedicated server\half-life\decay"
3. Open dedicated server, and you'll get a GUI menu. Change the values as follows
A. Open the top dropdown box and make the game Decay
B. The server name can be whatever you want it to be
C. Map can be whatever, you can always change it in game
D. Make sure the network is set to internet, or no one can join your game
E. Make sure Max players is 3. no more, no less ( VERY IMPORTANT ).
F. UDP port - 27015 is fine, dont change it unless you know what you are doing ( there is no need to change it what so ever ).
G. RCON Password- you have to have one, but it can be anything ( its the password that controls the server).
H. Valve Anti Cheat should be selected, but it doesnt need to be.
4. After you hit start server, the game will be up
5. To join the game, start up decay, and look for the server, BUT dont look for it under the internet tab, it will be under the LAN tab for you, but everyone else will see it under Internet
6. Join in and have fun

View File

@ -11,7 +11,7 @@ SATCHEL_OLD_BEHAVIOUR=OFF # Old pre-HL 25th satchel's behaviour
OEM_BUILD=OFF # OEM Build OEM_BUILD=OFF # OEM Build
HLDEMO_BUILD=OFF # Demo Build HLDEMO_BUILD=OFF # Demo Build
GAMEDIR=valve # Gamedir path GAMEDIR=decay # Gamedir path
SERVER_INSTALL_DIR=dlls # Where put server dll SERVER_INSTALL_DIR=dlls # Where put server dll
CLIENT_INSTALL_DIR=cl_dlls # Where put client dll CLIENT_INSTALL_DIR=cl_dlls # Where put client dll
SERVER_LIBRARY_NAME=hl # Library name for PC platforms SERVER_LIBRARY_NAME=decay # Library name for PC platforms