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/tripmine.cpp
../dlls/glock.cpp
../dlls/vorti.cpp
ev_hldm.cpp
hl/hl_baseentity.cpp
hl/hl_events.cpp
hl/hl_objects.cpp
hl/hl_weapons.cpp
aliencrosshair.cpp
ammo.cpp
ammo_secondary.cpp
ammohistory.cpp
@ -132,12 +134,14 @@ if (USE_VGUI)
vgui_ConsolePanel.cpp
vgui_ControlConfigPanel.cpp
vgui_CustomObjects.cpp
vgui_DecaySparePlayer.cpp
vgui_MOTDWindow.cpp
vgui_SchemeManager.cpp
vgui_ScorePanel.cpp
vgui_TeamFortressViewport.cpp
vgui_SpectatorPanel.cpp
vgui_teammenu.cpp
vgui_notepad.cpp
voice_status.cpp
../game_shared/vgui_checkbutton2.cpp
../game_shared/vgui_grid.cpp

View File

@ -311,14 +311,6 @@ redraw the HUD.
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 );
return 1;

View File

@ -204,8 +204,8 @@ void CHudHealth::DrawAlienHealthBar( void )
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.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.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.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-(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);
r = 180;

View File

@ -705,7 +705,7 @@ public:
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_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 );
// Screen information

View File

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

View File

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

View File

@ -424,12 +424,14 @@ void V_CalcNormalRefdef( struct ref_params_s *pparams )
cl_entity_t *pwater;
// 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.
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->model = savedviewmodel;
pparams->viewangles[0] = v_angles.x;

View File

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

View File

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

View File

@ -180,14 +180,14 @@ void CAlienFlyer :: Spawn( void )
if (pev->spawnflags & SF_WAITFORTRIGGER)
{
SetUse( StartupUse );
SetUse( &CAlienFlyer::StartupUse );
m_activated = false;
pev->effects |= EF_NODRAW;
}
else
{
SetThink( HuntThink );
SetTouch( FlyTouch );
SetThink( &CAlienFlyer::HuntThink );
SetTouch( &CAlienFlyer::FlyTouch );
pev->nextthink = gpGlobals->time + 1.0;
m_activated = true;
}
@ -222,7 +222,7 @@ void CAlienFlyer::Activate( void )
if ( FStringNull(pev->targetname) )
{ // not triggered, so start immediately
pev->nextthink = pev->ltime + 0.1;
SetThink( HuntThink );
SetThink( &CAlienFlyer::HuntThink );
}
else
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 )
{
pev->effects &= ~EF_NODRAW;
SetThink( HuntThink );
SetTouch( FlyTouch );
SetThink( &CAlienFlyer::HuntThink );
SetTouch( &CAlienFlyer::FlyTouch );
pev->nextthink = gpGlobals->time + 0.1;
SetUse( NULL );
}
@ -274,8 +274,8 @@ void CAlienFlyer :: Killed( entvars_t *pevAttacker, int iGib )
pev->gravity = 0.3;
UTIL_SetSize( pev, Vector( -32, -32, -64), Vector( 32, 32, 0) );
SetThink( DyingThink );
SetTouch( CrashTouch );
SetThink( &CAlienFlyer::DyingThink );
SetTouch( &CAlienFlyer::CrashTouch );
pev->nextthink = gpGlobals->time + 0.1;
pev->health = 0;
pev->takedamage = DAMAGE_NO;
@ -428,7 +428,7 @@ void CAlienFlyer :: DyingThink( void )
WRITE_BYTE( BREAK_FLESH );
MESSAGE_END();
SetThink( SUB_Remove );
SetThink( &CAlienFlyer::SUB_Remove );
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 );
UTIL_Ricochet( ptr->vecEndPos, 2.0 );
}
}
}

View File

@ -63,11 +63,11 @@ BOOL skin_used[MAX_SKINS] = {
FALSE };
// store the names of the models...
char *bot_skins[MAX_SKINS] = {
const char *bot_skins[MAX_SKINS] = {
"ginacol", "player/dm_slave/dm_slave" };
// store the player names for each of the models...
char *bot_names[MAX_SKINS] = {
const char *bot_names[MAX_SKINS] = {
"Colette", "R-4913" };
// sounds for TakeDamage speaking effects...
@ -96,13 +96,13 @@ inline char *GET_INFOBUFFER( edict_t *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 ));
}
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 );
}

