From 3dc2f8992446b2fffa0f7da16351e1445856f190 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Thu, 5 Jan 2017 02:53:34 -0800 Subject: field_8 -> savedCallback --- src/starter_choose.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index 2750705b8..68e644353 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -266,7 +266,7 @@ static void Task_StarterChoose5(u8 taskId) case 0: //YES //Return the starter choice and exit. gScriptResult = gTasks[taskId].data[TD_STARTERSELECTION]; - SetMainCallback2(gMain.field_8); + SetMainCallback2(gMain.savedCallback); break; case 1: //NO case -1: //B button -- cgit v1.2.3 From 177978c9414891fade22cf2005814d63b78e29e6 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Sat, 7 Jan 2017 21:10:37 -0800 Subject: more incbins --- src/starter_choose.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index 68e644353..9bd817cce 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -28,7 +28,7 @@ extern struct SpriteSheet gUnknown_083F77A4; extern u8 gBirchBagGrassPal[]; extern const u8 gStarterChoose_LabelCoords[][2]; extern u16 gStarterMons[]; -extern union AffineAnimCmd *gUnknown_083F778C[]; +extern union AffineAnimCmd *gSpriteAffineAnimTable_83F778C[]; extern u8 gOtherText_DoYouChoosePoke[]; extern u16 gScriptResult; extern u8 gSpeciesNames[][11]; @@ -216,7 +216,7 @@ static void Task_StarterChoose2(u8 taskId) GetStarterPokemon(gTasks[taskId].data[TD_STARTERSELECTION]), gStarterChoose_PokeballCoords[selection][0], gStarterChoose_PokeballCoords[selection][1]); - gSprites[spriteId].affineAnims = gUnknown_083F778C; + gSprites[spriteId].affineAnims = gSpriteAffineAnimTable_83F778C; gSprites[spriteId].callback = StarterPokemonSpriteAnimCallback; gTasks[taskId].data[TD_PKMN_SPRITE_ID] = spriteId; -- cgit v1.2.3 From c9722602cb47eb5b6ecbccddf13df5f286a8ef7b Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Tue, 17 Jan 2017 14:13:04 +0100 Subject: Sort includes --- src/starter_choose.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index 9bd817cce..87a90afc8 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -1,17 +1,17 @@ #include "global.h" #include "starter_choose.h" #include "asm.h" +#include "decompress.h" #include "main.h" #include "menu.h" #include "palette.h" #include "pokedex.h" #include "songs.h" #include "sound.h" +#include "sprite.h" #include "string_util.h" #include "task.h" #include "trig.h" -#include "decompress.h" -#include "sprite.h" struct MonCoords { -- cgit v1.2.3 From 801877553db80267a62c0c3c0b2805b6716d1ef9 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Tue, 17 Jan 2017 14:38:44 +0100 Subject: Remove trailing whitespace --- src/starter_choose.c | 54 ++++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index 87a90afc8..28dd6a820 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -87,9 +87,9 @@ void CB2_ChooseStarter(void) u16 savedIme; u8 taskId; u8 spriteId; - + SetVBlankCallback(NULL); - + REG_DISPCNT = 0; REG_BG3CNT = 0; REG_BG2CNT = 0; @@ -103,11 +103,11 @@ void CB2_ChooseStarter(void) REG_BG1VOFS = 0; REG_BG0HOFS = 0; REG_BG0VOFS = 0; - + DmaFill16(3, 0, VRAM, VRAM_SIZE); DmaFill32(3, 0, OAM, OAM_SIZE); DmaFill16(3, 0, PLTT, PLTT_SIZE); - + LZ77UnCompVram(&gBirchHelpGfx, (void *)VRAM); LZ77UnCompVram(&gBirchBagTilemap, (void *)(VRAM + 0x3000)); LZ77UnCompVram(&gBirchGrassTilemap, (void *)(VRAM + 0x3800)); @@ -123,16 +123,16 @@ void CB2_ChooseStarter(void) SetUpWindowConfig(&gWindowConfig_81E6C3C); InitMenuWindow(&gWindowConfig_81E6CE4); BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); - + savedIme = REG_IME; REG_IME = 0; REG_IE |= INTR_FLAG_VBLANK; REG_IME = savedIme; REG_DISPSTAT |= DISPSTAT_VBLANK_INTR; - + SetVBlankCallback(VblankCallback); SetMainCallback2(MainCallback2); - + REG_WININ = 0x3F; REG_WINOUT = 0x1F; REG_WIN0H = 0; @@ -144,14 +144,14 @@ void CB2_ChooseStarter(void) REG_BG2CNT = 0x602; REG_BG0CNT = 0x1F08; REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON; - + taskId = CreateTask(Task_StarterChoose1, 0); gTasks[taskId].data[TD_STARTERSELECTION] = 1; - + //Create hand sprite spriteId = CreateSprite(&gSpriteTemplate_83F77CC, 120, 56, 2); gSprites[spriteId].data0 = taskId; - + //Create three Pokeball sprites spriteId = CreateSprite( &gSpriteTemplate_83F77E4, @@ -189,20 +189,20 @@ static void Task_StarterChoose1(u8 taskId) static void Task_StarterChoose2(u8 taskId) { u8 selection = gTasks[taskId].data[TD_STARTERSELECTION]; - + if(gMain.newKeys & A_BUTTON) { u8 spriteId; - + MenuZeroFillWindowRect( gStarterChoose_LabelCoords[selection][0], gStarterChoose_LabelCoords[selection][1], gStarterChoose_LabelCoords[selection][0] + 13, gStarterChoose_LabelCoords[selection][1] + 3); - + REG_WIN0H = 0; REG_WIN0V = 0; - + //Create white circle background spriteId = CreateSprite( &gSpriteTemplate_83F77FC, @@ -210,7 +210,7 @@ static void Task_StarterChoose2(u8 taskId) gStarterChoose_PokeballCoords[selection][1], 1); gTasks[taskId].data[TD_CIRCLE_SPRITE_ID] = spriteId; - + //Create Pokemon sprite spriteId = CreatePokemonFrontSprite( GetStarterPokemon(gTasks[taskId].data[TD_STARTERSELECTION]), @@ -219,7 +219,7 @@ static void Task_StarterChoose2(u8 taskId) gSprites[spriteId].affineAnims = gSpriteAffineAnimTable_83F778C; gSprites[spriteId].callback = StarterPokemonSpriteAnimCallback; gTasks[taskId].data[TD_PKMN_SPRITE_ID] = spriteId; - + gTasks[taskId].func = Task_StarterChoose3; } else @@ -260,7 +260,7 @@ static void Task_StarterChoose4(u8 taskId) static void Task_StarterChoose5(u8 taskId) { u8 spriteId; - + switch(ProcessMenuInputNoWrap_()) { case 0: //YES @@ -272,12 +272,12 @@ static void Task_StarterChoose5(u8 taskId) case -1: //B button PlaySE(SE_SELECT); MenuZeroFillWindowRect(21, 7, 27, 12); - + spriteId = gTasks[taskId].data[TD_PKMN_SPRITE_ID]; FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum)); FreeOamMatrix(gSprites[spriteId].oam.matrixNum); DestroySprite(&gSprites[spriteId]); - + spriteId = gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]; FreeOamMatrix(gSprites[spriteId].oam.matrixNum); DestroySprite(&gSprites[spriteId]); @@ -313,12 +313,12 @@ static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) u8 srcIndex; u8 dstIndex; u16 species; - + u8 labelLeft; u8 labelRight; u8 labelTop; u8 labelBottom; - + if(prevSelection != 0xFF) { //Remove the old Pokemon label @@ -337,7 +337,7 @@ static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) SET_CHAR(labelText, 5, EXT_CTRL_CODE_BEGIN); SET_CHAR(labelText, 6, 0x11); SET_CHAR(labelText, 7, dstIndex); - + //Copy category string to label dstIndex = 8; srcIndex = 0; @@ -348,7 +348,7 @@ static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) dstIndex++; } labelText[dstIndex++] = CHAR_SPACE; - + //Copy POKEMON string to label StringCopy(labelText + dstIndex, gOtherText_Poke); MenuPrint( @@ -356,14 +356,14 @@ static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) gStarterChoose_LabelCoords[selection][0], gStarterChoose_LabelCoords[selection][1]); AddTextColorCtrlCode(labelText, 0, 15, 8); - + //Copy Pokemon name to label sub_8072C74(labelText + 5, gSpeciesNames[species], 0x6B, 1); MenuPrint( labelText, gStarterChoose_LabelCoords[selection][0], gStarterChoose_LabelCoords[selection][1] + 2); - + labelLeft = gStarterChoose_LabelCoords[selection][0] * 8 + 4; labelRight = (gStarterChoose_LabelCoords[selection][0] + 13) * 8 + 4; labelTop = gStarterChoose_LabelCoords[selection][1] * 8; @@ -374,13 +374,13 @@ static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) void nullsub_72(struct Sprite *sprite) { - + } static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y) { u8 spriteId; - + DecompressPicFromTable_2( &gMonFrontPicTable[species], gMonFrontPicCoords[species].x, gMonFrontPicCoords[species].y, -- cgit v1.2.3 From bcaab977727ded65c9eeaef9dbef9e9441d26fb7 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Sat, 21 Jan 2017 16:48:06 -0800 Subject: formatting --- src/starter_choose.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index 28dd6a820..4a6fb11eb 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -70,7 +70,7 @@ enum { //Retrieves one of the available starter Pokemon u16 GetStarterPokemon(u16 n) { - if(n > 3) + if (n > 3) n = 0; return gStarterMons[n]; } @@ -190,7 +190,7 @@ static void Task_StarterChoose2(u8 taskId) { u8 selection = gTasks[taskId].data[TD_STARTERSELECTION]; - if(gMain.newKeys & A_BUTTON) + if (gMain.newKeys & A_BUTTON) { u8 spriteId; @@ -224,12 +224,12 @@ static void Task_StarterChoose2(u8 taskId) } else { - if((gMain.newKeys & DPAD_LEFT) && selection > 0) + if ((gMain.newKeys & DPAD_LEFT) && selection > 0) { gTasks[taskId].data[TD_STARTERSELECTION]--; CreateStarterPokemonLabel(selection, gTasks[taskId].data[TD_STARTERSELECTION]); } - else if((gMain.newKeys & DPAD_RIGHT) && selection < 2) + else if ((gMain.newKeys & DPAD_RIGHT) && selection < 2) { gTasks[taskId].data[TD_STARTERSELECTION]++; CreateStarterPokemonLabel(selection, gTasks[taskId].data[TD_STARTERSELECTION]); @@ -239,7 +239,7 @@ static void Task_StarterChoose2(u8 taskId) static void Task_StarterChoose3(u8 taskId) { - if(gSprites[gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]].affineAnimEnded && + if (gSprites[gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]].affineAnimEnded && gSprites[gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]].pos1.x == STARTER_PKMN_POS_X && gSprites[gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]].pos1.y == STARTER_PKMN_POS_Y) { @@ -261,7 +261,7 @@ static void Task_StarterChoose5(u8 taskId) { u8 spriteId; - switch(ProcessMenuInputNoWrap_()) + switch (ProcessMenuInputNoWrap_()) { case 0: //YES //Return the starter choice and exit. @@ -319,7 +319,7 @@ static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) u8 labelTop; u8 labelBottom; - if(prevSelection != 0xFF) + if (prevSelection != 0xFF) { //Remove the old Pokemon label MenuZeroFillWindowRect( @@ -341,7 +341,7 @@ static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) //Copy category string to label dstIndex = 8; srcIndex = 0; - while(category[srcIndex] != EOS && srcIndex <= 10) + while (category[srcIndex] != EOS && srcIndex <= 10) { labelText[dstIndex] = category[srcIndex]; srcIndex++; @@ -406,7 +406,7 @@ void sub_810A62C(struct Sprite *sprite) //Sprite callback void sub_810A68C(struct Sprite *sprite) { - if(gTasks[sprite->data0].data[TD_STARTERSELECTION] == sprite->data1) + if (gTasks[sprite->data0].data[TD_STARTERSELECTION] == sprite->data1) StartSpriteAnimIfDifferent(sprite, 1); else StartSpriteAnimIfDifferent(sprite, 0); @@ -416,12 +416,12 @@ void sub_810A68C(struct Sprite *sprite) void StarterPokemonSpriteAnimCallback(struct Sprite *sprite) { //Move sprite to upper center of screen - if(sprite->pos1.x > STARTER_PKMN_POS_X) + if (sprite->pos1.x > STARTER_PKMN_POS_X) sprite->pos1.x -= 4; - if(sprite->pos1.x < STARTER_PKMN_POS_X) + if (sprite->pos1.x < STARTER_PKMN_POS_X) sprite->pos1.x += 4; - if(sprite->pos1.y > STARTER_PKMN_POS_Y) + if (sprite->pos1.y > STARTER_PKMN_POS_Y) sprite->pos1.y -= 2; - if(sprite->pos1.y < STARTER_PKMN_POS_Y) + if (sprite->pos1.y < STARTER_PKMN_POS_Y) sprite->pos1.y += 2; } -- cgit v1.2.3 From b9ff56bd89ac11a9b40b34f834dcf7a5be4d90a6 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Fri, 27 Jan 2017 13:06:20 -0500 Subject: define more data in C (#219) * define some graphics data in C * define wild pokemon in C * use less #ifdefs * define data in berry.c --- src/starter_choose.c | 166 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 154 insertions(+), 12 deletions(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index 4a6fb11eb..29c090fc0 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -8,6 +8,7 @@ #include "pokedex.h" #include "songs.h" #include "sound.h" +#include "species.h" #include "sprite.h" #include "string_util.h" #include "task.h" @@ -18,17 +19,159 @@ struct MonCoords u8 x, y; }; +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 gBirchBallarrow_Gfx[] = INCBIN_U8("graphics/misc/birch_ballarrow.4bpp.lz"); +const u8 gBirchCircle_Gfx[] = INCBIN_U8("graphics/misc/birch_circle.4bpp.lz"); +const u8 gStarterChoose_PokeballCoords[][2] = +{ + {60, 64}, + {120, 88}, + {180, 64}, +}; +const u8 gStarterChoose_LabelCoords[][2] = +{ + {0, 9}, + {16, 10}, + {8, 4}, +}; +const u16 gStarterMons[] = {SPECIES_TREECKO, SPECIES_TORCHIC, SPECIES_MUDKIP}; +const struct OamData gOamData_83F76CC = +{ + .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, +}; +const struct OamData gOamData_83F76D4 = +{ + .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, +}; +const struct OamData gOamData_83F76DC = +{ + .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, +}; +const u8 gUnknown_083F76E4[][2] = +{ + {60, 32}, + {120, 56}, + {180, 32}, + {0, 0}, +}; +const union AnimCmd gSpriteAnim_83F76EC[] = +{ + ANIMCMD_FRAME(48, 30), + ANIMCMD_END, +}; +const union AnimCmd gSpriteAnim_83F76F4[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; +const union AnimCmd gSpriteAnim_83F76FC[] = +{ + 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), +}; +const union AnimCmd gSpriteAnim_83F7744[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; +const union AnimCmd *const gSpriteAnimTable_83F774C[] = +{ + gSpriteAnim_83F76EC, +}; +const union AnimCmd *const gSpriteAnimTable_83F7750[] = +{ + gSpriteAnim_83F76F4, + gSpriteAnim_83F76FC, +}; +const union AnimCmd *const gSpriteAnimTable_83F7758[] = +{ + gSpriteAnim_83F7744, +}; +const union AffineAnimCmd gSpriteAffineAnim_83F775C[] = +{ + AFFINEANIMCMD_FRAME(16, 16, 0, 0), + AFFINEANIMCMD_FRAME(16, 16, 0, 15), + AFFINEANIMCMD_END, +}; +const union AffineAnimCmd gSpriteAffineAnim_83F7774[] = +{ + AFFINEANIMCMD_FRAME(20, 20, 0, 0), + AFFINEANIMCMD_FRAME(20, 20, 0, 15), + AFFINEANIMCMD_END, +}; +const union AffineAnimCmd *const gSpriteAffineAnimTable_83F778C[] = +{ + gSpriteAffineAnim_83F775C, +}; +const union AffineAnimCmd *const gSpriteAffineAnimTable_83F7790[] = +{ + gSpriteAffineAnim_83F7774, +}; + extern void * const gUnknown_081FAF4C[]; -extern const u8 gStarterChoose_PokeballCoords[][2]; -extern u8 gBirchHelpGfx[]; -extern u8 gBirchBagTilemap[]; -extern u8 gBirchGrassTilemap[]; -extern struct SpriteSheet gUnknown_083F7794; -extern struct SpriteSheet gUnknown_083F77A4; -extern u8 gBirchBagGrassPal[]; -extern const u8 gStarterChoose_LabelCoords[][2]; -extern u16 gStarterMons[]; -extern union AffineAnimCmd *gSpriteAffineAnimTable_83F778C[]; +extern const struct SpriteSheet gUnknown_083F7794; +extern const struct SpriteSheet gUnknown_083F77A4; extern u8 gOtherText_DoYouChoosePoke[]; extern u16 gScriptResult; extern u8 gSpeciesNames[][11]; @@ -36,7 +179,6 @@ extern u8 gOtherText_Poke[]; extern const struct SpriteSheet gMonFrontPicTable[]; extern const struct MonCoords gMonFrontPicCoords[]; extern const struct SpritePalette gMonPaletteTable[]; -extern u8 gUnknown_083F76E4[][2]; extern u8 gOtherText_BirchInTrouble[]; extern struct SpriteTemplate gSpriteTemplate_83F77E4; @@ -116,7 +258,7 @@ void CB2_ChooseStarter(void) ResetSpriteData(); ResetPaletteFade(); FreeAllSpritePalettes(); - LoadPalette(gBirchBagGrassPal, 0, 0x40); + LoadPalette(gBirchBagGrassPal, 0, sizeof(gBirchBagGrassPal)); LoadCompressedObjectPic(&gUnknown_083F7794); LoadCompressedObjectPic(&gUnknown_083F77A4); LoadSpritePalettes(gUnknown_083F77B4); -- cgit v1.2.3 From b9f1143d3e9b32120cc62fcc7a822d3bca8ef976 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sat, 28 Jan 2017 01:31:09 -0500 Subject: define more data in C (#220) * define more data in C * correct typo in comments --- src/starter_choose.c | 192 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 117 insertions(+), 75 deletions(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index 29c090fc0..f2c53610b 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -19,32 +19,47 @@ struct MonCoords u8 x, y; }; +extern void * const gUnknown_081FAF4C[]; +extern const u8 gOtherText_DoYouChoosePoke[]; +extern u16 gScriptResult; +extern const u8 gSpeciesNames[][11]; +extern const u8 gOtherText_Poke[]; +extern const struct SpriteSheet gMonFrontPicTable[]; +extern const struct MonCoords gMonFrontPicCoords[]; +extern const struct SpritePalette gMonPaletteTable[]; +extern const u8 gOtherText_BirchInTrouble[]; +extern struct SpriteTemplate gUnknown_02024E8C; + +//-------------------------------------------------- +// Graphics Data +//-------------------------------------------------- + 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"); +static const u16 gBirchBallarrow_Pal[] = INCBIN_U16("graphics/misc/birch_ballarrow.gbapal"); +static 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 gBirchBallarrow_Gfx[] = INCBIN_U8("graphics/misc/birch_ballarrow.4bpp.lz"); -const u8 gBirchCircle_Gfx[] = INCBIN_U8("graphics/misc/birch_circle.4bpp.lz"); -const u8 gStarterChoose_PokeballCoords[][2] = +static const u8 gBirchBallarrow_Gfx[] = INCBIN_U8("graphics/misc/birch_ballarrow.4bpp.lz"); +static const u8 gBirchCircle_Gfx[] = INCBIN_U8("graphics/misc/birch_circle.4bpp.lz"); +static const u8 gStarterChoose_PokeballCoords[][2] = { {60, 64}, {120, 88}, {180, 64}, }; -const u8 gStarterChoose_LabelCoords[][2] = +static const u8 gStarterChoose_LabelCoords[][2] = { {0, 9}, {16, 10}, {8, 4}, }; -const u16 gStarterMons[] = {SPECIES_TREECKO, SPECIES_TORCHIC, SPECIES_MUDKIP}; -const struct OamData gOamData_83F76CC = +static const u16 sStarterMons[] = {SPECIES_TREECKO, SPECIES_TORCHIC, SPECIES_MUDKIP}; +static const struct OamData gOamData_83F76CC = { .y = 160, .affineMode = 0, @@ -60,7 +75,7 @@ const struct OamData gOamData_83F76CC = .paletteNum = 0, .affineParam = 0, }; -const struct OamData gOamData_83F76D4 = +static const struct OamData gOamData_83F76D4 = { .y = 160, .affineMode = 0, @@ -76,7 +91,7 @@ const struct OamData gOamData_83F76D4 = .paletteNum = 0, .affineParam = 0, }; -const struct OamData gOamData_83F76DC = +static const struct OamData gOamData_83F76DC = { .y = 160, .affineMode = 3, @@ -92,24 +107,24 @@ const struct OamData gOamData_83F76DC = .paletteNum = 0, .affineParam = 0, }; -const u8 gUnknown_083F76E4[][2] = +static const u8 gUnknown_083F76E4[][2] = { {60, 32}, {120, 56}, {180, 32}, {0, 0}, }; -const union AnimCmd gSpriteAnim_83F76EC[] = +static const union AnimCmd gSpriteAnim_83F76EC[] = { ANIMCMD_FRAME(48, 30), ANIMCMD_END, }; -const union AnimCmd gSpriteAnim_83F76F4[] = +static const union AnimCmd gSpriteAnim_83F76F4[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; -const union AnimCmd gSpriteAnim_83F76FC[] = +static const union AnimCmd gSpriteAnim_83F76FC[] = { ANIMCMD_FRAME(16, 4), ANIMCMD_FRAME(0, 4), @@ -130,62 +145,93 @@ const union AnimCmd gSpriteAnim_83F76FC[] = ANIMCMD_FRAME(0, 8), ANIMCMD_JUMP(0), }; -const union AnimCmd gSpriteAnim_83F7744[] = +static const union AnimCmd gSpriteAnim_83F7744[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; -const union AnimCmd *const gSpriteAnimTable_83F774C[] = +static const union AnimCmd *const gSpriteAnimTable_83F774C[] = { gSpriteAnim_83F76EC, }; -const union AnimCmd *const gSpriteAnimTable_83F7750[] = +static const union AnimCmd *const gSpriteAnimTable_83F7750[] = { gSpriteAnim_83F76F4, gSpriteAnim_83F76FC, }; -const union AnimCmd *const gSpriteAnimTable_83F7758[] = +static const union AnimCmd *const gSpriteAnimTable_83F7758[] = { gSpriteAnim_83F7744, }; -const union AffineAnimCmd gSpriteAffineAnim_83F775C[] = +static const union AffineAnimCmd gSpriteAffineAnim_83F775C[] = { AFFINEANIMCMD_FRAME(16, 16, 0, 0), AFFINEANIMCMD_FRAME(16, 16, 0, 15), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gSpriteAffineAnim_83F7774[] = +static const union AffineAnimCmd gSpriteAffineAnim_83F7774[] = { AFFINEANIMCMD_FRAME(20, 20, 0, 0), AFFINEANIMCMD_FRAME(20, 20, 0, 15), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gSpriteAffineAnimTable_83F778C[] = +static const union AffineAnimCmd *const gSpriteAffineAnimTable_83F778C[] = { gSpriteAffineAnim_83F775C, }; -const union AffineAnimCmd *const gSpriteAffineAnimTable_83F7790[] = +static const union AffineAnimCmd *const gSpriteAffineAnimTable_83F7790[] = { gSpriteAffineAnim_83F7774, }; - -extern void * const gUnknown_081FAF4C[]; -extern const struct SpriteSheet gUnknown_083F7794; -extern const struct SpriteSheet gUnknown_083F77A4; -extern u8 gOtherText_DoYouChoosePoke[]; -extern u16 gScriptResult; -extern u8 gSpeciesNames[][11]; -extern u8 gOtherText_Poke[]; -extern const struct SpriteSheet gMonFrontPicTable[]; -extern const struct MonCoords gMonFrontPicCoords[]; -extern const struct SpritePalette gMonPaletteTable[]; -extern u8 gOtherText_BirchInTrouble[]; - -extern struct SpriteTemplate gSpriteTemplate_83F77E4; -extern struct SpriteTemplate gSpriteTemplate_83F77CC; -extern struct SpritePalette gUnknown_083F77B4[]; -extern struct SpriteTemplate gSpriteTemplate_83F77FC; -extern struct SpriteTemplate gUnknown_02024E8C; +static const struct SpriteSheet gUnknown_083F7794[] = +{ + {gBirchBallarrow_Gfx, 0x0800, 0x1000}, + {NULL}, +}; +static const struct SpriteSheet gUnknown_083F77A4[] = +{ + {gBirchCircle_Gfx, 0x0800, 0x1001}, + {NULL}, +}; +const struct SpritePalette gUnknown_083F77B4[] = +{ + {gBirchBallarrow_Pal, 0x1000}, + {gBirchCircle_Pal, 0x1001}, + {NULL}, +}; +static void sub_810A62C(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F77CC = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83F76CC, + .anims = gSpriteAnimTable_83F774C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810A62C, +}; +static void sub_810A68C(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F77E4 = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83F76D4, + .anims = gSpriteAnimTable_83F7750, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810A68C, +}; +static void StarterPokemonSpriteAnimCallback(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F77FC = +{ + .tileTag = 4097, + .paletteTag = 4097, + .oam = &gOamData_83F76DC, + .anims = gSpriteAnimTable_83F7758, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83F7790, + .callback = StarterPokemonSpriteAnimCallback, +}; static void MainCallback2(void); static void Task_StarterChoose1(u8 taskId); @@ -202,19 +248,12 @@ static u8 CreatePokemonFrontSprite(u16, u8, u8); #define STARTER_PKMN_POS_X 120 #define STARTER_PKMN_POS_Y 64 -//Task data -enum { - TD_STARTERSELECTION, - TD_PKMN_SPRITE_ID, - TD_CIRCLE_SPRITE_ID, -}; - //Retrieves one of the available starter Pokemon u16 GetStarterPokemon(u16 n) { if (n > 3) n = 0; - return gStarterMons[n]; + return sStarterMons[n]; } static void VblankCallback(void) @@ -224,6 +263,10 @@ static void VblankCallback(void) TransferPlttBuffer(); } +#define tStarterSelection data[0] +#define tPkmnSpriteId data[1] +#define tCircleSpriteId data[2] + void CB2_ChooseStarter(void) { u16 savedIme; @@ -259,8 +302,8 @@ void CB2_ChooseStarter(void) ResetPaletteFade(); FreeAllSpritePalettes(); LoadPalette(gBirchBagGrassPal, 0, sizeof(gBirchBagGrassPal)); - LoadCompressedObjectPic(&gUnknown_083F7794); - LoadCompressedObjectPic(&gUnknown_083F77A4); + LoadCompressedObjectPic(&gUnknown_083F7794[0]); + LoadCompressedObjectPic(&gUnknown_083F77A4[0]); LoadSpritePalettes(gUnknown_083F77B4); SetUpWindowConfig(&gWindowConfig_81E6C3C); InitMenuWindow(&gWindowConfig_81E6CE4); @@ -288,7 +331,7 @@ void CB2_ChooseStarter(void) REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON; taskId = CreateTask(Task_StarterChoose1, 0); - gTasks[taskId].data[TD_STARTERSELECTION] = 1; + gTasks[taskId].tStarterSelection = 1; //Create hand sprite spriteId = CreateSprite(&gSpriteTemplate_83F77CC, 120, 56, 2); @@ -322,7 +365,7 @@ static void MainCallback2(void) static void Task_StarterChoose1(u8 taskId) { - CreateStarterPokemonLabel(0xFF, gTasks[taskId].data[TD_STARTERSELECTION]); + CreateStarterPokemonLabel(0xFF, gTasks[taskId].tStarterSelection); MenuDrawTextWindow(2, 14, 27, 19); MenuPrint(gOtherText_BirchInTrouble, 3, 15); gTasks[taskId].func = Task_StarterChoose2; @@ -330,7 +373,7 @@ static void Task_StarterChoose1(u8 taskId) static void Task_StarterChoose2(u8 taskId) { - u8 selection = gTasks[taskId].data[TD_STARTERSELECTION]; + u8 selection = gTasks[taskId].tStarterSelection; if (gMain.newKeys & A_BUTTON) { @@ -351,16 +394,16 @@ static void Task_StarterChoose2(u8 taskId) gStarterChoose_PokeballCoords[selection][0], gStarterChoose_PokeballCoords[selection][1], 1); - gTasks[taskId].data[TD_CIRCLE_SPRITE_ID] = spriteId; + gTasks[taskId].tCircleSpriteId = spriteId; //Create Pokemon sprite spriteId = CreatePokemonFrontSprite( - GetStarterPokemon(gTasks[taskId].data[TD_STARTERSELECTION]), + GetStarterPokemon(gTasks[taskId].tStarterSelection), gStarterChoose_PokeballCoords[selection][0], gStarterChoose_PokeballCoords[selection][1]); gSprites[spriteId].affineAnims = gSpriteAffineAnimTable_83F778C; gSprites[spriteId].callback = StarterPokemonSpriteAnimCallback; - gTasks[taskId].data[TD_PKMN_SPRITE_ID] = spriteId; + gTasks[taskId].tPkmnSpriteId = spriteId; gTasks[taskId].func = Task_StarterChoose3; } @@ -368,22 +411,22 @@ static void Task_StarterChoose2(u8 taskId) { if ((gMain.newKeys & DPAD_LEFT) && selection > 0) { - gTasks[taskId].data[TD_STARTERSELECTION]--; - CreateStarterPokemonLabel(selection, gTasks[taskId].data[TD_STARTERSELECTION]); + gTasks[taskId].tStarterSelection--; + CreateStarterPokemonLabel(selection, gTasks[taskId].tStarterSelection); } else if ((gMain.newKeys & DPAD_RIGHT) && selection < 2) { - gTasks[taskId].data[TD_STARTERSELECTION]++; - CreateStarterPokemonLabel(selection, gTasks[taskId].data[TD_STARTERSELECTION]); + gTasks[taskId].tStarterSelection++; + CreateStarterPokemonLabel(selection, gTasks[taskId].tStarterSelection); } } } static void Task_StarterChoose3(u8 taskId) { - if (gSprites[gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]].affineAnimEnded && - gSprites[gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]].pos1.x == STARTER_PKMN_POS_X && - gSprites[gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]].pos1.y == STARTER_PKMN_POS_Y) + if (gSprites[gTasks[taskId].tCircleSpriteId].affineAnimEnded && + gSprites[gTasks[taskId].tCircleSpriteId].pos1.x == STARTER_PKMN_POS_X && + gSprites[gTasks[taskId].tCircleSpriteId].pos1.y == STARTER_PKMN_POS_Y) { gTasks[taskId].func = Task_StarterChoose4; } @@ -391,7 +434,7 @@ static void Task_StarterChoose3(u8 taskId) static void Task_StarterChoose4(u8 taskId) { - PlayCry1(GetStarterPokemon(gTasks[taskId].data[TD_STARTERSELECTION]), 0); + PlayCry1(GetStarterPokemon(gTasks[taskId].tStarterSelection), 0); MenuDrawTextWindow(2, 14, 27, 19); //"Do you choose this POKEMON?" MenuPrint(gOtherText_DoYouChoosePoke, 3, 15); @@ -407,7 +450,7 @@ static void Task_StarterChoose5(u8 taskId) { case 0: //YES //Return the starter choice and exit. - gScriptResult = gTasks[taskId].data[TD_STARTERSELECTION]; + gScriptResult = gTasks[taskId].tStarterSelection; SetMainCallback2(gMain.savedCallback); break; case 1: //NO @@ -415,12 +458,12 @@ static void Task_StarterChoose5(u8 taskId) PlaySE(SE_SELECT); MenuZeroFillWindowRect(21, 7, 27, 12); - spriteId = gTasks[taskId].data[TD_PKMN_SPRITE_ID]; + spriteId = gTasks[taskId].tPkmnSpriteId; FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum)); FreeOamMatrix(gSprites[spriteId].oam.matrixNum); DestroySprite(&gSprites[spriteId]); - spriteId = gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]; + spriteId = gTasks[taskId].tCircleSpriteId; FreeOamMatrix(gSprites[spriteId].oam.matrixNum); DestroySprite(&gSprites[spriteId]); gTasks[taskId].func = Task_StarterChoose6; @@ -514,9 +557,8 @@ static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) REG_WIN0V = WIN_RANGE(labelTop, labelBottom); } -void nullsub_72(struct Sprite *sprite) +static void nullsub_72(struct Sprite *sprite) { - } static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y) @@ -537,25 +579,25 @@ static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y) } //Sprite callback -void sub_810A62C(struct Sprite *sprite) +static void sub_810A62C(struct Sprite *sprite) { - sprite->pos1.x = gUnknown_083F76E4[gTasks[sprite->data0].data[TD_STARTERSELECTION]][0]; - sprite->pos1.y = gUnknown_083F76E4[gTasks[sprite->data0].data[TD_STARTERSELECTION]][1]; + sprite->pos1.x = gUnknown_083F76E4[gTasks[sprite->data0].tStarterSelection][0]; + sprite->pos1.y = gUnknown_083F76E4[gTasks[sprite->data0].tStarterSelection][1]; sprite->pos2.y = Sin(sprite->data1, 8); sprite->data1 = (u8)sprite->data1 + 4; } //Sprite callback -void sub_810A68C(struct Sprite *sprite) +static void sub_810A68C(struct Sprite *sprite) { - if (gTasks[sprite->data0].data[TD_STARTERSELECTION] == sprite->data1) + if (gTasks[sprite->data0].tStarterSelection == sprite->data1) StartSpriteAnimIfDifferent(sprite, 1); else StartSpriteAnimIfDifferent(sprite, 0); } //Sprite callback -void StarterPokemonSpriteAnimCallback(struct Sprite *sprite) +static void StarterPokemonSpriteAnimCallback(struct Sprite *sprite) { //Move sprite to upper center of screen if (sprite->pos1.x > STARTER_PKMN_POS_X) -- cgit v1.2.3 From ed8f49d5e1418309cbc4f705a242d073258c8639 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Sat, 28 Jan 2017 13:51:14 -0800 Subject: tabs to spaces --- src/starter_choose.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index f2c53610b..63d153ebd 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -448,13 +448,13 @@ static void Task_StarterChoose5(u8 taskId) switch (ProcessMenuInputNoWrap_()) { - case 0: //YES + case 0: // YES //Return the starter choice and exit. gScriptResult = gTasks[taskId].tStarterSelection; SetMainCallback2(gMain.savedCallback); break; - case 1: //NO - case -1: //B button + case 1: // NO + case -1: // B button PlaySE(SE_SELECT); MenuZeroFillWindowRect(21, 7, 27, 12); -- cgit v1.2.3 From fbebe08ae94b8e165ba120d71959554765307ce3 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Tue, 9 May 2017 12:52:39 -0500 Subject: use macros to set DISPCNT and BG*CNT registers (#286) * use macros to set DISPCNT and BG*CNT registers * add a few more --- src/starter_choose.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index 63d153ebd..6ef410d21 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -325,9 +325,9 @@ void CB2_ChooseStarter(void) REG_BLDCNT = 0xFE; REG_BLDALPHA = 0; REG_BLDY = 0x7; - REG_BG3CNT = 0x703; - REG_BG2CNT = 0x602; - REG_BG0CNT = 0x1F08; + REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) | BGCNT_16COLOR | BGCNT_TXT256x256; + REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(6) | BGCNT_16COLOR | BGCNT_TXT256x256; + REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_TXT256x256; REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON; taskId = CreateTask(Task_StarterChoose1, 0); -- cgit v1.2.3 From 010eb456d63b0d644285f263f310d73bfb9646b2 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Sat, 20 May 2017 17:49:54 +0200 Subject: Decrease indentation level of switches --- src/starter_choose.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index 6ef410d21..4b857dba6 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -448,26 +448,26 @@ static void Task_StarterChoose5(u8 taskId) switch (ProcessMenuInputNoWrap_()) { - case 0: // YES - //Return the starter choice and exit. - gScriptResult = gTasks[taskId].tStarterSelection; - SetMainCallback2(gMain.savedCallback); - break; - case 1: // NO - case -1: // B button - PlaySE(SE_SELECT); - MenuZeroFillWindowRect(21, 7, 27, 12); - - spriteId = gTasks[taskId].tPkmnSpriteId; - FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum)); - FreeOamMatrix(gSprites[spriteId].oam.matrixNum); - DestroySprite(&gSprites[spriteId]); - - spriteId = gTasks[taskId].tCircleSpriteId; - FreeOamMatrix(gSprites[spriteId].oam.matrixNum); - DestroySprite(&gSprites[spriteId]); - gTasks[taskId].func = Task_StarterChoose6; - break; + case 0: // YES + //Return the starter choice and exit. + gScriptResult = gTasks[taskId].tStarterSelection; + SetMainCallback2(gMain.savedCallback); + break; + case 1: // NO + case -1: // B button + PlaySE(SE_SELECT); + MenuZeroFillWindowRect(21, 7, 27, 12); + + spriteId = gTasks[taskId].tPkmnSpriteId; + FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum)); + FreeOamMatrix(gSprites[spriteId].oam.matrixNum); + DestroySprite(&gSprites[spriteId]); + + spriteId = gTasks[taskId].tCircleSpriteId; + FreeOamMatrix(gSprites[spriteId].oam.matrixNum); + DestroySprite(&gSprites[spriteId]); + gTasks[taskId].func = Task_StarterChoose6; + break; } } -- cgit v1.2.3 From 7c4f99560812cd5a8eedb124a9bc99c3f4243438 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Sun, 21 May 2017 11:37:35 +0200 Subject: Remove duplicate strings.h declarations --- src/starter_choose.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index 6ef410d21..358fe8fca 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -11,6 +11,7 @@ #include "species.h" #include "sprite.h" #include "string_util.h" +#include "strings.h" #include "task.h" #include "trig.h" @@ -20,14 +21,11 @@ struct MonCoords }; extern void * const gUnknown_081FAF4C[]; -extern const u8 gOtherText_DoYouChoosePoke[]; extern u16 gScriptResult; extern const u8 gSpeciesNames[][11]; -extern const u8 gOtherText_Poke[]; extern const struct SpriteSheet gMonFrontPicTable[]; extern const struct MonCoords gMonFrontPicCoords[]; extern const struct SpritePalette gMonPaletteTable[]; -extern const u8 gOtherText_BirchInTrouble[]; extern struct SpriteTemplate gUnknown_02024E8C; //-------------------------------------------------- -- cgit v1.2.3 From 6f2cd1e2da53cb0c4a4f4465d8ad72532050174d Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Sun, 21 May 2017 13:25:26 +0200 Subject: Add data2 header --- src/starter_choose.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index 358fe8fca..957342248 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -1,6 +1,7 @@ #include "global.h" #include "starter_choose.h" #include "asm.h" +#include "data2.h" #include "decompress.h" #include "main.h" #include "menu.h" @@ -15,17 +16,7 @@ #include "task.h" #include "trig.h" -struct MonCoords -{ - u8 x, y; -}; - -extern void * const gUnknown_081FAF4C[]; extern u16 gScriptResult; -extern const u8 gSpeciesNames[][11]; -extern const struct SpriteSheet gMonFrontPicTable[]; -extern const struct MonCoords gMonFrontPicCoords[]; -extern const struct SpritePalette gMonPaletteTable[]; extern struct SpriteTemplate gUnknown_02024E8C; //-------------------------------------------------- @@ -565,7 +556,7 @@ static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y) DecompressPicFromTable_2( &gMonFrontPicTable[species], - gMonFrontPicCoords[species].x, gMonFrontPicCoords[species].y, + gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, gUnknown_081FAF4C[0], gUnknown_081FAF4C[1], species); LoadCompressedObjectPalette(&gMonPaletteTable[species]); -- cgit v1.2.3 From 4d2b22a899c11dfcacfec6889968ab01655a3fe3 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 26 May 2017 14:53:51 +0200 Subject: Add headers --- src/starter_choose.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index 32b6adf36..dd35ab9df 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -1,6 +1,6 @@ +#include "unknown_task.h" #include "global.h" #include "starter_choose.h" -#include "asm.h" #include "data2.h" #include "decompress.h" #include "main.h" -- cgit v1.2.3 From f26daa3d6954d2db3a7c44b79d319a7a084462c2 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 26 May 2017 15:01:42 +0200 Subject: Sort includes --- src/starter_choose.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index dd35ab9df..0e3c6ad16 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -1,4 +1,3 @@ -#include "unknown_task.h" #include "global.h" #include "starter_choose.h" #include "data2.h" @@ -15,6 +14,7 @@ #include "strings.h" #include "task.h" #include "trig.h" +#include "unknown_task.h" extern u16 gScriptResult; extern struct SpriteTemplate gUnknown_02024E8C; -- cgit v1.2.3 From 2aae7e99d52fc488e75309909d279b459f5e1d80 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 26 May 2017 15:35:40 +0200 Subject: Make rom build again --- src/starter_choose.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index 0e3c6ad16..a025c9386 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -23,7 +23,7 @@ extern struct SpriteTemplate gUnknown_02024E8C; // Graphics Data //-------------------------------------------------- -const u16 gBirchBagGrassPal[][16] = +const u16 gBirchBagGrassPal[2][16] = { INCBIN_U16("graphics/misc/birch_bag.gbapal"), INCBIN_U16("graphics/misc/birch_grass.gbapal"), -- cgit v1.2.3 From 95c56943995bbae7688b581a6b6d084e215827f4 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Mon, 12 Jun 2017 14:36:40 -0500 Subject: decompile sub_8090750 - sub_8091304 --- src/starter_choose.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index 32b6adf36..0ed8315fc 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -483,7 +483,7 @@ static void AddTextColorCtrlCode(u8 *string, u8 bgColor, u8 textColor, u8 shadow static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) { u8 labelText[72]; - u8 *category; + const u8 *category; u8 srcIndex; u8 dstIndex; u16 species; -- cgit v1.2.3 From e072ddd6fbae8b303de546d0e9bd5ace2ecb20a1 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Mon, 19 Jun 2017 13:34:32 -0500 Subject: move data to C and introduce CompressedSpriteSheet and CompressedSpritePalette --- src/starter_choose.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index f30be8e08..c838f2dc0 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -172,12 +172,12 @@ static const union AffineAnimCmd *const gSpriteAffineAnimTable_83F7790[] = { gSpriteAffineAnim_83F7774, }; -static const struct SpriteSheet gUnknown_083F7794[] = +static const struct CompressedSpriteSheet gUnknown_083F7794[] = { {gBirchBallarrow_Gfx, 0x0800, 0x1000}, {NULL}, }; -static const struct SpriteSheet gUnknown_083F77A4[] = +static const struct CompressedSpriteSheet gUnknown_083F77A4[] = { {gBirchCircle_Gfx, 0x0800, 0x1001}, {NULL}, -- cgit v1.2.3 From f7528a440daa93ed0916834dcaf84ea26ba0e22d Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Sat, 24 Jun 2017 18:23:41 +0200 Subject: wip src --- src/starter_choose.c | 159 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 158 insertions(+), 1 deletion(-) (limited to 'src/starter_choose.c') diff --git a/src/starter_choose.c b/src/starter_choose.c index c838f2dc0..2b28df4f0 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -465,7 +465,7 @@ static void Task_StarterChoose6(u8 taskId) gTasks[taskId].func = Task_StarterChoose1; } -static void AddTextColorCtrlCode(u8 *string, u8 bgColor, u8 textColor, u8 shadowColor) +void AddTextColorCtrlCode(u8 *string, u8 bgColor, u8 textColor, u8 shadowColor) { *(string++) = EXT_CTRL_CODE_BEGIN; *(string++) = 4; @@ -480,6 +480,8 @@ static void AddTextColorCtrlCode(u8 *string, u8 bgColor, u8 textColor, u8 shadow *p = c; \ } + +#if ENGLISH static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) { u8 labelText[72]; @@ -545,6 +547,161 @@ static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) REG_WIN0H = WIN_RANGE(labelLeft, labelRight); REG_WIN0V = WIN_RANGE(labelTop, labelBottom); } +#elif GERMAN +__attribute__((naked)) +static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + sub sp, 0x48\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + lsls r1, 24\n\ + lsrs r5, r1, 24\n\ + cmp r0, 0xFF\n\ + beq _0810A872\n\ + ldr r1, _0810A960 @ =gStarterChoose_LabelCoords\n\ + lsls r2, r0, 1\n\ + adds r0, r2, r1\n\ + ldrb r0, [r0]\n\ + adds r1, 0x1\n\ + adds r2, r1\n\ + ldrb r1, [r2]\n\ + adds r2, r0, 0\n\ + adds r2, 0xD\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + adds r3, r1, 0x3\n\ + lsls r3, 24\n\ + lsrs r3, 24\n\ + bl MenuZeroFillWindowRect\n\ + ldr r0, _0810A964 @ =0x04000040\n\ + movs r1, 0\n\ + strh r1, [r0]\n\ + adds r0, 0x4\n\ + strh r1, [r0]\n\ +_0810A872:\n\ + adds r0, r5, 0\n\ + bl GetStarterPokemon\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ + adds r0, r6, 0\n\ + bl SpeciesToNationalPokedexNum\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + bl GetPokemonCategory\n\ + adds r4, r0, 0\n\ + mov r0, sp\n\ + movs r1, 0\n\ + movs r2, 0xF\n\ + movs r3, 0x8\n\ + bl AddTextColorCtrlCode\n\ + movs r2, 0x8\n\ + movs r3, 0\n\ + ldrb r0, [r4]\n\ + lsls r5, 1\n\ + mov r7, sp\n\ + adds r7, 0x5\n\ + cmp r0, 0xFF\n\ + beq _0810A8CA\n\ +_0810A8A8:\n\ + mov r0, sp\n\ + adds r1, r0, r2\n\ + adds r0, r4, r3\n\ + ldrb r0, [r0]\n\ + strb r0, [r1]\n\ + adds r0, r3, 0x1\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + adds r0, r2, 0x1\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + adds r0, r4, r3\n\ + ldrb r0, [r0]\n\ + cmp r0, 0xFF\n\ + beq _0810A8CA\n\ + cmp r3, 0xA\n\ + bls _0810A8A8\n\ +_0810A8CA:\n\ + mov r0, sp\n\ + adds r1, r0, r2\n\ + movs r0, 0xFF\n\ + strb r0, [r1]\n\ + mov r1, sp\n\ + movs r0, 0xFC\n\ + strb r0, [r1, 0x5]\n\ + movs r0, 0x11\n\ + strb r0, [r1, 0x6]\n\ + mov r2, sp\n\ + lsls r1, r3, 1\n\ + adds r1, r3\n\ + lsls r1, 1\n\ + movs r0, 0x70\n\ + subs r0, r1\n\ + asrs r0, 1\n\ + strb r0, [r2, 0x7]\n\ + ldr r0, _0810A960 @ =gStarterChoose_LabelCoords\n\ + adds r1, r5, r0\n\ + ldrb r4, [r1]\n\ + adds r0, 0x1\n\ + adds r0, r5, r0\n\ + ldrb r5, [r0]\n\ + mov r0, sp\n\ + adds r1, r4, 0\n\ + adds r2, r5, 0\n\ + bl MenuPrint\n\ + mov r0, sp\n\ + movs r1, 0\n\ + movs r2, 0xF\n\ + movs r3, 0x8\n\ + bl AddTextColorCtrlCode\n\ + movs r0, 0xB\n\ + adds r1, r6, 0\n\ + muls r1, r0\n\ + ldr r0, _0810A968 @ =gSpeciesNames\n\ + adds r1, r0\n\ + adds r0, r7, 0\n\ + movs r2, 0x70\n\ + movs r3, 0x2\n\ + bl sub_8072C74\n\ + adds r2, r5, 0x2\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + mov r0, sp\n\ + adds r1, r4, 0\n\ + bl MenuPrint\n\ + lsls r0, r4, 3\n\ + adds r0, 0x4\n\ + lsls r0, 24\n\ + adds r4, 0xD\n\ + lsls r4, 3\n\ + adds r4, 0x4\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + lsls r1, r5, 27\n\ + adds r5, 0x4\n\ + lsls r5, 27\n\ + lsrs r5, 24\n\ + ldr r2, _0810A964 @ =0x04000040\n\ + lsrs r0, 16\n\ + orrs r0, r4\n\ + strh r0, [r2]\n\ + ldr r0, _0810A96C @ =0x04000044\n\ + lsrs r1, 16\n\ + orrs r1, r5\n\ + strh r1, [r0]\n\ + add sp, 0x48\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_0810A960: .4byte gStarterChoose_LabelCoords\n\ +_0810A964: .4byte 0x04000040\n\ +_0810A968: .4byte gSpeciesNames\n\ +_0810A96C: .4byte 0x04000044\n\ + .syntax divided\n"); +} +#endif static void nullsub_72(struct Sprite *sprite) { -- cgit v1.2.3