diff --git a/game/client/hl1/hl1_clientmode.cpp b/game/client/hl1/hl1_clientmode.cpp index 8112344e..575632d1 100644 --- a/game/client/hl1/hl1_clientmode.cpp +++ b/game/client/hl1/hl1_clientmode.cpp @@ -95,16 +95,12 @@ protected: //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- -ClientModeHL1Normal::ClientModeHL1Normal() -{ -} +ClientModeHL1Normal::ClientModeHL1Normal() = default; //----------------------------------------------------------------------------- // Purpose: If you don't know what a destructor is by now, you are probably going to get fired //----------------------------------------------------------------------------- -ClientModeHL1Normal::~ClientModeHL1Normal() -{ -} +ClientModeHL1Normal::~ClientModeHL1Normal() = default; void ClientModeHL1Normal::InitViewport() { diff --git a/game/server/hl1/hl1_npc_bigmomma.cpp b/game/server/hl1/hl1_npc_bigmomma.cpp index 2f1cff32..cbfdad21 100644 --- a/game/server/hl1/hl1_npc_bigmomma.cpp +++ b/game/server/hl1/hl1_npc_bigmomma.cpp @@ -88,8 +88,8 @@ enum // Attack distance constants #define BIG_ATTACKDIST 170 -#define BIG_MORTARDIST 800 -#define BIG_MAXCHILDREN 6 // Max # of live headcrab children +#define BIG_MORTARDIST 100 +#define BIG_MAXCHILDREN 8 // Max # of live headcrab children #define bits_MEMORY_CHILDPAIR (bits_MEMORY_CUSTOM1) @@ -1310,4 +1310,4 @@ AI_BEGIN_CUSTOM_NPC( monster_bigmomma, CNPC_BigMomma ) AI_END_CUSTOM_NPC() - + \ No newline at end of file diff --git a/game/server/hl1/hl1_npc_hgrunt.cpp b/game/server/hl1/hl1_npc_hgrunt.cpp index f443541a..5ee5b456 100644 --- a/game/server/hl1/hl1_npc_hgrunt.cpp +++ b/game/server/hl1/hl1_npc_hgrunt.cpp @@ -2557,7 +2557,14 @@ AI_BEGIN_CUSTOM_NPC( monster_human_grunt, CNPC_HGrunt ) AI_END_CUSTOM_NPC() +// Nothing , just shit +/* void MortarSpray(const Vector& position, const Vector& direction, int spriteModel, int count) +{ + CPVSFilter filter(position); + te->SpriteSpray(filter, 0.0, &position, &direction, spriteModel, 200, 80, count); +} + */ //========================================================= // DEAD HGRUNT PROP //========================================================= @@ -2641,4 +2648,4 @@ void CNPC_DeadHGrunt::Spawn( void ) } NPCInitDead(); -} +} \ No newline at end of file diff --git a/game/server/hl1/hl1_weapon_crowbar.cpp b/game/server/hl1/hl1_weapon_crowbar.cpp index f11f6401..c11fcf9c 100644 --- a/game/server/hl1/hl1_weapon_crowbar.cpp +++ b/game/server/hl1/hl1_weapon_crowbar.cpp @@ -6,6 +6,8 @@ //=============================================================================// #include "cbase.h" +#include "convar.h" +#include "iconvar.h" #include "hl1mp_basecombatweapon_shared.h" #ifdef CLIENT_DLL @@ -16,6 +18,8 @@ #include "player.h" #include "soundent.h" #endif +#include "decals.h" +#include "hl1_basecombatweapon_shared.h" #include "gamerules.h" #include "ammodef.h" @@ -23,9 +27,34 @@ #include "in_buttons.h" #include "vstdlib/random.h" +//For CrowbarVolume function +#include extern ConVar sk_plr_dmg_crowbar; +//new conVars for crowbar +//Crowbar Sounds +ConVar hl1_crowbar_sound("hl1_crowbar_sound", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_concrete("hl1_crowbar_concrete", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_metal("hl1_crowbar_metal", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_dirt("hl1_crowbar_dirt", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_vent("hl1_crowbar_vent", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_grate("hl1_crowbar_grate", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_tile("hl1_crowbar_tile", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_wood("hl1_crowbar_wood", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_glass("hl1_crowbar_glass", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_computer("hl1_crowbar_computer", "1", FCVAR_NONE, NULL); + +ConVar hl1_crowbar_concrete_vol("hl1_crowbar_concrete_vol", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_metal_vol("hl1_crowbar_metal_vol", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_dirt_vol("hl1_crowbar_dirt_vol", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_vent_vol("hl1_crowbar_vent_vol", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_grate_vol("hl1_crowbar_grate_vol", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_tile_vol("hl1_crowbar_tile_vol", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_wood_vol("hl1_crowbar_wood_vol", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_glass_vol("hl1_crowbar_glass_vol", "1", FCVAR_NONE, NULL); +ConVar hl1_crowbar_computer_vol("hl1_crowbar_computer_vol", "1", FCVAR_NONE, NULL); + #define CROWBAR_RANGE 64.0f #define CROWBAR_REFIRE_MISS 0.5f #define CROWBAR_REFIRE_HIT 0.25f @@ -35,9 +64,69 @@ extern ConVar sk_plr_dmg_crowbar; #define CWeaponCrowbar C_WeaponCrowbar #endif + +struct TextureVolume +{ + char type; + ConVar* enabledVar; + ConVar* volumeVar; +}; //----------------------------------------------------------------------------- // CWeaponCrowbar //----------------------------------------------------------------------------- +// Define texture types and their associated ConVars + TextureVolume textureVolumes[] = { + {CHAR_TEX_CONCRETE, &hl1_crowbar_concrete, &hl1_crowbar_concrete_vol}, + {CHAR_TEX_METAL, &hl1_crowbar_metal, &hl1_crowbar_metal_vol}, + {CHAR_TEX_DIRT, &hl1_crowbar_dirt, &hl1_crowbar_dirt_vol}, + {CHAR_TEX_VENT, &hl1_crowbar_vent, &hl1_crowbar_vent_vol}, + {CHAR_TEX_GRATE, &hl1_crowbar_grate, &hl1_crowbar_grate_vol}, + {CHAR_TEX_TILE, &hl1_crowbar_tile, &hl1_crowbar_tile_vol}, + {CHAR_TEX_WOOD, &hl1_crowbar_wood, &hl1_crowbar_wood_vol}, + {CHAR_TEX_GLASS, &hl1_crowbar_glass, &hl1_crowbar_glass_vol}, + {CHAR_TEX_COMPUTER, &hl1_crowbar_computer, &hl1_crowbar_computer_vol} + }; + +float GetCrowbarVolume(const trace_t &ptr) +{ + if (!hl1_crowbar_sound.GetBool()) + return 0.0f; + + float fvol = 0.0; + // Assume we determine the texture type based on entity properties or surface data + char mType = 0; + + if (ptr.surface.name) + { + // Check the surface name for certain substrings to classify texture types + if (strstr(ptr.surface.name, "concrete")) mType = CHAR_TEX_CONCRETE; + else if (strstr(ptr.surface.name, "metal")) mType = CHAR_TEX_METAL; + else if (strstr(ptr.surface.name, "dirt")) mType = CHAR_TEX_DIRT; + else if (strstr(ptr.surface.name, "vent")) mType = CHAR_TEX_VENT; + else if (strstr(ptr.surface.name, "grate")) mType = CHAR_TEX_GRATE; + else if (strstr(ptr.surface.name, "tile")) mType = CHAR_TEX_TILE; + else if (strstr(ptr.surface.name, "wood")) mType = CHAR_TEX_WOOD; + else if (strstr(ptr.surface.name, "glass")) mType = CHAR_TEX_GLASS; + else if (strstr(ptr.surface.name, "computer")) mType = CHAR_TEX_COMPUTER; + } + + for (const auto& tv : textureVolumes) + { + if (mType == tv.type && tv.enabledVar->GetBool()) + { + fvol = tv.volumeVar->GetFloat() / 10; + break; + } + } + + CBaseEntity* pEntity = ptr.m_pEnt; + if (pEntity && FClassnameIs(pEntity, "func_breakable")) + { + fvol /= 2.0; + } + + return fvol; +} class CWeaponCrowbar : public CBaseHL1MPCombatWeapon { @@ -63,7 +152,7 @@ private: virtual void Swing( void ); virtual void Hit( void ); virtual void ImpactEffect( void ); - void ImpactSound( CBaseEntity *pHitEntity ); + void ImpactSound( CBaseEntity *pHitEntity); virtual Activity ChooseIntersectionPointAndActivity( trace_t &hitTrace, const Vector &mins, const Vector &maxs, CBasePlayer *pOwner ); public: @@ -149,7 +238,7 @@ void CWeaponCrowbar::ItemPostFrame( void ) //------------------------------------------------------------------------------ void CWeaponCrowbar::PrimaryAttack() { - Swing(); + this->Swing(); } @@ -206,15 +295,19 @@ void CWeaponCrowbar::ImpactSound( CBaseEntity *pHitEntity ) bIsWorld |= pHitEntity->Classify() == CLASS_NONE || pHitEntity->Classify() == CLASS_MACHINE; } #endif + trace_t Trace; + memset(&Trace, 0, sizeof(trace_t)); + Trace.m_pEnt = pHitEntity; - if( bIsWorld ) - { - WeaponSound( MELEE_HIT_WORLD ); - } - else - { - WeaponSound( MELEE_HIT ); - } + float m_SoundTexture = GetCrowbarVolume(Trace); + if (bIsWorld) + { + WeaponSound(MELEE_HIT_WORLD, m_SoundTexture); + } + else + { + WeaponSound(MELEE_HIT, m_SoundTexture); + } } Activity CWeaponCrowbar::ChooseIntersectionPointAndActivity( trace_t &hitTrace, const Vector &mins, const Vector &maxs, CBasePlayer *pOwner ) diff --git a/game/server/hl2/weapon_357.cpp b/game/server/hl2/weapon_357.cpp index 2b3a3a12..51593133 100644 --- a/game/server/hl2/weapon_357.cpp +++ b/game/server/hl2/weapon_357.cpp @@ -112,7 +112,7 @@ void CWeapon357::PrimaryAttack( void ) else { WeaponSound( EMPTY ); - m_flNextPrimaryAttack = 0.15; + m_flNextPrimaryAttack = 0.1; } return; diff --git a/game/shared/gamerules.cpp b/game/shared/gamerules.cpp index f24d5658..8ca6ccd9 100644 --- a/game/shared/gamerules.cpp +++ b/game/shared/gamerules.cpp @@ -859,7 +859,7 @@ void CGameRules::ClientSettingsChanged( CBasePlayer *pPlayer ) if ( pszFov ) { int iFov = atoi(pszFov); - iFov = clamp( iFov, 75, 110 ); + iFov = clamp( iFov, 75, 150 ); pPlayer->SetDefaultFOV( iFov ); } diff --git a/gameui/OptionsDialog.cpp b/gameui/OptionsDialog.cpp index b80c7063..59aecd12 100644 --- a/gameui/OptionsDialog.cpp +++ b/gameui/OptionsDialog.cpp @@ -99,7 +99,7 @@ COptionsDialog::COptionsDialog(vgui::Panel *parent) : PropertyDialog(parent, "Op AddPage(m_pOptionsSubVideo, "#GameUI_Video"); AddPage(new COptionsSubModification(this), "ModInfo"); AddPage(new COptionsSubPortal(this), "#GameUI_Portal"); - + if ( !ModInfo().IsSinglePlayerOnly() ) { AddPage(new COptionsSubVoice(this), "#GameUI_Voice"); diff --git a/gameui/OptionsSubAudio.cpp b/gameui/OptionsSubAudio.cpp index bb82cefc..04fec64f 100644 --- a/gameui/OptionsSubAudio.cpp +++ b/gameui/OptionsSubAudio.cpp @@ -72,9 +72,7 @@ COptionsSubAudio::COptionsSubAudio(vgui::Panel *parent) : PropertyPage(parent, N //----------------------------------------------------------------------------- // Purpose: Destructor //----------------------------------------------------------------------------- -COptionsSubAudio::~COptionsSubAudio() -{ -} +COptionsSubAudio::~COptionsSubAudio() = default; //----------------------------------------------------------------------------- // Purpose: Reloads data diff --git a/gameui/OptionsSubModification.h b/gameui/OptionsSubModification.h index 491d305c..7ea73039 100644 --- a/gameui/OptionsSubModification.h +++ b/gameui/OptionsSubModification.h @@ -51,7 +51,8 @@ protected: void UpdateLabel(CCvarSlider *slider, vgui::TextEntry *label); private: - CCvarToggleCheckButton *m_pReverseTouchCheckBox; + // Get from OptionsSubTouchSettings.cpp + /* CCvarToggleCheckButton *m_pReverseTouchCheckBox; CCvarToggleCheckButton *m_pTouchFilterCheckBox; CCvarToggleCheckButton *m_pTouchRawCheckBox; CCvarToggleCheckButton *m_pTouchAccelerationCheckBox; @@ -73,7 +74,7 @@ private: CCvarSlider *m_pTouchPitchSensitivitySlider; vgui::Label *m_pTouchPitchSensitivityPreLabel; vgui::TextEntry *m_pTouchYawSensitivityLabel; - vgui::TextEntry *m_pTouchPitchSensitivityLabel; + vgui::TextEntry *m_pTouchPitchSensitivityLabel; */ vgui::TextEntry *m_aspectRatioLabel; CCvarSlider *m_pEnableModificationsCheckBox; }; diff --git a/gameui/OptionsSubMouse.cpp b/gameui/OptionsSubMouse.cpp index 27695d36..2c636b41 100644 --- a/gameui/OptionsSubMouse.cpp +++ b/gameui/OptionsSubMouse.cpp @@ -7,7 +7,7 @@ //=============================================================================// #include "OptionsSubMouse.h" // #include "CommandCheckButton.h" -#include "KeyToggleCheckButton.h" +//#include "KeyToggleCheckButton.h" (Not used direcly) #include "CvarNegateCheckButton.h" #include "CvarToggleCheckButton.h" #include "cvarslider.h" diff --git a/materialsystem/shaderapidx9/meshdx8.cpp b/materialsystem/shaderapidx9/meshdx8.cpp index 9a4af9e9..67d6bc85 100644 --- a/materialsystem/shaderapidx9/meshdx8.cpp +++ b/materialsystem/shaderapidx9/meshdx8.cpp @@ -3607,12 +3607,12 @@ bool CDynamicMeshDX8::NeedsVertexFormatReset( VertexFormat_t fmt ) const //----------------------------------------------------------------------------- // Locks/unlocks the entire mesh //----------------------------------------------------------------------------- -bool CDynamicMeshDX8::HasEnoughRoom( int nVertexCount, int nIndexCount ) const +bool CDynamicMeshDX8::HasEnoughRoom( int nVertexCount, int nIndexCount ) const { if ( g_pShaderDeviceDx8->IsDeactivated() ) return false; - Assert( m_pVertexBuffer != NULL ); + //Assert( m_pVertexBuffer != NULL ); // We need space in both the vertex and index buffer return m_pVertexBuffer->HasEnoughRoom( nVertexCount ) &&