summaryrefslogtreecommitdiff
path: root/src/starter_choose.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/starter_choose.c')
-rw-r--r--src/starter_choose.c53
1 files changed, 23 insertions, 30 deletions
diff --git a/src/starter_choose.c b/src/starter_choose.c
index 8cf3cfefa..b55b0fbc5 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -9,15 +9,17 @@
#include "main.h"
#include "window.h"
#include "text.h"
+#include "text_window.h"
#include "decompress.h"
#include "menu.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "event_data.h"
#include "pokedex.h"
#include "data2.h"
#include "international_string_util.h"
#include "trig.h"
+#include "scanline_effect.h"
#define STARTER_MON_COUNT 3
@@ -25,12 +27,6 @@
#define STARTER_PKMN_POS_X 120
#define STARTER_PKMN_POS_Y 64
-// graphics
-extern const u32 gBirchHelpGfx[];
-extern const u32 gBirchBagTilemap[];
-extern const u32 gBirchGrassTilemap[];
-extern const u16 gBirchBagGrassPal[];
-
// text
extern const u8 gText_BirchInTrouble[];
extern const u8 gText_ConfirmStarterChoice[];
@@ -52,13 +48,10 @@ extern const u8 gStarterChoose_LabelCoords[][2];
extern const u8 gUnknown_085B1E0C[];
extern const u8 gUnknown_085B1E28[][2];
-extern void sub_809882C(u8, u16, u8);
-extern void remove_some_task(void);
extern void clear_scheduled_bg_copies_to_vram(void);
extern void dp13_810BB8C(void);
extern void do_scheduled_bg_tilemap_copies_to_vram(void);
extern u16 sub_818D820(u16);
-extern const u16 *GetOverworldTextboxPalettePtr(void);
extern u8 sub_818D3E4(u16 species, u32 trainerId, u32 personality, u8 flags, s16 x, s16 y, u8, u16);
// this file's functions
@@ -74,7 +67,7 @@ static void Task_MoveStarterChooseCursor(u8 taskId);
static void sub_8134668(u8 taskId);
static void CreateStarterPokemonLabel(u8 selection);
static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y);
-static void StarterPokemonSpriteCallback(struct Sprite *sprite);
+void StarterPokemonSpriteCallback(struct Sprite *sprite);
static IWRAM_DATA u16 sStarterChooseWindowId;
@@ -132,9 +125,9 @@ void CB2_ChooseStarter(void)
InitWindows(gUnknown_085B1DCC);
DeactivateAllTextPrinters();
- sub_809882C(0, 0x2A8, 0xD0);
+ LoadUserWindowBorderGfx(0, 0x2A8, 0xD0);
clear_scheduled_bg_copies_to_vram();
- remove_some_task();
+ ScanlineEffect_Stop();
ResetTasks();
ResetSpriteData();
ResetPaletteFade();
@@ -146,7 +139,7 @@ void CB2_ChooseStarter(void)
LoadCompressedObjectPic(&gUnknown_085B1ED8[0]);
LoadCompressedObjectPic(&gUnknown_085B1EE8[0]);
LoadSpritePalettes(gUnknown_085B1EF8);
- BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
EnableInterrupts(DISPSTAT_VBLANK);
SetVBlankCallback(VblankCB_StarterChoose);
@@ -170,20 +163,20 @@ void CB2_ChooseStarter(void)
// Create hand sprite
spriteId = CreateSprite(&sSpriteTemplate_Hand, 120, 56, 2);
- gSprites[spriteId].data0 = taskId;
+ gSprites[spriteId].data[0] = taskId;
// Create three Pokeball sprites
spriteId = CreateSprite(&sSpriteTemplate_PokeBall, sPokeballCoords[0][0], sPokeballCoords[0][1], 2);
- gSprites[spriteId].data0 = taskId;
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = 0;
spriteId = CreateSprite(&sSpriteTemplate_PokeBall, sPokeballCoords[1][0], sPokeballCoords[1][1], 2);
- gSprites[spriteId].data0 = taskId;
- gSprites[spriteId].data1 = 1;
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = 1;
spriteId = CreateSprite(&sSpriteTemplate_PokeBall, sPokeballCoords[2][0], sPokeballCoords[2][1], 2);
- gSprites[spriteId].data0 = taskId;
- gSprites[spriteId].data1 = 2;
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = 2;
sStarterChooseWindowId = 0xFF;
}
@@ -265,7 +258,7 @@ static void Task_StarterChoose5(u8 taskId)
{
u8 spriteId;
- switch (sub_8198C58())
+ switch (ProcessMenuInputNoWrap_())
{
case 0: // YES
// Return the starter choice and exit.
@@ -361,23 +354,23 @@ static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y)
return spriteId;
}
-static void sub_81346DC(struct Sprite *sprite)
+void sub_81346DC(struct Sprite *sprite)
{
- sprite->pos1.x = gUnknown_085B1E28[gTasks[sprite->data0].tStarterSelection][0];
- sprite->pos1.y = gUnknown_085B1E28[gTasks[sprite->data0].tStarterSelection][1];
- sprite->pos2.y = Sin(sprite->data1, 8);
- sprite->data1 = (u8)(sprite->data1) + 4;
+ sprite->pos1.x = gUnknown_085B1E28[gTasks[sprite->data[0]].tStarterSelection][0];
+ sprite->pos1.y = gUnknown_085B1E28[gTasks[sprite->data[0]].tStarterSelection][1];
+ sprite->pos2.y = Sin(sprite->data[1], 8);
+ sprite->data[1] = (u8)(sprite->data[1]) + 4;
}
-static void sub_813473C(struct Sprite *sprite)
+void sub_813473C(struct Sprite *sprite)
{
- if (gTasks[sprite->data0].tStarterSelection == sprite->data1)
+ if (gTasks[sprite->data[0]].tStarterSelection == sprite->data[1])
StartSpriteAnimIfDifferent(sprite, 1);
else
StartSpriteAnimIfDifferent(sprite, 0);
}
-static void StarterPokemonSpriteCallback(struct Sprite *sprite)
+void StarterPokemonSpriteCallback(struct Sprite *sprite)
{
//Move sprite to upper center of screen
if (sprite->pos1.x > STARTER_PKMN_POS_X)