From b82f524819b71b1bd4b12a20ab008052a6126a03 Mon Sep 17 00:00:00 2001 From: Roman Chistokhodov Date: Mon, 24 Apr 2023 01:55:43 +0300 Subject: [PATCH 1/4] Fix Human Grunts dropping weapons again if the game is saved and loaded while the grunt is dying Same as https://github.com/SamVanheer/halflife-updated/commit/bc7d6e3c0782f94553dd692351e7659903c0fa05 --- dlls/hgrunt.cpp | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/dlls/hgrunt.cpp b/dlls/hgrunt.cpp index 7f7e39e5..2f1dffbd 100644 --- a/dlls/hgrunt.cpp +++ b/dlls/hgrunt.cpp @@ -849,27 +849,30 @@ void CHGrunt::HandleAnimEvent( MonsterEvent_t *pEvent ) { case HGRUNT_AE_DROP_GUN: { - Vector vecGunPos; - Vector vecGunAngles; - - GetAttachment( 0, vecGunPos, vecGunAngles ); - - // switch to body group with no gun. - SetBodygroup( GUN_GROUP, GUN_NONE ); - - // now spawn a gun. - if( FBitSet( pev->weapons, HGRUNT_SHOTGUN ) ) + if ( GetBodygroup( GUN_GROUP ) != GUN_NONE ) { - DropItem( "weapon_shotgun", vecGunPos, vecGunAngles ); - } - else - { - DropItem( "weapon_9mmAR", vecGunPos, vecGunAngles ); - } + Vector vecGunPos; + Vector vecGunAngles; - if( FBitSet( pev->weapons, HGRUNT_GRENADELAUNCHER ) ) - { - DropItem( "ammo_ARgrenades", BodyTarget( pev->origin ), vecGunAngles ); + GetAttachment( 0, vecGunPos, vecGunAngles ); + + // switch to body group with no gun. + SetBodygroup( GUN_GROUP, GUN_NONE ); + + // now spawn a gun. + if( FBitSet( pev->weapons, HGRUNT_SHOTGUN ) ) + { + DropItem( "weapon_shotgun", vecGunPos, vecGunAngles ); + } + else + { + DropItem( "weapon_9mmAR", vecGunPos, vecGunAngles ); + } + + if( FBitSet( pev->weapons, HGRUNT_GRENADELAUNCHER ) ) + { + DropItem( "ammo_ARgrenades", BodyTarget( pev->origin ), vecGunAngles ); + } } } break; From 00596e94bf4e1197d519b1dc00cebcada1960b2e Mon Sep 17 00:00:00 2001 From: Roman Chistokhodov Date: Mon, 24 Apr 2023 01:57:25 +0300 Subject: [PATCH 2/4] Use named constants instead of some magical constants in hgrunt code --- dlls/hgrunt.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/hgrunt.cpp b/dlls/hgrunt.cpp index 2f1dffbd..d8d198db 100644 --- a/dlls/hgrunt.cpp +++ b/dlls/hgrunt.cpp @@ -278,7 +278,7 @@ void CHGrunt::GibMonster( void ) Vector vecGunPos; Vector vecGunAngles; - if( GetBodygroup( 2 ) != 2 ) + if( GetBodygroup( GUN_GROUP ) != GUN_NONE ) { // throw a gun if the grunt has one GetAttachment( 0, vecGunPos, vecGunAngles ); @@ -604,7 +604,7 @@ void CHGrunt::TraceAttack( entvars_t *pevAttacker, float flDamage, Vector vecDir if( ptr->iHitgroup == 11 ) { // make sure we're wearing one - if( GetBodygroup( 1 ) == HEAD_GRUNT && ( bitsDamageType & (DMG_BULLET | DMG_SLASH | DMG_BLAST | DMG_CLUB ) ) ) + if( GetBodygroup( HEAD_GROUP ) == HEAD_GRUNT && ( bitsDamageType & (DMG_BULLET | DMG_SLASH | DMG_BLAST | DMG_CLUB ) ) ) { // absorb damage flDamage -= 20; From 7d65d9f3bdf5728b323053bb1651ebaab8a8ab5d Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Tue, 25 Apr 2023 03:05:56 +0300 Subject: [PATCH 3/4] wscript: set default prefix, do not install without destdir as we don't follow typical unix filesystem hierarchy --- wscript | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wscript b/wscript index 353f9016..71f485f0 100644 --- a/wscript +++ b/wscript @@ -10,6 +10,7 @@ import re VERSION = '2.4' APPNAME = 'hlsdk-portable' top = '.' +default_prefix = '/' Context.Context.line_just = 60 # should fit for everything on 80x26 @@ -21,7 +22,7 @@ def get_taskgen_count(self): def options(opt): opt.load('reconfigure compiler_optimizations xcompile compiler_cxx compiler_c clang_compilation_database strip_on_install msdev msvs msvc subproject') - + grp = opt.add_option_group('Common options') grp.add_option('-8', '--64bits', action = 'store_true', dest = 'ALLOW64', default = False, @@ -238,6 +239,9 @@ def configure(conf): conf.add_subproject('cl_dll') def build(bld): + if bld.is_install and not bld.options.destdir: + bld.fatal('Set the install destination directory using --destdir option') + # don't clean QtCreator files and reconfigure saved options bld.clean_files = bld.bldnode.ant_glob('**', excl='*.user configuration.py .lock* *conf_check_*/** config.log %s/*' % Build.CACHE_DIR, From 8da71ee6757f3c0d17e80c2871a71958331ea5b9 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Tue, 25 Apr 2023 03:06:25 +0300 Subject: [PATCH 4/4] server: wscript: remove prop.cpp from excluded files --- dlls/wscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/wscript b/dlls/wscript index 2c372154..00781777 100644 --- a/dlls/wscript +++ b/dlls/wscript @@ -20,7 +20,7 @@ def configure(conf): conf.fatal("Could not find hl.def") def build(bld): - excluded_files = ['mpstubb.cpp', 'stats.cpp', 'prop.cpp', 'Wxdebug.cpp'] + excluded_files = ['mpstubb.cpp', 'stats.cpp', 'Wxdebug.cpp'] source = bld.path.ant_glob('**/*.cpp', excl=excluded_files) source += bld.path.parent.ant_glob('pm_shared/*.c')