-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial WorkshopStopper9000 upload. It's pretty much complete with th…
…is one commit, hopefully.
- Loading branch information
1 parent
c77a763
commit 51538b3
Showing
737 changed files
with
207,641 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
name: MSBuild | ||
|
||
on: | ||
push | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
build: | ||
runs-on: windows-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Add MSBuild into PATH | ||
uses: microsoft/setup-msbuild@v2 | ||
with: | ||
# Version of Visual Studio to search; defaults to latest if not specified | ||
vs-version: "latest" | ||
# The preferred processor architecture of MSBuild. Can be either "x86", "x64", or "arm64". "x64" is only available from Visual Studio version 17.0 and later. | ||
msbuild-architecture: "x86" | ||
|
||
- name: Build | ||
working-directory: ${{env.GITHUB_WORKSPACE}} | ||
# Add additional options to the MSBuild command line here (like platform or verbosity level). | ||
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference | ||
run: msbuild /m /p:Configuration="Release" . | ||
|
||
- name: Upload Artifact | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: workshopstopper9000 | ||
path: Release/workshopstopper9000.dll |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -30,3 +30,5 @@ | |
*.exe | ||
*.out | ||
*.app | ||
/.vs | ||
/Release |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,37 @@ | ||
# WorkshopStopper9000 | ||
A Source Engine Plugin for Portal 2 to stop workshop maps downloading for Sourcemods. | ||
# ***WorkshopStopper9000*** | ||
|
||
## ***A Source Engine Plugin for Portal 2 Source Mods to stop workshop maps downloading.*** | ||
|
||
One issue that plagues Source Mods for Portal 2 is the issue where the game sees that the workshop folder is empty, so it re-downloads ***ALL*** of the users workshop maps into the Source Mods maps folder. There has been no proper way to stop this from happening, so here is a plugin to solve the issue! | ||
|
||
Simply stick this plugin and its respective `.vdc` file into a `addons` folder in the Source Mod's game directory, and Portal 2 should automatically start the plugin up with the game and thus stop the game from downloading workshop maps. That's pretty much it. This took about 20 minutes to make, so if there are any issues, make a Issue post. I'll get to it within the next 20 years. | ||
|
||
**As of writing, 11/09/2024, the plugin is only able compatible for Windows, the signature scanner needs to be made compatible for Linux still. Apologizes for any inconvenience.** | ||
|
||
``` | ||
Please give credit to Orsell/OrsellGaming, Nanoman2525, and NULLderef, as well as the Portal 2: Multiplayer Mod Team (plugin is built off some of the P2:MM plugin's code) if you use this plugin or use its code in any way with your Source Mod. You also need to include this repository's and the P2:MM's License (see below). | ||
``` | ||
|
||
``` | ||
MIT License | ||
Copyright (c) 2024 Portal 2: Multiplayer Mod Team | ||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// | ||
// | ||
// Purpose: | ||
// | ||
//=============================================================================// | ||
|
||
#ifndef CONFIGMANAGER_H | ||
#define CONFIGMANAGER_H | ||
#ifdef _WIN32 | ||
#pragma once | ||
#endif | ||
|
||
#include "KeyValues.h" | ||
#include "utlvector.h" | ||
#include "filesystem_init.h" | ||
|
||
|
||
// See filesystem_init for the vconfig registry values. | ||
|
||
|
||
#define TOKEN_GAMES "Games" | ||
#define TOKEN_GAME_DIRECTORY "GameDir" | ||
#define TOKEN_TOOLS "Tools" | ||
|
||
// STEAM CLOUD FLAGS | ||
#define STEAMREMOTESTORAGE_CLOUD_CONFIG (1<<0) | ||
#define STEAMREMOTESTORAGE_CLOUD_SPRAY (1<<1) | ||
|
||
#define STEAMREMOTESTORAGE_CLOUD_ALL 0x7fff // all bits set, so any new items added will be on by default | ||
|
||
struct defaultConfigInfo_t | ||
{ | ||
char gameName[MAX_PATH]; | ||
char gameDir[MAX_PATH]; | ||
char FGD[MAX_PATH]; | ||
char steamPath[MAX_PATH]; | ||
char defaultPointEntity[MAX_PATH]; | ||
char exeName[MAX_PATH]; | ||
int steamAppID; | ||
}; | ||
|
||
enum eSDKEpochs | ||
{ | ||
HL2 = 1, | ||
EP1 = 2, | ||
EP2 = 3, | ||
SWARM = 4, | ||
}; | ||
|
||
extern defaultConfigInfo_t *gDefaultConfigs[]; | ||
|
||
class CGameConfigManager | ||
{ | ||
public: | ||
|
||
enum loadStatus_t | ||
{ | ||
LOADSTATUS_NONE = 0, // Configs were loaded with no error | ||
LOADSTATUS_CONVERTED, // GameConfig.txt did not exist and was created by converting GameCfg.INI | ||
LOADSTATUS_CREATED, // GameCfg.INI was not found, the system created the default configuration based on found GameInfo.txt resources | ||
LOADSTATUS_ERROR, // File was not loaded and was unable to perform the above fail-safe procedures | ||
}; | ||
|
||
CGameConfigManager( void ); | ||
CGameConfigManager( const char *fileName ); | ||
|
||
~CGameConfigManager( void ); | ||
|
||
bool LoadConfigs( const char *baseDir = NULL ); | ||
bool SaveConfigs( const char *baseDir = NULL ); | ||
bool ResetConfigs( const char *baseDir = NULL ); | ||
|
||
int GetNumConfigs( void ); | ||
|
||
KeyValues *GetGameBlock( void ); | ||
KeyValues *GetGameSubBlock( const char *keyName ); | ||
bool GetDefaultGameBlock( KeyValues *pIn ); | ||
|
||
bool IsLoaded( void ) const { return m_pData != NULL; } | ||
|
||
bool WasConvertedOnLoad( void ) const { return m_LoadStatus == LOADSTATUS_CONVERTED; } | ||
bool WasCreatedOnLoad( void ) const { return m_LoadStatus == LOADSTATUS_CREATED; } | ||
|
||
bool AddDefaultConfig( const defaultConfigInfo_t &info, KeyValues *out, const char *rootDirectory, const char *gameExeDir ); | ||
|
||
void SetBaseDirectory( const char *pDirectory ); | ||
|
||
void GetRootGameDirectory( char *out, size_t outLen, const char *rootDir, const char *steamDir ); | ||
|
||
const char *GetRootDirectory( void ); | ||
void SetSDKEpoch( eSDKEpochs epoch ) { m_eSDKEpoch = epoch; }; | ||
|
||
private: | ||
|
||
void GetRootContentDirectory( char *out, size_t outLen, const char *rootDir ); | ||
|
||
const char *GetBaseDirectory( void ); | ||
const char *GetIniFilePath( void ); | ||
|
||
bool LoadConfigsInternal( const char *baseDir, bool bRecursiveCall ); | ||
void UpdateConfigsInternal( void ); | ||
void VersionConfig( void ); | ||
bool IsConfigCurrent( void ); | ||
|
||
bool ConvertGameConfigsINI( void ); | ||
bool CreateAllDefaultConfigs( void ); | ||
bool IsAppSubscribed( int nAppID ); | ||
|
||
loadStatus_t m_LoadStatus; // Holds various state about what occured while loading | ||
KeyValues *m_pData; // Data as read from configuration file | ||
char m_szBaseDirectory[MAX_PATH]; // Default directory | ||
eSDKEpochs m_eSDKEpoch; // Holds the "working version" of the SDK for times when we need to create an older set of game configurations. | ||
// This is required now that the SDK is deploying the tools for both the latest and previous versions of the engine. | ||
}; | ||
|
||
#endif // CONFIGMANAGER_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======// | ||
// | ||
// Purpose: | ||
// | ||
//===========================================================================// | ||
|
||
#ifndef IGAMECONSOLE_H | ||
#define IGAMECONSOLE_H | ||
#ifdef _WIN32 | ||
#pragma once | ||
#endif | ||
|
||
#include "tier1/interface.h" | ||
|
||
|
||
//----------------------------------------------------------------------------- | ||
// Purpose: interface to game/dev console | ||
//----------------------------------------------------------------------------- | ||
abstract_class IGameConsole : public IBaseInterface | ||
{ | ||
public: | ||
// activates the console, makes it visible and brings it to the foreground | ||
virtual void Activate() = 0; | ||
|
||
virtual void Initialize() = 0; | ||
|
||
// hides the console | ||
virtual void Hide() = 0; | ||
|
||
// clears the console | ||
virtual void Clear() = 0; | ||
|
||
// return true if the console has focus | ||
virtual bool IsConsoleVisible() = 0; | ||
|
||
virtual void SetParent( int parent ) = 0; | ||
}; | ||
|
||
#define GAMECONSOLE_INTERFACE_VERSION "GameConsole004" | ||
|
||
#endif // IGAMECONSOLE_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// | ||
// | ||
// Purpose: | ||
// | ||
// $NoKeywords: $ | ||
//=============================================================================// | ||
|
||
#ifndef IGAMEUI_H | ||
#define IGAMEUI_H | ||
#ifdef _WIN32 | ||
#pragma once | ||
#endif | ||
|
||
#include "interface.h" | ||
#include "vgui/ipanel.h" | ||
|
||
#if !defined( _X360 ) | ||
#include "xbox/xboxstubs.h" | ||
#endif | ||
|
||
class CCommand; | ||
|
||
// reasons why the user can't connect to a game server | ||
enum ESteamLoginFailure | ||
{ | ||
STEAMLOGINFAILURE_NONE, | ||
STEAMLOGINFAILURE_BADTICKET, | ||
STEAMLOGINFAILURE_NOSTEAMLOGIN, | ||
STEAMLOGINFAILURE_VACBANNED, | ||
STEAMLOGINFAILURE_LOGGED_IN_ELSEWHERE | ||
}; | ||
|
||
enum ESystemNotify | ||
{ | ||
SYSTEMNOTIFY_STORAGEDEVICES_CHANGED, | ||
SYSTEMNOTIFY_USER_SIGNEDIN, | ||
SYSTEMNOTIFY_USER_SIGNEDOUT, | ||
SYSTEMNOTIFY_XLIVE_LOGON_ESTABLISHED, // we are logged into live service | ||
SYSTEMNOTIFY_XLIVE_LOGON_CLOSED, // no longer logged into live - either from natural (signed out) or unnatural (e.g. severed net connection) causes | ||
SYSTEMNOTIFY_XUIOPENING, | ||
SYSTEMNOTIFY_XUICLOSED, | ||
SYSTEMNOTIFY_INVITE_SHUTDOWN, // Cross-game invite is causing us to shutdown | ||
SYSTEMNOTIFY_MUTECHANGED, // Player changed mute settings | ||
SYSTEMNOTIFY_INPUTDEVICESCHANGED, // Input device has changed (used for controller disconnection) | ||
SYSTEMNOTIFY_PROFILE_UNAVAILABLE, // Profile failed to read or write | ||
}; | ||
|
||
//----------------------------------------------------------------------------- | ||
// Purpose: contains all the functions that the GameUI dll exports | ||
//----------------------------------------------------------------------------- | ||
abstract_class IGameUI | ||
{ | ||
public: | ||
// initialization/shutdown | ||
virtual void Initialize( CreateInterfaceFn appFactory ) = 0; | ||
virtual void PostInit() = 0; | ||
|
||
// connect to other interfaces at the same level (gameui.dll/server.dll/client.dll) | ||
virtual void Connect( CreateInterfaceFn gameFactory ) = 0; | ||
|
||
virtual void Start() = 0; | ||
virtual void Shutdown() = 0; | ||
virtual void RunFrame() = 0; | ||
|
||
// notifications | ||
virtual void OnGameUIActivated() = 0; | ||
virtual void OnGameUIHidden() = 0; | ||
|
||
// OLD: Use OnConnectToServer2 | ||
virtual void OLD_OnConnectToServer(const char *game, int IP, int port) = 0; | ||
|
||
virtual void OnDisconnectFromServer_OLD( uint8 eSteamLoginFailure, const char *username ) = 0; | ||
virtual void OnLevelLoadingStarted( const char *levelName, bool bShowProgressDialog ) = 0; | ||
virtual void OnLevelLoadingFinished(bool bError, const char *failureReason, const char *extendedReason) = 0; | ||
|
||
// level loading progress, returns true if the screen needs updating | ||
virtual bool UpdateProgressBar(float progress, const char *statusText) = 0; | ||
// Shows progress desc, returns previous setting... (used with custom progress bars ) | ||
virtual bool SetShowProgressText( bool show ) = 0; | ||
|
||
// !!!!!!!!!members added after "GameUI011" initial release!!!!!!!!!!!!!!!!!!! | ||
// Allows the level loading progress to show map-specific info | ||
virtual void SetProgressLevelName( const char *levelName ) = 0; | ||
|
||
// inserts specified panel as background for level load dialog | ||
virtual void SetLoadingBackgroundDialog( vgui::VPANEL panel ) = 0; | ||
|
||
virtual void OnConnectToServer2(const char *game, int IP, int connectionPort, int queryPort) = 0; | ||
|
||
virtual void SetProgressOnStart() = 0; | ||
virtual void OnDisconnectFromServer( uint8 eSteamLoginFailure ) = 0; | ||
|
||
virtual void NeedConnectionProblemWaitScreen() = 0; | ||
virtual void ShowPasswordUI( char const *pchCurrentPW ) = 0; | ||
|
||
#if defined( _X360 ) && defined( _DEMO ) | ||
virtual void OnDemoTimeout( void ) = 0; | ||
#endif | ||
}; | ||
|
||
#define GAMEUI_INTERFACE_VERSION "GameUI011" | ||
|
||
#endif // IGAMEUI_H |
Oops, something went wrong.