through sub_8100B70

This commit is contained in:
PikalaxALT
2020-03-07 12:37:18 -05:00
parent ecf7cf9835
commit 6ce70985eb
9 changed files with 1026 additions and 1659 deletions
+9 -1550
View File
File diff suppressed because it is too large Load Diff
-85
View File
@@ -7,91 +7,6 @@
.section .rodata
.align 2
gUnknown_843F3B8:: @ 843F3B8 gbapal
.incbin "graphics/link_rfu/unk_843F3F8.gbapal"
gUnknown_843F3D8:: @ 843F3D8 gbapal
.incbin "graphics/link_rfu/unk_8E9BD28.gbapal"
gUnknown_843F3F8:: @ 843F3F8 4bpp
.incbin "graphics/link_rfu/unk_843F3F8.4bpp"
gUnknown_843F418:: @ 843F418 4bpp
.incbin "graphics/link_rfu/unk_843F418.4bpp"
gUnknown_843F518:: @ 843F518 4bpp
.incbin "graphics/link_rfu/unk_843F518.4bpp"
gUnknown_843F618:: @ 843F618 gbapal
.incbin "graphics/link_rfu/unk_843F638.gbapal"
gUnknown_843F638:: @ 843F638 4bpp.lz
.incbin "graphics/link_rfu/unk_843F638.4bpp.lz"
gUnknown_843F76C:: @ 843F76C gbapal
.incbin "graphics/link_rfu/unk_843F76C.gbapal"
gUnknown_843F78C:: @ 843F78C gbapal
.incbin "graphics/link_rfu/unk_843F78C.gbapal"
gUnknown_843F7AC:: @ 843F7AC 4bpp.lz
.incbin "graphics/link_rfu/unk_843F7AC.4bpp.lz"
gUnknown_843F874:: @ 843F874 gbapal
.2byte RGB(0, 0, 0)
.2byte RGB(0, 0, 0)
.2byte RGB(7, 25, 31)
.2byte RGB(21, 21, 29)
gUnknown_843F87C:: @ 843F87C gbapal
.2byte RGB(0, 0, 0)
.2byte RGB(31, 31, 31)
.2byte RGB(12, 12, 12)
.2byte RGB(27, 26, 27)
.2byte RGB(8, 17, 9)
.align 2
gUnknown_843F888:: @ 843F888 data8 6x4
.byte 0x03, 0x04, 0x18, 0x04
.byte 0x01, 0x04, 0x1b, 0x04
.byte 0x03, 0x00, 0x18, 0x0a
.byte 0x06, 0x06, 0x12, 0x04
.byte 0x10, 0x04, 0x09, 0x02
.byte 0x0e, 0x04, 0x12, 0x04
gUnknown_843F8A0:: @ 843F8A0 bg_template
.4byte 0x000001c0, 0x000011dd, 0x002021e2, 0x000031fb
gUnknown_843F8B0:: @ 843F8B0 window_template
.align 2
.byte 0x01, 0x07, 0x00, 0x10, 0x02, 0x0a
.2byte 0x0010
@ {0x01, 0x07, 0x00, 0x10, 0x02, 0x0a, 0x0010}
.align 2
.byte 0x00, 0x04, 0x0f, 0x16, 0x04, 0x0f
.2byte 0x000a
@ {0x00, 0x04, 0x0f, 0x16, 0x04, 0x0f, 0x000a}
.align 2
.byte 0x02, 0x01, 0x00, 0x1c, 0x20, 0x03
.2byte 0x0000
@ {0x02, 0x01, 0x00, 0x1c, 0x20, 0x03, 0x0000}
.align 2
.byte 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
.2byte 0x0000
@ {0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000}
gUnknown_843F8D0:: @ 843F8D0 window_template
.align 2
.byte 0x00, 0x16, 0x09, 0x05, 0x04, 0x0f
.2byte 0x0062
@ {0x00, 0x16, 0x09, 0x05, 0x04, 0x0f, 0x0062}
gUnknown_843F8D8:: @ 843F8D8 text
.string "{UNDERSCORE}$"
gUnknown_843F8DB:: @ 843F8DB text
.string "{CLEAR 17}$"
.align 2
gUnknown_843F8E0:: @ 843F8E0
.4byte gUnknown_847A8D8
+23
View File
@@ -47,5 +47,28 @@ const u8 *GetEasyChatWordGroupName(u8);
u8 *CopyEasyChatWordPadded(u8 *, u16, u16);
void DoEasyChatScreen(u8 type, u16 *words, MainCallback callback);
u8 GetNumDisplayableGroups(void);
bool8 sub_80FFF80(void);
bool8 sub_80FFF98(void);
void sub_810011C(void);
void sub_8100134(u16 v0);
bool8 sub_810014C(void);
u8 GetEasyChatScreenFrameId(void);
const u8 *GetTitleText(void);
u16 *GetEasyChatWordBuffer(void);
u8 GetNumRows(void);
u8 GetNumColumns(void);
u8 GetMainCursorColumn(void);
u8 GetMainCursorRow(void);
void GetEasyChatInstructionsText(const u8 **str1, const u8 **str2);
void GetEasyChatConfirmText(const u8 **str1, const u8 **str2);
void sub_80FFDC8(const u8 **str1, const u8 **str2);
void GetEasyChatConfirmDeletionText(const u8 **str1, const u8 **str2);
void sub_80FFE08(u8 *arg0, u8 *arg1);
u8 sub_80FFE1C(void);
u8 sub_80FFE28(void);
void sub_80FFE34(u8 *arg0, u8 *arg1);
u8 sub_80FFE48(void);
u8 sub_80FFE54(void);
u8 unref_sub_80FFE60(void);
#endif // GUARD_EASY_CHAT_H
+4
View File
@@ -4886,4 +4886,8 @@ extern const u16 gUnknown_8EAFEA0[];
extern const u32 gUnknown_8EAFFC0[];
extern const u32 gUnknown_8EB0ADC[];
// easy_chat_3
extern const u32 gEasyChatWindow_Gfx[];
extern const u32 gEasyChatWindow_Tilemap[];
#endif //GUARD_GRAPHICS_H
+2
View File
@@ -227,6 +227,7 @@ SECTIONS {
src/link_rfu_3.o(.text);
src/AgbRfu_LinkManager.o(.text);
src/easy_chat_2.o(.text);
src/easy_chat_3.o(.text);
asm/easy_chat_2.o(.text);
src/pokedex_screen.o(.text);
asm/pokedex_screen.o(.text);
@@ -519,6 +520,7 @@ SECTIONS {
src/link_rfu_2.o(.rodata);
src/link_rfu_3.o(.rodata);
src/easy_chat_2.o(.rodata);
src/easy_chat_3.o(.rodata);
data/easy_chat_2.o(.rodata);
src/pokedex_screen.o(.rodata);
data/pokedex_screen.o(.rodata);
-14
View File
@@ -107,12 +107,6 @@ bool8 GetEasyChatScreenFrameId(void);
bool8 IsPhraseDifferentThanPlayerInput(const u16 *wordsToCompare, u8 numWords);
u8 GetEasyChatScreenTemplateId(u8 type);
bool32 IsEcWordBufferUninitialized(void);
bool8 sub_80FFF80(void);
bool8 sub_80FFF98(void);
void sub_810011C(void);
void sub_8100134(u16 v0);
bool8 sub_810014C(void);
bool8 sub_8100BF4(void);
void DoEasyChatScreen(u8 type, u16 *words, MainCallback callback)
{
@@ -1370,11 +1364,3 @@ bool32 IsEcWordBufferUninitialized(void)
return TRUE;
}
bool8 sub_80FFF80(void)
{
if (!sub_8100BF4())
return FALSE;
else
return TRUE;
}
+983
View File
@@ -0,0 +1,983 @@
#include "global.h"
#include "gflib.h"
#include "easy_chat.h"
#include "graphics.h"
#include "new_menu_helpers.h"
struct Unk203A11C
{
u16 unk0;
u16 windowId;
u16 unk4;
u8 unk6;
u8 unk7;
s8 unk8;
u8 unk9;
u8 unkA;
u8 unkB[0xC1];
u8 unkCC[0x202];
u16 unk2CE;
int unk2D0;
int unk2D4;
struct Sprite *unk2D8;
struct Sprite *unk2DC;
struct Sprite *unk2E0;
struct Sprite *unk2E4;
struct Sprite *unk2E8;
struct Sprite *unk2EC;
struct Sprite *unk2F0;
struct Sprite *unk2F4;
struct Sprite *unk2F8;
struct Sprite *unk2FC;
u16 unk300[BG_SCREEN_SIZE / 2];
u16 unkB00[BG_SCREEN_SIZE / 2];
};
struct EasyChatPhraseFrameDimensions
{
u8 left;
u8 top;
u8 width;
u8 height;
};
EWRAM_DATA struct Unk203A11C *gUnknown_203ACEC = NULL;
bool8 sub_8100258(void);
bool8 sub_8100290(void);
bool8 sub_8100374(void);
bool8 sub_81003A8(void);
bool8 sub_81003EC(void);
bool8 sub_8100430(void);
bool8 sub_8100474(void);
bool8 sub_81004B8(void);
bool8 sub_81004F4(void);
bool8 sub_81005C0(void);
bool8 sub_8100660(void);
bool8 sub_8100720(void);
bool8 sub_810072C(void);
bool8 sub_8100774(void);
bool8 sub_81007D0(void);
bool8 sub_8100890(void);
bool8 sub_810093C(void);
bool8 sub_81009F8(void);
bool8 sub_8100A04(void);
bool8 sub_8100A78(void);
bool8 sub_8100AE8(void);
bool8 sub_8100B70(void);
bool8 sub_8100BF4(void);
void sub_8100C5C(void);
void sub_8100CBC(void);
void sub_8100D24(void);
void sub_8100E34(void);
void sub_8100E7C(u8 a0);
void sub_8100F18(u8 initialCursorPos);
void sub_8100F44(void);
void sub_8100FDC(void);
void sub_8101100(u16 *buffer);
void sub_81012CC(void);
void sub_81012E0(u8 a0);
void sub_810131C(void);
void sub_81013EC(void);
void sub_8101410(void);
void sub_8101434(void);
void sub_8101478(void);
void sub_81015BC(void);
void sub_81015D4(u8 a0);
bool8 sub_81016AC(void);
void sub_81019B0(s16 a0, u8 a1);
bool8 sub_8101A10(void);
s32 sub_8101A48(void);
void sub_8101A5C(u8 left, u8 top, u8 right, u8 bottom);
void sub_8101A90(void);
void sub_8101AC4(void);
void sub_8101B58(u8 a0, u8 a1);
void sub_8101B88(void);
void sub_8101BA8(void);
void sub_8101BC0(void);
void sub_8101C48(void);
void sub_8101C80(void);
void sub_8101E80(void);
void sub_8101F04(void);
void sub_8101F80(void);
void sub_8101FAC(void);
bool8 sub_8102018(void);
void sub_81020AC(void);
bool8 sub_81020D0(void);
void sub_810215C(void);
void sub_8102178(void);
bool8 sub_81021B8(void);
void sub_81021D4(void);
void sub_810224C(void);
void sub_81022B0(void);
void sub_81022E0(u8 a0);
void sub_8102320(void);
void sub_8102394(void);
void sub_81023F8(void);
void sub_8102428(void);
const u16 gUnknown_843F3B8[] = INCBIN_U16("graphics/link_rfu/unk_843F3F8.gbapal");
const u16 gUnknown_843F3D8[] = INCBIN_U16("graphics/link_rfu/unk_8E9BD28.gbapal");
const u16 gUnknown_843F3F8[] = INCBIN_U16("graphics/link_rfu/unk_843F3F8.4bpp");
const u16 gUnknown_843F418[] = INCBIN_U16("graphics/link_rfu/unk_843F418.4bpp");
const u16 gUnknown_843F518[] = INCBIN_U16("graphics/link_rfu/unk_843F518.4bpp");
const u16 gUnknown_843F618[] = INCBIN_U16("graphics/link_rfu/unk_843F638.gbapal");
const u32 gUnknown_843F638[] = INCBIN_U32("graphics/link_rfu/unk_843F638.4bpp.lz");
const u16 gUnknown_843F76C[] = INCBIN_U16("graphics/link_rfu/unk_843F76C.gbapal");
const u16 gUnknown_843F78C[] = INCBIN_U16("graphics/link_rfu/unk_843F78C.gbapal");
const u32 gUnknown_843F7AC[] = INCBIN_U32("graphics/link_rfu/unk_843F7AC.4bpp.lz");
const u16 gUnknown_843F874[] = {
RGB( 0, 0, 0),
RGB( 0, 0, 0),
RGB( 7, 25, 31),
RGB(21, 21, 29)
};
const u16 gUnknown_843F87C[] = {
RGB( 0, 0, 0),
RGB(31, 31, 31),
RGB(12, 12, 12),
RGB(27, 26, 27),
RGB( 8, 17, 9)
};
const struct EasyChatPhraseFrameDimensions sPhraseFrameDimensions[] = {
{
.left = 0x03,
.top = 0x04,
.width = 0x18,
.height = 0x04
}, {
.left = 0x01,
.top = 0x04,
.width = 0x1b,
.height = 0x04
}, {
.left = 0x03,
.top = 0x00,
.width = 0x18,
.height = 0x0a
}, {
.left = 0x06,
.top = 0x06,
.width = 0x12,
.height = 0x04
}, {
.left = 0x10,
.top = 0x04,
.width = 0x09,
.height = 0x02
}, {
.left = 0x0e,
.top = 0x04,
.width = 0x12,
.height = 0x04
}
};
const struct BgTemplate sEasyChatBgTemplates[] = {
{
.bg = 0,
.charBaseIndex = 0,
.mapBaseIndex = 28,
.screenSize = 0,
.paletteMode = 0,
.priority = 0,
.baseTile = 0,
}, {
.bg = 1,
.charBaseIndex = 3,
.mapBaseIndex = 29,
.screenSize = 0,
.paletteMode = 0,
.priority = 1,
.baseTile = 0,
}, {
.bg = 2,
.charBaseIndex = 0,
.mapBaseIndex = 30,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0x80,
}, {
.bg = 3,
.charBaseIndex = 2,
.mapBaseIndex = 31,
.screenSize = 0,
.paletteMode = 0,
.priority = 3,
.baseTile = 0,
}
};
const struct WindowTemplate sEasyChatWindowTemplates[] = {
{
.bg = 1,
.tilemapLeft = 7,
.tilemapTop = 0,
.width = 16,
.height = 2,
.paletteNum = 10,
.baseBlock = 0x10,
},
{
.bg = 0,
.tilemapLeft = 4,
.tilemapTop = 15,
.width = 22,
.height = 4,
.paletteNum = 15,
.baseBlock = 0xA,
},
{
.bg = 2,
.tilemapLeft = 1,
.tilemapTop = 0,
.width = 28,
.height = 32,
.paletteNum = 3,
.baseBlock = 0,
},
DUMMY_WIN_TEMPLATE,
};
const struct WindowTemplate gUnknown_843F8D0 = {
.bg = 0,
.tilemapLeft = 22,
.tilemapTop = 9,
.width = 5,
.height = 4,
.paletteNum = 15,
.baseBlock = 0x062
};
const u8 gUnknown_843F8D8[] = _("{UNDERSCORE}");
const u8 gUnknown_843F8DB[] = _("{CLEAR 17}");
bool8 sub_80FFF80(void)
{
if (!sub_8100BF4())
return FALSE;
else
return TRUE;
}
bool8 sub_80FFF98(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sEasyChatBgTemplates, NELEMS(sEasyChatBgTemplates));
SetBgTilemapBuffer(3, gUnknown_203ACEC->unkB00);
SetBgTilemapBuffer(1, gUnknown_203ACEC->unk300);
InitWindows(sEasyChatWindowTemplates);
DeactivateAllTextPrinters();
sub_8100CBC();
sub_8100C5C();
CpuFastFill(0, (void *)VRAM + 0x1000000, 0x400);
break;
case 1:
DecompressAndLoadBgGfxUsingHeap(3, gEasyChatWindow_Gfx, 0, 0, 0);
CopyToBgTilemapBuffer(3, gEasyChatWindow_Tilemap, 0, 0);
sub_8100F44();
sub_8102428();
CopyBgTilemapBufferToVram(3);
break;
case 2:
sub_8101100(gUnknown_203ACEC->unk300);
DecompressAndLoadBgGfxUsingHeap(1, gUnknown_843F7AC, 0, 0, 0);
CopyBgTilemapBufferToVram(1);
break;
case 3:
sub_8100D24();
sub_8100E34();
sub_8100FDC();
sub_81012CC();
break;
case 4:
sub_8101A90();
sub_8101AC4();
break;
case 5:
if (IsDma3ManagerBusyWithBgCopy())
{
return TRUE;
}
else
{
sub_8101A5C(0, 0, 0, 0);
SetGpuReg(REG_OFFSET_WININ, WIN_RANGE(0, 63));
SetGpuReg(REG_OFFSET_WINOUT, WIN_RANGE(0, 59));
ShowBg(3);
ShowBg(1);
ShowBg(2);
ShowBg(0);
sub_81021D4();
sub_8102320();
}
break;
default:
return FALSE;
}
gUnknown_203ACEC->unk0++;
return TRUE;
}
void sub_810011C(void)
{
if (gUnknown_203ACEC)
Free(gUnknown_203ACEC);
}
void sub_8100134(u16 arg0)
{
gUnknown_203ACEC->unk4 = arg0;
gUnknown_203ACEC->unk0 = 0;
sub_810014C();
}
bool8 sub_810014C(void)
{
switch (gUnknown_203ACEC->unk4)
{
case 0: return FALSE;
case 1: return sub_8100258();
case 2: return sub_8100290();
case 3: return sub_8100374();
case 4: return sub_8100430();
case 5: return sub_81003A8();
case 6: return sub_81003EC();
case 7: return sub_8100474();
case 8: return sub_81004B8();
case 9: return sub_81004F4();
case 10: return sub_81005C0();
case 11: return sub_81007D0();
case 12: return sub_8100890();
case 13: return sub_810093C();
case 14: return sub_8100720();
case 15: return sub_810072C();
case 16: return sub_8100774();
case 17: return sub_81009F8();
case 18: return sub_8100A78();
case 19: return sub_8100A04();
case 20: return sub_8100B70();
case 21: return sub_8100AE8();
case 22: return sub_8100660();
default: return FALSE;
}
}
bool8 sub_8100258(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_8100FDC();
gUnknown_203ACEC->unk0++;
break;
case 1:
return IsDma3ManagerBusyWithBgCopy();
}
return TRUE;
}
bool8 sub_8100290(void)
{
u8 i;
u16 *ecWordBuffer;
u16 *ecWord;
u8 frameId;
u8 cursorColumn, cursorRow, numColumns;
s16 var1;
int stringWidth;
int trueStringWidth;
int var2;
u8 str[64];
ecWordBuffer = GetEasyChatWordBuffer();
frameId = GetEasyChatScreenFrameId();
cursorColumn = GetMainCursorColumn();
cursorRow = GetMainCursorRow();
numColumns = GetNumColumns();
ecWord = &ecWordBuffer[cursorRow * numColumns];
var1 = 8 * sPhraseFrameDimensions[frameId].left + 13;
for (i = 0; i < cursorColumn; i++)
{
if (*ecWord == 0xFFFF)
{
stringWidth = GetStringWidth(1, gUnknown_843F8D8, 0) * 7;
}
else
{
CopyEasyChatWord(str, *ecWord);
stringWidth = GetStringWidth(1, str, 0);
}
trueStringWidth = stringWidth + 17;
var1 += trueStringWidth;
ecWord++;
}
var2 = 8 * (sPhraseFrameDimensions[frameId].top + cursorRow * 2 + 1) + 1;
sub_8101B58(var1, var2);
return FALSE;
}
bool8 sub_8100374(void)
{
u8 xOffset;
switch (GetMainCursorColumn())
{
case 0:
xOffset = 28;
break;
case 1:
xOffset = 115;
break;
case 2:
xOffset = 191;
break;
default:
return FALSE;
}
sub_8101B58(xOffset, 97);
return FALSE;
}
bool8 sub_81003A8(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_8101B88();
sub_8100E7C(2);
sub_8100F18(1);
gUnknown_203ACEC->unk0++;
break;
case 1:
return IsDma3ManagerBusyWithBgCopy();
}
return TRUE;
}
bool8 sub_81003EC(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_8101B88();
sub_8100E7C(3);
sub_8100F18(0);
gUnknown_203ACEC->unk0++;
break;
case 1:
return IsDma3ManagerBusyWithBgCopy();
}
return TRUE;
}
bool8 sub_8100430(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_8101B88();
sub_8100E7C(1);
sub_8100F18(1);
gUnknown_203ACEC->unk0++;
break;
case 1:
return IsDma3ManagerBusyWithBgCopy();
}
return TRUE;
}
bool8 sub_8100474(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_8101BA8();
sub_8100E7C(0);
ShowBg(0);
gUnknown_203ACEC->unk0++;
break;
case 1:
return IsDma3ManagerBusyWithBgCopy();
}
return TRUE;
}
bool8 sub_81004B8(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_8101BA8();
sub_8100E7C(0);
sub_8100FDC();
gUnknown_203ACEC->unk0++;
// Fall through
case 1:
return IsDma3ManagerBusyWithBgCopy();
}
return TRUE;
}
bool8 sub_81004F4(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_8101B88();
HideBg(0);
sub_8101A5C(0, 0, 0, 0);
sub_810131C();
gUnknown_203ACEC->unk0++;
break;
case 1:
if (!IsDma3ManagerBusyWithBgCopy())
{
sub_81015D4(0);
gUnknown_203ACEC->unk0++;
}
break;
case 2:
if (!IsDma3ManagerBusyWithBgCopy() && !sub_81016AC())
gUnknown_203ACEC->unk0++;
break;
case 3:
if (!IsDma3ManagerBusyWithBgCopy())
{
sub_8101FAC();
gUnknown_203ACEC->unk0++;
}
break;
case 4:
if (!sub_8102018())
{
sub_8101BC0();
sub_81022E0(0);
sub_810224C();
gUnknown_203ACEC->unk0++;
return FALSE;
}
break;
default:
return FALSE;
}
return TRUE;
}
bool8 sub_81005C0(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_8101C48();
sub_81020AC();
sub_81022B0();
gUnknown_203ACEC->unk0++;
break;
case 1:
if (sub_81020D0() == TRUE)
break;
sub_81015D4(1);
gUnknown_203ACEC->unk0++;
// Fall through
case 2:
if (!sub_81016AC())
gUnknown_203ACEC->unk0++;
break;
case 3:
if (!IsDma3ManagerBusyWithBgCopy())
{
sub_8101BA8();
ShowBg(0);
gUnknown_203ACEC->unk0++;
}
break;
case 4:
return FALSE;
}
return TRUE;
}
bool8 sub_8100660(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_8101C48();
sub_81022B0();
sub_810215C();
sub_81015D4(5);
gUnknown_203ACEC->unk0++;
break;
case 1:
if (!sub_81016AC() && !sub_81021B8())
{
sub_810131C();
gUnknown_203ACEC->unk0++;
}
break;
case 2:
if (!IsDma3ManagerBusyWithBgCopy())
{
sub_81015D4(6);
sub_8102178();
gUnknown_203ACEC->unk0++;
}
break;
case 3:
if (!sub_81016AC() && !sub_81021B8())
{
sub_810224C();
sub_8101BC0();
gUnknown_203ACEC->unk0++;
return FALSE;
}
break;
case 4:
return FALSE;
}
return TRUE;
}
bool8 sub_8100720(void)
{
sub_8101C80();
return FALSE;
}
bool8 sub_810072C(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_81019B0(1, 2);
gUnknown_203ACEC->unk0++;
// Fall through
case 1:
if (!sub_8101A10())
{
sub_8101C80();
sub_810224C();
return FALSE;
}
break;
}
return TRUE;
}
bool8 sub_8100774(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_81019B0(-1, 2);
gUnknown_203ACEC->unk0++;
// Fall through
case 1:
if (!sub_8101A10())
{
sub_810224C();
gUnknown_203ACEC->unk0++;
return FALSE;
}
break;
case 2:
return FALSE;
}
return TRUE;
}
bool8 sub_81007D0(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_8101C48();
sub_81020AC();
sub_81022B0();
gUnknown_203ACEC->unk0++;
break;
case 1:
if (!sub_81020D0())
{
sub_81015BC();
gUnknown_203ACEC->unk0++;
}
break;
case 2:
if (!IsDma3ManagerBusyWithBgCopy())
{
sub_81015D4(2);
gUnknown_203ACEC->unk0++;
}
break;
case 3:
if (!sub_81016AC())
{
sub_81012E0(2);
gUnknown_203ACEC->unk0++;
}
break;
case 4:
if (!IsDma3ManagerBusyWithBgCopy())
{
sub_8101E80();
sub_81022E0(1);
sub_810224C();
sub_8102394();
gUnknown_203ACEC->unk0++;
return FALSE;
}
break;
case 5:
return FALSE;
}
return TRUE;
}
bool8 sub_8100890(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_8100FDC();
gUnknown_203ACEC->unk0++;
break;
case 1:
sub_8101F80();
sub_81022B0();
sub_81023F8();
sub_81015BC();
gUnknown_203ACEC->unk0++;
break;
case 2:
if (!IsDma3ManagerBusyWithBgCopy())
{
sub_81015D4(3);
gUnknown_203ACEC->unk0++;
}
break;
case 3:
if (!sub_81016AC())
{
ShowBg(0);
gUnknown_203ACEC->unk0++;
}
break;
case 4:
if (!IsDma3ManagerBusyWithBgCopy())
{
sub_8101BA8();
gUnknown_203ACEC->unk0++;
return FALSE;
}
break;
case 5:
return FALSE;
}
return TRUE;
}
bool8 sub_810093C(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_8101F80();
sub_81022B0();
sub_81023F8();
sub_81015BC();
gUnknown_203ACEC->unk0++;
break;
case 1:
if (!IsDma3ManagerBusyWithBgCopy())
{
sub_81015D4(4);
gUnknown_203ACEC->unk0++;
}
break;
case 2:
if (!sub_81016AC())
{
sub_810131C();
gUnknown_203ACEC->unk0++;
}
break;
case 3:
if (!IsDma3ManagerBusyWithBgCopy())
{
sub_8101FAC();
gUnknown_203ACEC->unk0++;
}
break;
case 4:
if (!sub_8102018())
{
sub_8101BC0();
sub_81022E0(0);
sub_810224C();
gUnknown_203ACEC->unk0++;
return FALSE;
}
break;
}
return TRUE;
}
bool8 sub_81009F8(void)
{
sub_8101F04();
return FALSE;
}
bool8 sub_8100A04(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_81013EC();
gUnknown_203ACEC->unk0++;
break;
case 1:
if (!IsDma3ManagerBusyWithBgCopy())
{
sub_81019B0(1, 2);
gUnknown_203ACEC->unk0++;
}
break;
case 2:
if (!sub_8101A10())
{
sub_8101F04();
sub_810224C();
sub_8102394();
gUnknown_203ACEC->unk0++;
return FALSE;
}
break;
case 3:
return FALSE;
}
return TRUE;
}
bool8 sub_8100A78(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_8101410();
gUnknown_203ACEC->unk0++;
break;
case 1:
if (!IsDma3ManagerBusyWithBgCopy())
{
sub_81019B0(-1, 2);
gUnknown_203ACEC->unk0++;
}
break;
case 2:
if (!sub_8101A10())
{
sub_810224C();
sub_8102394();
gUnknown_203ACEC->unk0++;
return FALSE;
}
break;
case 3:
return FALSE;
}
return TRUE;
}
bool8 sub_8100AE8(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_8101434();
gUnknown_203ACEC->unk0++;
break;
case 1:
if (!IsDma3ManagerBusyWithBgCopy())
{
s16 var0 = sub_80FFE48() - sub_8101A48();
sub_81019B0(var0, 4);
gUnknown_203ACEC->unk0++;
}
break;
case 2:
if (!sub_8101A10())
{
sub_8101F04();
sub_810224C();
sub_8102394();
gUnknown_203ACEC->unk0++;
return FALSE;
}
break;
case 3:
return FALSE;
}
return TRUE;
}
bool8 sub_8100B70(void)
{
switch (gUnknown_203ACEC->unk0)
{
case 0:
sub_8101478();
gUnknown_203ACEC->unk0++;
break;
case 1:
if (!IsDma3ManagerBusyWithBgCopy())
{
s16 var0 = sub_80FFE48() - sub_8101A48();
sub_81019B0(var0, 4);
gUnknown_203ACEC->unk0++;
}
break;
case 2:
if (!sub_8101A10())
{
sub_810224C();
sub_8102394();
gUnknown_203ACEC->unk0++;
return FALSE;
}
break;
case 3:
return FALSE;
}
return TRUE;
}
+2 -2
View File
@@ -1216,8 +1216,8 @@ const u16 gHoennTrainerCard_Pal[] = INCBIN_U16("graphics/trainer_card/0star_em.g
const u32 gHoennTrainerCard_Gfx[] = INCBIN_U32("graphics/trainer_card/card_em.4bpp.lz");
const u16 gUnknown_8E99D8C[] = INCBIN_U16("graphics/link_rfu/unk_8E99DAC.gbapal");
const u32 gUnknown_8E99DAC[] = INCBIN_U32("graphics/link_rfu/unk_8E99DAC.4bpp.lz");
const u32 gUnknown_8E99E74[] = INCBIN_U32("graphics/link_rfu/unk_8E99E74.bin.lz");
const u32 gEasyChatWindow_Gfx[] = INCBIN_U32("graphics/link_rfu/unk_8E99DAC.4bpp.lz");
const u32 gEasyChatWindow_Tilemap[] = INCBIN_U32("graphics/link_rfu/unk_8E99E74.bin.lz");
const u16 gUnknown_8E99F24[] = INCBIN_U16("graphics/link_rfu/unk_8E9A168.gbapal");
const u32 gUnknown_8E99F44[] = INCBIN_U32("graphics/link_rfu/unk_8E99F44.4bpp.lz");
+3 -8
View File
@@ -314,14 +314,9 @@ gUnknown_203998C: @ 203998C
.align 2
.include "src/link_rfu_3.o"
.align 2
@ .include "src/easy_chat_2.o"
sEasyChatScreen: @ 203ACE8
.space 0x4
gUnknown_203ACEC: @ 203ACEC
.space 0x4
.include "src/easy_chat_2.o"
.align 2
.include "src/easy_chat_3.o"
.align 2
.include "src/pokedex_screen.o"
.align 2