Fix glass and maptest
This commit is contained in:
parent
7aba6250f6
commit
4c2f128e97
2
deps/fmt
vendored
2
deps/fmt
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 8c63ea432c7985eb056f1457d7edc8574d4fa2f8
|
Subproject commit 6d9e4d330c5845436dca7a32154176212ebbd4a4
|
2
deps/mongoose
vendored
2
deps/mongoose
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 92b15395a43e0fcdfcf094e519798a0a1cae2b1c
|
Subproject commit b39e30fb0cbed1b91a205903fc6f8956a9e58c32
|
@ -99,30 +99,21 @@ namespace Components
|
|||||||
|
|
||||||
Command::Add("mapTest", [](Command::Params params)
|
Command::Add("mapTest", [](Command::Params params)
|
||||||
{
|
{
|
||||||
|
Game::UI_UpdateArenas();
|
||||||
|
|
||||||
std::string command;
|
std::string command;
|
||||||
|
for (int i = 0; i < (params.Length() >= 2 ? atoi(params[1]) : *Game::arenaCount); ++i)
|
||||||
int max = (params.Length() >= 2 ? atoi(params[1]) : 16), current = 0;
|
|
||||||
|
|
||||||
for (int i = 0;;)
|
|
||||||
{
|
{
|
||||||
char* mapname = Game::mapnames[i];
|
char* mapname = ArenaLength::NewArenas[i % *Game::arenaCount].mapName;
|
||||||
if (!*mapname)
|
|
||||||
{
|
|
||||||
i = 0;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(i % 2)) command.append(fmt::sprintf("wait 250;disconnect;wait 750;", mapname)); // Test a disconnect
|
if (!(i % 2)) command.append(fmt::sprintf("wait 250;disconnect;wait 750;", mapname)); // Test a disconnect
|
||||||
else command.append(fmt::sprintf("wait 500;", mapname)); // Test direct map switch
|
else command.append(fmt::sprintf("wait 500;", mapname)); // Test direct map switch
|
||||||
command.append(fmt::sprintf("map %s;", mapname));
|
command.append(fmt::sprintf("map %s;", mapname));
|
||||||
|
|
||||||
++i, ++current;
|
|
||||||
|
|
||||||
if (current >= max) break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Command::Execute(command, false);
|
Command::Execute(command, false);
|
||||||
});
|
});
|
||||||
|
|
||||||
Command::Add("debug_exceptionhandler", [](Command::Params)
|
Command::Add("debug_exceptionhandler", [](Command::Params)
|
||||||
{
|
{
|
||||||
Logger::Print("Rerunning SetUnhandledExceptionHandler...\n");
|
Logger::Print("Rerunning SetUnhandledExceptionHandler...\n");
|
||||||
|
@ -151,26 +151,15 @@ namespace Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Game::GameMap_Data** Maps::GetWorldData()
|
Game::GameMap_Data* Maps::GetWorldData()
|
||||||
{
|
{
|
||||||
Game::XAssetType type = Game::XAssetType::ASSET_TYPE_GAME_MAP_MP;
|
if (!Utils::String::StartsWith(Maps::CurrentMainZone, "mp_") || Maps::IsSPMap)
|
||||||
if (Utils::String::StartsWith(Maps::CurrentMainZone, "mp_") || Maps::IsSPMap)
|
|
||||||
{
|
{
|
||||||
type = Game::XAssetType::ASSET_TYPE_GAME_MAP_SP;
|
return Game::DB_XAssetPool[Game::XAssetType::ASSET_TYPE_GAME_MAP_SP].gameMapSP[0].data;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
return &(Game::DB_XAssetPool[Game::XAssetType::ASSET_TYPE_GAME_MAP_MP].gameMapMP[0].data);
|
|
||||||
}
|
|
||||||
|
|
||||||
__declspec(naked) void Maps::GetWorldDataStub()
|
|
||||||
{
|
|
||||||
__asm
|
|
||||||
{
|
{
|
||||||
mov eax, 46AC30h
|
return Game::DB_XAssetPool[Game::XAssetType::ASSET_TYPE_GAME_MAP_MP].gameMapMP[0].data;
|
||||||
call eax
|
|
||||||
|
|
||||||
call Maps::GetWorldData
|
|
||||||
retn
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -507,8 +496,7 @@ namespace Components
|
|||||||
Utils::Hook(0x444810, Maps::IgnoreEntityStub, HOOK_JUMP).Install()->Quick();
|
Utils::Hook(0x444810, Maps::IgnoreEntityStub, HOOK_JUMP).Install()->Quick();
|
||||||
|
|
||||||
// WorldData pointer replacement
|
// WorldData pointer replacement
|
||||||
Utils::Hook::Nop(0x4D90B6, 5);
|
Utils::Hook(0x4D90B6, Maps::GetWorldData, HOOK_CALL).Install()->Quick();
|
||||||
Utils::Hook(0x4D90B1, Maps::GetWorldDataStub, HOOK_CALL).Install()->Quick();
|
|
||||||
|
|
||||||
Game::ReallocateAssetPool(Game::XAssetType::ASSET_TYPE_GAME_MAP_SP, 1);
|
Game::ReallocateAssetPool(Game::XAssetType::ASSET_TYPE_GAME_MAP_SP, 1);
|
||||||
Game::ReallocateAssetPool(Game::XAssetType::ASSET_TYPE_IMAGE, 7168);
|
Game::ReallocateAssetPool(Game::XAssetType::ASSET_TYPE_IMAGE, 7168);
|
||||||
|
@ -40,8 +40,7 @@ namespace Components
|
|||||||
|
|
||||||
static int IgnoreEntityStub(const char* entity);
|
static int IgnoreEntityStub(const char* entity);
|
||||||
|
|
||||||
static Game::GameMap_Data** GetWorldData();
|
static Game::GameMap_Data* GetWorldData();
|
||||||
static void GetWorldDataStub();
|
|
||||||
|
|
||||||
static void AddDlc(DLC dlc);
|
static void AddDlc(DLC dlc);
|
||||||
static void UpdateDlcStatus();
|
static void UpdateDlcStatus();
|
||||||
|
@ -224,6 +224,7 @@ namespace Game
|
|||||||
UI_AddMenuList_t UI_AddMenuList = (UI_AddMenuList_t)0x4533C0;
|
UI_AddMenuList_t UI_AddMenuList = (UI_AddMenuList_t)0x4533C0;
|
||||||
UI_CheckStringTranslation_t UI_CheckStringTranslation = (UI_CheckStringTranslation_t)0x4FB010;
|
UI_CheckStringTranslation_t UI_CheckStringTranslation = (UI_CheckStringTranslation_t)0x4FB010;
|
||||||
UI_LoadMenus_t UI_LoadMenus = (UI_LoadMenus_t)0x641460;
|
UI_LoadMenus_t UI_LoadMenus = (UI_LoadMenus_t)0x641460;
|
||||||
|
UI_UpdateArenas_t UI_UpdateArenas = (UI_UpdateArenas_t)0x4A95B0;
|
||||||
UI_DrawHandlePic_t UI_DrawHandlePic = (UI_DrawHandlePic_t)0x4D0EA0;
|
UI_DrawHandlePic_t UI_DrawHandlePic = (UI_DrawHandlePic_t)0x4D0EA0;
|
||||||
UI_GetContext_t UI_GetContext = (UI_GetContext_t)0x4F8940;
|
UI_GetContext_t UI_GetContext = (UI_GetContext_t)0x4F8940;
|
||||||
UI_TextWidth_t UI_TextWidth = (UI_TextWidth_t)0x6315C0;
|
UI_TextWidth_t UI_TextWidth = (UI_TextWidth_t)0x6315C0;
|
||||||
|
@ -527,6 +527,9 @@ namespace Game
|
|||||||
typedef MenuList *(__cdecl * UI_LoadMenus_t)(const char *menuFile, int imageTrack);
|
typedef MenuList *(__cdecl * UI_LoadMenus_t)(const char *menuFile, int imageTrack);
|
||||||
extern UI_LoadMenus_t UI_LoadMenus;
|
extern UI_LoadMenus_t UI_LoadMenus;
|
||||||
|
|
||||||
|
typedef void(__cdecl * UI_UpdateArenas_t)();
|
||||||
|
extern UI_UpdateArenas_t UI_UpdateArenas;
|
||||||
|
|
||||||
typedef void(__cdecl * UI_DrawHandlePic_t)(/*ScreenPlacement*/void *scrPlace, float x, float y, float w, float h, int horzAlign, int vertAlign, const float *color, Material *material);
|
typedef void(__cdecl * UI_DrawHandlePic_t)(/*ScreenPlacement*/void *scrPlace, float x, float y, float w, float h, int horzAlign, int vertAlign, const float *color, Material *material);
|
||||||
extern UI_DrawHandlePic_t UI_DrawHandlePic;
|
extern UI_DrawHandlePic_t UI_DrawHandlePic;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user