summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-09-25 11:09:28 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-09-25 11:09:28 -0400
commitd66767ed9a5eb714b98a4e4dc22728606414c39c (patch)
treeab6d0ca645f1be7d76bfaa398a78b7a32500b3ca /src
parent932d153f5eac6c68d762f6a1f62576cef23850fb (diff)
Documentation and cleanup
Diffstat (limited to 'src')
-rw-r--r--src/credits.c1267
-rw-r--r--src/quest_log.c4
-rw-r--r--src/sound.c4
-rw-r--r--src/trainer_pokemon_sprites.c2
4 files changed, 660 insertions, 617 deletions
diff --git a/src/credits.c b/src/credits.c
index b740d6067..146f647e7 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -11,41 +11,92 @@
#include "decompress.h"
#include "graphics.h"
#include "strings.h"
+#include "menu.h"
+#include "field_weather.h"
#include "trainer_pokemon_sprites.h"
#include "sound.h"
#include "constants/species.h"
#include "constants/maps.h"
+#if defined(FIRERED)
+#define TITLE_TEXT gString_PokemonFireRed_Staff
+asm(".set TITLE_TEXT, gString_PokemonFireRed_Staff");
+#elif defined(LEAFGREEN)
+#define TITLE_TEXT gString_PokemonLeafGreen_Staff
+asm(".set TITLE_TEXT, gString_PokemonLeafGreen_Staff");
+#endif
+
+enum CreditsSceneIdx
+{
+ CREDITSSCENE_INIT_WIN0 = 0,
+ CREDITSSCENE_SETUP_DARKEN_EFFECT,
+ CREDITSSCENE_OPEN_WIN0,
+ CREDITSSCENE_LOAD_PLAYER_SPRITE_AT_INDIGO,
+ CREDITSSCENE_PRINT_TITLE_STAFF,
+ CREDITSSCENE_WAIT_TITLE_STAFF,
+ CREDITSSCENE_EXEC_CMD,
+ CREDITSSCENE_PRINT_ADDPRINTER1,
+ CREDITSSCENE_PRINT_ADDPRINTER2,
+ CREDITSSCENE_PRINT_DELAY,
+ CREDITSSCENE_MAPNEXT_DESTROYWINDOW,
+ CREDITSSCENE_MAPNEXT_LOADMAP,
+ CREDITSSCENE_MAP_LOADMAP_CREATESPRITES,
+ CREDITSSCENE_MON_DESTROY_ASSETS,
+ CREDITSSCENE_MON_SHOW,
+ CREDITSSCENE_THEEND_DESTROY_ASSETS,
+ CREDITSSCENE_THEEND_SHOW,
+ CREDITSSCENE_WAITBUTTON,
+ CREDITSSCENE_TERMINATE,
+};
+
+enum CreditsScrCmd
+{
+ CREDITSSCRCMD_PRINT = 0,
+ CREDITSSCRCMD_MAPNEXT,
+ CREDITSSCRCMD_MAP,
+ CREDITSSCRCMD_MON,
+ CREDITSSCRCMD_THEENDGFX,
+ CREDITSSCRCMD_WAITBUTTON
+};
+
+enum CreditsMon
+{
+ CREDITSMON_CHARIZARD = 0,
+ CREDITSMON_VENUSAUR,
+ CREDITSMON_BLASTOISE,
+ CREDITSMON_PIKACHU
+};
+
struct CreditsResources
{
- u8 unk_00;
- u8 unk_01;
- u8 unk_02;
- u16 unk_04;
- u16 unk_06;
- u8 unk_08;
- u8 unk_09;
- u8 unk_0A;
- bool8 unk_0B;
- u16 unk_0C;
+ u8 mainseqno;
+ u8 subseqno;
+ u8 taskId;
+ u16 timer;
+ u16 scrcmdidx;
+ u8 canSpeedThrough;
+ u8 whichMon;
+ u8 windowId;
+ bool8 windowIsActive;
+ u16 creditsMonTimer;
u16 unk_0E;
u8 filler_10[12];
- u8 unk_1C;
+ u8 ovwldseqno;
u8 unk_1D;
};
-struct UnkStruct_8410CF4
+struct CreditsScrcmd
{
- u8 unk0;
- u8 unk1;
- u16 unk2;
+ u8 cmd;
+ u8 param;
+ u16 duration;
};
-struct UnkStruct_84145BC
+struct CreditsTextHeader
{
const u8 * unk_0;
const u8 * unk_4;
- u8 unk_8;
+ bool8 unk_8;
};
struct CompressedGraphicsHeader
@@ -57,25 +108,25 @@ struct CompressedGraphicsHeader
struct CreditsTaskData
{
- u8 field_00;
- u8 field_01;
- u16 field_02;
+ u8 spriteMoveCmd;
+ u8 playerSpriteId;
+ u16 playerTilesTag;
u16 field_04;
- u8 field_06;
- u16 field_08;
+ u8 groundSpriteId;
+ u16 groundTilesTag;
u16 field_0A;
};
-EWRAM_DATA struct CreditsResources * gUnknown_203AB40 = NULL;
+static EWRAM_DATA struct CreditsResources * sCreditsMgr = NULL;
-void sub_80F39E8(void);
-s32 sub_80F3BD0(void);
-bool32 sub_80F4328(void);
-bool32 sub_80F4674(void);
-void sub_80F48D0(void);
-void sub_80F4930(u8 a0);
+static void CB2_Credits(void);
+static s32 RollCredits(void);
+static bool32 DoCreditsMonScene(void);
+static bool32 DoCopyrightOrTheEndGfxScene(void);
+static void DestroyPlayerOrRivalSprite(void);
+static void LoadPlayerOrRivalSprite(u8 a0);
-const struct BgTemplate gUnknown_840C5A4[] = {
+static const struct BgTemplate sBgTemplates_MonSceneOrTheEnd[] = {
{
.bg = 0,
.charBaseIndex = 0,
@@ -103,7 +154,7 @@ const struct BgTemplate gUnknown_840C5A4[] = {
}
};
-const struct WindowTemplate gUnknown_840C5B0[] = {
+static const struct WindowTemplate sWindowTemplates_Charizard[] = {
{
.bg = 0x00,
.tilemapLeft = 0x0b,
@@ -131,7 +182,7 @@ const struct WindowTemplate gUnknown_840C5B0[] = {
}, DUMMY_WIN_TEMPLATE
};
-const struct WindowTemplate gUnknown_840C5D0[] = {
+static const struct WindowTemplate sWindowTemplates_Venusaur[] = {
{
.bg = 0x00,
.tilemapLeft = 0x0b,
@@ -159,7 +210,7 @@ const struct WindowTemplate gUnknown_840C5D0[] = {
}, DUMMY_WIN_TEMPLATE
};
-const struct WindowTemplate gUnknown_840C5F0[] = {
+static const struct WindowTemplate sWindowTemplates_Blastoise[] = {
{
.bg = 0x00,
.tilemapLeft = 0x0b,
@@ -187,7 +238,7 @@ const struct WindowTemplate gUnknown_840C5F0[] = {
}, DUMMY_WIN_TEMPLATE
};
-const struct WindowTemplate gUnknown_840C610[] = {
+static const struct WindowTemplate sWindowTemplates_Pikachu[] = {
{
.bg = 0x00,
.tilemapLeft = 0x0b,
@@ -215,111 +266,111 @@ const struct WindowTemplate gUnknown_840C610[] = {
}, DUMMY_WIN_TEMPLATE
};
-const u16 gUnknown_840C630[] = INCBIN_U16("data/credits/unk_840C630.gbapal");
-const u32 gUnknown_840C650[] = INCBIN_U32("data/credits/unk_840C650.8bpp.lz");
-const u32 gUnknown_840CA54[] = INCBIN_U32("data/credits/unk_840CA54.bin.lz");
-const u32 gUnknown_840CB8C[] = INCBIN_U32("data/credits/unk_840CB8C.bin.lz");
-const u32 gUnknown_840D228[] = INCBIN_U32("data/credits/unk_840D228.bin.lz");
-const u32 gUnknown_840DC0C[] = INCBIN_U32("data/credits/unk_840DC0C.bin.lz");
-const u32 gUnknown_840E158[] = INCBIN_U32("data/credits/unk_840E158.bin.lz");
-const u32 gUnknown_840E904[] = INCBIN_U32("data/credits/unk_840E904.bin.lz");
-const u32 gUnknown_840F240[] = INCBIN_U32("data/credits/unk_840F240.bin.lz");
-const u32 gUnknown_840F944[] = INCBIN_U32("data/credits/unk_840F944.bin.lz");
-const u32 gUnknown_8410198[] = INCBIN_U32("data/credits/unk_8410198.bin.lz");
-const u32 gUnknown_84105B4[] = INCBIN_U32("data/credits/unk_84105B4.bin.lz");
-
-const u32 filler_8410AFC = 0xF0;
-
-const u16 gUnknown_8410B00[] = INCBIN_U16("data/credits/unk_8410B20.gbapal");
-const u8 gUnknown_8410B20[] = INCBIN_U8("data/credits/unk_8410B20.4bpp.lz");
-const u8 gUnknown_8410B94[] = INCBIN_U8("data/credits/unk_8410B20.bin.lz");
-
-const struct CompressedGraphicsHeader gUnknown_8410CDC[] = {
+static const u16 sPalette_OneBlackThenAllWhite[] = INCBIN_U16("data/credits/unk_840C630.gbapal");
+static const u32 sAffineCircleGfx[] = INCBIN_U32("data/credits/unk_840C650.8bpp.lz");
+static const u32 sAffineCircleMap[] = INCBIN_U32("data/credits/unk_840CA54.bin.lz");
+static const u32 sWindow1Map_Charizard[] = INCBIN_U32("data/credits/unk_840CB8C.bin.lz");
+static const u32 sWindow2Map_Charizard[] = INCBIN_U32("data/credits/unk_840D228.bin.lz");
+static const u32 sUnusedTilemap[] = INCBIN_U32("data/credits/unk_840DC0C.bin.lz");
+static const u32 sWindow1Map_Venusaur[] = INCBIN_U32("data/credits/unk_840E158.bin.lz");
+static const u32 sWindow2Map_Venusaur[] = INCBIN_U32("data/credits/unk_840E904.bin.lz");
+static const u32 sWindow1Map_Blastoise[] = INCBIN_U32("data/credits/unk_840F240.bin.lz");
+static const u32 sWindow2Map_Blastoise[] = INCBIN_U32("data/credits/unk_840F944.bin.lz");
+static const u32 sWindow1Map_Pikachu[] = INCBIN_U32("data/credits/unk_8410198.bin.lz");
+static const u32 sWindow2Map_Pikachu[] = INCBIN_U32("data/credits/unk_84105B4.bin.lz");
+
+static const u32 filler_8410AFC = 0xF0;
+
+static const u16 sTheEndGfxPal[] = INCBIN_U16("data/credits/unk_8410B20.gbapal");
+static const u8 sTheEndGfxTiles[] = INCBIN_U8("data/credits/unk_8410B20.4bpp.lz");
+static const u8 sTheEndGfxMap[] = INCBIN_U8("data/credits/unk_8410B20.bin.lz");
+
+static const struct CompressedGraphicsHeader sCopyrightOrTheEndGfxHeaders[] = {
{
- .tiles = gUnknown_8EAE548,
- .map = gUnknown_8EAE900,
- .palette = gUnknown_8EAE528
+ .tiles = gCreditsAllRightsReservedGfxTiles,
+ .map = gCreditsAllRightsReservedGfxMap,
+ .palette = gCreditsAllRightsReservedGfxPal
}, {
- .tiles = gUnknown_8410B20,
- .map = gUnknown_8410B94,
- .palette = gUnknown_8410B00
+ .tiles = sTheEndGfxTiles,
+ .map = sTheEndGfxMap,
+ .palette = sTheEndGfxPal
}
};
-const struct UnkStruct_8410CF4 gUnknown_8410CF4[] = {
- { 1, 0, 16 },
- { 0, 0, 300 },
- { 0, 1, 300 },
- { 0, 2, 300 },
- { 0, 42, 60 },
- { 1, 1, 0 },
- { 0, 3, 211 },
- { 0, 4, 211 },
- { 0, 5, 211 },
- { 1, 2, 0 },
- { 0, 6, 211 },
- { 0, 7, 210 },
- { 0, 8, 210 },
- { 3, 0, 0 },
- { 2, 3, 16 },
- { 0, 9, 211 },
- { 0, 10, 210 },
- { 0, 11, 210 },
- { 1, 4, 16 },
- { 0, 12, 211 },
- { 0, 13, 210 },
- { 0, 14, 210 },
- { 1, 5, 16 },
- { 0, 15, 211 },
- { 0, 16, 210 },
- { 0, 17, 210 },
- { 3, 1, 0 },
- { 2, 6, 16 },
- { 0, 18, 211 },
- { 0, 19, 210 },
- { 0, 20, 210 },
- { 1, 7, 16 },
- { 0, 21, 221 },
- { 0, 22, 221 },
- { 0, 23, 221 },
- { 0, 24, 221 },
- { 0, 42, 51 },
- { 1, 8, 16 },
- { 0, 25, 211 },
- { 0, 26, 210 },
- { 0, 27, 210 },
- { 3, 2, 0 },
- { 2, 9, 16 },
- { 0, 28, 331 },
- { 0, 29, 331 },
- { 0, 30, 331 },
- { 1, 10, 16 },
- { 0, 31, 221 },
- { 0, 32, 221 },
- { 0, 33, 221 },
- { 0, 34, 221 },
- { 0, 42, 52 },
- { 1, 11, 16 },
- { 0, 41, 210 },
- { 0, 35, 210 },
- { 0, 36, 211 },
- { 3, 3, 0 },
- { 2, 12, 16 },
- { 0, 37, 221 },
- { 0, 40, 221 },
- { 0, 38, 221 },
- { 0, 39, 221 },
- { 0, 42, 52 },
- { 4, 0, 224 },
- { 4, 1, 240 },
- { 5, 0, 600 }
+static const struct CreditsScrcmd sCreditsScript[] = {
+ { CREDITSSCRCMD_MAPNEXT, 0, 16 },
+ { CREDITSSCRCMD_PRINT, 0, 300 },
+ { CREDITSSCRCMD_PRINT, 1, 300 },
+ { CREDITSSCRCMD_PRINT, 2, 300 },
+ { CREDITSSCRCMD_PRINT, 42, 60 },
+ { CREDITSSCRCMD_MAPNEXT, 1, 0 },
+ { CREDITSSCRCMD_PRINT, 3, 211 },
+ { CREDITSSCRCMD_PRINT, 4, 211 },
+ { CREDITSSCRCMD_PRINT, 5, 211 },
+ { CREDITSSCRCMD_MAPNEXT, 2, 0 },
+ { CREDITSSCRCMD_PRINT, 6, 211 },
+ { CREDITSSCRCMD_PRINT, 7, 210 },
+ { CREDITSSCRCMD_PRINT, 8, 210 },
+ { CREDITSSCRCMD_MON, 0, 0 },
+ { CREDITSSCRCMD_MAP, 3, 16 },
+ { CREDITSSCRCMD_PRINT, 9, 211 },
+ { CREDITSSCRCMD_PRINT, 10, 210 },
+ { CREDITSSCRCMD_PRINT, 11, 210 },
+ { CREDITSSCRCMD_MAPNEXT, 4, 16 },
+ { CREDITSSCRCMD_PRINT, 12, 211 },
+ { CREDITSSCRCMD_PRINT, 13, 210 },
+ { CREDITSSCRCMD_PRINT, 14, 210 },
+ { CREDITSSCRCMD_MAPNEXT, 5, 16 },
+ { CREDITSSCRCMD_PRINT, 15, 211 },
+ { CREDITSSCRCMD_PRINT, 16, 210 },
+ { CREDITSSCRCMD_PRINT, 17, 210 },
+ { CREDITSSCRCMD_MON, 1, 0 },
+ { CREDITSSCRCMD_MAP, 6, 16 },
+ { CREDITSSCRCMD_PRINT, 18, 211 },
+ { CREDITSSCRCMD_PRINT, 19, 210 },
+ { CREDITSSCRCMD_PRINT, 20, 210 },
+ { CREDITSSCRCMD_MAPNEXT, 7, 16 },
+ { CREDITSSCRCMD_PRINT, 21, 221 },
+ { CREDITSSCRCMD_PRINT, 22, 221 },
+ { CREDITSSCRCMD_PRINT, 23, 221 },
+ { CREDITSSCRCMD_PRINT, 24, 221 },
+ { CREDITSSCRCMD_PRINT, 42, 51 },
+ { CREDITSSCRCMD_MAPNEXT, 8, 16 },
+ { CREDITSSCRCMD_PRINT, 25, 211 },
+ { CREDITSSCRCMD_PRINT, 26, 210 },
+ { CREDITSSCRCMD_PRINT, 27, 210 },
+ { CREDITSSCRCMD_MON, 2, 0 },
+ { CREDITSSCRCMD_MAP, 9, 16 },
+ { CREDITSSCRCMD_PRINT, 28, 331 },
+ { CREDITSSCRCMD_PRINT, 29, 331 },
+ { CREDITSSCRCMD_PRINT, 30, 331 },
+ { CREDITSSCRCMD_MAPNEXT, 10, 16 },
+ { CREDITSSCRCMD_PRINT, 31, 221 },
+ { CREDITSSCRCMD_PRINT, 32, 221 },
+ { CREDITSSCRCMD_PRINT, 33, 221 },
+ { CREDITSSCRCMD_PRINT, 34, 221 },
+ { CREDITSSCRCMD_PRINT, 42, 52 },
+ { CREDITSSCRCMD_MAPNEXT, 11, 16 },
+ { CREDITSSCRCMD_PRINT, 41, 210 },
+ { CREDITSSCRCMD_PRINT, 35, 210 },
+ { CREDITSSCRCMD_PRINT, 36, 211 },
+ { CREDITSSCRCMD_MON, 3, 0 },
+ { CREDITSSCRCMD_MAP, 12, 16 },
+ { CREDITSSCRCMD_PRINT, 37, 221 },
+ { CREDITSSCRCMD_PRINT, 40, 221 },
+ { CREDITSSCRCMD_PRINT, 38, 221 },
+ { CREDITSSCRCMD_PRINT, 39, 221 },
+ { CREDITSSCRCMD_PRINT, 42, 52 },
+ { CREDITSSCRCMD_THEENDGFX, 0, 224 },
+ { CREDITSSCRCMD_THEENDGFX, 1, 240 },
+ { CREDITSSCRCMD_WAITBUTTON, 0, 600 }
};
-const ALIGNED(4) u8 gUnknown_8410FFC[3] = {0, 1, 2};
-const ALIGNED(4) u8 gUnknown_8410E00[3] = {0, 5, 2};
-const ALIGNED(4) u8 gUnknown_8410E04[3] = {0, 1, 2};
+static const ALIGNED(4) u8 sTextColor_Unused[3] = {0, 1, 2};
+static const ALIGNED(4) u8 sTextColor_Header[3] = {0, 5, 2};
+static const ALIGNED(4) u8 sTextColor_Regular[3] = {0, 1, 2};
-const struct WindowTemplate gUnknown_8410E08 = {
+static const struct WindowTemplate sCreditsWindowTemplate = {
.bg = 0,
.tilemapLeft = 0,
.tilemapTop = 4,
@@ -329,20 +380,20 @@ const struct WindowTemplate gUnknown_8410E08 = {
.baseBlock = 0x008
};
-const u16 gUnknown_8410E10[] = INCBIN_U16("data/credits/unk_8410E10.gbapal");
-const u32 gUnknown_8410E30[] = INCBIN_U32("data/credits/unk_8410E30.4bpp.lz");
-const u16 gUnknown_8411BF8[] = INCBIN_U16("data/credits/unk_8411BF8.gbapal");
-const u32 gUnknown_8411C18[] = INCBIN_U32("data/credits/unk_8411C18.4bpp.lz");
-const u16 gUnknown_84129A0[] = INCBIN_U16("data/credits/unk_84129A0.gbapal");
-const u32 gUnknown_84129C0[] = INCBIN_U32("data/credits/unk_84129C0.4bpp.lz");
-const u16 gUnknown_8413318[] = INCBIN_U16("data/credits/unk_8413318.gbapal");
-const u32 gUnknown_8413338[] = INCBIN_U32("data/credits/unk_8413338.4bpp.lz");
-const u16 gUnknown_8413854[] = INCBIN_U16("data/credits/unk_8413854.gbapal");
-const u32 gUnknown_8413874[] = INCBIN_U32("data/credits/unk_8413874.4bpp.lz");
-const u16 gUnknown_8413D98[] = INCBIN_U16("data/credits/unk_8413D98.gbapal");
-const u32 gUnknown_8413DB8[] = INCBIN_U32("data/credits/unk_8413DB8.4bpp.lz");
-
-const u16 gUnknown_841431C[][3] = {
+static const u16 sMalePlayerSpritePal[] = INCBIN_U16("data/credits/unk_8410E10.gbapal");
+static const u32 sMalePlayerSpriteGfx[] = INCBIN_U32("data/credits/unk_8410E30.4bpp.lz");
+static const u16 sFemalePlayerSpritePal[] = INCBIN_U16("data/credits/unk_8411BF8.gbapal");
+static const u32 sFemalePlayerSpriteGfx[] = INCBIN_U32("data/credits/unk_8411C18.4bpp.lz");
+static const u16 sRivalSpritePal[] = INCBIN_U16("data/credits/unk_84129A0.gbapal");
+static const u32 sRivalSpriteGfx[] = INCBIN_U32("data/credits/unk_84129C0.4bpp.lz");
+static const u16 sGroundSpritePal_Grass[] = INCBIN_U16("data/credits/unk_8413318.gbapal");
+static const u32 sGroundSpriteGfx_Grass[] = INCBIN_U32("data/credits/unk_8413338.4bpp.lz");
+static const u16 sGroundSpritePal_Dirt[] = INCBIN_U16("data/credits/unk_8413854.gbapal");
+static const u32 sGroundSpriteGfx_Dirt[] = INCBIN_U32("data/credits/unk_8413874.4bpp.lz");
+static const u16 sGroundSpritePal_City[] = INCBIN_U16("data/credits/unk_8413D98.gbapal");
+static const u32 sGroundSpriteGfx_City[] = INCBIN_U32("data/credits/unk_8413DB8.4bpp.lz");
+
+static const u16 sPlayerRivalSpriteParams[][3] = {
{ 0, 3, 1 },
{ 0, 2, 0 },
{ 0, 3, 0 },
@@ -350,7 +401,7 @@ const u16 gUnknown_841431C[][3] = {
{ 0, 0, 3 }
};
-const struct OamData gOamData_841433C = {
+static const struct OamData sOamData_PlayerOrRival = {
.affineMode = ST_OAM_AFFINE_OFF,
.mosaic = FALSE,
.objMode = ST_OAM_OBJ_NORMAL,
@@ -362,7 +413,7 @@ const struct OamData gOamData_841433C = {
.paletteNum = 15
};
-const union AnimCmd gAnimCmds_8414344[] = {
+const union AnimCmd sAnimCmds_PlayerOrRival[] = {
ANIMCMD_FRAME(0x000, 8),
ANIMCMD_FRAME(0x040, 8),
ANIMCMD_FRAME(0x080, 8),
@@ -372,18 +423,18 @@ const union AnimCmd gAnimCmds_8414344[] = {
ANIMCMD_JUMP(0)
};
-const union AnimCmd *const gAnimCmdTable_8414360[] = {
- gAnimCmds_8414344
+const union AnimCmd *const sAnimCmdTable_PlayerOrRival[] = {
+ sAnimCmds_PlayerOrRival
};
-const struct SpriteTemplate gUnknown_8414364 = {
- .oam = &gOamData_841433C,
- .anims = gAnimCmdTable_8414360,
+static const struct SpriteTemplate sPlayerOrRivalSpriteTemplate = {
+ .oam = &sOamData_PlayerOrRival,
+ .anims = sAnimCmdTable_PlayerOrRival,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
-const struct OamData gOamData_841437C = {
+static const struct OamData sOamData_Ground = {
.affineMode = ST_OAM_AFFINE_OFF,
.mosaic = FALSE,
.objMode = ST_OAM_OBJ_NORMAL,
@@ -395,7 +446,7 @@ const struct OamData gOamData_841437C = {
.paletteNum = 14
};
-const union AnimCmd gAnimCmds_8414384[] = {
+const union AnimCmd sAnimCmds_GroundRunning[] = {
ANIMCMD_FRAME(0x00, 8),
ANIMCMD_FRAME(0x20, 8),
ANIMCMD_FRAME(0x40, 8),
@@ -407,149 +458,141 @@ const union AnimCmd gAnimCmds_8414384[] = {
ANIMCMD_JUMP(0)
};
-const union AnimCmd gAnimCmds_84143A8[] = {
+const union AnimCmd sAnimCmds_GroundStatic[] = {
ANIMCMD_FRAME(0x00, 8),
ANIMCMD_JUMP(0)
};
-const union AnimCmd *const gAnimCmdTable_84143B0[] = {
- gAnimCmds_8414384
+const union AnimCmd *const sAnimCmdTable_GroundRunning[] = {
+ sAnimCmds_GroundRunning
};
-const union AnimCmd *const gAnimCmdTable_84143B4[] = {
- gAnimCmds_84143A8
+const union AnimCmd *const sAnimCmdTable_GroundStatic[] = {
+ sAnimCmds_GroundStatic
};
-const struct SpriteTemplate gUnknown_84143B8 = {
- .oam = &gOamData_841437C,
- .anims = gAnimCmdTable_84143B0,
+static const struct SpriteTemplate sGroundSpriteTemplate_Running = {
+ .oam = &sOamData_Ground,
+ .anims = sAnimCmdTable_GroundRunning,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
-const struct SpriteTemplate gUnknown_84143D0 = {
- .oam = &gOamData_841437C,
- .anims = gAnimCmdTable_84143B4,
+static const struct SpriteTemplate sGroundSpriteTemplate_Static = {
+ .oam = &sOamData_Ground,
+ .anims = sAnimCmdTable_GroundStatic,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
-const struct CreditsOverworldCmd gUnknown_84143E8[] = {
+static const struct CreditsOverworldCmd sOverworldCmd_Route23[] = {
{ 0x00fe, MAP_GROUP(ROUTE23), MAP_NUM(ROUTE23) },
{ 0x000b, 0x006b, 0x0001 },
{ 0x0000, 0x0001, 0x0500 }, // Scroll down
{ 0x00fd, 0x00fd, 0x00fd }
};
-const struct CreditsOverworldCmd gUnknown_8414408[] = {
+static const struct CreditsOverworldCmd sOverworldCmd_ViridianCity[] = {
{ 0x00fe, MAP_GROUP(VIRIDIAN_CITY), MAP_NUM(VIRIDIAN_CITY) },
{ 0x001e, 0x0022, 0x0001 },
{ 0x0000, 0xffff, 0x0500 }, // Scroll up
{ 0x00fd, 0x00fd, 0x00fd }
};
-const struct CreditsOverworldCmd gUnknown_8414428[] = {
+static const struct CreditsOverworldCmd sOverworldCmd_PewterCity[] = {
{ 0x00fe, MAP_GROUP(PEWTER_CITY), MAP_NUM(PEWTER_CITY) },
{ 0x0014, 0x001a, 0x0001 },
{ 0x0000, 0xffff, 0x0500 }, // Scroll up
{ 0x00fd, 0x00fd, 0x00fd }
};
-// Charizard
-
-const struct CreditsOverworldCmd gUnknown_8414448[] = {
+static const struct CreditsOverworldCmd sOverworldCmd_CeruleanCity[] = {
{ 0x00fe, MAP_GROUP(CERULEAN_CITY), MAP_NUM(CERULEAN_CITY) },
{ 0x0008, 0x0006, 0x0001 },
{ 0x0001, 0x0001, 0x0500 }, // Scroll right and down
{ 0x00fd, 0x00fd, 0x00fd }
};
-const struct CreditsOverworldCmd gUnknown_8414468[] = {
+static const struct CreditsOverworldCmd sOverworldCmd_Route25[] = {
{ 0x00fe, MAP_GROUP(ROUTE25), MAP_NUM(ROUTE25) },
{ 0x0019, 0x0006, 0x0001 },
{ 0x0001, 0x0000, 0x0500 }, // Scroll right
{ 0x00fd, 0x00fd, 0x00fd }
};
-const struct CreditsOverworldCmd gUnknown_8414488[] = {
+static const struct CreditsOverworldCmd sOverworldCmd_VermilionCity[] = {
{ 0x00fe, MAP_GROUP(VERMILION_CITY), MAP_NUM(VERMILION_CITY) },
{ 0x0009, 0x0007, 0x0001 },
{ 0x0001, 0x0001, 0x0500 }, // Scroll right and down
{ 0x00fd, 0x00fd, 0x00fd }
};
-// Venusaur
-
-const struct CreditsOverworldCmd gUnknown_84144A8[] = {
+static const struct CreditsOverworldCmd sOverworldCmd_Route10[] = {
{ 0x00fe, MAP_GROUP(ROUTE10), MAP_NUM(ROUTE10) },
{ 0x000b, 0x0044, 0x0001 },
{ 0x0000, 0x0001, 0x0500 }, // Scroll down
{ 0x00fd, 0x00fd, 0x00fd }
};
-const struct CreditsOverworldCmd gUnknown_84144C8[] = {
+static const struct CreditsOverworldCmd sOverworldCmd_CeladonCity[] = {
{ 0x00fe, MAP_GROUP(CELADON_CITY), MAP_NUM(CELADON_CITY) },
{ 0x0030, 0x0010, 0x0001 },
{ 0xffff, 0x0000, 0x0500 }, // Scroll left
{ 0x00fd, 0x00fd, 0x00fd }
};
-const struct CreditsOverworldCmd gUnknown_84144E8[] = {
+static const struct CreditsOverworldCmd sOverworldCmd_SaffronCity[] = {
{ 0x00fe, MAP_GROUP(SAFFRON_CITY_DUPLICATE), MAP_NUM(SAFFRON_CITY_DUPLICATE) },
{ 0x0027, 0x0005, 0x0001 },
{ 0x0000, 0x0001, 0x0500 }, // Scroll down
{ 0x00fd, 0x00fd, 0x00fd }
};
-// Blastoise
-
-const struct CreditsOverworldCmd gUnknown_8414508[] = {
+static const struct CreditsOverworldCmd sOverworldCmd_Route17[] = {
{ 0x00fe, MAP_GROUP(ROUTE17), MAP_NUM(ROUTE17) },
{ 0x0007, 0x002b, 0x0001 },
{ 0x0000, 0x0001, 0x0500 }, // Scroll down
{ 0x00fd, 0x00fd, 0x00fd }
};
-const struct CreditsOverworldCmd gUnknown_8414528[] = {
+static const struct CreditsOverworldCmd sOverworldCmd_FuchsiaCity[] = {
{ 0x00fe, MAP_GROUP(FUCHSIA_CITY), MAP_NUM(FUCHSIA_CITY) },
{ 0x001c, 0x0005, 0x0001 },
{ 0x0000, 0x0001, 0x0500 }, // Scroll down
{ 0x00fd, 0x00fd, 0x00fd }
};
-const struct CreditsOverworldCmd gUnknown_8414548[] = {
+static const struct CreditsOverworldCmd sOverworldCmd_CinnabarIsland[] = {
{ 0x00fe, MAP_GROUP(CINNABAR_ISLAND), MAP_NUM(CINNABAR_ISLAND) },
{ 0x000d, 0x0011, 0x0001 },
{ 0x0000, 0xffff, 0x0500 }, // Scroll up
{ 0x00fd, 0x00fd, 0x00fd }
};
-// Pikachu
-
-const struct CreditsOverworldCmd gUnknown_8414568[] = {
+static const struct CreditsOverworldCmd sOverworldCmd_Route21[] = {
{ 0x00fe, MAP_GROUP(ROUTE21_NORTH), MAP_NUM(ROUTE21_NORTH) },
{ 0x0008, 0x0014, 0x0001 },
{ 0x0000, 0xffff, 0x0500 }, // Scroll up
{ 0x00fd, 0x00fd, 0x00fd },
};
-const struct CreditsOverworldCmd *const gUnknown_8414588[] = {
- gUnknown_84143E8,
- gUnknown_8414408,
- gUnknown_8414428,
- gUnknown_8414448,
- gUnknown_8414468,
- gUnknown_8414488,
- gUnknown_84144A8,
- gUnknown_84144C8,
- gUnknown_84144E8,
- gUnknown_8414508,
- gUnknown_8414528,
- gUnknown_8414548,
- gUnknown_8414568
+static const struct CreditsOverworldCmd *const sOverworldMapScenes[] = {
+ sOverworldCmd_Route23,
+ sOverworldCmd_ViridianCity,
+ sOverworldCmd_PewterCity,
+ sOverworldCmd_CeruleanCity,
+ sOverworldCmd_Route25,
+ sOverworldCmd_VermilionCity,
+ sOverworldCmd_Route10,
+ sOverworldCmd_CeladonCity,
+ sOverworldCmd_SaffronCity,
+ sOverworldCmd_Route17,
+ sOverworldCmd_FuchsiaCity,
+ sOverworldCmd_CinnabarIsland,
+ sOverworldCmd_Route21
};
-const struct UnkStruct_84145BC gUnknown_84145BC[] = {
+static const struct CreditsTextHeader sCreditsTexts[] = {
{ gUnknown_841D1D8, gUnknown_841D1E8, FALSE },
{ gUnknown_841D200, gUnknown_841D224, FALSE },
{ gUnknown_841D248, gUnknown_841D284, FALSE },
@@ -597,17 +640,17 @@ const struct UnkStruct_84145BC gUnknown_84145BC[] = {
void Special_Credits(void)
{
- gUnknown_203AB40 = AllocZeroed(sizeof(*gUnknown_203AB40));
+ sCreditsMgr = AllocZeroed(sizeof(*sCreditsMgr));
ResetTasks();
- gUnknown_203AB40->unk_02 = 0xFF;
- gUnknown_203AB40->unk_1D = 0;
+ sCreditsMgr->taskId = 0xFF;
+ sCreditsMgr->unk_1D = 0;
ResetSpriteData();
- SetMainCallback2(sub_80F39E8);
+ SetMainCallback2(CB2_Credits);
}
-void sub_80F39E8(void)
+static void CB2_Credits(void)
{
- switch (sub_80F3BD0())
+ switch (RollCredits())
{
case 0:
RunTasks();
@@ -616,9 +659,9 @@ void sub_80F39E8(void)
UpdatePaletteFade();
break;
case 1:
- if (gUnknown_203AB40->unk_1D & 1)
+ if (sCreditsMgr->unk_1D & 1)
{
- sub_80574A4();
+ Overworld_CreditsMainCB();
}
else
{
@@ -627,18 +670,18 @@ void sub_80F39E8(void)
BuildOamBuffer();
UpdatePaletteFade();
}
- gUnknown_203AB40->unk_1D++;
+ sCreditsMgr->unk_1D++;
break;
case 2:
FlagClear(0x4000);
- gUnknown_2031DD8 = 0;
- Free(gUnknown_203AB40);
+ gDisableMapMusicChangeOnMapLoad = MUSIC_DISABLE_OFF;
+ Free(sCreditsMgr);
SoftReset(RESET_ALL);
// noreturn
}
}
-void sub_80F3A74(void)
+static void SwitchWin1OffWin0On(void)
{
ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON);
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
@@ -646,50 +689,50 @@ void sub_80F3A74(void)
SetGpuReg(REG_OFFSET_WINOUT, 0x000E);
}
-void sub_80F3AA4(void)
+static void InitBgDarkenEffect(void)
{
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_DARKEN);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 4));
SetGpuReg(REG_OFFSET_BLDY, 10);
}
-void sub_80F3AC4(void)
+static void CreateCreditsWindow(void)
{
- gUnknown_203AB40->unk_0A = AddWindow(&gUnknown_8410E08);
- FillWindowPixelBuffer(gUnknown_203AB40->unk_0A, PIXEL_FILL(0));
- PutWindowTilemap(gUnknown_203AB40->unk_0A);
- CopyWindowToVram(gUnknown_203AB40->unk_0A, 3);
- gUnknown_203AB40->unk_0B = TRUE;
+ sCreditsMgr->windowId = AddWindow(&sCreditsWindowTemplate);
+ FillWindowPixelBuffer(sCreditsMgr->windowId, PIXEL_FILL(0));
+ PutWindowTilemap(sCreditsMgr->windowId);
+ CopyWindowToVram(sCreditsMgr->windowId, 3);
+ sCreditsMgr->windowIsActive = TRUE;
}
-void sub_80F3B04(void)
+static void DestroyCreditsWindow(void)
{
- if (gUnknown_203AB40->unk_0B)
+ if (sCreditsMgr->windowIsActive)
{
- RemoveWindow(gUnknown_203AB40->unk_0A);
+ RemoveWindow(sCreditsMgr->windowId);
CleanupOverworldWindowsAndTilemaps();
- gUnknown_203AB40->unk_0B = FALSE;
+ sCreditsMgr->windowIsActive = FALSE;
}
}
-bool32 sub_80F3B2C(UNUSED u8 unused)
+static bool32 DoOverworldMapScrollScene(UNUSED u8 unused)
{
- switch (gUnknown_203AB40->unk_01)
+ switch (sCreditsMgr->subseqno)
{
case 0:
FlagSet(0x4000);
- gUnknown_2031DD8 = 2;
- gUnknown_203AB40->unk_1C = 0;
- gUnknown_203AB40->unk_01++;
+ gDisableMapMusicChangeOnMapLoad = MUSIC_DISABLE_KEEP;
+ sCreditsMgr->ovwldseqno = 0;
+ sCreditsMgr->subseqno++;
// fallthrough
case 1:
- if (!sub_805750C(&gUnknown_203AB40->unk_1C, gUnknown_8414588[gUnknown_203AB40->unk_09], 0))
+ if (!Overworld_DoScrollSceneForCredits(&sCreditsMgr->ovwldseqno, sOverworldMapScenes[sCreditsMgr->whichMon], 0))
return FALSE;
- sub_80F3AC4();
+ CreateCreditsWindow();
SetGpuReg(REG_OFFSET_WIN0H, 0xF0);
SetGpuReg(REG_OFFSET_WIN0V, 0x247C);
- sub_80F3A74();
- sub_80F3AA4();
+ SwitchWin1OffWin0On();
+ InitBgDarkenEffect();
Menu_LoadStdPalAt(0xF0);
gPlttBufferUnfaded[0xFF] = RGB_BLACK;
gPlttBufferFaded[0xFF] = RGB_BLACK;
@@ -700,33 +743,33 @@ bool32 sub_80F3B2C(UNUSED u8 unused)
}
#ifdef NONMATCHING
-s32 sub_80F3BD0(void)
+static s32 RollCredits(void)
{
- u16 win0v[2];
+ u16 win0v[8];
- switch (gUnknown_203AB40->unk_00)
+ switch (sCreditsMgr->mainseqno)
{
- case 0:
- sub_80F3A74();
+ case CREDITSSCENE_INIT_WIN0:
+ SwitchWin1OffWin0On();
SetGpuReg(REG_OFFSET_WIN0H, 0x40);
SetGpuReg(REG_OFFSET_WIN0V, 0x4F51);
- gUnknown_203AB40->unk_00 = 1;
+ sCreditsMgr->mainseqno = CREDITSSCENE_SETUP_DARKEN_EFFECT;
return 0;
- case 1:
- sub_80F3AA4();
- sub_80F3AC4();
+ case CREDITSSCENE_SETUP_DARKEN_EFFECT:
+ InitBgDarkenEffect();
+ CreateCreditsWindow();
Menu_LoadStdPalAt(0xF0);
gPlttBufferUnfaded[0xFF] = RGB_BLACK;
gPlttBufferFaded[0xFF] = RGB_BLACK;
- gUnknown_203AB40->unk_00 = 2;
+ sCreditsMgr->mainseqno = CREDITSSCENE_OPEN_WIN0;
return 0;
- case 2:
+ case CREDITSSCENE_OPEN_WIN0:
win0v[0] = GetGpuReg(REG_OFFSET_WIN0V) >> 8;
win0v[1] = GetGpuReg(REG_OFFSET_WIN0V) & 0xFF;
if (win0v[0] == 0x24)
{
- gUnknown_203AB40->unk_04 = 0;
- gUnknown_203AB40->unk_00 = 3;
+ sCreditsMgr->timer = 0;
+ sCreditsMgr->mainseqno = CREDITSSCENE_LOAD_PLAYER_SPRITE_AT_INDIGO;
}
else
{
@@ -735,128 +778,128 @@ s32 sub_80F3BD0(void)
SetGpuReg(REG_OFFSET_WIN0V, win0v[1] + (win0v[0] << 8));
}
return 0;
- case 3:
- if (gUnknown_203AB40->unk_04 == 0)
+ case CREDITSSCENE_LOAD_PLAYER_SPRITE_AT_INDIGO:
+ if (sCreditsMgr->timer != 0)
{
- sub_80F4930(0);
- gUnknown_203AB40->unk_04 = 100;
- gUnknown_203AB40->unk_00 = 4;
+ LoadPlayerOrRivalSprite(0);
+ sCreditsMgr->timer = 100;
+ sCreditsMgr->mainseqno = CREDITSSCENE_PRINT_TITLE_STAFF;
}
else
{
- gUnknown_203AB40->unk_04--;
+ sCreditsMgr->timer--;
}
return 0;
- case 4:
- if (gUnknown_203AB40->unk_04 == 0)
+ case CREDITSSCENE_PRINT_TITLE_STAFF:
+ if (sCreditsMgr->timer == 0)
{
- gUnknown_203AB40->unk_04 = 360;
- AddTextPrinterParameterized4(gUnknown_203AB40->unk_0A, 1, 0x08, 0x29, 1, 2, gUnknown_8410E00, 0, gUnknown_841D198);
- gUnknown_203AB40->unk_00 = 5;
+ sCreditsMgr->timer = 360;
+ AddTextPrinterParameterized4(sCreditsMgr->windowId, 1, 0x08, 0x29, 1, 2, sTextColor_Header, 0, TITLE_TEXT);
+ sCreditsMgr->mainseqno = CREDITSSCENE_WAIT_TITLE_STAFF;
}
else
{
- gUnknown_203AB40->unk_04--;
+ sCreditsMgr->timer--;
}
return 0;
- case 5:
- if (gUnknown_203AB40->unk_04 == 0)
+ case CREDITSSCENE_WAIT_TITLE_STAFF:
+ if (sCreditsMgr->timer != 0)
{
- sub_80F3B04();
- gUnknown_203AB40->unk_00 = 6;
- gUnknown_203AB40->unk_04 = 0;
- gUnknown_203AB40->unk_06 = 0;
+ sCreditsMgr->timer--;
}
else
{
- gUnknown_203AB40->unk_04--;
+ DestroyCreditsWindow();
+ sCreditsMgr->mainseqno = CREDITSSCENE_EXEC_CMD;
+ sCreditsMgr->timer = 0;
+ sCreditsMgr->scrcmdidx = 0;
}
return 0;
- case 6:
- if (gUnknown_203AB40->unk_04 != 0)
+ case CREDITSSCENE_EXEC_CMD:
+ if (sCreditsMgr->timer != 0)
{
- gUnknown_203AB40->unk_04--;
- return gUnknown_203AB40->unk_08;
+ sCreditsMgr->timer--;
+ return sCreditsMgr->canSpeedThrough;
}
else
{
- switch (gUnknown_203AB40->unk_06)
+ switch (sCreditsScript[sCreditsMgr->scrcmdidx].cmd)
{
- case 0:
+ case CREDITSSCRCMD_PRINT:
BeginNormalPaletteFade(0x00008000, 0, 0, 16, RGB_BLACK);
- gUnknown_203AB40->unk_00 = 7;
- FillWindowPixelBuffer(gUnknown_203AB40->unk_0A, PIXEL_FILL(0));
- return gUnknown_203AB40->unk_08;
- case 1:
- gUnknown_203AB40->unk_00 = 10;
- gUnknown_203AB40->unk_09 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1;
- sub_807A944(1, 0, 0x3FFFFFFF);
+ sCreditsMgr->mainseqno = CREDITSSCENE_PRINT_ADDPRINTER1;
+ FillWindowPixelBuffer(sCreditsMgr->windowId, PIXEL_FILL(0));
+ return sCreditsMgr->canSpeedThrough;
+ case CREDITSSCRCMD_MAPNEXT:
+ sCreditsMgr->mainseqno = CREDITSSCENE_MAPNEXT_DESTROYWINDOW;
+ sCreditsMgr->whichMon = sCreditsScript[sCreditsMgr->scrcmdidx].param;
+ FieldWeather_StartFadingOutCreditsMap(1, 0, 0x3FFFFFFF);
break;
- case 2:
- gUnknown_203AB40->unk_00 = 12;
- gUnknown_203AB40->unk_09 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1;
+ case CREDITSSCRCMD_MAP:
+ sCreditsMgr->mainseqno = CREDITSSCENE_MAP_LOADMAP_CREATESPRITES;
+ sCreditsMgr->whichMon = sCreditsScript[sCreditsMgr->scrcmdidx].param;
break;
- case 3:
- gUnknown_203AB40->unk_00 = 13;
- gUnknown_203AB40->unk_09 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1;
+ case CREDITSSCRCMD_MON:
+ sCreditsMgr->mainseqno = CREDITSSCENE_MON_DESTROY_ASSETS;
+ sCreditsMgr->whichMon = sCreditsScript[sCreditsMgr->scrcmdidx].param;
fade_screen(1, 0);
break;
- case 4:
- gUnknown_203AB40->unk_00 = 15;
- gUnknown_203AB40->unk_09 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1;
+ case CREDITSSCRCMD_THEENDGFX:
+ sCreditsMgr->mainseqno = CREDITSSCENE_THEEND_DESTROY_ASSETS;
+ sCreditsMgr->whichMon = sCreditsScript[sCreditsMgr->scrcmdidx].param;
BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 16, RGB_BLACK);
break;
- case 5:
- gUnknown_203AB40->unk_00 = 17;
+ case CREDITSSCRCMD_WAITBUTTON:
+ sCreditsMgr->mainseqno = CREDITSSCENE_WAITBUTTON;
break;
}
- gUnknown_203AB40->unk_04 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk2;
- gUnknown_203AB40->unk_06++;
+ sCreditsMgr->timer = sCreditsScript[sCreditsMgr->scrcmdidx].duration;
+ sCreditsMgr->scrcmdidx++;
+ return 0;
}
- return 0;
- case 7:
+ case CREDITSSCENE_PRINT_ADDPRINTER1:
if (!gPaletteFade.active)
{
- win0v[0] = gUnknown_84145BC[gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1].unk_8; // unused
- AddTextPrinterParameterized4(gUnknown_203AB40->unk_0A, 1, 2, 6, 0, 0, gUnknown_8410E00, -1, gUnknown_84145BC[gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1].unk_0);
- gUnknown_203AB40->unk_00 = 8;
+ win0v[0] = sCreditsTexts[sCreditsScript[sCreditsMgr->scrcmdidx].unk1].unk_8; // unused
+ AddTextPrinterParameterized4(sCreditsMgr->windowId, 1, 2, 6, 0, 0, sTextColor_Header, -1, sCreditsTexts[sCreditsScript[sCreditsMgr->scrcmdidx].unk1].unk_0);
+ sCreditsMgr->mainseqno = CREDITSSCENE_PRINT_ADDPRINTER2;
}
- return gUnknown_203AB40->unk_08;
- case 8:
- win0v[0] = gUnknown_84145BC[gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1].unk_8;
- AddTextPrinterParameterized4(gUnknown_203AB40->unk_0A, 1, 2, 6, 0, 0, gUnknown_8410E00, -1, gUnknown_84145BC[gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1].unk_4);
- gUnknown_203AB40->unk_00 = 9;
- return gUnknown_203AB40->unk_08;
- case 9:
- CopyWindowToVram(gUnknown_203AB40->unk_0A, 2);
- gUnknown_203AB40->unk_04 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk2;
- gUnknown_203AB40->unk_06++;
+ return sCreditsMgr->canSpeedThrough;
+ case CREDITSSCENE_PRINT_ADDPRINTER2:
+ win0v[0] = sCreditsTexts[sCreditsScript[sCreditsMgr->scrcmdidx].unk1].unk_8;
+ AddTextPrinterParameterized4(sCreditsMgr->windowId, 1, 2, 6, 0, 0, sTextColor_Header, -1, sCreditsTexts[sCreditsScript[sCreditsMgr->scrcmdidx].unk1].unk_4);
+ sCreditsMgr->mainseqno = CREDITSSCENE_PRINT_DELAY;
+ return sCreditsMgr->canSpeedThrough;
+ case CREDITSSCENE_PRINT_DELAY:
+ CopyWindowToVram(sCreditsMgr->windowId, 2);
+ sCreditsMgr->timer = sCreditsScript[sCreditsMgr->scrcmdidx].duration;
+ sCreditsMgr->scrcmdidx++;
BeginNormalPaletteFade(0x00008000, 0, 16, 0, RGB_BLACK);
- gUnknown_203AB40->unk_00 = 6;
- return gUnknown_203AB40->unk_08;
- case 10:
+ sCreditsMgr->mainseqno = CREDITSSCENE_EXEC_CMD;
+ return sCreditsMgr->canSpeedThrough;
+ case CREDITSSCENE_MAPNEXT_DESTROYWINDOW:
if (!gPaletteFade.active)
{
- sub_80F3B04();
- gUnknown_203AB40->unk_01 = 0;
- gUnknown_203AB40->unk_00 = 11;
+ DestroyCreditsWindow();
+ sCreditsMgr->subseqno = 0;
+ sCreditsMgr->mainseqno = CREDITSSCENE_MAPNEXT_LOADMAP;
}
return 0;
- case 11:
- if (sub_80F3B2C(gUnknown_203AB40->unk_09))
+ case CREDITSSCENE_MAPNEXT_LOADMAP:
+ if (DoOverworldMapScrollScene(sCreditsMgr->whichMon))
{
- gUnknown_203AB40->unk_08 = 1;
- gUnknown_203AB40->unk_00 = 6;
+ sCreditsMgr->canSpeedThrough = 1;
+ sCreditsMgr->mainseqno = CREDITSSCENE_EXEC_CMD;
}
return 0;
- case 12:
+ case CREDITSSCENE_MAP_LOADMAP_CREATESPRITES:
if (!gPaletteFade.active)
{
- sub_80F3B04();
- gUnknown_203AB40->unk_01 = 0;
- while (sub_80F3B2C(gUnknown_203AB40->unk_09))
+ DestroyCreditsWindow();
+ sCreditsMgr->subseqno = 0;
+ while (DoOverworldMapScrollScene(sCreditsMgr->whichMon))
{}
- switch (gUnknown_203AB40->unk_09)
+ switch (sCreditsMgr->whichMon)
{
default:
win0v[0] = 1;
@@ -871,70 +914,70 @@ s32 sub_80F3BD0(void)
win0v[0] = 4;
break;
}
- sub_80F4930(win0v[0]);
- gUnknown_203AB40->unk_08 = 1;
- gUnknown_203AB40->unk_00 = 6;
+ LoadPlayerOrRivalSprite(win0v[0]);
+ sCreditsMgr->canSpeedThrough = 1;
+ sCreditsMgr->mainseqno = CREDITSSCENE_EXEC_CMD;
}
return 0;
- case 13:
+ case CREDITSSCENE_MON_DESTROY_ASSETS:
if (!gPaletteFade.active)
{
- sub_80F48D0();
- sub_80F3B04();
- gUnknown_203AB40->unk_01 = 0;
- gUnknown_203AB40->unk_08 = 0;
- gUnknown_203AB40->unk_00 = 14;
+ DestroyPlayerOrRivalSprite();
+ DestroyCreditsWindow();
+ sCreditsMgr->subseqno = 0;
+ sCreditsMgr->canSpeedThrough = 0;
+ sCreditsMgr->mainseqno = CREDITSSCENE_MON_SHOW;
}
return 0;
- case 14:
- if (sub_80F4328())
+ case CREDITSSCENE_MON_SHOW:
+ if (DoCreditsMonScene())
{
- gUnknown_203AB40->unk_00 = 6;
+ sCreditsMgr->mainseqno = CREDITSSCENE_EXEC_CMD;
}
return 0;
- case 15:
+ case CREDITSSCENE_THEEND_DESTROY_ASSETS:
if (!gPaletteFade.active)
{
- sub_80F3B04();
- gUnknown_203AB40->unk_01 = 0;
- gUnknown_203AB40->unk_08 = 0;
- gUnknown_203AB40->unk_00 = 16;
+ DestroyCreditsWindow();
+ sCreditsMgr->subseqno = 0;
+ sCreditsMgr->canSpeedThrough = 0;
+ sCreditsMgr->mainseqno = CREDITSSCENE_THEEND_SHOW;
}
return 0;
- case 16:
- if (sub_80F4674())
+ case CREDITSSCENE_THEEND_SHOW:
+ if (DoCopyrightOrTheEndGfxScene())
{
- gUnknown_203AB40->unk_00 = 6;
+ sCreditsMgr->mainseqno = CREDITSSCENE_EXEC_CMD;
}
return 0;
- case 17:
+ case CREDITSSCENE_WAITBUTTON:
if (JOY_NEW(A_BUTTON))
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_WHITE);
- gUnknown_203AB40->unk_00 = 18;
+ sCreditsMgr->mainseqno = CREDITSSCENE_TERMINATE;
}
- else if (gUnknown_203AB40->unk_04 == 0)
+ else if (sCreditsMgr->timer == 0)
{
- gUnknown_203AB40->unk_00 = 18;
+ sCreditsMgr->mainseqno = CREDITSSCENE_TERMINATE;
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_WHITE);
}
else
- gUnknown_203AB40->unk_04--;
+ sCreditsMgr->timer--;
return 0;
- case 18:
+ case CREDITSSCENE_TERMINATE:
if (!gPaletteFade.active)
- sub_80F3B04();
- default:
- return 2;
+ DestroyCreditsWindow();
+ break;
}
+ return 2;
}
#else
NAKED
-s32 sub_80F3BD0(void)
+static s32 RollCredits(void)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tsub sp, 0x24\n"
- "\tldr r1, _080F3BEC @ =gUnknown_203AB40\n"
+ "\tldr r1, _080F3BEC @ =sCreditsMgr\n"
"\tldr r0, [r1]\n"
"\tldrb r0, [r0]\n"
"\tadds r7, r1, 0\n"
@@ -948,7 +991,7 @@ s32 sub_80F3BD0(void)
"\tldr r0, [r0]\n"
"\tmov pc, r0\n"
"\t.align 2, 0\n"
- "_080F3BEC: .4byte gUnknown_203AB40\n"
+ "_080F3BEC: .4byte sCreditsMgr\n"
"_080F3BF0: .4byte _080F3BF4\n"
"\t.align 2, 0\n"
"_080F3BF4:\n"
@@ -972,23 +1015,23 @@ s32 sub_80F3BD0(void)
"\t.4byte _080F4118_case11\n"
"\t.4byte _080F4170_case12\n"
"_080F3C40_case00:\n"
- "\tbl sub_80F3A74\n"
+ "\tbl SwitchWin1OffWin0On\n"
"\tmovs r0, 0x40\n"
"\tmovs r1, 0xF0\n"
"\tbl SetGpuReg\n"
"\tldr r1, _080F3C5C @ =0x00004f51\n"
"\tmovs r0, 0x44\n"
"\tbl SetGpuReg\n"
- "\tldr r0, _080F3C60 @ =gUnknown_203AB40\n"
+ "\tldr r0, _080F3C60 @ =sCreditsMgr\n"
"\tldr r1, [r0]\n"
"\tmovs r0, 0x1\n"
"\tb _080F413C_setfield0_return0\n"
"\t.align 2, 0\n"
"_080F3C5C: .4byte 0x00004f51\n"
- "_080F3C60: .4byte gUnknown_203AB40\n"
+ "_080F3C60: .4byte sCreditsMgr\n"
"_080F3C64_case01:\n"
- "\tbl sub_80F3AA4\n"
- "\tbl sub_80F3AC4\n"
+ "\tbl InitBgDarkenEffect\n"
+ "\tbl CreateCreditsWindow\n"
"\tmovs r0, 0xF0\n"
"\tbl Menu_LoadStdPalAt\n"
"\tldr r0, _080F3C8C @ =gPlttBufferUnfaded\n"
@@ -1000,14 +1043,14 @@ s32 sub_80F3BD0(void)
"\tldr r0, _080F3C90 @ =gPlttBufferFaded\n"
"\tadds r0, r2\n"
"\tstrh r1, [r0]\n"
- "\tldr r0, _080F3C94 @ =gUnknown_203AB40\n"
+ "\tldr r0, _080F3C94 @ =sCreditsMgr\n"
"\tldr r1, [r0]\n"
"\tmovs r0, 0x2\n"
"\tb _080F413C_setfield0_return0\n"
"\t.align 2, 0\n"
"_080F3C8C: .4byte gPlttBufferUnfaded\n"
"_080F3C90: .4byte gPlttBufferFaded\n"
- "_080F3C94: .4byte gUnknown_203AB40\n"
+ "_080F3C94: .4byte sCreditsMgr\n"
"_080F3C98_case02:\n"
"\tmovs r0, 0x44\n"
"\tbl GetGpuReg\n"
@@ -1025,14 +1068,14 @@ s32 sub_80F3BD0(void)
"\tldrh r0, [r0]\n"
"\tcmp r0, 0x24\n"
"\tbne _080F3CCC\n"
- "\tldr r0, _080F3CC8 @ =gUnknown_203AB40\n"
+ "\tldr r0, _080F3CC8 @ =sCreditsMgr\n"
"\tldr r1, [r0]\n"
"\tmovs r0, 0\n"
"\tstrh r0, [r1, 0x4]\n"
"\tmovs r0, 0x3\n"
"\tb _080F413C_setfield0_return0\n"
"\t.align 2, 0\n"
- "_080F3CC8: .4byte gUnknown_203AB40\n"
+ "_080F3CC8: .4byte sCreditsMgr\n"
"_080F3CCC:\n"
"\tadd r1, sp, 0x14\n"
"\tsubs r0, 0x1\n"
@@ -1056,7 +1099,7 @@ s32 sub_80F3BD0(void)
"\tcmp r0, 0\n"
"\tbne _080F3D52_decfield4_return0\n"
"\tmovs r0, 0\n"
- "\tbl sub_80F4930\n"
+ "\tbl LoadPlayerOrRivalSprite\n"
"\tldr r0, [r7]\n"
"\tmovs r1, 0x64\n"
"\tstrh r1, [r0, 0x4]\n"
@@ -1079,10 +1122,10 @@ s32 sub_80F3BD0(void)
"\tstr r1, [sp]\n"
"\tmovs r1, 0x2\n"
"\tstr r1, [sp, 0x4]\n"
- "\tldr r1, _080F3D40 @ =gUnknown_8410E00\n"
+ "\tldr r1, _080F3D40 @ =sTextColor_Header\n"
"\tstr r1, [sp, 0x8]\n"
"\tstr r2, [sp, 0xC]\n"
- "\tldr r1, _080F3D44 @ =gUnknown_841D198\n"
+ "\tldr r1, _080F3D44 @ =TITLE_TEXT\n"
"\tstr r1, [sp, 0x10]\n"
"\tmovs r1, 0x1\n"
"\tmovs r2, 0x8\n"
@@ -1092,8 +1135,8 @@ s32 sub_80F3BD0(void)
"\tmovs r0, 0x5\n"
"\tb _080F413C_setfield0_return0\n"
"\t.align 2, 0\n"
- "_080F3D40: .4byte gUnknown_8410E00\n"
- "_080F3D44: .4byte gUnknown_841D198\n"
+ "_080F3D40: .4byte sTextColor_Header\n"
+ "_080F3D44: .4byte TITLE_TEXT\n"
"_080F3D48_case05:\n"
"\tldr r1, [r7]\n"
"\tldrh r0, [r1, 0x4]\n"
@@ -1105,7 +1148,7 @@ s32 sub_80F3BD0(void)
"\tstrh r0, [r1, 0x4]\n"
"\tb _080F3D06_return0\n"
"_080F3D58:\n"
- "\tbl sub_80F3B04\n"
+ "\tbl DestroyCreditsWindow\n"
"\tldr r0, [r7]\n"
"\tmovs r1, 0x6\n"
"\tstrb r1, [r0]\n"
@@ -1123,7 +1166,7 @@ s32 sub_80F3BD0(void)
"\tldrb r0, [r2, 0x8]\n"
"\tb _080F4182_return\n"
"_080F3D7A:\n"
- "\tldr r1, _080F3D94 @ =gUnknown_8410CF4\n"
+ "\tldr r1, _080F3D94 @ =sCreditsScript\n"
"\tldrh r0, [r2, 0x6]\n"
"\tlsls r0, 2\n"
"\tadds r0, r1\n"
@@ -1138,7 +1181,7 @@ s32 sub_80F3BD0(void)
"\tldr r0, [r0]\n"
"\tmov pc, r0\n"
"\t.align 2, 0\n"
- "_080F3D94: .4byte gUnknown_8410CF4\n"
+ "_080F3D94: .4byte sCreditsScript\n"
"_080F3D98: .4byte _080F3D9C\n"
"\t.align 2, 0\n"
"_080F3D9C:\n"
@@ -1156,7 +1199,7 @@ s32 sub_80F3BD0(void)
"\tmovs r2, 0\n"
"\tmovs r3, 0x10\n"
"\tbl BeginNormalPaletteFade\n"
- "\tldr r4, _080F3DDC @ =gUnknown_203AB40\n"
+ "\tldr r4, _080F3DDC @ =sCreditsMgr\n"
"\tldr r1, [r4]\n"
"\tmovs r0, 0x7\n"
"\tstrb r0, [r1]\n"
@@ -1168,14 +1211,14 @@ s32 sub_80F3BD0(void)
"\tldrb r0, [r0, 0x8]\n"
"\tb _080F4182_return\n"
"\t.align 2, 0\n"
- "_080F3DDC: .4byte gUnknown_203AB40\n"
+ "_080F3DDC: .4byte sCreditsMgr\n"
"_080F3DE0:\n"
- "\tldr r2, _080F3E04 @ =gUnknown_203AB40\n"
+ "\tldr r2, _080F3E04 @ =sCreditsMgr\n"
"\tldr r1, [r2]\n"
"\tmovs r0, 0xA\n"
"\tstrb r0, [r1]\n"
"\tldr r2, [r2]\n"
- "\tldr r1, _080F3E08 @ =gUnknown_8410CF4\n"
+ "\tldr r1, _080F3E08 @ =sCreditsScript\n"
"\tldrh r0, [r2, 0x6]\n"
"\tlsls r0, 2\n"
"\tadds r0, r1\n"
@@ -1184,19 +1227,19 @@ s32 sub_80F3BD0(void)
"\tldr r2, _080F3E0C @ =0x3fffffff\n"
"\tmovs r0, 0x1\n"
"\tmovs r1, 0\n"
- "\tbl sub_807A944\n"
+ "\tbl FieldWeather_StartFadingOutCreditsMap\n"
"\tb _080F3E94\n"
"\t.align 2, 0\n"
- "_080F3E04: .4byte gUnknown_203AB40\n"
- "_080F3E08: .4byte gUnknown_8410CF4\n"
+ "_080F3E04: .4byte sCreditsMgr\n"
+ "_080F3E08: .4byte sCreditsScript\n"
"_080F3E0C: .4byte 0x3fffffff\n"
"_080F3E10:\n"
- "\tldr r2, _080F3E28 @ =gUnknown_203AB40\n"
+ "\tldr r2, _080F3E28 @ =sCreditsMgr\n"
"\tldr r1, [r2]\n"
"\tmovs r0, 0xC\n"
"\tstrb r0, [r1]\n"
"\tldr r2, [r2]\n"
- "\tldr r1, _080F3E2C @ =gUnknown_8410CF4\n"
+ "\tldr r1, _080F3E2C @ =sCreditsScript\n"
"\tldrh r0, [r2, 0x6]\n"
"\tlsls r0, 2\n"
"\tadds r0, r1\n"
@@ -1204,15 +1247,15 @@ s32 sub_80F3BD0(void)
"\tstrb r0, [r2, 0x9]\n"
"\tb _080F3E94\n"
"\t.align 2, 0\n"
- "_080F3E28: .4byte gUnknown_203AB40\n"
- "_080F3E2C: .4byte gUnknown_8410CF4\n"
+ "_080F3E28: .4byte sCreditsMgr\n"
+ "_080F3E2C: .4byte sCreditsScript\n"
"_080F3E30:\n"
- "\tldr r2, _080F3E50 @ =gUnknown_203AB40\n"
+ "\tldr r2, _080F3E50 @ =sCreditsMgr\n"
"\tldr r1, [r2]\n"
"\tmovs r0, 0xD\n"
"\tstrb r0, [r1]\n"
"\tldr r2, [r2]\n"
- "\tldr r1, _080F3E54 @ =gUnknown_8410CF4\n"
+ "\tldr r1, _080F3E54 @ =sCreditsScript\n"
"\tldrh r0, [r2, 0x6]\n"
"\tlsls r0, 2\n"
"\tadds r0, r1\n"
@@ -1223,16 +1266,16 @@ s32 sub_80F3BD0(void)
"\tbl fade_screen\n"
"\tb _080F3E94\n"
"\t.align 2, 0\n"
- "_080F3E50: .4byte gUnknown_203AB40\n"
- "_080F3E54: .4byte gUnknown_8410CF4\n"
+ "_080F3E50: .4byte sCreditsMgr\n"
+ "_080F3E54: .4byte sCreditsScript\n"
"_080F3E58:\n"
- "\tldr r2, _080F3E84 @ =gUnknown_203AB40\n"
+ "\tldr r2, _080F3E84 @ =sCreditsMgr\n"
"\tldr r1, [r2]\n"
"\tmovs r3, 0\n"
"\tmovs r0, 0xF\n"
"\tstrb r0, [r1]\n"
"\tldr r2, [r2]\n"
- "\tldr r1, _080F3E88 @ =gUnknown_8410CF4\n"
+ "\tldr r1, _080F3E88 @ =sCreditsScript\n"
"\tldrh r0, [r2, 0x6]\n"
"\tlsls r0, 2\n"
"\tadds r0, r1\n"
@@ -1247,17 +1290,17 @@ s32 sub_80F3BD0(void)
"\tbl BeginNormalPaletteFade\n"
"\tb _080F3E94\n"
"\t.align 2, 0\n"
- "_080F3E84: .4byte gUnknown_203AB40\n"
- "_080F3E88: .4byte gUnknown_8410CF4\n"
+ "_080F3E84: .4byte sCreditsMgr\n"
+ "_080F3E88: .4byte sCreditsScript\n"
"_080F3E8C:\n"
- "\tldr r0, _080F3EAC @ =gUnknown_203AB40\n"
+ "\tldr r0, _080F3EAC @ =sCreditsMgr\n"
"\tldr r1, [r0]\n"
"\tmovs r0, 0x11\n"
"\tstrb r0, [r1]\n"
"_080F3E94:\n"
- "\tldr r0, _080F3EAC @ =gUnknown_203AB40\n"
+ "\tldr r0, _080F3EAC @ =sCreditsMgr\n"
"\tldr r1, [r0]\n"
- "\tldr r2, _080F3EB0 @ =gUnknown_8410CF4\n"
+ "\tldr r2, _080F3EB0 @ =sCreditsScript\n"
"\tldrh r0, [r1, 0x6]\n"
"\tlsls r0, 2\n"
"\tadds r0, r2\n"
@@ -1268,8 +1311,8 @@ s32 sub_80F3BD0(void)
"\tstrh r0, [r1, 0x6]\n"
"\tb _080F3D06_return0\n"
"\t.align 2, 0\n"
- "_080F3EAC: .4byte gUnknown_203AB40\n"
- "_080F3EB0: .4byte gUnknown_8410CF4\n"
+ "_080F3EAC: .4byte sCreditsMgr\n"
+ "_080F3EB0: .4byte sCreditsScript\n"
"_080F3EB4_case07:\n"
"\tldr r0, _080F3F14 @ =gPaletteFade\n"
"\tldrb r1, [r0, 0x7]\n"
@@ -1280,8 +1323,8 @@ s32 sub_80F3BD0(void)
"\tcmp r6, 0\n"
"\tbne _080F3FBA_returnfield8\n"
"\tadd r3, sp, 0x14\n"
- "\tldr r5, _080F3F18 @ =gUnknown_84145BC\n"
- "\tldr r4, _080F3F1C @ =gUnknown_8410CF4\n"
+ "\tldr r5, _080F3F18 @ =sCreditsTexts\n"
+ "\tldr r4, _080F3F1C @ =sCreditsScript\n"
"\tldr r2, [r7]\n"
"\tldrh r0, [r2, 0x6]\n"
"\tlsls r0, 2\n"
@@ -1296,7 +1339,7 @@ s32 sub_80F3BD0(void)
"\tldrb r0, [r2, 0xA]\n"
"\tstr r6, [sp]\n"
"\tstr r6, [sp, 0x4]\n"
- "\tldr r1, _080F3F20 @ =gUnknown_8410E00\n"
+ "\tldr r1, _080F3F20 @ =sTextColor_Header\n"
"\tstr r1, [sp, 0x8]\n"
"\tmovs r1, 0x1\n"
"\tnegs r1, r1\n"
@@ -1320,13 +1363,13 @@ s32 sub_80F3BD0(void)
"\tb _080F3FB8_setfield0_returnfield8\n"
"\t.align 2, 0\n"
"_080F3F14: .4byte gPaletteFade\n"
- "_080F3F18: .4byte gUnknown_84145BC\n"
- "_080F3F1C: .4byte gUnknown_8410CF4\n"
- "_080F3F20: .4byte gUnknown_8410E00\n"
+ "_080F3F18: .4byte sCreditsTexts\n"
+ "_080F3F1C: .4byte sCreditsScript\n"
+ "_080F3F20: .4byte sTextColor_Header\n"
"_080F3F24_case08:\n"
"\tadd r4, sp, 0x14\n"
- "\tldr r3, _080F3F78 @ =gUnknown_84145BC\n"
- "\tldr r5, _080F3F7C @ =gUnknown_8410CF4\n"
+ "\tldr r3, _080F3F78 @ =sCreditsTexts\n"
+ "\tldr r5, _080F3F7C @ =sCreditsScript\n"
"\tldr r2, [r7]\n"
"\tldrh r0, [r2, 0x6]\n"
"\tlsls r0, 2\n"
@@ -1342,7 +1385,7 @@ s32 sub_80F3BD0(void)
"\tldrb r0, [r2, 0xA]\n"
"\tstr r1, [sp]\n"
"\tstr r1, [sp, 0x4]\n"
- "\tldr r1, _080F3F80 @ =gUnknown_8410E04\n"
+ "\tldr r1, _080F3F80 @ =sTextColor_Regular\n"
"\tstr r1, [sp, 0x8]\n"
"\tmovs r1, 0x1\n"
"\tnegs r1, r1\n"
@@ -1366,16 +1409,16 @@ s32 sub_80F3BD0(void)
"\tmovs r0, 0x9\n"
"\tb _080F3FB8_setfield0_returnfield8\n"
"\t.align 2, 0\n"
- "_080F3F78: .4byte gUnknown_84145BC\n"
- "_080F3F7C: .4byte gUnknown_8410CF4\n"
- "_080F3F80: .4byte gUnknown_8410E04\n"
+ "_080F3F78: .4byte sCreditsTexts\n"
+ "_080F3F7C: .4byte sCreditsScript\n"
+ "_080F3F80: .4byte sTextColor_Regular\n"
"_080F3F84_case09:\n"
"\tldr r0, [r7]\n"
"\tldrb r0, [r0, 0xA]\n"
"\tmovs r1, 0x2\n"
"\tbl CopyWindowToVram\n"
"\tldr r1, [r7]\n"
- "\tldr r2, _080F3FC0 @ =gUnknown_8410CF4\n"
+ "\tldr r2, _080F3FC0 @ =sCreditsScript\n"
"\tldrh r0, [r1, 0x6]\n"
"\tlsls r0, 2\n"
"\tadds r0, r2\n"
@@ -1401,7 +1444,7 @@ s32 sub_80F3BD0(void)
"\tldrb r0, [r0, 0x8]\n"
"\tb _080F4182_return\n"
"\t.align 2, 0\n"
- "_080F3FC0: .4byte gUnknown_8410CF4\n"
+ "_080F3FC0: .4byte sCreditsScript\n"
"_080F3FC4_case0A:\n"
"\tldr r0, _080F3FE8 @ =gPaletteFade\n"
"\tldrb r1, [r0, 0x7]\n"
@@ -1413,8 +1456,8 @@ s32 sub_80F3BD0(void)
"\tbeq _080F3FD6\n"
"\tb _080F3D06_return0\n"
"_080F3FD6:\n"
- "\tbl sub_80F3B04\n"
- "\tldr r1, _080F3FEC @ =gUnknown_203AB40\n"
+ "\tbl DestroyCreditsWindow\n"
+ "\tldr r1, _080F3FEC @ =sCreditsMgr\n"
"\tldr r0, [r1]\n"
"\tstrb r4, [r0, 0x1]\n"
"\tldr r1, [r1]\n"
@@ -1422,11 +1465,11 @@ s32 sub_80F3BD0(void)
"\tb _080F413C_setfield0_return0\n"
"\t.align 2, 0\n"
"_080F3FE8: .4byte gPaletteFade\n"
- "_080F3FEC: .4byte gUnknown_203AB40\n"
+ "_080F3FEC: .4byte sCreditsMgr\n"
"_080F3FF0_case0B:\n"
"\tldr r0, [r7]\n"
"\tldrb r0, [r0, 0x9]\n"
- "\tbl sub_80F3B2C\n"
+ "\tbl DoOverworldMapScrollScene\n"
"\tcmp r0, 0\n"
"\tbne _080F3FFE\n"
"\tb _080F3D06_return0\n"
@@ -1448,18 +1491,18 @@ s32 sub_80F3BD0(void)
"\tbeq _080F401C\n"
"\tb _080F3D06_return0\n"
"_080F401C:\n"
- "\tbl sub_80F3B04\n"
- "\tldr r1, _080F4054 @ =gUnknown_203AB40\n"
+ "\tbl DestroyCreditsWindow\n"
+ "\tldr r1, _080F4054 @ =sCreditsMgr\n"
"\tldr r0, [r1]\n"
"\tstrb r4, [r0, 0x1]\n"
"\tadds r4, r1, 0\n"
"_080F4028:\n"
"\tldr r0, [r4]\n"
"\tldrb r0, [r0, 0x9]\n"
- "\tbl sub_80F3B2C\n"
+ "\tbl DoOverworldMapScrollScene\n"
"\tcmp r0, 0\n"
"\tbeq _080F4028\n"
- "\tldr r0, _080F4054 @ =gUnknown_203AB40\n"
+ "\tldr r0, _080F4054 @ =sCreditsMgr\n"
"\tldr r0, [r0]\n"
"\tldrb r0, [r0, 0x9]\n"
"\tcmp r0, 0x6\n"
@@ -1476,7 +1519,7 @@ s32 sub_80F3BD0(void)
"\tb _080F4068\n"
"\t.align 2, 0\n"
"_080F4050: .4byte gPaletteFade\n"
- "_080F4054: .4byte gUnknown_203AB40\n"
+ "_080F4054: .4byte sCreditsMgr\n"
"_080F4058:\n"
"\tadd r1, sp, 0x14\n"
"\tmovs r0, 0x2\n"
@@ -1492,8 +1535,8 @@ s32 sub_80F3BD0(void)
"\tstrh r0, [r1]\n"
"\tadd r0, sp, 0x14\n"
"\tldrb r0, [r0]\n"
- "\tbl sub_80F4930\n"
- "\tldr r2, _080F4080 @ =gUnknown_203AB40\n"
+ "\tbl LoadPlayerOrRivalSprite\n"
+ "\tldr r2, _080F4080 @ =sCreditsMgr\n"
"\tldr r1, [r2]\n"
"\tmovs r0, 0x1\n"
"\tstrb r0, [r1, 0x8]\n"
@@ -1501,7 +1544,7 @@ s32 sub_80F3BD0(void)
"\tmovs r0, 0x6\n"
"\tb _080F413C_setfield0_return0\n"
"\t.align 2, 0\n"
- "_080F4080: .4byte gUnknown_203AB40\n"
+ "_080F4080: .4byte sCreditsMgr\n"
"_080F4084_case0D:\n"
"\tldr r0, _080F40B0 @ =gPaletteFade\n"
"\tldrb r1, [r0, 0x7]\n"
@@ -1513,9 +1556,9 @@ s32 sub_80F3BD0(void)
"\tbeq _080F4096\n"
"\tb _080F3D06_return0\n"
"_080F4096:\n"
- "\tbl sub_80F48D0\n"
- "\tbl sub_80F3B04\n"
- "\tldr r1, _080F40B4 @ =gUnknown_203AB40\n"
+ "\tbl DestroyPlayerOrRivalSprite\n"
+ "\tbl DestroyCreditsWindow\n"
+ "\tldr r1, _080F40B4 @ =sCreditsMgr\n"
"\tldr r0, [r1]\n"
"\tstrb r4, [r0, 0x1]\n"
"\tldr r0, [r1]\n"
@@ -1525,19 +1568,19 @@ s32 sub_80F3BD0(void)
"\tb _080F413C_setfield0_return0\n"
"\t.align 2, 0\n"
"_080F40B0: .4byte gPaletteFade\n"
- "_080F40B4: .4byte gUnknown_203AB40\n"
+ "_080F40B4: .4byte sCreditsMgr\n"
"_080F40B8_case0E:\n"
- "\tbl sub_80F4328\n"
+ "\tbl DoCreditsMonScene\n"
"\tcmp r0, 0\n"
"\tbne _080F40C2\n"
"\tb _080F3D06_return0\n"
"_080F40C2:\n"
- "\tldr r0, _080F40CC @ =gUnknown_203AB40\n"
+ "\tldr r0, _080F40CC @ =sCreditsMgr\n"
"\tldr r1, [r0]\n"
"\tmovs r0, 0x6\n"
"\tb _080F413C_setfield0_return0\n"
"\t.align 2, 0\n"
- "_080F40CC: .4byte gUnknown_203AB40\n"
+ "_080F40CC: .4byte sCreditsMgr\n"
"_080F40D0_case0F:\n"
"\tldr r0, _080F40F8 @ =gPaletteFade\n"
"\tldrb r1, [r0, 0x7]\n"
@@ -1549,8 +1592,8 @@ s32 sub_80F3BD0(void)
"\tbeq _080F40E2\n"
"\tb _080F3D06_return0\n"
"_080F40E2:\n"
- "\tbl sub_80F3B04\n"
- "\tldr r1, _080F40FC @ =gUnknown_203AB40\n"
+ "\tbl DestroyCreditsWindow\n"
+ "\tldr r1, _080F40FC @ =sCreditsMgr\n"
"\tldr r0, [r1]\n"
"\tstrb r4, [r0, 0x1]\n"
"\tldr r0, [r1]\n"
@@ -1560,19 +1603,19 @@ s32 sub_80F3BD0(void)
"\tb _080F413C_setfield0_return0\n"
"\t.align 2, 0\n"
"_080F40F8: .4byte gPaletteFade\n"
- "_080F40FC: .4byte gUnknown_203AB40\n"
+ "_080F40FC: .4byte sCreditsMgr\n"
"_080F4100_case10:\n"
- "\tbl sub_80F4674\n"
+ "\tbl DoCopyrightOrTheEndGfxScene\n"
"\tcmp r0, 0\n"
"\tbne _080F410A\n"
"\tb _080F3D06_return0\n"
"_080F410A:\n"
- "\tldr r0, _080F4114 @ =gUnknown_203AB40\n"
+ "\tldr r0, _080F4114 @ =sCreditsMgr\n"
"\tldr r1, [r0]\n"
"\tmovs r0, 0x6\n"
"\tb _080F413C_setfield0_return0\n"
"\t.align 2, 0\n"
- "_080F4114: .4byte gUnknown_203AB40\n"
+ "_080F4114: .4byte sCreditsMgr\n"
"_080F4118_case11:\n"
"\tldr r0, _080F4140 @ =gMain\n"
"\tldrh r1, [r0, 0x2E]\n"
@@ -1588,7 +1631,7 @@ s32 sub_80F3BD0(void)
"\tmovs r2, 0\n"
"\tmovs r3, 0x10\n"
"\tbl BeginNormalPaletteFade\n"
- "\tldr r0, _080F4148 @ =gUnknown_203AB40\n"
+ "\tldr r0, _080F4148 @ =sCreditsMgr\n"
"\tldr r1, [r0]\n"
"\tmovs r0, 0x12\n"
"_080F413C_setfield0_return0:\n"
@@ -1597,7 +1640,7 @@ s32 sub_80F3BD0(void)
"\t.align 2, 0\n"
"_080F4140: .4byte gMain\n"
"_080F4144: .4byte 0x00007fff\n"
- "_080F4148: .4byte gUnknown_203AB40\n"
+ "_080F4148: .4byte sCreditsMgr\n"
"_080F414C:\n"
"\tldr r1, [r7]\n"
"\tldrh r0, [r1, 0x4]\n"
@@ -1624,7 +1667,7 @@ s32 sub_80F3BD0(void)
"\tands r0, r1\n"
"\tcmp r0, 0\n"
"\tbne _080F4180_default_return2\n"
- "\tbl sub_80F3B04\n"
+ "\tbl DestroyCreditsWindow\n"
"_080F4180_default_return2:\n"
"\tmovs r0, 0x2\n"
"_080F4182_return:\n"
@@ -1637,44 +1680,44 @@ s32 sub_80F3BD0(void)
}
#endif //NONMATCHING
-void sub_80F4190(void)
+static void VBlankCB(void)
{
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
}
-void sub_80F41A4(u8 a0)
+static void LoadCreditsMonPic(u8 whichMon)
{
- switch (a0)
+ switch (whichMon)
{
- case 0:
- InitWindows(gUnknown_840C5B0);
+ case CREDITSMON_CHARIZARD:
+ InitWindows(sWindowTemplates_Charizard);
FillWindowPixelBuffer(0, PIXEL_FILL(0));
- sub_810C228(SPECIES_CHARIZARD, 8, 0, TRUE, 10, 0);
- CopyToWindowPixelBuffer(1, (const void *)gUnknown_840CB8C, 0, 0);
- CopyToWindowPixelBuffer(2, (const void *)gUnknown_840D228, 0, 0);
+ LoadMonPicForCredits(SPECIES_CHARIZARD, 8, 0, TRUE, 10, 0);
+ CopyToWindowPixelBuffer(1, (const void *)sWindow1Map_Charizard, 0, 0);
+ CopyToWindowPixelBuffer(2, (const void *)sWindow2Map_Charizard, 0, 0);
break;
- case 1:
- InitWindows(gUnknown_840C5D0);
+ case CREDITSMON_VENUSAUR:
+ InitWindows(sWindowTemplates_Venusaur);
FillWindowPixelBuffer(0, PIXEL_FILL(0));
- sub_810C228(SPECIES_VENUSAUR, 8, 0, TRUE, 10, 0);
- CopyToWindowPixelBuffer(1, (const void *)gUnknown_840E158, 0, 0);
- CopyToWindowPixelBuffer(2, (const void *)gUnknown_840E904, 0, 0);
+ LoadMonPicForCredits(SPECIES_VENUSAUR, 8, 0, TRUE, 10, 0);
+ CopyToWindowPixelBuffer(1, (const void *)sWindow1Map_Venusaur, 0, 0);
+ CopyToWindowPixelBuffer(2, (const void *)sWindow2Map_Venusaur, 0, 0);
break;
- case 2:
- InitWindows(gUnknown_840C5F0);
+ case CREDITSMON_BLASTOISE:
+ InitWindows(sWindowTemplates_Blastoise);
FillWindowPixelBuffer(0, PIXEL_FILL(0));
- sub_810C228(SPECIES_BLASTOISE, 8, 0, TRUE, 10, 0);
- CopyToWindowPixelBuffer(1, (const void *)gUnknown_840F240, 0, 0);
- CopyToWindowPixelBuffer(2, (const void *)gUnknown_840F944, 0, 0);
+ LoadMonPicForCredits(SPECIES_BLASTOISE, 8, 0, TRUE, 10, 0);
+ CopyToWindowPixelBuffer(1, (const void *)sWindow1Map_Blastoise, 0, 0);
+ CopyToWindowPixelBuffer(2, (const void *)sWindow2Map_Blastoise, 0, 0);
break;
- case 3:
- InitWindows(gUnknown_840C610);
+ case CREDITSMON_PIKACHU:
+ InitWindows(sWindowTemplates_Pikachu);
FillWindowPixelBuffer(0, PIXEL_FILL(0));
- sub_810C228(SPECIES_PIKACHU, 8, 0, TRUE, 10, 0);
- CopyToWindowPixelBuffer(1, (const void *)gUnknown_8410198, 0, 0);
- CopyToWindowPixelBuffer(2, (const void *)gUnknown_84105B4, 0, 0);
+ LoadMonPicForCredits(SPECIES_PIKACHU, 8, 0, TRUE, 10, 0);
+ CopyToWindowPixelBuffer(1, (const void *)sWindow1Map_Pikachu, 0, 0);
+ CopyToWindowPixelBuffer(2, (const void *)sWindow2Map_Pikachu, 0, 0);
break;
}
CopyWindowToVram(0, 2);
@@ -1682,26 +1725,26 @@ void sub_80F41A4(u8 a0)
CopyWindowToVram(2, 2);
}
-u16 sub_80F42F0(u8 a0)
+static u16 GetCreditsMonSpecies(u8 whichMon)
{
- switch (a0)
+ switch (whichMon)
{
- case 0:
+ case CREDITSMON_CHARIZARD:
return SPECIES_CHARIZARD;
- case 1:
+ case CREDITSMON_VENUSAUR:
return SPECIES_VENUSAUR;
- case 2:
+ case CREDITSMON_BLASTOISE:
return SPECIES_BLASTOISE;
- case 3:
+ case CREDITSMON_PIKACHU:
return SPECIES_PIKACHU;
default:
return SPECIES_NONE;
}
}
-bool32 sub_80F4328(void)
+static bool32 DoCreditsMonScene(void)
{
- switch (gUnknown_203AB40->unk_01)
+ switch (sCreditsMgr->subseqno)
{
case 0:
SetVBlankCallback(NULL);
@@ -1716,25 +1759,25 @@ bool32 sub_80F4328(void)
ResetSpriteData();
ResetTasks();
ResetBgsAndClearDma3BusyFlags(1);
- InitBgsFromTemplates(1, gUnknown_840C5A4, NELEMS(gUnknown_840C5A4));
+ InitBgsFromTemplates(1, sBgTemplates_MonSceneOrTheEnd, NELEMS(sBgTemplates_MonSceneOrTheEnd));
SetBgTilemapBuffer(0, Alloc(BG_SCREEN_SIZE));
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
ChangeBgX(1, 0, 0);
ChangeBgY(1, 0, 0);
- gUnknown_203AB40->unk_0C = 0;
- gUnknown_203AB40->unk_0E = 0;
- SetBgAffine(2, 0x8000, 0x8000, 0x78, 0x50, gUnknown_203AB40->unk_0C, gUnknown_203AB40->unk_0C, 0);
- DecompressAndLoadBgGfxUsingHeap(1, gUnknown_8EAAB98, 0x2000, 0, 0);
- DecompressAndLoadBgGfxUsingHeap(2, gUnknown_840C650, 0x2000, 0, 0);
- DecompressAndLoadBgGfxUsingHeap(1, gUnknown_8EAB30C, 0x500, 0, 1);
- DecompressAndLoadBgGfxUsingHeap(2, gUnknown_840CA54, 0x400, 0, 1);
- LoadPalette(gUnknown_8EAAB18[gUnknown_203AB40->unk_09], 0, 0x20);
- LoadPalette(gUnknown_840C630, 0xF0, 0x20);
- sub_80F41A4(gUnknown_203AB40->unk_09);
- SetVBlankCallback(sub_80F4190);
+ sCreditsMgr->creditsMonTimer = 0;
+ sCreditsMgr->unk_0E = 0;
+ SetBgAffine(2, 0x8000, 0x8000, 0x78, 0x50, sCreditsMgr->creditsMonTimer, sCreditsMgr->creditsMonTimer, 0);
+ DecompressAndLoadBgGfxUsingHeap(1, gCreditsPokeballBgGfxTiles, 0x2000, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(2, sAffineCircleGfx, 0x2000, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(1, gCreditsPokeballBgGfxMap, 0x500, 0, 1);
+ DecompressAndLoadBgGfxUsingHeap(2, sAffineCircleMap, 0x400, 0, 1);
+ LoadPalette(gCreditsMonBackdropPals[sCreditsMgr->whichMon], 0, 0x20);
+ LoadPalette(sPalette_OneBlackThenAllWhite, 0xF0, 0x20);
+ LoadCreditsMonPic(sCreditsMgr->whichMon);
+ SetVBlankCallback(VBlankCB);
EnableInterrupts(INTR_FLAG_VBLANK);
- gUnknown_203AB40->unk_01++;
+ sCreditsMgr->subseqno++;
break;
case 1:
FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, PIXEL_FILL(1));
@@ -1742,77 +1785,77 @@ bool32 sub_80F4328(void)
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
- gUnknown_203AB40->unk_01++;
+ sCreditsMgr->subseqno++;
break;
case 2:
ShowBg(2);
ShowBg(0);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
- gUnknown_203AB40->unk_0C = 0x28;
- gUnknown_203AB40->unk_01++;
+ sCreditsMgr->creditsMonTimer = 40;
+ sCreditsMgr->subseqno++;
break;
case 3:
- if (gUnknown_203AB40->unk_0C != 0)
- gUnknown_203AB40->unk_0C--;
+ if (sCreditsMgr->creditsMonTimer != 0)
+ sCreditsMgr->creditsMonTimer--;
else
- gUnknown_203AB40->unk_01++;
+ sCreditsMgr->subseqno++;
break;
case 4:
if (!gPaletteFade.active)
{
- gUnknown_203AB40->unk_0C = 8;
- gUnknown_203AB40->unk_0E = 1;
- gUnknown_203AB40->unk_01++;
+ sCreditsMgr->creditsMonTimer = 8;
+ sCreditsMgr->unk_0E = 1;
+ sCreditsMgr->subseqno++;
}
break;
case 5:
- if (gUnknown_203AB40->unk_0C != 0)
- gUnknown_203AB40->unk_0C--;
+ if (sCreditsMgr->creditsMonTimer != 0)
+ sCreditsMgr->creditsMonTimer--;
else
{
- if (gUnknown_203AB40->unk_0E < 3)
+ if (sCreditsMgr->unk_0E < 3)
{
- PutWindowTilemap(gUnknown_203AB40->unk_0E);
+ PutWindowTilemap(sCreditsMgr->unk_0E);
CopyBgTilemapBufferToVram(0);
- gUnknown_203AB40->unk_0C = 4;
- gUnknown_203AB40->unk_0E++;
+ sCreditsMgr->creditsMonTimer = 4;
+ sCreditsMgr->unk_0E++;
}
else
- gUnknown_203AB40->unk_01++;
+ sCreditsMgr->subseqno++;
}
break;
case 6:
- if (gUnknown_203AB40->unk_0C < 256)
+ if (sCreditsMgr->creditsMonTimer < 256)
{
- gUnknown_203AB40->unk_0C += 16;
- SetBgAffine(2, 0x8000, 0x8000, 0x78, 0x50, gUnknown_203AB40->unk_0C, gUnknown_203AB40->unk_0C, 0);
+ sCreditsMgr->creditsMonTimer += 16;
+ SetBgAffine(2, 0x8000, 0x8000, 0x78, 0x50, sCreditsMgr->creditsMonTimer, sCreditsMgr->creditsMonTimer, 0);
}
else
{
SetBgAffine(2, 0x8000, 0x8000, 0x78, 0x50, 0x100, 0x100, 0);
- gUnknown_203AB40->unk_0C = 32;
- gUnknown_203AB40->unk_01++;
+ sCreditsMgr->creditsMonTimer = 32;
+ sCreditsMgr->subseqno++;
}
break;
case 7:
- if (gUnknown_203AB40->unk_0C != 0)
- gUnknown_203AB40->unk_0C--;
+ if (sCreditsMgr->creditsMonTimer != 0)
+ sCreditsMgr->creditsMonTimer--;
else
{
HideBg(2);
ShowBg(1);
- PlayCry2(sub_80F42F0(gUnknown_203AB40->unk_09), 0, 125, 10);
- gUnknown_203AB40->unk_0C = 128;
- gUnknown_203AB40->unk_01++;
+ PlayCry2(GetCreditsMonSpecies(sCreditsMgr->whichMon), 0, 125, 10);
+ sCreditsMgr->creditsMonTimer = 128;
+ sCreditsMgr->subseqno++;
}
break;
case 8:
- if (gUnknown_203AB40->unk_0C != 0)
- gUnknown_203AB40->unk_0C--;
+ if (sCreditsMgr->creditsMonTimer != 0)
+ sCreditsMgr->creditsMonTimer--;
else
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
- gUnknown_203AB40->unk_01++;
+ sCreditsMgr->subseqno++;
}
break;
case 9:
@@ -1820,7 +1863,7 @@ bool32 sub_80F4328(void)
{
FreeAllWindowBuffers();
Free(GetBgTilemapBuffer(0));
- gUnknown_203AB40->unk_01 = 0;
+ sCreditsMgr->subseqno = 0;
return TRUE;
}
break;
@@ -1828,9 +1871,9 @@ bool32 sub_80F4328(void)
return FALSE;
}
-bool32 sub_80F4674(void)
+static bool32 DoCopyrightOrTheEndGfxScene(void)
{
- switch (gUnknown_203AB40->unk_01)
+ switch (sCreditsMgr->subseqno)
{
case 0:
SetVBlankCallback(NULL);
@@ -1845,32 +1888,32 @@ bool32 sub_80F4674(void)
ResetSpriteData();
ResetTasks();
ResetBgsAndClearDma3BusyFlags(1);
- InitBgsFromTemplates(0, gUnknown_840C5A4, 1);
+ InitBgsFromTemplates(0, sBgTemplates_MonSceneOrTheEnd, 1);
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
- DecompressAndLoadBgGfxUsingHeap(0, gUnknown_8410CDC[gUnknown_203AB40->unk_09].tiles, 0x2000, 0, 0);
- DecompressAndLoadBgGfxUsingHeap(0, gUnknown_8410CDC[gUnknown_203AB40->unk_09].map, 0x800, 0, 1);
- LoadPalette(gUnknown_8410CDC[gUnknown_203AB40->unk_09].palette, 0x00, 0x200);
- SetVBlankCallback(sub_80F4190);
+ DecompressAndLoadBgGfxUsingHeap(0, sCopyrightOrTheEndGfxHeaders[sCreditsMgr->whichMon].tiles, 0x2000, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(0, sCopyrightOrTheEndGfxHeaders[sCreditsMgr->whichMon].map, 0x800, 0, 1);
+ LoadPalette(sCopyrightOrTheEndGfxHeaders[sCreditsMgr->whichMon].palette, 0x00, 0x200);
+ SetVBlankCallback(VBlankCB);
EnableInterrupts(INTR_FLAG_VBLANK);
- gUnknown_203AB40->unk_01++;
+ sCreditsMgr->subseqno++;
break;
case 1:
CopyBgTilemapBufferToVram(0);
- gUnknown_203AB40->unk_01++;
+ sCreditsMgr->subseqno++;
break;
case 2:
ShowBg(0);
- if (gUnknown_203AB40->unk_09 != 0)
+ if (sCreditsMgr->whichMon != 0)
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0, RGB_BLACK);
else
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
- gUnknown_203AB40->unk_01++;
+ sCreditsMgr->subseqno++;
break;
case 3:
if (!gPaletteFade.active)
{
- gUnknown_203AB40->unk_01 = 0;
+ sCreditsMgr->subseqno = 0;
return TRUE;
}
break;
@@ -1878,170 +1921,170 @@ bool32 sub_80F4674(void)
return FALSE;
}
-void sub_80F47F8(u8 taskId)
+static void Task_MovePlayerAndGroundSprites(u8 taskId)
{
struct CreditsTaskData * data = (void *)gTasks[taskId].data;
- switch (data->field_00)
+ switch (data->spriteMoveCmd)
{
case 0:
break;
case 1:
- if (gSprites[data->field_01].pos1.x != 0xD0)
+ if (gSprites[data->playerSpriteId].pos1.x != 0xD0)
{
- gSprites[data->field_01].pos1.x--;
- gSprites[data->field_06].pos1.x--;
+ gSprites[data->playerSpriteId].pos1.x--;
+ gSprites[data->groundSpriteId].pos1.x--;
}
else
{
- data->field_00 = 0;
+ data->spriteMoveCmd = 0;
}
break;
case 2:
- if (gUnknown_203AB40->unk_1D & 1)
+ if (sCreditsMgr->unk_1D & 1)
{
- if (gSprites[data->field_01].pos1.y != 0x50)
+ if (gSprites[data->playerSpriteId].pos1.y != 0x50)
{
- gSprites[data->field_01].pos1.y--;
- gSprites[data->field_06].pos1.y--;
+ gSprites[data->playerSpriteId].pos1.y--;
+ gSprites[data->groundSpriteId].pos1.y--;
}
else
{
- data->field_00 = 0;
+ data->spriteMoveCmd = 0;
}
}
break;
case 3:
- if (gUnknown_203AB40->unk_00 == 15)
+ if (sCreditsMgr->mainseqno == 15)
{
- gSprites[data->field_01].pos1.x--;
- gSprites[data->field_06].pos1.x--;
+ gSprites[data->playerSpriteId].pos1.x--;
+ gSprites[data->groundSpriteId].pos1.x--;
}
break;
}
}
-void sub_80F48D0(void)
+static void DestroyPlayerOrRivalSprite(void)
{
- if (gUnknown_203AB40->unk_02 != 0xFF)
+ if (sCreditsMgr->taskId != 0xFF)
{
- struct CreditsTaskData * data = (void *)gTasks[gUnknown_203AB40->unk_02].data;
- FreeSpriteTilesByTag(data->field_02);
- DestroySprite(&gSprites[data->field_01]);
- FreeSpriteTilesByTag(data->field_08);
- DestroySprite(&gSprites[data->field_06]);
- DestroyTask(gUnknown_203AB40->unk_02);
- gUnknown_203AB40->unk_02 = 0xFF;
+ struct CreditsTaskData * data = (void *)gTasks[sCreditsMgr->taskId].data;
+ FreeSpriteTilesByTag(data->playerTilesTag);
+ DestroySprite(&gSprites[data->playerSpriteId]);
+ FreeSpriteTilesByTag(data->groundTilesTag);
+ DestroySprite(&gSprites[data->groundSpriteId]);
+ DestroyTask(sCreditsMgr->taskId);
+ sCreditsMgr->taskId = 0xFF;
}
}
-void sub_80F4930(u8 a0)
+static void LoadPlayerOrRivalSprite(u8 whichScene)
{
u8 taskId;
struct CreditsTaskData * data;
- s32 r4, r9;
- struct SpriteTemplate sp00;
- struct CompressedSpriteSheet sp18;
+ s32 x, y;
+ struct SpriteTemplate sprTemplate;
+ struct CompressedSpriteSheet sprSheet;
- if (gUnknown_203AB40->unk_02 == 0xFF)
+ if (sCreditsMgr->taskId == 0xFF)
{
- taskId = CreateTask(sub_80F47F8, 0);
+ taskId = CreateTask(Task_MovePlayerAndGroundSprites, 0);
data = (void *)gTasks[taskId].data;
- gUnknown_203AB40->unk_02 = taskId;
- switch (gUnknown_841431C[a0][2])
+ sCreditsMgr->taskId = taskId;
+ switch (sPlayerRivalSpriteParams[whichScene][2])
{
default:
case 0:
- r4 = 0xd0;
- r9 = 0x50;
+ x = 0xd0;
+ y = 0x50;
break;
case 1:
- r4 = 0x110;
- r9 = 0x50;
+ x = 0x110;
+ y = 0x50;
break;
case 2:
- r4 = 0xd0;
- r9 = 0xa0;
+ x = 0xd0;
+ y = 0xa0;
break;
}
- data->field_00 = gUnknown_841431C[a0][2];
- data->field_02 = 0x2000;
+ data->spriteMoveCmd = sPlayerRivalSpriteParams[whichScene][2];
+ data->playerTilesTag = 0x2000;
data->field_04 = 0xFFFF;
- switch (gUnknown_841431C[a0][0])
+ switch (sPlayerRivalSpriteParams[whichScene][0])
{
case 0:
// Player
if (gSaveBlock2Ptr->playerGender == MALE)
{
- sp18.data = gUnknown_8410E30;
- sp18.size = 0x3000;
- sp18.tag = data->field_02;
- LoadCompressedSpriteSheet(&sp18);
- LoadPalette(gUnknown_8410E10, 0x1F0, 0x20);
+ sprSheet.data = sMalePlayerSpriteGfx;
+ sprSheet.size = 0x3000;
+ sprSheet.tag = data->playerTilesTag;
+ LoadCompressedSpriteSheet(&sprSheet);
+ LoadPalette(sMalePlayerSpritePal, 0x1F0, 0x20);
}
else
{
- sp18.data = gUnknown_8411C18;
- sp18.size = 0x3000;
- sp18.tag = data->field_02;
- LoadCompressedSpriteSheet(&sp18);
- LoadPalette(gUnknown_8411BF8, 0x1F0, 0x20);
+ sprSheet.data = sFemalePlayerSpriteGfx;
+ sprSheet.size = 0x3000;
+ sprSheet.tag = data->playerTilesTag;
+ LoadCompressedSpriteSheet(&sprSheet);
+ LoadPalette(sFemalePlayerSpritePal, 0x1F0, 0x20);
}
break;
case 1:
// Rival
- sp18.data = gUnknown_84129C0;
- sp18.size = 0x3000;
- sp18.tag = data->field_02;
- LoadCompressedSpriteSheet(&sp18);
- LoadPalette(gUnknown_84129A0, 0x1F0, 0x20);
+ sprSheet.data = sRivalSpriteGfx;
+ sprSheet.size = 0x3000;
+ sprSheet.tag = data->playerTilesTag;
+ LoadCompressedSpriteSheet(&sprSheet);
+ LoadPalette(sRivalSpritePal, 0x1F0, 0x20);
break;
}
- sp00 = gUnknown_8414364;
- sp00.tileTag = data->field_02;
- data->field_01 = CreateSprite(&sp00, r4, r9, 0);
- gSprites[data->field_01].oam.paletteNum = 0xF;
- gSprites[data->field_01].subpriority = 0;
+ sprTemplate = sPlayerOrRivalSpriteTemplate;
+ sprTemplate.tileTag = data->playerTilesTag;
+ data->playerSpriteId = CreateSprite(&sprTemplate, x, y, 0);
+ gSprites[data->playerSpriteId].oam.paletteNum = 0xF;
+ gSprites[data->playerSpriteId].subpriority = 0;
- data->field_08 = 0x2001;
+ data->groundTilesTag = 0x2001;
data->field_0A = 0xFFFF;
- switch (gUnknown_841431C[a0][1])
+ switch (sPlayerRivalSpriteParams[whichScene][1])
{
case 0:
- sp18.data = gUnknown_8413338;
- sp18.size = 0x3000;
- sp18.tag = data->field_08;
- LoadCompressedSpriteSheet(&sp18);
- LoadPalette(gUnknown_8413318, 0x1E0, 0x20);
- sp00 = gUnknown_84143B8;
+ sprSheet.data = sGroundSpriteGfx_Grass;
+ sprSheet.size = 0x3000;
+ sprSheet.tag = data->groundTilesTag;
+ LoadCompressedSpriteSheet(&sprSheet);
+ LoadPalette(sGroundSpritePal_Grass, 0x1E0, 0x20);
+ sprTemplate = sGroundSpriteTemplate_Running;
break;
case 1:
- sp18.data = gUnknown_8413338;
- sp18.size = 0x3000;
- sp18.tag = data->field_08;
- LoadCompressedSpriteSheet(&sp18);
- LoadPalette(gUnknown_8413318, 0x1E0, 0x20);
- sp00 = gUnknown_84143D0;
+ sprSheet.data = sGroundSpriteGfx_Grass;
+ sprSheet.size = 0x3000;
+ sprSheet.tag = data->groundTilesTag;
+ LoadCompressedSpriteSheet(&sprSheet);
+ LoadPalette(sGroundSpritePal_Grass, 0x1E0, 0x20);
+ sprTemplate = sGroundSpriteTemplate_Static;
break;
case 2:
- sp18.data = gUnknown_8413874;
- sp18.size = 0x3000;
- sp18.tag = data->field_08;
- LoadCompressedSpriteSheet(&sp18);
- LoadPalette(gUnknown_8413854, 0x1E0, 0x20);
- sp00 = gUnknown_84143B8;
+ sprSheet.data = sGroundSpriteGfx_Dirt;
+ sprSheet.size = 0x3000;
+ sprSheet.tag = data->groundTilesTag;
+ LoadCompressedSpriteSheet(&sprSheet);
+ LoadPalette(sGroundSpritePal_Dirt, 0x1E0, 0x20);
+ sprTemplate = sGroundSpriteTemplate_Running;
break;
case 3:
- sp18.data = gUnknown_8413DB8;
- sp18.size = 0x3000;
- sp18.tag = data->field_08;
- LoadCompressedSpriteSheet(&sp18);
- LoadPalette(gUnknown_8413D98, 0x1E0, 0x20);
- sp00 = gUnknown_84143B8;
+ sprSheet.data = sGroundSpriteGfx_City;
+ sprSheet.size = 0x3000;
+ sprSheet.tag = data->groundTilesTag;
+ LoadCompressedSpriteSheet(&sprSheet);
+ LoadPalette(sGroundSpritePal_City, 0x1E0, 0x20);
+ sprTemplate = sGroundSpriteTemplate_Running;
break;
}
- sp00.tileTag = data->field_08;
- data->field_06 = CreateSprite(&sp00, r4, r9 + 0x26, 0);
- gSprites[data->field_06].oam.paletteNum = 0xE;
- gSprites[data->field_06].subpriority = 1;
+ sprTemplate.tileTag = data->groundTilesTag;
+ data->groundSpriteId = CreateSprite(&sprTemplate, x, y + 0x26, 0);
+ gSprites[data->groundSpriteId].oam.paletteNum = 0xE;
+ gSprites[data->groundSpriteId].subpriority = 1;
}
}
diff --git a/src/quest_log.c b/src/quest_log.c
index 7a3084d8c..303cdeb42 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -871,7 +871,7 @@ void sub_8110F90(u8 unused)
gSaveBlock1Ptr->location.mapNum = 19;
gSaveBlock1Ptr->location.warpId = -1;
gUnknown_203ADF8 = 0;
- gUnknown_2031DD8 = 1;
+ gDisableMapMusicChangeOnMapLoad = 1;
sub_8082740(1);
sub_8111368();
}
@@ -1567,7 +1567,7 @@ void sub_81120AC(u8 taskId)
switch (data[0])
{
case 0:
- gUnknown_2031DD8 = 0;
+ gDisableMapMusicChangeOnMapLoad = 0;
Overworld_PlaySpecialMapMusic();
sub_811229C();
FillWindowPixelRect(gUnknown_203ADFE[0], 0xF, 0, 0, gUnknown_845661C[0].width * 8, gUnknown_845661C[0].height * 8);
diff --git a/src/sound.c b/src/sound.c
index dc4b9f604..41b9f5b7d 100644
--- a/src/sound.c
+++ b/src/sound.c
@@ -15,7 +15,7 @@ struct Fanfare
};
// TODO: what are these
-extern u8 gUnknown_2031DD8;
+extern u8 gDisableMapMusicChangeOnMapLoad;
extern u8 gUnknown_203ADFA;
extern u8 gUnknown_203F174;
@@ -571,7 +571,7 @@ void PlayBGM(u16 songNum)
void PlaySE(u16 songNum)
{
- if(gUnknown_2031DD8 == 0 && gUnknown_203ADFA != 2)
+ if(gDisableMapMusicChangeOnMapLoad == 0 && gUnknown_203ADFA != 2)
m4aSongNumStart(songNum);
}
diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c
index 25a8d4515..ee457a6df 100644
--- a/src/trainer_pokemon_sprites.c
+++ b/src/trainer_pokemon_sprites.c
@@ -278,7 +278,7 @@ u16 FreeAndDestroyMonPicSprite(u16 spriteId)
return FreeAndDestroyPicSpriteInternal(spriteId);
}
-u16 sub_810C228(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId)
+u16 LoadMonPicForCredits(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId)
{
return sub_810C0C0(species, otId, personality, isFrontPic, 0, 0, paletteSlot, windowId, FALSE);
}