From 1f47b6ae4fefbe50a3680251fc9b88a7655e7179 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Jan 2020 16:10:18 -0500 Subject: union_room_chat_objects --- src/union_room_chat_objects.c | 316 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 316 insertions(+) create mode 100644 src/union_room_chat_objects.c (limited to 'src/union_room_chat_objects.c') diff --git a/src/union_room_chat_objects.c b/src/union_room_chat_objects.c new file mode 100644 index 000000000..805e95d33 --- /dev/null +++ b/src/union_room_chat_objects.c @@ -0,0 +1,316 @@ +#include "global.h" +#include "gflib.h" +#include "decompress.h" +#include "graphics.h" +#include "union_room_chat.h" + +struct UnionRoomChat3 +{ + struct Sprite *unk0; + struct Sprite *unk4; + struct Sprite *unk8; + struct Sprite *unkC; + struct Sprite *unk10; + u16 unk14; +}; + +EWRAM_DATA struct UnionRoomChat3 *gUnknown_203B0E8 = NULL; + +void sub_812B09C(struct Sprite * sprite); +void sub_812B0D4(struct Sprite * sprite); + +const u16 gUnknown_845AC14[] = INCBIN_U16("graphics/union_room_chat/unk_845AC14.gbapal"); +const u32 gUnknown_845AC34[] = INCBIN_U32("graphics/union_room_chat/unk_845AC34.4bpp.lz"); +const u32 gUnknown_845AEB8[] = INCBIN_U32("graphics/union_room_chat/unk_845AEB8.4bpp.lz"); +const u32 gUnknown_845AED8[] = INCBIN_U32("graphics/union_room_chat/unk_845AED8.4bpp.lz"); +const u32 gUnknown_845AF04[] = INCBIN_U32("graphics/union_room_chat/unk_845AF04.4bpp.lz"); + +const struct CompressedSpriteSheet gUnknown_845AF58[] = { + {gUnknown_845AC34, 0x1000, 0}, + {gUnknown_845AED8, 0x0040, 1}, + {gUnknown_845AEB8, 0x0040, 2}, + {gUnknown_845AF04, 0x0080, 3}, + {gUnknown_8EA1A50, 0x0400, 4} +}; + +const struct SpritePalette gUnknown_845AF80 = { + gUnknown_845AC14, 0 +}; + +const struct OamData gOamData_845AF88 = { + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), + .priority = 1 +}; + +const union AnimCmd gAnimCmd_845AF90[] = { + ANIMCMD_FRAME(0x00, 30), + ANIMCMD_END +}; + +const union AnimCmd gAnimCmd_845AF98[] = { + ANIMCMD_FRAME(0x20, 30), + ANIMCMD_END +}; + +const union AnimCmd gAnimCmd_845AFA0[] = { + ANIMCMD_FRAME(0x40, 30), + ANIMCMD_END +}; + +const union AnimCmd gAnimCmd_845AFA8[] = { + ANIMCMD_FRAME(0x60, 30), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_845AFB0[] = { + gAnimCmd_845AF90, + gAnimCmd_845AF98, + gAnimCmd_845AFA0, + gAnimCmd_845AFA8 +}; + +const struct SpriteTemplate gUnknown_845AFC0 = { + .tileTag = 0, + .paletteTag = 0, + .oam = &gOamData_845AF88, + .anims = gSpriteAnimTable_845AFB0, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +const struct OamData gOamData_845AFD8 = { + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), + .priority = 2 +}; + +const struct SpriteTemplate gUnknown_845AFE0 = { + .tileTag = 2, + .paletteTag = 0, + .oam = &gOamData_845AFD8, + .anims = gDummySpriteAnimTable, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_812B09C +}; + +const struct SpriteTemplate gUnknown_845AFF8 = { + .tileTag = 1, + .paletteTag = 0, + .oam = &gOamData_845AFD8, + .anims = gDummySpriteAnimTable, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_812B0D4 +}; + +const struct OamData gOamData_845B010 = { + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), + .priority = 2 +}; + +const struct OamData gOamData_845B018 = { + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), + .priority = 2 +}; + +const union AnimCmd gAnimCmd_845B020[] = { + ANIMCMD_FRAME(0x00, 2), + ANIMCMD_END +}; + +const union AnimCmd gAnimCmd_845B028[] = { + ANIMCMD_FRAME(0x08, 2), + ANIMCMD_END +}; + +const union AnimCmd gAnimCmd_845B030[] = { + ANIMCMD_FRAME(0x10, 2), + ANIMCMD_END +}; + +const union AnimCmd gAnimCmd_845B038[] = { + ANIMCMD_FRAME(0x18, 2), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_845B040[] = { + gAnimCmd_845B020, + gAnimCmd_845B028, + gAnimCmd_845B030, + gAnimCmd_845B038 +}; + +const struct SpriteTemplate gUnknown_845B050 = { + .tileTag = 3, + .paletteTag = 0, + .oam = &gOamData_845B010, + .anims = gDummySpriteAnimTable, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +const struct SpriteTemplate gUnknown_845B068 = { + .tileTag = 4, + .paletteTag = 0, + .oam = &gOamData_845B018, + .anims = gSpriteAnimTable_845B040, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +bool32 sub_812AE70(void) +{ + u32 i; + for (i = 0; i < 5; i++) + LoadCompressedSpriteSheet(&gUnknown_845AF58[i]); + + LoadSpritePalette(&gUnknown_845AF80); + gUnknown_203B0E8 = Alloc(0x18); + if (!gUnknown_203B0E8) + return FALSE; + + return TRUE; +} + +void sub_812AEB0(void) +{ + if (gUnknown_203B0E8) + Free(gUnknown_203B0E8); +} + +void sub_812AEC8(void) +{ + u8 spriteId = CreateSprite(&gUnknown_845AFC0, 10, 24, 0); + gUnknown_203B0E8->unk0 = &gSprites[spriteId]; +} + +void sub_812AEFC(bool32 invisible) +{ + gUnknown_203B0E8->unk0->invisible = invisible; +} + +void sub_812AF1C(void) +{ + u8 x, y; + u8 page = GetCurrentKeyboardPage(); + sub_8129700(&x, &y); + if (page != UNION_ROOM_KB_PAGE_COUNT) + { + StartSpriteAnim(gUnknown_203B0E8->unk0, 0); + gUnknown_203B0E8->unk0->pos1.x = x * 8 + 10; + gUnknown_203B0E8->unk0->pos1.y = y * 12 + 24; + } + else + { + StartSpriteAnim(gUnknown_203B0E8->unk0, 2); + gUnknown_203B0E8->unk0->pos1.x = 24; + gUnknown_203B0E8->unk0->pos1.y = y * 12 + 24; + } +} + +void sub_812AF8C(int arg0) +{ + const u16 *palette = &gUnknown_845AC14[arg0 * 2 + 1]; + u8 index = IndexOfSpritePaletteTag(0); + LoadPalette(palette, index * 16 + 0x101, 4); +} + +void sub_812AFC0(void) +{ + if (GetCurrentKeyboardPage() != UNION_ROOM_KB_PAGE_COUNT) + StartSpriteAnim(gUnknown_203B0E8->unk0, 1); + else + StartSpriteAnim(gUnknown_203B0E8->unk0, 3); + + gUnknown_203B0E8->unk14 = 0; +} + +bool32 sub_812AFFC(void) +{ + if (gUnknown_203B0E8->unk14 > 3) + return FALSE; + + if (++gUnknown_203B0E8->unk14 > 3) + { + if (GetCurrentKeyboardPage() != UNION_ROOM_KB_PAGE_COUNT) + StartSpriteAnim(gUnknown_203B0E8->unk0, 0); + else + StartSpriteAnim(gUnknown_203B0E8->unk0, 2); + + return FALSE; + } + + return TRUE; +} + +void sub_812B048(void) +{ + u8 spriteId = CreateSprite(&gUnknown_845AFE0, 76, 152, 2); + gUnknown_203B0E8->unk8 = &gSprites[spriteId]; + spriteId = CreateSprite(&gUnknown_845AFF8, 64, 152, 1); + gUnknown_203B0E8->unk4 = &gSprites[spriteId]; +} + +void sub_812B09C(struct Sprite *sprite) +{ + int var0 = sub_81297DC(); + if (var0 == 15) + { + sprite->invisible = TRUE; + } + else + { + sprite->invisible = FALSE; + sprite->pos1.x = var0 * 8 + 76; + } +} + +void sub_812B0D4(struct Sprite *sprite) +{ + if (++sprite->data[0] > 4) + { + sprite->data[0] = 0; + if (++sprite->pos2.x > 4) + sprite->pos2.x = 0; + } +} + +void sub_812B100(void) +{ + u8 spriteId = CreateSprite(&gUnknown_845B050, 8, 152, 3); + gUnknown_203B0E8->unkC = &gSprites[spriteId]; + spriteId = CreateSprite(&gUnknown_845B068, 32, 152, 4); + gUnknown_203B0E8->unk10 = &gSprites[spriteId]; + gUnknown_203B0E8->unk10->invisible = 1; +} + +void sub_812B160(void) +{ + if (GetCurrentKeyboardPage() == UNION_ROOM_KB_PAGE_COUNT) + { + if (sub_8129720() != 0) + { + gUnknown_203B0E8->unk10->invisible = 0; + StartSpriteAnim(gUnknown_203B0E8->unk10, 3); + } + else + { + gUnknown_203B0E8->unk10->invisible = 1; + } + } + else + { + int anim = sub_81297E8(); + if (anim == 3) + { + gUnknown_203B0E8->unk10->invisible = 1; + } + else + { + gUnknown_203B0E8->unk10->invisible = 0; + StartSpriteAnim(gUnknown_203B0E8->unk10, anim); + } + } +} -- cgit v1.2.3 From 52c0e05abbd0b58c943d045a8457c45c72caac38 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Jan 2020 16:17:51 -0500 Subject: Static symbols resolution --- src/union_room_chat_objects.c | 62 +++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 31 deletions(-) (limited to 'src/union_room_chat_objects.c') diff --git a/src/union_room_chat_objects.c b/src/union_room_chat_objects.c index 805e95d33..70f9f48ff 100644 --- a/src/union_room_chat_objects.c +++ b/src/union_room_chat_objects.c @@ -14,18 +14,18 @@ struct UnionRoomChat3 u16 unk14; }; -EWRAM_DATA struct UnionRoomChat3 *gUnknown_203B0E8 = NULL; +static EWRAM_DATA struct UnionRoomChat3 *gUnknown_203B0E8 = NULL; -void sub_812B09C(struct Sprite * sprite); -void sub_812B0D4(struct Sprite * sprite); +static void sub_812B09C(struct Sprite * sprite); +static void sub_812B0D4(struct Sprite * sprite); -const u16 gUnknown_845AC14[] = INCBIN_U16("graphics/union_room_chat/unk_845AC14.gbapal"); -const u32 gUnknown_845AC34[] = INCBIN_U32("graphics/union_room_chat/unk_845AC34.4bpp.lz"); -const u32 gUnknown_845AEB8[] = INCBIN_U32("graphics/union_room_chat/unk_845AEB8.4bpp.lz"); -const u32 gUnknown_845AED8[] = INCBIN_U32("graphics/union_room_chat/unk_845AED8.4bpp.lz"); -const u32 gUnknown_845AF04[] = INCBIN_U32("graphics/union_room_chat/unk_845AF04.4bpp.lz"); +static const u16 gUnknown_845AC14[] = INCBIN_U16("graphics/union_room_chat/unk_845AC14.gbapal"); +static const u32 gUnknown_845AC34[] = INCBIN_U32("graphics/union_room_chat/unk_845AC34.4bpp.lz"); +static const u32 gUnknown_845AEB8[] = INCBIN_U32("graphics/union_room_chat/unk_845AEB8.4bpp.lz"); +static const u32 gUnknown_845AED8[] = INCBIN_U32("graphics/union_room_chat/unk_845AED8.4bpp.lz"); +static const u32 gUnknown_845AF04[] = INCBIN_U32("graphics/union_room_chat/unk_845AF04.4bpp.lz"); -const struct CompressedSpriteSheet gUnknown_845AF58[] = { +static const struct CompressedSpriteSheet gUnknown_845AF58[] = { {gUnknown_845AC34, 0x1000, 0}, {gUnknown_845AED8, 0x0040, 1}, {gUnknown_845AEB8, 0x0040, 2}, @@ -33,44 +33,44 @@ const struct CompressedSpriteSheet gUnknown_845AF58[] = { {gUnknown_8EA1A50, 0x0400, 4} }; -const struct SpritePalette gUnknown_845AF80 = { +static const struct SpritePalette gUnknown_845AF80 = { gUnknown_845AC14, 0 }; -const struct OamData gOamData_845AF88 = { +static const struct OamData gOamData_845AF88 = { .shape = SPRITE_SHAPE(64x32), .size = SPRITE_SIZE(64x32), .priority = 1 }; -const union AnimCmd gAnimCmd_845AF90[] = { +static const union AnimCmd gAnimCmd_845AF90[] = { ANIMCMD_FRAME(0x00, 30), ANIMCMD_END }; -const union AnimCmd gAnimCmd_845AF98[] = { +static const union AnimCmd gAnimCmd_845AF98[] = { ANIMCMD_FRAME(0x20, 30), ANIMCMD_END }; -const union AnimCmd gAnimCmd_845AFA0[] = { +static const union AnimCmd gAnimCmd_845AFA0[] = { ANIMCMD_FRAME(0x40, 30), ANIMCMD_END }; -const union AnimCmd gAnimCmd_845AFA8[] = { +static const union AnimCmd gAnimCmd_845AFA8[] = { ANIMCMD_FRAME(0x60, 30), ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_845AFB0[] = { +static const union AnimCmd *const gSpriteAnimTable_845AFB0[] = { gAnimCmd_845AF90, gAnimCmd_845AF98, gAnimCmd_845AFA0, gAnimCmd_845AFA8 }; -const struct SpriteTemplate gUnknown_845AFC0 = { +static const struct SpriteTemplate gUnknown_845AFC0 = { .tileTag = 0, .paletteTag = 0, .oam = &gOamData_845AF88, @@ -79,13 +79,13 @@ const struct SpriteTemplate gUnknown_845AFC0 = { .callback = SpriteCallbackDummy }; -const struct OamData gOamData_845AFD8 = { +static const struct OamData gOamData_845AFD8 = { .shape = SPRITE_SHAPE(8x16), .size = SPRITE_SIZE(8x16), .priority = 2 }; -const struct SpriteTemplate gUnknown_845AFE0 = { +static const struct SpriteTemplate gUnknown_845AFE0 = { .tileTag = 2, .paletteTag = 0, .oam = &gOamData_845AFD8, @@ -94,7 +94,7 @@ const struct SpriteTemplate gUnknown_845AFE0 = { .callback = sub_812B09C }; -const struct SpriteTemplate gUnknown_845AFF8 = { +static const struct SpriteTemplate gUnknown_845AFF8 = { .tileTag = 1, .paletteTag = 0, .oam = &gOamData_845AFD8, @@ -103,46 +103,46 @@ const struct SpriteTemplate gUnknown_845AFF8 = { .callback = sub_812B0D4 }; -const struct OamData gOamData_845B010 = { +static const struct OamData gOamData_845B010 = { .shape = SPRITE_SHAPE(16x16), .size = SPRITE_SIZE(16x16), .priority = 2 }; -const struct OamData gOamData_845B018 = { +static const struct OamData gOamData_845B018 = { .shape = SPRITE_SHAPE(32x16), .size = SPRITE_SIZE(32x16), .priority = 2 }; -const union AnimCmd gAnimCmd_845B020[] = { +static const union AnimCmd gAnimCmd_845B020[] = { ANIMCMD_FRAME(0x00, 2), ANIMCMD_END }; -const union AnimCmd gAnimCmd_845B028[] = { +static const union AnimCmd gAnimCmd_845B028[] = { ANIMCMD_FRAME(0x08, 2), ANIMCMD_END }; -const union AnimCmd gAnimCmd_845B030[] = { +static const union AnimCmd gAnimCmd_845B030[] = { ANIMCMD_FRAME(0x10, 2), ANIMCMD_END }; -const union AnimCmd gAnimCmd_845B038[] = { +static const union AnimCmd gAnimCmd_845B038[] = { ANIMCMD_FRAME(0x18, 2), ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_845B040[] = { +static const union AnimCmd *const gSpriteAnimTable_845B040[] = { gAnimCmd_845B020, gAnimCmd_845B028, gAnimCmd_845B030, gAnimCmd_845B038 }; -const struct SpriteTemplate gUnknown_845B050 = { +static const struct SpriteTemplate gUnknown_845B050 = { .tileTag = 3, .paletteTag = 0, .oam = &gOamData_845B010, @@ -151,7 +151,7 @@ const struct SpriteTemplate gUnknown_845B050 = { .callback = SpriteCallbackDummy }; -const struct SpriteTemplate gUnknown_845B068 = { +static const struct SpriteTemplate gUnknown_845B068 = { .tileTag = 4, .paletteTag = 0, .oam = &gOamData_845B018, @@ -253,7 +253,7 @@ void sub_812B048(void) gUnknown_203B0E8->unk4 = &gSprites[spriteId]; } -void sub_812B09C(struct Sprite *sprite) +static void sub_812B09C(struct Sprite *sprite) { int var0 = sub_81297DC(); if (var0 == 15) @@ -267,7 +267,7 @@ void sub_812B09C(struct Sprite *sprite) } } -void sub_812B0D4(struct Sprite *sprite) +static void sub_812B0D4(struct Sprite *sprite) { if (++sprite->data[0] > 4) { -- cgit v1.2.3 From 0ebdbcfd5b1d352d37f5806943b124e915cbfe8b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Jan 2020 19:58:39 -0500 Subject: Document union room chat --- src/union_room_chat_objects.c | 228 +++++++++++++++++++++--------------------- 1 file changed, 115 insertions(+), 113 deletions(-) (limited to 'src/union_room_chat_objects.c') diff --git a/src/union_room_chat_objects.c b/src/union_room_chat_objects.c index 70f9f48ff..e5b739675 100644 --- a/src/union_room_chat_objects.c +++ b/src/union_room_chat_objects.c @@ -6,238 +6,238 @@ struct UnionRoomChat3 { - struct Sprite *unk0; - struct Sprite *unk4; - struct Sprite *unk8; - struct Sprite *unkC; - struct Sprite *unk10; - u16 unk14; + struct Sprite *selectorCursorSprite; + struct Sprite *characterSelectCursorSprite; + struct Sprite *textEntryCursorSprite; + struct Sprite *rButtonSprite; + struct Sprite *chatIconsSprite; + u16 cursorBlinkTimer; }; -static EWRAM_DATA struct UnionRoomChat3 *gUnknown_203B0E8 = NULL; +static EWRAM_DATA struct UnionRoomChat3 *sWork = NULL; -static void sub_812B09C(struct Sprite * sprite); -static void sub_812B0D4(struct Sprite * sprite); +static void SpriteCB_TextEntryCursor(struct Sprite * sprite); +static void SpriteCB_CharacterSelectCursor(struct Sprite * sprite); -static const u16 gUnknown_845AC14[] = INCBIN_U16("graphics/union_room_chat/unk_845AC14.gbapal"); -static const u32 gUnknown_845AC34[] = INCBIN_U32("graphics/union_room_chat/unk_845AC34.4bpp.lz"); -static const u32 gUnknown_845AEB8[] = INCBIN_U32("graphics/union_room_chat/unk_845AEB8.4bpp.lz"); -static const u32 gUnknown_845AED8[] = INCBIN_U32("graphics/union_room_chat/unk_845AED8.4bpp.lz"); -static const u32 gUnknown_845AF04[] = INCBIN_U32("graphics/union_room_chat/unk_845AF04.4bpp.lz"); +static const u16 sUnionRoomChatInterfacePal[] = INCBIN_U16("graphics/union_room_chat/unk_845AC14.gbapal"); +static const u32 sSelectorCursorGfxTiles[] = INCBIN_U32("graphics/union_room_chat/unk_845AC34.4bpp.lz"); +static const u32 sHorizontalBarGfxTiles[] = INCBIN_U32("graphics/union_room_chat/unk_845AEB8.4bpp.lz"); +static const u32 sMenuCursorGfxTiles[] = INCBIN_U32("graphics/union_room_chat/unk_845AED8.4bpp.lz"); +static const u32 sRButtonGfxTiles[] = INCBIN_U32("graphics/union_room_chat/unk_845AF04.4bpp.lz"); -static const struct CompressedSpriteSheet gUnknown_845AF58[] = { - {gUnknown_845AC34, 0x1000, 0}, - {gUnknown_845AED8, 0x0040, 1}, - {gUnknown_845AEB8, 0x0040, 2}, - {gUnknown_845AF04, 0x0080, 3}, - {gUnknown_8EA1A50, 0x0400, 4} +static const struct CompressedSpriteSheet sSpriteSheets[] = { + {sSelectorCursorGfxTiles, 0x1000, 0}, + {sMenuCursorGfxTiles, 0x0040, 1}, + {sHorizontalBarGfxTiles, 0x0040, 2}, + {sRButtonGfxTiles, 0x0080, 3}, + {gUnionRoomChatIcons, 0x0400, 4} }; -static const struct SpritePalette gUnknown_845AF80 = { - gUnknown_845AC14, 0 +static const struct SpritePalette sSpritePalette = { + sUnionRoomChatInterfacePal, 0 }; -static const struct OamData gOamData_845AF88 = { +static const struct OamData sOamData_64x32_1 = { .shape = SPRITE_SHAPE(64x32), .size = SPRITE_SIZE(64x32), .priority = 1 }; -static const union AnimCmd gAnimCmd_845AF90[] = { +static const union AnimCmd sAnim_CursorSmallOpen[] = { ANIMCMD_FRAME(0x00, 30), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_845AF98[] = { +static const union AnimCmd sAnim_CursorSmallClosed[] = { ANIMCMD_FRAME(0x20, 30), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_845AFA0[] = { +static const union AnimCmd sAnim_CursorLargeOpen[] = { ANIMCMD_FRAME(0x40, 30), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_845AFA8[] = { +static const union AnimCmd sAnim_CursorLargeClosed[] = { ANIMCMD_FRAME(0x60, 30), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_845AFB0[] = { - gAnimCmd_845AF90, - gAnimCmd_845AF98, - gAnimCmd_845AFA0, - gAnimCmd_845AFA8 +static const union AnimCmd *const sSpriteAnims_SelectorCursor[] = { + sAnim_CursorSmallOpen, + sAnim_CursorSmallClosed, + sAnim_CursorLargeOpen, + sAnim_CursorLargeClosed }; -static const struct SpriteTemplate gUnknown_845AFC0 = { +static const struct SpriteTemplate sSpriteTemplate_SelectorCursor = { .tileTag = 0, .paletteTag = 0, - .oam = &gOamData_845AF88, - .anims = gSpriteAnimTable_845AFB0, + .oam = &sOamData_64x32_1, + .anims = sSpriteAnims_SelectorCursor, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_845AFD8 = { +static const struct OamData sOamData_8x16_2 = { .shape = SPRITE_SHAPE(8x16), .size = SPRITE_SIZE(8x16), .priority = 2 }; -static const struct SpriteTemplate gUnknown_845AFE0 = { +static const struct SpriteTemplate sSpriteTemplate_TextEntryCursor = { .tileTag = 2, .paletteTag = 0, - .oam = &gOamData_845AFD8, + .oam = &sOamData_8x16_2, .anims = gDummySpriteAnimTable, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_812B09C + .callback = SpriteCB_TextEntryCursor }; -static const struct SpriteTemplate gUnknown_845AFF8 = { +static const struct SpriteTemplate sSpriteTemplate_CharacterSelectCursor = { .tileTag = 1, .paletteTag = 0, - .oam = &gOamData_845AFD8, + .oam = &sOamData_8x16_2, .anims = gDummySpriteAnimTable, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_812B0D4 + .callback = SpriteCB_CharacterSelectCursor }; -static const struct OamData gOamData_845B010 = { +static const struct OamData sOamData_16x16_2 = { .shape = SPRITE_SHAPE(16x16), .size = SPRITE_SIZE(16x16), .priority = 2 }; -static const struct OamData gOamData_845B018 = { +static const struct OamData sOamData_32x16_2 = { .shape = SPRITE_SHAPE(32x16), .size = SPRITE_SIZE(32x16), .priority = 2 }; -static const union AnimCmd gAnimCmd_845B020[] = { +static const union AnimCmd sAnim_UnionRoomChatIcons_ToggleCase[] = { ANIMCMD_FRAME(0x00, 2), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_845B028[] = { +static const union AnimCmd sAnim_UnionRoomChatIcons_Dummy1[] = { ANIMCMD_FRAME(0x08, 2), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_845B030[] = { +static const union AnimCmd sAnim_UnionRoomChatIcons_Dummy2[] = { ANIMCMD_FRAME(0x10, 2), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_845B038[] = { +static const union AnimCmd sAnim_UnionRoomChatIcons_Register[] = { ANIMCMD_FRAME(0x18, 2), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_845B040[] = { - gAnimCmd_845B020, - gAnimCmd_845B028, - gAnimCmd_845B030, - gAnimCmd_845B038 +static const union AnimCmd *const sSpriteAnimTable_UnionRoomChatIcons[] = { + sAnim_UnionRoomChatIcons_ToggleCase, + sAnim_UnionRoomChatIcons_Dummy1, + sAnim_UnionRoomChatIcons_Dummy2, + sAnim_UnionRoomChatIcons_Register }; -static const struct SpriteTemplate gUnknown_845B050 = { +static const struct SpriteTemplate sSpriteTemplate_RButton = { .tileTag = 3, .paletteTag = 0, - .oam = &gOamData_845B010, + .oam = &sOamData_16x16_2, .anims = gDummySpriteAnimTable, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_845B068 = { +static const struct SpriteTemplate sSpriteTemplate_UnionRoomChatIcons = { .tileTag = 4, .paletteTag = 0, - .oam = &gOamData_845B018, - .anims = gSpriteAnimTable_845B040, + .oam = &sOamData_32x16_2, + .anims = sSpriteAnimTable_UnionRoomChatIcons, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -bool32 sub_812AE70(void) +bool32 UnionRoomChat_TryAllocSpriteWork(void) { u32 i; for (i = 0; i < 5; i++) - LoadCompressedSpriteSheet(&gUnknown_845AF58[i]); + LoadCompressedSpriteSheet(&sSpriteSheets[i]); - LoadSpritePalette(&gUnknown_845AF80); - gUnknown_203B0E8 = Alloc(0x18); - if (!gUnknown_203B0E8) + LoadSpritePalette(&sSpritePalette); + sWork = Alloc(0x18); + if (!sWork) return FALSE; return TRUE; } -void sub_812AEB0(void) +void UnionRoomChat_FreeSpriteWork(void) { - if (gUnknown_203B0E8) - Free(gUnknown_203B0E8); + if (sWork) + Free(sWork); } -void sub_812AEC8(void) +void UnionRoomChat_CreateSelectorCursorObj(void) { - u8 spriteId = CreateSprite(&gUnknown_845AFC0, 10, 24, 0); - gUnknown_203B0E8->unk0 = &gSprites[spriteId]; + u8 spriteId = CreateSprite(&sSpriteTemplate_SelectorCursor, 10, 24, 0); + sWork->selectorCursorSprite = &gSprites[spriteId]; } -void sub_812AEFC(bool32 invisible) +void UnionRoomChat_ToggleSelectorCursorObjVisibility(bool32 invisible) { - gUnknown_203B0E8->unk0->invisible = invisible; + sWork->selectorCursorSprite->invisible = invisible; } -void sub_812AF1C(void) +void UnionRoomChat_MoveSelectorCursorObj(void) { u8 x, y; u8 page = GetCurrentKeyboardPage(); - sub_8129700(&x, &y); + UnionRoomChat_GetCursorColAndRow(&x, &y); if (page != UNION_ROOM_KB_PAGE_COUNT) { - StartSpriteAnim(gUnknown_203B0E8->unk0, 0); - gUnknown_203B0E8->unk0->pos1.x = x * 8 + 10; - gUnknown_203B0E8->unk0->pos1.y = y * 12 + 24; + StartSpriteAnim(sWork->selectorCursorSprite, 0); + sWork->selectorCursorSprite->pos1.x = x * 8 + 10; + sWork->selectorCursorSprite->pos1.y = y * 12 + 24; } else { - StartSpriteAnim(gUnknown_203B0E8->unk0, 2); - gUnknown_203B0E8->unk0->pos1.x = 24; - gUnknown_203B0E8->unk0->pos1.y = y * 12 + 24; + StartSpriteAnim(sWork->selectorCursorSprite, 2); + sWork->selectorCursorSprite->pos1.x = 24; + sWork->selectorCursorSprite->pos1.y = y * 12 + 24; } } -void sub_812AF8C(int arg0) +void UnionRoomChat_UpdateObjPalCycle(int arg0) { - const u16 *palette = &gUnknown_845AC14[arg0 * 2 + 1]; + const u16 *palette = &sUnionRoomChatInterfacePal[arg0 * 2 + 1]; u8 index = IndexOfSpritePaletteTag(0); LoadPalette(palette, index * 16 + 0x101, 4); } -void sub_812AFC0(void) +void UnionRoomChat_SetSelectorCursorClosedImage(void) { if (GetCurrentKeyboardPage() != UNION_ROOM_KB_PAGE_COUNT) - StartSpriteAnim(gUnknown_203B0E8->unk0, 1); + StartSpriteAnim(sWork->selectorCursorSprite, 1); else - StartSpriteAnim(gUnknown_203B0E8->unk0, 3); + StartSpriteAnim(sWork->selectorCursorSprite, 3); - gUnknown_203B0E8->unk14 = 0; + sWork->cursorBlinkTimer = 0; } -bool32 sub_812AFFC(void) +bool32 UnionRoomChat_AnimateSelectorCursorReopen(void) { - if (gUnknown_203B0E8->unk14 > 3) + if (sWork->cursorBlinkTimer > 3) return FALSE; - if (++gUnknown_203B0E8->unk14 > 3) + if (++sWork->cursorBlinkTimer > 3) { if (GetCurrentKeyboardPage() != UNION_ROOM_KB_PAGE_COUNT) - StartSpriteAnim(gUnknown_203B0E8->unk0, 0); + StartSpriteAnim(sWork->selectorCursorSprite, 0); else - StartSpriteAnim(gUnknown_203B0E8->unk0, 2); + StartSpriteAnim(sWork->selectorCursorSprite, 2); return FALSE; } @@ -245,17 +245,17 @@ bool32 sub_812AFFC(void) return TRUE; } -void sub_812B048(void) +void UnionRoomChat_SpawnTextEntryPointerSprites(void) { - u8 spriteId = CreateSprite(&gUnknown_845AFE0, 76, 152, 2); - gUnknown_203B0E8->unk8 = &gSprites[spriteId]; - spriteId = CreateSprite(&gUnknown_845AFF8, 64, 152, 1); - gUnknown_203B0E8->unk4 = &gSprites[spriteId]; + u8 spriteId = CreateSprite(&sSpriteTemplate_TextEntryCursor, 76, 152, 2); + sWork->textEntryCursorSprite = &gSprites[spriteId]; + spriteId = CreateSprite(&sSpriteTemplate_CharacterSelectCursor, 64, 152, 1); + sWork->characterSelectCursorSprite = &gSprites[spriteId]; } -static void sub_812B09C(struct Sprite *sprite) +static void SpriteCB_TextEntryCursor(struct Sprite *sprite) { - int var0 = sub_81297DC(); + int var0 = UnionRoomChat_GetMessageEntryCursorPosition(); if (var0 == 15) { sprite->invisible = TRUE; @@ -267,7 +267,7 @@ static void sub_812B09C(struct Sprite *sprite) } } -static void sub_812B0D4(struct Sprite *sprite) +static void SpriteCB_CharacterSelectCursor(struct Sprite *sprite) { if (++sprite->data[0] > 4) { @@ -277,40 +277,42 @@ static void sub_812B0D4(struct Sprite *sprite) } } -void sub_812B100(void) +void CreatePageSwitchUISprites(void) { - u8 spriteId = CreateSprite(&gUnknown_845B050, 8, 152, 3); - gUnknown_203B0E8->unkC = &gSprites[spriteId]; - spriteId = CreateSprite(&gUnknown_845B068, 32, 152, 4); - gUnknown_203B0E8->unk10 = &gSprites[spriteId]; - gUnknown_203B0E8->unk10->invisible = 1; + u8 spriteId = CreateSprite(&sSpriteTemplate_RButton, 8, 152, 3); + sWork->rButtonSprite = &gSprites[spriteId]; + spriteId = CreateSprite(&sSpriteTemplate_UnionRoomChatIcons, 32, 152, 4); + sWork->chatIconsSprite = &gSprites[spriteId]; + sWork->chatIconsSprite->invisible = TRUE; } -void sub_812B160(void) +void UpdateVisibleUnionRoomChatIcon(void) { if (GetCurrentKeyboardPage() == UNION_ROOM_KB_PAGE_COUNT) { - if (sub_8129720() != 0) + if (UnionRoomChat_LenMessageEntryBuffer() != 0) { - gUnknown_203B0E8->unk10->invisible = 0; - StartSpriteAnim(gUnknown_203B0E8->unk10, 3); + // REGISTER + sWork->chatIconsSprite->invisible = FALSE; + StartSpriteAnim(sWork->chatIconsSprite, 3); } else { - gUnknown_203B0E8->unk10->invisible = 1; + sWork->chatIconsSprite->invisible = TRUE; } } else { - int anim = sub_81297E8(); + int anim = UnionRoomChat_GetWhetherShouldShowCaseToggleIcon(); if (anim == 3) { - gUnknown_203B0E8->unk10->invisible = 1; + sWork->chatIconsSprite->invisible = TRUE; } else { - gUnknown_203B0E8->unk10->invisible = 0; - StartSpriteAnim(gUnknown_203B0E8->unk10, anim); + // A <--> a + sWork->chatIconsSprite->invisible = FALSE; + StartSpriteAnim(sWork->chatIconsSprite, anim); } } } -- cgit v1.2.3 From 52fbc43d73995977aa8f6c45405a91c68d515061 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Jan 2020 21:00:51 -0500 Subject: Address review comments --- src/union_room_chat_objects.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/union_room_chat_objects.c') diff --git a/src/union_room_chat_objects.c b/src/union_room_chat_objects.c index e5b739675..f97136a0a 100644 --- a/src/union_room_chat_objects.c +++ b/src/union_room_chat_objects.c @@ -162,13 +162,13 @@ static const struct SpriteTemplate sSpriteTemplate_UnionRoomChatIcons = { bool32 UnionRoomChat_TryAllocSpriteWork(void) { - u32 i; - for (i = 0; i < 5; i++) + int i; + for (i = 0; i < NELEMS(sSpriteSheets); i++) LoadCompressedSpriteSheet(&sSpriteSheets[i]); LoadSpritePalette(&sSpritePalette); - sWork = Alloc(0x18); - if (!sWork) + sWork = Alloc(sizeof(struct UnionRoomChat3)); + if (sWork == NULL) return FALSE; return TRUE; @@ -176,7 +176,7 @@ bool32 UnionRoomChat_TryAllocSpriteWork(void) void UnionRoomChat_FreeSpriteWork(void) { - if (sWork) + if (sWork != NULL) Free(sWork); } -- cgit v1.2.3