[CommonPatch]: Added Enhanced debug information when cg_drawFPS value more than 1
This commit is contained in:
parent
b7668a6d85
commit
e426d837e0
@ -481,6 +481,72 @@ namespace Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float CommonPatch::CG_DrawViewpos(float previous_y, float posX, float labelWidth)
|
||||||
|
{
|
||||||
|
const float color[4] = { 1.00f, 1.00f, 1.00f, 1.00f };
|
||||||
|
const char* mapname = Dvars::Functions::Dvar_FindVar("mapname")->current.string;
|
||||||
|
const char* text = Utils::String::VA("%s (%.1f %.1f %.1f) %.1f %.1f", mapname, Game::g_clients->ps.origin[0], Game::g_clients->ps.origin[1], Game::g_clients->ps.origin[2], Game::cgs->refdefViewAngles[1], Game::cgs->refdefViewAngles[0]);
|
||||||
|
float final_pos = Game::CG_CornerDebugPrint(color, text, Game::scrPlaceFull, posX, previous_y, labelWidth, " viewpos") + previous_y;
|
||||||
|
return final_pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
float CommonPatch::CG_DrawDObjInfo(float previous_y, float posX, float labelWidth)
|
||||||
|
{
|
||||||
|
int objFreeCount = *(int*)(0xFC1918);
|
||||||
|
const float color[4] = { 1.00f, 1.00f, 1.00f, 1.00f };
|
||||||
|
const char* text = Utils::String::VA("%d/%d", 2048 - objFreeCount, 2048);
|
||||||
|
float final_pos = Game::CG_CornerDebugPrint(color, text, Game::scrPlaceFull, posX, previous_y, labelWidth, " used DObjs") + previous_y;
|
||||||
|
return final_pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
float CommonPatch::CG_DrawEntitiesCountInfo(float previous_y, float posX, float labelWidth)
|
||||||
|
{
|
||||||
|
int level_num_entities = *(int*)(0xE18E24);
|
||||||
|
const float color[4] = { 1.00f, 1.00f, 1.00f, 1.00f };
|
||||||
|
const char* text = Utils::String::VA("%d/%d", level_num_entities, 2174);
|
||||||
|
float final_pos = Game::CG_CornerDebugPrint(color, text, Game::scrPlaceFull, posX, previous_y, labelWidth, " total ents") + previous_y;
|
||||||
|
return final_pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
float CommonPatch::CG_DrawAICount(float previous_y, float posX, float labelWidth)
|
||||||
|
{
|
||||||
|
int level_actorCount = *(int*)(0xE18E64);
|
||||||
|
const float color[4] = { 1.00f, 1.00f, 1.00f, 1.00f };
|
||||||
|
const char* text = Utils::String::VA("%d/%d", level_actorCount, 32);
|
||||||
|
float final_pos = Game::CG_CornerDebugPrint(color, text, Game::scrPlaceFull, posX, previous_y, labelWidth, " total AI") + previous_y;
|
||||||
|
return final_pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CommonPatch::EnhancedDebugInformation()
|
||||||
|
{
|
||||||
|
float x = Game::scrPlaceFull->virtualViewableMax[0] - Game::scrPlaceFull->virtualViewableMin[0] + Dvars::Functions::Dvar_FindVar("cg_debugInfoCornerOffset")->current.value;
|
||||||
|
float y = Dvars::Functions::Dvar_FindVar("cg_debugInfoCornerOffset")->current.vector[1];
|
||||||
|
float labelWidth = Dvars::Functions::Dvar_FindVar("cg_small_dev_string_fontscale")->current.value * (Game::R_TextWidth(" cg ms/frame", 0, Game::cgMedia->smallDevFont) * 0.75f);
|
||||||
|
|
||||||
|
if(Dvars::cg_drawViewpos->current.enabled)
|
||||||
|
y = CG_DrawViewpos(y, x, labelWidth);
|
||||||
|
if (Dvars::Functions::Dvar_FindVar("cg_drawFPS")->current.integer)
|
||||||
|
{
|
||||||
|
y = Utils::Hook::Call<float(float)>(0x411510)(y); //CG_DrawFPS
|
||||||
|
if (Dvars::Functions::Dvar_FindVar("cg_drawFPS")->current.integer > 1)
|
||||||
|
{
|
||||||
|
y = CG_DrawDObjInfo(y, x, labelWidth);
|
||||||
|
y = CG_DrawEntitiesCountInfo(y, x, labelWidth);
|
||||||
|
y = CG_DrawAICount(y, x, labelWidth);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void __declspec(naked) CommonPatch::CG_DrawFPSStub()
|
||||||
|
{
|
||||||
|
const static uint32_t retn_addr = 0x411167;
|
||||||
|
__asm
|
||||||
|
{
|
||||||
|
mov dword ptr ds:[0x1628E68], 0;
|
||||||
|
call EnhancedDebugInformation;
|
||||||
|
jmp retn_addr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Game::dvar_s* CommonPatch::fs_usedevdir_fix(const char* dvarName, int type, unsigned __int16 flags, float r, float g, float b, float a, float min, float max, const char* description)
|
Game::dvar_s* CommonPatch::fs_usedevdir_fix(const char* dvarName, int type, unsigned __int16 flags, float r, float g, float b, float a, float min, float max, const char* description)
|
||||||
{
|
{
|
||||||
@ -539,6 +605,11 @@ namespace Components
|
|||||||
Game::dvar_s* snd_hitsoundDisabled = Dvars::Register::Dvar_RegisterBool("snd_hitsoundDisabled", "Disable the hit indicator sound", true, Game::saved);
|
Game::dvar_s* snd_hitsoundDisabled = Dvars::Register::Dvar_RegisterBool("snd_hitsoundDisabled", "Disable the hit indicator sound", true, Game::saved);
|
||||||
Game::dvar_s* sv_allowCheats = Dvars::Register::Dvar_RegisterBool("sv_allowCheats", "Enable/Disable the game cheats", false, Game::saved);
|
Game::dvar_s* sv_allowCheats = Dvars::Register::Dvar_RegisterBool("sv_allowCheats", "Enable/Disable the game cheats", false, Game::saved);
|
||||||
Dvars::allowCompactFolderForMod = Dvars::Register::Dvar_RegisterBool("allowCompactFolderForMod", "Enable/Disable compact loading of the mod files.", false, Game::saved);
|
Dvars::allowCompactFolderForMod = Dvars::Register::Dvar_RegisterBool("allowCompactFolderForMod", "Enable/Disable compact loading of the mod files.", false, Game::saved);
|
||||||
|
|
||||||
|
if (Game::DebugModeEnabled())
|
||||||
|
{
|
||||||
|
Dvars::cg_drawViewpos = Dvars::Register::Dvar_RegisterBool("cg_drawViewpos", "Draw viewpos", false, Game::saved);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Change the folder for loading files from miles
|
// Change the folder for loading files from miles
|
||||||
@ -636,6 +707,13 @@ namespace Components
|
|||||||
// Fix the 'fs_usedevdir' skill issue
|
// Fix the 'fs_usedevdir' skill issue
|
||||||
Utils::Hook(0x57AC04, fs_usedevdir_register_stub, HOOK_JUMP).install()->quick();
|
Utils::Hook(0x57AC04, fs_usedevdir_register_stub, HOOK_JUMP).install()->quick();
|
||||||
|
|
||||||
|
if (Game::DebugModeEnabled())
|
||||||
|
{
|
||||||
|
// Additional debug information
|
||||||
|
Utils::Hook::Nop(0x411140, 10);
|
||||||
|
Utils::Hook(0x411140, CG_DrawFPSStub, HOOK_JUMP).install()->quick();
|
||||||
|
}
|
||||||
|
|
||||||
// Mouse fix
|
// Mouse fix
|
||||||
Utils::Hook::Nop(0x59681C, 8);
|
Utils::Hook::Nop(0x59681C, 8);
|
||||||
Scheduler::Loop([]
|
Scheduler::Loop([]
|
||||||
|
@ -25,6 +25,13 @@ namespace Components
|
|||||||
static void RegisterConColorStub5();
|
static void RegisterConColorStub5();
|
||||||
static void LanguageSetValueConfig(int langIndex);
|
static void LanguageSetValueConfig(int langIndex);
|
||||||
|
|
||||||
|
static void CG_DrawFPSStub();
|
||||||
|
static void EnhancedDebugInformation();
|
||||||
|
static float CG_DrawAICount(float previous_y, float posX, float labelWidth);
|
||||||
|
static float CG_DrawEntitiesCountInfo(float previous_y, float posX, float labelWidth);
|
||||||
|
static float CG_DrawDObjInfo(float previous_y, float posX, float labelWidth);
|
||||||
|
static float CG_DrawViewpos(float previous_y, float posX, float labelWidth);
|
||||||
|
|
||||||
static bool CheckMilesFiles();
|
static bool CheckMilesFiles();
|
||||||
static const char* __stdcall AIL_set_redist_directory_Stub(const char* directory);
|
static const char* __stdcall AIL_set_redist_directory_Stub(const char* directory);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user