Document pokedex.c

This commit is contained in:
GriffinR committed 2020-03-09 16:24:01 -04:00
1 parent c805c4cc6f
commit 31b0cbe9b4
29 files changed
+3668 -3304

No files matched your search

+1 -1
View File
@@ -1,2 +1,2 @@
gUnusedPokedexU8
gUnknown_030060B4
gPokedexVBlankCB
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File diff suppressed because it is too large. Load diff
+16 -17
View File
@@ -3282,25 +3282,24 @@ extern const u32 gBattleTerrainPalette_StadiumDrake[];
extern const u32 gBattleTerrainPalette_StadiumWallace[];
// pokedex
extern const u32 gPokedexMenu2_Gfx[];
extern const u16 gPokedexText_Pal[];
extern const u32 gPokedexInterface_Gfx[];
extern const u16 gPokedexBgHoenn_Pal[];
extern const u32 gPokedexMenu_Gfx[];
extern const u8 gPokedexTilemap_Main[];
extern const u8 gPokedexTilemap_MainUnderlay[];
extern const u8 gPokedexTilemap_StartMenu1[];
extern const u8 gPokedexTilemap_StartMenu2[];
extern const u16 gPokedexHoennBg_Pal[];
extern const u16 gPokedexText_Pal[];
extern const u16 gPokedexNationalBg_Pal[];
extern const u8 gPokedexTilemap_DescriptionScreen[];
extern const u8 gPokedexTilemap_CryScreen[];
extern const u8 gPokedexTilemap_SizeScreen[];
extern const u8 gPokedexTilemap_ScreenSelectBar1[];
extern const u8 gPokedexTilemap_ScreenSelectBar2[];
extern const u16 gPokedexCaughtScreenFade_Pal[];
extern const u8 gPokedexList_Tilemap[];
extern const u8 gPokedexListUnderlay_Tilemap[];
extern const u8 gPokedexStartMenuMain_Tilemap[];
extern const u8 gPokedexStartMenuSearchResults_Tilemap[];
extern const u16 gPokedexSearchResults_Pal[];
extern const u16 gPokedexBgNational_Pal[];
extern const u8 gPokedexInfoScreen_Tilemap[];
extern const u8 gPokedexCryScreen_Tilemap[];
extern const u8 gPokedexSizeScreen_Tilemap[];
extern const u8 gPokedexScreenSelectBarMain_Tilemap[];
extern const u8 gPokedexScreenSelectBarSubmenu_Tilemap[];
extern const u16 gPokedexCaughtScreen_Pal[];
extern const u32 gPokedexSearchMenu_Gfx[];
extern const u32 gPokedexSearch2_Tilemap[];
extern const u32 gPokedexSearch1_Tilemap[];
extern const u32 gPokedexSearchMenuHoenn_Tilemap[];
extern const u32 gPokedexSearchMenuNational_Tilemap[];
extern const u16 gPokedexSearchMenu_Pal[];
// berry tag screen
+3 -7
View File
@@ -2,11 +2,7 @@
#define GUARD_POKEDEX_H
extern u8 gUnusedPokedexU8;
extern void (*gUnknown_030060B4)(void);
#define KANTO_DEX_COUNT 151
#define HOENN_DEX_COUNT 202
#define NATIONAL_DEX_COUNT 386
extern void (*gPokedexVBlankCB)(void);
enum
{
@@ -39,12 +35,12 @@ void ResetPokedex(void);
u16 GetPokedexHeightWeight(u16 dexNum, u8 data);
u16 GetNationalPokedexCount(u8);
u16 GetHoennPokedexCount(u8);
u8 CreateDexDisplayMonDataTask(u16 dexNum, u32 trainerId, u32 personality);
u8 DisplayCaughtMonDexPage(u16 dexNum, u32 otId, u32 personality);
s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId);
u16 CreateMonSpriteFromNationalDexNumber(u16, s16, s16, u16);
bool16 HasAllHoennMons(void);
void ResetPokedexScrollPositions(void);
bool16 HasAllMons(void);
void CB2_Pokedex(void);
void CB2_OpenPokedex(void);
#endif // GUARD_POKEDEX_H
+7 -7
View File
@@ -3,8 +3,8 @@
struct CryRelatedStruct
{
u16 unk0;
u8 unk2;
u16 unk0; // Assigned to val that's never read
u8 unk2; // Never read
u8 paletteNo;
u8 xPos;
u8 yPos;
@@ -12,10 +12,10 @@ struct CryRelatedStruct
extern u8 gDexCryScreenState;
bool8 sub_8145354(struct CryRelatedStruct*, u8);
void sub_814545C(u8);
void sub_8145534(u16);
bool8 sub_8145850(struct CryRelatedStruct*, u8);
void sub_8145914(void);
bool8 LoadCryWaveformWindow(struct CryRelatedStruct*, u8);
void UpdateCryWaveformWindow(u8);
void CryScreenPlayButton(u16);
bool8 LoadCryMeter(struct CryRelatedStruct*, u8);
void FreeCryScreen(void);
#endif
+1 -1
View File
@@ -10263,7 +10263,7 @@ static void Cmd_displaydexinfo(void)
if (!gPaletteFade.active)
{
FreeAllWindowBuffers();
gBattleCommunication[TASK_ID] = CreateDexDisplayMonDataTask(SpeciesToNationalPokedexNum(species),
gBattleCommunication[TASK_ID] = DisplayCaughtMonDexPage(SpeciesToNationalPokedexNum(species),
gBattleMons[gBattlerTarget].otId,
gBattleMons[gBattlerTarget].personality);
gBattleCommunication[0]++;
+1
View File
@@ -23,6 +23,7 @@
#include "constants/vars.h"
#include "event_data.h"
#include "random.h"
#include "constants/species.h"
enum
{
+17 -22
View File
@@ -1257,32 +1257,27 @@ const u16 gFrontierPassMapCursor_Pal[] = INCBIN_U16("graphics/frontier_pass/map_
const u16 gFrontierPassMedalsSilver_Pal[] = INCBIN_U16("graphics/frontier_pass/silver.gbapal");
const u16 gFrontierPassMedalsGold_Pal[] = INCBIN_U16("graphics/frontier_pass/gold.gbapal");
const u16 gPokedexText_Pal[] = INCBIN_U16("graphics/pokedex/text.gbapal");
const u16 gPokedexCaughtScreenFade_Pal[] = INCBIN_U16("graphics/pokedex/fade.gbapal");
const u16 gPokedexHoennBg_Pal[] = INCBIN_U16("graphics/pokedex/hoenn_bg.gbapal");
const u16 gPokedexNationalBg_Pal[] = INCBIN_U16("graphics/pokedex/national_bg.gbapal");
// Pokedex
const u16 gPokedexBgHoenn_Pal[] = INCBIN_U16("graphics/pokedex/bg_hoenn.gbapal");
const u16 gPokedexCaughtScreen_Pal[] = INCBIN_U16("graphics/pokedex/caught_screen.gbapal");
const u16 gPokedexSearchResults_Pal[] = INCBIN_U16("graphics/pokedex/search_results_bg.gbapal");
const u16 gPokedexBgNational_Pal[] = INCBIN_U16("graphics/pokedex/bg_national.gbapal");
const u32 gPokedexMenu_Gfx[] = INCBIN_U32("graphics/pokedex/menu.4bpp.lz");
const u32 gPokedexMenu2_Gfx[] = INCBIN_U32("graphics/pokedex/menu2.4bpp.lz");
const u32 gPokedexInterface_Gfx[] = INCBIN_U32("graphics/pokedex/interface.4bpp.lz");
const u32 gUnused_PokedexNoBall[] = INCBIN_U32("graphics/pokedex/noball_unused.4bpp.lz");
const u32 gPokedexTilemap_StartMenu1[] = INCBIN_U32("graphics/pokedex/tilemap1.bin.lz");
const u32 gPokedexTilemap_StartMenu2[] = INCBIN_U32("graphics/pokedex/tilemap2.bin.lz");
const u32 gPokedexTilemap_Main[] = INCBIN_U32("graphics/pokedex/tilemap3.bin.lz");
const u32 gPokedexTilemap_MainUnderlay[] = INCBIN_U32("graphics/pokedex/tilemap4.bin.lz");
const u32 gPokedexTilemap_SizeScreen[] = INCBIN_U32("graphics/pokedex/tilemap5.bin.lz");
const u32 gPokedexTilemap_ScreenSelectBar1[] = INCBIN_U32("graphics/pokedex/tilemap6.bin.lz");
const u32 gPokedexTilemap_ScreenSelectBar2[] = INCBIN_U32("graphics/pokedex/tilemap7.bin.lz");
const u32 gPokedexTilemap_DescriptionScreen[] = INCBIN_U32("graphics/pokedex/tilemap8.bin.lz");
const u32 gPokedexTilemap_CryScreen[] = INCBIN_U32("graphics/pokedex/tilemap9.bin.lz");
const u32 gPokedexStartMenuMain_Tilemap[] = INCBIN_U32("graphics/pokedex/start_menu_main.bin.lz");
const u32 gPokedexStartMenuSearchResults_Tilemap[] = INCBIN_U32("graphics/pokedex/start_menu_search_results.bin.lz");
const u32 gPokedexList_Tilemap[] = INCBIN_U32("graphics/pokedex/list.bin.lz");
const u32 gPokedexListUnderlay_Tilemap[] = INCBIN_U32("graphics/pokedex/list_underlay.bin.lz");
const u32 gPokedexSizeScreen_Tilemap[] = INCBIN_U32("graphics/pokedex/size_screen.bin.lz");
const u32 gPokedexScreenSelectBarMain_Tilemap[] = INCBIN_U32("graphics/pokedex/screen_select_bar_main.bin.lz");
const u32 gPokedexScreenSelectBarSubmenu_Tilemap[] = INCBIN_U32("graphics/pokedex/screen_select_bar_submenu.bin.lz");
const u32 gPokedexInfoScreen_Tilemap[] = INCBIN_U32("graphics/pokedex/info_screen.bin.lz");
const u32 gPokedexCryScreen_Tilemap[] = INCBIN_U32("graphics/pokedex/cry_screen.bin.lz");
const u16 gPokedexSearchMenu_Pal[] = INCBIN_U16("graphics/pokedex/search_menu.gbapal");
const u32 gPokedexSearchMenu_Gfx[] = INCBIN_U32("graphics/pokedex/search_menu.4bpp.lz");
const u32 gPokedexSearch1_Tilemap[] = INCBIN_U32("graphics/pokedex/search1.bin.lz");
const u32 gPokedexSearch2_Tilemap[] = INCBIN_U32("graphics/pokedex/search2.bin.lz");
const u32 gPokedexSearchMenuNational_Tilemap[] = INCBIN_U32("graphics/pokedex/search_menu_national.bin.lz");
const u32 gPokedexSearchMenuHoenn_Tilemap[] = INCBIN_U32("graphics/pokedex/search_menu_hoenn.bin.lz");
const u16 gSummaryScreenPowAcc_Tilemap[] = INCBIN_U16("graphics/interface/powacc_tilemap.bin");
+2680 -2318
View File
File diff suppressed because it is too large. Load diff
+21 -19
View File
@@ -66,7 +66,7 @@ struct PokeDexAreaScreen
/*0x6E0*/ u16 numAreaMarkerSprites;
/*0x6E2*/ u16 unk6E2;
/*0x6E4*/ u16 unk6E4;
/*0x6E8*/ u8 *errno;
/*0x6E8*/ u8 *screenSwitchState;
/*0x6EC*/ struct RegionMap regionMap;
/*0xF70*/ u8 charBuffer[0x40];
/*0xFB0*/ struct Sprite * areaUnknownSprites[3];
@@ -83,11 +83,11 @@ static u16 GetRegionMapSectionId(u8, u8);
static bool8 MapHasMon(const struct WildPokemonHeader *, u16);
static bool8 MonListHasMon(const struct WildPokemonInfo *, u16, u16);
static void DoAreaGlow(void);
static void Task_PokedexAreaScreen_0(u8);
static void Task_ShowPokedexAreaScreen(u8);
static void CreateAreaMarkerSprites(void);
static void LoadAreaUnknownGraphics(void);
static void CreateAreaUnknownSprites(void);
static void Task_PokedexAreaScreen_1(u8);
static void Task_HandlePokedexAreaScreenInput(u8);
static void sub_813D6B4(void);
static void DestroyAreaMarkerSprites(void);
@@ -637,21 +637,23 @@ static void DoAreaGlow(void)
}
}
void ShowPokedexAreaScreen(u16 species, u8 *errno)
#define tState data[0]
void ShowPokedexAreaScreen(u16 species, u8 *screenSwitchState)
{
u8 taskId;
sPokedexAreaScreen = AllocZeroed(sizeof(*sPokedexAreaScreen));
sPokedexAreaScreen->species = species;
sPokedexAreaScreen->errno = errno;
errno[0] = 0;
taskId = CreateTask(Task_PokedexAreaScreen_0, 0);
gTasks[taskId].data[0] = 0;
sPokedexAreaScreen->screenSwitchState = screenSwitchState;
screenSwitchState[0] = 0;
taskId = CreateTask(Task_ShowPokedexAreaScreen, 0);
gTasks[taskId].tState = 0;
}
static void Task_PokedexAreaScreen_0(u8 taskId)
static void Task_ShowPokedexAreaScreen(u8 taskId)
{
switch (gTasks[taskId].data[0])
switch (gTasks[taskId].tState)
{
case 0:
ResetSpriteData();
@@ -702,21 +704,21 @@ static void Task_PokedexAreaScreen_0(u8 taskId)
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON);
break;
case 11:
gTasks[taskId].func = Task_PokedexAreaScreen_1;
gTasks[taskId].data[0] = 0;
gTasks[taskId].func = Task_HandlePokedexAreaScreenInput;
gTasks[taskId].tState = 0;
return;
}
gTasks[taskId].data[0]++;
gTasks[taskId].tState++;
}
static void Task_PokedexAreaScreen_1(u8 taskId)
static void Task_HandlePokedexAreaScreenInput(u8 taskId)
{
DoAreaGlow();
switch (gTasks[taskId].data[0])
switch (gTasks[taskId].tState)
{
default:
gTasks[taskId].data[0] = 0;
gTasks[taskId].tState = 0;
// fall through
case 0:
if (gPaletteFade.active)
@@ -737,13 +739,13 @@ static void Task_PokedexAreaScreen_1(u8 taskId)
return;
break;
case 2:
BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 16, RGB(0, 0, 0));
BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 16, RGB_BLACK);
break;
case 3:
if (gPaletteFade.active)
return;
DestroyAreaMarkerSprites();
sPokedexAreaScreen->errno[0] = gTasks[taskId].data[1];
sPokedexAreaScreen->screenSwitchState[0] = gTasks[taskId].data[1];
sub_813D6B4();
DestroyTask(taskId);
sub_81C4EB4();
@@ -751,7 +753,7 @@ static void Task_PokedexAreaScreen_1(u8 taskId)
return;
}
gTasks[taskId].data[0]++;
gTasks[taskId].tState++;
}
static void sub_813D6B4(void)
+87 -87
View File
@@ -29,14 +29,14 @@ struct PokedexCryScreen
u8 unk1B;
};
static void sub_8145588(u16);
static void PlayCryScreenCry(u16);
static void sub_81455A8(void);
static void sub_814560C(void);
static void DrawWaveformFlatline(void);
static void sub_8145648(u8);
static void sub_81456A8(u8, u8);
static void DrawWaveformSegment(u8, u8);
static void sub_8145814(u8);
static void sub_8145824(u8, s16, u8);
static void sub_814596C(struct Sprite *);
static void SpriteCB_CryMeterNeedle(struct Sprite *);
static void sub_8145B24(s8);
// IWRAM common
@@ -47,12 +47,12 @@ static EWRAM_DATA struct PokedexCryScreen *sDexCryScreen = NULL;
static EWRAM_DATA u8 *sCryWaveformWindowTiledata = NULL;
static EWRAM_DATA struct PokedexCryVolumeMeter *sCryVolumeMeter = NULL;
const u16 CryMeterNeedlePalette[] = INCBIN_U16("graphics/pokedex/cry_meter_needle.gbapal");
const u8 CryMeterNeedleTiles[] = INCBIN_U8("graphics/pokedex/cry_meter_needle.4bpp");
static const u16 sCryMeterNeedle_Pal[] = INCBIN_U16("graphics/pokedex/cry_meter_needle.gbapal");
static const u8 sCryMeterNeedle_Gfx[] = INCBIN_U8("graphics/pokedex/cry_meter_needle.4bpp");
const u16 gUnknown_085B8378[] = INCBIN_U16("graphics/pokedex/cry_meter_map.bin");
const u16 gUnknown_085B8418[] = INCBIN_U16("graphics/pokedex/cry_meter.gbapal");
const u8 gUnknown_085B8438[] = INCBIN_U8("graphics/pokedex/cry_meter.4bpp.lz");
static const u16 sCryMeter_Tilemap[] = INCBIN_U16("graphics/pokedex/cry_meter_map.bin"); // Unused
static const u16 sCryMeter_Pal[] = INCBIN_U16("graphics/pokedex/cry_meter.gbapal");
static const u8 sCryMeter_Gfx[] = INCBIN_U8("graphics/pokedex/cry_meter.4bpp.lz");
const u16 gUnknown_085B8770[][72] =
{
@@ -139,8 +139,8 @@ const u16 gUnknown_085B8770[][72] =
}
};
const u16 gUnknown_085B8BF0[] = INCBIN_U16("graphics/pokedex/85B8C10.gbapal");
const u8 gUnknown_085B8C10[] = INCBIN_U8("graphics/pokedex/85B8C10.4bpp");
static const u16 sCryScreenBg_Pal[] = INCBIN_U16("graphics/pokedex/85B8C10.gbapal");
static const u8 sCryScreenBg_Gfx[] = INCBIN_U8("graphics/pokedex/85B8C10.4bpp");
const u8 gUnknown_085B8C30[] = {0xF0, 0x0F};
const u8 gUnknown_085B8C32[][16] =
@@ -154,18 +154,18 @@ const u8 gUnknown_085B8C32[][16] =
}
};
const union AnimCmd gSpriteAnim_85B8C54[] =
static const union AnimCmd sSpriteAnim_CryMeterNeedle[] =
{
ANIMCMD_FRAME(0, 30),
ANIMCMD_END
};
const union AnimCmd *const gSpriteAnimTable_85B8C5C[] =
static const union AnimCmd *const sSpriteAnimTable_CryMeterNeedle[] =
{
gSpriteAnim_85B8C54
sSpriteAnim_CryMeterNeedle
};
const struct OamData gOamData_85B8C60 =
static const struct OamData sOamData_CryMeterNeedle =
{
.y = 160,
.affineMode = ST_OAM_AFFINE_NORMAL,
@@ -179,33 +179,33 @@ const struct OamData gOamData_85B8C60 =
.paletteNum = 0,
};
const struct SpriteTemplate gUnknown_085B8C68 =
static const struct SpriteTemplate sCryMeterNeedleSpriteTemplate =
{
0x2000,
0x2000,
&gOamData_85B8C60,
gSpriteAnimTable_85B8C5C,
NULL,
gDummySpriteAffineAnimTable,
sub_814596C
.tileTag = 0x2000,
.paletteTag = 0x2000,
.oam = &sOamData_CryMeterNeedle,
.anims = sSpriteAnimTable_CryMeterNeedle,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_CryMeterNeedle
};
const struct SpriteSheet gCryMeterNeedleSpriteSheets[] =
static const struct SpriteSheet sCryMeterNeedleSpriteSheets[] =
{
{CryMeterNeedleTiles, 0x800, 0x2000},
{sCryMeterNeedle_Gfx, 0x800, 0x2000},
{}
};
const struct SpritePalette gCryMeterNeedleSpritePalettes[] =
static const struct SpritePalette sCryMeterNeedleSpritePalettes[] =
{
{CryMeterNeedlePalette, 0x2000},
{sCryMeterNeedle_Pal, 0x2000},
{}
};
bool8 sub_8145354(struct CryRelatedStruct *arg0, u8 windowId)
bool8 LoadCryWaveformWindow(struct CryRelatedStruct *arg0, u8 windowId)
{
u8 i;
u8 retVal = FALSE;
u8 finished = FALSE;
switch (gDexCryScreenState)
{
@@ -225,27 +225,27 @@ bool8 sub_8145354(struct CryRelatedStruct *arg0, u8 windowId)
sDexCryScreen->unk11 = 0;
sub_8145824(windowId, -8 * arg0->xPos, 1);
for (i = 0; i < 224; i++)
CopyToWindowPixelBuffer(windowId, gUnknown_085B8C10, TILE_SIZE_4BPP, i);
CopyToWindowPixelBuffer(windowId, sCryScreenBg_Gfx, TILE_SIZE_4BPP, i);
gDexCryScreenState++;
break;
case 1:
for (i = 0; i < sDexCryScreen->unk16 * 8; i++)
sub_81456A8(i, 0);
DrawWaveformSegment(i, 0);
gDexCryScreenState++;
break;
case 2:
sub_8145814(windowId);
LoadPalette(gUnknown_085B8BF0, arg0->paletteNo * 16, 32);
retVal = TRUE;
LoadPalette(sCryScreenBg_Pal, arg0->paletteNo * 16, 32);
finished = TRUE;
break;
}
return retVal;
return finished;
}
void sub_814545C(u8 windowId)
void UpdateCryWaveformWindow(u8 windowId)
{
u8 var0;
@@ -259,15 +259,15 @@ void sub_814545C(u8 windowId)
sDexCryScreen->unk1A--;
if (!sDexCryScreen->unk1A)
{
sub_8145588(sDexCryScreen->species);
sub_814560C();
PlayCryScreenCry(sDexCryScreen->species);
DrawWaveformFlatline();
return;
}
}
if (sDexCryScreen->unk10 == 0)
{
sub_814560C();
DrawWaveformFlatline();
return;
}
@@ -279,7 +279,7 @@ void sub_814545C(u8 windowId)
{
if (!IsCryPlaying())
{
sub_814560C();
DrawWaveformFlatline();
sDexCryScreen->unk10 = 0;
return;
}
@@ -289,12 +289,12 @@ void sub_814545C(u8 windowId)
}
var0 = 2 * (sDexCryScreen->unk10 - 1);
sub_81456A8(sDexCryScreen->unk16 * 8 + sDexCryScreen->unk11 - 2, sDexCryScreen->unk0[var0]);
sub_81456A8(sDexCryScreen->unk16 * 8 + sDexCryScreen->unk11 - 1, sDexCryScreen->unk0[var0 + 1]);
DrawWaveformSegment(sDexCryScreen->unk16 * 8 + sDexCryScreen->unk11 - 2, sDexCryScreen->unk0[var0]);
DrawWaveformSegment(sDexCryScreen->unk16 * 8 + sDexCryScreen->unk11 - 1, sDexCryScreen->unk0[var0 + 1]);
sDexCryScreen->unk10++;
}
void sub_8145534(u16 species)
void CryScreenPlayButton(u16 species)
{
if (gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_PAUSE && !sDexCryScreen->unk1A)
{
@@ -309,13 +309,13 @@ void sub_8145534(u16 species)
}
else
{
sub_8145588(species);
PlayCryScreenCry(species);
}
}
}
}
static void sub_8145588(u16 species)
static void PlayCryScreenCry(u16 species)
{
PlayCry2(species, 0, 0x7d, 10);
sDexCryScreen->unk10 = 1;
@@ -333,14 +333,14 @@ static void sub_81455A8(void)
baseBuffer = gSoundInfo.pcmBuffer + (gSoundInfo.pcmDmaPeriod + 1 - gPcmDmaCounter) * gSoundInfo.pcmSamplesPerVBlank;
buffer = baseBuffer + 0x630;
for (i = 0; i < 16; i++)
for (i = 0; i < ARRAY_COUNT(sDexCryScreen->unk0); i++)
sDexCryScreen->unk0[i] = buffer[i * 2] * 2;
}
static void sub_814560C(void)
static void DrawWaveformFlatline(void)
{
sub_81456A8(sDexCryScreen->unk16 * 8 + sDexCryScreen->unk11 - 2, 0);
sub_81456A8(sDexCryScreen->unk16 * 8 + sDexCryScreen->unk11 - 1, 0);
DrawWaveformSegment(sDexCryScreen->unk16 * 8 + sDexCryScreen->unk11 - 2, 0);
DrawWaveformSegment(sDexCryScreen->unk16 * 8 + sDexCryScreen->unk11 - 1, 0);
}
static void sub_8145648(u8 windowId)
@@ -352,10 +352,10 @@ static void sub_8145648(u8 windowId)
sDexCryScreen->unk11 += 2;
offset = (sDexCryScreen->unk11 / 8 + sDexCryScreen->unk16 + 1) % 32;
for (i = 0; i < 7; i++)
CopyToWindowPixelBuffer(windowId, gUnknown_085B8C10, TILE_SIZE_4BPP, offset + (i * TILE_SIZE_4BPP));
CopyToWindowPixelBuffer(windowId, sCryScreenBg_Gfx, TILE_SIZE_4BPP, offset + (i * TILE_SIZE_4BPP));
}
static void sub_81456A8(u8 a0, u8 a1)
static void DrawWaveformSegment(u8 a0, u8 a1)
{
u8 sp0;
u8 r6;
@@ -408,9 +408,9 @@ static void sub_8145824(u8 windowId, s16 arg1, u8 arg2)
}
}
bool8 sub_8145850(struct CryRelatedStruct *arg0, u8 windowId)
bool8 LoadCryMeter(struct CryRelatedStruct *arg0, u8 windowId)
{
int retVal = FALSE;
bool8 finished = FALSE;
switch (gDexCryScreenState)
{
@@ -418,25 +418,25 @@ bool8 sub_8145850(struct CryRelatedStruct *arg0, u8 windowId)
if (!sCryVolumeMeter)
sCryVolumeMeter = AllocZeroed(sizeof(*sCryVolumeMeter));
CopyToWindowPixelBuffer(windowId, gUnknown_085B8438, 0, 0);
LoadPalette(gUnknown_085B8418, arg0->paletteNo * 16, 32);
CopyToWindowPixelBuffer(windowId, sCryMeter_Gfx, 0, 0);
LoadPalette(sCryMeter_Pal, arg0->paletteNo * 16, 32);
gDexCryScreenState++;
break;
case 1:
LoadSpriteSheets(gCryMeterNeedleSpriteSheets);
LoadSpritePalettes(gCryMeterNeedleSpritePalettes);
sCryVolumeMeter->needleSpriteId = CreateSprite(&gUnknown_085B8C68, 40 + arg0->xPos * 8, 56 + arg0->yPos * 8, 1);
sCryVolumeMeter->unk0 = 0x20;
sCryVolumeMeter->unk1 = 0x20;
LoadSpriteSheets(sCryMeterNeedleSpriteSheets);
LoadSpritePalettes(sCryMeterNeedleSpritePalettes);
sCryVolumeMeter->needleSpriteId = CreateSprite(&sCryMeterNeedleSpriteTemplate, 40 + arg0->xPos * 8, 56 + arg0->yPos * 8, 1);
sCryVolumeMeter->unk0 = 32;
sCryVolumeMeter->unk1 = 32;
sCryVolumeMeter->unk2 = 0;
retVal = TRUE;
finished = TRUE;
break;
}
return retVal;
return finished;
}
void sub_8145914(void)
void FreeCryScreen(void)
{
FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[sCryVolumeMeter->needleSpriteId].oam.paletteNum));
DestroySprite(gSprites + sCryVolumeMeter->needleSpriteId);
@@ -444,7 +444,7 @@ void sub_8145914(void)
FREE_AND_SET_NULL(sCryVolumeMeter);
}
static void sub_814596C(struct Sprite *sprite)
static void SpriteCB_CryMeterNeedle(struct Sprite *sprite)
{
u16 i;
s8 r3;
@@ -458,29 +458,29 @@ static void sub_814596C(struct Sprite *sprite)
gSprites[sCryVolumeMeter->needleSpriteId].oam.affineParam = 0;
switch (sDexCryScreen->unk10)
{
case 0:
sCryVolumeMeter->unk1 = 0x20;
if (sCryVolumeMeter->unk0 > 0)
{
if (sCryVolumeMeter->unk2 != 1)
sCryVolumeMeter->unk2--;
}
else
sCryVolumeMeter->unk2 = 5;
break;
case 2:
r3 = 0;
for (i = 0; i < 16; i++)
{
if (r3 < sDexCryScreen->unk0[i])
r3 = sDexCryScreen->unk0[i];
}
sub_8145B24(r3 * 0xd0 / 0x100);
break;
case 6:
var0 = &sDexCryScreen->unk0[10];
sub_8145B24(*var0 * 0xd0 / 0x100);
break;
case 0:
sCryVolumeMeter->unk1 = 32;
if (sCryVolumeMeter->unk0 > 0)
{
if (sCryVolumeMeter->unk2 != 1)
sCryVolumeMeter->unk2--;
}
else
sCryVolumeMeter->unk2 = 5;
break;
case 2:
r3 = 0;
for (i = 0; i < ARRAY_COUNT(sDexCryScreen->unk0); i++)
{
if (r3 < sDexCryScreen->unk0[i])
r3 = sDexCryScreen->unk0[i];
}
sub_8145B24(r3 * 0xd0 / 0x100);
break;
case 6:
var0 = &sDexCryScreen->unk0[10];
sub_8145B24(*var0 * 0xd0 / 0x100);
break;
}
if (sCryVolumeMeter->unk0 == sCryVolumeMeter->unk1)
@@ -512,7 +512,7 @@ static void sub_814596C(struct Sprite *sprite)
ObjAffineSet(&affine, &matrix, 1, 2);
SetOamMatrix(0, matrix.a, matrix.b, matrix.c, matrix.d);
x = gSineTable[((sCryVolumeMeter->unk0 + 0x7F) & 0xFF)];
y = gSineTable[((sCryVolumeMeter->unk0 + 0x7F) & 0xFF) + 0x40];
y = gSineTable[((sCryVolumeMeter->unk0 + 0x7F) & 0xFF) + 64];
sprite->pos2.x = x * 24 / 256;
sprite->pos2.y = y * 24 / 256;
}
+1 -1
View File
@@ -603,7 +603,7 @@ static bool8 StartMenuPokedexCallback(void)
PlayRainStoppingSoundEffect();
RemoveExtraStartMenuWindows();
CleanupOverworldWindowsAndTilemaps();
SetMainCallback2(CB2_Pokedex);
SetMainCallback2(CB2_OpenPokedex);
return TRUE;
}