Browse Source

Merge branch 'sohl1.2' into aomdc

aomdc
Andrey Akhmichin 2 years ago
parent
commit
535232da9c
No known key found for this signature in database
GPG Key ID: 1F180D249B0643C0
  1. 20
      .github/workflows/build.yml
  2. 16
      .github/workflows/manual.yml
  3. 22
      README.md
  4. 2
      cl_dll/vgui_SpectatorPanel.cpp
  5. 2
      cl_dll/view.cpp
  6. 3
      cl_dll/wscript
  7. 2
      dlls/buttons.cpp
  8. 2
      dlls/func_tank.cpp
  9. 7
      dlls/subs.cpp
  10. 14
      dlls/tripmine.cpp
  11. 3
      dlls/wscript

20
.github/workflows/build.yml

@ -22,20 +22,20 @@ jobs:
CXX: ${{ matrix.cxx }} CXX: ${{ matrix.cxx }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
submodules: recursive submodules: recursive
- name: Checkout steam-runtime - name: Checkout steam-runtime
if: startsWith(matrix.os, 'ubuntu') if: startsWith(matrix.os, 'ubuntu')
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
repository: ValveSoftware/steam-runtime repository: ValveSoftware/steam-runtime
path: steam-runtime path: steam-runtime
- name: Cache steam-runtime - name: Cache steam-runtime
if: startsWith(matrix.os, 'ubuntu') if: startsWith(matrix.os, 'ubuntu')
id: cache-steam-runtime id: cache-steam-runtime
uses: actions/cache@v2 uses: actions/cache@v3
with: with:
path: com.valvesoftware.SteamRuntime.Sdk-i386-scout-sysroot.tar.gz path: com.valvesoftware.SteamRuntime.Sdk-i386-scout-sysroot.tar.gz
key: ${{ runner.os }}-steam-runtime key: ${{ runner.os }}-steam-runtime
@ -65,7 +65,7 @@ jobs:
- name: Add msbuild to PATH - name: Add msbuild to PATH
if: startsWith(matrix.os, 'windows') if: startsWith(matrix.os, 'windows')
uses: microsoft/setup-msbuild@v1.0.2 uses: microsoft/setup-msbuild@v1.1
- name: Build on Windows - name: Build on Windows
if: startsWith(matrix.os, 'windows') if: startsWith(matrix.os, 'windows')
run: | run: |
@ -79,33 +79,33 @@ jobs:
- name: Extract branch name - name: Extract branch name
shell: bash shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/} | tr '/' '_')" run: echo "branch=$(echo ${GITHUB_REF#refs/heads/} | tr '/' '_')" >> $GITHUB_OUTPUT
id: extract_branch id: extract_branch
- name: Extract gamedir - name: Extract gamedir
shell: bash shell: bash
run: echo "##[set-output name=gamedir;]$(grep build/CMakeCache.txt -Ee 'GAMEDIR:STRING=[a-z]+' | cut -d '=' -f 2)" run: echo "gamedir=$(grep build/CMakeCache.txt -Ee 'GAMEDIR:STRING=[a-z]+' | cut -d '=' -f 2)" >> $GITHUB_OUTPUT
id: extract_gamedir id: extract_gamedir
- name: Upload linux artifact - name: Upload linux artifact
if: startsWith(matrix.os, 'ubuntu') && matrix.cc == 'gcc' if: startsWith(matrix.os, 'ubuntu') && matrix.cc == 'gcc'
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: hlsdk-${{ steps.extract_branch.outputs.branch }}-linux name: hlsdk-${{ steps.extract_branch.outputs.branch }}-linux
path: dist/${{ steps.extract_gamedir.outputs.gamedir }} path: dist/${{ steps.extract_gamedir.outputs.gamedir }}
- name: Upload linux artifact with vgui - name: Upload linux artifact with vgui
if: startsWith(matrix.os, 'ubuntu') && matrix.cc == 'gcc' if: startsWith(matrix.os, 'ubuntu') && matrix.cc == 'gcc'
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: hlsdk-${{ steps.extract_branch.outputs.branch }}-linux-vgui name: hlsdk-${{ steps.extract_branch.outputs.branch }}-linux-vgui
path: dist-vgui/${{ steps.extract_gamedir.outputs.gamedir }} path: dist-vgui/${{ steps.extract_gamedir.outputs.gamedir }}
- name: Upload windows artifact - name: Upload windows artifact
if: startsWith(matrix.os, 'windows') if: startsWith(matrix.os, 'windows')
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: hlsdk-${{ steps.extract_branch.outputs.branch }}-windows name: hlsdk-${{ steps.extract_branch.outputs.branch }}-windows
path: dist/${{ steps.extract_gamedir.outputs.gamedir }} path: dist/${{ steps.extract_gamedir.outputs.gamedir }}
- name: Upload windows artifact with vgui - name: Upload windows artifact with vgui
if: startsWith(matrix.os, 'windows') if: startsWith(matrix.os, 'windows')
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: hlsdk-${{ steps.extract_branch.outputs.branch }}-windows-vgui name: hlsdk-${{ steps.extract_branch.outputs.branch }}-windows-vgui
path: dist-vgui/${{ steps.extract_gamedir.outputs.gamedir }} path: dist-vgui/${{ steps.extract_gamedir.outputs.gamedir }}

16
.github/workflows/manual.yml

@ -32,20 +32,20 @@ jobs:
CXX: ${{ matrix.cxx }} CXX: ${{ matrix.cxx }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
submodules: recursive submodules: recursive
- name: Checkout steam-runtime - name: Checkout steam-runtime
if: startsWith(matrix.os, 'ubuntu') if: startsWith(matrix.os, 'ubuntu')
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
repository: ValveSoftware/steam-runtime repository: ValveSoftware/steam-runtime
path: steam-runtime path: steam-runtime
- name: Cache steam-runtime - name: Cache steam-runtime
if: startsWith(matrix.os, 'ubuntu') if: startsWith(matrix.os, 'ubuntu')
id: cache-steam-runtime id: cache-steam-runtime
uses: actions/cache@v2 uses: actions/cache@v3
with: with:
path: com.valvesoftware.SteamRuntime.Sdk-i386-scout-sysroot.tar.gz path: com.valvesoftware.SteamRuntime.Sdk-i386-scout-sysroot.tar.gz
key: ${{ runner.os }}-steam-runtime key: ${{ runner.os }}-steam-runtime
@ -73,7 +73,7 @@ jobs:
- name: Add msbuild to PATH - name: Add msbuild to PATH
if: startsWith(matrix.os, 'windows') if: startsWith(matrix.os, 'windows')
uses: microsoft/setup-msbuild@v1.0.2 uses: microsoft/setup-msbuild@v1.1
- name: Build on Windows - name: Build on Windows
if: startsWith(matrix.os, 'windows') if: startsWith(matrix.os, 'windows')
run: | run: |
@ -82,11 +82,11 @@ jobs:
- name: Extract branch name - name: Extract branch name
shell: bash shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/} | tr '/' '_')" run: echo "branch=$(echo ${GITHUB_REF#refs/heads/} | tr '/' '_')" >> $GITHUB_OUTPUT
id: extract_branch id: extract_branch
- name: Extract gamedir - name: Extract gamedir
shell: bash shell: bash
run: echo "##[set-output name=gamedir;]$(grep build/CMakeCache.txt -Ee 'GAMEDIR:STRING=[a-z]+' | cut -d '=' -f 2)" run: echo "gamedir=$(grep build/CMakeCache.txt -Ee 'GAMEDIR:STRING=[a-z]+' | cut -d '=' -f 2)" >> $GITHUB_OUTPUT
id: extract_gamedir id: extract_gamedir
- name: Copy pdbs to dist dir - name: Copy pdbs to dist dir
if: ${{ startsWith(matrix.os, 'windows') && github.event.inputs.buildtype == 'Debug' }} if: ${{ startsWith(matrix.os, 'windows') && github.event.inputs.buildtype == 'Debug' }}
@ -100,13 +100,13 @@ jobs:
Remove-Item -Force -Path dist/${{ steps.extract_gamedir.outputs.gamedir }}/dlls/hl.lib Remove-Item -Force -Path dist/${{ steps.extract_gamedir.outputs.gamedir }}/dlls/hl.lib
- name: Upload linux artifact - name: Upload linux artifact
if: startsWith(matrix.os, 'ubuntu') if: startsWith(matrix.os, 'ubuntu')
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: hlsdk-${{ steps.extract_branch.outputs.branch }}-linux name: hlsdk-${{ steps.extract_branch.outputs.branch }}-linux
path: dist/${{ steps.extract_gamedir.outputs.gamedir }} path: dist/${{ steps.extract_gamedir.outputs.gamedir }}
- name: Upload windows artifact - name: Upload windows artifact
if: startsWith(matrix.os, 'windows') if: startsWith(matrix.os, 'windows')
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: hlsdk-${{ steps.extract_branch.outputs.branch }}-windows name: hlsdk-${{ steps.extract_branch.outputs.branch }}-windows
path: dist/${{ steps.extract_gamedir.outputs.gamedir }} path: dist/${{ steps.extract_gamedir.outputs.gamedir }}

22
README.md

@ -12,7 +12,7 @@ Half-Life SDK for GoldSource & Xash3D with some bugfixes.
- Scientists now react to smells. [Patch](https://github.com/FWGS/hlsdk-portable/commit/2de4e7ab003d5b1674d12525f5aefb1e57a49fa3) - Scientists now react to smells. [Patch](https://github.com/FWGS/hlsdk-portable/commit/2de4e7ab003d5b1674d12525f5aefb1e57a49fa3)
- Tau-cannon (gauss) plays idle animations. - Tau-cannon (gauss) plays idle animations.
- Tau-cannon (gauss) beam color depends on the charge as it was before the prediction code was introduced in Half-Life. [Patch](https://github.com/FWGS/hlsdk-portable/commit/0a29ec49c8183ebb8da22a6d2ef395eae9c3dffe) - Tau-cannon (gauss) beam color depends on the charge as it was before the prediction code was introduced in Half-Life. [Patch](https://github.com/FWGS/hlsdk-portable/commit/0a29ec49c8183ebb8da22a6d2ef395eae9c3dffe)
- Brought back gluon flare in singleplayer. - Brought back gluon flare in singleplayer. [Patch](https://github.com/FWGS/hlsdk-portable/commit/9d7ab6acf46a8b71ef119d9c252767865522d21d)
- Hand grenades don't stay primed after holster, preventing detonation after weapon switch. [Patch](https://github.com/FWGS/hlsdk-portable/commit/6e1059026faa90c5bfe5e3b3f4f58fde398d4524) - Hand grenades don't stay primed after holster, preventing detonation after weapon switch. [Patch](https://github.com/FWGS/hlsdk-portable/commit/6e1059026faa90c5bfe5e3b3f4f58fde398d4524)
- Fixed flashlight battery appearing as depleted on restore. - Fixed flashlight battery appearing as depleted on restore.
- Fixed a potential overflow when reading sentences.txt. [Patch](https://github.com/FWGS/hlsdk-xash3d/commit/cb51d2aa179f1eb622e08c1c07b053ccd49e40a5) - Fixed a potential overflow when reading sentences.txt. [Patch](https://github.com/FWGS/hlsdk-xash3d/commit/cb51d2aa179f1eb622e08c1c07b053ccd49e40a5)
@ -37,7 +37,7 @@ Bugfix-related server cvars:
- **explosionfix**: if set to 1, explosion damage won't propagate through thin bruses. - **explosionfix**: if set to 1, explosion damage won't propagate through thin bruses.
- **selfgauss**: if set to 0, players won't hurt themselves with secondary attack when shooting thick brushes. - **selfgauss**: if set to 0, players won't hurt themselves with secondary attack when shooting thick brushes.
*Note*: the macros and cvars were adjusted in [hlfixed](https://github.com/FWGS/hlsdk-portable/tree/hlfixed) branch. The bugfix macros are kept turned off in master branch to maintain the compatibility with vanilla servers and clients. *Note*: the macros and cvars were adjusted in [hlfixed](https://github.com/FWGS/hlsdk-portable/tree/hlfixed) branch (for further information read [this](https://github.com/FWGS/hlsdk-portable/wiki/HL-Fixed)). The bugfix macros are kept turned off in `master` branch to maintain the compatibility with vanilla servers and clients.
Other server cvars: Other server cvars:
@ -48,6 +48,22 @@ Other server cvars:
</p> </p>
</details> </details>
<details><summary>Support for mods</summary>
<p>
This repository contains (re-)implementations of some mods as separate branches derived from `master`. The list of supported mods can be found [here](https://github.com/FWGS/hlsdk-portable/wiki/Mods). Note that some branches are unstable and incomplete.
To get the mod branch locally run the following git command:
```
git fetch origin asheep:asheep
```
This is considering that you have set **FWGS/hlsdk-portable** as an `origin` remote and want to fetch `asheep` branch.
</p>
</details>
# Obtaining source code # Obtaining source code
Either clone the repository via [git](`https://git-scm.com/downloads`) or just download ZIP via **Code** button on github. The first option is more preferable as it also allows you to search through the repo history, switch between branches and clone the vgui submodule. Either clone the repository via [git](`https://git-scm.com/downloads`) or just download ZIP via **Code** button on github. The first option is more preferable as it also allows you to search through the repo history, switch between branches and clone the vgui submodule.
@ -87,7 +103,7 @@ cd projects\hlsdk-portable
``` ```
cmake -A Win32 -B build cmake -A Win32 -B build
``` ```
Once you configure the project you don't need to call `cmake` anymore unless you modify `CMakeLists.txt` files or want to reconfigure the project with different parameters. Note that you must repeat the configuration step if you modify `CMakeLists.txt` files or want to reconfigure the project with different parameters.
The next step is to compile the libraries: The next step is to compile the libraries:
``` ```

2
cl_dll/vgui_SpectatorPanel.cpp

@ -29,7 +29,7 @@ Sets the location of the input for chat text
========================== ==========================
*/ */
void DLLEXPORT HUD_ChatInputPosition( int *x, int *y ) extern "C" void DLLEXPORT HUD_ChatInputPosition( int *x, int *y )
{ {
// RecClChatInputPosition( x, y ); // RecClChatInputPosition( x, y );

2
cl_dll/view.cpp

@ -763,7 +763,7 @@ void V_CalcNormalRefdef( struct ref_params_s *pparams )
// Apply this at all times // Apply this at all times
{ {
float pitch = camAngles[0]; float pitch = pparams->viewangles[0];
// Normalize angles // Normalize angles
if( pitch > 180.0f ) if( pitch > 180.0f )

3
cl_dll/wscript

@ -75,6 +75,9 @@ def build(bld):
'message.cpp', 'message.cpp',
'overview.cpp', 'overview.cpp',
'parsemsg.cpp', 'parsemsg.cpp',
'particlemgr.cpp',
'particlemsg.cpp',
'particlesys.cpp',
'saytext.cpp', 'saytext.cpp',
'scoreboard.cpp', 'scoreboard.cpp',
'status_icons.cpp', 'status_icons.cpp',

2
dlls/buttons.cpp

@ -310,9 +310,11 @@ void CEnvState::Think( void )
{ {
ALERT(at_console,"DEBUG: env_state \"%s\" turned itself off",STRING(pev->targetname)); ALERT(at_console,"DEBUG: env_state \"%s\" turned itself off",STRING(pev->targetname));
if (pev->target) if (pev->target)
{
ALERT(at_console,": firing %s",STRING(pev->target)); ALERT(at_console,": firing %s",STRING(pev->target));
if (pev->noise2) if (pev->noise2)
ALERT(at_console," and %s",STRING(pev->noise2)); ALERT(at_console," and %s",STRING(pev->noise2));
}
else if (pev->noise2) else if (pev->noise2)
ALERT(at_console,": firing %s",STRING(pev->noise2)); ALERT(at_console,": firing %s",STRING(pev->noise2));
ALERT(at_console,".\n"); ALERT(at_console,".\n");

2
dlls/func_tank.cpp

@ -1144,11 +1144,13 @@ void CFuncTank::AdjustAnglesForBarrel( Vector &angles, float distance )
if( m_barrelPos.y ) if( m_barrelPos.y )
{ {
r2 = m_barrelPos.y * m_barrelPos.y; r2 = m_barrelPos.y * m_barrelPos.y;
if( d2 > r2 )
angles.y += ( 180.0f / M_PI_F ) * atan2( m_barrelPos.y, sqrt( d2 - r2 ) ); angles.y += ( 180.0f / M_PI_F ) * atan2( m_barrelPos.y, sqrt( d2 - r2 ) );
} }
if( m_barrelPos.z ) if( m_barrelPos.z )
{ {
r2 = m_barrelPos.z * m_barrelPos.z; r2 = m_barrelPos.z * m_barrelPos.z;
if( d2 > r2 )
angles.x += ( 180.0f / M_PI_F ) * atan2( -m_barrelPos.z, sqrt( d2 - r2 ) ); angles.x += ( 180.0f / M_PI_F ) * atan2( -m_barrelPos.z, sqrt( d2 - r2 ) );
} }
} }

7
dlls/subs.cpp

@ -566,13 +566,6 @@ void CBaseToggle :: LinearMoveNow( void )
// divide vector length by speed to get time to reach dest // divide vector length by speed to get time to reach dest
float flTravelTime = vecDestDelta.Length() / m_flLinearMoveSpeed; float flTravelTime = vecDestDelta.Length() / m_flLinearMoveSpeed;
if( flTravelTime < 0.05f )
{
UTIL_SetOrigin( this, m_vecFinalDest );
LinearMoveDone();
return;
}
// set nextthink to trigger a call to LinearMoveDone when dest is reached // set nextthink to trigger a call to LinearMoveDone when dest is reached
SetNextThink( flTravelTime, TRUE ); SetNextThink( flTravelTime, TRUE );
SetThink( &CBaseToggle::LinearMoveDone ); SetThink( &CBaseToggle::LinearMoveDone );

14
dlls/tripmine.cpp

@ -282,9 +282,23 @@ void CTripmineGrenade::BeamBreakThink( void )
// respawn detect. // respawn detect.
if( !m_pBeam ) if( !m_pBeam )
{ {
#if TRIPMINE_BEAM_DUPLICATION_FIX
// Use the same trace parameters as the original trace above so the right entity is hit.
TraceResult tr2;
UTIL_TraceLine( pev->origin + m_vecDir * 8.0f, pev->origin - m_vecDir * 32.0f, dont_ignore_monsters, ENT( pev ), &tr2 );
#endif
MakeBeam(); MakeBeam();
#if TRIPMINE_BEAM_DUPLICATION_FIX
if( tr2.pHit )
{
// reset owner too
pev->owner = tr2.pHit;
m_hOwner = CBaseEntity::Instance( tr2.pHit );
}
#else
if( tr.pHit ) if( tr.pHit )
m_hOwner = CBaseEntity::Instance( tr.pHit ); // reset owner too m_hOwner = CBaseEntity::Instance( tr.pHit ); // reset owner too
#endif
} }
if( fabs( m_flBeamLength - tr.flFraction ) > 0.001f ) if( fabs( m_flBeamLength - tr.flFraction ) > 0.001f )

3
dlls/wscript

@ -29,6 +29,7 @@ def build(bld):
'agrunt.cpp', 'agrunt.cpp',
'airtank.cpp', 'airtank.cpp',
'aflock.cpp', 'aflock.cpp',
'alias.cpp',
'animating.cpp', 'animating.cpp',
'animation.cpp', 'animation.cpp',
'apache.cpp', 'apache.cpp',
@ -80,11 +81,13 @@ def build(bld):
'items.cpp', 'items.cpp',
'leech.cpp', 'leech.cpp',
'lights.cpp', 'lights.cpp',
'locus.cpp',
'maprules.cpp', 'maprules.cpp',
'monstermaker.cpp', 'monstermaker.cpp',
'monsters.cpp', 'monsters.cpp',
'monsterstate.cpp', 'monsterstate.cpp',
'mortar.cpp', 'mortar.cpp',
'movewith.cpp',
'mp5.cpp', 'mp5.cpp',
'multiplay_gamerules.cpp', 'multiplay_gamerules.cpp',
'nihilanth.cpp', 'nihilanth.cpp',

Loading…
Cancel
Save