Make output logging specific to arbiter builds only
This commit is contained in:
parent
f3eb2893c6
commit
a75be0f9be
|
|
@ -3,16 +3,10 @@
|
||||||
#include "Config.h"
|
#include "Config.h"
|
||||||
#include <oaidl.h>
|
#include <oaidl.h>
|
||||||
|
|
||||||
// CWorkspace
|
|
||||||
// 2010: 0x0047EC10
|
|
||||||
// 2011: 0x0049FC90
|
|
||||||
|
|
||||||
class CWorkspace;
|
class CWorkspace;
|
||||||
|
|
||||||
const auto CWorkspace__ExecUrlScript = (HRESULT(__stdcall*)(CWorkspace * workspace, LPCWSTR, VARIANTARG, VARIANTARG, VARIANTARG, VARIANTARG, LPVOID))ADDRESS_CWORKSPACE__EXECURLSCRIPT;
|
const auto CWorkspace__ExecUrlScript = (HRESULT(__stdcall*)(CWorkspace * workspace, LPCWSTR, VARIANTARG, VARIANTARG, VARIANTARG, VARIANTARG, LPVOID))ADDRESS_CWORKSPACE__EXECURLSCRIPT;
|
||||||
|
|
||||||
// CRobloxDoc
|
|
||||||
|
|
||||||
class CRobloxDoc
|
class CRobloxDoc
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
@ -21,17 +15,11 @@ public:
|
||||||
CWorkspace* workspace;
|
CWorkspace* workspace;
|
||||||
};
|
};
|
||||||
|
|
||||||
// CApp
|
|
||||||
|
|
||||||
class CApp;
|
class CApp;
|
||||||
|
|
||||||
const auto CApp__CreateGame = (CWorkspace * (__thiscall*)(CApp * _this, LPCWSTR, LPCWSTR))ADDRESS_CAPP__CREATEGAME;
|
const auto CApp__CreateGame = (CWorkspace * (__thiscall*)(CApp * _this, LPCWSTR, LPCWSTR))ADDRESS_CAPP__CREATEGAME;
|
||||||
const auto CApp__RobloxAuthenticate = (void * (__thiscall*)(CApp * _this, LPCWSTR, LPCWSTR))ADDRESS_CAPP__ROBLOXAUTHENTICATE;
|
const auto CApp__RobloxAuthenticate = (void * (__thiscall*)(CApp * _this, LPCWSTR, LPCWSTR))ADDRESS_CAPP__ROBLOXAUTHENTICATE;
|
||||||
|
|
||||||
// CRobloxApp
|
|
||||||
// 2010: 0x0044F6E0
|
|
||||||
// 2011: 0x0045D030
|
|
||||||
|
|
||||||
class CRobloxApp
|
class CRobloxApp
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
@ -42,10 +30,6 @@ public:
|
||||||
|
|
||||||
const auto CRobloxApp__CreateDocument = (CRobloxDoc * (__thiscall*)(CRobloxApp * _this))ADDRESS_CROBLOXAPP__CREATEDOCUMENT;
|
const auto CRobloxApp__CreateDocument = (CRobloxDoc * (__thiscall*)(CRobloxApp * _this))ADDRESS_CROBLOXAPP__CREATEDOCUMENT;
|
||||||
|
|
||||||
// CRobloxCommandLineInfo
|
|
||||||
// 2010: 0x007A80A0
|
|
||||||
// 2011: 0x0081354A
|
|
||||||
|
|
||||||
class CCommandLineInfo
|
class CCommandLineInfo
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,6 @@ static std::wstring authenticationTicket;
|
||||||
static std::wstring joinScriptUrl;
|
static std::wstring joinScriptUrl;
|
||||||
static std::string jobId;
|
static std::string jobId;
|
||||||
|
|
||||||
// 2010: 0x00452900;
|
|
||||||
// 2011: 0x004613C0;
|
|
||||||
|
|
||||||
CRobloxApp__InitInstance_t CRobloxApp__InitInstance = (CRobloxApp__InitInstance_t)ADDRESS_CROBLOXAPP__INITINSTANCE;
|
CRobloxApp__InitInstance_t CRobloxApp__InitInstance = (CRobloxApp__InitInstance_t)ADDRESS_CROBLOXAPP__INITINSTANCE;
|
||||||
|
|
||||||
BOOL __fastcall CRobloxApp__InitInstance_hook(CRobloxApp* _this)
|
BOOL __fastcall CRobloxApp__InitInstance_hook(CRobloxApp* _this)
|
||||||
|
|
@ -36,7 +33,7 @@ BOOL __fastcall CRobloxApp__InitInstance_hook(CRobloxApp* _this)
|
||||||
{
|
{
|
||||||
// TODO: use CApp__CreateGame instead
|
// TODO: use CApp__CreateGame instead
|
||||||
CRobloxDoc* document = CRobloxApp__CreateDocument(_this);
|
CRobloxDoc* document = CRobloxApp__CreateDocument(_this);
|
||||||
CWorkspace__ExecUrlScript(document->workspace, joinScriptUrl.c_str(), VARIANTARG(), VARIANTARG(), VARIANTARG(), VARIANTARG(), nullptr);
|
// CWorkspace__ExecUrlScript(document->workspace, joinScriptUrl.c_str(), VARIANTARG(), VARIANTARG(), VARIANTARG(), VARIANTARG(), nullptr);
|
||||||
|
|
||||||
// CApp__CreateGame(NULL, L"", L"44340105256");
|
// CApp__CreateGame(NULL, L"", L"44340105256");
|
||||||
// CApp__RobloxAuthenticate(_this->app, L"http://polygondev.pizzaboxer.xyz/", L"test");
|
// CApp__RobloxAuthenticate(_this->app, L"http://polygondev.pizzaboxer.xyz/", L"test");
|
||||||
|
|
@ -52,9 +49,6 @@ BOOL __fastcall CRobloxApp__InitInstance_hook(CRobloxApp* _this)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2010: 0x00450AC0;
|
|
||||||
// 2011: 0x0045EE50;
|
|
||||||
|
|
||||||
CRobloxCommandLineInfo__ParseParam_t CRobloxCommandLineInfo__ParseParam = (CRobloxCommandLineInfo__ParseParam_t)ADDRESS_CROBLOXCOMMANDLINEINFO__PARSEPARAM;
|
CRobloxCommandLineInfo__ParseParam_t CRobloxCommandLineInfo__ParseParam = (CRobloxCommandLineInfo__ParseParam_t)ADDRESS_CROBLOXCOMMANDLINEINFO__PARSEPARAM;
|
||||||
|
|
||||||
void __fastcall CRobloxCommandLineInfo__ParseParam_hook(CRobloxCommandLineInfo* _this, void*, const char* pszParam, BOOL bFlag, BOOL bLast)
|
void __fastcall CRobloxCommandLineInfo__ParseParam_hook(CRobloxCommandLineInfo* _this, void*, const char* pszParam, BOOL bFlag, BOOL bLast)
|
||||||
|
|
@ -91,6 +85,7 @@ void __fastcall CRobloxCommandLineInfo__ParseParam_hook(CRobloxCommandLineInfo*
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ARBITERBUILD
|
||||||
if (hasJobId && jobId.empty())
|
if (hasJobId && jobId.empty())
|
||||||
{
|
{
|
||||||
jobId = std::string(pszParam);
|
jobId = std::string(pszParam);
|
||||||
|
|
@ -104,6 +99,7 @@ void __fastcall CRobloxCommandLineInfo__ParseParam_hook(CRobloxCommandLineInfo*
|
||||||
CCommandLineInfo__ParseLast(_this, bLast);
|
CCommandLineInfo__ParseLast(_this, bLast);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (bFlag && _stricmp(pszParam, "a") == 0)
|
if (bFlag && _stricmp(pszParam, "a") == 0)
|
||||||
{
|
{
|
||||||
|
|
@ -126,19 +122,19 @@ void __fastcall CRobloxCommandLineInfo__ParseParam_hook(CRobloxCommandLineInfo*
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ARBITERBUILD
|
||||||
if (bFlag && _stricmp(pszParam, "jobId") == 0)
|
if (bFlag && _stricmp(pszParam, "jobId") == 0)
|
||||||
{
|
{
|
||||||
hasJobId = true;
|
hasJobId = true;
|
||||||
CCommandLineInfo__ParseLast(_this, bLast);
|
CCommandLineInfo__ParseLast(_this, bLast);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
CRobloxCommandLineInfo__ParseParam(_this, pszParam, bFlag, bLast);
|
CRobloxCommandLineInfo__ParseParam(_this, pszParam, bFlag, bLast);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2010: 0x0059F340;
|
#ifdef ARBITERBUILD
|
||||||
// 2011: 0x005B25E0;
|
|
||||||
|
|
||||||
StandardOut__print_t StandardOut__print = (StandardOut__print_t)ADDRESS_STANDARDOUT__PRINT;
|
StandardOut__print_t StandardOut__print = (StandardOut__print_t)ADDRESS_STANDARDOUT__PRINT;
|
||||||
|
|
||||||
void __fastcall StandardOut__print_hook(void* _this, void*, int type, const std::string& message)
|
void __fastcall StandardOut__print_hook(void* _this, void*, int type, const std::string& message)
|
||||||
|
|
@ -166,4 +162,5 @@ void __fastcall StandardOut__print_hook(void* _this, void*, int type, const std:
|
||||||
SetConsoleTextAttribute(handle, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
|
SetConsoleTextAttribute(handle, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
|
||||||
|
|
||||||
StandardOut__print(_this, type, message);
|
StandardOut__print(_this, type, message);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
@ -2,23 +2,19 @@
|
||||||
|
|
||||||
#include "RobloxMFCClasses.h"
|
#include "RobloxMFCClasses.h"
|
||||||
|
|
||||||
// CRobloxApp
|
|
||||||
|
|
||||||
typedef BOOL(__thiscall* CRobloxApp__InitInstance_t)(CRobloxApp* _this);
|
typedef BOOL(__thiscall* CRobloxApp__InitInstance_t)(CRobloxApp* _this);
|
||||||
extern CRobloxApp__InitInstance_t CRobloxApp__InitInstance;
|
extern CRobloxApp__InitInstance_t CRobloxApp__InitInstance;
|
||||||
|
|
||||||
BOOL __fastcall CRobloxApp__InitInstance_hook(CRobloxApp* _this);
|
BOOL __fastcall CRobloxApp__InitInstance_hook(CRobloxApp* _this);
|
||||||
|
|
||||||
// CRobloxCommandLineInfo
|
|
||||||
|
|
||||||
typedef void(__thiscall* CRobloxCommandLineInfo__ParseParam_t)(CRobloxCommandLineInfo* _this, const char* pszParam, BOOL bFlag, BOOL bLast);
|
typedef void(__thiscall* CRobloxCommandLineInfo__ParseParam_t)(CRobloxCommandLineInfo* _this, const char* pszParam, BOOL bFlag, BOOL bLast);
|
||||||
extern CRobloxCommandLineInfo__ParseParam_t CRobloxCommandLineInfo__ParseParam;
|
extern CRobloxCommandLineInfo__ParseParam_t CRobloxCommandLineInfo__ParseParam;
|
||||||
|
|
||||||
void __fastcall CRobloxCommandLineInfo__ParseParam_hook(CRobloxCommandLineInfo* _this, void*, const char* pszParam, BOOL bFlag, BOOL bLast);
|
void __fastcall CRobloxCommandLineInfo__ParseParam_hook(CRobloxCommandLineInfo* _this, void*, const char* pszParam, BOOL bFlag, BOOL bLast);
|
||||||
|
|
||||||
// StandardOut
|
#ifdef ARBITERBUILD
|
||||||
|
|
||||||
typedef void(__thiscall* StandardOut__print_t)(void* _this, int type, const std::string& message);
|
typedef void(__thiscall* StandardOut__print_t)(void* _this, int type, const std::string& message);
|
||||||
extern StandardOut__print_t StandardOut__print;
|
extern StandardOut__print_t StandardOut__print;
|
||||||
|
|
||||||
void __fastcall StandardOut__print_hook(void* _this, void*, int type, const std::string& message);
|
void __fastcall StandardOut__print_hook(void* _this, void*, int type, const std::string& message);
|
||||||
|
#endif
|
||||||
|
|
@ -1,11 +1,18 @@
|
||||||
#include "pch.h"
|
#include "pch.h"
|
||||||
|
#include "Config.h"
|
||||||
#include "Patches.h"
|
#include "Patches.h"
|
||||||
#include "RobloxMFCHooks.h"
|
#include "RobloxMFCHooks.h"
|
||||||
|
|
||||||
START_PATCH_LIST()
|
START_PATCH_LIST()
|
||||||
|
#ifdef ADDRESS_CROBLOXAPP__INITINSTANCE
|
||||||
ADD_PATCH(CRobloxApp__InitInstance, CRobloxApp__InitInstance_hook)
|
ADD_PATCH(CRobloxApp__InitInstance, CRobloxApp__InitInstance_hook)
|
||||||
|
#endif
|
||||||
|
#ifdef ADDRESS_CROBLOXCOMMANDLINEINFO__PARSEPARAM
|
||||||
ADD_PATCH(CRobloxCommandLineInfo__ParseParam, CRobloxCommandLineInfo__ParseParam_hook)
|
ADD_PATCH(CRobloxCommandLineInfo__ParseParam, CRobloxCommandLineInfo__ParseParam_hook)
|
||||||
|
#endif
|
||||||
|
#ifdef ARBITERBUILD
|
||||||
ADD_PATCH(StandardOut__print, StandardOut__print_hook)
|
ADD_PATCH(StandardOut__print, StandardOut__print_hook)
|
||||||
|
#endif
|
||||||
END_PATCH_LIST()
|
END_PATCH_LIST()
|
||||||
|
|
||||||
// To be added to game imports
|
// To be added to game imports
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue