diff --git a/cl_dll/CMakeLists.txt b/cl_dll/CMakeLists.txt index f6ecbb9f..487200b9 100644 --- a/cl_dll/CMakeLists.txt +++ b/cl_dll/CMakeLists.txt @@ -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 diff --git a/cl_dll/cdll_int.cpp b/cl_dll/cdll_int.cpp index dd0a0907..fa2cc7af 100644 --- a/cl_dll/cdll_int.cpp +++ b/cl_dll/cdll_int.cpp @@ -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; diff --git a/cl_dll/health.cpp b/cl_dll/health.cpp index ce5cee69..c0be3bca 100644 --- a/cl_dll/health.cpp +++ b/cl_dll/health.cpp @@ -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; diff --git a/cl_dll/hud.h b/cl_dll/hud.h index fc0cd5ab..660f18ac 100644 --- a/cl_dll/hud.h +++ b/cl_dll/hud.h @@ -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 diff --git a/cl_dll/message.cpp b/cl_dll/message.cpp index 84675e35..fd6062b9 100644 --- a/cl_dll/message.cpp +++ b/cl_dll/message.cpp @@ -37,7 +37,7 @@ int CHudMessage::Init( void ) HOOK_MESSAGE( HudText ); HOOK_MESSAGE( GameTitle ); - iFlags |= HUD_ALIEN; + m_iFlags |= HUD_ALIEN; gHUD.AddHudElem( this ); diff --git a/cl_dll/tri.cpp b/cl_dll/tri.cpp index a1da6b37..9c6776f2 100644 --- a/cl_dll/tri.cpp +++ b/cl_dll/tri.cpp @@ -5,8 +5,6 @@ // $NoKeywords: $ //============================================================================= -#include -//#include #include "hud.h" #include "cl_util.h" diff --git a/cl_dll/view.cpp b/cl_dll/view.cpp index 062f830e..30632a67 100644 --- a/cl_dll/view.cpp +++ b/cl_dll/view.cpp @@ -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; diff --git a/cl_dll/wscript b/cl_dll/wscript index 6f50001d..b2fece8d 100644 --- a/cl_dll/wscript +++ b/cl_dll/wscript @@ -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', ]) diff --git a/dlls/CMakeLists.txt b/dlls/CMakeLists.txt index b78706c5..82ba1d08 100644 --- a/dlls/CMakeLists.txt +++ b/dlls/CMakeLists.txt @@ -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 diff --git a/dlls/alienflyer.cpp b/dlls/alienflyer.cpp index f013f387..fa7a99c6 100644 --- a/dlls/alienflyer.cpp +++ b/dlls/alienflyer.cpp @@ -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 ); } -} \ No newline at end of file +} diff --git a/dlls/bot.cpp b/dlls/bot.cpp index 7770deba..e970ec9f 100644 --- a/dlls/bot.cpp +++ b/dlls/bot.cpp @@ -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 ); } diff --git a/dlls/bot.h b/dlls/bot.h index 1bdffe8f..279541eb 100644 --- a/dlls/bot.h +++ b/dlls/bot.h @@ -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; diff --git a/dlls/bot_combat.cpp b/dlls/bot_combat.cpp index 5d5a5322..6f9f892d 100644 --- a/dlls/bot_combat.cpp +++ b/dlls/bot_combat.cpp @@ -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; diff --git a/dlls/chargers.cpp b/dlls/chargers.cpp index 0c686b62..c4570883 100644 --- a/dlls/chargers.cpp +++ b/dlls/chargers.cpp @@ -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++; -} \ No newline at end of file +} diff --git a/dlls/client.cpp b/dlls/client.cpp index c3afdb3c..f2ee832e 100644 --- a/dlls/client.cpp +++ b/dlls/client.cpp @@ -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 } diff --git a/dlls/decay_gamerules.cpp b/dlls/decay_gamerules.cpp index 2ca90c61..daa7ed99 100644 --- a/dlls/decay_gamerules.cpp +++ b/dlls/decay_gamerules.cpp @@ -17,6 +17,14 @@ // Author: Vyacheslav Dzhura ( slava.dzhura@gmail.com ; slava.dzhura@protonmail.com ) // (C) 2008 // +#ifdef XASH_WIN32 +#include +#else +#include +#include +#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" ); } diff --git a/dlls/displacer.cpp b/dlls/displacer.cpp index a16cbfa3..ca8e338e 100644 --- a/dlls/displacer.cpp +++ b/dlls/displacer.cpp @@ -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 ); -} \ No newline at end of file +} diff --git a/dlls/effects.cpp b/dlls/effects.cpp index 76f0def4..3aa8ef1c 100644 --- a/dlls/effects.cpp +++ b/dlls/effects.cpp @@ -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 { diff --git a/dlls/h_battery.cpp b/dlls/h_battery.cpp index 3109f946..e34bb60c 100644 --- a/dlls/h_battery.cpp +++ b/dlls/h_battery.cpp @@ -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 ); } diff --git a/dlls/healthkit.cpp b/dlls/healthkit.cpp index 06cd56f3..67121504 100644 --- a/dlls/healthkit.cpp +++ b/dlls/healthkit.cpp @@ -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 ) diff --git a/dlls/items.cpp b/dlls/items.cpp index 412c1f30..65bdcaa3 100644 --- a/dlls/items.cpp +++ b/dlls/items.cpp @@ -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; diff --git a/dlls/modeltrain.cpp b/dlls/modeltrain.cpp index 32d7cdb9..f9073fc4 100644 --- a/dlls/modeltrain.cpp +++ b/dlls/modeltrain.cpp @@ -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) ); -} \ No newline at end of file +} diff --git a/dlls/notepad.cpp b/dlls/notepad.cpp index 56a35b76..c0670bc6 100644 --- a/dlls/notepad.cpp +++ b/dlls/notepad.cpp @@ -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 ); } diff --git a/dlls/player.cpp b/dlls/player.cpp index 58ad5d84..509f073a 100644 --- a/dlls/player.cpp +++ b/dlls/player.cpp @@ -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(); diff --git a/dlls/priest.cpp b/dlls/priest.cpp index bbc16792..ba14fd59 100644 --- a/dlls/priest.cpp +++ b/dlls/priest.cpp @@ -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 diff --git a/dlls/scientist.cpp b/dlls/scientist.cpp index 2a325ac6..60f30cd5 100644 --- a/dlls/scientist.cpp +++ b/dlls/scientist.cpp @@ -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 ) diff --git a/dlls/spritetrain.cpp b/dlls/spritetrain.cpp index f1f62b22..f951bd14 100644 --- a/dlls/spritetrain.cpp +++ b/dlls/spritetrain.cpp @@ -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) ); -} \ No newline at end of file +} diff --git a/dlls/triggers.cpp b/dlls/triggers.cpp index 3f893ec2..50ecd86e 100644 --- a/dlls/triggers.cpp +++ b/dlls/triggers.cpp @@ -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 ) diff --git a/dlls/vorti.cpp b/dlls/vorti.cpp index e7771e6f..5b01881b 100644 --- a/dlls/vorti.cpp +++ b/dlls/vorti.cpp @@ -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; diff --git a/dlls/weapons.cpp b/dlls/weapons.cpp index 5ef7792b..4bc7227f 100644 --- a/dlls/weapons.cpp +++ b/dlls/weapons.cpp @@ -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; } } diff --git a/how_to_play.txt b/how_to_play.txt new file mode 100644 index 00000000..9695973f --- /dev/null +++ b/how_to_play.txt @@ -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 doesn’t 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 Decay’s 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, don’t 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 doesn’t 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 don’t 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 diff --git a/mod_options.txt b/mod_options.txt index 8cba4164..2fd4bfcf 100644 --- a/mod_options.txt +++ b/mod_options.txt @@ -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