Move starter_choose data to C

This commit is contained in:
Slawter666
2018-09-06 00:47:29 +01:00
parent 41fe72b95d
commit 07c2882390
3 changed files with 315 additions and 193 deletions
+314 -33
View File
@@ -1,26 +1,27 @@
#include "global.h"
#include "starter_choose.h"
#include "palette.h"
#include "sprite.h"
#include "pokemon.h"
#include "task.h"
#include "bg.h"
#include "data2.h"
#include "decompress.h"
#include "event_data.h"
#include "gpu_regs.h"
#include "international_string_util.h"
#include "main.h"
#include "window.h"
#include "menu.h"
#include "palette.h"
#include "pokedex.h"
#include "pokemon.h"
#include "scanline_effect.h"
#include "sound.h"
#include "sprite.h"
#include "starter_choose.h"
#include "task.h"
#include "text.h"
#include "text_window.h"
#include "decompress.h"
#include "menu.h"
#include "sound.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"
#include "trainer_pokemon_sprites.h"
#include "trig.h"
#include "window.h"
#include "constants/songs.h"
#include "constants/species.h"
#define STARTER_MON_COUNT 3
@@ -32,23 +33,6 @@
extern const u8 gText_BirchInTrouble[];
extern const u8 gText_ConfirmStarterChoice[];
extern const u16 sStarterMon[STARTER_MON_COUNT];
extern const struct BgTemplate gUnknown_085B1E00[3];
extern const struct WindowTemplate gUnknown_085B1DCC[];
extern const struct WindowTemplate gUnknown_085B1DDC;
extern const struct CompressedSpriteSheet gUnknown_085B1ED8[];
extern const struct CompressedSpriteSheet gUnknown_085B1EE8[];
extern const struct SpritePalette gUnknown_085B1EF8[];
extern const struct SpriteTemplate sSpriteTemplate_PokeBall;
extern const struct SpriteTemplate sSpriteTemplate_Hand;
extern const struct SpriteTemplate gUnknown_085B1F40;
extern const union AffineAnimCmd *const gUnknown_085B1ED0;
extern const u8 sPokeballCoords[STARTER_MON_COUNT][2];
extern const struct WindowTemplate gUnknown_085B1DE4;
extern const u8 gStarterChoose_LabelCoords[][2];
extern const u8 gUnknown_085B1E0C[];
extern const u8 gUnknown_085B1E28[][2];
// this file's functions
static void MainCallback2_StarterChoose(void);
static void sub_8134604(void);
@@ -62,10 +46,307 @@ 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);
void sub_81346DC(struct Sprite *sprite);
void sub_813473C(struct Sprite *sprite);
void StarterPokemonSpriteCallback(struct Sprite *sprite);
static IWRAM_DATA u16 sStarterChooseWindowId;
// .rodata
const u16 gBirchBagGrassPal[][16] =
{
INCBIN_U16("graphics/misc/birch_bag.gbapal"),
INCBIN_U16("graphics/misc/birch_grass.gbapal"),
};
const u16 gBirchBallarrow_Pal[] = INCBIN_U16("graphics/misc/birch_ballarrow.gbapal");
const u16 gBirchCircle_Pal[] = INCBIN_U16("graphics/misc/birch_circle.gbapal");
const u8 gBirchBagTilemap[] = INCBIN_U8("graphics/misc/birch_bag_map.bin.lz");
const u8 gBirchGrassTilemap[] = INCBIN_U8("graphics/misc/birch_grass_map.bin.lz");
const u8 gBirchHelpGfx[] = INCBIN_U8("graphics/misc/birch_help.4bpp.lz");
const u8 gUnknown_085B18AC[] = INCBIN_U8("graphics/misc/birch_ballarrow.4bpp.lz");
const u8 gUnknown_085B1BCC[] = INCBIN_U8("graphics/misc/birch_circle.4bpp.lz");
static const struct WindowTemplate gUnknown_085B1DCC[] =
{
{
.priority = 0,
.tilemapLeft = 3,
.tilemapTop = 15,
.width = 24,
.height = 4,
.paletteNum = 14,
.baseBlock = 0x0200
},
DUMMY_WIN_TEMPLATE,
};
static const struct WindowTemplate gUnknown_085B1DDC =
{
.priority = 0,
.tilemapLeft = 24,
.tilemapTop = 9,
.width = 5,
.height = 4,
.paletteNum = 14,
.baseBlock = 0x0260
};
static const struct WindowTemplate gUnknown_085B1DE4 =
{
.priority = 0,
.tilemapLeft = 0,
.tilemapTop = 0,
.width = 13,
.height = 4,
.paletteNum = 14,
.baseBlock = 0x0274
};
static const u8 sPokeballCoords[STARTER_MON_COUNT][2] =
{
{0x3c, 0x40},
{0x78, 0x58},
{0xb4, 0x40},
};
static const u8 gStarterChoose_LabelCoords[][2] =
{
{0x00, 0x09},
{0x10, 0x0a},
{0x08, 0x04},
};
static const u16 sStarterMon[STARTER_MON_COUNT] =
{
SPECIES_TREECKO,
SPECIES_TORCHIC,
SPECIES_MUDKIP,
};
static const struct BgTemplate gUnknown_085B1E00[3] =
{
{
.bg = 0,
.charBaseIndex = 2,
.mapBaseIndex = 31,
.screenSize = 0,
.paletteMode = 0,
.priority = 0,
.baseTile = 0
},
{
.bg = 2,
.charBaseIndex = 0,
.mapBaseIndex = 7,
.screenSize = 0,
.paletteMode = 0,
.priority = 3,
.baseTile = 0
},
{
.bg = 3,
.charBaseIndex = 0,
.mapBaseIndex = 6,
.screenSize = 0,
.paletteMode = 0,
.priority = 1,
.baseTile = 0
},
};
static const u8 gUnknown_085B1E0C[] = {0x00, 0x01, 0x03};
static const struct OamData gOamData_85B1E10 =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.mosaic = 0,
.bpp = 0,
.shape = 0,
.x = 0,
.matrixNum = 0,
.size = 2,
.tileNum = 0,
.priority = 1,
.paletteNum = 0,
.affineParam = 0,
};
static const struct OamData gOamData_85B1E18 =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.mosaic = 0,
.bpp = 0,
.shape = 0,
.x = 0,
.matrixNum = 0,
.size = 2,
.tileNum = 0,
.priority = 1,
.paletteNum = 0,
.affineParam = 0,
};
static const struct OamData gOamData_85B1E20 =
{
.y = 160,
.affineMode = 3,
.objMode = 0,
.mosaic = 0,
.bpp = 0,
.shape = 0,
.x = 0,
.matrixNum = 0,
.size = 3,
.tileNum = 0,
.priority = 1,
.paletteNum = 0,
.affineParam = 0,
};
static const u8 gUnknown_085B1E28[][2] =
{
{0x3c, 0x20},
{0x78, 0x38},
{0xb4, 0x20},
};
static const union AnimCmd gSpriteAnim_85B1E30[] =
{
ANIMCMD_FRAME(48, 30),
ANIMCMD_END,
};
static const union AnimCmd gSpriteAnim_85B1E38[] =
{
ANIMCMD_FRAME(0, 30),
ANIMCMD_END,
};
static const union AnimCmd gSpriteAnim_85B1E40[] =
{
ANIMCMD_FRAME(16, 4),
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(32, 4),
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(16, 4),
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(32, 4),
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(0, 32),
ANIMCMD_FRAME(16, 8),
ANIMCMD_FRAME(0, 8),
ANIMCMD_FRAME(32, 8),
ANIMCMD_FRAME(0, 8),
ANIMCMD_FRAME(16, 8),
ANIMCMD_FRAME(0, 8),
ANIMCMD_FRAME(32, 8),
ANIMCMD_FRAME(0, 8),
ANIMCMD_JUMP(0),
};
static const union AnimCmd gSpriteAnim_85B1E88[] =
{
ANIMCMD_FRAME(0, 8),
ANIMCMD_END,
};
static const union AnimCmd * const gSpriteAnimTable_85B1E90[] =
{
gSpriteAnim_85B1E30,
};
static const union AnimCmd * const gSpriteAnimTable_85B1E94[] =
{
gSpriteAnim_85B1E38,
gSpriteAnim_85B1E40,
};
static const union AnimCmd * const gSpriteAnimTable_85B1E9C[] =
{
gSpriteAnim_85B1E88,
};
static const union AffineAnimCmd gSpriteAffineAnim_85B1EA0[] =
{
AFFINEANIMCMD_FRAME(16, 16, 0, 0),
AFFINEANIMCMD_FRAME(16, 16, 0, 15),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gSpriteAffineAnim_85B1EB8[] =
{
AFFINEANIMCMD_FRAME(20, 20, 0, 0),
AFFINEANIMCMD_FRAME(20, 20, 0, 15),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd * const gUnknown_085B1ED0 = {gSpriteAffineAnim_85B1EA0};
static const union AffineAnimCmd * const gSpriteAffineAnimTable_85B1ED4[] = {gSpriteAffineAnim_85B1EB8};
static const struct CompressedSpriteSheet gUnknown_085B1ED8[] =
{
gUnknown_085B18AC, 0x0800, 0x1000,
NULL,
};
static const struct CompressedSpriteSheet gUnknown_085B1EE8[] =
{
gUnknown_085B1BCC, 0x0800, 0x1001,
NULL,
};
static const struct SpritePalette gUnknown_085B1EF8[] =
{
gBirchBallarrow_Pal, 0x1000,
gBirchCircle_Pal, 0x1001,
NULL,
};
static const struct SpriteTemplate sSpriteTemplate_Hand =
{
.tileTag = 0x1000,
.paletteTag = 0x1000,
.oam = &gOamData_85B1E10,
.anims = gSpriteAnimTable_85B1E90,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_81346DC
};
static const struct SpriteTemplate sSpriteTemplate_PokeBall =
{
.tileTag = 0x1000,
.paletteTag = 0x1000,
.oam = &gOamData_85B1E18,
.anims = gSpriteAnimTable_85B1E94,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_813473C
};
static const struct SpriteTemplate gUnknown_085B1F40 =
{
.tileTag = 0x1001,
.paletteTag = 0x1001,
.oam = &gOamData_85B1E20,
.anims = gSpriteAnimTable_85B1E9C,
.images = NULL,
.affineAnims = gSpriteAffineAnimTable_85B1ED4,
.callback = StarterPokemonSpriteCallback
};
// .text
u16 GetStarterPokemon(u16 chosenStarterId)
{
if (chosenStarterId > STARTER_MON_COUNT)