View File

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

View File

@ -113,7 +113,7 @@ ammo_check_t ammo_check[] = {
typedef struct
{
char *enemy_name;
const char *enemy_name;
byte enemy_id;
byte preferred_weapons_id[3];
} 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));
SetActivity( ACT_CROUCHIDLE );
SetThink ( ScannerThink );
SetThink ( &CEyeScanner::ScannerThink );
pev->nextthink = gpGlobals->time + 0.1;
//pev->frame = RANDOM_FLOAT(0,255);
}
@ -196,7 +196,7 @@ void CEyeScanner :: Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE
m_iCheckLoop = 0;
m_iCheckFrame = 1;
m_bState = FALSE;
SetThink( UseThink );
SetThink( &CEyeScanner::UseThink );
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 );
}
SetThink( ScannerThink );
SetThink( &CEyeScanner::ScannerThink );
pev->skin = 0;
return;
}
@ -233,4 +233,4 @@ void CEyeScanner :: UseThink( void )
pev->skin = m_iCheckFrame;
m_iCheckFrame++;
}
}

View File

@ -42,7 +42,7 @@
// START BOT
#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_botskill; // default bot skill level
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)
BotCreate(bot_respawn[index].skin,
bot_respawn[index].name,
bot_respawn[index].skill);
bot_respawn[index].skill);
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 )
// (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 "util.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,
char *key, char *value )
const char *key, const char *value )
{
(*g_engfuncs.pfnSetClientKeyValue)( clientIndex, infobuffer, key, value );
}
@ -112,7 +120,7 @@ int getMapEntryId( int desiredId )
return -1;
}
int findMapId( static char* szMapName )
int findMapId( char* szMapName )
{
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);
}
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 )
{
char buffer[MAX_COMPUTERNAME_LENGTH+1];
DWORD size;
size=sizeof(buffer);
GetComputerName(buffer,&size);
Platform_GetComputerName( buffer, sizeof( buffer ));
m_iMagicWord1 = 0;
@ -187,10 +205,10 @@ CDecayRules::CDecayRules( void )
statsLoad();
memset( &this->pStats[0], 0, sizeof t_playerStats );
memset( &this->pStats[1], 0, sizeof t_playerStats );
memset( &this->pStats[2], 0, sizeof t_playerStats );
memset( &this->pStats[3], 0, sizeof t_playerStats );
memset( &this->pStats[0], 0, sizeof( t_playerStats ));
memset( &this->pStats[1], 0, sizeof( t_playerStats ));
memset( &this->pStats[2], 0, sizeof( t_playerStats ));
memset( &this->pStats[3], 0, sizeof( t_playerStats ));
int curMapId = this->getDecayMapId();
if ( curMapId != -1 )
@ -322,11 +340,8 @@ void CDecayRules::statsSave()
byte bEntryCount = 0;
/*********/
char buffer[MAX_COMPUTERNAME_LENGTH+1];
DWORD size;
size=sizeof(buffer);
GetComputerName(buffer,&size);
char buffer[MAX_COMPUTERNAME_LENGTH+1];
Platform_GetComputerName( buffer, sizeof( buffer ));
m_iMagicWord1 = 0;
int cnl = strlen(buffer);
@ -442,7 +457,11 @@ void CDecayRules::statsExportXml( void )
char szFilename[MAX_PATH];
GET_GAME_DIR( szFilename );
strcat( szFilename, "/manual" );
#if XASH_WIN32
CreateDirectory( szFilename, NULL );
#else
mkdir( szFilename, 0777 );
#endif
strcat( szFilename, "/stats.xml" );
FILE *fp;
@ -910,9 +929,7 @@ int CDecayRules :: getDecayMapId()
void CDecayRules :: savePlayerStats( int playerId, int finalGrade, int damageGrade, int killsGrade, int accuracyGrade )
{
char buffer[MAX_COMPUTERNAME_LENGTH+1];
DWORD size;
size=sizeof(buffer);
GetComputerName(buffer,&size);
Platform_GetComputerName( buffer, sizeof( buffer ));
m_iMagicWord1 = 0;
@ -1271,7 +1288,7 @@ void CopyWeaponsAndAmmo(CBasePlayer *PlayerFrom, CBasePlayer *PlayerTo, bool bDu
pNextWeapon = pWeapon->m_pNext;
// 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" );
}

View File

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

View File

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

View File

@ -382,7 +382,7 @@ void CMdlCharger::Spawn()
SetSequence( seqCharge_Inactive );
SetThink(ChargerThink);
SetThink(&CMdlCharger::ChargerThink);
if (g_pGameRules->IsCoOp() )
{
@ -580,7 +580,7 @@ void CMdlCharger::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE u
//pFluidTank->StartUse();
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
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 );
m_iJuice = gSkillData.suitchargerCapacity;
pev->skin = CHARGER_ACTIVE; // set the active skin
SetThink( ChargerThink );
SetThink( &CMdlCharger::ChargerThink );
}
void CMdlCharger::Off(void)
{
m_flStopCharge = gpGlobals->time + 0.25;
SetThink( ChargerThink );
SetThink( &CMdlCharger::ChargerThink );
pev->nextthink = gpGlobals->time + 0.01;
// Stop looping sound.
@ -653,10 +653,10 @@ void CMdlCharger::Off(void)
if ((!m_iJuice) && ( ( m_iReactivate = g_pGameRules->FlHEVChargerRechargeTime() ) > 0) )
{
pev->nextthink = pev->ltime + m_iReactivate;
SetThink( Recharge );
SetThink( &CMdlCharger::Recharge );
}
//else
// SetThink( SUB_DoNothing );
// SetThink( &CMdlCharger::SUB_DoNothing );
SetSequence( seqCharge_RetractShot );
}

View File

@ -321,7 +321,7 @@ void CMdlWallHealthTank::Spawn()
SetBoneController( 0, 0 ); // -11 to 0 (empty to full)
SetSequence( seq_Still );
SetThink( TankThink );
SetThink( &CMdlWallHealthTank::TankThink );
if (g_pGameRules->IsCoOp() )
{
@ -487,7 +487,7 @@ void CMdlWallHealth::Spawn()
// 180..360 - ang 90 use -270
SetSequence( seq_Inactive );
SetThink(ChargerThink);
SetThink(&CMdlWallHealth::ChargerThink);
pev->nextthink = gpGlobals->time + 0.1;
}
@ -681,7 +681,7 @@ void CMdlWallHealth::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYP
pFluidTank->StartUse();
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
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 );
m_iJuice = gSkillData.healthchargerCapacity;
pev->skin = HEALTHSTATION_FULL; // set the active skin
SetThink( ChargerThink );
SetThink( &CMdlWallHealth::ChargerThink );
}
void CMdlWallHealth::Off(void)
{
m_flStopCharge = gpGlobals->time + 0.25;
SetThink( ChargerThink );
SetThink( &CMdlWallHealth::ChargerThink );
pev->nextthink = gpGlobals->time + 0.01;
// Stop looping sound.
@ -747,10 +747,10 @@ void CMdlWallHealth::Off(void)
if ((!m_iJuice) && ( ( m_iReactivate = g_pGameRules->FlHealthChargerRechargeTime() ) > 0) )
{
pev->nextthink = pev->ltime + m_iReactivate;
SetThink(Recharge);
SetThink(&CMdlWallHealth::Recharge);
}
//else
// SetThink( SUB_DoNothing );
// SetThink( &CMdlWallHealth::SUB_DoNothing );
}
void CMdlWallHealth::TurnOff( void )

