|
|
@@ -1,58 +1,58 @@ |
|
|
#define DIRECTINPUT_VERSION 0x0800 |
|
|
#include "dinput.h" |
|
|
|
|
|
#include "common.h" |
|
|
#include "patcher.h" |
|
|
#include "Messages.h" |
|
|
#include "RwHelper.h" |
|
|
#include "Hud.h" |
|
|
#include "User.h" |
|
|
#include "Timer.h" |
|
|
#include "Text.h" |
|
|
|
|
|
#include "ControllerConfig.h" |
|
|
|
|
|
tMessage(&CMessages::BriefMessages)[NUMBRIEFMESSAGES] = *(tMessage(*)[NUMBRIEFMESSAGES])*(uintptr*)0x8786E0; |
|
|
tPreviousBrief(&CMessages::PreviousBriefs)[NUMPREVIOUSBRIEFS] = *(tPreviousBrief(*)[NUMPREVIOUSBRIEFS])*(uintptr*)0x713C08; |
|
|
tBigMessage(&CMessages::BIGMessages)[NUMBIGMESSAGES] = *(tBigMessage(*)[NUMBIGMESSAGES])*(uintptr*)0x773628; |
|
|
char CMessages::PreviousMissionTitle[16]; // unused |
|
|
|
|
|
void |
|
|
CMessages::Init() |
|
|
#define DIRECTINPUT_VERSION 0x0800 |
|
|
#include "dinput.h" |
|
|
|
|
|
#include "common.h" |
|
|
#include "patcher.h" |
|
|
#include "Messages.h" |
|
|
#include "RwHelper.h" |
|
|
#include "Hud.h" |
|
|
#include "User.h" |
|
|
#include "Timer.h" |
|
|
#include "Text.h" |
|
|
|
|
|
#include "ControllerConfig.h" |
|
|
|
|
|
tMessage(&CMessages::BriefMessages)[NUMBRIEFMESSAGES] = *(tMessage(*)[NUMBRIEFMESSAGES])*(uintptr*)0x8786E0; |
|
|
tPreviousBrief(&CMessages::PreviousBriefs)[NUMPREVIOUSBRIEFS] = *(tPreviousBrief(*)[NUMPREVIOUSBRIEFS])*(uintptr*)0x713C08; |
|
|
tBigMessage(&CMessages::BIGMessages)[NUMBIGMESSAGES] = *(tBigMessage(*)[NUMBIGMESSAGES])*(uintptr*)0x773628; |
|
|
char CMessages::PreviousMissionTitle[16]; // unused |
|
|
|
|
|
void |
|
|
CMessages::Init() |
|
|
{ |
|
|
ClearMessages(); |
|
|
|
|
|
for (int32 i = 0; i < NUMPREVIOUSBRIEFS; i++) { |
|
|
PreviousBriefs[i].m_pText = nil; |
|
|
PreviousBriefs[i].m_pString = nil; |
|
|
} |
|
|
} |
|
|
|
|
|
uint16 |
|
|
CMessages::GetWideStringLength(wchar *src) |
|
|
for (int32 i = 0; i < NUMPREVIOUSBRIEFS; i++) { |
|
|
PreviousBriefs[i].m_pText = nil; |
|
|
PreviousBriefs[i].m_pString = nil; |
|
|
} |
|
|
} |
|
|
|
|
|
uint16 |
|
|
CMessages::GetWideStringLength(wchar *src) |
|
|
{ |
|
|
uint16 length = 0; |
|
|
while (*(src++)) length++; |
|
|
return length; |
|
|
} |
|
|
|
|
|
void |
|
|
CMessages::WideStringCopy(wchar *dst, wchar *src, uint16 size) |
|
|
return length; |
|
|
} |
|
|
|
|
|
void |
|
|
CMessages::WideStringCopy(wchar *dst, wchar *src, uint16 size) |
|
|
{ |
|
|
int32 i = 0; |
|
|
if (src) { |
|
|
if (src) { |
|
|
while (i < size - 1) { |
|
|
if (!src[i]) break; |
|
|
dst[i] = src[i]; |
|
|
i++; |
|
|
} |
|
|
} else { |
|
|
} |
|
|
} else { |
|
|
while (i < size - 1) |
|
|
dst[i++] = '\0'; |
|
|
} |
|
|
dst[i] = '\0'; |
|
|
} |
|
|
|
|
|
dst[i++] = '\0'; |
|
|
} |
|
|
dst[i] = '\0'; |
|
|
} |
|
|
|
|
|
bool |
|
|
CMessages::WideStringCompare(wchar *str1, wchar *str2, uint16 size) |
|
|
{ |
|
|
@@ -251,11 +251,11 @@ CMessages::AddMessageSoon(wchar *msg, uint32 time, uint16 flag) |
|
|
void |
|
|
CMessages::ClearMessages() |
|
|
{ |
|
|
for (int32 i = 0; i < NUMBIGMESSAGES; i++) { |
|
|
for (int32 j = 0; j < 4; j++) { |
|
|
BIGMessages[i].m_Stack[j].m_pText = nil; |
|
|
BIGMessages[i].m_Stack[j].m_pString = nil; |
|
|
} |
|
|
for (int32 i = 0; i < NUMBIGMESSAGES; i++) { |
|
|
for (int32 j = 0; j < 4; j++) { |
|
|
BIGMessages[i].m_Stack[j].m_pText = nil; |
|
|
BIGMessages[i].m_Stack[j].m_pString = nil; |
|
|
} |
|
|
} |
|
|
ClearSmallMessagesOnly(); |
|
|
} |
|
|
@@ -442,7 +442,7 @@ CMessages::InsertPlayerControlKeysInString(wchar *str) |
|
|
for (i = 0; i < strSize;) { |
|
|
if (str[i] == '~' && str[i + 1] == 'k' && str[i + 2] == '~') { |
|
|
i += 4; |
|
|
for (int32 cont = 0; cont < TOTAL_CONTROL_ACTIONS; cont++) { |
|
|
for (int32 cont = 0; cont < MAX_CONTROLLERACTIONS; cont++) { |
|
|
uint16 contSize = GetWideStringLength(ControlsManager.m_aActionNames[cont]); |
|
|
if (contSize != 0) { |
|
|
if (WideStringCompare(&str[i], ControlsManager.m_aActionNames[cont], contSize)) { |
|
|
@@ -832,4 +832,4 @@ STARTPATCHES |
|
|
InjectHook(0x52B140, CMessages::ClearThisPrint, PATCH_JUMP); |
|
|
InjectHook(0x52B3C0, CMessages::ClearThisBigPrint, PATCH_JUMP); |
|
|
InjectHook(0x52B670, CMessages::ClearAllMessagesDisplayedByGame, PATCH_JUMP); |
|
|
ENDPATCHES
|
|
|
ENDPATCHES |