mirror of
https://github.com/zeldaret/ss
synced 2026-05-26 23:47:22 -04:00
Use a common constant for msg window character buffer size
This commit is contained in:
@@ -30,6 +30,8 @@ struct dLytMsgWindowCharData {
|
||||
// one by one in the text boxes
|
||||
class TextWindowUnk {
|
||||
public:
|
||||
static const int BUF_SIZE = 1023;
|
||||
|
||||
TextWindowUnk(dTagProcessor_c *tagProcessor);
|
||||
virtual ~TextWindowUnk() {}
|
||||
|
||||
@@ -55,8 +57,8 @@ public:
|
||||
|
||||
private:
|
||||
/* 0x0004 */ dTagProcessor_c *mpTagProcessor;
|
||||
/* 0x0008 */ wchar_t mRawTextBuffer[1023];
|
||||
/* 0x0806 */ wchar_t mProcessedTextBuffer[1023];
|
||||
/* 0x0008 */ wchar_t mRawTextBuffer[BUF_SIZE];
|
||||
/* 0x0806 */ wchar_t mProcessedTextBuffer[BUF_SIZE];
|
||||
/* 0x1004 */ wchar_t mUnkBuffer[511]; // ???
|
||||
/* 0x1402 */ SizedString<64> field_0x1402;
|
||||
/* 0x1442 */ u8 _0x1442[0x144C - 0x1442];
|
||||
@@ -90,7 +92,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
dLytMsgWindowCharData mData[1023];
|
||||
dLytMsgWindowCharData mData[TextWindowUnk::BUF_SIZE];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -76,8 +76,8 @@ private:
|
||||
|
||||
/* 0x05F8 */ dLytCommonABtn_c mBtn;
|
||||
|
||||
/* 0x07A8 */ dLytMsgWindowCharData mCharacterData[1023];
|
||||
/* 0x5794 */ wchar_t mTextBuf[1023];
|
||||
/* 0x07A8 */ dLytMsgWindowCharData mCharacterData[TextWindowUnk::BUF_SIZE];
|
||||
/* 0x5794 */ wchar_t mTextBuf[TextWindowUnk::BUF_SIZE];
|
||||
|
||||
/* 0x5F94 */ dLytTextSword mSwordText;
|
||||
/* 0x607C */ dLytTextSword::ESwordType mSwordType;
|
||||
|
||||
@@ -110,8 +110,8 @@ private:
|
||||
/* 0x01D8 */ dTextBox_c *mpTextboxes[2];
|
||||
/* 0x01E0 */ nw4r::lyt::Pane *mpPanes[3];
|
||||
/* 0x01F4 */ dTagProcessor_c *mpTagProcessor;
|
||||
/* 0x01F8 */ dLytMsgWindowCharData mCharData[1023]; // TODO - how large is this really?
|
||||
/* 0x51DC */ wchar_t mTextBuf[1023];
|
||||
/* 0x01F8 */ dLytMsgWindowCharData mCharData[TextWindowUnk::BUF_SIZE];
|
||||
/* 0x51DC */ wchar_t mTextBuf[TextWindowUnk::BUF_SIZE];
|
||||
/* 0x59DC */ dLytTextSword mSwordText;
|
||||
/* 0x5AC4 */ s32 mSwordType;
|
||||
/* 0x5AC8 */ u8 field_0x5AC8;
|
||||
|
||||
@@ -70,14 +70,14 @@ bool TextWindowUnk::checkEndReached() const {
|
||||
}
|
||||
|
||||
void MsgWindowBlurRelated::build() {
|
||||
for (int i = 0; i < 1023; i++) {
|
||||
for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) {
|
||||
mData[i].reset();
|
||||
}
|
||||
}
|
||||
|
||||
void MsgWindowBlurRelated::drawTextBlur(dLytTextLight *thing, mVec2_c size, u8 alpha) {
|
||||
s8 t = -1;
|
||||
for (int i = 0; i < 1023; i++) {
|
||||
for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) {
|
||||
if (mData[i].displayTimerMaybe >= 0) {
|
||||
if (t == -1) {
|
||||
mData[i].displayTimerMaybe++;
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "d/d_gfx.h"
|
||||
#include "d/d_tag_processor.h"
|
||||
#include "d/d_lyt_hio.h"
|
||||
#include "d/d_textwindow_unk.h"
|
||||
#include "d/lyt/d2d.h"
|
||||
#include "d/lyt/d_textbox.h"
|
||||
#include "m/m_vec.h"
|
||||
@@ -96,7 +97,7 @@ bool dLytMsgWindowSword_c::build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resA
|
||||
|
||||
mSwordText.build(resAcc, mSwordType);
|
||||
|
||||
for (int i = 0; i < 1023; i++) {
|
||||
for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) {
|
||||
mCharacterData[i].reset();
|
||||
mTextBuf[i] = L'\0';
|
||||
}
|
||||
@@ -265,7 +266,7 @@ bool dLytMsgWindowSword_c::execute() {
|
||||
void dLytMsgWindowSword_c::draw() {
|
||||
mLyt.draw();
|
||||
|
||||
for (int i = 0; i < 1023; i++) {
|
||||
for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) {
|
||||
if (mCharacterData[i].displayTimerMaybe >= 0) {
|
||||
if (!mHasDrawnThisTick) {
|
||||
mCharacterData[i].displayTimerMaybe += 1;
|
||||
@@ -313,15 +314,14 @@ bool dLytMsgWindowSword_c::isDoneClosing() const {
|
||||
}
|
||||
|
||||
bool dLytMsgWindowSword_c::setText(const wchar_t *text) {
|
||||
int foundIdx = 1023;
|
||||
for (int i = 0; i < 1023; i++) {
|
||||
int foundIdx = TextWindowUnk::BUF_SIZE;
|
||||
for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) {
|
||||
if (mCharacterData[i].displayTimerMaybe >= 0 && foundIdx > mCharacterData[i].field_0x0C) {
|
||||
foundIdx = mCharacterData[i].field_0x0C;
|
||||
}
|
||||
}
|
||||
|
||||
// How is text bounds-checked here????
|
||||
for (int i = 0; i < 1023; i++) {
|
||||
for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) {
|
||||
if (i < foundIdx) {
|
||||
mTextBuf[i] = text[i];
|
||||
} else {
|
||||
@@ -333,5 +333,5 @@ bool dLytMsgWindowSword_c::setText(const wchar_t *text) {
|
||||
mpTextboxes[1]->SetTagProcessor(mpTagProcessor);
|
||||
mpTextboxes[0]->setTextWithTextProcessor(mTextBuf, mpTagProcessor, 0);
|
||||
mpTextboxes[1]->setTextWithTextProcessor(mTextBuf, mpTagProcessor, 0);
|
||||
return foundIdx == 1023;
|
||||
return foundIdx == TextWindowUnk::BUF_SIZE;
|
||||
}
|
||||
|
||||
@@ -280,7 +280,7 @@ bool dLytSimpleWindowSword_c::build(d2d::ResAccIf_c *resAcc, dTagProcessor_c *ta
|
||||
mpTextboxes[1]->setIsShadow(1);
|
||||
mpTagProcessor = tagProcessor;
|
||||
|
||||
for (int i = 0; i < (int)ARRAY_LENGTH(mCharData); i++) {
|
||||
for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) {
|
||||
mCharData[i].reset();
|
||||
mTextBuf[i] = L'\0';
|
||||
}
|
||||
@@ -373,15 +373,14 @@ bool dLytSimpleWindowSword_c::isOut() {
|
||||
}
|
||||
|
||||
bool dLytSimpleWindowSword_c::setText(const wchar_t *text) {
|
||||
int foundIdx = ARRAY_LENGTH(mCharData);
|
||||
for (int i = 0; i < (int)ARRAY_LENGTH(mCharData); i++) {
|
||||
int foundIdx = TextWindowUnk::BUF_SIZE;
|
||||
for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) {
|
||||
if (mCharData[i].displayTimerMaybe >= 0 && foundIdx > mCharData[i].field_0x0C) {
|
||||
foundIdx = mCharData[i].field_0x0C;
|
||||
}
|
||||
}
|
||||
|
||||
// How is text bounds-checked here????
|
||||
for (int i = 0; i < (int)ARRAY_LENGTH(mCharData); i++) {
|
||||
for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) {
|
||||
if (i < foundIdx) {
|
||||
mTextBuf[i] = text[i];
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user