move dialogue variables to ewram

This commit is contained in:
DizzyEggg
2024-10-29 13:36:50 +01:00
parent c5a1369345
commit 7438e1cf19
2 changed files with 69 additions and 100 deletions

View File

@@ -101,34 +101,9 @@ struct UnkStruct_203B198
struct SubStruct_203B198 unk48;
};
extern u32 gUnknown_202EC10;
extern const MenuItem *gUnknown_202EC14;
extern void *gUnknown_202EC18;
extern s32 gUnknown_202EC1C;
extern u8 gUnknown_202E798[];
extern const u8 *gUnknown_202E794;
extern MenuInputStructSub gUnknown_202EC28;
extern struct UnkStruct_203B198 gUnknown_203B198;
extern UnkTextStruct1 gUnknown_2027370[4];
extern u16 gUnknown_202E77C;
extern u8 gUnknown_202E790;
extern u8 gUnknown_202E791;
extern u32 gUnknown_202E788;
extern u32 gUnknown_202E78C;
extern u32 gUnknown_202E784;
extern s32 gUnknown_202E780;
extern void (*gUnknown_203B088)(s32 a0);
extern MenuStruct gUnknown_202EBC0;
extern u8 gUnknown_202EB80[];
// Only read, but never written to. Possibly used in Blue?
struct NeverWrittenToStruct202EC20
{
struct SubStruct_203B198 unk0;
const u8 *unk18;
};
extern struct NeverWrittenToStruct202EC20 *gUnknown_202EC20;
extern const struct SubStruct_203B198 gUnknown_80D48AC;
extern const struct UnkTextStruct2 gUnknown_80D48DC;
@@ -174,6 +149,34 @@ static EWRAM_DATA s32 gUnknown_202E73C = 0;
static EWRAM_DATA s32 gUnknown_202E740 = 0;
static EWRAM_DATA s32 gUnknown_202E744 = 0;
static EWRAM_DATA struct UnkDrawStringStruct gUnknown_202E748 = {0};
static EWRAM_DATA u16 sUnknownTextFlags = 0;
static EWRAM_DATA s32 gUnknown_202E780 = 0;
static EWRAM_DATA s32 gUnknown_202E784 = 0;
static EWRAM_DATA s32 gUnknown_202E788 = 0;
static EWRAM_DATA s32 gUnknown_202E78C = 0;
static EWRAM_DATA bool8 gUnknown_202E790 = FALSE;
static EWRAM_DATA u8 sArrowFrames = 0;
static EWRAM_DATA const u8 *gUnknown_202E794 = NULL;
#define DIALOGUE_TEXT_BUFFER_SIZE 1000
static EWRAM_DATA u8 sDialogueTextBuffer[DIALOGUE_TEXT_BUFFER_SIZE] = {0};
static EWRAM_DATA u8 sFormatBuffer_UnknownMonster[64] = {0};
static EWRAM_DATA MenuStruct gUnknown_202EBC0 = {0};
static EWRAM_DATA u32 gUnknown_202EC10 = 0;
static EWRAM_DATA const MenuItem *sDialogueMenuItems = NULL;
static EWRAM_DATA void *gUnknown_202EC18 = NULL;
static EWRAM_DATA s32 gUnknown_202EC1C = 0;
// Only read, but never written to. Possibly used in Blue?
struct NeverWrittenToStruct202EC20
{
struct SubStruct_203B198 unk0;
const u8 *unk18;
};
static EWRAM_DATA struct NeverWrittenToStruct202EC20 *sNeverWrittenToUnknownStructPtr = NULL;
static UNUSED EWRAM_DATA u8 sUnusedEwram1[4] = {0};
static EWRAM_DATA MenuInputStructSub gUnknown_202EC28 = {0};
void sub_8014144(void)
{
@@ -211,19 +214,19 @@ void CreateYesNoDialogueBoxAndPortrait_DefaultNo(const u8 *text, struct MonPortr
CreateMenuDialogueBoxAndPortrait(text, NULL, -1, gUnknown_80D4880, NULL, 3, 0, monPortraitPtr, param_3 | 0x300);
}
void CreateMenuDialogueBoxAndPortrait(const u8 *text, void *a1, u32 r9, const MenuItem *menuItems, void *arg_0, u32 a5, u32 unknownUnused, struct MonPortraitMsg *monPortraitPtr, u16 r10)
void CreateMenuDialogueBoxAndPortrait(const u8 *text, void *a1, u32 r9, const MenuItem *menuItems, void *arg_0, u32 a5, u32 unknownUnused, struct MonPortraitMsg *monPortraitPtr, u16 flags)
{
bool8 portraitOn = FALSE;
xxx_format_string(text, gUnknown_202E798, gUnknown_202E798 + 999, r10);
gUnknown_202E794 = gUnknown_202E798;
xxx_format_string(text, sDialogueTextBuffer, sDialogueTextBuffer + DIALOGUE_TEXT_BUFFER_SIZE - 1, flags);
gUnknown_202E794 = sDialogueTextBuffer;
gUnknown_202E748.unk24 = a1;
gUnknown_202EC10 = a5;
gUnknown_202EC14 = menuItems;
sDialogueMenuItems = menuItems;
gUnknown_202EC18 = arg_0;
gUnknown_202EC1C = r9;
sub_801317C(&gUnknown_202EC28);
if (r10 & 0x10) {
if (flags & 0x10) {
gUnknown_203B198.unk0 = gUnknown_80D48DC;
}
else {
@@ -266,23 +269,23 @@ void CreateMenuDialogueBoxAndPortrait(const u8 *text, void *a1, u32 r9, const Me
gUnknown_202E748.unk10 = 7;
gUnknown_202E748.unk1C = 0;
gUnknown_202E748.unk20 = 0;
SetCharacterMask((r10 & 0x10) ? 8 : 3);
SetCharacterMask((flags & 0x10) ? 8 : 3);
gUnknown_202E744 = 1;
gUnknown_202E77C = r10;
if (r10 & 0x20) {
gUnknown_202E790 = 1;
sUnknownTextFlags = flags;
if (flags & 0x20) {
gUnknown_202E790 = TRUE;
}
else {
gUnknown_202E790 = 0;
gUnknown_202E790 = FALSE;
}
if (r10 & 0x400) {
if (flags & 0x400) {
SetWindowBGColor();
}
gUnknown_202E788 = 1;
gUnknown_202E78C = 1;
UnpressButtons();
gUnknown_202E791 = 0;
sArrowFrames = 0;
gUnknown_202E784 = 0;
if (portraitOn) {
const u8 *data = monPortraitPtr->faceData->sprites[monPortraitPtr->spriteId].gfx;
@@ -327,7 +330,7 @@ void DrawDialogueBoxString(void)
const u8 *str = gUnknown_202E794;
s32 r7;
if (gUnknown_202E790 != 0) {
if (gUnknown_202E790) {
r7 = 99999;
}
else {
@@ -349,7 +352,7 @@ void DrawDialogueBoxString(void)
gUnknown_202E744 = 7;
gUnknown_202E780 = gUnknown_202E73C;
}
gUnknown_202E791 = 0;
sArrowFrames = 0;
break;
}
if (*str == '\0') {
@@ -370,11 +373,11 @@ void DrawDialogueBoxString(void)
}
if (gUnknown_202E748.unk2 > 34) {
if (!(gUnknown_202E77C & 0x10)) {
if (!(sUnknownTextFlags & 0x10)) {
gUnknown_202E748.unk1C = 0;
gUnknown_202E748.unk20 = 1;
gUnknown_202E744 = 8;
gUnknown_202E791 = 0;
sArrowFrames = 0;
gUnknown_202E780 = gUnknown_202E738;
break;
}
@@ -388,7 +391,7 @@ void DrawDialogueBoxString(void)
gUnknown_202E794 = str;
sub_801317C(&gUnknown_202EC28);
if (gUnknown_202E794[0] == '\0') {
if (gUnknown_202EC14 != NULL) {
if (sDialogueMenuItems != NULL) {
gUnknown_202E744 = 3;
}
else {
@@ -401,7 +404,7 @@ void DrawDialogueBoxString(void)
if (gUnknown_202E748.unk20 != 0) {
if (gUnknown_202E744 == 1) {
gUnknown_202E744 = 7;
gUnknown_202E791 = 0;
sArrowFrames = 0;
gUnknown_202E780 = gUnknown_202E738;
}
keepLooping = FALSE;
@@ -413,12 +416,12 @@ void DrawDialogueBoxString(void)
}
break;
case 2: {
if (gUnknown_202E77C & 4) {
if (sUnknownTextFlags & 4) {
sub_8011A04();
}
if (!(gUnknown_202E77C & 2)) {
if (gUnknown_202E77C & 0x40 && gRealInputs.pressed & AB_BUTTONS) {
gUnknown_202E790 = 1;
if (!(sUnknownTextFlags & 2)) {
if (sUnknownTextFlags & 0x40 && gRealInputs.pressed & AB_BUTTONS) {
gUnknown_202E790 = TRUE;
gUnknown_202E748.unk30 = 99999;
}
}
@@ -433,9 +436,9 @@ void DrawDialogueBoxString(void)
}
break;
case 6: {
if (gUnknown_202E77C & 0x100) {
if (sUnknownTextFlags & 0x100) {
gUnknown_202E744 = 9;
gUnknown_202E791 = 0;
sArrowFrames = 0;
if (gUnknown_202E740 > 0) {
gUnknown_202E780 = gUnknown_202E740 - gUnknown_202E784;
if (gUnknown_202E780 < 0) {
@@ -458,12 +461,12 @@ void DrawDialogueBoxString(void)
bool8 buttonPress = FALSE;
gUnknown_202E748.unk20 = 0;
nullsub_34(&gUnknown_202EC28, 0);
if (!(gUnknown_202E77C & 1)) {
if (!(sUnknownTextFlags & 1)) {
buttonPress = TRUE;
}
else
{
if (gUnknown_202E77C & 2)
if (sUnknownTextFlags & 2)
{
if (gUnknown_202E780 > 0) {
gUnknown_202E780--;
@@ -484,8 +487,8 @@ void DrawDialogueBoxString(void)
}
if (!buttonPress) {
gUnknown_202E791++;
if (!(gUnknown_202E77C & 0x2) && gUnknown_202E791 & 8) {
sArrowFrames++;
if (!(sUnknownTextFlags & 0x2) && sArrowFrames & 8) {
u32 shape, tileNum, palNum, pal;
sDialogueBoxArrowSprite.attrib1 &= ~SPRITEOAM_MASK_AFFINEMODE1;
@@ -513,8 +516,7 @@ void DrawDialogueBoxString(void)
sDialogueBoxArrowSprite.attrib3 &= ~SPRITEOAM_MASK_PALETTENUM;
sDialogueBoxArrowSprite.attrib3 |= palNum;
if (gUnknown_202E77C & 0x10) {
if (sUnknownTextFlags & 0x10) {
u32 var = 0x780;
sDialogueBoxArrowSprite.unk6 &= 0xF;
sDialogueBoxArrowSprite.unk6 |= var;
@@ -546,7 +548,7 @@ void DrawDialogueBoxString(void)
gUnknown_202E748.unk0 = 4;
if (gUnknown_202E748.unk2 > 34) {
gUnknown_202E748.unk2 = 4;
if (gUnknown_202E77C & 0x10) {
if (sUnknownTextFlags & 0x10) {
CallPrepareTextbox_8008C54(0);
gUnknown_202E744 = 1;
}
@@ -583,7 +585,7 @@ void DrawDialogueBoxString(void)
}
break;
case 11: {
if (gUnknown_202E77C & 0x200) {
if (sUnknownTextFlags & 0x200) {
ResetUnusedInputStruct();
xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE);
gUnknown_202E744 = 0;
@@ -620,7 +622,7 @@ void sub_8014A88(void)
{
s32 r2, r1;
u8 text[128];
const MenuItem *menuItem = gUnknown_202EC14;
const MenuItem *menuItem = sDialogueMenuItems;
s32 r5 = 0;
s32 r7 = 0;
s32 i;
@@ -653,15 +655,15 @@ void sub_8014A88(void)
gUnknown_203B198.unk30.unkA = 14 - r2;
gUnknown_203B198.unk0.unk0 = 0x80;
gUnknown_203B198.unk18 = 0xC0;
if (gUnknown_202EC20 != NULL) {
gUnknown_203B198.unk48 = gUnknown_202EC20->unk0;
if (sNeverWrittenToUnknownStructPtr != NULL) {
gUnknown_203B198.unk48 = sNeverWrittenToUnknownStructPtr->unk0;
}
ResetUnusedInputStruct();
xxx_call_save_unk_text_struct_800641C(&gUnknown_203B198.unk0, TRUE, FALSE);
sub_8012D60(&gUnknown_202EBC0, gUnknown_202EC14, gUnknown_80D48A0, gUnknown_202EC18, gUnknown_202EC1C, 2);
if (gUnknown_202EC20 != NULL) {
sub_8012D60(&gUnknown_202EBC0, sDialogueMenuItems, gUnknown_80D48A0, gUnknown_202EC18, gUnknown_202EC1C, 2);
if (sNeverWrittenToUnknownStructPtr != NULL) {
sub_80073B8(3);
PrintStringOnWindow(4, 2, gUnknown_202EC20->unk18, 3, 0);
PrintStringOnWindow(4, 2, sNeverWrittenToUnknownStructPtr->unk18, 3, 0);
sub_80073E0(3);
}
}
@@ -739,8 +741,8 @@ const u8 *xxx_format_string(const u8 *str, u8 *dst, u8 *dstMax, u16 flags)
str++;
if (*str == 'm') {
PokemonStruct1 *monStruct = sub_808D3BC();
txtPtr = gUnknown_202EB80;
PrintColoredPokeNameToBuffer(gUnknown_202EB80, monStruct, 0);
txtPtr = sFormatBuffer_UnknownMonster;
PrintColoredPokeNameToBuffer(sFormatBuffer_UnknownMonster, monStruct, 0);
}
else {
txtPtr = gAvailablePokemonNames[*str - '0'];

View File

@@ -181,43 +181,10 @@ gUnknown_202DE19: /* 202DE19 (sub_800F990 - sub_8010014) */
.space 0x2
.include "src/save.o"
.align 4
.space 4
.include "src/code_80140DC.o"
.space 4
gUnknown_202E77C: /* 202E77C (sub_8014248 - xxx_draw_string_80144C4) */
.space 0x4
gUnknown_202E780: /* 202E780 (xxx_draw_string_80144C4) */
.space 0x4
gUnknown_202E784: /* 202E784 (sub_8014248 - xxx_draw_string_80144C4) */
.space 0x4
gUnknown_202E788: /* 202E788 (sub_8014248 - xxx_draw_string_80144C4) */
.space 0x4
gUnknown_202E78C: /* 202E78C (sub_8014248 - xxx_draw_string_80144C4) */
.space 0x4
gUnknown_202E790: /* 202E790 (sub_8014248 - xxx_draw_string_80144C4) */
.space 0x1
gUnknown_202E791: /* 202E791 (sub_8014248 - xxx_draw_string_80144C4) */
.space 0x3
gUnknown_202E794: /* 202E794 (sub_8014248 - xxx_draw_string_80144C4) */
.space 0x4
gUnknown_202E798: /* 202E798 (sub_8014248) [on screen dialogue text] */
.space 1000
gUnknown_202EB80: /* 202EB80 (xxx_format_string) */
.space 0x40
gUnknown_202EBC0: /* 202EBC0 (sub_8014A88 - sub_8014B94) */
.space 80
gUnknown_202EC10: /* 202EC10 (sub_8014248 - sub_8014A88) */
.space 0x4
gUnknown_202EC14: /* 202EC14 (sub_8014248 - sub_8014A88) */
.space 0x4
gUnknown_202EC18: /* 202EC18 (sub_8014248 - sub_8014A88) */
.space 0x4
gUnknown_202EC1C: /* 202EC1C (sub_8014248 - sub_8014B94) */
.space 0x4
gUnknown_202EC20: /* 202EC20 (sub_8014A88) */
.space 0x8
gUnknown_202EC28: /* 202EC28 (sub_8014248 - xxx_draw_string_80144C4) */
.space 0x10
gUnknown_202EC38: /* 202EC38 (sub_8037B28) */
.space 0x8