Detach ingame console from the safearea
This commit is contained in:
parent
64593aa079
commit
6dd08dad5a
2
deps/mongoose
vendored
2
deps/mongoose
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 1d4f97bb4c6253c94aa811b25516456c0094cf4a
|
Subproject commit 17184909820c448d51212599006ab65476a398df
|
2
deps/protobuf
vendored
2
deps/protobuf
vendored
@ -1 +1 @@
|
|||||||
Subproject commit fba7976f5d6f1be69d4219a7c485c93b8b28bf65
|
Subproject commit 088c5c491e7a1c95c7b8eb55f119a8a999c81dc1
|
@ -440,6 +440,27 @@ namespace Components
|
|||||||
Utils::Hook(0x4F690C, Console::ToggleConsole, HOOK_CALL).Install()->Quick();
|
Utils::Hook(0x4F690C, Console::ToggleConsole, HOOK_CALL).Install()->Quick();
|
||||||
Utils::Hook(0x4F65A5, Console::ToggleConsole, HOOK_JUMP).Install()->Quick();
|
Utils::Hook(0x4F65A5, Console::ToggleConsole, HOOK_JUMP).Install()->Quick();
|
||||||
|
|
||||||
|
// Patch safearea for ingame-console
|
||||||
|
Utils::Hook(0x5A50EF, [] ()
|
||||||
|
{
|
||||||
|
// Backup the original safe area
|
||||||
|
Game::SafeArea safeAreaBackup;
|
||||||
|
safeAreaBackup = *Game::safeArea;
|
||||||
|
|
||||||
|
// Apply new safe area and border
|
||||||
|
float border = 6.0f;
|
||||||
|
Game::safeArea->top = border;
|
||||||
|
Game::safeArea->left = border;
|
||||||
|
Game::safeArea->bottom = static_cast<float>(Renderer::Height()) - border;
|
||||||
|
Game::safeArea->right = static_cast<float>(Renderer::Width()) - border;
|
||||||
|
|
||||||
|
// Draw the console
|
||||||
|
Game::Con_DrawSolidConsole();
|
||||||
|
|
||||||
|
// Restore the initial safe area
|
||||||
|
*Game::safeArea = safeAreaBackup;
|
||||||
|
}, HOOK_CALL).Install()->Quick();
|
||||||
|
|
||||||
// Check for bad food ;)
|
// Check for bad food ;)
|
||||||
Utils::Hook(0x4CB9F4, Console::GetAutoCompleteFileList, HOOK_CALL).Install()->Quick();
|
Utils::Hook(0x4CB9F4, Console::GetAutoCompleteFileList, HOOK_CALL).Install()->Quick();
|
||||||
|
|
||||||
|
@ -139,7 +139,18 @@ namespace Components
|
|||||||
Utils::Hook::Set<char*>(0x60BD56, "IW4x (r" REVISION_STR REVISION_SUFFIX ")");
|
Utils::Hook::Set<char*>(0x60BD56, "IW4x (r" REVISION_STR REVISION_SUFFIX ")");
|
||||||
|
|
||||||
// console title
|
// console title
|
||||||
Utils::Hook::Set<char*>(0x4289E8, "IW4x (r" REVISION_STR REVISION_SUFFIX "): Console");
|
if (ZoneBuilder::IsEnabled())
|
||||||
|
{
|
||||||
|
Utils::Hook::Set<char*>(0x4289E8, "IW4x (r" REVISION_STR REVISION_SUFFIX "): ZoneBuilder");
|
||||||
|
}
|
||||||
|
else if (Dedicated::IsDedicated())
|
||||||
|
{
|
||||||
|
Utils::Hook::Set<char*>(0x4289E8, "IW4x (r" REVISION_STR REVISION_SUFFIX "): Dedicated");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Utils::Hook::Set<char*>(0x4289E8, "IW4x (r" REVISION_STR REVISION_SUFFIX "): Console");
|
||||||
|
}
|
||||||
|
|
||||||
// window title
|
// window title
|
||||||
Utils::Hook::Set<char*>(0x5076A0, "IW4x: Multiplayer");
|
Utils::Hook::Set<char*>(0x5076A0, "IW4x: Multiplayer");
|
||||||
|
@ -12,6 +12,7 @@ namespace Game
|
|||||||
CL_IsCgameInitialized_t CL_IsCgameInitialized = (CL_IsCgameInitialized_t)0x43EB20;
|
CL_IsCgameInitialized_t CL_IsCgameInitialized = (CL_IsCgameInitialized_t)0x43EB20;
|
||||||
CL_ConnectFromParty_t CL_ConnectFromParty = (CL_ConnectFromParty_t)0x433D30;
|
CL_ConnectFromParty_t CL_ConnectFromParty = (CL_ConnectFromParty_t)0x433D30;
|
||||||
CL_DownloadsComplete_t CL_DownloadsComplete = (CL_DownloadsComplete_t)0x42CE90;
|
CL_DownloadsComplete_t CL_DownloadsComplete = (CL_DownloadsComplete_t)0x42CE90;
|
||||||
|
CL_ResetViewport_t CL_ResetViewport = (CL_ResetViewport_t)0x4A8830;
|
||||||
|
|
||||||
Cmd_AddCommand_t Cmd_AddCommand = (Cmd_AddCommand_t)0x470090;
|
Cmd_AddCommand_t Cmd_AddCommand = (Cmd_AddCommand_t)0x470090;
|
||||||
Cmd_AddServerCommand_t Cmd_AddServerCommand = (Cmd_AddServerCommand_t)0x4DCE00;
|
Cmd_AddServerCommand_t Cmd_AddServerCommand = (Cmd_AddServerCommand_t)0x4DCE00;
|
||||||
@ -24,6 +25,7 @@ namespace Game
|
|||||||
Com_ParseExt_t Com_ParseExt = (Com_ParseExt_t)0x474D60;
|
Com_ParseExt_t Com_ParseExt = (Com_ParseExt_t)0x474D60;
|
||||||
|
|
||||||
Con_DrawMiniConsole_t Con_DrawMiniConsole = (Con_DrawMiniConsole_t)0x464F30;
|
Con_DrawMiniConsole_t Con_DrawMiniConsole = (Con_DrawMiniConsole_t)0x464F30;
|
||||||
|
Con_DrawSolidConsole_t Con_DrawSolidConsole = (Con_DrawSolidConsole_t)0x5A5040;
|
||||||
|
|
||||||
DB_EnumXAssets_t DB_EnumXAssets = (DB_EnumXAssets_t)0x4B76D0;
|
DB_EnumXAssets_t DB_EnumXAssets = (DB_EnumXAssets_t)0x4B76D0;
|
||||||
DB_FindXAssetHeader_t DB_FindXAssetHeader = (DB_FindXAssetHeader_t)0x407930;
|
DB_FindXAssetHeader_t DB_FindXAssetHeader = (DB_FindXAssetHeader_t)0x407930;
|
||||||
@ -217,6 +219,8 @@ namespace Game
|
|||||||
|
|
||||||
SOCKET* ip_socket = (SOCKET*)0x64A3008;
|
SOCKET* ip_socket = (SOCKET*)0x64A3008;
|
||||||
|
|
||||||
|
SafeArea* safeArea = (SafeArea*)0xA15F48;
|
||||||
|
|
||||||
void* ReallocateAssetPool(XAssetType type, unsigned int newSize)
|
void* ReallocateAssetPool(XAssetType type, unsigned int newSize)
|
||||||
{
|
{
|
||||||
int elSize = DB_GetXAssetSizeHandlers[type]();
|
int elSize = DB_GetXAssetSizeHandlers[type]();
|
||||||
|
@ -21,6 +21,9 @@ namespace Game
|
|||||||
typedef void(__cdecl * CL_DownloadsComplete_t)(int controller);
|
typedef void(__cdecl * CL_DownloadsComplete_t)(int controller);
|
||||||
extern CL_DownloadsComplete_t CL_DownloadsComplete;
|
extern CL_DownloadsComplete_t CL_DownloadsComplete;
|
||||||
|
|
||||||
|
typedef void(__cdecl * CL_ResetViewport_t)();
|
||||||
|
extern CL_ResetViewport_t CL_ResetViewport;
|
||||||
|
|
||||||
typedef void(__cdecl * Cmd_AddCommand_t)(const char* name, void(*callback), cmd_function_t* data, char);
|
typedef void(__cdecl * Cmd_AddCommand_t)(const char* name, void(*callback), cmd_function_t* data, char);
|
||||||
extern Cmd_AddCommand_t Cmd_AddCommand;
|
extern Cmd_AddCommand_t Cmd_AddCommand;
|
||||||
|
|
||||||
@ -48,6 +51,9 @@ namespace Game
|
|||||||
typedef char* (__cdecl * Con_DrawMiniConsole_t)(int localClientNum, int xPos, int yPos, float alpha);
|
typedef char* (__cdecl * Con_DrawMiniConsole_t)(int localClientNum, int xPos, int yPos, float alpha);
|
||||||
extern Con_DrawMiniConsole_t Con_DrawMiniConsole;
|
extern Con_DrawMiniConsole_t Con_DrawMiniConsole;
|
||||||
|
|
||||||
|
typedef void (__cdecl * Con_DrawSolidConsole_t)();
|
||||||
|
extern Con_DrawSolidConsole_t Con_DrawSolidConsole;
|
||||||
|
|
||||||
typedef void(__cdecl * DB_EnumXAssets_t)(XAssetType type, void(*)(XAssetHeader, void *), void* userdata, bool overrides);
|
typedef void(__cdecl * DB_EnumXAssets_t)(XAssetType type, void(*)(XAssetHeader, void *), void* userdata, bool overrides);
|
||||||
extern DB_EnumXAssets_t DB_EnumXAssets;
|
extern DB_EnumXAssets_t DB_EnumXAssets;
|
||||||
|
|
||||||
@ -433,6 +439,8 @@ namespace Game
|
|||||||
extern netadr_t* connectedHost;
|
extern netadr_t* connectedHost;
|
||||||
extern SOCKET* ip_socket;
|
extern SOCKET* ip_socket;
|
||||||
|
|
||||||
|
extern SafeArea* safeArea;
|
||||||
|
|
||||||
void* ReallocateAssetPool(XAssetType type, unsigned int newSize);
|
void* ReallocateAssetPool(XAssetType type, unsigned int newSize);
|
||||||
void Menu_FreeItemMemory(Game::itemDef_t* item);
|
void Menu_FreeItemMemory(Game::itemDef_t* item);
|
||||||
const char* TableLookup(StringTable* stringtable, int row, int column);
|
const char* TableLookup(StringTable* stringtable, int row, int column);
|
||||||
|
@ -1858,6 +1858,14 @@ namespace Game
|
|||||||
{
|
{
|
||||||
DWORD unk;
|
DWORD unk;
|
||||||
} PartyData_t;
|
} PartyData_t;
|
||||||
|
|
||||||
|
struct SafeArea
|
||||||
|
{
|
||||||
|
float left;
|
||||||
|
float top;
|
||||||
|
float right;
|
||||||
|
float bottom;
|
||||||
|
};
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user