View File

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

View File

@ -277,7 +277,7 @@ void CFuncModelTrain:: Next( void )
}
}
}
SetThink( Next );
SetThink( &CFuncModelTrain::Next );
NextThink( pev->ltime + time, TRUE );
}
else // end of path, stop
@ -298,7 +298,7 @@ void CFuncModelTrain:: Next( void )
// no, how long to get there?
time = distance / m_oldSpeed;
pev->velocity = pev->velocity * (m_oldSpeed / distance);
SetThink( DeadEnd );
SetThink( &CFuncModelTrain::DeadEnd );
NextThink( pev->ltime + time, FALSE );
}
else
@ -419,7 +419,7 @@ void CFuncModelTrain :: Find( void )
pev->angles.x = 0;
UTIL_SetOrigin( pev, nextPos );
NextThink( pev->ltime + 0.1, FALSE );
SetThink( Next );
SetThink( &CFuncModelTrain::Next );
pev->speed = m_startSpeed;
}
@ -467,14 +467,14 @@ void CFuncModelTrain :: NearestPath( void )
if ( pev->speed != 0 )
{
NextThink( pev->ltime + 0.1, FALSE );
SetThink( Next );
SetThink( &CFuncModelTrain::Next );
}
}
void CFuncModelTrain ::OverrideReset( void )
{
NextThink( pev->ltime + 0.1, FALSE );
SetThink( NearestPath );
SetThink( &CFuncModelTrain::NearestPath );
}
void CFuncModelTrain ::Animate( float frames )
@ -519,10 +519,10 @@ void CFuncModelTrain :: Spawn( void )
m_maxFrame = (float) MODEL_FRAMES( pev->modelindex ) - 1;
NextThink( pev->ltime + 0.1, FALSE );
SetThink( Find );
SetThink( &CFuncModelTrain::Find );
}
void CFuncModelTrain :: Precache( void )
{
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;
SetThink(Off);
SetThink(&CNotepad::Off);
// Time to recharge yet?
@ -108,7 +108,7 @@ void CNotepad::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useT
return;
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 );
MESSAGE_END();
@ -119,7 +119,7 @@ void CNotepad::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useT
void CNotepad::Recharge(void)
{
pev->frame = 0;
SetThink( SUB_DoNothing );
SetThink( &CNotepad::SUB_DoNothing );
}
void CNotepad::Off(void)
@ -129,8 +129,8 @@ void CNotepad::Off(void)
if ((!m_iJuice) && ( ( m_iReactivate = g_pGameRules->FlHealthChargerRechargeTime() ) > 0) )
{
pev->nextthink = pev->ltime + m_iReactivate;
SetThink(Recharge);
SetThink(&CNotepad::Recharge);
}
else
SetThink( SUB_DoNothing );
SetThink( &CNotepad::SUB_DoNothing );
}

