summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergeanur <s.anureev@yandex.ua>2021-01-22 04:49:17 +0100
committerSergeanur <s.anureev@yandex.ua>2021-01-22 04:49:17 +0100
commit8dab92d158be70e49b9fff04f7187023aa1cf3c3 (patch)
tree595da8f58e3350fa71fb752cbeeb89024faa5c61
parentLoad LCS radar blips (diff)
downloadre3-8dab92d158be70e49b9fff04f7187023aa1cf3c3.tar
re3-8dab92d158be70e49b9fff04f7187023aa1cf3c3.tar.gz
re3-8dab92d158be70e49b9fff04f7187023aa1cf3c3.tar.bz2
re3-8dab92d158be70e49b9fff04f7187023aa1cf3c3.tar.lz
re3-8dab92d158be70e49b9fff04f7187023aa1cf3c3.tar.xz
re3-8dab92d158be70e49b9fff04f7187023aa1cf3c3.tar.zst
re3-8dab92d158be70e49b9fff04f7187023aa1cf3c3.zip
-rw-r--r--src/render/Font.cpp2
-rw-r--r--src/render/Hud.cpp17
-rw-r--r--src/render/Hud.h2
-rw-r--r--src/text/Messages.cpp78
-rw-r--r--src/text/Messages.h1
5 files changed, 85 insertions, 15 deletions
diff --git a/src/render/Font.cpp b/src/render/Font.cpp
index b559ca7a..45ea9ac2 100644
--- a/src/render/Font.cpp
+++ b/src/render/Font.cpp
@@ -358,7 +358,7 @@ CFont::PrintChar(float x, float y, wchar c)
CSprite2d::AddToBuffer(
CRect(x, y + RenderState.scaleY * 4.0f,
x + 32.0f * RenderState.scaleY * xScale * 0.96f,
- y + 4.0f * RenderState.scaleY * + 16.0f * RenderState.scaleY),
+ y + 4.0f * RenderState.scaleY + 16.0f * RenderState.scaleY),
RenderState.color,
xoff / 16.0f, yoff / 12.8f + 0.0021f,
(xoff + 1.0f) / 16.0f - 0.001f, yoff / 12.8f + 0.0021f,
diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp
index e896b871..0d302571 100644
--- a/src/render/Hud.cpp
+++ b/src/render/Hud.cpp
@@ -188,24 +188,25 @@ struct
{ "", "" },
{ "", "" },
{ "radardisc", "radardisc" },
+ { "radardiscback", "" },
{ "", "" },
{ "", "" },
{ "", "" },
{ "", "" },
{ "", "" },
- { "", "" },
- { "", "" },
- { "", "" },
- { "", "" },
- { "", "" },
- { "", "" },
- { "", "" },
+ { "bar_inside1dark", "" },
+ { "bar_inside2dark", "" },
+ { "hudnumbers", "" },
+ { "bar_inside1", "" },
+ { "bar_inside2", "" },
+ { "bar_outline", "" },
{ "sitesniper", "sitesniperm" },
{ "siteM16", "siteM16m" },
{ "sitelaser", "sitelaserm" },
{ "laserdot", "laserdotm" },
{ "viewfinder_128", "viewfinder_128m" },
- { "bleeder", "" }
+ { "bleeder", "" },
+ { "gren_rem", "noMaskNeeded" }
};
RwTexture *gpSniperSightTex;
diff --git a/src/render/Hud.h b/src/render/Hud.h
index 831c8e0d..b81ac828 100644
--- a/src/render/Hud.h
+++ b/src/render/Hud.h
@@ -44,7 +44,7 @@ enum eSprites
HUD_LASERDOT,
HUD_VIEWFINDER,
HUD_BLEEDER,
- NUM_HUD_SPRITES = 69,
+ NUM_HUD_SPRITES = 70,
};
extern float BigMessageInUse[6];
diff --git a/src/text/Messages.cpp b/src/text/Messages.cpp
index 440746c0..1027c0ee 100644
--- a/src/text/Messages.cpp
+++ b/src/text/Messages.cpp
@@ -11,6 +11,8 @@
#include "Font.h"
+#include "Pad.h"
+
// --MIAMI: file done
tMessage CMessages::BriefMessages[NUMBRIEFMESSAGES];
@@ -443,6 +445,64 @@ CMessages::InsertStringInString(wchar *str1, wchar *str2)
str1[i++] = '\0';
}
+int
+CMessages::GetTokenPadKeyString(const wchar *in, wchar *out)
+{
+ wchar str[256];
+ memset(str, 0, sizeof(str));
+ str[0] = 'C';
+
+ // TODO: there was a switch here but that's stupid
+ str[1] = CPad::GetPad(0)->Mode + 48;
+
+ while (*in != '~') in++;
+ in++;
+
+ int i = 1;
+ while (*in != '~')
+ str[1+i++] = *(in++);
+
+ wchar *text = TheText.Get(UnicodeToAscii(str));
+ if (!text) return i;
+ while (text[0] != '\0')
+ {
+ if (text[0] == '~')
+ {
+ switch (text[1])
+ {
+ case 'L':
+ *(out++) = 'M';
+ break;
+ case 'N':
+ *(out++) = 'O';
+ break;
+ case 'O':
+ *(out++) = 227;
+ break;
+ case 'R':
+ *(out++) = 'S';
+ break;
+ case 'S':
+ *(out++) = 225;
+ break;
+ case 'T':
+ *(out++) = 224;
+ break;
+ case 'X':
+ *(out++) = 226;
+ break;
+ default:
+ break;
+ }
+ text += 3;
+ }
+ else {
+ *(out++) = *(text++);
+ }
+ }
+ return i;
+}
+
void
CMessages::InsertPlayerControlKeysInString(wchar *str)
{
@@ -452,7 +512,7 @@ CMessages::InsertPlayerControlKeysInString(wchar *str)
if (!str) return;
uint16 strSize = GetWideStringLength(str);
- memset(keybuf, 0, 256*sizeof(wchar));
+ memset(keybuf, 0, 256*sizeof(wchar)); // not memset? :O
wchar *_outstr = outstr;
for (i = 0; i < strSize;) {
@@ -462,9 +522,16 @@ CMessages::InsertPlayerControlKeysInString(wchar *str)
#else
if (str[i] == '~' && str[i + 1] == 'k' && str[i + 2] == '~') {
#endif
+ memset(keybuf, 0, 256 * sizeof(wchar));
i += 4;
- bool done = false;
- for (int32 cont = 0; cont < MAX_CONTROLLERACTIONS && !done; cont++) {
+ i += GetTokenPadKeyString(&str[i], keybuf) + 1;
+ uint16 keybuf_size = GetWideStringLength(keybuf);
+ for (uint16 j = 0; j < keybuf_size; j++) {
+ *(_outstr++) = keybuf[j];
+ keybuf[j] = '\0';
+ }
+
+ /*for (int32 cont = 0; cont < MAX_CONTROLLERACTIONS && !done; cont++) {
uint16 contSize = GetWideStringLength(ControlsManager.m_aActionNames[cont]);
if (contSize != 0) {
if (WideStringCompare(&str[i], ControlsManager.m_aActionNames[cont], contSize)) {
@@ -478,7 +545,7 @@ CMessages::InsertPlayerControlKeysInString(wchar *str)
i += contSize + 1;
}
}
- }
+ }*/
} else {
*(_outstr++) = str[i++];
}
@@ -823,4 +890,5 @@ CMessages::ClearThisBigPrintNow(uint32 id)
ClearThisBigPrint(BIGMessages[id].m_Stack[0].m_pText);
CHud::m_BigMessage[id][0] = '\0';
BigMessageInUse[id] = 0.0f;
-} \ No newline at end of file
+}
+
diff --git a/src/text/Messages.h b/src/text/Messages.h
index 602a4a08..51112908 100644
--- a/src/text/Messages.h
+++ b/src/text/Messages.h
@@ -62,6 +62,7 @@ public:
static void ClearThisBigPrint(wchar *str);
static void ClearAllMessagesDisplayedByGame(void);
static void ClearThisBigPrintNow(uint32 id);
+ static int GetTokenPadKeyString(const wchar *in, wchar *out);
// unused or cut
//static void AddMessageSoonWithString(wchar*, uint32, uint16, wchar*);