Skip to content

Commit ab6dbb8

Browse files
authored
Merge pull request #354 from mapbase-source/develop
Mapbase v7.3
2 parents 471a840 + 365d560 commit ab6dbb8

79 files changed

Lines changed: 4123 additions & 448 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/mapbase_build-base.yml

Lines changed: 29 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
- uses: actions/checkout@v4
5555

5656
- name: Add MSBuild to PATH
57-
uses: microsoft/setup-msbuild@v1.1
57+
uses: compnerd/gha-setup-vsdevenv@v6
5858

5959
- name: Enable VS2022
6060
working-directory: '${{inputs.branch}}/src/vpc_scripts'
@@ -77,107 +77,40 @@ jobs:
7777
7878
# --------------------------------------------------------------------
7979

80-
# "I'm invoking msbuild for each project individually, which looks a bit odd considering there is a solution file which should be able to invoke the builds in their proper order automatically, but passing the solution to msbuild doesn't seem to work."
81-
# https://github.com/mapbase-source/source-sdk-2013/pull/162
82-
83-
- name: Build mathlib
80+
- name: Build
8481
#if: steps.filter.outputs.game == 'true'
8582
working-directory: '${{inputs.branch}}/src'
8683
shell: cmd
8784
run: |
88-
msbuild -m -p:Configuration=${{inputs.configuration}} mathlib\mathlib.vcxproj
89-
90-
- name: Build Base Libraries
91-
if: inputs.project-group == 'all' || inputs.project-group == 'game' || inputs.project-group == 'maptools'
92-
working-directory: '${{inputs.branch}}/src'
93-
shell: cmd
94-
run: |
95-
msbuild -m -p:Configuration=${{inputs.configuration}} raytrace\raytrace.vcxproj
96-
msbuild -m -p:Configuration=${{inputs.configuration}} tier1\tier1.vcxproj
97-
msbuild -m -p:Configuration=${{inputs.configuration}} vgui2\vgui_controls\vgui_controls.vcxproj
98-
msbuild -m -p:Configuration=${{inputs.configuration}} vscript\vscript.vcxproj
99-
100-
- name: Build Map Tools
101-
if: inputs.project-group == 'all' || inputs.project-group == 'maptools'
102-
working-directory: '${{inputs.branch}}/src'
103-
shell: cmd
104-
run: |
105-
msbuild -m -p:Configuration=${{inputs.configuration}} fgdlib\fgdlib.vcxproj
106-
msbuild -m -p:Configuration=${{inputs.configuration}} utils\vbsp\vbsp.vcxproj
107-
msbuild -m -p:Configuration=${{inputs.configuration}} utils\vvis\vvis_dll.vcxproj
108-
msbuild -m -p:Configuration=${{inputs.configuration}} utils\vvis_launcher\vvis_launcher.vcxproj
109-
msbuild -m -p:Configuration=${{inputs.configuration}} utils\vrad\vrad_dll.vcxproj
110-
msbuild -m -p:Configuration=${{inputs.configuration}} utils\vrad_launcher\vrad_launcher.vcxproj
111-
112-
- name: Build Shaders
113-
if: inputs.project-group == 'shaders'
114-
working-directory: '${{inputs.branch}}/src'
115-
shell: cmd
116-
run: |
117-
msbuild -m -p:Configuration=${{inputs.configuration}} materialsystem\stdshaders\game_shader_dx9_${{inputs.game}}.vcxproj
118-
119-
- name: Build Game
120-
if: inputs.project-group == 'game'
121-
working-directory: '${{inputs.branch}}/src'
122-
shell: cmd
123-
run: |
124-
msbuild -m -p:Configuration=${{inputs.configuration}} responserules\runtime\responserules.vcxproj
125-
msbuild -m -p:Configuration=${{inputs.configuration}} game\client\client_${{inputs.game}}.vcxproj
126-
msbuild -m -p:Configuration=${{inputs.configuration}} game\server\server_${{inputs.game}}.vcxproj
127-
128-
# TODO: Hook to game naming?
129-
- name: Build everything
130-
if: inputs.project-group == 'all'
131-
working-directory: '${{inputs.branch}}/src'
132-
shell: cmd
133-
run: |
134-
msbuild -m -p:Configuration=${{inputs.configuration}} responserules\runtime\responserules.vcxproj
135-
msbuild -m -p:Configuration=${{inputs.configuration}} materialsystem\stdshaders\game_shader_dx9_episodic.vcxproj
136-
msbuild -m -p:Configuration=${{inputs.configuration}} materialsystem\stdshaders\game_shader_dx9_hl2.vcxproj
137-
msbuild -m -p:Configuration=${{inputs.configuration}} game\client\client_episodic.vcxproj
138-
msbuild -m -p:Configuration=${{inputs.configuration}} game\client\client_hl2.vcxproj
139-
msbuild -m -p:Configuration=${{inputs.configuration}} game\server\server_episodic.vcxproj
140-
msbuild -m -p:Configuration=${{inputs.configuration}} game\server\server_hl2.vcxproj
85+
devenv ${{inputs.solution-name}}.sln /upgrade
86+
msbuild -m -t:Rebuild -p:Configuration=${{inputs.configuration}};Platform=x86 ${{inputs.solution-name}}.sln
14187
14288
# --------------------------------------------------------------------
14389

