mirror of
https://github.com/Gigaslav/HL2Overcharged.git
synced 2026-01-02 17:48:11 +03:00
178 lines
7.0 KiB
C++
178 lines
7.0 KiB
C++
#include "cbase.h"
|
|
#include "SteamCommon.h"
|
|
#ifdef CLIENT_DLL
|
|
#include "clientsteamcontext.h"
|
|
#endif
|
|
#include "filesystem.h"
|
|
#include "fmtstr.h"
|
|
|
|
#include "content_mounter.h"
|
|
|
|
#include "ienginevgui.h"
|
|
#include <vgui/ISurface.h>
|
|
#include <vgui/IVGui.h>
|
|
#include <vgui/ILocalize.h>
|
|
#include "icommandline.h"
|
|
#include "tier3/tier3.h"
|
|
|
|
void AddEP2(const char* path)
|
|
{
|
|
filesystem->AddSearchPath(CFmtStr("%s/ep2/ep2_pak.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/ep2/ep2_sound_vo_english.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/ep2", path), "GAME", PATH_ADD_TO_HEAD);
|
|
g_pVGuiLocalize->AddFile("resource/ep2_%language%.txt");
|
|
}
|
|
|
|
void AddCSS(const char* path)
|
|
{
|
|
filesystem->AddSearchPath(CFmtStr("%s/cstrike/cstrike_pak.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/cstrike/cstrike_english.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/cstrike", path), "GAME", PATH_ADD_TO_HEAD);
|
|
g_pVGuiLocalize->AddFile("resource/cstrike_%language%.txt");
|
|
}
|
|
|
|
void AddLostCoast(const char* path)
|
|
{
|
|
filesystem->AddSearchPath(CFmtStr("%s/lostcoast/lostcoast_pak.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/lostcoast/lostcoast_sound_vo_english.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/lostcoast", path), "GAME", PATH_ADD_TO_HEAD);
|
|
g_pVGuiLocalize->AddFile("resource/lostcoast_%language%.txt");
|
|
}
|
|
|
|
void AddPortal(const char* path)
|
|
{
|
|
filesystem->AddSearchPath(CFmtStr("%s/portal/portal_pak.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/portal/portal_sound_vo_english.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/portal", path), "GAME", PATH_ADD_TO_HEAD);
|
|
g_pVGuiLocalize->AddFile("resource/portal_%language%.txt");
|
|
}
|
|
|
|
void AddEP1(const char* path)
|
|
{
|
|
filesystem->AddSearchPath(CFmtStr("%s/episodic/ep1_pak.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/episodic/ep1_sound_vo_english.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/episodic", path), "GAME", PATH_ADD_TO_HEAD);
|
|
g_pVGuiLocalize->AddFile("resource/episodic_%language%.txt");
|
|
}
|
|
|
|
void AddHL2(const char* path)
|
|
{
|
|
// Crashes for some reason...
|
|
// We will keep this always in gameinfo for now...
|
|
/*filesystem->AddSearchPath(CFmtStr("%s/hl2/hl2_misc.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/hl2/hl2_sound_misc.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/hl2/hl2_textures.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/hl2/hl2_pak.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/hl2/hl2_sound_vo_english.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/hl2", path), "GAME", PATH_ADD_TO_HEAD);*/
|
|
g_pVGuiLocalize->AddFile("resource/hl2_%language%.txt");
|
|
}
|
|
|
|
void AddHL2MP(const char* path)
|
|
{
|
|
filesystem->AddSearchPath(CFmtStr("%s/hl2mp/hl2mp_pak.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/hl2mp/hl2mp_english.vpk", path), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/hl2mp", path), "GAME", PATH_ADD_TO_HEAD);
|
|
g_pVGuiLocalize->AddFile("resource/hl2mp_%language%.txt");
|
|
}
|
|
|
|
void AddPlatform(const char* path)
|
|
{
|
|
filesystem->AddSearchPath(CFmtStr("%s/platform", path), "PLATFORM", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/platform/platform_misc.vpk", path), "PLATFORM", PATH_ADD_TO_HEAD);
|
|
}
|
|
|
|
void MountExtraContent()
|
|
{
|
|
KeyValuesAD gameinfo("GameInfo");
|
|
gameinfo->LoadFromFile(filesystem, "gameinfo.txt");
|
|
|
|
if (steamapicontext->SteamApps()->BIsAppInstalled(243730))
|
|
{
|
|
char sdk2013SPPath[MAX_PATH];
|
|
steamapicontext->SteamApps()->GetAppInstallDir(243730, sdk2013SPPath, sizeof(sdk2013SPPath));
|
|
|
|
if (gameinfo->GetBool("hl2content") || gameinfo->GetBool("ep1content") || gameinfo->GetBool("ep2content"))
|
|
AddHL2(sdk2013SPPath);
|
|
|
|
if (gameinfo->GetBool("ep2content") || gameinfo->GetBool("ep1content"))
|
|
AddEP1(sdk2013SPPath);
|
|
|
|
if (gameinfo->GetBool("ep2content"))
|
|
AddEP2(sdk2013SPPath);
|
|
|
|
if (gameinfo->GetBool("lostcoastcontent"))
|
|
AddLostCoast(sdk2013SPPath);
|
|
}
|
|
|
|
if (steamapicontext->SteamApps()->BIsAppInstalled(243750) && gameinfo->GetBool("hl2mpcontent"))
|
|
{
|
|
char sdk2013MPPath[MAX_PATH];
|
|
steamapicontext->SteamApps()->GetAppInstallDir(243750, sdk2013MPPath, sizeof(sdk2013MPPath));
|
|
AddHL2(sdk2013MPPath);
|
|
AddHL2MP(sdk2013MPPath);
|
|
}
|
|
|
|
if (steamapicontext->SteamApps()->BIsAppInstalled(220) && (gameinfo->GetBool("hl2content") || gameinfo->GetBool("ep1content") || gameinfo->GetBool("ep2content")))
|
|
{
|
|
char hl2Path[MAX_PATH];
|
|
steamapicontext->SteamApps()->GetAppInstallDir(220, hl2Path, sizeof(hl2Path));
|
|
AddHL2(hl2Path);
|
|
}
|
|
|
|
if (steamapicontext->SteamApps()->BIsAppInstalled(320) && gameinfo->GetBool("hl2mpcontent"))
|
|
{
|
|
char hl2mpPath[MAX_PATH];
|
|
steamapicontext->SteamApps()->GetAppInstallDir(320, hl2mpPath, sizeof(hl2mpPath));
|
|
AddHL2(hl2mpPath);
|
|
AddHL2MP(hl2mpPath);
|
|
}
|
|
|
|
if (steamapicontext->SteamApps()->BIsAppInstalled(380) && (gameinfo->GetBool("ep1content") || gameinfo->GetBool("ep2content")))
|
|
{
|
|
char ep1Path[MAX_PATH];
|
|
steamapicontext->SteamApps()->GetAppInstallDir(380, ep1Path, sizeof(ep1Path));
|
|
AddEP1(ep1Path);
|
|
}
|
|
|
|
if (steamapicontext->SteamApps()->BIsAppInstalled(420) && gameinfo->GetBool("ep2content"))
|
|
{
|
|
char ep2Path[MAX_PATH];
|
|
steamapicontext->SteamApps()->GetAppInstallDir(420, ep2Path, sizeof(ep2Path));
|
|
AddEP2(ep2Path);
|
|
}
|
|
|
|
if (steamapicontext->SteamApps()->BIsAppInstalled(340) && gameinfo->GetBool("lostcoastcontent"))
|
|
{
|
|
char lostCoastPath[MAX_PATH];
|
|
steamapicontext->SteamApps()->GetAppInstallDir(340, lostCoastPath, sizeof(lostCoastPath));
|
|
AddLostCoast(lostCoastPath);
|
|
}
|
|
|
|
if (steamapicontext->SteamApps()->BIsAppInstalled(400) && gameinfo->GetBool("portalcontent"))
|
|
{
|
|
char portalPath[MAX_PATH];
|
|
steamapicontext->SteamApps()->GetAppInstallDir(400, portalPath, sizeof(portalPath));
|
|
AddPortal(portalPath);
|
|
}
|
|
|
|
if (steamapicontext->SteamApps()->BIsAppInstalled(240) && gameinfo->GetBool("csscontent"))
|
|
{
|
|
char cssPath[MAX_PATH];
|
|
steamapicontext->SteamApps()->GetAppInstallDir(240, cssPath, sizeof(cssPath));
|
|
AddCSS(cssPath);
|
|
}
|
|
|
|
if (steamapicontext->SteamApps()->BIsAppInstalled(243750))
|
|
{
|
|
char sdk2013MPPath[MAX_PATH];
|
|
steamapicontext->SteamApps()->GetAppInstallDir(243750, sdk2013MPPath, sizeof(sdk2013MPPath));
|
|
AddPlatform(sdk2013MPPath);
|
|
}
|
|
|
|
filesystem->AddSearchPath(CFmtStr("%s", CommandLine()->ParmValue("-game")), "GAME", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s", CommandLine()->ParmValue("-game")), "MOD", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s", CommandLine()->ParmValue("-game")), "MOD_WRITE", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s", CommandLine()->ParmValue("-game")), "DEFAULT_WRITE_PATH", PATH_ADD_TO_HEAD);
|
|
filesystem->AddSearchPath(CFmtStr("%s/bin", CommandLine()->ParmValue("-game")), "GAMEBIN", PATH_ADD_TO_HEAD);
|
|
} |