Skip to content

Commit b8dfc69

Browse files
committed
Add game-specific Mapbase localization and event scripts
1 parent 55dfa59 commit b8dfc69

2 files changed

Lines changed: 46 additions & 3 deletions

File tree

src/game/server/gameinterface.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,10 @@ static void UpdateChapterRestrictions( const char *mapname );
253253

254254
static void UpdateRichPresence ( void );
255255

256+
#ifdef MAPBASE
257+
extern void RegisterMapbaseGameEvents();
258+
#endif
259+
256260

257261
#if !defined( _XBOX ) // Don't doubly define this symbol.
258262
CSharedEdictChangeInfo *g_pSharedChangeInfo = NULL;
@@ -720,10 +724,12 @@ bool CServerGameDLL::DLLInit( CreateInterfaceFn appSystemFactory,
720724
// Add sound emitter
721725
IGameSystem::Add( SoundEmitterSystem() );
722726

723-
// load Mod specific game events ( MUST be before InitAllSystems() so it can pickup the mod specific events)
724727
#ifdef MAPBASE
725-
gameeventmanager->LoadEventsFromFile("resource/MapbaseEvents.res");
728+
// Load Mapbase game events
729+
RegisterMapbaseGameEvents();
726730
#endif
731+
732+
// load Mod specific game events ( MUST be before InitAllSystems() so it can pickup the mod specific events)
727733
gameeventmanager->LoadEventsFromFile("resource/ModEvents.res");
728734

729735
#ifdef CSTRIKE_DLL // BOTPORT: TODO: move these ifdefs out

src/game/shared/mapbase/mapbase_shared.cpp

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,15 @@ class CMapbaseSystem : public CAutoGameSystem
213213
InitializeRTs();
214214
#endif
215215

216+
// Shared Mapbase scripts to avoid overwriting mod files
217+
g_pVGuiLocalize->AddFile( "resource/mapbase_%language%.txt" );
218+
#if defined(HL2_DLL) || defined(HL2_CLIENT_DLL)
219+
g_pVGuiLocalize->AddFile( "resource/mapbase_hl2_%language%.txt" );
220+
#endif
221+
#if defined(TF_DLL) || defined(TF_CLIENT_DLL)
222+
g_pVGuiLocalize->AddFile( "resource/mapbase_tf_%language%.txt" );
223+
#endif
224+
216225
return true;
217226
}
218227

@@ -270,7 +279,6 @@ class CMapbaseSystem : public CAutoGameSystem
270279
RefreshMapName();
271280

272281
// Shared Mapbase scripts to avoid overwriting mod files
273-
g_pVGuiLocalize->AddFile( "resource/mapbase_%language%.txt" );
274282
#ifdef CLIENT_DLL
275283
PanelMetaClassMgr()->LoadMetaClassDefinitionFile( "scripts/vgui_screens_mapbase.txt" );
276284
#endif
@@ -865,3 +873,32 @@ CON_COMMAND_SHARED( con_group_toggle, "Toggles a console group." )
865873
{
866874
ToggleConsoleGroups( args.Arg( 1 ) );
867875
}
876+
877+
//-----------------------------------------------------------------------------
878+
879+
#ifndef CLIENT_DLL
880+
881+
// Used by CServerGameDLL::DLLInit to initialize Mapbase events.
882+
// These are usually new events which are added separately so that mods don't need to manually add them to modevents.res.
883+
// Events specific to a certain game are usually separated due to having game-specific uses and/or because they were ported from another
884+
// game that already has it.
885+
// modevents.res will still override events listed in these files.
886+
void RegisterMapbaseGameEvents()
887+
{
888+
gameeventmanager->LoadEventsFromFile( "resource/mapbaseevents.res" );
889+
890+
#ifdef MAPBASE_MP
891+
gameeventmanager->LoadEventsFromFile( "resource/mapbaseevents_mp.res" );
892+
#endif
893+
#ifdef HL2_DLL
894+
gameeventmanager->LoadEventsFromFile( "resource/mapbaseevents_hl2.res" );
895+
#endif
896+
#ifdef HL2MP
897+
gameeventmanager->LoadEventsFromFile( "resource/mapbaseevents_hl2mp.res" );
898+
#endif
899+
#ifdef TF_DLL
900+
gameeventmanager->LoadEventsFromFile( "resource/mapbaseevents_tf.res" );
901+
#endif
902+
}
903+
904+
#endif

0 commit comments

Comments
 (0)