144-
- name: Publish Windows game DLLs
145-
if: inputs.project-group == 'game'
146-
uses: actions/upload-artifact@v3
147-
with:
148-
name: 'Windows Game DLLs (server & client.dll) [${{ inputs.configuration }}]'
149-
path: |
150-
${{inputs.branch}}/game/mod_${{inputs.game}}/bin/client.dll
151-
${{inputs.branch}}/game/mod_${{inputs.game}}/bin/server.dll
152-
if-no-files-found: error
153-
154-
- name: Publish Windows shader DLL
155-
if: inputs.project-group == 'shaders'
156-
uses: actions/upload-artifact@v3
90+
- name: Publish game binaries
91+
if: inputs.project-group == 'game' || inputs.project-group == 'shaders'
92+
uses: actions/upload-artifact@v4
15793
with:
158-
name: 'Windows Shader DLL (game_shader_dx9.dll) [${{ inputs.configuration }}]'
94+
name: '${{inputs.project-group}}_${{inputs.game}}_win32_${{ inputs.configuration }}'
15995
path: |
160-
${{inputs.branch}}/game/mod_${{inputs.game}}/bin/game_shader_dx9.dll
96+
${{inputs.branch}}/game/mod_${{inputs.game}}/bin/*.dll
16197
if-no-files-found: error
16298

163-
- name: Publish Windows map tools
99+
- name: Publish map tools
164100
if: inputs.project-group == 'maptools'
165-
uses: actions/upload-artifact@v3
101+
uses: actions/upload-artifact@v4
166102
with:
167-
name: 'Windows Map Tools [${{ inputs.configuration }}]'
103+
name: '${{inputs.project-group}}_win32_${{ inputs.configuration }}'
168104
path: |
169-
${{inputs.branch}}/game/bin/vbsp.exe
170-
${{inputs.branch}}/game/bin/vvis.exe
171-
${{inputs.branch}}/game/bin/vvis_dll.dll
172-
${{inputs.branch}}/game/bin/vrad.exe
173-
${{inputs.branch}}/game/bin/vrad_dll.dll
105+
${{inputs.branch}}/game/bin/*.exe
106+
${{inputs.branch}}/game/bin/*.dll
174107
if-no-files-found: error
175108

176-
- name: Publish everything (Windows)
109+
- name: Publish everything
177110
if: inputs.project-group == 'all'
178-
uses: actions/upload-artifact@v3
111+
uses: actions/upload-artifact@v4
179112
with:
180-
name: 'Everything (Windows) [${{ inputs.configuration }}]'
113+
name: 'everything_win32_${{ inputs.configuration }}'
181114
path: |
182115
${{inputs.branch}}/game/bin
183116
${{inputs.branch}}/game/mod_*/bin
@@ -224,30 +157,21 @@ jobs:
224157

