Merge branch 'master' into MoreLanguages

# Conflicts:
#	src/core/Frontend.cpp
#	src/core/MenuScreens.h
#	src/render/Font.cpp
#	src/render/Font.h
#	src/text/Messages.cpp
#	src/text/Text.cpp
This commit is contained in:
Sergeanur
2020-04-26 22:03:15 +03:00
350 changed files with 22460 additions and 16767 deletions

View File

@ -1,8 +1,5 @@
#define DIRECTINPUT_VERSION 0x0800
#include "dinput.h"
#include "common.h"
#include "patcher.h"
#include "Messages.h"
#include "RwHelper.h"
#include "Hud.h"
@ -14,9 +11,9 @@
#include "Font.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;
tMessage CMessages::BriefMessages[NUMBRIEFMESSAGES];
tPreviousBrief CMessages::PreviousBriefs[NUMPREVIOUSBRIEFS];
tBigMessage CMessages::BIGMessages[NUMBIGMESSAGES];
char CMessages::PreviousMissionTitle[16]; // unused
void
@ -819,33 +816,3 @@ CMessages::ClearAllMessagesDisplayedByGame()
CHud::GetRidOfAllHudMessages();
CUserDisplay::Pager.ClearMessages();
}
STARTPATCHES
InjectHook(0x529310, CMessages::Init, PATCH_JUMP);
InjectHook(0x529490, CMessages::GetWideStringLength, PATCH_JUMP);
InjectHook(0x5294B0, CMessages::WideStringCopy, PATCH_JUMP);
InjectHook(0x529510, CMessages::WideStringCompare, PATCH_JUMP);
InjectHook(0x529580, CMessages::Process, PATCH_JUMP);
InjectHook(0x529800, CMessages::Display, PATCH_JUMP);
InjectHook(0x529900, CMessages::AddMessage, PATCH_JUMP);
InjectHook(0x529A10, CMessages::AddMessageJumpQ, PATCH_JUMP);
InjectHook(0x529AF0, CMessages::AddMessageSoon, PATCH_JUMP);
InjectHook(0x529CE0, CMessages::ClearMessages, PATCH_JUMP);
InjectHook(0x529E00, CMessages::ClearSmallMessagesOnly, PATCH_JUMP);
InjectHook(0x529EB0, CMessages::AddBigMessage, PATCH_JUMP);
InjectHook(0x529F60, CMessages::AddBigMessageQ, PATCH_JUMP);
InjectHook(0x52A040, CMessages::AddToPreviousBriefArray, PATCH_JUMP);
InjectHook(0x52A1A0, CMessages::InsertNumberInString, PATCH_JUMP);
InjectHook(0x52A300, CMessages::InsertStringInString, PATCH_JUMP);
InjectHook(0x52A490, CMessages::InsertPlayerControlKeysInString, PATCH_JUMP);
InjectHook(0x52A850, CMessages::AddMessageWithNumber, PATCH_JUMP);
InjectHook(0x52A9A0, CMessages::AddMessageJumpQWithNumber, PATCH_JUMP);
InjectHook(0x52AAC0, CMessages::AddMessageSoonWithNumber, PATCH_JUMP);
InjectHook(0x52AD10, CMessages::AddBigMessageWithNumber, PATCH_JUMP);
InjectHook(0x52AE00, CMessages::AddBigMessageWithNumberQ, PATCH_JUMP);
InjectHook(0x52AF30, CMessages::AddMessageWithString, PATCH_JUMP);
InjectHook(0x52B050, CMessages::AddMessageJumpQWithString, PATCH_JUMP);
InjectHook(0x52B140, CMessages::ClearThisPrint, PATCH_JUMP);
InjectHook(0x52B3C0, CMessages::ClearThisBigPrint, PATCH_JUMP);
InjectHook(0x52B670, CMessages::ClearAllMessagesDisplayedByGame, PATCH_JUMP);
ENDPATCHES

View File