View File

@ -189,7 +189,15 @@ int gmsgSetFOV = 0;
int gmsgShowMenu = 0;
int gmsgGeigerRange = 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 gmsgStatusValue = 0;
@ -926,7 +934,7 @@ void CBasePlayer::PackAllItems( void )
pWeaponBox->pev->angles.x = 0;// don't let weaponbox tilt.
pWeaponBox->pev->angles.z = 0;
pWeaponBox->SetThink( CWeaponBox::Kill );
pWeaponBox->SetThink( &CWeaponBox::Kill );
pWeaponBox->pev->nextthink = gpGlobals->time + 120;
// 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,
char *key, char *value )
const char *key, const char *value )
{
(*g_engfuncs.pfnSetClientKeyValue)( clientIndex, infobuffer, key, value );
}
@ -3224,7 +3232,7 @@ void CBasePlayer::Spawn( void )
{
GiveNamedItem( "item_suit" );
while ( pWeaponEntity = UTIL_FindEntityByClassname( pWeaponEntity, "game_player_equip" ))
while(( pWeaponEntity = UTIL_FindEntityByClassname( pWeaponEntity, "game_player_equip" )))
{
pWeaponEntity->Touch( this );
}
@ -3701,16 +3709,6 @@ void CBasePlayer::ForceClientDllUpdate( void )
m_fInitHUD = TRUE; // Force HUD gmsgResetHUD message
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
// to be sent.
UpdateClientData();

View File

@ -1140,8 +1140,8 @@ void CPriestHeadBall :: Spawn( void )
UTIL_SetSize(pev, Vector( 0, 0, 0), Vector(0, 0, 0));
UTIL_SetOrigin( pev, pev->origin );
SetThink( HuntThink );
SetTouch( BounceTouch );
SetThink( &CPriestHeadBall::HuntThink );
SetTouch( &CPriestHeadBall::BounceTouch );
m_vecIdeal = Vector( 0, 0, 0 );
@ -1234,7 +1234,7 @@ void CPriestHeadBall :: HuntThink( void )
m_flNextAttack = gpGlobals->time + 3.0;
SetThink( DieThink );
SetThink( &CPriestHeadBall::DieThink );
pev->nextthink = gpGlobals->time + 0.3;
}
// Crawl( );
@ -1345,8 +1345,8 @@ void CPriestZapBall :: Spawn( void )
UTIL_SetSize(pev, Vector( 0, 0, 0), Vector(0, 0, 0));
UTIL_SetOrigin( pev, pev->origin );
SetThink( AnimateThink );
SetTouch( ExplodeTouch );
SetThink( &CPriestZapBall::AnimateThink );
SetTouch( &CPriestZapBall::ExplodeTouch );
m_hOwner = Instance( pev->owner );
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;
MonsterInit();
SetUse( FollowerUse );
SetUse( &CTalkMonster::FollowerUse );
}
void CWheelChairScientist :: Precache( void )
@ -1664,7 +1664,7 @@ void CRosenberg :: Spawn( )
SetBodygroup( HEAD_GROUP, 0 );
MonsterInit();
SetUse( FollowerUse );
SetUse( &CTalkMonster::FollowerUse );
}
void CRosenberg :: Precache( void )