225158
# --------------------------------------------------------------------
226159

227-
- name: Publish Linux game SOs
228-
if: inputs.project-group == 'game'
229-
uses: actions/upload-artifact@v3
230-
with:
231-
name: 'Linux Game SOs (server & client.so) [${{ inputs.configuration }}]'
232-
path: |
233-
${{inputs.branch}}/game/mod_${{inputs.game}}/bin/client.so
234-
${{inputs.branch}}/game/mod_${{inputs.game}}/bin/server.so
235-
if-no-files-found: error
236-
237-
- name: Publish Linux shader SO
238-
if: inputs.project-group == 'shaders'
239-
uses: actions/upload-artifact@v3
160+
- name: Publish game binaries
161+
if: inputs.project-group == 'game' || inputs.project-group == 'shaders'
162+
uses: actions/upload-artifact@v4
240163
with:
241-
name: 'Linux Shader SO (game_shader_dx9.so) [${{ inputs.configuration }}]'
164+
name: '${{inputs.project-group}}_${{inputs.game}}_linux32_${{ inputs.configuration }}'
242165
path: |
243-
${{inputs.branch}}/game/mod_${{inputs.game}}/bin/game_shader_dx9.so
166+
${{inputs.branch}}/game/mod_${{inputs.game}}/bin/*.so
167+
!${{inputs.branch}}/game/mod_${{inputs.game}}/bin/*_srv.so
244168
if-no-files-found: error
245169

246-
#- name: Publish Linux map tools
170+
#- name: Publish map tools
247171
# if: inputs.project-group == 'maptools'
248-
# uses: actions/upload-artifact@v3
172+
# uses: actions/upload-artifact@v4
249173
# with:
250-
# name: 'Linux Map Tools [${{ inputs.configuration }}]'
174+
# name: '${{inputs.project-group}}_linux32_${{ inputs.configuration }}'
251175
# path: |
252176
# ${{inputs.branch}}/game/bin/vbsp
253177
# ${{inputs.branch}}/game/bin/vvis
@@ -258,11 +182,11 @@ jobs:
258182

259183
# For now, don't publish the .dbg files even though we publish .pdb files on Windows
260184
# (they're too big)
261-
- name: Publish everything (Linux)
185+
- name: Publish everything
262186
if: inputs.project-group == 'all'
263-
uses: actions/upload-artifact@v3
187+
uses: actions/upload-artifact@v4
264188
with:
265-
name: 'Everything (Linux) [${{ inputs.configuration }}]'
189+
name: 'everything_linux32_${{ inputs.configuration }}'
266190
path: |
267191
${{inputs.branch}}/game/bin/*.so
268192
!${{inputs.branch}}/game/bin/*_srv.so

README

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//=========================================================================================================================
22

3-
Mapbase v7.2 - Source 2013
3+
Mapbase v7.3 - Source 2013
44
https://github.com/mapbase-source/source-sdk-2013
55
https://www.moddb.com/mods/mapbase
66

@@ -117,7 +117,18 @@ Direct contributions:
117117
- https://github.com/mapbase-source/source-sdk-2013/pull/237 (Commander goal trace fix by Agrimar)
118118
- https://github.com/mapbase-source/source-sdk-2013/pull/245 (ViewPunch random fix by Mr0maks)
119119
- https://github.com/mapbase-source/source-sdk-2013/pull/248 (soundlevel_t conversation warning fix by Mechami)
120+
- https://github.com/mapbase-source/source-sdk-2013/pull/266 ("OnPhysGunPull" output in CPhysicsProp by rlenhub)
121+
- https://github.com/mapbase-source/source-sdk-2013/pull/292 (env_headcrabcanister random spawn type by arbabf)
122+
- https://github.com/mapbase-source/source-sdk-2013/pull/294 (SDK_LightmappedGeneric editor blend swap fix by azzyr)
123+
- https://github.com/mapbase-source/source-sdk-2013/pull/308 (BlurFilterY fix by Wikot235)
124+
- https://github.com/mapbase-source/source-sdk-2013/pull/312 (Zombie improvements by Wikot235)
125+
- https://github.com/mapbase-source/source-sdk-2013/pull/315 (env_flare crash fix by Wikot235)
126+
- https://github.com/mapbase-source/source-sdk-2013/pull/324 (server-only info/func_null by SirYodaJedi)
127+
- https://github.com/mapbase-source/source-sdk-2013/pull/333 (Cvar to transition levels while in MOVETYPE_NOCLIP by Wikot235)
128+
- https://github.com/mapbase-source/source-sdk-2013/pull/342 (NaN particle cull radius fix by celisej567)
120129
- https://github.com/mapbase-source/mapbase-game-src/pull/1 (Advanced video options duplicate field name fix by arbabf; This is asset-based and not reflected in the code)
130+
- https://github.com/mapbase-source/mapbase-game-src/pull/2 (gameinfo.txt typo fix by CarePackage17; This is asset-based and not reflected in the code)
131+
- https://github.com/mapbase-source/mapbase-game-src/pull/3 (HudMessage cutoff fix by arbabf; This is asset-based and not reflected in the code)
121132
- Demo autorecord code provided by Klems
122133
- cc_emit crash fix provided by 1upD
123134
- Custom HL2 ammo crate models created by Rykah (Textures created by Blixibon; This is asset-based and, aside from the SLAM crate, not reflected in the code)
@@ -144,8 +155,10 @@ Direct contributions:
144155
=-- https://github.com/mapbase-source/source-sdk-2013/pull/206 (Fix CScriptNetMsgHelper::WriteEntity())
145156
=-- https://github.com/mapbase-source/source-sdk-2013/pull/213 (VScript HUD visibility control, optimizations for 3D skybox angles/fake worldportals)
146157
=-- https://github.com/mapbase-source/source-sdk-2013/pull/229 (VScript VGUI HUD viewport parenting, game_text and vgui_text_display VScript font fallback)
158+
=-- https://github.com/mapbase-source/source-sdk-2013/pull/260 (CScriptNetPropManager rewrite)
147159
=-- https://github.com/mapbase-source/source-sdk-2013/pull/261 (Misc VScript additions)
148160
=-- https://github.com/mapbase-source/source-sdk-2013/pull/279 (weapon_custom_scripted fixes)
161+
=-- https://github.com/mapbase-source/source-sdk-2013/pull/332 (Fix OOB access)
149162

150163
== Contributions from z33ky:
151164
=-- https://github.com/mapbase-source/source-sdk-2013/pull/21 (Various GCC/Linux compilation fixes)
@@ -159,6 +172,7 @@ Direct contributions:
159172
=-- https://github.com/mapbase-source/source-sdk-2013/pull/159 (Additional GCC/Linux compilation fixes)
160173
=-- https://github.com/mapbase-source/source-sdk-2013/pull/162 (VS2019 exception specification fix)
161174
=-- https://github.com/mapbase-source/source-sdk-2013/pull/170 (HL2 non-Episodic build fix)
175+
=-- https://github.com/mapbase-source/source-sdk-2013/pull/322 (Small Mapbase fixes)
162176

163177
== Contributions from Petercov:
164178
=-- https://github.com/mapbase-source/source-sdk-2013/pull/182 (NPCs load dynamic interactions from all animation MDLs)
@@ -168,6 +182,7 @@ Direct contributions:
168182
=-- https://github.com/mapbase-source/source-sdk-2013/pull/183 (Enhanced custom weapons support)
169183
=-- https://github.com/mapbase-source/source-sdk-2013/pull/230 (Caption fixes)
170184
=-- https://github.com/mapbase-source/source-sdk-2013/pull/231 (Sentence source bug fix)
185+
=-- https://github.com/mapbase-source/source-sdk-2013/pull/264 (Outputs for vgui_screen)
171186

172187
//-------------------------------------------------------------------------------------------------------------------------
173188

mp/src/game/client/particlemgr.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,8 @@ CParticleEffectBinding::CParticleEffectBinding()
146146
m_LastMin = m_Min;
147147
m_LastMax = m_Max;
148148

149+
m_flParticleCullRadius = 0.0f;
150+
149151
SetParticleCullRadius( 0.0f );
150152
m_nActiveParticles = 0;
151153

mp/src/game/server/subs.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ void CPointEntity::Spawn( void )
2222
}
2323

2424

25-
class CNullEntity : public CBaseEntity
25+
class CNullEntity : public CServerOnlyEntity
2626
{
2727
public:
28-
DECLARE_CLASS( CNullEntity, CBaseEntity );
28+
DECLARE_CLASS( CNullEntity, CServerOnlyEntity );
2929

3030
void Spawn( void );
3131
};

sp/src/game/client/c_basecombatcharacter.cpp

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ C_BaseCombatCharacter::C_BaseCombatCharacter()
3434
m_pGlowEffect = NULL;
3535
m_bGlowEnabled = false;
3636
m_bOldGlowEnabled = false;
37+
m_GlowColor.Init( 0.76f, 0.76f, 0.76f );
38+
m_OldGlowColor = m_GlowColor;
39+
m_GlowAlpha = 1.0f;
40+
m_OldGlowAlpha = 1.0f;
3741
#endif // GLOWS_ENABLE
3842
}
3943

@@ -66,6 +70,8 @@ void C_BaseCombatCharacter::OnPreDataChanged( DataUpdateType_t updateType )
6670

6771
#ifdef GLOWS_ENABLE
6872
m_bOldGlowEnabled = m_bGlowEnabled;
73+
m_OldGlowColor = m_GlowColor;
74+
m_OldGlowAlpha = m_GlowAlpha;
6975
#endif // GLOWS_ENABLE
7076
}
7177

@@ -77,7 +83,7 @@ void C_BaseCombatCharacter::OnDataChanged( DataUpdateType_t updateType )
7783
BaseClass::OnDataChanged( updateType );
7884

7985
#ifdef GLOWS_ENABLE
80-
if ( m_bOldGlowEnabled != m_bGlowEnabled )
86+
if ( m_bOldGlowEnabled != m_bGlowEnabled || m_OldGlowColor != m_GlowColor || m_OldGlowAlpha != m_GlowAlpha )
8187
{
8288
UpdateGlowEffect();
8389
}
@@ -106,11 +112,13 @@ void C_BaseCombatCharacter::DoMuzzleFlash()
106112
//-----------------------------------------------------------------------------
107113
// Purpose:
108114
//-----------------------------------------------------------------------------
109-
void C_BaseCombatCharacter::GetGlowEffectColor( float *r, float *g, float *b )
115+
void C_BaseCombatCharacter::GetGlowEffectColor( float *r, float *g, float *b, float *a )
110116
{
111-
*r = 0.76f;
112-
*g = 0.76f;
113-
*b = 0.76f;
117+
*r = m_GlowColor.x;
118+
*g = m_GlowColor.y;
119+
*b = m_GlowColor.z;
120+
if (a)
121+
*a = m_GlowAlpha;
114122
}
115123

116124
//-----------------------------------------------------------------------------
@@ -127,10 +135,10 @@ void C_BaseCombatCharacter::UpdateGlowEffect( void )
127135
// create a new effect
128136
if ( m_bGlowEnabled )
129137
{
130-
float r, g, b;
131-
GetGlowEffectColor( &r, &g, &b );
138+
float r, g, b, a;
139+
GetGlowEffectColor( &r, &g, &b, &a );
132140

133-
m_pGlowEffect = new CGlowObject( this, Vector( r, g, b ), 1.0, true );
141+
m_pGlowEffect = new CGlowObject( this, Vector( r, g, b ), a, true );
134142
}
135143
}
136144

@@ -161,6 +169,8 @@ BEGIN_RECV_TABLE(C_BaseCombatCharacter, DT_BaseCombatCharacter)
161169
RecvPropArray3( RECVINFO_ARRAY(m_hMyWeapons), RecvPropEHandle( RECVINFO( m_hMyWeapons[0] ) ) ),
162170
#ifdef GLOWS_ENABLE
163171
RecvPropBool( RECVINFO( m_bGlowEnabled ) ),
172+
RecvPropVector( RECVINFO( m_GlowColor ) ),
173+
RecvPropFloat( RECVINFO( m_GlowAlpha ) ),
164174
#endif // GLOWS_ENABLE
165175

166176
#ifdef INVASION_CLIENT_DLL

sp/src/game/client/c_basecombatcharacter.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ class C_BaseCombatCharacter : public C_BaseFlex
9999

100100
#ifdef GLOWS_ENABLE
101101
CGlowObject *GetGlowObject( void ){ return m_pGlowEffect; }
102-
virtual void GetGlowEffectColor( float *r, float *g, float *b );
102+
virtual void GetGlowEffectColor( float *r, float *g, float *b, float *a = NULL );
103103
#endif // GLOWS_ENABLE
104104

105105
#ifdef MAPBASE_VSCRIPT
@@ -133,6 +133,10 @@ class C_BaseCombatCharacter : public C_BaseFlex
133133
bool m_bGlowEnabled;
134134
bool m_bOldGlowEnabled;
135135
CGlowObject *m_pGlowEffect;
136+
Vector m_GlowColor;
137+
Vector m_OldGlowColor;
138+
float m_GlowAlpha;
139+
int m_OldGlowAlpha;
136140
#endif // GLOWS_ENABLE
137141

138142
private:

sp/src/game/client/c_baseentity.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,8 @@ BEGIN_ENT_SCRIPTDESC_ROOT( C_BaseEntity, "Root class of all client-side entities
485485
DEFINE_SCRIPTFUNC_NAMED( ScriptEntityToWorldTransform, "EntityToWorldTransform", "Get the entity's transform" )
486486

487487
DEFINE_SCRIPTFUNC_NAMED( ScriptGetPhysicsObject, "GetPhysicsObject", "Get the entity's physics object if it has one" )
488+
DEFINE_SCRIPTFUNC_NAMED( ScriptPhysicsInitNormal, "PhysicsInitNormal", "Initializes the entity's physics object with the specified solid type, solid flags, and whether to start asleep" )
489+
DEFINE_SCRIPTFUNC_NAMED( ScriptPhysicsDestroyObject, "PhysicsDestroyObject", "Destroys the entity's physics object" )
488490

489491
DEFINE_SCRIPTFUNC( GetWaterLevel, "Get current level of water submergence" )
490492

sp/src/game/client/c_baseentity.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1206,6 +1206,8 @@ class C_BaseEntity : public IClientEntity
12061206
HSCRIPT ScriptEntityToWorldTransform( void );
12071207

12081208
HSCRIPT ScriptGetPhysicsObject( void );
1209+
void ScriptPhysicsInitNormal( int nSolidType, int nSolidFlags, bool createAsleep );
1210+
void ScriptPhysicsDestroyObject() { VPhysicsDestroyObject(); }
12091211

12101212
void ScriptSetParent( HSCRIPT hParent, const char *szAttachment );
12111213
HSCRIPT ScriptGetMoveParent( void );

0 commit comments

Comments
 (0)