through sub_8100B70
This commit is contained in:
+9
-1550
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user