View File

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

View File

@ -30,7 +30,9 @@
#include "shake.h" // trigger_enddecay fading constants
#include "effects.h" // env_render can use instance of CEnvMirroredLaser
#include "triggers.h"
#if XASH_WIN32 // a1ba: bruh
#include "shellapi.h"
#endif
#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
@ -617,7 +619,7 @@ void CMultiManager::ManagerThink( void )
if ( pev->spawnflags & SF_MM_KILLTARGETS )
{
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 ] ) );
UTIL_Remove( pEntity );
@ -1906,7 +1908,7 @@ void CChangeLevel::ChangeLevelNow( CBaseEntity *pActivator )
Vyacheslav Dzhura: 8/9/2008
DONE: COMMENTED - EXPERIMENTAL!!!!!!!!
*/
if ( g_pGameRules->IsCoOp )
if ( g_pGameRules->IsCoOp( ))
{
char cmd[128];
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++)
if ( szFilename2[i] == '/' ) szFilename2[i] = '\\';
#if XASH_WIN32 // a1ba: BRUH
if (!IS_DEDICATED_SERVER())
ShellExecute( GetActiveWindow(), "open", "iexplore", szFilename, szFilename2, SW_MAXIMIZE);
#endif // XASH_WIN32
// Only save on clients
if( pActivator && !pActivator->IsNetClient() )
@ -2891,11 +2895,11 @@ void CTriggerEndDecay::Spawn( void )
InitTrigger();
SetThink( SUB_DoNothing );
SetUse ( EndDecayUse );
SetThink( &CTriggerEndDecay::SUB_DoNothing );
SetUse ( &CTriggerEndDecay::EndDecayUse );
// If it is a "use only" trigger, then don't set the touch function.
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) );
pev->nextthink = gpGlobals->time + 7;
SetThink( EndDecayThink );
SetThink( &CTriggerEndDecay::EndDecayThink );
}
void CTriggerEndDecay::EndDecayThink( void )

View File

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

View File

@ -455,7 +455,7 @@ void CBasePlayerItem::FallInit( void )
{
pev->solid = SOLID_TRIGGER;
UTIL_SetOrigin( pev, pev->origin );// link into world.
SetTouch (DefaultTouch);
SetTouch (&CBasePlayerItem::DefaultTouch);
SetThink (NULL);
return;
}
@ -858,7 +858,7 @@ int CBasePlayerWeapon::UpdateClientData( CBasePlayer *pPlayer )
m_pNext->UpdateClientData( pPlayer );
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;
}
}

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
HLDEMO_BUILD=OFF # Demo Build
GAMEDIR=valve # Gamedir path
GAMEDIR=decay # Gamedir path
SERVER_INSTALL_DIR=dlls # Where put server 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