@ -29,9 +29,9 @@ struct tPreviousBrief
class CMessages
{
public:
static tMessage(&BriefMessages)[NUMBRIEFMESSAGES];
static tBigMessage(&BIGMessages)[NUMBIGMESSAGES];
static tPreviousBrief(&PreviousBriefs)[NUMPREVIOUSBRIEFS];
static tMessage BriefMessages[NUMBRIEFMESSAGES];
static tBigMessage BIGMessages[NUMBIGMESSAGES];
static tPreviousBrief PreviousBriefs[NUMPREVIOUSBRIEFS];
static char PreviousMissionTitle[16]; // unused
public:
static void Init(void);

View File

@ -1,5 +1,5 @@
#include "common.h"
#include "patcher.h"
#include "Pager.h"
#include "Timer.h"
#include "Messages.h"
@ -98,7 +98,7 @@ CPager::AddMessage(wchar *str, uint16 speed, uint16 priority, uint16 a5)
m_messages[i].m_pText = str;
m_messages[i].m_nSpeedMs = speed;
m_messages[i].m_nPriority = priority;
m_messages[i].field_10 = a5;
m_messages[i].unused = a5;
m_messages[i].m_nCurrentPosition = -(m_nNumDisplayLetters + 10);
m_messages[i].m_nTimeToChangePosition = CTimer::GetTimeInMilliseconds() + speed;
m_messages[i].m_nStringLength = size;
@ -142,7 +142,7 @@ CPager::AddMessageWithNumber(wchar *str, int32 n1, int32 n2, int32 n3, int32 n4,
m_messages[i].m_pText = str;
m_messages[i].m_nSpeedMs = speed;
m_messages[i].m_nPriority = priority;
m_messages[i].field_10 = a11;
m_messages[i].unused = a11;
m_messages[i].m_nCurrentPosition = -(m_nNumDisplayLetters + 10);
m_messages[i].m_nTimeToChangePosition = CTimer::GetTimeInMilliseconds() + speed;
m_messages[i].m_nStringLength = size;
@ -181,14 +181,4 @@ CPager::RestartCurrentMessage()
m_messages[0].m_nCurrentPosition = -(m_nNumDisplayLetters + 10);
m_messages[0].m_nTimeToChangePosition = CTimer::GetTimeInMilliseconds() + m_messages[0].m_nSpeedMs;
}
}
STARTPATCHES
InjectHook(0x52B6F0, &CPager::Init, PATCH_JUMP);
InjectHook(0x52B740, &CPager::Process, PATCH_JUMP);
InjectHook(0x52B890, &CPager::Display, PATCH_JUMP);
InjectHook(0x52B940, &CPager::AddMessage, PATCH_JUMP);
InjectHook(0x52BB50, &CPager::AddMessageWithNumber, PATCH_JUMP);
InjectHook(0x52BE50, &CPager::RestartCurrentMessage, PATCH_JUMP);
InjectHook(0x52BE00, &CPager::ClearMessages, PATCH_JUMP);
ENDPATCHES
}

View File

@ -7,7 +7,7 @@ struct PagerMessage {
uint16 m_nStringLength;
uint16 m_nPriority;
uint32 m_nTimeToChangePosition;
int16 field_10;
int16 unused; // but still set in SCM. importance? ringtone?
int32 m_nNumber[6];
};

View File

@ -1,5 +1,5 @@
#include "common.h"
#include "patcher.h"
#include "FileMgr.h"
#include "Frontend.h"
#include "Messages.h"
@ -7,7 +7,7 @@
static wchar WideErrorString[25];
CText &TheText = *(CText*)0x941520;
CText TheText;
CText::CText(void)
{
@ -44,6 +44,9 @@ CText::Load(void)
sprintf(filename, "SPANISH.GXT");
break;
#ifdef MORE_LANGUAGES
case LANGUAGE_POLISH:
sprintf(filename, "POLISH.GXT");
break;
case LANGUAGE_RUSSIAN:
sprintf(filename, "RUSSIAN.GXT");
break;
@ -311,21 +314,4 @@ TextCopy(wchar *dst, const wchar *src)
}
STARTPATCHES
InjectHook(0x52C3C0, &CText::Load, PATCH_JUMP);
InjectHook(0x52C580, &CText::Unload, PATCH_JUMP);
InjectHook(0x52C5A0, &CText::Get, PATCH_JUMP);
InjectHook(0x52C220, &CText::GetUpperCase, PATCH_JUMP);
InjectHook(0x52C2C0, &CText::UpperCase, PATCH_JUMP);
InjectHook(0x52BE70, &CKeyArray::Load, PATCH_JUMP);
InjectHook(0x52BF60, &CKeyArray::Unload, PATCH_JUMP);
InjectHook(0x52BF80, &CKeyArray::Update, PATCH_JUMP);
InjectHook(0x52C060, &CKeyArray::BinarySearch, PATCH_JUMP);
InjectHook(0x52BFB0, &CKeyArray::Search, PATCH_JUMP);
InjectHook(0x52C120, &CData::Load, PATCH_JUMP);
InjectHook(0x52C200, &CData::Unload, PATCH_JUMP);
InjectHook(0x52C2F0, &UnicodeToAscii, PATCH_JUMP);
ENDPATCHES
InjectHook(0x52C2F0, &UnicodeToAscii, PATCH_JUMP);

View File

@ -56,4 +56,4 @@ public:
void UpperCase(wchar *s);
};
extern CText &TheText;
extern CText TheText;