From f2f1b1978ba3423a519df66d4f382dd68ac8b185 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 10 Feb 2019 03:54:50 -0500 Subject: Done documenting link code in overworld.c --- src/easy_chat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/easy_chat.c') diff --git a/src/easy_chat.c b/src/easy_chat.c index c84895df5..2dce4de0d 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -146,7 +146,7 @@ static void sub_811A2A4(u8 taskId, TaskFunc taskFunc) static void sub_811A2C0(u8 taskId) { - if (!is_c1_link_related_active()) + if (!IsUpdateLinkStateCBActive()) { while (sub_811A428(taskId)); } -- cgit v1.2.3 From bb508ade64bd152fa146b71e6734a4ea704b31f3 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 24 Feb 2019 10:04:40 -0600 Subject: Decompile more of easy_chat.c --- src/easy_chat.c | 731 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 676 insertions(+), 55 deletions(-) (limited to 'src/easy_chat.c') diff --git a/src/easy_chat.c b/src/easy_chat.c index 5c55cd2ca..1b1bd105b 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -3,10 +3,12 @@ #include "global.h" #include "alloc.h" #include "bg.h" +#include "decompress.h" #include "dewford_trend.h" #include "dynamic_placeholder_text_util.h" #include "easy_chat.h" #include "event_data.h" +#include "event_object_movement.h" #include "field_weather.h" #include "gpu_regs.h" #include "graphics.h" @@ -22,6 +24,7 @@ #include "task.h" #include "text_window.h" #include "window.h" +#include "constants/event_objects.h" #include "constants/flags.h" #include "constants/songs.h" @@ -82,20 +85,23 @@ struct Unk203A11C u8 unk6; u8 unk7; s8 unk8; - u8 filler9[0x1]; + u8 unk9; u8 unkA; u8 unkB[0xC1]; - u8 unkCC[0x20C]; - int unk2D8; - int unk2DC; - int unk2E0; - int unk2E4; - int unk2E8; - int unk2EC; - int unk2F0; - int unk2F4; - int unk2F8; - int unk2FC; + 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]; }; @@ -202,12 +208,12 @@ static void sub_811CFCC(void); static void sub_811D0BC(void); static void sub_811D2C8(void); static void sub_811D684(void); -void sub_811DE90(void); -void sub_811DEC4(void); -void sub_811DE5C(u8, u8, u8, u8); -void sub_811E5D4(void); -void sub_811E720(void); -void sub_811E828(void); +static void sub_811DE90(void); +static void sub_811DEC4(void); +static void sub_811DE5C(u8, u8, u8, u8); +static void sub_811E5D4(void); +static void sub_811E720(void); +static void sub_811E828(void); static bool8 sub_811C2D4(void); static bool8 sub_811C30C(void); static bool8 sub_811C3E4(void); @@ -237,51 +243,56 @@ static bool8 sub_811CD94(void); static bool8 sub_811CDD4(void); static bool8 sub_811CE14(void); static bool8 sub_811CE54(void); -void sub_811DF60(u8, u8); -int sub_811E920(int); -void sub_811DF90(void); +static void sub_811DF60(u8, u8); +static int sub_811E920(int); +static void sub_811DF90(void); static void sub_811D104(u8); static void sub_811D214(u8); -void sub_811DFB0(void); +static void sub_811DFB0(void); static void sub_811D6D4(void); static void sub_811D9CC(int); -void sub_811E3AC(void); -bool8 sub_811E418(void); -void sub_811DFC8(void); -void sub_811E6E0(int); +static void sub_811E3AC(void); +static bool8 sub_811E418(void); +static void sub_811DFC8(void); +static void sub_811E6E0(int); static bool8 sub_811DAA4(void); -void sub_811E64C(void); -void sub_811E050(void); -void sub_811E4AC(void); -void sub_811E6B0(void); -void sub_811E55C(void); -bool8 sub_811E4D0(void); -bool8 sub_811E5B8(void); -void sub_811E578(void); -void sub_811E088(void); -void sub_811DDAC(s16, u8); -bool8 sub_811DE10(void); +static void sub_811E64C(void); +static void sub_811E050(void); +static void sub_811E4AC(void); +static void sub_811E6B0(void); +static void sub_811E55C(void); +static bool8 sub_811E4D0(void); +static bool8 sub_811E5B8(void); +static void sub_811E578(void); +static void sub_811E088(void); +static void sub_811DDAC(s16, u8); +static bool8 sub_811DE10(void); static void sub_811D9B4(void); static void sub_811D698(u32); -void sub_811E288(void); -void sub_811E794(void); -void sub_811E380(void); -void sub_811E7F8(void); -void sub_811E30C(void); +static void sub_811E288(void); +static void sub_811E794(void); +static void sub_811E380(void); +static void sub_811E7F8(void); +static void sub_811E30C(void); static void sub_811D7A4(void); static void sub_811D7C8(void); -int sub_811DE48(void); +static int sub_811DE48(void); static void sub_811D7EC(void); static void sub_811D830(void); void sub_811D058(u8, u8, const u8 *, u8, u8, u8, u8, u8, u8); -void sub_811DD84(void); +static void sub_811DD84(void); static void sub_811D6F4(void); static void sub_811D758(void); static void sub_811D794(void); const u8 *sub_811F424(u8); static void sub_811D864(u8, u8); static void sub_811D950(u8, u8); -void sub_811DADC(u8); +static void sub_811DADC(u8); +static void sub_811DC28(int, int, int, int); +static void sub_811E0EC(s8, s8); +static void sub_811E1A4(s8, s8); +static void sub_811E2DC(struct Sprite *); +static void sub_811E34C(u8, u8); u8 *CopyEasyChatWordPadded(u8 *, u16, u16); extern const struct { @@ -304,6 +315,17 @@ extern const u16 gUnknown_08597C24[]; extern const struct WindowTemplate gUnknown_08597C84; extern const u8 gUnknown_08597C8C[4]; extern const u8 *const gUnknown_08597C90[4]; +extern const struct SpriteSheet gUnknown_08597CA0[]; +extern const struct SpritePalette gUnknown_08597CC0[]; +extern const struct CompressedSpriteSheet gUnknown_08597CE8[]; +extern const struct SpriteTemplate gUnknown_08597D18; +extern const struct SpriteTemplate gUnknown_08597D68; +extern const struct SpriteTemplate gUnknown_08597DF0; +extern const struct SpriteTemplate gUnknown_08597DD0; +extern const struct SpriteTemplate gUnknown_08597E48; +extern const struct SpriteTemplate gUnknown_08597E30; +extern const u8 gUnknown_08597D08[]; +extern const u8 gUnknown_08597E60[][4]; void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) { @@ -3228,16 +3250,16 @@ static bool8 sub_811CE94(void) return FALSE; gUnknown_0203A11C->unk0 = 0; - gUnknown_0203A11C->unk2D8 = 0; - gUnknown_0203A11C->unk2DC = 0; - gUnknown_0203A11C->unk2E0 = 0; - gUnknown_0203A11C->unk2E4 = 0; - gUnknown_0203A11C->unk2E8 = 0; - gUnknown_0203A11C->unk2EC = 0; - gUnknown_0203A11C->unk2F0 = 0; - gUnknown_0203A11C->unk2F4 = 0; - gUnknown_0203A11C->unk2F8 = 0; - gUnknown_0203A11C->unk2FC = 0; + gUnknown_0203A11C->unk2D8 = NULL; + gUnknown_0203A11C->unk2DC = NULL; + gUnknown_0203A11C->unk2E0 = NULL; + gUnknown_0203A11C->unk2E4 = NULL; + gUnknown_0203A11C->unk2E8 = NULL; + gUnknown_0203A11C->unk2EC = NULL; + gUnknown_0203A11C->unk2F0 = NULL; + gUnknown_0203A11C->unk2F4 = NULL; + gUnknown_0203A11C->unk2F8 = NULL; + gUnknown_0203A11C->unk2FC = NULL; gUnknown_0203A11C->unkA = sub_811BC70(); return TRUE; } @@ -3752,3 +3774,602 @@ static bool8 sub_811DAA4(void) var1 = gUnknown_0203A11C->unk7; return (var0 ^ var1) > 0; } + +static void sub_811DADC(u8 arg0) +{ + FillBgTilemapBufferRect_Palette0(1, 0, 0, 10, 30, 10); + switch (arg0) + { + case 0: + break; + case 1: + sub_811DC28(11, 14, 3, 2); + break; + case 2: + sub_811DC28(9, 14, 7, 2); + break; + case 3: + sub_811DC28(7, 14, 11, 2); + break; + case 4: + sub_811DC28(5, 14, 15, 2); + break; + case 5: + sub_811DC28(3, 14, 19, 2); + break; + case 6: + sub_811DC28(1, 14, 23, 2); + break; + case 11: + sub_811DC28(1, 10, 24, 10); + break; + case 12: + sub_811DC28(1, 10, 25, 10); + break; + case 13: + sub_811DC28(1, 10, 26, 10); + break; + case 14: + sub_811DC28(1, 10, 27, 10); + break; + case 15: + sub_811DC28(1, 10, 28, 10); + break; + case 16: + sub_811DC28(1, 10, 29, 10); + break; + case 17: + sub_811DC28(0, 10, 30, 10); + break; + case 10: + case 18: + sub_811DC28(1, 10, 23, 10); + break; + case 9: + case 19: + sub_811DC28(1, 11, 23, 8); + break; + case 8: + case 20: + sub_811DC28(1, 12, 23, 6); + break; + case 7: + case 21: + sub_811DC28(1, 13, 23, 4); + break; + case 22: + sub_811DC28(1, 14, 23, 2); + break; + } + + CopyBgTilemapBufferToVram(1); +} + +static void sub_811DC28(int left, int top, int width, int height) +{ + u16 *tilemap; + int right; + int bottom; + int x, y; + + tilemap = gUnknown_0203A11C->unk300; + right = left + width - 1; + bottom = top + height - 1; + x = left; + y = top; + tilemap[y * 32 + x] = 0x4001; + x++; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x4002; + + tilemap[y * 32 + x] = 0x4003; + y++; + for (; y < bottom; y++) + { + tilemap[y * 32 + left] = 0x4005; + x = left + 1; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x4000; + + tilemap[y * 32 + x] = 0x4007; + } + + tilemap[y * 32 + left] = 0x4009; + x = left + 1; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x400A; + + tilemap[y * 32 + x] = 0x400B; + sub_811DE5C((left + 1) * 8, (top + 1) * 8, (width - 2) * 8, (height - 2) * 8); +} + +static void sub_811DD84(void) +{ + ChangeBgY(2, 0x800, 0); + gUnknown_0203A11C->unk2CE = 0; +} + +static void sub_811DDAC(s16 arg0, u8 arg1) +{ + int bgY; + s16 var0; + + bgY = GetBgY(2); + gUnknown_0203A11C->unk2CE += arg0; + var0 = arg0 * 16; + bgY += var0 << 8; + if (arg1) + { + gUnknown_0203A11C->unk2D0 = bgY; + gUnknown_0203A11C->unk2D4 = arg1 * 256; + if (var0 < 0) + gUnknown_0203A11C->unk2D4 = -gUnknown_0203A11C->unk2D4; + } + else + { + ChangeBgY(2, bgY, 0); + } +} + +static bool8 sub_811DE10(void) +{ + int bgY; + + bgY = GetBgY(2); + if (bgY == gUnknown_0203A11C->unk2D0) + { + return FALSE; + } + else + { + ChangeBgY(2, gUnknown_0203A11C->unk2D4, 1); + return TRUE; + } +} + +static int sub_811DE48(void) +{ + return gUnknown_0203A11C->unk2CE; +} + +static void sub_811DE5C(u8 left, u8 top, u8 width, u8 height) +{ + u16 horizontalDimensions = WIN_RANGE(left, left + width); + u16 verticalDimensions = WIN_RANGE(top, top + height); + SetGpuReg(REG_OFFSET_WIN0H, horizontalDimensions); + SetGpuReg(REG_OFFSET_WIN0V, verticalDimensions); +} + +static void sub_811DE90(void) +{ + u32 i; + + LoadSpriteSheets(gUnknown_08597CA0); + LoadSpritePalettes(gUnknown_08597CC0); + for (i = 0; i < 4; i++) + LoadCompressedSpriteSheet(&gUnknown_08597CE8[i]); +} + +static void sub_811DEC4(void) +{ + u8 var0 = sub_811BA68(); + int x = gUnknown_08597C30[var0].unk0_0 * 8 + 13; + int y = gUnknown_08597C30[var0].unk0_5 * 8 + 8; + u8 spriteId = CreateSprite(&gUnknown_08597D18, x, y, 2); + gUnknown_0203A11C->unk2D8 = &gSprites[spriteId]; + gSprites[spriteId].data[1] = 1; +} + +void sub_811DF28(struct Sprite *sprite) +{ + if (sprite->data[1]) + { + if (++sprite->data[0] > 2) + { + sprite->data[0] = 0; + if (++sprite->pos2.x > 0) + sprite->pos2.x = -6; + } + } +} + +static void sub_811DF60(u8 x, u8 y) +{ + gUnknown_0203A11C->unk2D8->pos1.x = x; + gUnknown_0203A11C->unk2D8->pos1.y = y; + gUnknown_0203A11C->unk2D8->pos2.x = 0; + gUnknown_0203A11C->unk2D8->data[0] = 0; +} + +static void sub_811DF90(void) +{ + gUnknown_0203A11C->unk2D8->data[0] = 0; + gUnknown_0203A11C->unk2D8->data[1] = 0; + gUnknown_0203A11C->unk2D8->pos2.x = 0; +} + +static void sub_811DFB0(void) +{ + gUnknown_0203A11C->unk2D8->data[1] = 1; +} + +static void sub_811DFC8(void) +{ + u8 spriteId = CreateSprite(&gUnknown_08597D68, 0, 0, 3); + gUnknown_0203A11C->unk2DC = &gSprites[spriteId]; + gUnknown_0203A11C->unk2DC->pos2.x = 32; + + spriteId = CreateSprite(&gUnknown_08597D68, 0, 0, 3); + gUnknown_0203A11C->unk2E0 = &gSprites[spriteId]; + gUnknown_0203A11C->unk2E0->pos2.x = -32; + + gUnknown_0203A11C->unk2DC->hFlip = 1; + sub_811E088(); +} + +static void sub_811E050(void) +{ + DestroySprite(gUnknown_0203A11C->unk2DC); + gUnknown_0203A11C->unk2DC = NULL; + DestroySprite(gUnknown_0203A11C->unk2E0); + gUnknown_0203A11C->unk2E0 = NULL; +} + +static void sub_811E088(void) +{ + u8 var0; + u8 var1; + + if (gUnknown_0203A11C->unk2DC && gUnknown_0203A11C->unk2E0) + { + sub_811BB9C(&var0, &var1); + if (!sub_811BBB0()) + sub_811E0EC(var0, var1); + else + sub_811E1A4(var0, var1); + } +} + +static void sub_811E0EC(s8 arg0, s8 arg1) +{ + if (arg0 != -1) + { + StartSpriteAnim(gUnknown_0203A11C->unk2DC, 0); + gUnknown_0203A11C->unk2DC->pos1.x = arg0 * 84 + 58; + gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 96; + + StartSpriteAnim(gUnknown_0203A11C->unk2E0, 0); + gUnknown_0203A11C->unk2E0->pos1.x = arg0 * 84 + 58; + gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 96; + } + else + { + StartSpriteAnim(gUnknown_0203A11C->unk2DC, 1); + gUnknown_0203A11C->unk2DC->pos1.x = 216; + gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; + + StartSpriteAnim(gUnknown_0203A11C->unk2E0, 1); + gUnknown_0203A11C->unk2E0->pos1.x = 216; + gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; + } +} + +static void sub_811E1A4(s8 arg0, s8 arg1) +{ + int anim; + int x, y; + + if (arg0 != -1) + { + y = arg1 * 16 + 96; + x = 32; + if (arg0 == 6 && arg1 == 0) + { + x = 158; + anim = 2; + } + else + { + x += gUnknown_08597D08[(u8)arg0 < 7 ? arg0 : 0]; + anim = 3; + } + + StartSpriteAnim(gUnknown_0203A11C->unk2DC, anim); + gUnknown_0203A11C->unk2DC->pos1.x = x; + gUnknown_0203A11C->unk2DC->pos1.y = y; + + StartSpriteAnim(gUnknown_0203A11C->unk2E0, anim); + gUnknown_0203A11C->unk2E0->pos1.x = x; + gUnknown_0203A11C->unk2E0->pos1.y = y; + } + else + { + StartSpriteAnim(gUnknown_0203A11C->unk2DC, 1); + gUnknown_0203A11C->unk2DC->pos1.x = 216; + gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; + + StartSpriteAnim(gUnknown_0203A11C->unk2E0, 1); + gUnknown_0203A11C->unk2E0->pos1.x = 216; + gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; + } +} + +static void sub_811E288(void) +{ + u8 spriteId = CreateSprite(&gUnknown_08597D18, 0, 0, 4); + gUnknown_0203A11C->unk2E4 = &gSprites[spriteId]; + gUnknown_0203A11C->unk2E4->callback = sub_811E2DC; + gUnknown_0203A11C->unk2E4->oam.priority = 2; + sub_811E30C(); +} + +static void sub_811E2DC(struct Sprite *sprite) +{ + if (++sprite->data[0] > 2) + { + sprite->data[0] = 0; + if (++sprite->pos2.x > 0) + sprite->pos2.x = -6; + } +} + +static void sub_811E30C(void) +{ + s8 var0, var1, x, y; + + sub_811BBC8(&var0, &var1); + x = var0 * 13; + x = x * 8 + 28; + y = var1 * 16 + 96; + sub_811E34C(x, y); +} + +static void sub_811E34C(u8 x, u8 y) +{ + if (gUnknown_0203A11C->unk2E4) + { + gUnknown_0203A11C->unk2E4->pos1.x = x; + gUnknown_0203A11C->unk2E4->pos1.y = y; + gUnknown_0203A11C->unk2E4->pos2.x = 0; + gUnknown_0203A11C->unk2E4->data[0] = 0; + } +} + +static void sub_811E380(void) +{ + if (gUnknown_0203A11C->unk2E4) + { + DestroySprite(gUnknown_0203A11C->unk2E4); + gUnknown_0203A11C->unk2E4 = NULL; + } +} + +static void sub_811E3AC(void) +{ + u8 spriteId = CreateSprite(&gUnknown_08597DF0, 208, 128, 6); + gUnknown_0203A11C->unk2E8 = &gSprites[spriteId]; + gUnknown_0203A11C->unk2E8->pos2.x = -64; + + spriteId = CreateSprite(&gUnknown_08597DD0, 208, 80, 5); + gUnknown_0203A11C->unk2EC = &gSprites[spriteId]; + gUnknown_0203A11C->unk9 = 0; +} + +static bool8 sub_811E418(void) +{ + switch (gUnknown_0203A11C->unk9) + { + default: + return FALSE; + case 0: + gUnknown_0203A11C->unk2E8->pos2.x += 8; + if (gUnknown_0203A11C->unk2E8->pos2.x >= 0) + { + gUnknown_0203A11C->unk2E8->pos2.x = 0; + if (!sub_811BBB0()) + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 1); + else + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 2); + + gUnknown_0203A11C->unk9++; + } + break; + case 1: + if (gUnknown_0203A11C->unk2EC->animEnded) + { + gUnknown_0203A11C->unk9 = 2; + return FALSE; + } + } + + return TRUE; +} + +static void sub_811E4AC(void) +{ + gUnknown_0203A11C->unk9 = 0; + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 3); +} + +static bool8 sub_811E4D0(void) +{ + switch (gUnknown_0203A11C->unk9) + { + default: + return FALSE; + case 0: + if (gUnknown_0203A11C->unk2EC->animEnded) + gUnknown_0203A11C->unk9 = 1; + break; + case 1: + gUnknown_0203A11C->unk2E8->pos2.x -= 8; + if (gUnknown_0203A11C->unk2E8->pos2.x <= -64) + { + DestroySprite(gUnknown_0203A11C->unk2EC); + DestroySprite(gUnknown_0203A11C->unk2E8); + gUnknown_0203A11C->unk2EC = NULL; + gUnknown_0203A11C->unk2E8 = NULL; + gUnknown_0203A11C->unk9++; + return FALSE; + } + } + + return TRUE; +} + +static void sub_811E55C(void) +{ + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 4); +} + +static void sub_811E578(void) +{ + if (!sub_811BBB0()) + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 1); + else + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 2); +} + +static bool8 sub_811E5B8(void) +{ + return !gUnknown_0203A11C->unk2EC->animEnded; +} + +static void sub_811E5D4(void) +{ + u8 spriteId = CreateSprite(&gUnknown_08597E48, 96, 80, 0); + if (spriteId != MAX_SPRITES) + gUnknown_0203A11C->unk2F0 = &gSprites[spriteId]; + + spriteId = CreateSprite(&gUnknown_08597E48, 96, 156, 0); + if (spriteId != MAX_SPRITES) + { + gUnknown_0203A11C->unk2F4 = &gSprites[spriteId]; + gUnknown_0203A11C->unk2F4->vFlip = 1; + } + + sub_811E6B0(); +} + +static void sub_811E64C(void) +{ + gUnknown_0203A11C->unk2F0->invisible = !sub_811BBF8(); + gUnknown_0203A11C->unk2F4->invisible = !sub_811BC2C(); +} + +static void sub_811E6B0(void) +{ + gUnknown_0203A11C->unk2F0->invisible = 1; + gUnknown_0203A11C->unk2F4->invisible = 1; +} + +static void sub_811E6E0(int arg0) +{ + if (!arg0) + { + gUnknown_0203A11C->unk2F0->pos1.x = 96; + gUnknown_0203A11C->unk2F4->pos1.x = 96; + } + else + { + gUnknown_0203A11C->unk2F0->pos1.x = 120; + gUnknown_0203A11C->unk2F4->pos1.x = 120; + } +} + +static void sub_811E720(void) +{ + u8 spriteId = CreateSprite(&gUnknown_08597E30, 220, 84, 1); + if (spriteId != MAX_SPRITES) + gUnknown_0203A11C->unk2F8 = &gSprites[spriteId]; + + spriteId = CreateSprite(&gUnknown_08597E30, 220, 156, 1); + if (spriteId != MAX_SPRITES) + { + gUnknown_0203A11C->unk2FC = &gSprites[spriteId]; + StartSpriteAnim(gUnknown_0203A11C->unk2FC, 1); + } + + sub_811E7F8(); +} + +static void sub_811E794(void) +{ + gUnknown_0203A11C->unk2F8->invisible = !sub_811BBF8(); + gUnknown_0203A11C->unk2FC->invisible = !sub_811BC2C(); +} + +static void sub_811E7F8(void) +{ + gUnknown_0203A11C->unk2F8->invisible = 1; + gUnknown_0203A11C->unk2FC->invisible = 1; +} + +static void sub_811E828(void) +{ + int graphicsId; + u8 spriteId; + + switch (sub_811BCBC()) + { + case 0: + graphicsId = EVENT_OBJ_GFX_REPORTER_M; + break; + case 1: + graphicsId = EVENT_OBJ_GFX_REPORTER_F; + break; + case 2: + graphicsId = EVENT_OBJ_GFX_BOY_1; + break; + default: + return; + } + + if (sub_811BA68() != 4) + return; + + spriteId = AddPseudoEventObject(graphicsId, SpriteCallbackDummy, 76, 40, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.priority = 0; + StartSpriteAnim(&gSprites[spriteId], 2); + } + + spriteId = AddPseudoEventObject( + gSaveBlock2Ptr->playerGender == MALE ? EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL : EVENT_OBJ_GFX_RIVAL_MAY_NORMAL, + SpriteCallbackDummy, + 52, + 40, + 0); + + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.priority = 0; + StartSpriteAnim(&gSprites[spriteId], 3); + } +} + +int sub_811E8E4(void) +{ + u8 var0 = sub_811BA68(); + switch (gUnknown_08597C30[var0].unk3) + { + case 1: + return 1; + case 2: + return 2; + case 0: + return 0; + default: + return 3; + } +} + +static int sub_811E920(int arg0) +{ + int var0 = sub_811E8E4(); + if (var0 < 3) + return gUnknown_08597E60[var0][arg0] + 4; + else + return 0; +} -- cgit v1.2.3 From 7ea05431a58d63c2e0594d15e552979d20092cf6 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 25 Feb 2019 14:03:13 -0600 Subject: Decompile more easy_chat.c --- src/easy_chat.c | 414 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 413 insertions(+), 1 deletion(-) (limited to 'src/easy_chat.c') diff --git a/src/easy_chat.c b/src/easy_chat.c index 1b1bd105b..51b25c42a 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -2,13 +2,16 @@ // Includes #include "global.h" #include "alloc.h" +#include "bard_music.h" #include "bg.h" +#include "data2.h" #include "decompress.h" #include "dewford_trend.h" #include "dynamic_placeholder_text_util.h" #include "easy_chat.h" #include "event_data.h" #include "event_object_movement.h" +#include "field_message_box.h" #include "field_weather.h" #include "gpu_regs.h" #include "graphics.h" @@ -18,12 +21,15 @@ #include "menu.h" #include "overworld.h" #include "palette.h" +#include "pokedex.h" +#include "random.h" #include "sound.h" #include "string_util.h" #include "strings.h" #include "task.h" #include "text_window.h" #include "window.h" +#include "constants/easy_chat.h" #include "constants/event_objects.h" #include "constants/flags.h" #include "constants/songs.h" @@ -115,6 +121,26 @@ struct Unk08597C30 u8 unk3; }; +struct EasyChatWordInfo +{ + const u8 *text; + int alphabeticalOrder; + int enabled; +}; + +typedef union +{ + const u16 *valueList; + const struct EasyChatWordInfo *words; +} EasyChatGroupWordData; + +struct EasyChatGroup +{ + EasyChatGroupWordData wordData; + u16 numWords; + u16 numEnabledWords; +}; + EWRAM_DATA struct EasyChatScreen *gEasyChatScreen = NULL; EWRAM_DATA struct Unk203A11C *gUnknown_0203A11C = 0; EWRAM_DATA void *gUnknown_0203A120 = 0; @@ -203,7 +229,7 @@ static void sub_811CF04(void); static void sub_811D60C(void); static void sub_811D424(u16 *); static void sub_811D230(void); -void sub_811E948(void); +static void sub_811E948(void); static void sub_811CFCC(void); static void sub_811D0BC(void); static void sub_811D2C8(void); @@ -293,6 +319,8 @@ static void sub_811E0EC(s8, s8); static void sub_811E1A4(s8, s8); static void sub_811E2DC(struct Sprite *); static void sub_811E34C(u8, u8); +bool8 sub_811F0F8(void); +u16 sub_811F108(void); u8 *CopyEasyChatWordPadded(u8 *, u16, u16); extern const struct { @@ -326,6 +354,8 @@ extern const struct SpriteTemplate gUnknown_08597E48; extern const struct SpriteTemplate gUnknown_08597E30; extern const u8 gUnknown_08597D08[]; extern const u8 gUnknown_08597E60[][4]; +extern const u8 *const gUnknown_08597E6C[][4]; +extern const struct EasyChatGroup gEasyChatGroups[]; void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) { @@ -4373,3 +4403,385 @@ static int sub_811E920(int arg0) else return 0; } + +static void sub_811E948(void) +{ + int i; + u16 windowId; + struct WindowTemplate template; + int var0 = sub_811E8E4(); + if (var0 == 3) + return; + + template.bg = 3; + template.tilemapLeft = 1; + template.tilemapTop = 11; + template.width = 28; + template.height = 2; + template.paletteNum = 11; + template.baseBlock = 0x34; + windowId = AddWindow(&template); + FillWindowPixelBuffer(windowId, 0x11); + for (i = 0; i < 4; i++) + { + const u8 *str = gUnknown_08597E6C[var0][i]; + if (str) + { + int x = gUnknown_08597E60[var0][i]; + sub_811D028(windowId, 1, str, x, 1, 0, NULL); + } + } + + PutWindowTilemap(windowId); +} + +bool8 sub_811EA28(u8 groupId) +{ + switch (groupId) + { + case EC_GROUP_TRENDY_SAYING: + return FlagGet(FLAG_SYS_HIPSTER_MEET); + case EC_GROUP_EVENTS: + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + return FlagGet(FLAG_SYS_GAME_CLEAR); + case EC_GROUP_POKEMON_2: + return sub_811F0F8(); + default: + return TRUE; + } +} + +u16 EasyChat_GetNumWordsInGroup(u8 groupId) +{ + if (groupId == EC_GROUP_POKEMON) + return GetNationalPokedexCount(FLAG_GET_SEEN); + + if (sub_811EA28(groupId)) + return gEasyChatGroups[groupId].numEnabledWords; + + return 0; +} + +bool8 sub_811EAA4(u16 easyChatWord) +{ + u16 i; + u8 groupId; + u32 index; + u16 numWords; + const u16 *list; + if (easyChatWord == 0xFFFF) + return FALSE; + + groupId = EC_GROUP(easyChatWord); + index = EC_INDEX(easyChatWord); + if (groupId >= EC_NUM_GROUPS) + return TRUE; + + numWords = gEasyChatGroups[groupId].numWords; + switch (groupId) + { + case EC_GROUP_POKEMON: + case EC_GROUP_POKEMON_2: + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + list = gEasyChatGroups[groupId].wordData.valueList; + for (i = 0; i < numWords; i++) + { + if (index == list[i]) + return FALSE; + } + return TRUE; + default: + if (index >= numWords) + return TRUE; + else + return FALSE; + } +} + +bool8 ECWord_CheckIfOutsideOfValidRange(u16 easyChatWord) +{ + int numWordsInGroup; + u8 groupId = EC_GROUP(easyChatWord); + u32 index = EC_INDEX(easyChatWord); + if (groupId >= EC_NUM_GROUPS) + return TRUE; + + switch (groupId) + { + case EC_GROUP_POKEMON: + case EC_GROUP_POKEMON_2: + numWordsInGroup = gUnknown_085F5490; + break; + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + numWordsInGroup = gUnknown_085FA1D4; + break; + default: + numWordsInGroup = gEasyChatGroups[groupId].numWords; + break; + } + + if (numWordsInGroup <= index) + return TRUE; + else + return FALSE; +} + +const u8 *GetEasyChatWord(u8 groupId, u16 index) +{ + switch (groupId) + { + case EC_GROUP_POKEMON: + case EC_GROUP_POKEMON_2: + return gSpeciesNames[index]; + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + return gMoveNames[index]; + default: + return gEasyChatGroups[groupId].wordData.words[index].text; + } +} + +u8 *CopyEasyChatWord(u8 *dest, u16 easyChatWord) +{ + u8 *resultStr; + if (sub_811EAA4(easyChatWord)) + { + resultStr = StringCopy(dest, gText_ThreeQuestionMarks); + } + else if (easyChatWord != 0xFFFF) + { + u16 index = EC_INDEX(easyChatWord); + u8 groupId = EC_GROUP(easyChatWord); + resultStr = StringCopy(dest, GetEasyChatWord(groupId, index)); + } + else + { + *dest = EOS; + resultStr = dest; + } + + return resultStr; +} + +u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows) +{ + u16 i, j; + u16 numColumns = columns - 1; + + for (i = 0; i < rows; i++) + { + for (j = 0; j < numColumns; j++) + { + dest = CopyEasyChatWord(dest, *src); + if (*src != 0xFFFF) + { + *dest = CHAR_SPACE; + dest++; + } + + src++; + } + + dest = CopyEasyChatWord(dest, *(src++)); + *dest = CHAR_NEWLINE; + dest++; + } + + dest--; + *dest = EOS; + return dest; +} + +u8 *unref_sub_811EC98(u8 *dest, const u16 *src, u16 columns, u16 rows) +{ + u16 i, j, k; + u16 numColumns; + int var0, var1; + + numColumns = columns; + var1 = 0; + columns--; + for (i = 0; i < rows; i++) + { + const u16 *var2 = src; + var0 = 0; + for (j = 0; j < numColumns; j++) + { + if (var2[j] != 0xFFFF) + var0 = 1; + } + + if (!var0) + { + src += numColumns; + continue; + } + + for (k = 0; k < columns; k++) + { + dest = CopyEasyChatWord(dest, *src); + if (*src != 0xFFFF) + { + *dest = CHAR_SPACE; + dest++; + } + + src++; + } + + dest = CopyEasyChatWord(dest, *(src++)); + if (var1 == 0) + *dest = CHAR_NEWLINE; + else + *dest = CHAR_PROMPT_SCROLL; + + dest++; + var1++; + } + + dest--; + *dest = EOS; + return dest; +} + +static u16 GetEasyChatWordStringLength(u16 easyChatWord) +{ + if (easyChatWord == 0xFFFF) + return 0; + + if (sub_811EAA4(easyChatWord)) + { + return StringLength(gText_ThreeQuestionMarks); + } + else + { + u16 index = EC_INDEX(easyChatWord); + u8 groupId = EC_GROUP(easyChatWord); + return StringLength(GetEasyChatWord(groupId, index)); + } +} + +bool8 sub_811EDC4(const u16 *easyChatWords, u8 arg1, u8 arg2, u16 arg3) +{ + u8 i, j; + + for (i = 0; i < arg2; i++) + { + u16 totalLength = arg1 - 1; + for (j = 0; j < arg1; j++) + totalLength += GetEasyChatWordStringLength(*(easyChatWords++)); + + if (totalLength > arg3) + return TRUE; + } + + return FALSE; +} + +u16 sub_811EE38(u16 groupId) +{ + u16 index = Random() % gEasyChatGroups[groupId].numWords; + if (groupId == EC_GROUP_POKEMON + || groupId == EC_GROUP_POKEMON_2 + || groupId == EC_GROUP_MOVE_1 + || groupId == EC_GROUP_MOVE_2) + { + index = gEasyChatGroups[groupId].wordData.valueList[index]; + } + + return EC_WORD(groupId, index); +} + +u16 sub_811EE90(u16 groupId) +{ + if (!sub_811EA28(groupId)) + return 0xFFFF; + + if (groupId == EC_GROUP_POKEMON) + return sub_811F108(); + + return sub_811EE38(groupId); +} + +void sub_811EECC(void) +{ + u16 *easyChatWords; + int columns, rows; + switch (gSpecialVar_0x8004) + { + case 0: + easyChatWords = gSaveBlock1Ptr->unk2BB0; + columns = 2; + rows = 2; + break; + case 1: + easyChatWords = gSaveBlock1Ptr->unk2BBC; + if (sub_811EDC4(gSaveBlock1Ptr->unk2BBC, 3, 2, 18)) + { + columns = 2; + rows = 3; + } + else + { + columns = 3; + rows = 2; + } + break; + case 2: + easyChatWords = gSaveBlock1Ptr->unk2BC8; + columns = 3; + rows = 2; + break; + case 3: + easyChatWords = gSaveBlock1Ptr->unk2BD4; + columns = 3; + rows = 2; + break; + default: + return; + } + + ConvertEasyChatWordsToString(gStringVar4, easyChatWords, columns, rows); + ShowFieldAutoScrollMessage(gStringVar4); +} + +void sub_811EF6C(void) +{ + int groupId = Random() & 1 ? EC_GROUP_HOBBIES : EC_GROUP_LIFESTYLE; + u16 easyChatWord = sub_811EE90(groupId); + CopyEasyChatWord(gStringVar2, easyChatWord); +} + +u8 sub_811EF98(u8 additionalPhraseId) +{ + int byteOffset = additionalPhraseId / 8; + int shift = additionalPhraseId & 0x7; + return (gSaveBlock1Ptr->additionalPhrases[byteOffset] >> shift) & 1; +} + +void sub_811EFC0(u8 additionalPhraseId) +{ + if (additionalPhraseId < 33) + { + int byteOffset = additionalPhraseId / 8; + int shift = additionalPhraseId & 0x7; + gSaveBlock1Ptr->additionalPhrases[byteOffset] |= 1 << shift; + } +} + +u8 sub_811EFF0(void) +{ + u8 i; + u8 numAdditionalPhrasesUnlocked; + + for (i = 0, numAdditionalPhrasesUnlocked = 0; i < 33; i++) + { + if (sub_811EF98(i)) + numAdditionalPhrasesUnlocked++; + } + + return numAdditionalPhrasesUnlocked; +} -- cgit v1.2.3 From 7742e28dad96fd908d87a3412d0127be10f65ed0 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 25 Feb 2019 22:20:00 +0100 Subject: Easy chat nonmatchings fix do {} while(0); --- src/easy_chat.c | 550 ++++++++++---------------------------------------------- 1 file changed, 96 insertions(+), 454 deletions(-) (limited to 'src/easy_chat.c') diff --git a/src/easy_chat.c b/src/easy_chat.c index 51b25c42a..3fdc88823 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -790,47 +790,51 @@ bool32 sub_811AB44(void) return FALSE; } -#ifdef NONMATCHING static u16 sub_811AB68(void) { - if (gMain.newKeys & A_BUTTON) - { - sub_811BF78(); - gEasyChatScreen->state = 2; - gEasyChatScreen->unk_0a = 0; - gEasyChatScreen->unk_0b = 0; - gEasyChatScreen->unk_0c = 0; - return 9; - } - else if (gMain.newKeys & B_BUTTON) - { - return sub_811B150(); - } - else if (gMain.newKeys & START_BUTTON) - { - return sub_811B1B4(); - } - else if (gMain.newKeys & DPAD_UP) - { - gEasyChatScreen->mainCursorRow--; - } - else if (gMain.newKeys & DPAD_LEFT) - { - gEasyChatScreen->mainCursorColumn--; - } - else if (gMain.newKeys & DPAD_DOWN) - { - gEasyChatScreen->mainCursorRow++; - } - else if (gMain.newKeys & DPAD_RIGHT) - { - gEasyChatScreen->mainCursorColumn++; - } - else + do { + if (gMain.newKeys & A_BUTTON) + { + sub_811BF78(); + gEasyChatScreen->state = 2; + gEasyChatScreen->unk_0a = 0; + gEasyChatScreen->unk_0b = 0; + gEasyChatScreen->unk_0c = 0; + return 9; + } + else if (gMain.newKeys & B_BUTTON) + { + return sub_811B150(); + } + else if (gMain.newKeys & START_BUTTON) + { + return sub_811B1B4(); + } + else if (gMain.newKeys & DPAD_UP) + { + gEasyChatScreen->mainCursorRow--; + break; + } + else if (gMain.newKeys & DPAD_LEFT) + { + gEasyChatScreen->mainCursorColumn--; + break; + } + else if (gMain.newKeys & DPAD_DOWN) + { + gEasyChatScreen->mainCursorRow++; + break; + } + else if (gMain.newKeys & DPAD_RIGHT) + { + gEasyChatScreen->mainCursorColumn++; + break; + } + return 0; - } - + } while (0); + if (gEasyChatScreen->mainCursorRow < 0) gEasyChatScreen->mainCursorRow = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows; @@ -857,238 +861,61 @@ static u16 sub_811AB68(void) return 2; } -#else -NAKED -static u16 sub_811AB68(void) -{ - asm_unified("\n\ - push {r4-r7,lr}\n\ - ldr r0, =gMain\n\ - ldrh r1, [r0, 0x2E]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0811ABB8\n\ - bl sub_811BF78\n\ - ldr r1, =gEasyChatScreen\n\ - ldr r3, [r1]\n\ - movs r2, 0\n\ - movs r0, 0x2\n\ - strb r0, [r3, 0x4]\n\ - ldr r0, [r1]\n\ - strb r2, [r0, 0xA]\n\ - ldr r0, [r1]\n\ - strb r2, [r0, 0xB]\n\ - ldr r0, [r1]\n\ - strb r2, [r0, 0xC]\n\ - movs r0, 0x9\n\ - b RETURN\n\ - .pool\n\ -_0811AB9C:\n\ - movs r0, 0x20\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0811AC68_dpad_left\n\ - movs r0, 0x80\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0811AC58_dpad_down\n\ - movs r0, 0x10\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0811AC48_dpad_right\n\ - movs r0, 0\n\ - b RETURN\n\ -_0811ABB8:\n\ - movs r0, 0x2\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0811AC78_b_button\n\ - movs r0, 0x8\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0811AC7E_start_button\n\ - movs r0, 0x40\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0811AB9C\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x6]\n\ - subs r0, 0x1\n\ -_0811ABD8:\n\ - strb r0, [r1, 0x6]\n\ -_0811ABDA:\n\ - adds r7, r2, 0\n\ - adds r4, r7, 0\n\ - ldr r2, [r4]\n\ - movs r0, 0x6\n\ - ldrsb r0, [r2, r0]\n\ - ldr r6, =gEasyChatScreenTemplates\n\ - cmp r0, 0\n\ - bge _0811ABF8\n\ - ldrb r0, [r2, 0x1]\n\ - lsls r1, r0, 1\n\ - adds r1, r0\n\ - lsls r1, 3\n\ - adds r1, r6\n\ - ldrb r0, [r1, 0x2]\n\ - strb r0, [r2, 0x6]\n\ -_0811ABF8:\n\ - ldr r3, [r4]\n\ - movs r2, 0x6\n\ - ldrsb r2, [r3, r2]\n\ - adds r5, r6, 0\n\ - ldrb r1, [r3, 0x1]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - adds r0, r5\n\ - ldrb r0, [r0, 0x2]\n\ - cmp r2, r0\n\ - ble _0811AC14\n\ - movs r0, 0\n\ - strb r0, [r3, 0x6]\n\ -_0811AC14:\n\ - ldr r3, [r4]\n\ - movs r2, 0x6\n\ - ldrsb r2, [r3, r2]\n\ - ldrb r1, [r3, 0x1]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - adds r1, r0, r5\n\ - ldrb r0, [r1, 0x2]\n\ - cmp r2, r0\n\ - bne _0811AC88\n\ - movs r0, 0x5\n\ - ldrsb r0, [r3, r0]\n\ - cmp r0, 0x2\n\ - ble _0811AC36\n\ - movs r0, 0x2\n\ - strb r0, [r3, 0x5]\n\ -_0811AC36:\n\ - ldr r1, [r4]\n\ - movs r0, 0x1\n\ - strb r0, [r1, 0x4]\n\ - movs r0, 0x3\n\ - b RETURN\n\ - .pool\n\ -_0811AC48_dpad_right:\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x5]\n\ - adds r0, 0x1\n\ - strb r0, [r1, 0x5]\n\ - b _0811ABDA\n\ - .pool\n\ -_0811AC58_dpad_down:\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x6]\n\ - adds r0, 0x1\n\ - b _0811ABD8\n\ - .pool\n\ -_0811AC68_dpad_left:\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x5]\n\ - subs r0, 0x1\n\ - strb r0, [r1, 0x5]\n\ - b _0811ABDA\n\ - .pool\n\ -_0811AC78_b_button:\n\ - bl sub_811B150\n\ - b _0811AC82\n\ -_0811AC7E_start_button:\n\ - bl sub_811B1B4\n\ -_0811AC82:\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - b RETURN\n\ -_0811AC88:\n\ - movs r0, 0x5\n\ - ldrsb r0, [r3, r0]\n\ - cmp r0, 0\n\ - bge _0811AC96\n\ - ldrb r0, [r1, 0x1]\n\ - subs r0, 0x1\n\ - strb r0, [r3, 0x5]\n\ -_0811AC96:\n\ - ldr r3, [r4]\n\ - movs r2, 0x5\n\ - ldrsb r2, [r3, r2]\n\ - ldrb r1, [r3, 0x1]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - adds r0, r6\n\ - ldrb r0, [r0, 0x1]\n\ - cmp r2, r0\n\ - blt _0811ACB0\n\ - movs r0, 0\n\ - strb r0, [r3, 0x5]\n\ -_0811ACB0:\n\ - bl sub_811AB44\n\ - cmp r0, 0\n\ - beq _0811ACCA\n\ - ldr r2, [r7]\n\ - ldr r0, [r2, 0x4]\n\ - ldr r1, =0x00ffff00\n\ - ands r0, r1\n\ - ldr r1, =0x00040100\n\ - cmp r0, r1\n\ - bne _0811ACCA\n\ - movs r0, 0\n\ - strb r0, [r2, 0x5]\n\ -_0811ACCA:\n\ - movs r0, 0x2\n\ -RETURN:\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .pool"); -} -#endif // NONMATCHING - -#ifdef NONMATCHING + static u16 sub_811ACDC(void) { - int numFooterColumns; - - if (gMain.newKeys & A_BUTTON) + do { - switch (gEasyChatScreen->mainCursorColumn) + if (gMain.newKeys & A_BUTTON) + { + switch (gEasyChatScreen->mainCursorColumn) + { + case 0: + return sub_811B184(); + case 1: + return sub_811B150(); + case 2: + return sub_811B1B4(); + case 3: + return sub_811B264(); + } + } + + if (gMain.newKeys & B_BUTTON) { - case 0: - return sub_811B184(); - case 1: return sub_811B150(); - case 2: + } + else if (gMain.newKeys & START_BUTTON) + { return sub_811B1B4(); - case 3: - return sub_811B264(); } - } + else if (gMain.newKeys & DPAD_UP) + { + gEasyChatScreen->mainCursorRow--; + break; + } + else if (gMain.newKeys & DPAD_LEFT) + { + gEasyChatScreen->mainCursorColumn--; + break; + } + else if (gMain.newKeys & DPAD_DOWN) + { + gEasyChatScreen->mainCursorRow = 0; + break; + } + else if (gMain.newKeys & DPAD_RIGHT) + { + gEasyChatScreen->mainCursorColumn++; + break; + } - if (gMain.newKeys & B_BUTTON) - return sub_811B150(); - else if (gMain.newKeys & START_BUTTON) - return sub_811B1B4(); - else if (gMain.newKeys & DPAD_UP) - gEasyChatScreen->mainCursorRow--; - else if (gMain.newKeys & DPAD_LEFT) - gEasyChatScreen->mainCursorColumn--; - else if (gMain.newKeys & DPAD_DOWN) - gEasyChatScreen->mainCursorRow = 0; - else if (gMain.newKeys & DPAD_RIGHT) - gEasyChatScreen->mainCursorColumn++; - else return 0; + } while (0); if (gEasyChatScreen->mainCursorRow == gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows) { - numFooterColumns = sub_811BA3C() ? 4 : 3; + int numFooterColumns = sub_811BA3C() ? 4 : 3; if (gEasyChatScreen->mainCursorColumn < 0) gEasyChatScreen->mainCursorColumn = numFooterColumns - 1; @@ -1100,198 +927,13 @@ static u16 sub_811ACDC(void) if (gEasyChatScreen->mainCursorColumn >= gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns) gEasyChatScreen->mainCursorColumn = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns - 1; - + if (sub_811AB44() && gEasyChatScreen->mainCursorColumn == 1 && gEasyChatScreen->mainCursorRow == 4) gEasyChatScreen->mainCursorColumn = 0; gEasyChatScreen->state = 0; return 2; } -#else -NAKED -static u16 sub_811ACDC(void) -{ - asm_unified("\n\ - push {r4-r6,lr}\n\ - ldr r2, =gMain\n\ - ldrh r1, [r2, 0x2E]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0811AD4A\n\ - ldr r0, =gEasyChatScreen\n\ - ldr r0, [r0]\n\ - ldrb r0, [r0, 0x5]\n\ - lsls r0, 24\n\ - asrs r0, 24\n\ - cmp r0, 0x1\n\ - beq _0811AD3E\n\ - b _0811AD24\n\ - .pool\n\ -_0811AD04:\n\ - movs r0, 0x20\n\ - ands r0, r2\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0\n\ - bne _0811ADE0\n\ - movs r0, 0x80\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - bne _0811ADD0\n\ - movs r0, 0x10\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - bne _0811ADC0\n\ - movs r0, 0\n\ - b _0811AE32\n\ -_0811AD24:\n\ - cmp r0, 0x1\n\ - bgt _0811AD2E\n\ - cmp r0, 0\n\ - beq _0811AD38\n\ - b _0811AD4A\n\ -_0811AD2E:\n\ - cmp r0, 0x2\n\ - beq _0811ADF6\n\ - cmp r0, 0x3\n\ - beq _0811AD44\n\ - b _0811AD4A\n\ -_0811AD38:\n\ - bl sub_811B184\n\ - b _0811ADFA\n\ -_0811AD3E:\n\ - bl sub_811B150\n\ - b _0811ADFA\n\ -_0811AD44:\n\ - bl sub_811B264\n\ - b _0811ADFA\n\ -_0811AD4A:\n\ - ldrh r2, [r2, 0x2E]\n\ - movs r0, 0x2\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - bne _0811ADF0\n\ - movs r0, 0x8\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - bne _0811ADF6\n\ - movs r0, 0x40\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _0811AD04\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x6]\n\ - subs r0, 0x1\n\ - strb r0, [r1, 0x6]\n\ -_0811AD6E:\n\ - adds r6, r2, 0\n\ -_0811AD70:\n\ - adds r5, r6, 0\n\ - ldr r4, [r5]\n\ - movs r3, 0x6\n\ - ldrsb r3, [r4, r3]\n\ - ldr r2, =gEasyChatScreenTemplates\n\ - ldrb r1, [r4, 0x1]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - adds r1, r0, r2\n\ - ldrb r0, [r1, 0x2]\n\ - cmp r3, r0\n\ - bne _0811AE00\n\ - bl sub_811BA3C\n\ - movs r2, 0x3\n\ - cmp r0, 0\n\ - beq _0811AD96\n\ - movs r2, 0x4\n\ -_0811AD96:\n\ - ldr r1, [r5]\n\ - movs r0, 0x5\n\ - ldrsb r0, [r1, r0]\n\ - cmp r0, 0\n\ - bge _0811ADA4\n\ - subs r0, r2, 0x1\n\ - strb r0, [r1, 0x5]\n\ -_0811ADA4:\n\ - ldr r1, [r5]\n\ - movs r0, 0x5\n\ - ldrsb r0, [r1, r0]\n\ - cmp r0, r2\n\ - blt _0811ADB2\n\ - movs r0, 0\n\ - strb r0, [r1, 0x5]\n\ -_0811ADB2:\n\ - movs r0, 0x3\n\ - b _0811AE32\n\ - .pool\n\ -_0811ADC0:\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x5]\n\ - adds r0, 0x1\n\ - strb r0, [r1, 0x5]\n\ - b _0811AD6E\n\ - .pool\n\ -_0811ADD0:\n\ - ldr r1, =gEasyChatScreen\n\ - ldr r0, [r1]\n\ - strb r3, [r0, 0x6]\n\ - adds r6, r1, 0\n\ - b _0811AD70\n\ - .pool\n\ -_0811ADE0:\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x5]\n\ - subs r0, 0x1\n\ - strb r0, [r1, 0x5]\n\ - b _0811AD6E\n\ - .pool\n\ -_0811ADF0:\n\ - bl sub_811B150\n\ - b _0811ADFA\n\ -_0811ADF6:\n\ - bl sub_811B1B4\n\ -_0811ADFA:\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - b _0811AE32\n\ -_0811AE00:\n\ - movs r0, 0x5\n\ - ldrsb r0, [r4, r0]\n\ - ldrb r1, [r1, 0x1]\n\ - cmp r0, r1\n\ - blt _0811AE0E\n\ - subs r0, r1, 0x1\n\ - strb r0, [r4, 0x5]\n\ -_0811AE0E:\n\ - bl sub_811AB44\n\ - cmp r0, 0\n\ - beq _0811AE28\n\ - ldr r2, [r6]\n\ - ldr r0, [r2, 0x4]\n\ - ldr r1, =0x00ffff00\n\ - ands r0, r1\n\ - ldr r1, =0x00040100\n\ - cmp r0, r1\n\ - bne _0811AE28\n\ - movs r0, 0\n\ - strb r0, [r2, 0x5]\n\ -_0811AE28:\n\ - ldr r0, =gEasyChatScreen\n\ - ldr r1, [r0]\n\ - movs r0, 0\n\ - strb r0, [r1, 0x4]\n\ - movs r0, 0x2\n\ -_0811AE32:\n\ - pop {r4-r6}\n\ - pop {r1}\n\ - bx r1\n\ - .pool"); -} -#endif // NONMATCHING static u16 sub_811AE44(void) { @@ -1617,7 +1259,7 @@ static int sub_811B2B0(void) var1 = sub_811F5B0(); if (var1 == 0) return 0; - + gEasyChatScreen->unk_0f = (var1 - 1) / 2; gEasyChatScreen->unk_0e = 0; gEasyChatScreen->unk_10 = 0; @@ -1984,7 +1626,7 @@ static u16 sub_811B794(u32 arg0) gEasyChatScreen->unk_0e += 4; if (gEasyChatScreen->unk_0e > gEasyChatScreen->unk_0f - 3) gEasyChatScreen->unk_0e = gEasyChatScreen->unk_0f + 0xFD; - + sub_811B9A0(); return 22; } @@ -2287,7 +1929,7 @@ static int sub_811BD64(void) if (gEasyChatScreen->kind == 17) return sub_811BCF4(); - + saveBlock1 = gSaveBlock1Ptr; for (i = 0; i < 9; i++) { @@ -2401,7 +2043,7 @@ int sub_811BF88(int easyChatWord) static bool8 sub_811BF8C(void) { if (!sub_811CE94()) - return 0; + return 0; else return 1; } @@ -2555,7 +2197,7 @@ static bool8 sub_811C30C(void) int trueStringWidth; u8 var2; u8 sp0[64]; - + ecWordBuffer = sub_811BA94(); var0 = sub_811BA68(); cursorColumn = sub_811BAB8(); @@ -2775,7 +2417,7 @@ static bool8 sub_811C6C0(void) if (!sub_811DAA4() && !sub_811E5B8()) { sub_811D6D4(); - gUnknown_0203A11C->unk0++; + gUnknown_0203A11C->unk0++; } break; case 2: @@ -3517,7 +3159,7 @@ static void sub_811D424(u16 *tilemap) x++; for (; x < right; x++) tilemap[y * 32 + x] = 0x1000; - + tilemap[y* 32 + x] = 0x1007; } } @@ -4456,10 +4098,10 @@ u16 EasyChat_GetNumWordsInGroup(u8 groupId) { if (groupId == EC_GROUP_POKEMON) return GetNationalPokedexCount(FLAG_GET_SEEN); - + if (sub_811EA28(groupId)) - return gEasyChatGroups[groupId].numEnabledWords; - + return gEasyChatGroups[groupId].numEnabledWords; + return 0; } @@ -4472,7 +4114,7 @@ bool8 sub_811EAA4(u16 easyChatWord) const u16 *list; if (easyChatWord == 0xFFFF) return FALSE; - + groupId = EC_GROUP(easyChatWord); index = EC_INDEX(easyChatWord); if (groupId >= EC_NUM_GROUPS) -- cgit v1.2.3 From b60611c38e904dac5c83f76fc2fbb880baaf0d33 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 26 Feb 2019 11:17:41 -0600 Subject: Finish decompiling easy_chat.c code --- src/easy_chat.c | 464 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 443 insertions(+), 21 deletions(-) (limited to 'src/easy_chat.c') diff --git a/src/easy_chat.c b/src/easy_chat.c index 3fdc88823..6a103dd7b 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -141,9 +141,26 @@ struct EasyChatGroup u16 numEnabledWords; }; +struct Unk203A120 +{ + u16 unk0; + u16 unk2[EC_NUM_GROUPS]; + u16 unk2E[27]; + u16 unk64[27][270]; + u8 filler3958[0x2C]; + u16 unk3984[0x10E]; + u16 unk3BA0; +}; /*size = 0x3BA4*/ + +struct EasyChatWordsByLetter +{ + const u16 *words; + int numWords; +}; + EWRAM_DATA struct EasyChatScreen *gEasyChatScreen = NULL; EWRAM_DATA struct Unk203A11C *gUnknown_0203A11C = 0; -EWRAM_DATA void *gUnknown_0203A120 = 0; +EWRAM_DATA struct Unk203A120 *gUnknown_0203A120 = 0; static void sub_811A2C0(u8); static void sub_811A278(void); @@ -178,9 +195,9 @@ static bool8 sub_811BFA4(void); static void sub_811C13C(void); static void sub_811C158(u16); static bool8 sub_811C170(void); -bool8 sub_811F28C(void); -void sub_811F2B8(void); -u8 sub_811F3AC(void); +static bool8 sub_811F28C(void); +static void sub_811F2B8(void); +static u8 sub_811F3AC(void); int sub_811BA3C(void); int sub_811B184(void); int sub_811B264(void); @@ -202,13 +219,13 @@ static int sub_811BDB0(void); static int sub_811BD2C(void); int sub_811BCF4(void); static u16 sub_811B8E8(void); -int sub_811F3B8(u8); -void sub_811F548(int, u16); +static u8 sub_811F3B8(u8); +static void sub_811F548(int, u16); static int sub_811B908(void); -u16 sub_811F5B0(void); +static u16 sub_811F5B0(void); static void sub_811B488(u16); u16 sub_811B940(void); -u16 sub_811F578(u16); +static u16 sub_811F578(u16); int sub_811BF88(int); static u16 sub_811B8C8(void); static int sub_811B568(u32); @@ -310,7 +327,7 @@ static void sub_811DD84(void); static void sub_811D6F4(void); static void sub_811D758(void); static void sub_811D794(void); -const u8 *sub_811F424(u8); +static const u8 *GetEasyChatWordGroupName(u8); static void sub_811D864(u8, u8); static void sub_811D950(u8, u8); static void sub_811DADC(u8); @@ -319,9 +336,16 @@ static void sub_811E0EC(s8, s8); static void sub_811E1A4(s8, s8); static void sub_811E2DC(struct Sprite *); static void sub_811E34C(u8, u8); -bool8 sub_811F0F8(void); -u16 sub_811F108(void); -u8 *CopyEasyChatWordPadded(u8 *, u16, u16); +static bool8 sub_811F0F8(void); +static u16 sub_811F108(void); +static void sub_811F2D4(void); +static void sub_811F46C(void); +static u8 *CopyEasyChatWordPadded(u8 *, u16, u16); +static u8 sub_811F860(u16); +static u16 sub_811F5C4(u16); +static u16 sub_811F6B8(u16); +bool8 sub_811F764(u16, u8); +static int sub_811F838(u16); extern const struct { u16 word; @@ -356,6 +380,13 @@ extern const u8 gUnknown_08597D08[]; extern const u8 gUnknown_08597E60[][4]; extern const u8 *const gUnknown_08597E6C[][4]; extern const struct EasyChatGroup gEasyChatGroups[]; +extern const u16 gUnknown_0859E62C[]; +extern const u16 gUnknown_0859E634[]; +extern const u16 gUnknown_0859E640[]; +extern const u16 gUnknown_0859E64C[]; +extern const u8 *const gEasyChatGroupNamePointers[]; +extern const struct EasyChatWordsByLetter gEasyChatWordsByLetterPointers[]; +extern const u16 gUnknown_0859E658[1]; void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) { @@ -1248,8 +1279,8 @@ static int sub_811B2B0(void) if (gEasyChatScreen->unk_09 == 0) { - u8 var0 = sub_811F3B8(sub_811B8E8()); - sub_811F548(0, var0); + u8 groupId = sub_811F3B8(sub_811B8E8()); + sub_811F548(0, groupId); } else { @@ -3265,14 +3296,14 @@ static void sub_811D6F4(void) { for (x = 0; x < 2; x++) { - u8 index = sub_811F3B8(i++); - if (index == 22) + u8 groupId = sub_811F3B8(i++); + if (groupId == EC_NUM_GROUPS) { sub_811DDAC(sub_811BBBC(), 0); return; } - sub_811D028(2, 1, sub_811F424(index), x * 84 + 10, y, 0xFF, NULL); + sub_811D028(2, 1, GetEasyChatWordGroupName(groupId), x * 84 + 10, y, 0xFF, NULL); } y += 16; @@ -4077,7 +4108,7 @@ static void sub_811E948(void) PutWindowTilemap(windowId); } -bool8 sub_811EA28(u8 groupId) +static bool8 sub_811EA28(u8 groupId) { switch (groupId) { @@ -4397,10 +4428,10 @@ void sub_811EF6C(void) CopyEasyChatWord(gStringVar2, easyChatWord); } -u8 sub_811EF98(u8 additionalPhraseId) +static bool8 sub_811EF98(u8 additionalPhraseId) { int byteOffset = additionalPhraseId / 8; - int shift = additionalPhraseId & 0x7; + int shift = additionalPhraseId % 8; return (gSaveBlock1Ptr->additionalPhrases[byteOffset] >> shift) & 1; } @@ -4409,7 +4440,7 @@ void sub_811EFC0(u8 additionalPhraseId) if (additionalPhraseId < 33) { int byteOffset = additionalPhraseId / 8; - int shift = additionalPhraseId & 0x7; + int shift = additionalPhraseId % 8; gSaveBlock1Ptr->additionalPhrases[byteOffset] |= 1 << shift; } } @@ -4427,3 +4458,394 @@ u8 sub_811EFF0(void) return numAdditionalPhrasesUnlocked; } + +u16 sub_811F01C(void) +{ + u16 i; + u16 additionalPhraseId; + u8 numAdditionalPhrasesUnlocked = sub_811EFF0(); + if (numAdditionalPhrasesUnlocked == 33) + return 0xFFFF; + + additionalPhraseId = Random() % (33 - numAdditionalPhrasesUnlocked); + for (i = 0; i < 33; i++) + { + if (!sub_811EF98(i)) + { + if (additionalPhraseId) + { + additionalPhraseId--; + } + else + { + sub_811EFC0(i); + return EC_WORD(EC_GROUP_TRENDY_SAYING, i); + } + } + } + + return 0xFFFF; +} + +u16 sub_811F090(void) +{ + u16 i; + u16 additionalPhraseId = sub_811EFF0(); + if (additionalPhraseId == 0) + return 0xFFFF; + + additionalPhraseId = Random() % additionalPhraseId; + for (i = 0; i < 33; i++) + { + if (sub_811EF98(i)) + { + if (additionalPhraseId) + additionalPhraseId--; + else + return EC_WORD(EC_GROUP_TRENDY_SAYING, i); + } + } + + return 0xFFFF; +} + +static bool8 sub_811F0F8(void) +{ + return IsNationalPokedexEnabled(); +} + +static u16 sub_811F108(void) +{ + u16 i; + u16 numWords; + const u16 *species; + u16 index = EasyChat_GetNumWordsInGroup(EC_GROUP_POKEMON); + if (index == 0) + return 0xFFFF; + + index = Random() % index; + species = gEasyChatGroups[EC_GROUP_POKEMON].wordData.valueList; + numWords = gEasyChatGroups[EC_GROUP_POKEMON].numWords; + for (i = 0; i < numWords; i++) + { + u16 dexNum = SpeciesToNationalPokedexNum(*species); + if (GetSetPokedexFlag(dexNum, FLAG_GET_SEEN)) + { + if (index) + index--; + else + return EC_WORD(EC_GROUP_POKEMON, *species); + } + + species++; + } + + return 0xFFFF; +} + +void InitEasyChatPhrases(void) +{ + u16 i, j; + + for (i = 0; i < 4; i++) + gSaveBlock1Ptr->unk2BB0[i] = gUnknown_0859E62C[i]; + + for (i = 0; i < 6; i++) + gSaveBlock1Ptr->unk2BBC[i] = gUnknown_0859E634[i]; + + for (i = 0; i < 6; i++) + gSaveBlock1Ptr->unk2BC8[i] = gUnknown_0859E640[i]; + + for (i = 0; i < 6; i++) + gSaveBlock1Ptr->unk2BD4[i] = gUnknown_0859E64C[i]; + + for (i = 0; i < MAIL_COUNT; i++) + { + for (j = 0; j < MAIL_WORDS_COUNT; j++) + gSaveBlock1Ptr->mail[i].words[j] = 0xFFFF; + } + + // BUG: This is supposed to clear 64 bits, but this loop is clearing 64 bytes. + // However, this bug has no resulting effect on gameplay because only the + // Mauville old man data is corrupted, which is initialized directly after + // this function is called when starting a new game. + for (i = 0; i < 64; i++) + gSaveBlock1Ptr->additionalPhrases[i] = 0; +} + +static bool8 sub_811F28C(void) +{ + gUnknown_0203A120 = Alloc(sizeof(*gUnknown_0203A120)); + if (!gUnknown_0203A120) + return FALSE; + + sub_811F2D4(); + sub_811F46C(); + return TRUE; +} + +static void sub_811F2B8(void) +{ + if (gUnknown_0203A120) + FREE_AND_SET_NULL(gUnknown_0203A120); +} + +static void sub_811F2D4(void) +{ + int i; + + gUnknown_0203A120->unk0 = 0; + if (GetNationalPokedexCount(FLAG_GET_SEEN)) + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_POKEMON; + + for (i = EC_GROUP_TRAINER; i <= EC_GROUP_ADJECTIVES; i++) + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = i; + + if (FlagGet(FLAG_SYS_GAME_CLEAR)) + { + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_EVENTS; + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_MOVE_1; + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_MOVE_2; + } + + if (FlagGet(FLAG_SYS_HIPSTER_MEET)) + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_TRENDY_SAYING; + + if (IsNationalPokedexEnabled()) + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_POKEMON_2; +} + +static u8 sub_811F3AC(void) +{ + return gUnknown_0203A120->unk0; +} + +static u8 sub_811F3B8(u8 index) +{ + if (index >= gUnknown_0203A120->unk0) + return EC_NUM_GROUPS; + else + return gUnknown_0203A120->unk2[index]; +} + +u8 *unref_sub_811F3E0(u8 *dest, u8 groupId, u16 totalChars) +{ + u16 i; + u8 *str = StringCopy(dest, gEasyChatGroupNamePointers[groupId]); + for (i = str - dest; i < totalChars; i++) + { + *str = CHAR_SPACE; + str++; + } + + *str = EOS; + return str; +} + +static const u8 *GetEasyChatWordGroupName(u8 groupId) +{ + return gEasyChatGroupNamePointers[groupId]; +} + +static u8 *CopyEasyChatWordPadded(u8 *dest, u16 easyChatWord, u16 totalChars) +{ + u16 i; + u8 *str = CopyEasyChatWord(dest, easyChatWord); + for (i = str - dest; i < totalChars; i++) + { + *str = CHAR_SPACE; + str++; + } + + *str = EOS; + return str; +} + +static void sub_811F46C(void) +{ + int i, j, k; + int numWords; + const u16 *words; + u16 numToProcess; + int index; + + for (i = 0; i < 27; i++) + { + numWords = gEasyChatWordsByLetterPointers[i].numWords; + words = gEasyChatWordsByLetterPointers[i].words; + gUnknown_0203A120->unk2E[i] = 0; + index = 0; + for (j = 0; j < numWords; j++) + { + if (*words == 0xFFFF) + { + words++; + numToProcess = *words; + words++; + j += 1 + numToProcess; + } + else + { + numToProcess = 1; + } + + for (k = 0; k < numToProcess; k++) + { + if (sub_811F860(words[k])) + { + gUnknown_0203A120->unk64[i][index++] = words[k]; + gUnknown_0203A120->unk2E[i]++; + break; + } + } + + words += numToProcess; + } + } +} + +static void sub_811F548(int arg0, u16 groupId) +{ + if (!arg0) + gUnknown_0203A120->unk3BA0 = sub_811F5C4(groupId); + else + gUnknown_0203A120->unk3BA0 = sub_811F6B8(groupId); +} + +static u16 sub_811F578(u16 arg0) +{ + if (arg0 >= gUnknown_0203A120->unk3BA0) + return 0xFFFF; + else + return gUnknown_0203A120->unk3984[arg0]; +} + +static u16 sub_811F5B0(void) +{ + return gUnknown_0203A120->unk3BA0; +} + +static u16 sub_811F5C4(u16 groupId) +{ + u32 i; + int totalWords; + const u16 *list; + const struct EasyChatWordInfo *wordInfo; + u16 numWords = gEasyChatGroups[groupId].numWords; + + if (groupId == EC_GROUP_POKEMON || groupId == EC_GROUP_POKEMON_2 + || groupId == EC_GROUP_MOVE_1 || groupId == EC_GROUP_MOVE_2) + { + list = gEasyChatGroups[groupId].wordData.valueList; + for (i = 0, totalWords = 0; i < numWords; i++) + { + if (sub_811F764(list[i], groupId)) + gUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, list[i]); + } + + return totalWords; + } + else + { + wordInfo = gEasyChatGroups[groupId].wordData.words; + for (i = 0, totalWords = 0; i < numWords; i++) + { + u16 alphabeticalOrder = wordInfo[i].alphabeticalOrder; + if (sub_811F764(alphabeticalOrder, groupId)) + gUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, alphabeticalOrder); + } + + return totalWords; + } +} + +static u16 sub_811F6B8(u16 alphabeticalGroup) +{ + u16 i; + u16 totalWords; + + for (i = 0, totalWords = 0; i < gUnknown_0203A120->unk2E[alphabeticalGroup]; i++) + gUnknown_0203A120->unk3984[totalWords++] = gUnknown_0203A120->unk64[alphabeticalGroup][i]; + + return totalWords; +} + +static bool8 sub_811F72C(u8 arg0) +{ + int i; + for (i = 0; i < gUnknown_0203A120->unk0; i++) + { + if (gUnknown_0203A120->unk2[i] == arg0) + return TRUE; + } + + return FALSE; +} + +bool8 sub_811F764(u16 wordIndex, u8 groupId) +{ + switch (groupId) + { + case EC_GROUP_POKEMON: + return GetSetPokedexFlag(SpeciesToNationalPokedexNum(wordIndex), FLAG_GET_SEEN); + case EC_GROUP_POKEMON_2: + if (sub_811F838(wordIndex)) + GetSetPokedexFlag(SpeciesToNationalPokedexNum(wordIndex), FLAG_GET_SEEN); + return TRUE; + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + return TRUE; + case EC_GROUP_TRENDY_SAYING: + return sub_811EF98(wordIndex); + default: + return gEasyChatGroups[groupId].wordData.words[wordIndex].enabled; + } +} + +static int sub_811F838(u16 species) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(gUnknown_0859E658); i++) + { + if (gUnknown_0859E658[i] == species) + return TRUE; + } + + return FALSE; +} + +static u8 sub_811F860(u16 easyChatWord) +{ + u8 groupId = EC_GROUP(easyChatWord); + u32 index = EC_INDEX(easyChatWord); + if (!sub_811F72C(groupId)) + return FALSE; + else + return sub_811F764(index, groupId); +} + +void InitializeEasyChatWordArray(u16 *words, u16 length) +{ + u16 i; + for (i = length - 1; i != 0xFFFF; i--) + *(words++) = 0xFFFF; +} + +void sub_811F8BC(void) +{ + int i; + u16 *words = GetSaveBlock1Field3564(); + for (i = 0; i < 4; i++) + words[i] = 0xFFFF; +} + +bool32 sub_811F8D8(int easyChatWord) +{ + int groupId = EC_GROUP(easyChatWord); + int mask = 0x7F; + int index = EC_INDEX(easyChatWord); + if (!sub_811EA28(groupId & mask)) + return FALSE; + else + return sub_811F764(index, groupId & mask); +} -- cgit v1.2.3 From 231355f84dccd11329d81d074fa36135cfad4f94 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 26 Feb 2019 11:24:12 -0600 Subject: Decompile easy_chat data --- src/easy_chat.c | 1145 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 917 insertions(+), 228 deletions(-) (limited to 'src/easy_chat.c') diff --git a/src/easy_chat.c b/src/easy_chat.c index 6a103dd7b..3c436246d 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -1,5 +1,3 @@ - -// Includes #include "global.h" #include "alloc.h" #include "bard_music.h" @@ -33,6 +31,7 @@ #include "constants/event_objects.h" #include "constants/flags.h" #include "constants/songs.h" +#include "constants/species.h" #define EZCHAT_TASK_STATE 0 #define EZCHAT_TASK_KIND 1 @@ -41,123 +40,6 @@ #define EZCHAT_TASK_UNK06 6 #define EZCHAT_TASK_SIZE 7 -struct EasyChatScreenTemplate -{ - u8 unk_00; - u8 numColumns; - u8 numRows; - u8 unk_03_0:7; - u8 unk_03_7:1; - const u8 *titleText; - const u8 *instructionsText1; - const u8 *instructionsText2; - const u8 *confirmText1; - const u8 *confirmText2; -}; - -struct EasyChatScreen -{ - /*0x00*/ u8 kind; - /*0x01*/ u8 templateId; - /*0x02*/ u8 numColumns; - /*0x03*/ u8 numRows; - /*0x04*/ u8 state; - /*0x05*/ s8 mainCursorColumn; - /*0x06*/ s8 mainCursorRow; - /*0x07*/ u8 unk_07; - /*0x08*/ u8 unk_08; - /*0x09*/ u8 unk_09; - /*0x0A*/ s8 unk_0a; - /*0x0B*/ s8 unk_0b; - /*0x0C*/ u8 unk_0c; - /*0x0D*/ u8 unk_0d; - /*0x0E*/ u8 unk_0e; - /*0x0F*/ u8 unk_0f; - /*0x10*/ s8 unk_10; - /*0x11*/ s8 unk_11; - /*0x12*/ u8 sizeParam; - /*0x13*/ u8 unk_13; - /*0x14*/ u8 unk_14[0x20]; - /*0x34*/ const u8 *titleText; - /*0x38*/ u16 *words; - /*0x3C*/ u16 ecWordBuffer[9]; -}; - -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 Unk08597C30 -{ - u8 unk0_0:5; - u8 unk0_5:3; - u8 unk1; - u8 unk2; - u8 unk3; -}; - -struct EasyChatWordInfo -{ - const u8 *text; - int alphabeticalOrder; - int enabled; -}; - -typedef union -{ - const u16 *valueList; - const struct EasyChatWordInfo *words; -} EasyChatGroupWordData; - -struct EasyChatGroup -{ - EasyChatGroupWordData wordData; - u16 numWords; - u16 numEnabledWords; -}; - -struct Unk203A120 -{ - u16 unk0; - u16 unk2[EC_NUM_GROUPS]; - u16 unk2E[27]; - u16 unk64[27][270]; - u8 filler3958[0x2C]; - u16 unk3984[0x10E]; - u16 unk3BA0; -}; /*size = 0x3BA4*/ - -struct EasyChatWordsByLetter -{ - const u16 *words; - int numWords; -}; - EWRAM_DATA struct EasyChatScreen *gEasyChatScreen = NULL; EWRAM_DATA struct Unk203A11C *gUnknown_0203A11C = 0; EWRAM_DATA struct Unk203A120 *gUnknown_0203A120 = 0; @@ -169,7 +51,6 @@ static void sub_811A2FC(u8); static void sub_811A4D0(MainCallback); static bool32 sub_811A88C(u16); static void sub_811A8A4(u16); -void sub_811A8F0(void); static bool8 EasyChat_AllocateResources(u8, u16 *, u8); static void EasyChat_FreeResources(void); static u16 sub_811AAAC(void); @@ -185,11 +66,11 @@ static u16 sub_811B0BC(void); static u16 sub_811B0E8(void); static u16 sub_811B0F8(void); static u16 sub_811B150(void); -u16 sub_811B1B4(void); -u8 sub_811BA68(void); +static u16 sub_811B1B4(void); +static u8 sub_811BA68(void); static u8 sub_811BCC8(u8); static void sub_811BDF0(u8 *); -void sub_811BF78(void); +static void sub_811BF78(void); static bool8 sub_811BF8C(void); static bool8 sub_811BFA4(void); static void sub_811C13C(void); @@ -198,9 +79,9 @@ static bool8 sub_811C170(void); static bool8 sub_811F28C(void); static void sub_811F2B8(void); static u8 sub_811F3AC(void); -int sub_811BA3C(void); -int sub_811B184(void); -int sub_811B264(void); +static int sub_811BA3C(void); +static int sub_811B184(void); +static int sub_811B264(void); static int sub_811B32C(void); static int sub_811B2B0(void); static int sub_811B33C(void); @@ -217,16 +98,16 @@ static void sub_811B454(void); static int sub_811BD64(void); static int sub_811BDB0(void); static int sub_811BD2C(void); -int sub_811BCF4(void); +static int sub_811BCF4(void); static u16 sub_811B8E8(void); static u8 sub_811F3B8(u8); static void sub_811F548(int, u16); static int sub_811B908(void); static u16 sub_811F5B0(void); static void sub_811B488(u16); -u16 sub_811B940(void); +static u16 sub_811B940(void); static u16 sub_811F578(u16); -int sub_811BF88(int); +static int sub_811BF88(int); static u16 sub_811B8C8(void); static int sub_811B568(u32); static int sub_811B634(u32); @@ -253,6 +134,7 @@ static void sub_811D2C8(void); static void sub_811D684(void); static void sub_811DE90(void); static void sub_811DEC4(void); +static void sub_811DF28(struct Sprite *); static void sub_811DE5C(u8, u8, u8, u8); static void sub_811E5D4(void); static void sub_811E720(void); @@ -322,7 +204,7 @@ static void sub_811D7C8(void); static int sub_811DE48(void); static void sub_811D7EC(void); static void sub_811D830(void); -void sub_811D058(u8, u8, const u8 *, u8, u8, u8, u8, u8, u8); +static void sub_811D058(u8, u8, const u8 *, u8, u8, u8, u8, u8, u8); static void sub_811DD84(void); static void sub_811D6F4(void); static void sub_811D758(void); @@ -344,49 +226,856 @@ static u8 *CopyEasyChatWordPadded(u8 *, u16, u16); static u8 sub_811F860(u16); static u16 sub_811F5C4(u16); static u16 sub_811F6B8(u16); -bool8 sub_811F764(u16, u8); +static bool8 sub_811F764(u16, u8); static int sub_811F838(u16); +static void sub_811A8CC(void); +static void sub_811A8F0(void); +static void sub_811A914(void); +static void sub_811A938(void); -extern const struct { +struct Unk8597530 +{ u16 word; MainCallback callback; -} gUnknown_08597530[4]; - -extern const struct EasyChatScreenTemplate gEasyChatScreenTemplates[21]; -extern const u8 gUnknown_08597748[][7]; -extern const u16 gUnknown_08597764[]; -extern const u16 gUnknown_0859776C[][2]; -extern const struct BgTemplate gUnknown_08597C54[4]; -extern const struct WindowTemplate gUnknown_08597C64[]; -extern const u32 gUnknown_08597B54[]; -extern const struct Unk08597C30 gUnknown_08597C30[]; -extern const u16 gUnknown_08597B14[]; -extern const u16 gUnknown_08597B34[]; -extern const u16 gUnknown_08597C1C[]; -extern const u16 gUnknown_08597C24[]; -extern const struct WindowTemplate gUnknown_08597C84; -extern const u8 gUnknown_08597C8C[4]; -extern const u8 *const gUnknown_08597C90[4]; -extern const struct SpriteSheet gUnknown_08597CA0[]; -extern const struct SpritePalette gUnknown_08597CC0[]; -extern const struct CompressedSpriteSheet gUnknown_08597CE8[]; -extern const struct SpriteTemplate gUnknown_08597D18; -extern const struct SpriteTemplate gUnknown_08597D68; -extern const struct SpriteTemplate gUnknown_08597DF0; -extern const struct SpriteTemplate gUnknown_08597DD0; -extern const struct SpriteTemplate gUnknown_08597E48; -extern const struct SpriteTemplate gUnknown_08597E30; -extern const u8 gUnknown_08597D08[]; -extern const u8 gUnknown_08597E60[][4]; -extern const u8 *const gUnknown_08597E6C[][4]; -extern const struct EasyChatGroup gEasyChatGroups[]; -extern const u16 gUnknown_0859E62C[]; -extern const u16 gUnknown_0859E634[]; -extern const u16 gUnknown_0859E640[]; -extern const u16 gUnknown_0859E64C[]; -extern const u8 *const gEasyChatGroupNamePointers[]; -extern const struct EasyChatWordsByLetter gEasyChatWordsByLetterPointers[]; -extern const u16 gUnknown_0859E658[1]; +}; + +static const struct Unk8597530 sUnknown_08597530[] = { + { + .word = 26, + .callback = sub_811A8CC, + }, + { + .word = 25, + .callback = sub_811A8F0, + }, + { + .word = 28, + .callback = sub_811A914, + }, + { + .word = 27, + .callback = sub_811A938, + }, +}; +static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { + { + .unk_00 = 0, + .numColumns = 2, + .numRows = 2, + .unk_03_0 = 0, + .unk_03_7 = 0, + .titleText = gText_Profile, + .instructionsText1 = gText_CombineFourWordsOrPhrases, + .instructionsText2 = gText_AndMakeYourProfile, + .confirmText1 = gText_YourProfile, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 1, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_AtTheBattlesStart, + .instructionsText1 = gText_CombineSixWordsOrPhrases, + .instructionsText2 = gText_AndMakeAMessage, + .confirmText1 = gText_YourFeelingAtTheBattlesStart, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 2, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_UponWinningABattle, + .instructionsText1 = gText_CombineSixWordsOrPhrases, + .instructionsText2 = gText_AndMakeAMessage, + .confirmText1 = gText_WhatYouSayIfYouWin, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 3, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_UponLosingABattle, + .instructionsText1 = gText_CombineSixWordsOrPhrases, + .instructionsText2 = gText_AndMakeAMessage, + .confirmText1 = gText_WhatYouSayIfYouLose, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 4, + .numColumns = 2, + .numRows = 5, + .unk_03_0 = 2, + .unk_03_7 = 0, + .titleText = NULL, + .instructionsText1 = gText_CombineNineWordsOrPhrases, + .instructionsText2 = gText_AndMakeAMessage2, + .confirmText1 = gText_TheMailMessage, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 5, + .numColumns = 2, + .numRows = 2, + .unk_03_0 = 5, + .unk_03_7 = 0, + .titleText = gText_Interview, + .instructionsText1 = gText_CombineFourWordsOrPhrases, + .instructionsText2 = gText_LetsReplyToTheInterview, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 6, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_TheBardsSong, + .instructionsText1 = gText_ChangeJustOneWordOrPhrase, + .instructionsText2 = gText_AndImproveTheBardsSong, + .confirmText1 = gText_TheBardsSong2, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 7, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 4, + .unk_03_7 = 0, + .titleText = gText_Interview, + .instructionsText1 = gText_FindWordsThatDescribeYour, + .instructionsText2 = gText_FeelingsRightNow, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 9, + .numColumns = 2, + .numRows = 1, + .unk_03_0 = 3, + .unk_03_7 = 0, + .titleText = gText_WhatsHipAndHappening, + .instructionsText1 = gText_CombineTwoWordsOrPhrases, + .instructionsText2 = gText_AndMakeATrendySaying, + .confirmText1 = gText_TheTrendySaying, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 16, + .numColumns = 2, + .numRows = 5, + .unk_03_0 = 7, + .unk_03_7 = 1, + .titleText = NULL, + .instructionsText1 = gText_AfterYouHaveReadTheQuiz, + .instructionsText2 = gText_QuestionPressTheAButton, + .confirmText1 = NULL, + .confirmText2 = NULL, + }, + { + .unk_00 = 15, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 6, + .unk_03_7 = 1, + .titleText = gText_TheQuizAnswerIs, + .instructionsText1 = gText_OutOfTheListedChoices, + .instructionsText2 = gText_SelectTheAnswerToTheQuiz, + .confirmText1 = gText_TheAnswerColon, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 17, + .numColumns = 2, + .numRows = 5, + .unk_03_0 = 8, + .unk_03_7 = 1, + .titleText = NULL, + .instructionsText1 = gText_CombineNineWordsOrPhrases, + .instructionsText2 = gText_AndCreateAQuiz, + .confirmText1 = gText_IsThisQuizOK, + .confirmText2 = NULL, + }, + { + .unk_00 = 18, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 6, + .unk_03_7 = 1, + .titleText = gText_TheQuizAnswerIs, + .instructionsText1 = gText_PickAWordOrPhraseAnd, + .instructionsText2 = gText_SetTheQuizAnswer, + .confirmText1 = gText_IsThisQuizOK, + .confirmText2 = NULL, + }, + { + .unk_00 = 6, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_TheBardsSong, + .instructionsText1 = gText_ChangeJustOneWordOrPhrase, + .instructionsText2 = gText_AndImproveTheBardsSong, + .confirmText1 = gText_TheBardsSong2, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 19, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_ApprenticesPhrase, + .instructionsText1 = gText_FindWordsWhichFit, + .instructionsText2 = gText_TheTrainersImage, + .confirmText1 = gText_ApprenticePhrase, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 13, + .numColumns = 2, + .numRows = 1, + .unk_03_0 = 3, + .unk_03_7 = 0, + .titleText = gText_GoodSaying, + .instructionsText1 = gText_CombineTwoWordsOrPhrases2, + .instructionsText2 = gText_ToTeachHerAGoodSaying, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 10, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 4, + .unk_03_7 = 0, + .titleText = gText_Interview, + .instructionsText1 = gText_FindWordsThatDescribeYour, + .instructionsText2 = gText_FeelingsRightNow, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 12, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 4, + .unk_03_7 = 0, + .titleText = gText_Interview, + .instructionsText1 = gText_FindWordsThatDescribeYour, + .instructionsText2 = gText_FeelingsRightNow, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 11, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 4, + .unk_03_7 = 0, + .titleText = gText_Interview, + .instructionsText1 = gText_FindWordsThatDescribeYour, + .instructionsText2 = gText_FeelingsRightNow, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 14, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 4, + .unk_03_7 = 0, + .titleText = gText_FansQuestion, + .instructionsText1 = gText_FindWordsWhichFit, + .instructionsText2 = gText_TheTrainersImage, + .confirmText1 = gText_TheImage, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 20, + .numColumns = 2, + .numRows = 2, + .unk_03_0 = 0, + .unk_03_7 = 0, + .titleText = gText_Questionnaire, + .instructionsText1 = gText_CombineFourWordsOrPhrases, + .instructionsText2 = gText_AndFillOutTheQuestionnaire, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, +}; + +static const u8 sUnknown_08597748[][7] = { + { 1, 2, 3, 4, 5, 6, 0}, + { 7, 8, 9, 10, 11, 12, 0}, + {13, 14, 15, 16, 17, 18, 19}, + {20, 21, 22, 23, 24, 25, 26}, +}; + +static const u16 sMysteryGiftPhrase[] = { + EC_WORD_LINK, + EC_WORD_TOGETHER, + EC_WORD_WITH, + EC_WORD_ALL, +}; + +static const u16 sBerryMasterWifePhrases[][2] = { + {EC_WORD_GREAT, EC_WORD_BATTLE}, + {EC_WORD_CHALLENGE, EC_WORD_CONTEST}, + {EC_WORD_OVERWHELMING, EC_POKEMON(LATIAS)}, + {EC_WORD_COOL, EC_POKEMON(LATIOS)}, + {EC_WORD_SUPER, EC_WORD_HUSTLE}, +}; + +static const u16 sUnknown_08597780[] = INCBIN_U16("graphics/misc/interview_triangle_cursor.gbapal"); +static const u32 sUnknown_085977A0[] = INCBIN_U32("graphics/misc/interview_triangle_cursor.4bpp"); +static const u32 sUnknown_085977C0[] = INCBIN_U32("graphics/misc/interview_arrow.4bpp"); +static const u32 sUnknown_085978C0[] = INCBIN_U32("graphics/misc/interview_buttons.4bpp"); +static const u16 sUnknown_085979C0[] = INCBIN_U16("graphics/misc/interview_frame.gbapal"); +static const u32 sUnknown_085979E0[] = INCBIN_U32("graphics/misc/interview_frame.4bpp.lz"); +static const u16 sUnknown_08597B14[] = INCBIN_U16("graphics/misc/interview_frame_orange.gbapal"); +static const u16 sUnknown_08597B34[] = INCBIN_U16("graphics/misc/interview_frame_green.gbapal"); +static const u32 sUnknown_08597B54[] = INCBIN_U32("graphics/misc/interview_frame_2.4bpp.lz"); +static const u16 sUnknown_08597C1C[] = INCBIN_U16("graphics/misc/8597C1C.gbapal"); +static const u16 sUnknown_08597C24[] = INCBIN_U16("graphics/misc/8597C24.gbapal"); + +static const struct Unk08597C30 gUnknown_08597C30[] = { + { + .unk0_0 = 3, + .unk0_5 = 4, + .unk1 = 24, + .unk2 = 4, + .unk3 = 0, + }, + { + .unk0_0 = 3, + .unk0_5 = 3, + .unk1 = 24, + .unk2 = 6, + .unk3 = 0, + }, + { + .unk0_0 = 3, + .unk0_5 = 0, + .unk1 = 24, + .unk2 = 10, + .unk3 = 0, + }, + { + .unk0_0 = 3, + .unk0_5 = 5, + .unk1 = 24, + .unk2 = 2, + .unk3 = 0, + }, + { + .unk0_0 = 16, + .unk0_5 = 5, + .unk1 = 12, + .unk2 = 2, + .unk3 = 0, + }, + { + .unk0_0 = 3, + .unk0_5 = 4, + .unk1 = 24, + .unk2 = 4, + .unk3 = 0, + }, + { + .unk0_0 = 9, + .unk0_5 = 4, + .unk1 = 12, + .unk2 = 2, + .unk3 = 1, + }, + { + .unk0_0 = 5, + .unk0_5 = 3, + .unk1 = 0x14, + .unk2 = 10, + .unk3 = 3, + }, + { + .unk0_0 = 3, + .unk0_5 = 0, + .unk1 = 24, + .unk2 = 10, + .unk3 = 2, + }, +}; + +static 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, + }, +}; + +static const struct WindowTemplate sEasyChatWindowTemplates[] = { + { + .bg = 1, + .tilemapLeft = 6, + .tilemapTop = 0, + .width = 18, + .height = 2, + .paletteNum = 10, + .baseBlock = 0x10, + }, + { + .bg = 0, + .tilemapLeft = 3, + .tilemapTop = 15, + .width = 24, + .height = 4, + .paletteNum = 15, + .baseBlock = 0xA, + }, + { + .bg = 2, + .tilemapLeft = 1, + .tilemapTop = 0, + .width = 28, + .height = 32, + .paletteNum = 3, + .baseBlock = 0, + }, + DUMMY_WIN_TEMPLATE, +}; + +static const struct WindowTemplate sEasyChatYesNoWindowTemplate = { + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 9, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x6A, +}; + +static const u8 sText_Clear17[] = _("{CLEAR 17}"); + +static const u8 *const sUnknown_08597C90[] = { + gUnknown_862B810, + gUnknown_862B832, + gUnknown_862B84B, + gUnknown_862B86C, +}; + +static const struct SpriteSheet sUnknown_08597CA0[] = { + { + .data = sUnknown_085977A0, + .size = 0x0020, + .tag = 0 + }, + { + .data = sUnknown_085977C0, + .size = 0x0100, + .tag = 2 + }, + { + .data = sUnknown_085978C0, + .size = 0x0100, + .tag = 3 + }, + {0} +}; + +static const struct SpritePalette sUnknown_08597CC0[] = { + { + .data = sUnknown_08597780, + .tag = 0, + }, + { + .data = gEasyChatCursor_Pal, + .tag = 1, + }, + { + .data = gEasyChatRightWindow_Pal, + .tag = 2, + }, + { + .data = sUnknown_085979C0, + .tag = 3, + }, + {0} +}; + +static const struct CompressedSpriteSheet sUnknown_08597CE8[] = { + { + .data = sUnknown_085979E0, + .size = 0x0800, + .tag = 5, + }, + { + .data = gEasyChatCursor_Gfx, + .size = 0x1000, + .tag = 1, + }, + { + .data = gEasyChatRightWindow_Gfx, + .size = 0x0800, + .tag = 6, + }, + { + .data = gEasyChatMode_Gfx, + .size = 0x1000, + .tag = 4, + }, +}; + +static const u8 sUnknown_08597D08[] = {0, 12, 24, 56, 68, 80, 92}; + +static const struct OamData sOamData_8597D10 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteTemplate sUnknown_08597D18 = { + .tileTag = 0, + .paletteTag = 0, + .oam = &sOamData_8597D10, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_811DF28, +}; + +static const struct OamData sUnknown_08597D30 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_H_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sUnknown_08597D38[] = { + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597D40[] = { + ANIMCMD_FRAME(32, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597D48[] = { + ANIMCMD_FRAME(64, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597D50[] = { + ANIMCMD_FRAME(96, 0), + ANIMCMD_END, +}; + +static const union AnimCmd *const sUnknown_08597D58[] = { + sUnknown_08597D38, + sUnknown_08597D40, + sUnknown_08597D48, + sUnknown_08597D50, +}; + +static const struct SpriteTemplate sUnknown_08597D68 = { + .tileTag = 1, + .paletteTag = 1, + .oam = &sUnknown_08597D30, + .anims = sUnknown_08597D58, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_811DF28, +}; + +static const struct OamData sUnknown_08597D80 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_H_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sUnknown_08597D88[] = { + ANIMCMD_FRAME(96, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597D90[] = { + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597D9C[] = { + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597DA8[] = { + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(96, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597DB4[] = { + ANIMCMD_FRAME(64, 4), + ANIMCMD_END, +}; + +static const union AnimCmd *const sUnknown_08597DBC[] = { + sUnknown_08597D88, + sUnknown_08597D90, + sUnknown_08597D9C, + sUnknown_08597DA8, + sUnknown_08597DB4, +}; + +static const struct SpriteTemplate sUnknown_08597DD0 = { + .tileTag = 4, + .paletteTag = 2, + .oam = &sUnknown_08597D80, + .anims = sUnknown_08597DBC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const struct OamData sUnknown_08597DE8 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteTemplate sUnknown_08597DF0 = { + .tileTag = 6, + .paletteTag = 2, + .oam = &sUnknown_08597DE8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const struct OamData sUnknown_08597E08 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_H_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_08597E10 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sUnknown_08597E18[] = { + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597E20[] = { + ANIMCMD_FRAME(4, 0), + ANIMCMD_END, +}; + +static const union AnimCmd *const sUnknown_08597E28[] = { + sUnknown_08597E18, + sUnknown_08597E20, +}; + +static const struct SpriteTemplate sUnknown_08597E30 = { + .tileTag = 3, + .paletteTag = 2, + .oam = &sUnknown_08597E08, + .anims = sUnknown_08597E28, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const struct SpriteTemplate sUnknown_08597E48 = { + .tileTag = 2, + .paletteTag = 2, + .oam = &gUnknown_08597E10, + .anims = sUnknown_08597E28, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const u8 sUnknown_08597E60[][4] = { + {16, 111, 196, 0}, + {16, 78, 130, 160}, + {16, 80, 134, 170}, +}; + +static const u8 *const sFooterTextOptions[][4] = { + {gText_DelAll, gText_Cancel5, gText_Ok2, NULL}, + {gText_DelAll, gText_Cancel5, gText_Ok2, gText_Quiz}, + {gText_DelAll, gText_Cancel5, gText_Ok2, gText_Answer}, +}; + +#include "data/easy_chat/easy_chat_groups.h" +#include "data/easy_chat/easy_chat_words_by_letter.h" + +const u8 *const gEasyChatGroupNamePointers[] = { + [EC_GROUP_POKEMON] = gEasyChatGroupName_Pokemon, + [EC_GROUP_TRAINER] = gEasyChatGroupName_Trainer, + [EC_GROUP_STATUS] = gEasyChatGroupName_Status, + [EC_GROUP_BATTLE] = gEasyChatGroupName_Battle, + [EC_GROUP_GREETINGS] = gEasyChatGroupName_Greetings, + [EC_GROUP_PEOPLE] = gEasyChatGroupName_People, + [EC_GROUP_VOICES] = gEasyChatGroupName_Voices, + [EC_GROUP_SPEECH] = gEasyChatGroupName_Speech, + [EC_GROUP_ENDINGS] = gEasyChatGroupName_Endings, + [EC_GROUP_FEELINGS] = gEasyChatGroupName_Feelings, + [EC_GROUP_CONDITIONS] = gEasyChatGroupName_Conditions, + [EC_GROUP_ACTIONS] = gEasyChatGroupName_Actions, + [EC_GROUP_LIFESTYLE] = gEasyChatGroupName_Lifestyle, + [EC_GROUP_HOBBIES] = gEasyChatGroupName_Hobbies, + [EC_GROUP_TIME] = gEasyChatGroupName_Time, + [EC_GROUP_MISC] = gEasyChatGroupName_Misc, + [EC_GROUP_ADJECTIVES] = gEasyChatGroupName_Adjectives, + [EC_GROUP_EVENTS] = gEasyChatGroupName_Events, + [EC_GROUP_MOVE_1] = gEasyChatGroupName_Move1, + [EC_GROUP_MOVE_2] = gEasyChatGroupName_Move2, + [EC_GROUP_TRENDY_SAYING] = gEasyChatGroupName_TrendySaying, + [EC_GROUP_POKEMON_2] = gEasyChatGroupName_Pokemon2, +}; + +static const u16 sUnknown_0859E62C[] = { + EC_WORD_I_AM, + EC_WORD_A, + EC_WORD_POKEMON, + EC_WORD_FRIEND, +}; + +static const u16 sUnknown_0859E634[] = { + EC_WORD_ARE, + EC_WORD_YOU, + EC_WORD_READY, + EC_WORD_QUES, + EC_WORD_HERE_I_COME, + EC_WORD_EXCL, +}; + +static const u16 sUnknown_0859E640[] = { + EC_WORD_YAY, + EC_WORD_YAY, + EC_WORD_EXCL_EXCL, + EC_WORD_I_VE, + EC_WORD_WON, + EC_WORD_EXCL_EXCL, +}; + +static const u16 sUnknown_0859E64C[] = { + EC_WORD_TOO, + EC_WORD_BAD, + EC_WORD_ELLIPSIS, + EC_WORD_WE, + EC_WORD_LOST, + EC_WORD_ELLIPSIS, +}; + +static const u16 sUnknown_0859E658[] = { + SPECIES_DEOXYS, +}; void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) { @@ -678,9 +1367,9 @@ static int sub_811A868(u16 word) { int i; - for (i = 0; i < ARRAY_COUNT(gUnknown_08597530); i ++) + for (i = 0; i < ARRAY_COUNT(sUnknown_08597530); i ++) { - if (word == gUnknown_08597530[i].word) + if (word == sUnknown_08597530[i].word) return i; } return -1; @@ -697,25 +1386,25 @@ static void sub_811A8A4(u16 word) i = sub_811A868(word); ResetTasks(); - sub_811A4D0(gUnknown_08597530[i].callback); + sub_811A4D0(sUnknown_08597530[i].callback); } -void sub_811A8CC(void) +static void sub_811A8CC(void) { sub_811A20C(0xF, &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016, CB2_ReturnToFieldContinueScript, 3); } -void sub_811A8F0(void) +static void sub_811A8F0(void) { sub_811A20C(0x10, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, CB2_ReturnToFieldContinueScript, 3); } -void sub_811A914(void) +static void sub_811A914(void) { sub_811A20C(0x12, &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014, CB2_ReturnToFieldContinueScript, 3); } -void sub_811A938(void) +static void sub_811A938(void) { sub_811A20C(0x11, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, CB2_ReturnToFieldContinueScript, 3); } @@ -1157,7 +1846,7 @@ static u16 sub_811B150(void) } } -int sub_811B184(void) +static int sub_811B184(void) { gEasyChatScreen->unk_08 = gEasyChatScreen->state; if (gEasyChatScreen->kind != 6) @@ -1173,7 +1862,7 @@ int sub_811B184(void) } } -u16 sub_811B1B4(void) +static u16 sub_811B1B4(void) { gEasyChatScreen->unk_08 = gEasyChatScreen->state; if (gEasyChatScreen->kind == 17) @@ -1250,7 +1939,7 @@ u16 sub_811B1B4(void) } } -int sub_811B264(void) +static int sub_811B264(void) { gEasyChatScreen->unk_08 = gEasyChatScreen->state; switch (gEasyChatScreen->kind) @@ -1681,10 +2370,10 @@ static int sub_811B908(void) { int var0 = (u8)gEasyChatScreen->unk_0a < 7 ? gEasyChatScreen->unk_0a : 0; int var1 = (u8)gEasyChatScreen->unk_0b < 4 ? gEasyChatScreen->unk_0b : 0; - return gUnknown_08597748[var1][var0]; + return sUnknown_08597748[var1][var0]; } -u16 sub_811B940(void) +static u16 sub_811B940(void) { return 2 * (gEasyChatScreen->unk_11 + gEasyChatScreen->unk_0e) + gEasyChatScreen->unk_10; } @@ -1736,7 +2425,7 @@ static u8 sub_811BA1C(void) return sub_811B940() >= sub_811F5B0() ? 1 : 0; } -int sub_811BA3C(void) +static int sub_811BA3C(void) { return gEasyChatScreenTemplates[gEasyChatScreen->templateId].unk_03_7; } @@ -1746,7 +2435,7 @@ u8 sub_811BA5C(void) return gEasyChatScreen->kind; } -u8 sub_811BA68(void) +static u8 sub_811BA68(void) { return gEasyChatScreenTemplates[gEasyChatScreen->templateId].unk_03_0; } @@ -1927,7 +2616,7 @@ static u8 sub_811BCC8(u8 entryType) return 0; } -int sub_811BCF4(void) +static int sub_811BCF4(void) { int i; @@ -2046,7 +2735,7 @@ static void sub_811BE9C(void) static int sub_811BF20(void) { - return sub_811BC7C(gUnknown_08597764, 4) == 0; + return sub_811BC7C(sMysteryGiftPhrase, ARRAY_COUNT(sMysteryGiftPhrase)) == 0; } static u16 sub_811BF40(void) @@ -2054,19 +2743,19 @@ static u16 sub_811BF40(void) int i; for (i = 0; i < 5; i++) { - if (!sub_811BC7C(gUnknown_0859776C[i], 2)) + if (!sub_811BC7C(sBerryMasterWifePhrases[i], ARRAY_COUNT(*sBerryMasterWifePhrases))) return i + 1; } return 0; } -void sub_811BF78(void) +static void sub_811BF78(void) { gEasyChatScreen->unk_13 = 0; } -int sub_811BF88(int easyChatWord) +static int sub_811BF88(int easyChatWord) { return 0; } @@ -2085,10 +2774,10 @@ static bool8 sub_811BFA4(void) { case 0: ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_08597C54, ARRAY_COUNT(gUnknown_08597C54)); + InitBgsFromTemplates(0, sEasyChatBgTemplates, ARRAY_COUNT(sEasyChatBgTemplates)); SetBgTilemapBuffer(3, gUnknown_0203A11C->unkB00); SetBgTilemapBuffer(1, gUnknown_0203A11C->unk300); - InitWindows(gUnknown_08597C64); + InitWindows(sEasyChatWindowTemplates); DeactivateAllTextPrinters(); sub_811CF64(); sub_811CF04(); @@ -2104,7 +2793,7 @@ static bool8 sub_811BFA4(void) CopyBgTilemapBufferToVram(3); break; case 2: - DecompressAndLoadBgGfxUsingHeap(1, gUnknown_08597B54, 0, 0, 0); + DecompressAndLoadBgGfxUsingHeap(1, sUnknown_08597B54, 0, 0, 0); CopyBgTilemapBufferToVram(1); break; case 3: @@ -2984,12 +3673,12 @@ static void sub_811CF64(void) { ResetPaletteFade(); LoadPalette(gEasyChatMode_Pal, 0, 32); - LoadPalette(gUnknown_08597B14, 1 * 16, 32); - LoadPalette(gUnknown_08597B34, 4 * 16, 32); - LoadPalette(gUnknown_08597C1C, 10 * 16, 8); - LoadPalette(gUnknown_08597C24, 11 * 16, 12); - LoadPalette(gUnknown_08597C24, 15 * 16, 12); - LoadPalette(gUnknown_08597C24, 3 * 16, 12); + LoadPalette(sUnknown_08597B14, 1 * 16, 32); + LoadPalette(sUnknown_08597B34, 4 * 16, 32); + LoadPalette(sUnknown_08597C1C, 10 * 16, 8); + LoadPalette(sUnknown_08597C24, 11 * 16, 12); + LoadPalette(sUnknown_08597C24, 15 * 16, 12); + LoadPalette(sUnknown_08597C24, 3 * 16, 12); } static void sub_811CFCC(void) @@ -3011,7 +3700,7 @@ void sub_811D028(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, vo AddTextPrinterParameterized(windowId, fontId, str, x, y, speed, callback); } -void sub_811D058(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, u8 red, u8 green, u8 blue) +static void sub_811D058(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, u8 red, u8 green, u8 blue) { u8 color[3]; color[0] = red; @@ -3082,7 +3771,7 @@ static void sub_811D104(u8 arg0) static void sub_811D214(u8 initialCursorPos) { - CreateYesNoMenu(&gUnknown_08597C84, 1, 14, initialCursorPos); + CreateYesNoMenu(&sEasyChatYesNoWindowTemplate, 1, 14, initialCursorPos); } static void sub_811D230(void) @@ -3123,7 +3812,7 @@ static void sub_811D2C8(void) FillWindowPixelBuffer(gUnknown_0203A11C->windowId, 0x11); for (i = 0; i < numRows; i++) { - memcpy(spC, gUnknown_08597C8C, sizeof(gUnknown_08597C8C)); + memcpy(spC, sText_Clear17, sizeof(sText_Clear17)); if (var1) spC[2] = 6; @@ -3314,8 +4003,8 @@ static void sub_811D758(void) { u32 i; - for (i = 0; i < 4; i++) - sub_811D028(2, 1, gUnknown_08597C90[i], 10, 97 + i * 16, 0xFF, NULL); + for (i = 0; i < ARRAY_COUNT(sUnknown_08597C90); i++) + sub_811D028(2, 1, sUnknown_08597C90[i], 10, 97 + i * 16, 0xFF, NULL); } static void sub_811D794(void) @@ -3647,10 +4336,10 @@ static void sub_811DE90(void) { u32 i; - LoadSpriteSheets(gUnknown_08597CA0); - LoadSpritePalettes(gUnknown_08597CC0); - for (i = 0; i < 4; i++) - LoadCompressedSpriteSheet(&gUnknown_08597CE8[i]); + LoadSpriteSheets(sUnknown_08597CA0); + LoadSpritePalettes(sUnknown_08597CC0); + for (i = 0; i < ARRAY_COUNT(sUnknown_08597CE8); i++) + LoadCompressedSpriteSheet(&sUnknown_08597CE8[i]); } static void sub_811DEC4(void) @@ -3658,12 +4347,12 @@ static void sub_811DEC4(void) u8 var0 = sub_811BA68(); int x = gUnknown_08597C30[var0].unk0_0 * 8 + 13; int y = gUnknown_08597C30[var0].unk0_5 * 8 + 8; - u8 spriteId = CreateSprite(&gUnknown_08597D18, x, y, 2); + u8 spriteId = CreateSprite(&sUnknown_08597D18, x, y, 2); gUnknown_0203A11C->unk2D8 = &gSprites[spriteId]; gSprites[spriteId].data[1] = 1; } -void sub_811DF28(struct Sprite *sprite) +static void sub_811DF28(struct Sprite *sprite) { if (sprite->data[1]) { @@ -3698,11 +4387,11 @@ static void sub_811DFB0(void) static void sub_811DFC8(void) { - u8 spriteId = CreateSprite(&gUnknown_08597D68, 0, 0, 3); + u8 spriteId = CreateSprite(&sUnknown_08597D68, 0, 0, 3); gUnknown_0203A11C->unk2DC = &gSprites[spriteId]; gUnknown_0203A11C->unk2DC->pos2.x = 32; - spriteId = CreateSprite(&gUnknown_08597D68, 0, 0, 3); + spriteId = CreateSprite(&sUnknown_08597D68, 0, 0, 3); gUnknown_0203A11C->unk2E0 = &gSprites[spriteId]; gUnknown_0203A11C->unk2E0->pos2.x = -32; @@ -3773,7 +4462,7 @@ static void sub_811E1A4(s8 arg0, s8 arg1) } else { - x += gUnknown_08597D08[(u8)arg0 < 7 ? arg0 : 0]; + x += sUnknown_08597D08[arg0 < ARRAY_COUNT(sUnknown_08597D08) ? arg0 : 0]; anim = 3; } @@ -3799,7 +4488,7 @@ static void sub_811E1A4(s8 arg0, s8 arg1) static void sub_811E288(void) { - u8 spriteId = CreateSprite(&gUnknown_08597D18, 0, 0, 4); + u8 spriteId = CreateSprite(&sUnknown_08597D18, 0, 0, 4); gUnknown_0203A11C->unk2E4 = &gSprites[spriteId]; gUnknown_0203A11C->unk2E4->callback = sub_811E2DC; gUnknown_0203A11C->unk2E4->oam.priority = 2; @@ -3849,11 +4538,11 @@ static void sub_811E380(void) static void sub_811E3AC(void) { - u8 spriteId = CreateSprite(&gUnknown_08597DF0, 208, 128, 6); + u8 spriteId = CreateSprite(&sUnknown_08597DF0, 208, 128, 6); gUnknown_0203A11C->unk2E8 = &gSprites[spriteId]; gUnknown_0203A11C->unk2E8->pos2.x = -64; - spriteId = CreateSprite(&gUnknown_08597DD0, 208, 80, 5); + spriteId = CreateSprite(&sUnknown_08597DD0, 208, 80, 5); gUnknown_0203A11C->unk2EC = &gSprites[spriteId]; gUnknown_0203A11C->unk9 = 0; } @@ -3940,11 +4629,11 @@ static bool8 sub_811E5B8(void) static void sub_811E5D4(void) { - u8 spriteId = CreateSprite(&gUnknown_08597E48, 96, 80, 0); + u8 spriteId = CreateSprite(&sUnknown_08597E48, 96, 80, 0); if (spriteId != MAX_SPRITES) gUnknown_0203A11C->unk2F0 = &gSprites[spriteId]; - spriteId = CreateSprite(&gUnknown_08597E48, 96, 156, 0); + spriteId = CreateSprite(&sUnknown_08597E48, 96, 156, 0); if (spriteId != MAX_SPRITES) { gUnknown_0203A11C->unk2F4 = &gSprites[spriteId]; @@ -3982,11 +4671,11 @@ static void sub_811E6E0(int arg0) static void sub_811E720(void) { - u8 spriteId = CreateSprite(&gUnknown_08597E30, 220, 84, 1); + u8 spriteId = CreateSprite(&sUnknown_08597E30, 220, 84, 1); if (spriteId != MAX_SPRITES) gUnknown_0203A11C->unk2F8 = &gSprites[spriteId]; - spriteId = CreateSprite(&gUnknown_08597E30, 220, 156, 1); + spriteId = CreateSprite(&sUnknown_08597E30, 220, 156, 1); if (spriteId != MAX_SPRITES) { gUnknown_0203A11C->unk2FC = &gSprites[spriteId]; @@ -4072,7 +4761,7 @@ static int sub_811E920(int arg0) { int var0 = sub_811E8E4(); if (var0 < 3) - return gUnknown_08597E60[var0][arg0] + 4; + return sUnknown_08597E60[var0][arg0] + 4; else return 0; } @@ -4097,10 +4786,10 @@ static void sub_811E948(void) FillWindowPixelBuffer(windowId, 0x11); for (i = 0; i < 4; i++) { - const u8 *str = gUnknown_08597E6C[var0][i]; + const u8 *str = sFooterTextOptions[var0][i]; if (str) { - int x = gUnknown_08597E60[var0][i]; + int x = sUnknown_08597E60[var0][i]; sub_811D028(windowId, 1, str, x, 1, 0, NULL); } } @@ -4548,16 +5237,16 @@ void InitEasyChatPhrases(void) u16 i, j; for (i = 0; i < 4; i++) - gSaveBlock1Ptr->unk2BB0[i] = gUnknown_0859E62C[i]; + gSaveBlock1Ptr->unk2BB0[i] = sUnknown_0859E62C[i]; for (i = 0; i < 6; i++) - gSaveBlock1Ptr->unk2BBC[i] = gUnknown_0859E634[i]; + gSaveBlock1Ptr->unk2BBC[i] = sUnknown_0859E634[i]; for (i = 0; i < 6; i++) - gSaveBlock1Ptr->unk2BC8[i] = gUnknown_0859E640[i]; + gSaveBlock1Ptr->unk2BC8[i] = sUnknown_0859E640[i]; for (i = 0; i < 6; i++) - gSaveBlock1Ptr->unk2BD4[i] = gUnknown_0859E64C[i]; + gSaveBlock1Ptr->unk2BD4[i] = sUnknown_0859E64C[i]; for (i = 0; i < MAIL_COUNT; i++) { @@ -4782,7 +5471,7 @@ static bool8 sub_811F72C(u8 arg0) return FALSE; } -bool8 sub_811F764(u16 wordIndex, u8 groupId) +static bool8 sub_811F764(u16 wordIndex, u8 groupId) { switch (groupId) { @@ -4805,9 +5494,9 @@ bool8 sub_811F764(u16 wordIndex, u8 groupId) static int sub_811F838(u16 species) { u32 i; - for (i = 0; i < ARRAY_COUNT(gUnknown_0859E658); i++) + for (i = 0; i < ARRAY_COUNT(sUnknown_0859E658); i++) { - if (gUnknown_0859E658[i] == species) + if (sUnknown_0859E658[i] == species) return TRUE; } -- cgit v1.2.3 From b2c92ee8c5d8ea934b5c6c36cc4b06b66779d0fe Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 26 Feb 2019 22:45:39 -0500 Subject: Missed some fill values Must have forgotten to check FillWindowPixelRect. --- src/easy_chat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/easy_chat.c') diff --git a/src/easy_chat.c b/src/easy_chat.c index afc4c6c5b..5a3ebf69c 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -4106,9 +4106,9 @@ static void sub_811D950(u8 arg0, u8 arg1) var1 = 0; } - FillWindowPixelRect(2, 0x11, 0, y, 224, var2); + FillWindowPixelRect(2, PALETTE_NUM_TO_FILL_VALUE(1), 0, y, 224, var2); if (var1) - FillWindowPixelRect(2, 0x11, 0, 0, 224, var1); + FillWindowPixelRect(2, PALETTE_NUM_TO_FILL_VALUE(1), 0, 0, 224, var1); } static void sub_811D9B4(void) -- cgit v1.2.3 From 4b9e93850c50a2fbd380c061e129c76d33f6e452 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 27 Feb 2019 12:45:31 -0600 Subject: Document easy chat screen types --- src/easy_chat.c | 1694 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 851 insertions(+), 843 deletions(-) (limited to 'src/easy_chat.c') diff --git a/src/easy_chat.c b/src/easy_chat.c index 3c436246d..aa681eeba 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -34,18 +34,18 @@ #include "constants/species.h" #define EZCHAT_TASK_STATE 0 -#define EZCHAT_TASK_KIND 1 +#define EZCHAT_TASK_TYPE 1 #define EZCHAT_TASK_WORDS 2 #define EZCHAT_TASK_MAINCALLBACK 4 #define EZCHAT_TASK_UNK06 6 #define EZCHAT_TASK_SIZE 7 -EWRAM_DATA struct EasyChatScreen *gEasyChatScreen = NULL; -EWRAM_DATA struct Unk203A11C *gUnknown_0203A11C = 0; -EWRAM_DATA struct Unk203A120 *gUnknown_0203A120 = 0; +static EWRAM_DATA struct EasyChatScreen *sEasyChatScreen = NULL; +static EWRAM_DATA struct Unk203A11C *sUnknown_0203A11C = NULL; +static EWRAM_DATA struct Unk203A120 *sUnknown_0203A120 = NULL; static void sub_811A2C0(u8); -static void sub_811A278(void); +static void MainCallback_EasyChatScreen(void); static bool8 sub_811A428(u8); static void sub_811A2FC(u8); static void sub_811A4D0(MainCallback); @@ -67,8 +67,8 @@ static u16 sub_811B0E8(void); static u16 sub_811B0F8(void); static u16 sub_811B150(void); static u16 sub_811B1B4(void); -static u8 sub_811BA68(void); -static u8 sub_811BCC8(u8); +static u8 GetEasyChatScreenFrameId(void); +static u8 GetEachChatScreenTemplateId(u8); static void sub_811BDF0(u8 *); static void sub_811BF78(void); static bool8 sub_811BF8C(void); @@ -79,7 +79,7 @@ static bool8 sub_811C170(void); static bool8 sub_811F28C(void); static void sub_811F2B8(void); static u8 sub_811F3AC(void); -static int sub_811BA3C(void); +static int FooterHasFourOptions(void); static int sub_811B184(void); static int sub_811B264(void); static int sub_811B32C(void); @@ -169,7 +169,7 @@ static bool8 sub_811CDD4(void); static bool8 sub_811CE14(void); static bool8 sub_811CE54(void); static void sub_811DF60(u8, u8); -static int sub_811E920(int); +static int GetFooterOptionXOffset(int); static void sub_811DF90(void); static void sub_811D104(u8); static void sub_811D214(u8); @@ -228,10 +228,10 @@ static u16 sub_811F5C4(u16); static u16 sub_811F6B8(u16); static bool8 sub_811F764(u16, u8); static int sub_811F838(u16); -static void sub_811A8CC(void); -static void sub_811A8F0(void); -static void sub_811A914(void); -static void sub_811A938(void); +static void DoQuizAnswerEasyChatScreen(void); +static void DoQuizQuestionEasyChatScreen(void); +static void DoQuizSetAnswerEasyChatScreen(void); +static void DoQuizSetQuestionEasyChatScreen(void); struct Unk8597530 { @@ -242,28 +242,29 @@ struct Unk8597530 static const struct Unk8597530 sUnknown_08597530[] = { { .word = 26, - .callback = sub_811A8CC, + .callback = DoQuizAnswerEasyChatScreen, }, { .word = 25, - .callback = sub_811A8F0, + .callback = DoQuizQuestionEasyChatScreen, }, { .word = 28, - .callback = sub_811A914, + .callback = DoQuizSetAnswerEasyChatScreen, }, { .word = 27, - .callback = sub_811A938, + .callback = DoQuizSetQuestionEasyChatScreen, }, }; -static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { + +static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { { - .unk_00 = 0, + .type = EASY_CHAT_TYPE_PROFILE, .numColumns = 2, .numRows = 2, - .unk_03_0 = 0, - .unk_03_7 = 0, + .frameId = 0, + .fourFooterOptions = FALSE, .titleText = gText_Profile, .instructionsText1 = gText_CombineFourWordsOrPhrases, .instructionsText2 = gText_AndMakeYourProfile, @@ -271,11 +272,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 1, + .type = EASY_CHAT_TYPE_BATTLE_START, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_AtTheBattlesStart, .instructionsText1 = gText_CombineSixWordsOrPhrases, .instructionsText2 = gText_AndMakeAMessage, @@ -283,11 +284,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 2, + .type = EASY_CHAT_TYPE_BATTLE_WON, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_UponWinningABattle, .instructionsText1 = gText_CombineSixWordsOrPhrases, .instructionsText2 = gText_AndMakeAMessage, @@ -295,11 +296,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 3, + .type = EASY_CHAT_TYPE_BATTLE_LOST, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_UponLosingABattle, .instructionsText1 = gText_CombineSixWordsOrPhrases, .instructionsText2 = gText_AndMakeAMessage, @@ -307,11 +308,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 4, + .type = EASY_CHAT_TYPE_MAIL, .numColumns = 2, .numRows = 5, - .unk_03_0 = 2, - .unk_03_7 = 0, + .frameId = 2, + .fourFooterOptions = FALSE, .titleText = NULL, .instructionsText1 = gText_CombineNineWordsOrPhrases, .instructionsText2 = gText_AndMakeAMessage2, @@ -319,11 +320,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 5, + .type = EASY_CHAT_TYPE_INTERVIEW, .numColumns = 2, .numRows = 2, - .unk_03_0 = 5, - .unk_03_7 = 0, + .frameId = 5, + .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_CombineFourWordsOrPhrases, .instructionsText2 = gText_LetsReplyToTheInterview, @@ -331,11 +332,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 6, + .type = EASY_CHAT_TYPE_BARD_SONG, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_TheBardsSong, .instructionsText1 = gText_ChangeJustOneWordOrPhrase, .instructionsText2 = gText_AndImproveTheBardsSong, @@ -343,11 +344,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 7, + .type = EASY_CHAT_TYPE_FAN_CLUB, .numColumns = 1, .numRows = 1, - .unk_03_0 = 4, - .unk_03_7 = 0, + .frameId = 4, + .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_FindWordsThatDescribeYour, .instructionsText2 = gText_FeelingsRightNow, @@ -355,11 +356,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 9, + .type = EASY_CHAT_TYPE_TRENDY_PHRASE, .numColumns = 2, .numRows = 1, - .unk_03_0 = 3, - .unk_03_7 = 0, + .frameId = 3, + .fourFooterOptions = FALSE, .titleText = gText_WhatsHipAndHappening, .instructionsText1 = gText_CombineTwoWordsOrPhrases, .instructionsText2 = gText_AndMakeATrendySaying, @@ -367,11 +368,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 16, + .type = EASY_CHAT_TYPE_QUIZ_QUESTION, .numColumns = 2, .numRows = 5, - .unk_03_0 = 7, - .unk_03_7 = 1, + .frameId = 7, + .fourFooterOptions = TRUE, .titleText = NULL, .instructionsText1 = gText_AfterYouHaveReadTheQuiz, .instructionsText2 = gText_QuestionPressTheAButton, @@ -379,11 +380,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = NULL, }, { - .unk_00 = 15, + .type = EASY_CHAT_TYPE_QUIZ_ANSWER, .numColumns = 1, .numRows = 1, - .unk_03_0 = 6, - .unk_03_7 = 1, + .frameId = 6, + .fourFooterOptions = TRUE, .titleText = gText_TheQuizAnswerIs, .instructionsText1 = gText_OutOfTheListedChoices, .instructionsText2 = gText_SelectTheAnswerToTheQuiz, @@ -391,11 +392,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 17, + .type = EASY_CHAT_TYPE_QUIZ_SET_QUESTION, .numColumns = 2, .numRows = 5, - .unk_03_0 = 8, - .unk_03_7 = 1, + .frameId = 8, + .fourFooterOptions = TRUE, .titleText = NULL, .instructionsText1 = gText_CombineNineWordsOrPhrases, .instructionsText2 = gText_AndCreateAQuiz, @@ -403,11 +404,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = NULL, }, { - .unk_00 = 18, + .type = EASY_CHAT_TYPE_QUIZ_SET_ANSWER, .numColumns = 1, .numRows = 1, - .unk_03_0 = 6, - .unk_03_7 = 1, + .frameId = 6, + .fourFooterOptions = TRUE, .titleText = gText_TheQuizAnswerIs, .instructionsText1 = gText_PickAWordOrPhraseAnd, .instructionsText2 = gText_SetTheQuizAnswer, @@ -415,11 +416,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = NULL, }, { - .unk_00 = 6, + .type = EASY_CHAT_TYPE_BARD_SONG, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_TheBardsSong, .instructionsText1 = gText_ChangeJustOneWordOrPhrase, .instructionsText2 = gText_AndImproveTheBardsSong, @@ -427,11 +428,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 19, + .type = EASY_CHAT_TYPE_APPRENTICE, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_ApprenticesPhrase, .instructionsText1 = gText_FindWordsWhichFit, .instructionsText2 = gText_TheTrainersImage, @@ -439,11 +440,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 13, + .type = EASY_CHAT_TYPE_GOOD_SAYING, .numColumns = 2, .numRows = 1, - .unk_03_0 = 3, - .unk_03_7 = 0, + .frameId = 3, + .fourFooterOptions = FALSE, .titleText = gText_GoodSaying, .instructionsText1 = gText_CombineTwoWordsOrPhrases2, .instructionsText2 = gText_ToTeachHerAGoodSaying, @@ -451,11 +452,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 10, + .type = EASY_CHAT_TYPE_GABBY_AND_TY, .numColumns = 1, .numRows = 1, - .unk_03_0 = 4, - .unk_03_7 = 0, + .frameId = 4, + .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_FindWordsThatDescribeYour, .instructionsText2 = gText_FeelingsRightNow, @@ -463,11 +464,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 12, + .type = EASY_CHAT_TYPE_BATTLE_TOWER_INTERVIEW, .numColumns = 1, .numRows = 1, - .unk_03_0 = 4, - .unk_03_7 = 0, + .frameId = 4, + .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_FindWordsThatDescribeYour, .instructionsText2 = gText_FeelingsRightNow, @@ -475,11 +476,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 11, + .type = EASY_CHAT_TYPE_CONTEST_INTERVIEW, .numColumns = 1, .numRows = 1, - .unk_03_0 = 4, - .unk_03_7 = 0, + .frameId = 4, + .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_FindWordsThatDescribeYour, .instructionsText2 = gText_FeelingsRightNow, @@ -487,11 +488,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 14, + .type = EASY_CHAT_TYPE_FAN_QUESTION, .numColumns = 1, .numRows = 1, - .unk_03_0 = 4, - .unk_03_7 = 0, + .frameId = 4, + .fourFooterOptions = FALSE, .titleText = gText_FansQuestion, .instructionsText1 = gText_FindWordsWhichFit, .instructionsText2 = gText_TheTrainersImage, @@ -499,11 +500,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 20, + .type = EASY_CHAT_TYPE_QUESTIONNAIRE, .numColumns = 2, .numRows = 2, - .unk_03_0 = 0, - .unk_03_7 = 0, + .frameId = 0, + .fourFooterOptions = FALSE, .titleText = gText_Questionnaire, .instructionsText1 = gText_CombineFourWordsOrPhrases, .instructionsText2 = gText_AndFillOutTheQuestionnaire, @@ -534,10 +535,10 @@ static const u16 sBerryMasterWifePhrases[][2] = { {EC_WORD_SUPER, EC_WORD_HUSTLE}, }; -static const u16 sUnknown_08597780[] = INCBIN_U16("graphics/misc/interview_triangle_cursor.gbapal"); -static const u32 sUnknown_085977A0[] = INCBIN_U32("graphics/misc/interview_triangle_cursor.4bpp"); -static const u32 sUnknown_085977C0[] = INCBIN_U32("graphics/misc/interview_arrow.4bpp"); -static const u32 sUnknown_085978C0[] = INCBIN_U32("graphics/misc/interview_buttons.4bpp"); +static const u16 sEasyChatTriangleCursorPalette[] = INCBIN_U16("graphics/easy_chat/triangle_cursor.gbapal"); +static const u32 sEasyChatTriangleCursorGfx[] = INCBIN_U32("graphics/easy_chat/triangle_cursor.4bpp"); +static const u32 sEasyChatScrollIndicatorGfx[] = INCBIN_U32("graphics/easy_chat/scroll_indicator.4bpp"); +static const u32 sEasyChatStartSelectButtonsGfx[] = INCBIN_U32("graphics/easy_chat/start_select_buttons.4bpp"); static const u16 sUnknown_085979C0[] = INCBIN_U16("graphics/misc/interview_frame.gbapal"); static const u32 sUnknown_085979E0[] = INCBIN_U32("graphics/misc/interview_frame.4bpp.lz"); static const u16 sUnknown_08597B14[] = INCBIN_U16("graphics/misc/interview_frame_orange.gbapal"); @@ -546,69 +547,69 @@ static const u32 sUnknown_08597B54[] = INCBIN_U32("graphics/misc/interview_frame static const u16 sUnknown_08597C1C[] = INCBIN_U16("graphics/misc/8597C1C.gbapal"); static const u16 sUnknown_08597C24[] = INCBIN_U16("graphics/misc/8597C24.gbapal"); -static const struct Unk08597C30 gUnknown_08597C30[] = { +static const struct EasyChatPhraseFrameDimensions sPhraseFrameDimensions[] = { { - .unk0_0 = 3, - .unk0_5 = 4, - .unk1 = 24, - .unk2 = 4, - .unk3 = 0, + .left = 3, + .top = 4, + .width = 24, + .height = 4, + .footerId = 0, }, { - .unk0_0 = 3, - .unk0_5 = 3, - .unk1 = 24, - .unk2 = 6, - .unk3 = 0, + .left = 3, + .top = 3, + .width = 24, + .height = 6, + .footerId = 0, }, { - .unk0_0 = 3, - .unk0_5 = 0, - .unk1 = 24, - .unk2 = 10, - .unk3 = 0, + .left = 3, + .top = 0, + .width = 24, + .height = 10, + .footerId = 0, }, { - .unk0_0 = 3, - .unk0_5 = 5, - .unk1 = 24, - .unk2 = 2, - .unk3 = 0, + .left = 3, + .top = 5, + .width = 24, + .height = 2, + .footerId = 0, }, { - .unk0_0 = 16, - .unk0_5 = 5, - .unk1 = 12, - .unk2 = 2, - .unk3 = 0, + .left = 16, + .top = 5, + .width = 12, + .height = 2, + .footerId = 0, }, { - .unk0_0 = 3, - .unk0_5 = 4, - .unk1 = 24, - .unk2 = 4, - .unk3 = 0, + .left = 3, + .top = 4, + .width = 24, + .height = 4, + .footerId = 0, }, { - .unk0_0 = 9, - .unk0_5 = 4, - .unk1 = 12, - .unk2 = 2, - .unk3 = 1, + .left = 9, + .top = 4, + .width = 12, + .height = 2, + .footerId = 1, }, { - .unk0_0 = 5, - .unk0_5 = 3, - .unk1 = 0x14, - .unk2 = 10, - .unk3 = 3, + .left = 5, + .top = 3, + .width = 0x14, + .height = 10, + .footerId = 3, }, { - .unk0_0 = 3, - .unk0_5 = 0, - .unk1 = 24, - .unk2 = 10, - .unk3 = 2, + .left = 3, + .top = 0, + .width = 24, + .height = 10, + .footerId = 2, }, }; @@ -701,28 +702,28 @@ static const u8 *const sUnknown_08597C90[] = { gUnknown_862B86C, }; -static const struct SpriteSheet sUnknown_08597CA0[] = { +static const struct SpriteSheet sEasyChatSpriteSheets[] = { { - .data = sUnknown_085977A0, + .data = sEasyChatTriangleCursorGfx, .size = 0x0020, .tag = 0 }, { - .data = sUnknown_085977C0, + .data = sEasyChatScrollIndicatorGfx, .size = 0x0100, .tag = 2 }, { - .data = sUnknown_085978C0, + .data = sEasyChatStartSelectButtonsGfx, .size = 0x0100, .tag = 3 }, {0} }; -static const struct SpritePalette sUnknown_08597CC0[] = { +static const struct SpritePalette sEasyChatSpritePalettes[] = { { - .data = sUnknown_08597780, + .data = sEasyChatTriangleCursorPalette, .tag = 0, }, { @@ -999,7 +1000,7 @@ static const struct SpriteTemplate sUnknown_08597E48 = { .callback = SpriteCallbackDummy, }; -static const u8 sUnknown_08597E60[][4] = { +static const u8 sFooterOptionXOffsets[][4] = { {16, 111, 196, 0}, {16, 78, 130, 160}, {16, 80, 134, 170}, @@ -1039,14 +1040,14 @@ const u8 *const gEasyChatGroupNamePointers[] = { [EC_GROUP_POKEMON_2] = gEasyChatGroupName_Pokemon2, }; -static const u16 sUnknown_0859E62C[] = { +static const u16 sDefaultProfileWords[] = { EC_WORD_I_AM, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_FRIEND, }; -static const u16 sUnknown_0859E634[] = { +static const u16 sDefaultBattleStartWords[] = { EC_WORD_ARE, EC_WORD_YOU, EC_WORD_READY, @@ -1077,20 +1078,20 @@ static const u16 sUnknown_0859E658[] = { SPECIES_DEOXYS, }; -void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) +void DoEasyChatScreen(u8 type, u16 *words, MainCallback callback, u8 displayedPersonType) { u8 taskId; ResetTasks(); taskId = CreateTask(sub_811A2C0, 0); - gTasks[taskId].data[EZCHAT_TASK_KIND] = kind; - gTasks[taskId].data[EZCHAT_TASK_SIZE] = sizeParam; + gTasks[taskId].data[EZCHAT_TASK_TYPE] = type; + gTasks[taskId].data[EZCHAT_TASK_SIZE] = displayedPersonType; SetWordTaskArg(taskId, EZCHAT_TASK_WORDS, (u32)words); SetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK, (u32)callback); - SetMainCallback2(sub_811A278); + SetMainCallback2(MainCallback_EasyChatScreen); } -static void sub_811A278(void) +static void MainCallback_EasyChatScreen(void) { RunTasks(); AnimateSprites(); @@ -1098,7 +1099,7 @@ static void sub_811A278(void) UpdatePaletteFade(); } -static void sub_811A290(void) +static void VBlankCallback_EasyChatScreen(void) { TransferPlttBuffer(); LoadOam(); @@ -1136,22 +1137,22 @@ static void sub_811A2FC(u8 taskId) switch (data[EZCHAT_TASK_STATE]) { case 0: - SetVBlankCallback(sub_811A290); + SetVBlankCallback(VBlankCallback_EasyChatScreen); BlendPalettes(0xFFFFFFFF, 16, 0); - BeginNormalPaletteFade(-1, -1, 16, 0, 0); + BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, 0); data[EZCHAT_TASK_STATE] = 5; break; case 1: v0 = sub_811AAAC(); if (sub_811A88C(v0)) { - BeginNormalPaletteFade(-1, -2, 0, 16, 0); + BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, 0); data[EZCHAT_TASK_STATE] = 3; data[EZCHAT_TASK_UNK06] = v0; } else if (v0 == 0x18) { - BeginNormalPaletteFade(-1, -1, 0, 16, 0); + BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, 0); data[EZCHAT_TASK_STATE] = 4; } else if (v0 != 0) @@ -1163,27 +1164,19 @@ static void sub_811A2FC(u8 taskId) break; case 2: if (!sub_811C170()) - { data[EZCHAT_TASK_STATE] = 1; - } break; case 3: if (!gPaletteFade.active) - { sub_811A8A4(data[EZCHAT_TASK_UNK06]); - } break; case 4: if (!gPaletteFade.active) - { sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); - } break; case 5: if (!gPaletteFade.active) - { data[EZCHAT_TASK_STATE] = 1; - } break; } } @@ -1208,7 +1201,7 @@ static bool8 sub_811A428(u8 taskId) } break; case 2: - if (!EasyChat_AllocateResources(data[EZCHAT_TASK_KIND], (u16 *)GetWordTaskArg(taskId, EZCHAT_TASK_WORDS), data[EZCHAT_TASK_SIZE])) + if (!EasyChat_AllocateResources(data[EZCHAT_TASK_TYPE], (u16 *)GetWordTaskArg(taskId, EZCHAT_TASK_WORDS), data[EZCHAT_TASK_SIZE])) { sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); } @@ -1241,98 +1234,98 @@ static void sub_811A4D0(MainCallback callback) SetMainCallback2(callback); } -void easy_chat_input_maybe(void) +void ShowEasyChatScreen(void) { int i; u16 *words; struct MauvilleManBard *bard; - u8 sizeParam = 3; + u8 displayedPersonType = EASY_CHAT_PERSON_DISPLAY_NONE; switch (gSpecialVar_0x8004) { - case 0: - words = gSaveBlock1Ptr->unk2BB0; + case EASY_CHAT_TYPE_PROFILE: + words = gSaveBlock1Ptr->easyChatProfile; break; - case 1: - words = gSaveBlock1Ptr->unk2BBC; + case EASY_CHAT_TYPE_BATTLE_START: + words = gSaveBlock1Ptr->easyChatBattleStart; break; - case 2: - words = gSaveBlock1Ptr->unk2BC8; + case EASY_CHAT_TYPE_BATTLE_WON: + words = gSaveBlock1Ptr->easyChatBattleWon; break; - case 3: - words = gSaveBlock1Ptr->unk2BD4; + case EASY_CHAT_TYPE_BATTLE_LOST: + words = gSaveBlock1Ptr->easyChatBattleLost; break; - case 4: + case EASY_CHAT_TYPE_MAIL: words = gSaveBlock1Ptr->mail[gSpecialVar_0x8005].words; break; - case 6: + case EASY_CHAT_TYPE_BARD_SONG: bard = &gSaveBlock1Ptr->oldMan.bard; for (i = 0; i < 6; i ++) - { bard->temporaryLyrics[i] = bard->songLyrics[i]; - } + words = bard->temporaryLyrics; break; - case 5: + case EASY_CHAT_TYPE_INTERVIEW: words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.words; - sizeParam = gSpecialVar_0x8006; + displayedPersonType = gSpecialVar_0x8006; break; - case 7: + case EASY_CHAT_TYPE_FAN_CLUB: words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.words[gSpecialVar_0x8006]; - sizeParam = 1; + displayedPersonType = EASY_CHAT_PERSON_REPORTER_FEMALE; break; - case 8: + case EASY_CHAT_TYPE_UNK_8: words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].unkShow04.words; - sizeParam = 0; + displayedPersonType = EASY_CHAT_PERSON_REPORTER_MALE; break; - case 9: + case EASY_CHAT_TYPE_TRENDY_PHRASE: words = (u16 *)gStringVar3; words[0] = gSaveBlock1Ptr->easyChatPairs[0].words[0]; words[1] = gSaveBlock1Ptr->easyChatPairs[0].words[1]; break; - case 10: + case EASY_CHAT_TYPE_GABBY_AND_TY: words = gSaveBlock1Ptr->gabbyAndTyData.quote; *words = -1; - sizeParam = 1; + displayedPersonType = EASY_CHAT_PERSON_REPORTER_FEMALE; break; - case 11: + case EASY_CHAT_TYPE_CONTEST_INTERVIEW: words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.words[gSpecialVar_0x8006]; - sizeParam = 0; + displayedPersonType = EASY_CHAT_PERSON_REPORTER_MALE; break; - case 12: + case EASY_CHAT_TYPE_BATTLE_TOWER_INTERVIEW: words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.words18; - sizeParam = 1; + displayedPersonType = EASY_CHAT_PERSON_REPORTER_FEMALE; break; - case 13: + case EASY_CHAT_TYPE_GOOD_SAYING: words = (u16 *)gStringVar3; InitializeEasyChatWordArray(words, 2); break; - case 14: + case EASY_CHAT_TYPE_FAN_QUESTION: words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanClubSpecial.words; words[0] = -1; - sizeParam = 2; + displayedPersonType = EASY_CHAT_PERSON_BOY; break; - case 15: + case EASY_CHAT_TYPE_QUIZ_ANSWER: words = &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016; break; - case 16: + case EASY_CHAT_TYPE_QUIZ_QUESTION: return; - case 17: + case EASY_CHAT_TYPE_QUIZ_SET_QUESTION: words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_002; break; - case 18: + case EASY_CHAT_TYPE_QUIZ_SET_ANSWER: words = &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014; break; - case 19: + case EASY_CHAT_TYPE_APPRENTICE: words = gSaveBlock2Ptr->apprentices[0].easyChatWords; break; - case 20: + case EASY_CHAT_TYPE_QUESTIONNAIRE: words = GetSaveBlock1Field3564(); break; default: return; } + CleanupOverworldWindowsAndTilemaps(); - sub_811A20C(gSpecialVar_0x8004, words, CB2_ReturnToFieldContinueScript, sizeParam); + DoEasyChatScreen(gSpecialVar_0x8004, words, CB2_ReturnToFieldContinueScript, displayedPersonType); } static void sub_811A7E4(void) @@ -1351,7 +1344,7 @@ static void sub_811A7E4(void) lilycoveLady = &gSaveBlock1Ptr->lilycoveLady; lilycoveLady->quiz.unk_016 = -1; CleanupOverworldWindowsAndTilemaps(); - sub_811A8F0(); + DoQuizQuestionEasyChatScreen(); } return; } @@ -1389,88 +1382,100 @@ static void sub_811A8A4(u16 word) sub_811A4D0(sUnknown_08597530[i].callback); } -static void sub_811A8CC(void) +static void DoQuizAnswerEasyChatScreen(void) { - sub_811A20C(0xF, &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016, CB2_ReturnToFieldContinueScript, 3); + DoEasyChatScreen( + EASY_CHAT_TYPE_QUIZ_ANSWER, + &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016, + CB2_ReturnToFieldContinueScript, + EASY_CHAT_PERSON_DISPLAY_NONE); } -static void sub_811A8F0(void) +static void DoQuizQuestionEasyChatScreen(void) { - sub_811A20C(0x10, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, CB2_ReturnToFieldContinueScript, 3); + DoEasyChatScreen(EASY_CHAT_TYPE_QUIZ_QUESTION, + gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, + CB2_ReturnToFieldContinueScript, + EASY_CHAT_PERSON_DISPLAY_NONE); } -static void sub_811A914(void) +static void DoQuizSetAnswerEasyChatScreen(void) { - sub_811A20C(0x12, &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014, CB2_ReturnToFieldContinueScript, 3); + DoEasyChatScreen(EASY_CHAT_TYPE_QUIZ_SET_ANSWER, + &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014, + CB2_ReturnToFieldContinueScript, + EASY_CHAT_PERSON_DISPLAY_NONE); } -static void sub_811A938(void) +static void DoQuizSetQuestionEasyChatScreen(void) { - sub_811A20C(0x11, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, CB2_ReturnToFieldContinueScript, 3); + DoEasyChatScreen(EASY_CHAT_TYPE_QUIZ_SET_QUESTION, + gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, + CB2_ReturnToFieldContinueScript, + EASY_CHAT_PERSON_DISPLAY_NONE); } -static bool8 EasyChat_AllocateResources(u8 kind, u16 *words, u8 sizeParam) +static bool8 EasyChat_AllocateResources(u8 type, u16 *words, u8 displayedPersonType) { u8 templateId; int i; - gEasyChatScreen = malloc(sizeof(*gEasyChatScreen)); - if (gEasyChatScreen == NULL) - { + sEasyChatScreen = malloc(sizeof(*sEasyChatScreen)); + if (sEasyChatScreen == NULL) return FALSE; - } - gEasyChatScreen->kind = kind; - gEasyChatScreen->words = words; - gEasyChatScreen->mainCursorColumn = 0; - gEasyChatScreen->mainCursorRow = 0; - gEasyChatScreen->unk_09 = 0; - gEasyChatScreen->sizeParam = sizeParam; - gEasyChatScreen->unk_13 = 0; - templateId = sub_811BCC8(kind); - if (kind == 0x10) + + sEasyChatScreen->type = type; + sEasyChatScreen->words = words; + sEasyChatScreen->mainCursorColumn = 0; + sEasyChatScreen->mainCursorRow = 0; + sEasyChatScreen->unk_09 = 0; + sEasyChatScreen->displayedPersonType = displayedPersonType; + sEasyChatScreen->unk_13 = 0; + templateId = GetEachChatScreenTemplateId(type); + if (type == EASY_CHAT_TYPE_QUIZ_QUESTION) { - sub_811BDF0(gEasyChatScreen->unk_14); - gEasyChatScreen->titleText = gEasyChatScreen->unk_14; - gEasyChatScreen->state = 7; + sub_811BDF0(sEasyChatScreen->unk_14); + sEasyChatScreen->titleText = sEasyChatScreen->unk_14; + sEasyChatScreen->state = 7; } else { - gEasyChatScreen->state = 0; - gEasyChatScreen->titleText = gEasyChatScreenTemplates[templateId].titleText; - } - gEasyChatScreen->numColumns = gEasyChatScreenTemplates[templateId].numColumns; - gEasyChatScreen->numRows = gEasyChatScreenTemplates[templateId].numRows; - gEasyChatScreen->unk_07 = gEasyChatScreen->numColumns * gEasyChatScreen->numRows; - gEasyChatScreen->templateId = templateId; - if (gEasyChatScreen->unk_07 > 9) - { - gEasyChatScreen->unk_07 = 9; + sEasyChatScreen->state = 0; + sEasyChatScreen->titleText = sEasyChatScreenTemplates[templateId].titleText; } + + sEasyChatScreen->numColumns = sEasyChatScreenTemplates[templateId].numColumns; + sEasyChatScreen->numRows = sEasyChatScreenTemplates[templateId].numRows; + sEasyChatScreen->unk_07 = sEasyChatScreen->numColumns * sEasyChatScreen->numRows; + sEasyChatScreen->templateId = templateId; + if (sEasyChatScreen->unk_07 > 9) + sEasyChatScreen->unk_07 = 9; + if (words != NULL) { - CpuCopy16(words, gEasyChatScreen->ecWordBuffer, gEasyChatScreen->unk_07 * sizeof(u16)); + CpuCopy16(words, sEasyChatScreen->ecWordBuffer, sEasyChatScreen->unk_07 * sizeof(u16)); } else { - for (i = 0; i < gEasyChatScreen->unk_07; i ++) - { - gEasyChatScreen->ecWordBuffer[i] = -1; - } - gEasyChatScreen->words = gEasyChatScreen->ecWordBuffer; + for (i = 0; i < sEasyChatScreen->unk_07; i ++) + sEasyChatScreen->ecWordBuffer[i] = -1; + + sEasyChatScreen->words = sEasyChatScreen->ecWordBuffer; } - gEasyChatScreen->unk_0d = (sub_811F3AC() - 1) / 2 + 1; + + sEasyChatScreen->unk_0d = (sub_811F3AC() - 1) / 2 + 1; return TRUE; } static void EasyChat_FreeResources(void) { - if (gEasyChatScreen != NULL) - FREE_AND_SET_NULL(gEasyChatScreen); + if (sEasyChatScreen != NULL) + FREE_AND_SET_NULL(sEasyChatScreen); } static u16 sub_811AAAC(void) { - switch (gEasyChatScreen->state) + switch (sEasyChatScreen->state) { case 0: return sub_811AB68(); @@ -1500,7 +1505,7 @@ static u16 sub_811AAAC(void) bool32 sub_811AB44(void) { - switch (sub_811BA68()) + switch (GetEasyChatScreenFrameId()) { case 2: case 7: @@ -1517,10 +1522,10 @@ static u16 sub_811AB68(void) if (gMain.newKeys & A_BUTTON) { sub_811BF78(); - gEasyChatScreen->state = 2; - gEasyChatScreen->unk_0a = 0; - gEasyChatScreen->unk_0b = 0; - gEasyChatScreen->unk_0c = 0; + sEasyChatScreen->state = 2; + sEasyChatScreen->unk_0a = 0; + sEasyChatScreen->unk_0b = 0; + sEasyChatScreen->unk_0c = 0; return 9; } else if (gMain.newKeys & B_BUTTON) @@ -1533,51 +1538,51 @@ static u16 sub_811AB68(void) } else if (gMain.newKeys & DPAD_UP) { - gEasyChatScreen->mainCursorRow--; + sEasyChatScreen->mainCursorRow--; break; } else if (gMain.newKeys & DPAD_LEFT) { - gEasyChatScreen->mainCursorColumn--; + sEasyChatScreen->mainCursorColumn--; break; } else if (gMain.newKeys & DPAD_DOWN) { - gEasyChatScreen->mainCursorRow++; + sEasyChatScreen->mainCursorRow++; break; } else if (gMain.newKeys & DPAD_RIGHT) { - gEasyChatScreen->mainCursorColumn++; + sEasyChatScreen->mainCursorColumn++; break; } return 0; } while (0); - if (gEasyChatScreen->mainCursorRow < 0) - gEasyChatScreen->mainCursorRow = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows; + if (sEasyChatScreen->mainCursorRow < 0) + sEasyChatScreen->mainCursorRow = sEasyChatScreenTemplates[sEasyChatScreen->templateId].numRows; - if (gEasyChatScreen->mainCursorRow > gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows) - gEasyChatScreen->mainCursorRow = 0; + if (sEasyChatScreen->mainCursorRow > sEasyChatScreenTemplates[sEasyChatScreen->templateId].numRows) + sEasyChatScreen->mainCursorRow = 0; - if (gEasyChatScreen->mainCursorRow == gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows) + if (sEasyChatScreen->mainCursorRow == sEasyChatScreenTemplates[sEasyChatScreen->templateId].numRows) { - if (gEasyChatScreen->mainCursorColumn > 2) - gEasyChatScreen->mainCursorColumn = 2; + if (sEasyChatScreen->mainCursorColumn > 2) + sEasyChatScreen->mainCursorColumn = 2; - gEasyChatScreen->state = 1; + sEasyChatScreen->state = 1; return 3; } - if (gEasyChatScreen->mainCursorColumn < 0) - gEasyChatScreen->mainCursorColumn = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns - 1; + if (sEasyChatScreen->mainCursorColumn < 0) + sEasyChatScreen->mainCursorColumn = sEasyChatScreenTemplates[sEasyChatScreen->templateId].numColumns - 1; - if (gEasyChatScreen->mainCursorColumn >= gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns) - gEasyChatScreen->mainCursorColumn = 0; + if (sEasyChatScreen->mainCursorColumn >= sEasyChatScreenTemplates[sEasyChatScreen->templateId].numColumns) + sEasyChatScreen->mainCursorColumn = 0; - if (sub_811AB44() && gEasyChatScreen->mainCursorColumn == 1 && gEasyChatScreen->mainCursorRow == 4) - gEasyChatScreen->mainCursorColumn = 0; + if (sub_811AB44() && sEasyChatScreen->mainCursorColumn == 1 && sEasyChatScreen->mainCursorRow == 4) + sEasyChatScreen->mainCursorColumn = 0; return 2; } @@ -1588,7 +1593,7 @@ static u16 sub_811ACDC(void) { if (gMain.newKeys & A_BUTTON) { - switch (gEasyChatScreen->mainCursorColumn) + switch (sEasyChatScreen->mainCursorColumn) { case 0: return sub_811B184(); @@ -1611,47 +1616,47 @@ static u16 sub_811ACDC(void) } else if (gMain.newKeys & DPAD_UP) { - gEasyChatScreen->mainCursorRow--; + sEasyChatScreen->mainCursorRow--; break; } else if (gMain.newKeys & DPAD_LEFT) { - gEasyChatScreen->mainCursorColumn--; + sEasyChatScreen->mainCursorColumn--; break; } else if (gMain.newKeys & DPAD_DOWN) { - gEasyChatScreen->mainCursorRow = 0; + sEasyChatScreen->mainCursorRow = 0; break; } else if (gMain.newKeys & DPAD_RIGHT) { - gEasyChatScreen->mainCursorColumn++; + sEasyChatScreen->mainCursorColumn++; break; } return 0; } while (0); - if (gEasyChatScreen->mainCursorRow == gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows) + if (sEasyChatScreen->mainCursorRow == sEasyChatScreenTemplates[sEasyChatScreen->templateId].numRows) { - int numFooterColumns = sub_811BA3C() ? 4 : 3; - if (gEasyChatScreen->mainCursorColumn < 0) - gEasyChatScreen->mainCursorColumn = numFooterColumns - 1; + int numFooterColumns = FooterHasFourOptions() ? 4 : 3; + if (sEasyChatScreen->mainCursorColumn < 0) + sEasyChatScreen->mainCursorColumn = numFooterColumns - 1; - if (gEasyChatScreen->mainCursorColumn >= numFooterColumns) - gEasyChatScreen->mainCursorColumn = 0; + if (sEasyChatScreen->mainCursorColumn >= numFooterColumns) + sEasyChatScreen->mainCursorColumn = 0; return 3; } - if (gEasyChatScreen->mainCursorColumn >= gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns) - gEasyChatScreen->mainCursorColumn = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns - 1; + if (sEasyChatScreen->mainCursorColumn >= sEasyChatScreenTemplates[sEasyChatScreen->templateId].numColumns) + sEasyChatScreen->mainCursorColumn = sEasyChatScreenTemplates[sEasyChatScreen->templateId].numColumns - 1; - if (sub_811AB44() && gEasyChatScreen->mainCursorColumn == 1 && gEasyChatScreen->mainCursorRow == 4) - gEasyChatScreen->mainCursorColumn = 0; + if (sub_811AB44() && sEasyChatScreen->mainCursorColumn == 1 && sEasyChatScreen->mainCursorRow == 4) + sEasyChatScreen->mainCursorColumn = 0; - gEasyChatScreen->state = 0; + sEasyChatScreen->state = 0; return 2; } @@ -1662,10 +1667,10 @@ static u16 sub_811AE44(void) if (gMain.newKeys & A_BUTTON) { - if (gEasyChatScreen->unk_0a != -1) + if (sEasyChatScreen->unk_0a != -1) return sub_811B2B0(); - switch (gEasyChatScreen->unk_0b) + switch (sEasyChatScreen->unk_0b) { case 0: return sub_811B33C(); @@ -1698,7 +1703,7 @@ static u16 sub_811AF00(void) { if (gMain.newKeys & B_BUTTON) { - gEasyChatScreen->state = 2; + sEasyChatScreen->state = 2; return 14; } @@ -1734,11 +1739,11 @@ static u16 sub_811AF8C(void) { case MENU_B_PRESSED: // B Button case 1: // No - gEasyChatScreen->state = sub_811B2A4(); + sEasyChatScreen->state = sub_811B2A4(); return 7; case 0: // Yes gSpecialVar_Result = 0; - var0 = gEasyChatScreen->kind - 17; + var0 = sEasyChatScreen->type - EASY_CHAT_TYPE_QUIZ_SET_QUESTION; if (var0 < 2) sub_811B3E4(); @@ -1754,7 +1759,7 @@ static u16 sub_811AFEC(void) { case MENU_B_PRESSED: // B Button case 1: // No - gEasyChatScreen->state = sub_811B2A4(); + sEasyChatScreen->state = sub_811B2A4(); return 7; case 0: // Yes sub_811BE9C(); @@ -1772,11 +1777,11 @@ static u16 sub_811B040(void) { case MENU_B_PRESSED: // B Button case 1: // No - gEasyChatScreen->state = 1; + sEasyChatScreen->state = 1; return 7; case 0: // Yes sub_811B418(); - gEasyChatScreen->state = 1; + sEasyChatScreen->state = 1; return 8; default: return 0; @@ -1798,7 +1803,7 @@ static u16 sub_811B0BC(void) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - gEasyChatScreen->state = sub_811B2A4(); + sEasyChatScreen->state = sub_811B2A4(); return 7; } @@ -1807,7 +1812,7 @@ static u16 sub_811B0BC(void) static u16 sub_811B0E8(void) { - gEasyChatScreen->state = 10; + sEasyChatScreen->state = 10; return 6; } @@ -1818,8 +1823,8 @@ static u16 sub_811B0F8(void) case MENU_B_PRESSED: // B Button case 1: // No sub_811B454(); - gEasyChatScreen->unk_08 = 0; - gEasyChatScreen->state = 8; + sEasyChatScreen->stateBackup = 0; + sEasyChatScreen->state = 8; return 31; case 0: // Yes gSpecialVar_Result = sub_811B4EC(); @@ -1832,124 +1837,127 @@ static u16 sub_811B0F8(void) static u16 sub_811B150(void) { - if (gEasyChatScreen->kind == 19 || gEasyChatScreen->kind == 11) + if (sEasyChatScreen->type == EASY_CHAT_TYPE_APPRENTICE + || sEasyChatScreen->type == EASY_CHAT_TYPE_CONTEST_INTERVIEW) { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - gEasyChatScreen->state = 8; + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + sEasyChatScreen->state = 8; return 34; } else { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - gEasyChatScreen->state = 4; + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + sEasyChatScreen->state = 4; return 5; } } static int sub_811B184(void) { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - if (gEasyChatScreen->kind != 6) + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + if (sEasyChatScreen->type != EASY_CHAT_TYPE_BARD_SONG) { - gEasyChatScreen->state = 5; + sEasyChatScreen->state = 5; return 4; } else { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - gEasyChatScreen->state = 8; + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + sEasyChatScreen->state = 8; return 32; } } static u16 sub_811B1B4(void) { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - if (gEasyChatScreen->kind == 17) + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_QUESTION) { if (sub_811BD64()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 29; } if (sub_811BDB0()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 30; } - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } - else if (gEasyChatScreen->kind == 18) + else if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_ANSWER) { if (sub_811BDB0()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 30; } if (sub_811BD64()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 29; } - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } - else if (gEasyChatScreen->kind == 9 || gEasyChatScreen->kind == 13) + else if (sEasyChatScreen->type == EASY_CHAT_TYPE_TRENDY_PHRASE + || sEasyChatScreen->type == EASY_CHAT_TYPE_GOOD_SAYING) { if (!sub_811BD2C()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 33; } - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } - else if (gEasyChatScreen->kind == 19 || gEasyChatScreen->kind == 11) + else if (sEasyChatScreen->type == EASY_CHAT_TYPE_APPRENTICE + || sEasyChatScreen->type == EASY_CHAT_TYPE_CONTEST_INTERVIEW) { if (sub_811BCF4()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 34; } - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } - else if (gEasyChatScreen->kind == 20) + else if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUESTIONNAIRE) { - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } else { if (sub_811BCF4() == 1 || !sub_811B4EC()) { - gEasyChatScreen->state = 4; + sEasyChatScreen->state = 4; return 5; } - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } } static int sub_811B264(void) { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - switch (gEasyChatScreen->kind) + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + switch (sEasyChatScreen->type) { - case 15: + case EASY_CHAT_TYPE_QUIZ_ANSWER: return 25; - case 17: + case EASY_CHAT_TYPE_QUIZ_SET_QUESTION: sub_811B3E4(); return 28; - case 18: + case EASY_CHAT_TYPE_QUIZ_SET_ANSWER: sub_811B3E4(); return 27; default: @@ -1959,14 +1967,14 @@ static int sub_811B264(void) static u8 sub_811B2A4(void) { - return gEasyChatScreen->unk_08; + return sEasyChatScreen->stateBackup; } static int sub_811B2B0(void) { u16 var1; - if (gEasyChatScreen->unk_09 == 0) + if (sEasyChatScreen->unk_09 == 0) { u8 groupId = sub_811F3B8(sub_811B8E8()); sub_811F548(0, groupId); @@ -1980,36 +1988,36 @@ static int sub_811B2B0(void) if (var1 == 0) return 0; - gEasyChatScreen->unk_0f = (var1 - 1) / 2; - gEasyChatScreen->unk_0e = 0; - gEasyChatScreen->unk_10 = 0; - gEasyChatScreen->unk_11 = 0; - gEasyChatScreen->state = 3; + sEasyChatScreen->unk_0f = (var1 - 1) / 2; + sEasyChatScreen->unk_0e = 0; + sEasyChatScreen->unk_10 = 0; + sEasyChatScreen->unk_11 = 0; + sEasyChatScreen->state = 3; return 11; } static int sub_811B32C(void) { - gEasyChatScreen->state = 0; + sEasyChatScreen->state = 0; return 10; } static int sub_811B33C(void) { - gEasyChatScreen->unk_0a = 0; - gEasyChatScreen->unk_0b = 0; - gEasyChatScreen->unk_0c = 0; - if (!gEasyChatScreen->unk_09) - gEasyChatScreen->unk_09 = 1; + sEasyChatScreen->unk_0a = 0; + sEasyChatScreen->unk_0b = 0; + sEasyChatScreen->unk_0c = 0; + if (!sEasyChatScreen->unk_09) + sEasyChatScreen->unk_09 = 1; else - gEasyChatScreen->unk_09 = 0; + sEasyChatScreen->unk_09 = 0; return 23; } static int sub_811B368(void) { - if (gEasyChatScreen->kind == 6) + if (sEasyChatScreen->type == EASY_CHAT_TYPE_BARD_SONG) { PlaySE(SE_HAZURE); return 0; @@ -2032,14 +2040,14 @@ static int sub_811B394(void) else { sub_811B488(easyChatWord); - if (gEasyChatScreen->kind != 6) + if (sEasyChatScreen->type != EASY_CHAT_TYPE_BARD_SONG) { - gEasyChatScreen->state = 0; + sEasyChatScreen->state = 0; return 12; } else { - gEasyChatScreen->state = 9; + sEasyChatScreen->state = 9; return 13; } } @@ -2048,36 +2056,36 @@ static int sub_811B394(void) static void sub_811B3E4(void) { int i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) - gEasyChatScreen->words[i] = gEasyChatScreen->ecWordBuffer[i]; + for (i = 0; i < sEasyChatScreen->unk_07; i++) + sEasyChatScreen->words[i] = sEasyChatScreen->ecWordBuffer[i]; } static void sub_811B418(void) { int i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) - gEasyChatScreen->ecWordBuffer[i] = 0xFFFF; + for (i = 0; i < sEasyChatScreen->unk_07; i++) + sEasyChatScreen->ecWordBuffer[i] = 0xFFFF; } static void sub_811B454(void) { int i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) - gEasyChatScreen->ecWordBuffer[i] = gEasyChatScreen->words[i]; + for (i = 0; i < sEasyChatScreen->unk_07; i++) + sEasyChatScreen->ecWordBuffer[i] = sEasyChatScreen->words[i]; } static void sub_811B488(u16 easyChatWord) { u16 index = sub_811B8C8(); - gEasyChatScreen->ecWordBuffer[index] = easyChatWord; + sEasyChatScreen->ecWordBuffer[index] = easyChatWord; } static u8 sub_811B4AC(void) { u16 i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) + for (i = 0; i < sEasyChatScreen->unk_07; i++) { - if (gEasyChatScreen->ecWordBuffer[i] != gEasyChatScreen->words[i]) + if (sEasyChatScreen->ecWordBuffer[i] != sEasyChatScreen->words[i]) return 1; } @@ -2086,7 +2094,7 @@ static u8 sub_811B4AC(void) static int sub_811B4EC(void) { - u8 var0 = gEasyChatScreen->kind - 17; + u8 var0 = sEasyChatScreen->type - EASY_CHAT_TYPE_QUIZ_SET_QUESTION; if (var0 < 2) { if (sub_811BD64()) @@ -2105,9 +2113,9 @@ static int sub_811B4EC(void) static u16 sub_811B528(int arg0) { - if (gEasyChatScreen->unk_0a != -1) + if (sEasyChatScreen->unk_0a != -1) { - if (gEasyChatScreen->unk_09 == 0) + if (sEasyChatScreen->unk_09 == 0) return sub_811B568(arg0); else return sub_811B634(arg0); @@ -2123,32 +2131,32 @@ static int sub_811B568(u32 arg0) switch (arg0) { case 2: - if (gEasyChatScreen->unk_0b != -gEasyChatScreen->unk_0c) + if (sEasyChatScreen->unk_0b != -sEasyChatScreen->unk_0c) { - if (gEasyChatScreen->unk_0b) + if (sEasyChatScreen->unk_0b) { - gEasyChatScreen->unk_0b--; + sEasyChatScreen->unk_0b--; return 15; } else { - gEasyChatScreen->unk_0c--; + sEasyChatScreen->unk_0c--; return 17; } } break; case 3: - if (gEasyChatScreen->unk_0b + gEasyChatScreen->unk_0c < gEasyChatScreen->unk_0d - 1) + if (sEasyChatScreen->unk_0b + sEasyChatScreen->unk_0c < sEasyChatScreen->unk_0d - 1) { int var0; - if (gEasyChatScreen->unk_0b < 3) + if (sEasyChatScreen->unk_0b < 3) { - gEasyChatScreen->unk_0b++; + sEasyChatScreen->unk_0b++; var0 = 15; } else { - gEasyChatScreen->unk_0c++; + sEasyChatScreen->unk_0c++; var0 = 16; } @@ -2157,16 +2165,16 @@ static int sub_811B568(u32 arg0) } break; case 1: - if (gEasyChatScreen->unk_0a) - gEasyChatScreen->unk_0a--; + if (sEasyChatScreen->unk_0a) + sEasyChatScreen->unk_0a--; else sub_811B744(); return 15; case 0: - if (gEasyChatScreen->unk_0a < 1) + if (sEasyChatScreen->unk_0a < 1) { - gEasyChatScreen->unk_0a++; + sEasyChatScreen->unk_0a++; if (sub_811B9C8()) sub_811B744(); } @@ -2185,30 +2193,30 @@ static int sub_811B634(u32 arg0) switch (arg0) { case 2: - if (gEasyChatScreen->unk_0b > 0) - gEasyChatScreen->unk_0b--; + if (sEasyChatScreen->unk_0b > 0) + sEasyChatScreen->unk_0b--; else - gEasyChatScreen->unk_0b = 3; + sEasyChatScreen->unk_0b = 3; sub_811B978(); return 15; case 3: - if (gEasyChatScreen->unk_0b < 3) - gEasyChatScreen->unk_0b++; + if (sEasyChatScreen->unk_0b < 3) + sEasyChatScreen->unk_0b++; else - gEasyChatScreen->unk_0b = 0; + sEasyChatScreen->unk_0b = 0; sub_811B978(); return 15; case 0: - gEasyChatScreen->unk_0a++; + sEasyChatScreen->unk_0a++; if (sub_811B9C8()) sub_811B744(); return 15; case 1: - gEasyChatScreen->unk_0a--; - if (gEasyChatScreen->unk_0a < 0) + sEasyChatScreen->unk_0a--; + if (sEasyChatScreen->unk_0a < 0) sub_811B744(); return 15; @@ -2222,26 +2230,26 @@ static int sub_811B6C4(u32 arg0) switch (arg0) { case 2: - if (gEasyChatScreen->unk_0b) - gEasyChatScreen->unk_0b--; + if (sEasyChatScreen->unk_0b) + sEasyChatScreen->unk_0b--; else - gEasyChatScreen->unk_0b = 2; + sEasyChatScreen->unk_0b = 2; return 15; case 3: - if (gEasyChatScreen->unk_0b < 2) - gEasyChatScreen->unk_0b++; + if (sEasyChatScreen->unk_0b < 2) + sEasyChatScreen->unk_0b++; else - gEasyChatScreen->unk_0b = 0; + sEasyChatScreen->unk_0b = 0; return 15; case 1: - gEasyChatScreen->unk_0b++; + sEasyChatScreen->unk_0b++; sub_811B768(); return 15; case 0: - gEasyChatScreen->unk_0a = 0; - gEasyChatScreen->unk_0b++; + sEasyChatScreen->unk_0a = 0; + sEasyChatScreen->unk_0b++; return 15; } @@ -2250,21 +2258,21 @@ static int sub_811B6C4(u32 arg0) static void sub_811B744(void) { - gEasyChatScreen->unk_0a = 0xFF; - if (gEasyChatScreen->unk_0b) - gEasyChatScreen->unk_0b--; + sEasyChatScreen->unk_0a = 0xFF; + if (sEasyChatScreen->unk_0b) + sEasyChatScreen->unk_0b--; } static void sub_811B768(void) { - if (gEasyChatScreen->unk_09 == 0) + if (sEasyChatScreen->unk_09 == 0) { - gEasyChatScreen->unk_0a = 1; + sEasyChatScreen->unk_0a = 1; sub_811B978(); } else { - gEasyChatScreen->unk_0a = sub_811B960(gEasyChatScreen->unk_0b); + sEasyChatScreen->unk_0a = sub_811B960(sEasyChatScreen->unk_0b); } } @@ -2274,16 +2282,16 @@ static u16 sub_811B794(u32 arg0) switch (arg0) { case 2: - if (gEasyChatScreen->unk_11 + gEasyChatScreen->unk_0e > 0) + if (sEasyChatScreen->unk_11 + sEasyChatScreen->unk_0e > 0) { - if (gEasyChatScreen->unk_11 > 0) + if (sEasyChatScreen->unk_11 > 0) { - gEasyChatScreen->unk_11--; + sEasyChatScreen->unk_11--; result = 18; } else { - gEasyChatScreen->unk_0e--; + sEasyChatScreen->unk_0e--; result = 19; } @@ -2292,16 +2300,16 @@ static u16 sub_811B794(u32 arg0) } break; case 3: - if (gEasyChatScreen->unk_11 + gEasyChatScreen->unk_0e < gEasyChatScreen->unk_0f) + if (sEasyChatScreen->unk_11 + sEasyChatScreen->unk_0e < sEasyChatScreen->unk_0f) { - if (gEasyChatScreen->unk_11 < 3) + if (sEasyChatScreen->unk_11 < 3) { - gEasyChatScreen->unk_11++; + sEasyChatScreen->unk_11++; result = 18; } else { - gEasyChatScreen->unk_0e++; + sEasyChatScreen->unk_0e++; result = 20; } @@ -2310,42 +2318,42 @@ static u16 sub_811B794(u32 arg0) } break; case 1: - if (gEasyChatScreen->unk_10 > 0) - gEasyChatScreen->unk_10--; + if (sEasyChatScreen->unk_10 > 0) + sEasyChatScreen->unk_10--; else - gEasyChatScreen->unk_10 = 1; + sEasyChatScreen->unk_10 = 1; sub_811B9A0(); return 18; case 0: - if (gEasyChatScreen->unk_10 < 1) + if (sEasyChatScreen->unk_10 < 1) { - gEasyChatScreen->unk_10++; + sEasyChatScreen->unk_10++; if (sub_811BA1C()) - gEasyChatScreen->unk_10 = 0; + sEasyChatScreen->unk_10 = 0; } else { - gEasyChatScreen->unk_10 = 0; + sEasyChatScreen->unk_10 = 0; } return 18; case 4: - if (gEasyChatScreen->unk_0e) + if (sEasyChatScreen->unk_0e) { - if (gEasyChatScreen->unk_0e > 3) - gEasyChatScreen->unk_0e -= 4; + if (sEasyChatScreen->unk_0e > 3) + sEasyChatScreen->unk_0e -= 4; else - gEasyChatScreen->unk_0e = 0; + sEasyChatScreen->unk_0e = 0; return 21; } break; case 5: - if (gEasyChatScreen->unk_0e <= gEasyChatScreen->unk_0f - 4) + if (sEasyChatScreen->unk_0e <= sEasyChatScreen->unk_0f - 4) { - gEasyChatScreen->unk_0e += 4; - if (gEasyChatScreen->unk_0e > gEasyChatScreen->unk_0f - 3) - gEasyChatScreen->unk_0e = gEasyChatScreen->unk_0f + 0xFD; + sEasyChatScreen->unk_0e += 4; + if (sEasyChatScreen->unk_0e > sEasyChatScreen->unk_0f - 3) + sEasyChatScreen->unk_0e = sEasyChatScreen->unk_0f + 0xFD; sub_811B9A0(); return 22; @@ -2358,24 +2366,24 @@ static u16 sub_811B794(u32 arg0) static u16 sub_811B8C8(void) { - return (gEasyChatScreen->mainCursorRow * gEasyChatScreen->numColumns) + gEasyChatScreen->mainCursorColumn; + return (sEasyChatScreen->mainCursorRow * sEasyChatScreen->numColumns) + sEasyChatScreen->mainCursorColumn; } static u16 sub_811B8E8(void) { - return 2 * (gEasyChatScreen->unk_0b + gEasyChatScreen->unk_0c) + gEasyChatScreen->unk_0a; + return 2 * (sEasyChatScreen->unk_0b + sEasyChatScreen->unk_0c) + sEasyChatScreen->unk_0a; } static int sub_811B908(void) { - int var0 = (u8)gEasyChatScreen->unk_0a < 7 ? gEasyChatScreen->unk_0a : 0; - int var1 = (u8)gEasyChatScreen->unk_0b < 4 ? gEasyChatScreen->unk_0b : 0; + int var0 = (u8)sEasyChatScreen->unk_0a < 7 ? sEasyChatScreen->unk_0a : 0; + int var1 = (u8)sEasyChatScreen->unk_0b < 4 ? sEasyChatScreen->unk_0b : 0; return sUnknown_08597748[var1][var0]; } static u16 sub_811B940(void) { - return 2 * (gEasyChatScreen->unk_11 + gEasyChatScreen->unk_0e) + gEasyChatScreen->unk_10; + return 2 * (sEasyChatScreen->unk_11 + sEasyChatScreen->unk_0e) + sEasyChatScreen->unk_10; } static u8 sub_811B960(u8 arg0) @@ -2394,8 +2402,8 @@ static void sub_811B978(void) { while (sub_811B9C8()) { - if (gEasyChatScreen->unk_0a) - gEasyChatScreen->unk_0a--; + if (sEasyChatScreen->unk_0a) + sEasyChatScreen->unk_0a--; else break; } @@ -2405,8 +2413,8 @@ static void sub_811B9A0(void) { while (sub_811BA1C()) { - if (gEasyChatScreen->unk_10) - gEasyChatScreen->unk_10--; + if (sEasyChatScreen->unk_10) + sEasyChatScreen->unk_10--; else break; } @@ -2414,10 +2422,10 @@ static void sub_811B9A0(void) static u8 sub_811B9C8(void) { - if (gEasyChatScreen->unk_09 == 0) + if (sEasyChatScreen->unk_09 == 0) return sub_811B8E8() >= sub_811F3AC() ? 1 : 0; else - return gEasyChatScreen->unk_0a > sub_811B960(gEasyChatScreen->unk_0b) ? 1 : 0; + return sEasyChatScreen->unk_0a > sub_811B960(sEasyChatScreen->unk_0b) ? 1 : 0; } static u8 sub_811BA1C(void) @@ -2425,73 +2433,73 @@ static u8 sub_811BA1C(void) return sub_811B940() >= sub_811F5B0() ? 1 : 0; } -static int sub_811BA3C(void) +static int FooterHasFourOptions(void) { - return gEasyChatScreenTemplates[gEasyChatScreen->templateId].unk_03_7; + return sEasyChatScreenTemplates[sEasyChatScreen->templateId].fourFooterOptions; } -u8 sub_811BA5C(void) +static u8 GetEasyChatScreenType(void) { - return gEasyChatScreen->kind; + return sEasyChatScreen->type; } -static u8 sub_811BA68(void) +static u8 GetEasyChatScreenFrameId(void) { - return gEasyChatScreenTemplates[gEasyChatScreen->templateId].unk_03_0; + return sEasyChatScreenTemplates[sEasyChatScreen->templateId].frameId; } -const u8 *sub_811BA88(void) +const u8 *GetTitleText(void) { - return gEasyChatScreen->titleText; + return sEasyChatScreen->titleText; } -u16 *sub_811BA94(void) +static u16 *GetEasyChatWordBuffer(void) { - return gEasyChatScreen->ecWordBuffer; + return sEasyChatScreen->ecWordBuffer; } -u8 sub_811BAA0(void) +static u8 GetNumRows(void) { - return gEasyChatScreen->numRows; + return sEasyChatScreen->numRows; } -u8 sub_811BAAC(void) +static u8 GetNumColumns(void) { - return gEasyChatScreen->numColumns; + return sEasyChatScreen->numColumns; } -u8 sub_811BAB8(void) +static u8 GetMainCursorColumn(void) { - return gEasyChatScreen->mainCursorColumn; + return sEasyChatScreen->mainCursorColumn; } -u8 sub_811BAC4(void) +static u8 GetMainCursorRow(void) { - return gEasyChatScreen->mainCursorRow; + return sEasyChatScreen->mainCursorRow; } static void GetEasyChatInstructionsText(const u8 **str1, const u8 **str2) { - *str1 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].instructionsText1; - *str2 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].instructionsText2; + *str1 = sEasyChatScreenTemplates[sEasyChatScreen->templateId].instructionsText1; + *str2 = sEasyChatScreenTemplates[sEasyChatScreen->templateId].instructionsText2; } static void GetEasyChatConfirmText(const u8 **str1, const u8 **str2) { - *str1 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].confirmText1; - *str2 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].confirmText2; + *str1 = sEasyChatScreenTemplates[sEasyChatScreen->templateId].confirmText1; + *str2 = sEasyChatScreenTemplates[sEasyChatScreen->templateId].confirmText2; } static void sub_811BB40(const u8 **str1, const u8 **str2) { - switch (gEasyChatScreen->kind) + switch (sEasyChatScreen->type) { - case 4: + case EASY_CHAT_TYPE_MAIL: *str1 = gText_StopGivingPkmnMail; *str2 = NULL; break; - case 15: - case 16: + case EASY_CHAT_TYPE_QUIZ_ANSWER: + case EASY_CHAT_TYPE_QUIZ_QUESTION: *str1 = gText_LikeToQuitQuiz; *str2 = gText_ChallengeQuestionMark; break; @@ -2511,34 +2519,34 @@ static void GetEasyChatConfirmDeletionText(const u8 **str1, const u8 **str2) void sub_811BB9C(u8 *arg0, u8 *arg1) { - *arg0 = gEasyChatScreen->unk_0a; - *arg1 = gEasyChatScreen->unk_0b; + *arg0 = sEasyChatScreen->unk_0a; + *arg1 = sEasyChatScreen->unk_0b; } u8 sub_811BBB0(void) { - return gEasyChatScreen->unk_09; + return sEasyChatScreen->unk_09; } u8 sub_811BBBC(void) { - return gEasyChatScreen->unk_0c; + return sEasyChatScreen->unk_0c; } void sub_811BBC8(u8 *arg0, u8 *arg1) { - *arg0 = gEasyChatScreen->unk_10; - *arg1 = gEasyChatScreen->unk_11; + *arg0 = sEasyChatScreen->unk_10; + *arg1 = sEasyChatScreen->unk_11; } u8 sub_811BBDC(void) { - return gEasyChatScreen->unk_0e; + return sEasyChatScreen->unk_0e; } u8 sub_811BBE8(void) { - return gEasyChatScreen->unk_0f; + return sEasyChatScreen->unk_0f; } static u8 unref_sub_811BBF4(void) @@ -2548,14 +2556,14 @@ static u8 unref_sub_811BBF4(void) int sub_811BBF8(void) { - switch (gEasyChatScreen->state) + switch (sEasyChatScreen->state) { case 2: - if (gEasyChatScreen->unk_09 == 0 && gEasyChatScreen->unk_0c) + if (sEasyChatScreen->unk_09 == 0 && sEasyChatScreen->unk_0c) return 1; break; case 3: - if (gEasyChatScreen->unk_0e) + if (sEasyChatScreen->unk_0e) return 1; break; } @@ -2565,14 +2573,14 @@ int sub_811BBF8(void) int sub_811BC2C(void) { - switch (gEasyChatScreen->state) + switch (sEasyChatScreen->state) { case 2: - if (gEasyChatScreen->unk_09 == 0 && gEasyChatScreen->unk_0c + 4 <= gEasyChatScreen->unk_0d - 1) + if (sEasyChatScreen->unk_09 == 0 && sEasyChatScreen->unk_0c + 4 <= sEasyChatScreen->unk_0d - 1) return 1; break; case 3: - if (gEasyChatScreen->unk_0e + 4 <= gEasyChatScreen->unk_0f) + if (sEasyChatScreen->unk_0e + 4 <= sEasyChatScreen->unk_0f) return 1; break; } @@ -2580,9 +2588,9 @@ int sub_811BC2C(void) return 0; } -static int sub_811BC70(void) +static int FooterHasFourOptions_(void) { - return sub_811BA3C(); + return FooterHasFourOptions(); } u8 sub_811BC7C(const u16 *arg0, u8 arg1) @@ -2591,25 +2599,25 @@ u8 sub_811BC7C(const u16 *arg0, u8 arg1) for (i = 0; i < arg1; i++) { - if (arg0[i] != gEasyChatScreen->ecWordBuffer[i]) + if (arg0[i] != sEasyChatScreen->ecWordBuffer[i]) return 1; } return 0; } -u8 sub_811BCBC(void) +static u8 GetDisplayedPersonType(void) { - return gEasyChatScreen->sizeParam; + return sEasyChatScreen->displayedPersonType; } -static u8 sub_811BCC8(u8 entryType) +static u8 GetEachChatScreenTemplateId(u8 type) { u32 i; - for (i = 0; i < ARRAY_COUNT(gEasyChatScreenTemplates); i++) + for (i = 0; i < ARRAY_COUNT(sEasyChatScreenTemplates); i++) { - if (gEasyChatScreenTemplates[i].unk_00 == entryType) + if (sEasyChatScreenTemplates[i].type == type) return i; } @@ -2620,9 +2628,9 @@ static int sub_811BCF4(void) { int i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) + for (i = 0; i < sEasyChatScreen->unk_07; i++) { - if (gEasyChatScreen->ecWordBuffer[i] != 0xFFFF) + if (sEasyChatScreen->ecWordBuffer[i] != 0xFFFF) return 0; } @@ -2633,9 +2641,9 @@ static int sub_811BD2C(void) { int i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) + for (i = 0; i < sEasyChatScreen->unk_07; i++) { - if (gEasyChatScreen->ecWordBuffer[i] == 0xFFFF) + if (sEasyChatScreen->ecWordBuffer[i] == 0xFFFF) return 0; } @@ -2647,7 +2655,7 @@ static int sub_811BD64(void) int i; struct SaveBlock1 *saveBlock1; - if (gEasyChatScreen->kind == 17) + if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_QUESTION) return sub_811BCF4(); saveBlock1 = gSaveBlock1Ptr; @@ -2663,7 +2671,7 @@ static int sub_811BD64(void) static int sub_811BDB0(void) { struct LilycoveLadyQuiz *quiz; - if (gEasyChatScreen->kind == 18) + if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_ANSWER) return sub_811BCF4(); quiz = &gSaveBlock1Ptr->lilycoveLady.quiz; @@ -2694,10 +2702,10 @@ static void sub_811BE54(void) u16 *ecWord; u8 *str; - ecWord = gEasyChatScreen->ecWordBuffer; + ecWord = sEasyChatScreen->ecWordBuffer; str = gStringVar2; i = 0; - while (i < gEasyChatScreen->unk_07) + while (i < sEasyChatScreen->unk_07) { str = CopyEasyChatWordPadded(str, *ecWord, 0); *str = 0; @@ -2712,22 +2720,22 @@ static void sub_811BE54(void) static void sub_811BE9C(void) { - switch (gEasyChatScreen->kind) + switch (sEasyChatScreen->type) { - case 0: + case EASY_CHAT_TYPE_PROFILE: FlagSet(FLAG_SYS_CHAT_USED); break; - case 20: + case EASY_CHAT_TYPE_QUESTIONNAIRE: if (sub_811BF20()) gSpecialVar_0x8004 = 2; else gSpecialVar_0x8004 = 0; break; - case 9: + case EASY_CHAT_TYPE_TRENDY_PHRASE: sub_811BE54(); - gSpecialVar_0x8004 = sub_81226D8(gEasyChatScreen->ecWordBuffer); + gSpecialVar_0x8004 = sub_81226D8(sEasyChatScreen->ecWordBuffer); break; - case 13: + case EASY_CHAT_TYPE_GOOD_SAYING: gSpecialVar_0x8004 = sub_811BF40(); break; } @@ -2752,7 +2760,7 @@ static u16 sub_811BF40(void) static void sub_811BF78(void) { - gEasyChatScreen->unk_13 = 0; + sEasyChatScreen->unk_13 = 0; } static int sub_811BF88(int easyChatWord) @@ -2770,13 +2778,13 @@ static bool8 sub_811BF8C(void) static bool8 sub_811BFA4(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sEasyChatBgTemplates, ARRAY_COUNT(sEasyChatBgTemplates)); - SetBgTilemapBuffer(3, gUnknown_0203A11C->unkB00); - SetBgTilemapBuffer(1, gUnknown_0203A11C->unk300); + SetBgTilemapBuffer(3, sUnknown_0203A11C->unkB00); + SetBgTilemapBuffer(1, sUnknown_0203A11C->unk300); InitWindows(sEasyChatWindowTemplates); DeactivateAllTextPrinters(); sub_811CF64(); @@ -2787,7 +2795,7 @@ static bool8 sub_811BFA4(void) DecompressAndLoadBgGfxUsingHeap(3, gEasyChatWindow_Gfx, 0, 0, 0); CopyToBgTilemapBuffer(3, gEasyChatWindow_Tilemap, 0, 0); sub_811D60C(); - sub_811D424(gUnknown_0203A11C->unk300); + sub_811D424(sUnknown_0203A11C->unk300); sub_811D230(); sub_811E948(); CopyBgTilemapBufferToVram(3); @@ -2804,7 +2812,7 @@ static bool8 sub_811BFA4(void) break; case 4: sub_811DE90(); - if (sub_811BA5C() != 16) + if (GetEasyChatScreenType() != EASY_CHAT_TYPE_QUIZ_QUESTION) sub_811DEC4(); break; case 5: @@ -2830,26 +2838,26 @@ static bool8 sub_811BFA4(void) return FALSE; } - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return TRUE; } static void sub_811C13C(void) { - if (gUnknown_0203A11C) - FREE_AND_SET_NULL(gUnknown_0203A11C); + if (sUnknown_0203A11C) + FREE_AND_SET_NULL(sUnknown_0203A11C); } static void sub_811C158(u16 arg0) { - gUnknown_0203A11C->unk4 = arg0; - gUnknown_0203A11C->unk0 = 0; + sUnknown_0203A11C->unk4 = arg0; + sUnknown_0203A11C->unk0 = 0; sub_811C170(); } static bool8 sub_811C170(void) { - switch (gUnknown_0203A11C->unk4) + switch (sUnknown_0203A11C->unk4) { case 0: return FALSE; case 1: return sub_811C2D4(); @@ -2892,11 +2900,11 @@ static bool8 sub_811C170(void) static bool8 sub_811C2D4(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D2C8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -2910,21 +2918,21 @@ static bool8 sub_811C30C(void) u8 i; u16 *ecWordBuffer; u16 *ecWord; - u8 var0; + u8 frameId; u8 cursorColumn, cursorRow, numColumns; s16 var1; int stringWidth; int trueStringWidth; u8 var2; - u8 sp0[64]; + u8 str[64]; - ecWordBuffer = sub_811BA94(); - var0 = sub_811BA68(); - cursorColumn = sub_811BAB8(); - cursorRow = sub_811BAC4(); - numColumns = sub_811BAAC(); + ecWordBuffer = GetEasyChatWordBuffer(); + frameId = GetEasyChatScreenFrameId(); + cursorColumn = GetMainCursorColumn(); + cursorRow = GetMainCursorRow(); + numColumns = GetNumColumns(); ecWord = &ecWordBuffer[cursorRow * numColumns]; - var1 = 8 * gUnknown_08597C30[var0].unk0_0 + 13; + var1 = 8 * sPhraseFrameDimensions[frameId].left + 13; for (i = 0; i < cursorColumn; i++) { if (*ecWord == 0xFFFF) @@ -2933,8 +2941,8 @@ static bool8 sub_811C30C(void) } else { - CopyEasyChatWord(sp0, *ecWord); - stringWidth = GetStringWidth(1, sp0, 0); + CopyEasyChatWord(str, *ecWord); + stringWidth = GetStringWidth(1, str, 0); } trueStringWidth = stringWidth + 17; @@ -2942,27 +2950,27 @@ static bool8 sub_811C30C(void) ecWord++; } - var2 = 8 * (gUnknown_08597C30[var0].unk0_5 + cursorRow * 2); + var2 = 8 * (sPhraseFrameDimensions[frameId].top + cursorRow * 2); sub_811DF60(var1, var2 + 8); return FALSE; } static bool8 sub_811C3E4(void) { - u8 var0 = sub_811E920(sub_811BAB8()); - sub_811DF60(var0, 96); + u8 xOffset = GetFooterOptionXOffset(GetMainCursorColumn()); + sub_811DF60(xOffset, 96); return FALSE; } static bool8 sub_811C404(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(2); sub_811D214(1); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -2973,13 +2981,13 @@ static bool8 sub_811C404(void) static bool8 sub_811C448(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(3); sub_811D214(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -2990,13 +2998,13 @@ static bool8 sub_811C448(void) static bool8 sub_811C48C(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(1); sub_811D214(1); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3007,14 +3015,14 @@ static bool8 sub_811C48C(void) static bool8 sub_811C4D0(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DFB0(); sub_811D104(0); sub_811D2C8(); ShowBg(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3025,13 +3033,13 @@ static bool8 sub_811C4D0(void) static bool8 sub_811C518(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DFB0(); sub_811D104(0); sub_811D2C8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; // Fall through case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3042,31 +3050,31 @@ static bool8 sub_811C518(void) static bool8 sub_811C554(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); HideBg(0); sub_811DE5C(0, 0, 0, 0); sub_811D6D4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811D9CC(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: if (!IsDma3ManagerBusyWithBgCopy() && !sub_811DAA4()) - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811E3AC(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: @@ -3075,7 +3083,7 @@ static bool8 sub_811C554(void) sub_811DFC8(); sub_811E6E0(0); sub_811E64C(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3088,31 +3096,31 @@ static bool8 sub_811C554(void) static bool8 sub_811C620(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811E050(); sub_811E4AC(); sub_811E6B0(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (sub_811E4D0() == TRUE) break; sub_811D9CC(1); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; // Fall through case 2: if (!sub_811DAA4()) - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811DFB0(); ShowBg(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: @@ -3124,20 +3132,20 @@ static bool8 sub_811C620(void) static bool8 sub_811C6C0(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811E050(); sub_811E6B0(); sub_811E55C(); sub_811D9CC(5); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!sub_811DAA4() && !sub_811E5B8()) { sub_811D6D4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: @@ -3145,7 +3153,7 @@ static bool8 sub_811C6C0(void) { sub_811D9CC(6); sub_811E578(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 3: @@ -3153,7 +3161,7 @@ static bool8 sub_811C6C0(void) { sub_811E64C(); sub_811DFC8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3172,11 +3180,11 @@ static bool8 sub_811C780(void) static bool8 sub_811C78C(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DDAC(1, 4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; // Fall through case 1: if (!sub_811DE10()) @@ -3193,17 +3201,17 @@ static bool8 sub_811C78C(void) static bool8 sub_811C7D4(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DDAC(-1, 4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; // Fall through case 1: if (!sub_811DE10()) { sub_811E64C(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3216,33 +3224,33 @@ static bool8 sub_811C7D4(void) static bool8 sub_811C830(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811E050(); sub_811E4AC(); sub_811E6B0(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!sub_811E4D0()) { sub_811D9B4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811D9CC(2); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 3: if (!sub_811DAA4()) { sub_811D698(2); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: @@ -3252,7 +3260,7 @@ static bool8 sub_811C830(void) sub_811E6E0(1); sub_811E64C(); sub_811E794(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3265,38 +3273,38 @@ static bool8 sub_811C830(void) static bool8 sub_811C8F0(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D2C8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: sub_811E380(); sub_811E6B0(); sub_811E7F8(); sub_811D9B4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811D9CC(3); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 3: if (!sub_811DAA4()) { ShowBg(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811DFB0(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3309,45 +3317,45 @@ static bool8 sub_811C8F0(void) static bool8 sub_811C99C(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D2C8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: sub_811E380(); sub_811E6B0(); sub_811E7F8(); sub_811D9B4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811D9CC(3); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 3: if (!sub_811DAA4()) { sub_811D104(3); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: if (!IsDma3ManagerBusyWithBgCopy()) { ShowBg(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 5: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811DFB0(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3360,34 +3368,34 @@ static bool8 sub_811C99C(void) static bool8 sub_811CA5C(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811E380(); sub_811E6B0(); sub_811E7F8(); sub_811D9B4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811D9CC(4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: if (!sub_811DAA4()) { sub_811D6D4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811E3AC(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: @@ -3396,7 +3404,7 @@ static bool8 sub_811CA5C(void) sub_811DFC8(); sub_811E6E0(0); sub_811E64C(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3413,17 +3421,17 @@ static bool8 sub_811CB18(void) static bool8 sub_811CB24(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D7A4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811DDAC(1, 4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: @@ -3432,7 +3440,7 @@ static bool8 sub_811CB24(void) sub_811E30C(); sub_811E64C(); sub_811E794(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3445,17 +3453,17 @@ static bool8 sub_811CB24(void) static bool8 sub_811CB98(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D7C8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811DDAC(-1, 4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: @@ -3463,7 +3471,7 @@ static bool8 sub_811CB98(void) { sub_811E64C(); sub_811E794(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3476,18 +3484,18 @@ static bool8 sub_811CB98(void) static bool8 sub_811CC08(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D7EC(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { s16 var0 = sub_811BBDC() - sub_811DE48(); sub_811DDAC(var0, 8); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: @@ -3496,7 +3504,7 @@ static bool8 sub_811CC08(void) sub_811E30C(); sub_811E64C(); sub_811E794(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3509,18 +3517,18 @@ static bool8 sub_811CC08(void) static bool8 sub_811CC90(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D830(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { s16 var0 = sub_811BBDC() - sub_811DE48(); sub_811DDAC(var0, 8); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: @@ -3528,7 +3536,7 @@ static bool8 sub_811CC90(void) { sub_811E64C(); sub_811E794(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3541,12 +3549,12 @@ static bool8 sub_811CC90(void) static bool8 sub_811CD14(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3557,12 +3565,12 @@ static bool8 sub_811CD14(void) static bool8 sub_811CD54(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(5); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3573,12 +3581,12 @@ static bool8 sub_811CD54(void) static bool8 sub_811CD94(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(6); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3589,12 +3597,12 @@ static bool8 sub_811CD94(void) static bool8 sub_811CDD4(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(7); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3605,12 +3613,12 @@ static bool8 sub_811CDD4(void) static bool8 sub_811CE14(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(8); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3621,12 +3629,12 @@ static bool8 sub_811CE14(void) static bool8 sub_811CE54(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(9); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3637,22 +3645,22 @@ static bool8 sub_811CE54(void) static bool8 sub_811CE94(void) { - gUnknown_0203A11C = Alloc(sizeof(*gUnknown_0203A11C)); - if (!gUnknown_0203A11C) + sUnknown_0203A11C = Alloc(sizeof(*sUnknown_0203A11C)); + if (!sUnknown_0203A11C) return FALSE; - gUnknown_0203A11C->unk0 = 0; - gUnknown_0203A11C->unk2D8 = NULL; - gUnknown_0203A11C->unk2DC = NULL; - gUnknown_0203A11C->unk2E0 = NULL; - gUnknown_0203A11C->unk2E4 = NULL; - gUnknown_0203A11C->unk2E8 = NULL; - gUnknown_0203A11C->unk2EC = NULL; - gUnknown_0203A11C->unk2F0 = NULL; - gUnknown_0203A11C->unk2F4 = NULL; - gUnknown_0203A11C->unk2F8 = NULL; - gUnknown_0203A11C->unk2FC = NULL; - gUnknown_0203A11C->unkA = sub_811BC70(); + sUnknown_0203A11C->unk0 = 0; + sUnknown_0203A11C->unk2D8 = NULL; + sUnknown_0203A11C->unk2DC = NULL; + sUnknown_0203A11C->unk2E0 = NULL; + sUnknown_0203A11C->unk2E4 = NULL; + sUnknown_0203A11C->unk2E8 = NULL; + sUnknown_0203A11C->unk2EC = NULL; + sUnknown_0203A11C->unk2F0 = NULL; + sUnknown_0203A11C->unk2F4 = NULL; + sUnknown_0203A11C->unk2F8 = NULL; + sUnknown_0203A11C->unk2FC = NULL; + sUnknown_0203A11C->unkA = FooterHasFourOptions_(); return TRUE; } @@ -3684,7 +3692,7 @@ static void sub_811CF64(void) static void sub_811CFCC(void) { int xOffset; - const u8 *titleText = sub_811BA88(); + const u8 *titleText = GetTitleText(); if (!titleText) return; @@ -3776,19 +3784,19 @@ static void sub_811D214(u8 initialCursorPos) static void sub_811D230(void) { - u8 var0; + u8 frameId; struct WindowTemplate template; - var0 = sub_811BA68(); + frameId = GetEasyChatScreenFrameId(); template.bg = 3; - template.tilemapLeft = gUnknown_08597C30[var0].unk0_0; - template.tilemapTop = gUnknown_08597C30[var0].unk0_5; - template.width = gUnknown_08597C30[var0].unk1; - template.height = gUnknown_08597C30[var0].unk2; + template.tilemapLeft = sPhraseFrameDimensions[frameId].left; + template.tilemapTop = sPhraseFrameDimensions[frameId].top; + template.width = sPhraseFrameDimensions[frameId].width; + template.height = sPhraseFrameDimensions[frameId].height; template.paletteNum = 11; template.baseBlock = 0x6C; - gUnknown_0203A11C->windowId = AddWindow(&template); - PutWindowTilemap(gUnknown_0203A11C->windowId); + sUnknown_0203A11C->windowId = AddWindow(&template); + PutWindowTilemap(sUnknown_0203A11C->windowId); } static void sub_811D2C8(void) @@ -3797,27 +3805,27 @@ static void sub_811D2C8(void) u16 *ecWord; u8 numColumns, numRows; u8 *str; - int var0; + int frameId; int var1; int i, j, k; - ecWord = sub_811BA94(); - numColumns = sub_811BAAC(); - numRows = sub_811BAA0(); - var0 = sub_811BA68(); + ecWord = GetEasyChatWordBuffer(); + numColumns = GetNumColumns(); + numRows = GetNumRows(); + frameId = GetEasyChatScreenFrameId(); var1 = 0; - if (var0 == 7) + if (frameId == 7) var1 = 1; - FillWindowPixelBuffer(gUnknown_0203A11C->windowId, 0x11); + FillWindowPixelBuffer(sUnknown_0203A11C->windowId, 0x11); for (i = 0; i < numRows; i++) { memcpy(spC, sText_Clear17, sizeof(sText_Clear17)); if (var1) spC[2] = 6; - str = gUnknown_0203A11C->unkB; - gUnknown_0203A11C->unkB[0] = EOS; + str = sUnknown_0203A11C->unkB; + sUnknown_0203A11C->unkB[0] = EOS; str = StringAppend(str, spC); for (j = 0; j < numColumns; j++) { @@ -3846,7 +3854,7 @@ static void sub_811D2C8(void) spC[2] = 3; str = StringAppend(str, spC); - if (var0 == 2 || var0 == 7 || var0 == 8) + if (frameId == 2 || frameId == 7 || frameId == 8) { if (j == 0 && i == 4) break; @@ -3854,27 +3862,27 @@ static void sub_811D2C8(void) } *str = EOS; - sub_811D028(gUnknown_0203A11C->windowId, 1, gUnknown_0203A11C->unkB, 0, i * 16 + 1, 0xFF, 0); + sub_811D028(sUnknown_0203A11C->windowId, 1, sUnknown_0203A11C->unkB, 0, i * 16 + 1, 0xFF, 0); } - CopyWindowToVram(gUnknown_0203A11C->windowId, 3); + CopyWindowToVram(sUnknown_0203A11C->windowId, 3); } static void sub_811D424(u16 *tilemap) { - u8 var0; + u8 frameId; int right, bottom; int x, y; - var0 = sub_811BA68(); + frameId = GetEasyChatScreenFrameId(); CpuFastFill(0, tilemap, BG_SCREEN_SIZE); - if (var0 == 2 || var0 == 8) + if (frameId == 2 || frameId == 8) { - right = gUnknown_08597C30[var0].unk0_0 + gUnknown_08597C30[var0].unk1; - bottom = gUnknown_08597C30[var0].unk0_5 + gUnknown_08597C30[var0].unk2; - for (y = gUnknown_08597C30[var0].unk0_5; y < bottom; y++) + right = sPhraseFrameDimensions[frameId].left + sPhraseFrameDimensions[frameId].width; + bottom = sPhraseFrameDimensions[frameId].top + sPhraseFrameDimensions[frameId].height; + for (y = sPhraseFrameDimensions[frameId].top; y < bottom; y++) { - x = gUnknown_08597C30[var0].unk0_0 - 1; + x = sPhraseFrameDimensions[frameId].left - 1; tilemap[y * 32 + x] = 0x1005; x++; for (; x < right; x++) @@ -3885,10 +3893,10 @@ static void sub_811D424(u16 *tilemap) } else { - y = gUnknown_08597C30[var0].unk0_5 - 1; - x = gUnknown_08597C30[var0].unk0_0 - 1; - right = gUnknown_08597C30[var0].unk0_0 + gUnknown_08597C30[var0].unk1; - bottom = gUnknown_08597C30[var0].unk0_5 + gUnknown_08597C30[var0].unk2; + y = sPhraseFrameDimensions[frameId].top - 1; + x = sPhraseFrameDimensions[frameId].left - 1; + right = sPhraseFrameDimensions[frameId].left + sPhraseFrameDimensions[frameId].width; + bottom = sPhraseFrameDimensions[frameId].top + sPhraseFrameDimensions[frameId].height; tilemap[y * 32 + x] = 0x1001; x++; for (; x < right; x++) @@ -3898,7 +3906,7 @@ static void sub_811D424(u16 *tilemap) y++; for (; y < bottom; y++) { - x = gUnknown_08597C30[var0].unk0_0 - 1; + x = sPhraseFrameDimensions[frameId].left - 1; tilemap[y * 32 + x] = 0x1005; x++; for (; x < right; x++) @@ -3907,7 +3915,7 @@ static void sub_811D424(u16 *tilemap) tilemap[y* 32 + x] = 0x1007; } - x = gUnknown_08597C30[var0].unk0_0 - 1; + x = sPhraseFrameDimensions[frameId].left - 1; tilemap[y * 32 + x] = 0x1009; x++; for (; x < right; x++) @@ -3919,12 +3927,12 @@ static void sub_811D424(u16 *tilemap) static void sub_811D60C(void) { - u8 var0; + u8 frameId; u16 *tilemap; tilemap = GetBgTilemapBuffer(3); - var0 = sub_811BA68(); - switch (gUnknown_08597C30[var0].unk3) + frameId = GetEasyChatScreenFrameId(); + switch (sPhraseFrameDimensions[frameId].footerId) { case 2: tilemap += 0x2A0; @@ -4072,11 +4080,11 @@ static void sub_811D864(u8 arg0, u8 arg1) easyChatWord = sub_811F578(var0++); if (easyChatWord != 0xFFFF) { - CopyEasyChatWordPadded(gUnknown_0203A11C->unkCC, easyChatWord, 0); + CopyEasyChatWordPadded(sUnknown_0203A11C->unkCC, easyChatWord, 0); if (!sub_811BF88(easyChatWord)) - sub_811D028(2, 1, gUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, NULL); + sub_811D028(2, 1, sUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, NULL); else - sub_811D058(2, 1, gUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, 1, 5, 3); + sub_811D058(2, 1, sUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, 1, 5, 3); } } @@ -4122,48 +4130,48 @@ static void sub_811D9CC(int arg0) switch (arg0) { case 0: - gUnknown_0203A11C->unk6 = 0; - gUnknown_0203A11C->unk7 = 10; + sUnknown_0203A11C->unk6 = 0; + sUnknown_0203A11C->unk7 = 10; break; case 1: - gUnknown_0203A11C->unk6 = 9; - gUnknown_0203A11C->unk7 = 0; + sUnknown_0203A11C->unk6 = 9; + sUnknown_0203A11C->unk7 = 0; break; case 2: - gUnknown_0203A11C->unk6 = 11; - gUnknown_0203A11C->unk7 = 17; + sUnknown_0203A11C->unk6 = 11; + sUnknown_0203A11C->unk7 = 17; break; case 3: - gUnknown_0203A11C->unk6 = 17; - gUnknown_0203A11C->unk7 = 0; + sUnknown_0203A11C->unk6 = 17; + sUnknown_0203A11C->unk7 = 0; break; case 4: - gUnknown_0203A11C->unk6 = 17; - gUnknown_0203A11C->unk7 = 10; + sUnknown_0203A11C->unk6 = 17; + sUnknown_0203A11C->unk7 = 10; break; case 5: - gUnknown_0203A11C->unk6 = 18; - gUnknown_0203A11C->unk7 = 22; + sUnknown_0203A11C->unk6 = 18; + sUnknown_0203A11C->unk7 = 22; break; case 6: - gUnknown_0203A11C->unk6 = 22; - gUnknown_0203A11C->unk7 = 18; + sUnknown_0203A11C->unk6 = 22; + sUnknown_0203A11C->unk7 = 18; break; } - gUnknown_0203A11C->unk8 = gUnknown_0203A11C->unk6 < gUnknown_0203A11C->unk7 ? 1 : -1; + sUnknown_0203A11C->unk8 = sUnknown_0203A11C->unk6 < sUnknown_0203A11C->unk7 ? 1 : -1; } static bool8 sub_811DAA4(void) { u8 var0, var1; - if (gUnknown_0203A11C->unk6 == gUnknown_0203A11C->unk7) + if (sUnknown_0203A11C->unk6 == sUnknown_0203A11C->unk7) return FALSE; - gUnknown_0203A11C->unk6 += gUnknown_0203A11C->unk8; - sub_811DADC(gUnknown_0203A11C->unk6); - var0 = gUnknown_0203A11C->unk6; - var1 = gUnknown_0203A11C->unk7; + sUnknown_0203A11C->unk6 += sUnknown_0203A11C->unk8; + sub_811DADC(sUnknown_0203A11C->unk6); + var0 = sUnknown_0203A11C->unk6; + var1 = sUnknown_0203A11C->unk7; return (var0 ^ var1) > 0; } @@ -4244,7 +4252,7 @@ static void sub_811DC28(int left, int top, int width, int height) int bottom; int x, y; - tilemap = gUnknown_0203A11C->unk300; + tilemap = sUnknown_0203A11C->unk300; right = left + width - 1; bottom = top + height - 1; x = left; @@ -4278,7 +4286,7 @@ static void sub_811DC28(int left, int top, int width, int height) static void sub_811DD84(void) { ChangeBgY(2, 0x800, 0); - gUnknown_0203A11C->unk2CE = 0; + sUnknown_0203A11C->unk2CE = 0; } static void sub_811DDAC(s16 arg0, u8 arg1) @@ -4287,15 +4295,15 @@ static void sub_811DDAC(s16 arg0, u8 arg1) s16 var0; bgY = GetBgY(2); - gUnknown_0203A11C->unk2CE += arg0; + sUnknown_0203A11C->unk2CE += arg0; var0 = arg0 * 16; bgY += var0 << 8; if (arg1) { - gUnknown_0203A11C->unk2D0 = bgY; - gUnknown_0203A11C->unk2D4 = arg1 * 256; + sUnknown_0203A11C->unk2D0 = bgY; + sUnknown_0203A11C->unk2D4 = arg1 * 256; if (var0 < 0) - gUnknown_0203A11C->unk2D4 = -gUnknown_0203A11C->unk2D4; + sUnknown_0203A11C->unk2D4 = -sUnknown_0203A11C->unk2D4; } else { @@ -4308,20 +4316,20 @@ static bool8 sub_811DE10(void) int bgY; bgY = GetBgY(2); - if (bgY == gUnknown_0203A11C->unk2D0) + if (bgY == sUnknown_0203A11C->unk2D0) { return FALSE; } else { - ChangeBgY(2, gUnknown_0203A11C->unk2D4, 1); + ChangeBgY(2, sUnknown_0203A11C->unk2D4, 1); return TRUE; } } static int sub_811DE48(void) { - return gUnknown_0203A11C->unk2CE; + return sUnknown_0203A11C->unk2CE; } static void sub_811DE5C(u8 left, u8 top, u8 width, u8 height) @@ -4336,19 +4344,19 @@ static void sub_811DE90(void) { u32 i; - LoadSpriteSheets(sUnknown_08597CA0); - LoadSpritePalettes(sUnknown_08597CC0); + LoadSpriteSheets(sEasyChatSpriteSheets); + LoadSpritePalettes(sEasyChatSpritePalettes); for (i = 0; i < ARRAY_COUNT(sUnknown_08597CE8); i++) LoadCompressedSpriteSheet(&sUnknown_08597CE8[i]); } static void sub_811DEC4(void) { - u8 var0 = sub_811BA68(); - int x = gUnknown_08597C30[var0].unk0_0 * 8 + 13; - int y = gUnknown_08597C30[var0].unk0_5 * 8 + 8; + u8 frameId = GetEasyChatScreenFrameId(); + int x = sPhraseFrameDimensions[frameId].left * 8 + 13; + int y = sPhraseFrameDimensions[frameId].top * 8 + 8; u8 spriteId = CreateSprite(&sUnknown_08597D18, x, y, 2); - gUnknown_0203A11C->unk2D8 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2D8 = &gSprites[spriteId]; gSprites[spriteId].data[1] = 1; } @@ -4367,44 +4375,44 @@ static void sub_811DF28(struct Sprite *sprite) static void sub_811DF60(u8 x, u8 y) { - gUnknown_0203A11C->unk2D8->pos1.x = x; - gUnknown_0203A11C->unk2D8->pos1.y = y; - gUnknown_0203A11C->unk2D8->pos2.x = 0; - gUnknown_0203A11C->unk2D8->data[0] = 0; + sUnknown_0203A11C->unk2D8->pos1.x = x; + sUnknown_0203A11C->unk2D8->pos1.y = y; + sUnknown_0203A11C->unk2D8->pos2.x = 0; + sUnknown_0203A11C->unk2D8->data[0] = 0; } static void sub_811DF90(void) { - gUnknown_0203A11C->unk2D8->data[0] = 0; - gUnknown_0203A11C->unk2D8->data[1] = 0; - gUnknown_0203A11C->unk2D8->pos2.x = 0; + sUnknown_0203A11C->unk2D8->data[0] = 0; + sUnknown_0203A11C->unk2D8->data[1] = 0; + sUnknown_0203A11C->unk2D8->pos2.x = 0; } static void sub_811DFB0(void) { - gUnknown_0203A11C->unk2D8->data[1] = 1; + sUnknown_0203A11C->unk2D8->data[1] = 1; } static void sub_811DFC8(void) { u8 spriteId = CreateSprite(&sUnknown_08597D68, 0, 0, 3); - gUnknown_0203A11C->unk2DC = &gSprites[spriteId]; - gUnknown_0203A11C->unk2DC->pos2.x = 32; + sUnknown_0203A11C->unk2DC = &gSprites[spriteId]; + sUnknown_0203A11C->unk2DC->pos2.x = 32; spriteId = CreateSprite(&sUnknown_08597D68, 0, 0, 3); - gUnknown_0203A11C->unk2E0 = &gSprites[spriteId]; - gUnknown_0203A11C->unk2E0->pos2.x = -32; + sUnknown_0203A11C->unk2E0 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2E0->pos2.x = -32; - gUnknown_0203A11C->unk2DC->hFlip = 1; + sUnknown_0203A11C->unk2DC->hFlip = 1; sub_811E088(); } static void sub_811E050(void) { - DestroySprite(gUnknown_0203A11C->unk2DC); - gUnknown_0203A11C->unk2DC = NULL; - DestroySprite(gUnknown_0203A11C->unk2E0); - gUnknown_0203A11C->unk2E0 = NULL; + DestroySprite(sUnknown_0203A11C->unk2DC); + sUnknown_0203A11C->unk2DC = NULL; + DestroySprite(sUnknown_0203A11C->unk2E0); + sUnknown_0203A11C->unk2E0 = NULL; } static void sub_811E088(void) @@ -4412,7 +4420,7 @@ static void sub_811E088(void) u8 var0; u8 var1; - if (gUnknown_0203A11C->unk2DC && gUnknown_0203A11C->unk2E0) + if (sUnknown_0203A11C->unk2DC && sUnknown_0203A11C->unk2E0) { sub_811BB9C(&var0, &var1); if (!sub_811BBB0()) @@ -4426,23 +4434,23 @@ static void sub_811E0EC(s8 arg0, s8 arg1) { if (arg0 != -1) { - StartSpriteAnim(gUnknown_0203A11C->unk2DC, 0); - gUnknown_0203A11C->unk2DC->pos1.x = arg0 * 84 + 58; - gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 96; + StartSpriteAnim(sUnknown_0203A11C->unk2DC, 0); + sUnknown_0203A11C->unk2DC->pos1.x = arg0 * 84 + 58; + sUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 96; - StartSpriteAnim(gUnknown_0203A11C->unk2E0, 0); - gUnknown_0203A11C->unk2E0->pos1.x = arg0 * 84 + 58; - gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 96; + StartSpriteAnim(sUnknown_0203A11C->unk2E0, 0); + sUnknown_0203A11C->unk2E0->pos1.x = arg0 * 84 + 58; + sUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 96; } else { - StartSpriteAnim(gUnknown_0203A11C->unk2DC, 1); - gUnknown_0203A11C->unk2DC->pos1.x = 216; - gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; + StartSpriteAnim(sUnknown_0203A11C->unk2DC, 1); + sUnknown_0203A11C->unk2DC->pos1.x = 216; + sUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; - StartSpriteAnim(gUnknown_0203A11C->unk2E0, 1); - gUnknown_0203A11C->unk2E0->pos1.x = 216; - gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; + StartSpriteAnim(sUnknown_0203A11C->unk2E0, 1); + sUnknown_0203A11C->unk2E0->pos1.x = 216; + sUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; } } @@ -4466,32 +4474,32 @@ static void sub_811E1A4(s8 arg0, s8 arg1) anim = 3; } - StartSpriteAnim(gUnknown_0203A11C->unk2DC, anim); - gUnknown_0203A11C->unk2DC->pos1.x = x; - gUnknown_0203A11C->unk2DC->pos1.y = y; + StartSpriteAnim(sUnknown_0203A11C->unk2DC, anim); + sUnknown_0203A11C->unk2DC->pos1.x = x; + sUnknown_0203A11C->unk2DC->pos1.y = y; - StartSpriteAnim(gUnknown_0203A11C->unk2E0, anim); - gUnknown_0203A11C->unk2E0->pos1.x = x; - gUnknown_0203A11C->unk2E0->pos1.y = y; + StartSpriteAnim(sUnknown_0203A11C->unk2E0, anim); + sUnknown_0203A11C->unk2E0->pos1.x = x; + sUnknown_0203A11C->unk2E0->pos1.y = y; } else { - StartSpriteAnim(gUnknown_0203A11C->unk2DC, 1); - gUnknown_0203A11C->unk2DC->pos1.x = 216; - gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; + StartSpriteAnim(sUnknown_0203A11C->unk2DC, 1); + sUnknown_0203A11C->unk2DC->pos1.x = 216; + sUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; - StartSpriteAnim(gUnknown_0203A11C->unk2E0, 1); - gUnknown_0203A11C->unk2E0->pos1.x = 216; - gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; + StartSpriteAnim(sUnknown_0203A11C->unk2E0, 1); + sUnknown_0203A11C->unk2E0->pos1.x = 216; + sUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; } } static void sub_811E288(void) { u8 spriteId = CreateSprite(&sUnknown_08597D18, 0, 0, 4); - gUnknown_0203A11C->unk2E4 = &gSprites[spriteId]; - gUnknown_0203A11C->unk2E4->callback = sub_811E2DC; - gUnknown_0203A11C->unk2E4->oam.priority = 2; + sUnknown_0203A11C->unk2E4 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2E4->callback = sub_811E2DC; + sUnknown_0203A11C->unk2E4->oam.priority = 2; sub_811E30C(); } @@ -4518,58 +4526,58 @@ static void sub_811E30C(void) static void sub_811E34C(u8 x, u8 y) { - if (gUnknown_0203A11C->unk2E4) + if (sUnknown_0203A11C->unk2E4) { - gUnknown_0203A11C->unk2E4->pos1.x = x; - gUnknown_0203A11C->unk2E4->pos1.y = y; - gUnknown_0203A11C->unk2E4->pos2.x = 0; - gUnknown_0203A11C->unk2E4->data[0] = 0; + sUnknown_0203A11C->unk2E4->pos1.x = x; + sUnknown_0203A11C->unk2E4->pos1.y = y; + sUnknown_0203A11C->unk2E4->pos2.x = 0; + sUnknown_0203A11C->unk2E4->data[0] = 0; } } static void sub_811E380(void) { - if (gUnknown_0203A11C->unk2E4) + if (sUnknown_0203A11C->unk2E4) { - DestroySprite(gUnknown_0203A11C->unk2E4); - gUnknown_0203A11C->unk2E4 = NULL; + DestroySprite(sUnknown_0203A11C->unk2E4); + sUnknown_0203A11C->unk2E4 = NULL; } } static void sub_811E3AC(void) { u8 spriteId = CreateSprite(&sUnknown_08597DF0, 208, 128, 6); - gUnknown_0203A11C->unk2E8 = &gSprites[spriteId]; - gUnknown_0203A11C->unk2E8->pos2.x = -64; + sUnknown_0203A11C->unk2E8 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2E8->pos2.x = -64; spriteId = CreateSprite(&sUnknown_08597DD0, 208, 80, 5); - gUnknown_0203A11C->unk2EC = &gSprites[spriteId]; - gUnknown_0203A11C->unk9 = 0; + sUnknown_0203A11C->unk2EC = &gSprites[spriteId]; + sUnknown_0203A11C->unk9 = 0; } static bool8 sub_811E418(void) { - switch (gUnknown_0203A11C->unk9) + switch (sUnknown_0203A11C->unk9) { default: return FALSE; case 0: - gUnknown_0203A11C->unk2E8->pos2.x += 8; - if (gUnknown_0203A11C->unk2E8->pos2.x >= 0) + sUnknown_0203A11C->unk2E8->pos2.x += 8; + if (sUnknown_0203A11C->unk2E8->pos2.x >= 0) { - gUnknown_0203A11C->unk2E8->pos2.x = 0; + sUnknown_0203A11C->unk2E8->pos2.x = 0; if (!sub_811BBB0()) - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 1); + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 1); else - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 2); + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 2); - gUnknown_0203A11C->unk9++; + sUnknown_0203A11C->unk9++; } break; case 1: - if (gUnknown_0203A11C->unk2EC->animEnded) + if (sUnknown_0203A11C->unk2EC->animEnded) { - gUnknown_0203A11C->unk9 = 2; + sUnknown_0203A11C->unk9 = 2; return FALSE; } } @@ -4579,29 +4587,29 @@ static bool8 sub_811E418(void) static void sub_811E4AC(void) { - gUnknown_0203A11C->unk9 = 0; - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 3); + sUnknown_0203A11C->unk9 = 0; + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 3); } static bool8 sub_811E4D0(void) { - switch (gUnknown_0203A11C->unk9) + switch (sUnknown_0203A11C->unk9) { default: return FALSE; case 0: - if (gUnknown_0203A11C->unk2EC->animEnded) - gUnknown_0203A11C->unk9 = 1; + if (sUnknown_0203A11C->unk2EC->animEnded) + sUnknown_0203A11C->unk9 = 1; break; case 1: - gUnknown_0203A11C->unk2E8->pos2.x -= 8; - if (gUnknown_0203A11C->unk2E8->pos2.x <= -64) + sUnknown_0203A11C->unk2E8->pos2.x -= 8; + if (sUnknown_0203A11C->unk2E8->pos2.x <= -64) { - DestroySprite(gUnknown_0203A11C->unk2EC); - DestroySprite(gUnknown_0203A11C->unk2E8); - gUnknown_0203A11C->unk2EC = NULL; - gUnknown_0203A11C->unk2E8 = NULL; - gUnknown_0203A11C->unk9++; + DestroySprite(sUnknown_0203A11C->unk2EC); + DestroySprite(sUnknown_0203A11C->unk2E8); + sUnknown_0203A11C->unk2EC = NULL; + sUnknown_0203A11C->unk2E8 = NULL; + sUnknown_0203A11C->unk9++; return FALSE; } } @@ -4611,33 +4619,33 @@ static bool8 sub_811E4D0(void) static void sub_811E55C(void) { - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 4); + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 4); } static void sub_811E578(void) { if (!sub_811BBB0()) - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 1); + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 1); else - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 2); + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 2); } static bool8 sub_811E5B8(void) { - return !gUnknown_0203A11C->unk2EC->animEnded; + return !sUnknown_0203A11C->unk2EC->animEnded; } static void sub_811E5D4(void) { u8 spriteId = CreateSprite(&sUnknown_08597E48, 96, 80, 0); if (spriteId != MAX_SPRITES) - gUnknown_0203A11C->unk2F0 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2F0 = &gSprites[spriteId]; spriteId = CreateSprite(&sUnknown_08597E48, 96, 156, 0); if (spriteId != MAX_SPRITES) { - gUnknown_0203A11C->unk2F4 = &gSprites[spriteId]; - gUnknown_0203A11C->unk2F4->vFlip = 1; + sUnknown_0203A11C->unk2F4 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2F4->vFlip = 1; } sub_811E6B0(); @@ -4645,27 +4653,27 @@ static void sub_811E5D4(void) static void sub_811E64C(void) { - gUnknown_0203A11C->unk2F0->invisible = !sub_811BBF8(); - gUnknown_0203A11C->unk2F4->invisible = !sub_811BC2C(); + sUnknown_0203A11C->unk2F0->invisible = !sub_811BBF8(); + sUnknown_0203A11C->unk2F4->invisible = !sub_811BC2C(); } static void sub_811E6B0(void) { - gUnknown_0203A11C->unk2F0->invisible = 1; - gUnknown_0203A11C->unk2F4->invisible = 1; + sUnknown_0203A11C->unk2F0->invisible = 1; + sUnknown_0203A11C->unk2F4->invisible = 1; } static void sub_811E6E0(int arg0) { if (!arg0) { - gUnknown_0203A11C->unk2F0->pos1.x = 96; - gUnknown_0203A11C->unk2F4->pos1.x = 96; + sUnknown_0203A11C->unk2F0->pos1.x = 96; + sUnknown_0203A11C->unk2F4->pos1.x = 96; } else { - gUnknown_0203A11C->unk2F0->pos1.x = 120; - gUnknown_0203A11C->unk2F4->pos1.x = 120; + sUnknown_0203A11C->unk2F0->pos1.x = 120; + sUnknown_0203A11C->unk2F4->pos1.x = 120; } } @@ -4673,13 +4681,13 @@ static void sub_811E720(void) { u8 spriteId = CreateSprite(&sUnknown_08597E30, 220, 84, 1); if (spriteId != MAX_SPRITES) - gUnknown_0203A11C->unk2F8 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2F8 = &gSprites[spriteId]; spriteId = CreateSprite(&sUnknown_08597E30, 220, 156, 1); if (spriteId != MAX_SPRITES) { - gUnknown_0203A11C->unk2FC = &gSprites[spriteId]; - StartSpriteAnim(gUnknown_0203A11C->unk2FC, 1); + sUnknown_0203A11C->unk2FC = &gSprites[spriteId]; + StartSpriteAnim(sUnknown_0203A11C->unk2FC, 1); } sub_811E7F8(); @@ -4687,14 +4695,14 @@ static void sub_811E720(void) static void sub_811E794(void) { - gUnknown_0203A11C->unk2F8->invisible = !sub_811BBF8(); - gUnknown_0203A11C->unk2FC->invisible = !sub_811BC2C(); + sUnknown_0203A11C->unk2F8->invisible = !sub_811BBF8(); + sUnknown_0203A11C->unk2FC->invisible = !sub_811BC2C(); } static void sub_811E7F8(void) { - gUnknown_0203A11C->unk2F8->invisible = 1; - gUnknown_0203A11C->unk2FC->invisible = 1; + sUnknown_0203A11C->unk2F8->invisible = 1; + sUnknown_0203A11C->unk2FC->invisible = 1; } static void sub_811E828(void) @@ -4702,22 +4710,22 @@ static void sub_811E828(void) int graphicsId; u8 spriteId; - switch (sub_811BCBC()) + switch (GetDisplayedPersonType()) { - case 0: + case EASY_CHAT_PERSON_REPORTER_MALE: graphicsId = EVENT_OBJ_GFX_REPORTER_M; break; - case 1: + case EASY_CHAT_PERSON_REPORTER_FEMALE: graphicsId = EVENT_OBJ_GFX_REPORTER_F; break; - case 2: + case EASY_CHAT_PERSON_BOY: graphicsId = EVENT_OBJ_GFX_BOY_1; break; default: return; } - if (sub_811BA68() != 4) + if (GetEasyChatScreenFrameId() != 4) return; spriteId = AddPseudoEventObject(graphicsId, SpriteCallbackDummy, 76, 40, 0); @@ -4741,10 +4749,10 @@ static void sub_811E828(void) } } -int sub_811E8E4(void) +int GetFooterIndex(void) { - u8 var0 = sub_811BA68(); - switch (gUnknown_08597C30[var0].unk3) + u8 frameId = GetEasyChatScreenFrameId(); + switch (sPhraseFrameDimensions[frameId].footerId) { case 1: return 1; @@ -4757,11 +4765,11 @@ int sub_811E8E4(void) } } -static int sub_811E920(int arg0) +static int GetFooterOptionXOffset(int option) { - int var0 = sub_811E8E4(); - if (var0 < 3) - return sUnknown_08597E60[var0][arg0] + 4; + int footerIndex = GetFooterIndex(); + if (footerIndex < 3) + return sFooterOptionXOffsets[footerIndex][option] + 4; else return 0; } @@ -4771,8 +4779,8 @@ static void sub_811E948(void) int i; u16 windowId; struct WindowTemplate template; - int var0 = sub_811E8E4(); - if (var0 == 3) + int footerId = GetFooterIndex(); + if (footerId == 3) return; template.bg = 3; @@ -4786,10 +4794,10 @@ static void sub_811E948(void) FillWindowPixelBuffer(windowId, 0x11); for (i = 0; i < 4; i++) { - const u8 *str = sFooterTextOptions[var0][i]; + const u8 *str = sFooterTextOptions[footerId][i]; if (str) { - int x = sUnknown_08597E60[var0][i]; + int x = sFooterOptionXOffsets[footerId][i]; sub_811D028(windowId, 1, str, x, 1, 0, NULL); } } @@ -5075,13 +5083,13 @@ void sub_811EECC(void) switch (gSpecialVar_0x8004) { case 0: - easyChatWords = gSaveBlock1Ptr->unk2BB0; + easyChatWords = gSaveBlock1Ptr->easyChatProfile; columns = 2; rows = 2; break; case 1: - easyChatWords = gSaveBlock1Ptr->unk2BBC; - if (sub_811EDC4(gSaveBlock1Ptr->unk2BBC, 3, 2, 18)) + easyChatWords = gSaveBlock1Ptr->easyChatBattleStart; + if (sub_811EDC4(gSaveBlock1Ptr->easyChatBattleStart, 3, 2, 18)) { columns = 2; rows = 3; @@ -5093,12 +5101,12 @@ void sub_811EECC(void) } break; case 2: - easyChatWords = gSaveBlock1Ptr->unk2BC8; + easyChatWords = gSaveBlock1Ptr->easyChatBattleWon; columns = 3; rows = 2; break; case 3: - easyChatWords = gSaveBlock1Ptr->unk2BD4; + easyChatWords = gSaveBlock1Ptr->easyChatBattleLost; columns = 3; rows = 2; break; @@ -5237,16 +5245,16 @@ void InitEasyChatPhrases(void) u16 i, j; for (i = 0; i < 4; i++) - gSaveBlock1Ptr->unk2BB0[i] = sUnknown_0859E62C[i]; + gSaveBlock1Ptr->easyChatProfile[i] = sDefaultProfileWords[i]; for (i = 0; i < 6; i++) - gSaveBlock1Ptr->unk2BBC[i] = sUnknown_0859E634[i]; + gSaveBlock1Ptr->easyChatBattleStart[i] = sDefaultBattleStartWords[i]; for (i = 0; i < 6; i++) - gSaveBlock1Ptr->unk2BC8[i] = sUnknown_0859E640[i]; + gSaveBlock1Ptr->easyChatBattleWon[i] = sUnknown_0859E640[i]; for (i = 0; i < 6; i++) - gSaveBlock1Ptr->unk2BD4[i] = sUnknown_0859E64C[i]; + gSaveBlock1Ptr->easyChatBattleLost[i] = sUnknown_0859E64C[i]; for (i = 0; i < MAIL_COUNT; i++) { @@ -5264,8 +5272,8 @@ void InitEasyChatPhrases(void) static bool8 sub_811F28C(void) { - gUnknown_0203A120 = Alloc(sizeof(*gUnknown_0203A120)); - if (!gUnknown_0203A120) + sUnknown_0203A120 = Alloc(sizeof(*sUnknown_0203A120)); + if (!sUnknown_0203A120) return FALSE; sub_811F2D4(); @@ -5275,46 +5283,46 @@ static bool8 sub_811F28C(void) static void sub_811F2B8(void) { - if (gUnknown_0203A120) - FREE_AND_SET_NULL(gUnknown_0203A120); + if (sUnknown_0203A120) + FREE_AND_SET_NULL(sUnknown_0203A120); } static void sub_811F2D4(void) { int i; - gUnknown_0203A120->unk0 = 0; + sUnknown_0203A120->unk0 = 0; if (GetNationalPokedexCount(FLAG_GET_SEEN)) - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_POKEMON; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_POKEMON; for (i = EC_GROUP_TRAINER; i <= EC_GROUP_ADJECTIVES; i++) - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = i; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = i; if (FlagGet(FLAG_SYS_GAME_CLEAR)) { - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_EVENTS; - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_MOVE_1; - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_MOVE_2; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_EVENTS; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_MOVE_1; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_MOVE_2; } if (FlagGet(FLAG_SYS_HIPSTER_MEET)) - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_TRENDY_SAYING; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_TRENDY_SAYING; if (IsNationalPokedexEnabled()) - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_POKEMON_2; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_POKEMON_2; } static u8 sub_811F3AC(void) { - return gUnknown_0203A120->unk0; + return sUnknown_0203A120->unk0; } static u8 sub_811F3B8(u8 index) { - if (index >= gUnknown_0203A120->unk0) + if (index >= sUnknown_0203A120->unk0) return EC_NUM_GROUPS; else - return gUnknown_0203A120->unk2[index]; + return sUnknown_0203A120->unk2[index]; } u8 *unref_sub_811F3E0(u8 *dest, u8 groupId, u16 totalChars) @@ -5362,7 +5370,7 @@ static void sub_811F46C(void) { numWords = gEasyChatWordsByLetterPointers[i].numWords; words = gEasyChatWordsByLetterPointers[i].words; - gUnknown_0203A120->unk2E[i] = 0; + sUnknown_0203A120->unk2E[i] = 0; index = 0; for (j = 0; j < numWords; j++) { @@ -5382,8 +5390,8 @@ static void sub_811F46C(void) { if (sub_811F860(words[k])) { - gUnknown_0203A120->unk64[i][index++] = words[k]; - gUnknown_0203A120->unk2E[i]++; + sUnknown_0203A120->unk64[i][index++] = words[k]; + sUnknown_0203A120->unk2E[i]++; break; } } @@ -5396,22 +5404,22 @@ static void sub_811F46C(void) static void sub_811F548(int arg0, u16 groupId) { if (!arg0) - gUnknown_0203A120->unk3BA0 = sub_811F5C4(groupId); + sUnknown_0203A120->unk3BA0 = sub_811F5C4(groupId); else - gUnknown_0203A120->unk3BA0 = sub_811F6B8(groupId); + sUnknown_0203A120->unk3BA0 = sub_811F6B8(groupId); } static u16 sub_811F578(u16 arg0) { - if (arg0 >= gUnknown_0203A120->unk3BA0) + if (arg0 >= sUnknown_0203A120->unk3BA0) return 0xFFFF; else - return gUnknown_0203A120->unk3984[arg0]; + return sUnknown_0203A120->unk3984[arg0]; } static u16 sub_811F5B0(void) { - return gUnknown_0203A120->unk3BA0; + return sUnknown_0203A120->unk3BA0; } static u16 sub_811F5C4(u16 groupId) @@ -5429,7 +5437,7 @@ static u16 sub_811F5C4(u16 groupId) for (i = 0, totalWords = 0; i < numWords; i++) { if (sub_811F764(list[i], groupId)) - gUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, list[i]); + sUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, list[i]); } return totalWords; @@ -5441,7 +5449,7 @@ static u16 sub_811F5C4(u16 groupId) { u16 alphabeticalOrder = wordInfo[i].alphabeticalOrder; if (sub_811F764(alphabeticalOrder, groupId)) - gUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, alphabeticalOrder); + sUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, alphabeticalOrder); } return totalWords; @@ -5453,8 +5461,8 @@ static u16 sub_811F6B8(u16 alphabeticalGroup) u16 i; u16 totalWords; - for (i = 0, totalWords = 0; i < gUnknown_0203A120->unk2E[alphabeticalGroup]; i++) - gUnknown_0203A120->unk3984[totalWords++] = gUnknown_0203A120->unk64[alphabeticalGroup][i]; + for (i = 0, totalWords = 0; i < sUnknown_0203A120->unk2E[alphabeticalGroup]; i++) + sUnknown_0203A120->unk3984[totalWords++] = sUnknown_0203A120->unk64[alphabeticalGroup][i]; return totalWords; } @@ -5462,9 +5470,9 @@ static u16 sub_811F6B8(u16 alphabeticalGroup) static bool8 sub_811F72C(u8 arg0) { int i; - for (i = 0; i < gUnknown_0203A120->unk0; i++) + for (i = 0; i < sUnknown_0203A120->unk0; i++) { - if (gUnknown_0203A120->unk2[i] == arg0) + if (sUnknown_0203A120->unk2[i] == arg0) return TRUE; } -- cgit v1.2.3 From 3716da5430a976d05afecdf82f43f14fc2584949 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 2 Mar 2019 17:25:39 -0500 Subject: Rename macro with correct name for pixel values --- src/easy_chat.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/easy_chat.c') diff --git a/src/easy_chat.c b/src/easy_chat.c index 5a3ebf69c..b602077ad 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -3689,7 +3689,7 @@ static void sub_811CFCC(void) return; xOffset = GetStringCenterAlignXOffset(1, titleText, 144); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); sub_811D058(0, 1, titleText, xOffset, 1, 0xFF, 0, 2, 3); PutWindowTilemap(0); CopyWindowToVram(0, 3); @@ -3759,7 +3759,7 @@ static void sub_811D104(u8 arg0) break; } - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(1, PIXEL_FILL(1)); if (text1) sub_811D028(1, 1, text1, 0, 1, 0xFF, 0); @@ -3809,7 +3809,7 @@ static void sub_811D2C8(void) if (var0 == 7) var1 = 1; - FillWindowPixelBuffer(gUnknown_0203A11C->windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gUnknown_0203A11C->windowId, PIXEL_FILL(1)); for (i = 0; i < numRows; i++) { memcpy(spC, sText_Clear17, sizeof(sText_Clear17)); @@ -3949,7 +3949,7 @@ static void sub_811D684(void) static void sub_811D698(u32 arg0) { sub_811DD84(); - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(2, PIXEL_FILL(1)); switch (arg0) { case 0: @@ -4106,14 +4106,14 @@ static void sub_811D950(u8 arg0, u8 arg1) var1 = 0; } - FillWindowPixelRect(2, PALETTE_NUM_TO_FILL_VALUE(1), 0, y, 224, var2); + FillWindowPixelRect(2, PIXEL_FILL(1), 0, y, 224, var2); if (var1) - FillWindowPixelRect(2, PALETTE_NUM_TO_FILL_VALUE(1), 0, 0, 224, var1); + FillWindowPixelRect(2, PIXEL_FILL(1), 0, 0, 224, var1); } static void sub_811D9B4(void) { - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(2, PIXEL_FILL(1)); CopyWindowToVram(2, 2); } @@ -4783,7 +4783,7 @@ static void sub_811E948(void) template.paletteNum = 11; template.baseBlock = 0x34; windowId = AddWindow(&template); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); for (i = 0; i < 4; i++) { const u8 *str = sFooterTextOptions[var0][i]; -- cgit v1.2.3