mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-25 03:04:15 +01:00
Decompile pokedex_cry_screen.c (#406)
This commit is contained in:
parent
9fafa63743
commit
0148e38973
File diff suppressed because it is too large
Load Diff
@ -1,110 +0,0 @@
|
|||||||
|
|
||||||
.include "asm/macros.inc"
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.section .rodata
|
|
||||||
|
|
||||||
.align 2
|
|
||||||
CryMeterNeedlePalette: @ 85B7B58
|
|
||||||
.incbin "graphics/pokedex/cry_meter_needle.gbapal"
|
|
||||||
|
|
||||||
.align 2
|
|
||||||
CryMeterNeedleTiles: @ 85B7B78
|
|
||||||
.incbin "graphics/pokedex/cry_meter_needle.4bpp"
|
|
||||||
|
|
||||||
.align 1
|
|
||||||
gUnknown_085B8378:: @ 85B8378
|
|
||||||
.incbin "graphics/pokedex/cry_meter_map.bin"
|
|
||||||
|
|
||||||
.align 1
|
|
||||||
gUnknown_085B8418:: @ 85B8418
|
|
||||||
.incbin "graphics/pokedex/cry_meter.gbapal"
|
|
||||||
|
|
||||||
.align 2
|
|
||||||
gUnknown_085B8438:: @ 85B8438
|
|
||||||
.incbin "graphics/pokedex/cry_meter.4bpp.lz"
|
|
||||||
|
|
||||||
.align 1
|
|
||||||
gUnknown_085B8770:: @ 85B8770
|
|
||||||
.2byte 0x0,0x4,0x8,0xC,0x10,0x14,0x18,0x1C,0x400,0x404,0x408,0x40C,0x410,0x414,0x418,0x41C,0x800,0x804,0x808,0x80C,0x810,0x814,0x818,0x81C,0xC00,0xC04,0xC08,0xC0C,0xC10,0xC14,0xC18,0xC1C,0x1000,0x1004,0x1008,0x100C,0x1010,0x1014,0x1018,0x101C,0x1400,0x1404,0x1408,0x140C,0x1410,0x1414,0x1418,0x141C,0x1800,0x1804,0x1808,0x180C,0x1810,0x1814,0x1818,0x181C,0x1C00,0x1C04,0x1C08,0x1C0C,0x1C10,0x1C14,0x1C18,0x1C1C,0x2000,0x2004,0x2008,0x200C,0x2010,0x2014,0x2018,0x201C
|
|
||||||
.2byte 0x0,0x4,0x8,0xC,0x10,0x14,0x18,0x1C,0x400,0x404,0x408,0x40C,0x410,0x414,0x418,0x41C,0x800,0x804,0x808,0x80C,0x810,0x814,0x818,0x81C,0xC00,0xC04,0xC08,0xC0C,0xC10,0xC14,0xC18,0xC1C,0x1000,0x1004,0x1008,0x100C,0x1010,0x1014,0x1018,0x101C,0x1400,0x1404,0x1408,0x140C,0x1410,0x1414,0x1418,0x141C,0x1800,0x1804,0x1808,0x180C,0x1810,0x1814,0x1818,0x181C,0x1C00,0x1C04,0x1C08,0x1C0C,0x1C10,0x1C14,0x1C18,0x1C1C,0x2000,0x2004,0x2008,0x200C,0x2010,0x2014,0x2018,0x201C
|
|
||||||
.2byte 0x1,0x5,0x9,0xD,0x11,0x15,0x19,0x1D,0x401,0x405,0x409,0x40D,0x411,0x415,0x419,0x41D,0x801,0x805,0x809,0x80D,0x811,0x815,0x819,0x81D,0xC01,0xC05,0xC09,0xC0D,0xC11,0xC15,0xC19,0xC1D,0x1001,0x1005,0x1009,0x100D,0x1011,0x1015,0x1019,0x101D,0x1401,0x1405,0x1409,0x140D,0x1411,0x1415,0x1419,0x141D,0x1801,0x1805,0x1809,0x180D,0x1811,0x1815,0x1819,0x181D,0x1C01,0x1C05,0x1C09,0x1C0D,0x1C11,0x1C15,0x1C19,0x1C1D,0x2001,0x2005,0x2009,0x200D,0x2011,0x2015,0x2019,0x201D
|
|
||||||
.2byte 0x1,0x5,0x9,0xD,0x11,0x15,0x19,0x1D,0x401,0x405,0x409,0x40D,0x411,0x415,0x419,0x41D,0x801,0x805,0x809,0x80D,0x811,0x815,0x819,0x81D,0xC01,0xC05,0xC09,0xC0D,0xC11,0xC15,0xC19,0xC1D,0x1001,0x1005,0x1009,0x100D,0x1011,0x1015,0x1019,0x101D,0x1401,0x1405,0x1409,0x140D,0x1411,0x1415,0x1419,0x141D,0x1801,0x1805,0x1809,0x180D,0x1811,0x1815,0x1819,0x181D,0x1C01,0x1C05,0x1C09,0x1C0D,0x1C11,0x1C15,0x1C19,0x1C1D,0x2001,0x2005,0x2009,0x200D,0x2011,0x2015,0x2019,0x201D
|
|
||||||
.2byte 0x2,0x6,0xA,0xE,0x12,0x16,0x1A,0x1E,0x402,0x406,0x40A,0x40E,0x412,0x416,0x41A,0x41E,0x802,0x806,0x80A,0x80E,0x812,0x816,0x81A,0x81E,0xC02,0xC06,0xC0A,0xC0E,0xC12,0xC16,0xC1A,0xC1E,0x1002,0x1006,0x100A,0x100E,0x1012,0x1016,0x101A,0x101E,0x1402,0x1406,0x140A,0x140E,0x1412,0x1416,0x141A,0x141E,0x1802,0x1806,0x180A,0x180E,0x1812,0x1816,0x181A,0x181E,0x1C02,0x1C06,0x1C0A,0x1C0E,0x1C12,0x1C16,0x1C1A,0x1C1E,0x2002,0x2006,0x200A,0x200E,0x2012,0x2016,0x201A,0x201E
|
|
||||||
.2byte 0x2,0x6,0xA,0xE,0x12,0x16,0x1A,0x1E,0x402,0x406,0x40A,0x40E,0x412,0x416,0x41A,0x41E,0x802,0x806,0x80A,0x80E,0x812,0x816,0x81A,0x81E,0xC02,0xC06,0xC0A,0xC0E,0xC12,0xC16,0xC1A,0xC1E,0x1002,0x1006,0x100A,0x100E,0x1012,0x1016,0x101A,0x101E,0x1402,0x1406,0x140A,0x140E,0x1412,0x1416,0x141A,0x141E,0x1802,0x1806,0x180A,0x180E,0x1812,0x1816,0x181A,0x181E,0x1C02,0x1C06,0x1C0A,0x1C0E,0x1C12,0x1C16,0x1C1A,0x1C1E,0x2002,0x2006,0x200A,0x200E,0x2012,0x2016,0x201A,0x201E
|
|
||||||
.2byte 0x3,0x7,0xB,0xF,0x13,0x17,0x1B,0x1F,0x403,0x407,0x40B,0x40F,0x413,0x417,0x41B,0x41F,0x803,0x807,0x80B,0x80F,0x813,0x817,0x81B,0x81F,0xC03,0xC07,0xC0B,0xC0F,0xC13,0xC17,0xC1B,0xC1F,0x1003,0x1007,0x100B,0x100F,0x1013,0x1017,0x101B,0x101F,0x1403,0x1407,0x140B,0x140F,0x1413,0x1417,0x141B,0x141F,0x1803,0x1807,0x180B,0x180F,0x1813,0x1817,0x181B,0x181F,0x1C03,0x1C07,0x1C0B,0x1C0F,0x1C13,0x1C17,0x1C1B,0x1C1F,0x2003,0x2007,0x200B,0x200F,0x2013,0x2017,0x201B,0x201F
|
|
||||||
.2byte 0x3,0x7,0xB,0xF,0x13,0x17,0x1B,0x1F,0x403,0x407,0x40B,0x40F,0x413,0x417,0x41B,0x41F,0x803,0x807,0x80B,0x80F,0x813,0x817,0x81B,0x81F,0xC03,0xC07,0xC0B,0xC0F,0xC13,0xC17,0xC1B,0xC1F,0x1003,0x1007,0x100B,0x100F,0x1013,0x1017,0x101B,0x101F,0x1403,0x1407,0x140B,0x140F,0x1413,0x1417,0x141B,0x141F,0x1803,0x1807,0x180B,0x180F,0x1813,0x1817,0x181B,0x181F,0x1C03,0x1C07,0x1C0B,0x1C0F,0x1C13,0x1C17,0x1C1B,0x1C1F,0x2003,0x2007,0x200B,0x200F,0x2013,0x2017,0x201B,0x201F
|
|
||||||
|
|
||||||
.align 1
|
|
||||||
gUnknown_085B8BF0:: @ 85B8BF0
|
|
||||||
.incbin "graphics/pokedex/85B8BF0.gbapal"
|
|
||||||
|
|
||||||
gUnknown_085B8C10:: @ 85B8C10
|
|
||||||
.byte 0x11
|
|
||||||
.byte 0x11
|
|
||||||
.byte 0x11
|
|
||||||
.byte 0x11
|
|
||||||
.byte 0x22
|
|
||||||
.byte 0x22
|
|
||||||
.byte 0x22
|
|
||||||
.byte 0x22
|
|
||||||
.byte 0x11
|
|
||||||
.byte 0x11
|
|
||||||
.byte 0x11
|
|
||||||
.byte 0x11
|
|
||||||
.byte 0x22
|
|
||||||
.byte 0x22
|
|
||||||
.byte 0x22
|
|
||||||
.byte 0x22
|
|
||||||
.byte 0x11
|
|
||||||
.byte 0x11
|
|
||||||
.byte 0x11
|
|
||||||
.byte 0x11
|
|
||||||
.byte 0x22
|
|
||||||
.byte 0x22
|
|
||||||
.byte 0x22
|
|
||||||
.byte 0x22
|
|
||||||
.byte 0x11
|
|
||||||
.byte 0x11
|
|
||||||
.byte 0x11
|
|
||||||
.byte 0x11
|
|
||||||
.byte 0x22
|
|
||||||
.byte 0x22
|
|
||||||
.byte 0x22
|
|
||||||
.byte 0x22
|
|
||||||
|
|
||||||
gUnknown_085B8C30:: @ 85B8C30
|
|
||||||
.byte 0xF0, 0x0F
|
|
||||||
|
|
||||||
gUnknown_085B8C32:: @ 85B8C32
|
|
||||||
.byte 0x0F,0x0E,0x0D,0x0C,0x0B,0x0A,0x09,0x08,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F
|
|
||||||
.byte 0xF0,0xE0,0xD0,0xC0,0xB0,0xA0,0x90,0x80,0x80,0x90,0xA0,0xB0,0xC0,0xD0,0xE0,0xF0
|
|
||||||
|
|
||||||
.align 2
|
|
||||||
gSpriteAnim_85B8C54:: @ 85B8C54
|
|
||||||
obj_image_anim_frame 0, 30
|
|
||||||
obj_image_anim_end
|
|
||||||
|
|
||||||
.align 2
|
|
||||||
gSpriteAnimTable_85B8C5C:: @ 85B8C5C
|
|
||||||
.4byte gSpriteAnim_85B8C54
|
|
||||||
|
|
||||||
.align 2
|
|
||||||
gOamData_85B8C60:: @ 85B8C60
|
|
||||||
.2byte 0x01A0
|
|
||||||
.2byte 0xC000
|
|
||||||
.2byte 0x0400
|
|
||||||
|
|
||||||
.align 2
|
|
||||||
gUnknown_085B8C68:: @ 85B8C68
|
|
||||||
spr_template 8192, 8192, gOamData_85B8C60, gSpriteAnimTable_85B8C5C, NULL, gDummySpriteAffineAnimTable, sub_814596C
|
|
||||||
|
|
||||||
.align 2
|
|
||||||
gCryMeterNeedleSpriteSheets:: @ 85B8C80
|
|
||||||
obj_tiles CryMeterNeedleTiles, 0x800, 8192
|
|
||||||
null_obj_tiles
|
|
||||||
|
|
||||||
.align 2
|
|
||||||
gCryMeterNeedleSpritePalettes:: @ 85B8C90
|
|
||||||
obj_pal CryMeterNeedlePalette, 8192
|
|
||||||
null_obj_pal
|
|
@ -1,19 +0,0 @@
|
|||||||
JASC-PAL
|
|
||||||
0100
|
|
||||||
16
|
|
||||||
0 0 0
|
|
||||||
0 0 148
|
|
||||||
0 131 131
|
|
||||||
0 0 0
|
|
||||||
0 0 0
|
|
||||||
0 0 0
|
|
||||||
0 0 0
|
|
||||||
0 0 0
|
|
||||||
148 148 255
|
|
||||||
156 156 255
|
|
||||||
172 172 255
|
|
||||||
189 189 255
|
|
||||||
205 205 255
|
|
||||||
222 222 255
|
|
||||||
238 238 255
|
|
||||||
255 255 255
|
|
BIN
graphics/pokedex/85B8C10.png
Executable file
BIN
graphics/pokedex/85B8C10.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 135 B |
@ -51,7 +51,7 @@ extern bool8 gSoftResetDisabled;
|
|||||||
extern IntrFunc gIntrTable[];
|
extern IntrFunc gIntrTable[];
|
||||||
extern u8 gLinkVSyncDisabled;
|
extern u8 gLinkVSyncDisabled;
|
||||||
extern u32 IntrMain_Buffer[];
|
extern u32 IntrMain_Buffer[];
|
||||||
extern u8 gPcmDmaCounter;
|
extern s8 gPcmDmaCounter;
|
||||||
|
|
||||||
void AgbMain(void);
|
void AgbMain(void);
|
||||||
void SetMainCallback2(MainCallback callback);
|
void SetMainCallback2(MainCallback callback);
|
||||||
|
@ -13,7 +13,7 @@ struct CryRelatedStruct
|
|||||||
bool8 sub_8145354(struct CryRelatedStruct*, u8);
|
bool8 sub_8145354(struct CryRelatedStruct*, u8);
|
||||||
void sub_814545C(u8);
|
void sub_814545C(u8);
|
||||||
void sub_8145534(u16);
|
void sub_8145534(u16);
|
||||||
void sub_8145914(void);
|
|
||||||
bool8 sub_8145850(struct CryRelatedStruct*, u8);
|
bool8 sub_8145850(struct CryRelatedStruct*, u8);
|
||||||
|
void sub_8145914(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -206,7 +206,7 @@ SECTIONS {
|
|||||||
asm/pokedex_area_screen.o(.text);
|
asm/pokedex_area_screen.o(.text);
|
||||||
src/evolution_scene.o(.text);
|
src/evolution_scene.o(.text);
|
||||||
asm/roulette.o(.text);
|
asm/roulette.o(.text);
|
||||||
asm/pokedex_cry_screen.o(.text);
|
src/pokedex_cry_screen.o(.text);
|
||||||
src/coins.o(.text);
|
src/coins.o(.text);
|
||||||
src/landmark.o(.text);
|
src/landmark.o(.text);
|
||||||
src/fldeff_strength.o(.text);
|
src/fldeff_strength.o(.text);
|
||||||
@ -522,7 +522,7 @@ SECTIONS {
|
|||||||
data/pokedex_area_screen.o(.rodata);
|
data/pokedex_area_screen.o(.rodata);
|
||||||
src/evolution_scene.o(.rodata);
|
src/evolution_scene.o(.rodata);
|
||||||
data/roulette.o(.rodata);
|
data/roulette.o(.rodata);
|
||||||
data/pokedex_cry_screen.o(.rodata);
|
src/pokedex_cry_screen.o(.rodata);
|
||||||
src/landmark.o(.rodata);
|
src/landmark.o(.rodata);
|
||||||
src/battle_transition.o(.rodata);
|
src/battle_transition.o(.rodata);
|
||||||
src/battle_controller_link_partner.o(.rodata);
|
src/battle_controller_link_partner.o(.rodata);
|
||||||
|
@ -69,7 +69,7 @@ bool8 gSoftResetDisabled;
|
|||||||
IntrFunc gIntrTable[INTR_COUNT];
|
IntrFunc gIntrTable[INTR_COUNT];
|
||||||
u8 gLinkVSyncDisabled;
|
u8 gLinkVSyncDisabled;
|
||||||
u32 IntrMain_Buffer[0x200];
|
u32 IntrMain_Buffer[0x200];
|
||||||
u8 gPcmDmaCounter;
|
s8 gPcmDmaCounter;
|
||||||
|
|
||||||
static EWRAM_DATA u16 gTrainerId = 0;
|
static EWRAM_DATA u16 gTrainerId = 0;
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
#include "constants/species.h"
|
#include "constants/species.h"
|
||||||
|
|
||||||
extern u8 gUnknown_030061EC;
|
extern u8 gDexCryScreenState;
|
||||||
|
|
||||||
// EWRAM
|
// EWRAM
|
||||||
static EWRAM_DATA struct PokedexView *gUnknown_02039B4C = NULL;
|
static EWRAM_DATA struct PokedexView *gUnknown_02039B4C = NULL;
|
||||||
@ -3232,7 +3232,7 @@ void sub_80BF250(u8 taskId)
|
|||||||
case 5:
|
case 5:
|
||||||
gTasks[taskId].data[4] = sub_80C0E9C(gUnknown_02039B54->dexNum, 48, 56, 0);
|
gTasks[taskId].data[4] = sub_80C0E9C(gUnknown_02039B54->dexNum, 48, 56, 0);
|
||||||
gSprites[gTasks[taskId].data[4]].oam.priority = 0;
|
gSprites[gTasks[taskId].data[4]].oam.priority = 0;
|
||||||
gUnknown_030061EC = 0;
|
gDexCryScreenState = 0;
|
||||||
gMain.state++;
|
gMain.state++;
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
@ -3247,7 +3247,7 @@ void sub_80BF250(u8 taskId)
|
|||||||
if (sub_8145354(&sp4, 2) != 0)
|
if (sub_8145354(&sp4, 2) != 0)
|
||||||
{
|
{
|
||||||
gMain.state++;
|
gMain.state++;
|
||||||
gUnknown_030061EC = 0;
|
gDexCryScreenState = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
511
src/pokedex_cry_screen.c
Executable file
511
src/pokedex_cry_screen.c
Executable file
@ -0,0 +1,511 @@
|
|||||||
|
#include "global.h"
|
||||||
|
#include "bg.h"
|
||||||
|
#include "m4a.h"
|
||||||
|
#include "main.h"
|
||||||
|
#include "malloc.h"
|
||||||
|
#include "palette.h"
|
||||||
|
#include "pokedex_cry_screen.h"
|
||||||
|
#include "sound.h"
|
||||||
|
#include "trig.h"
|
||||||
|
#include "window.h"
|
||||||
|
|
||||||
|
struct PokedexCryVolumeMeter {
|
||||||
|
s8 unk0;
|
||||||
|
s8 unk1;
|
||||||
|
u8 unk2;
|
||||||
|
u16 needleSpriteId;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct PokedexCryScreen
|
||||||
|
{
|
||||||
|
u8 unk0[16];
|
||||||
|
u8 unk10;
|
||||||
|
u8 unk11;
|
||||||
|
u8 unk12;
|
||||||
|
u16 unk14;
|
||||||
|
u8 unk16;
|
||||||
|
u16 species;
|
||||||
|
u8 unk1A;
|
||||||
|
u8 unk1B;
|
||||||
|
};
|
||||||
|
|
||||||
|
static void sub_8145588(u16);
|
||||||
|
static void sub_81455A8(void);
|
||||||
|
static void sub_814560C(void);
|
||||||
|
static void sub_8145648(u8);
|
||||||
|
static void sub_81456A8(u8, u8);
|
||||||
|
static void sub_8145814(u8);
|
||||||
|
static void sub_8145824(u8, s16, u8);
|
||||||
|
static void sub_814596C(struct Sprite *);
|
||||||
|
static void sub_8145B24(s8);
|
||||||
|
|
||||||
|
extern u8 gDexCryScreenState;
|
||||||
|
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");
|
||||||
|
|
||||||
|
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");
|
||||||
|
|
||||||
|
const u16 gUnknown_085B8770[][72] = {
|
||||||
|
{
|
||||||
|
0x0000, 0x0004, 0x0008, 0x000C, 0x0010, 0x0014, 0x0018, 0x001C,
|
||||||
|
0x0400, 0x0404, 0x0408, 0x040C, 0x0410, 0x0414, 0x0418, 0x041C,
|
||||||
|
0x0800, 0x0804, 0x0808, 0x080C, 0x0810, 0x0814, 0x0818, 0x081C,
|
||||||
|
0x0C00, 0x0C04, 0x0C08, 0x0C0C, 0x0C10, 0x0C14, 0x0C18, 0x0C1C,
|
||||||
|
0x1000, 0x1004, 0x1008, 0x100C, 0x1010, 0x1014, 0x1018, 0x101C,
|
||||||
|
0x1400, 0x1404, 0x1408, 0x140C, 0x1410, 0x1414, 0x1418, 0x141C,
|
||||||
|
0x1800, 0x1804, 0x1808, 0x180C, 0x1810, 0x1814, 0x1818, 0x181C,
|
||||||
|
0x1C00, 0x1C04, 0x1C08, 0x1C0C, 0x1C10, 0x1C14, 0x1C18, 0x1C1C,
|
||||||
|
0x2000, 0x2004, 0x2008, 0x200C, 0x2010, 0x2014, 0x2018, 0x201C
|
||||||
|
}, {
|
||||||
|
0x0000, 0x0004, 0x0008, 0x000C, 0x0010, 0x0014, 0x0018, 0x001C,
|
||||||
|
0x0400, 0x0404, 0x0408, 0x040C, 0x0410, 0x0414, 0x0418, 0x041C,
|
||||||
|
0x0800, 0x0804, 0x0808, 0x080C, 0x0810, 0x0814, 0x0818, 0x081C,
|
||||||
|
0x0C00, 0x0C04, 0x0C08, 0x0C0C, 0x0C10, 0x0C14, 0x0C18, 0x0C1C,
|
||||||
|
0x1000, 0x1004, 0x1008, 0x100C, 0x1010, 0x1014, 0x1018, 0x101C,
|
||||||
|
0x1400, 0x1404, 0x1408, 0x140C, 0x1410, 0x1414, 0x1418, 0x141C,
|
||||||
|
0x1800, 0x1804, 0x1808, 0x180C, 0x1810, 0x1814, 0x1818, 0x181C,
|
||||||
|
0x1C00, 0x1C04, 0x1C08, 0x1C0C, 0x1C10, 0x1C14, 0x1C18, 0x1C1C,
|
||||||
|
0x2000, 0x2004, 0x2008, 0x200C, 0x2010, 0x2014, 0x2018, 0x201C
|
||||||
|
}, {
|
||||||
|
0x0001, 0x0005, 0x0009, 0x000D, 0x0011, 0x0015, 0x0019, 0x001D,
|
||||||
|
0x0401, 0x0405, 0x0409, 0x040D, 0x0411, 0x0415, 0x0419, 0x041D,
|
||||||
|
0x0801, 0x0805, 0x0809, 0x080D, 0x0811, 0x0815, 0x0819, 0x081D,
|
||||||
|
0x0C01, 0x0C05, 0x0C09, 0x0C0D, 0x0C11, 0x0C15, 0x0C19, 0x0C1D,
|
||||||
|
0x1001, 0x1005, 0x1009, 0x100D, 0x1011, 0x1015, 0x1019, 0x101D,
|
||||||
|
0x1401, 0x1405, 0x1409, 0x140D, 0x1411, 0x1415, 0x1419, 0x141D,
|
||||||
|
0x1801, 0x1805, 0x1809, 0x180D, 0x1811, 0x1815, 0x1819, 0x181D,
|
||||||
|
0x1C01, 0x1C05, 0x1C09, 0x1C0D, 0x1C11, 0x1C15, 0x1C19, 0x1C1D,
|
||||||
|
0x2001, 0x2005, 0x2009, 0x200D, 0x2011, 0x2015, 0x2019, 0x201D
|
||||||
|
}, {
|
||||||
|
0x0001, 0x0005, 0x0009, 0x000D, 0x0011, 0x0015, 0x0019, 0x001D,
|
||||||
|
0x0401, 0x0405, 0x0409, 0x040D, 0x0411, 0x0415, 0x0419, 0x041D,
|
||||||
|
0x0801, 0x0805, 0x0809, 0x080D, 0x0811, 0x0815, 0x0819, 0x081D,
|
||||||
|
0x0C01, 0x0C05, 0x0C09, 0x0C0D, 0x0C11, 0x0C15, 0x0C19, 0x0C1D,
|
||||||
|
0x1001, 0x1005, 0x1009, 0x100D, 0x1011, 0x1015, 0x1019, 0x101D,
|
||||||
|
0x1401, 0x1405, 0x1409, 0x140D, 0x1411, 0x1415, 0x1419, 0x141D,
|
||||||
|
0x1801, 0x1805, 0x1809, 0x180D, 0x1811, 0x1815, 0x1819, 0x181D,
|
||||||
|
0x1C01, 0x1C05, 0x1C09, 0x1C0D, 0x1C11, 0x1C15, 0x1C19, 0x1C1D,
|
||||||
|
0x2001, 0x2005, 0x2009, 0x200D, 0x2011, 0x2015, 0x2019, 0x201D
|
||||||
|
}, {
|
||||||
|
0x0002, 0x0006, 0x000A, 0x000E, 0x0012, 0x0016, 0x001A, 0x001E,
|
||||||
|
0x0402, 0x0406, 0x040A, 0x040E, 0x0412, 0x0416, 0x041A, 0x041E,
|
||||||
|
0x0802, 0x0806, 0x080A, 0x080E, 0x0812, 0x0816, 0x081A, 0x081E,
|
||||||
|
0x0C02, 0x0C06, 0x0C0A, 0x0C0E, 0x0C12, 0x0C16, 0x0C1A, 0x0C1E,
|
||||||
|
0x1002, 0x1006, 0x100A, 0x100E, 0x1012, 0x1016, 0x101A, 0x101E,
|
||||||
|
0x1402, 0x1406, 0x140A, 0x140E, 0x1412, 0x1416, 0x141A, 0x141E,
|
||||||
|
0x1802, 0x1806, 0x180A, 0x180E, 0x1812, 0x1816, 0x181A, 0x181E,
|
||||||
|
0x1C02, 0x1C06, 0x1C0A, 0x1C0E, 0x1C12, 0x1C16, 0x1C1A, 0x1C1E,
|
||||||
|
0x2002, 0x2006, 0x200A, 0x200E, 0x2012, 0x2016, 0x201A, 0x201E
|
||||||
|
}, {
|
||||||
|
0x0002, 0x0006, 0x000A, 0x000E, 0x0012, 0x0016, 0x001A, 0x001E,
|
||||||
|
0x0402, 0x0406, 0x040A, 0x040E, 0x0412, 0x0416, 0x041A, 0x041E,
|
||||||
|
0x0802, 0x0806, 0x080A, 0x080E, 0x0812, 0x0816, 0x081A, 0x081E,
|
||||||
|
0x0C02, 0x0C06, 0x0C0A, 0x0C0E, 0x0C12, 0x0C16, 0x0C1A, 0x0C1E,
|
||||||
|
0x1002, 0x1006, 0x100A, 0x100E, 0x1012, 0x1016, 0x101A, 0x101E,
|
||||||
|
0x1402, 0x1406, 0x140A, 0x140E, 0x1412, 0x1416, 0x141A, 0x141E,
|
||||||
|
0x1802, 0x1806, 0x180A, 0x180E, 0x1812, 0x1816, 0x181A, 0x181E,
|
||||||
|
0x1C02, 0x1C06, 0x1C0A, 0x1C0E, 0x1C12, 0x1C16, 0x1C1A, 0x1C1E,
|
||||||
|
0x2002, 0x2006, 0x200A, 0x200E, 0x2012, 0x2016, 0x201A, 0x201E
|
||||||
|
}, {
|
||||||
|
0x0003, 0x0007, 0x000B, 0x000F, 0x0013, 0x0017, 0x001B, 0x001F,
|
||||||
|
0x0403, 0x0407, 0x040B, 0x040F, 0x0413, 0x0417, 0x041B, 0x041F,
|
||||||
|
0x0803, 0x0807, 0x080B, 0x080F, 0x0813, 0x0817, 0x081B, 0x081F,
|
||||||
|
0x0C03, 0x0C07, 0x0C0B, 0x0C0F, 0x0C13, 0x0C17, 0x0C1B, 0x0C1F,
|
||||||
|
0x1003, 0x1007, 0x100B, 0x100F, 0x1013, 0x1017, 0x101B, 0x101F,
|
||||||
|
0x1403, 0x1407, 0x140B, 0x140F, 0x1413, 0x1417, 0x141B, 0x141F,
|
||||||
|
0x1803, 0x1807, 0x180B, 0x180F, 0x1813, 0x1817, 0x181B, 0x181F,
|
||||||
|
0x1C03, 0x1C07, 0x1C0B, 0x1C0F, 0x1C13, 0x1C17, 0x1C1B, 0x1C1F,
|
||||||
|
0x2003, 0x2007, 0x200B, 0x200F, 0x2013, 0x2017, 0x201B, 0x201F
|
||||||
|
}, {
|
||||||
|
0x0003, 0x0007, 0x000B, 0x000F, 0x0013, 0x0017, 0x001B, 0x001F,
|
||||||
|
0x0403, 0x0407, 0x040B, 0x040F, 0x0413, 0x0417, 0x041B, 0x041F,
|
||||||
|
0x0803, 0x0807, 0x080B, 0x080F, 0x0813, 0x0817, 0x081B, 0x081F,
|
||||||
|
0x0C03, 0x0C07, 0x0C0B, 0x0C0F, 0x0C13, 0x0C17, 0x0C1B, 0x0C1F,
|
||||||
|
0x1003, 0x1007, 0x100B, 0x100F, 0x1013, 0x1017, 0x101B, 0x101F,
|
||||||
|
0x1403, 0x1407, 0x140B, 0x140F, 0x1413, 0x1417, 0x141B, 0x141F,
|
||||||
|
0x1803, 0x1807, 0x180B, 0x180F, 0x1813, 0x1817, 0x181B, 0x181F,
|
||||||
|
0x1C03, 0x1C07, 0x1C0B, 0x1C0F, 0x1C13, 0x1C17, 0x1C1B, 0x1C1F,
|
||||||
|
0x2003, 0x2007, 0x200B, 0x200F, 0x2013, 0x2017, 0x201B, 0x201F
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const u16 gUnknown_085B8BF0[] = INCBIN_U16("graphics/pokedex/85B8C10.gbapal");
|
||||||
|
const u8 gUnknown_085B8C10[] = INCBIN_U8("graphics/pokedex/85B8C10.4bpp");
|
||||||
|
|
||||||
|
const u8 gUnknown_085B8C30[] = {0xF0, 0x0F};
|
||||||
|
const u8 gUnknown_085B8C32[][16] = {
|
||||||
|
{
|
||||||
|
0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08,
|
||||||
|
0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
|
||||||
|
}, {
|
||||||
|
0xF0, 0xE0, 0xD0, 0xC0, 0xB0, 0xA0, 0x90, 0x80,
|
||||||
|
0x80, 0x90, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xF0
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const union AnimCmd gSpriteAnim_85B8C54[] = {
|
||||||
|
ANIMCMD_FRAME(0, 30),
|
||||||
|
ANIMCMD_END
|
||||||
|
};
|
||||||
|
|
||||||
|
const union AnimCmd *const gSpriteAnimTable_85B8C5C[] = {
|
||||||
|
gSpriteAnim_85B8C54
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct OamData gOamData_85B8C60 = {
|
||||||
|
.y = 160,
|
||||||
|
.affineMode = ST_OAM_AFFINE_NORMAL,
|
||||||
|
.size = 3,
|
||||||
|
.priority = 1
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct SpriteTemplate gUnknown_085B8C68 = {
|
||||||
|
0x2000,
|
||||||
|
0x2000,
|
||||||
|
&gOamData_85B8C60,
|
||||||
|
gSpriteAnimTable_85B8C5C,
|
||||||
|
NULL,
|
||||||
|
gDummySpriteAffineAnimTable,
|
||||||
|
sub_814596C
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct SpriteSheet gCryMeterNeedleSpriteSheets[] = {
|
||||||
|
{CryMeterNeedleTiles, 0x800, 0x2000},
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct SpritePalette gCryMeterNeedleSpritePalettes[] = {
|
||||||
|
{CryMeterNeedlePalette, 0x2000},
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
bool8 sub_8145354(struct CryRelatedStruct *arg0, u8 windowId)
|
||||||
|
{
|
||||||
|
u8 i;
|
||||||
|
u8 retVal = FALSE;
|
||||||
|
|
||||||
|
switch (gDexCryScreenState)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
if (!sDexCryScreen)
|
||||||
|
{
|
||||||
|
sDexCryScreen = AllocZeroed(sizeof(*sDexCryScreen));
|
||||||
|
sCryWaveformWindowTiledata = (u8*)GetWindowAttribute(windowId, WINDOW_TILE_DATA);
|
||||||
|
}
|
||||||
|
|
||||||
|
sDexCryScreen->unk14 = arg0->unk0;
|
||||||
|
sDexCryScreen->unk16 = arg0->yPos;
|
||||||
|
sDexCryScreen->unk1A = 0;
|
||||||
|
sDexCryScreen->unk1B = 0;
|
||||||
|
sDexCryScreen->unk10 = 0;
|
||||||
|
sDexCryScreen->unk12 = 28;
|
||||||
|
sDexCryScreen->unk11 = 0;
|
||||||
|
sub_8145824(windowId, -8 * arg0->xPos, 1);
|
||||||
|
for (i = 0; i < 224; i++)
|
||||||
|
CopyToWindowPixelBuffer(windowId, gUnknown_085B8C10, TILE_SIZE_4BPP, i);
|
||||||
|
|
||||||
|
gDexCryScreenState++;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
for (i = 0; i < sDexCryScreen->unk16 * 8; i++)
|
||||||
|
sub_81456A8(i, 0);
|
||||||
|
|
||||||
|
gDexCryScreenState++;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
sub_8145814(windowId);
|
||||||
|
LoadPalette(gUnknown_085B8BF0, arg0->paletteNo * 16, 32);
|
||||||
|
retVal = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_814545C(u8 windowId)
|
||||||
|
{
|
||||||
|
u8 var0;
|
||||||
|
|
||||||
|
sub_8145814(windowId);
|
||||||
|
sub_8145648(windowId);
|
||||||
|
if (sDexCryScreen->unk1B)
|
||||||
|
sDexCryScreen->unk1B--;
|
||||||
|
|
||||||
|
if (sDexCryScreen->unk1A)
|
||||||
|
{
|
||||||
|
sDexCryScreen->unk1A--;
|
||||||
|
if (!sDexCryScreen->unk1A)
|
||||||
|
{
|
||||||
|
sub_8145588(sDexCryScreen->species);
|
||||||
|
sub_814560C();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sDexCryScreen->unk10 == 0)
|
||||||
|
{
|
||||||
|
sub_814560C();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sDexCryScreen->unk10 == 1)
|
||||||
|
{
|
||||||
|
sub_81455A8();
|
||||||
|
}
|
||||||
|
else if (sDexCryScreen->unk10 > 8)
|
||||||
|
{
|
||||||
|
if (!IsCryPlaying())
|
||||||
|
{
|
||||||
|
sub_814560C();
|
||||||
|
sDexCryScreen->unk10 = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub_81455A8();
|
||||||
|
sDexCryScreen->unk10 = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
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]);
|
||||||
|
sDexCryScreen->unk10++;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8145534(u16 species)
|
||||||
|
{
|
||||||
|
if (gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_PAUSE && !sDexCryScreen->unk1A)
|
||||||
|
{
|
||||||
|
if (!sDexCryScreen->unk1B)
|
||||||
|
{
|
||||||
|
sDexCryScreen->unk1B = 4;
|
||||||
|
if (IsCryPlaying() == TRUE)
|
||||||
|
{
|
||||||
|
StopCry();
|
||||||
|
sDexCryScreen->species = species;
|
||||||
|
sDexCryScreen->unk1A = 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sub_8145588(species);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_8145588(u16 species)
|
||||||
|
{
|
||||||
|
PlayCry2(species, 0, 0x7d, 10);
|
||||||
|
sDexCryScreen->unk10 = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_81455A8(void)
|
||||||
|
{
|
||||||
|
u8 i;
|
||||||
|
s8 *baseBuffer;
|
||||||
|
s8 *buffer;
|
||||||
|
|
||||||
|
if (gPcmDmaCounter < 2)
|
||||||
|
baseBuffer = gSoundInfo.pcmBuffer;
|
||||||
|
else
|
||||||
|
baseBuffer = gSoundInfo.pcmBuffer + (gSoundInfo.pcmDmaPeriod + 1 - gPcmDmaCounter) * gSoundInfo.pcmSamplesPerVBlank;
|
||||||
|
|
||||||
|
buffer = baseBuffer + 0x630;
|
||||||
|
for (i = 0; i < 16; i++)
|
||||||
|
sDexCryScreen->unk0[i] = buffer[i * 2] * 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_814560C(void)
|
||||||
|
{
|
||||||
|
sub_81456A8(sDexCryScreen->unk16 * 8 + sDexCryScreen->unk11 - 2, 0);
|
||||||
|
sub_81456A8(sDexCryScreen->unk16 * 8 + sDexCryScreen->unk11 - 1, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_8145648(u8 windowId)
|
||||||
|
{
|
||||||
|
u8 i;
|
||||||
|
u16 offset;
|
||||||
|
|
||||||
|
sub_8145824(windowId, sDexCryScreen->unk11, 0);
|
||||||
|
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));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_81456A8(u8 a0, u8 a1)
|
||||||
|
{
|
||||||
|
u8 sp0;
|
||||||
|
u8 r6;
|
||||||
|
u8 r8;
|
||||||
|
u16 offset;
|
||||||
|
u16 r1;
|
||||||
|
u8 i;
|
||||||
|
|
||||||
|
r1 = (a1 + 127) * 256;
|
||||||
|
i = r1 / 1152.0;
|
||||||
|
if (i > 55)
|
||||||
|
i = 55;
|
||||||
|
sp0 = i;
|
||||||
|
r6 = a0 & 1;
|
||||||
|
if (i > sDexCryScreen->unk12)
|
||||||
|
{
|
||||||
|
do
|
||||||
|
{
|
||||||
|
offset = gUnknown_085B8770[a0 & 0x7][i] + (a0 / 8) * TILE_SIZE_4BPP;
|
||||||
|
sCryWaveformWindowTiledata[offset] &= gUnknown_085B8C30[r6];
|
||||||
|
sCryWaveformWindowTiledata[offset] |= gUnknown_085B8C32[r6][((i / 3) - 1) & 0x0F];
|
||||||
|
i--;
|
||||||
|
} while (i > sDexCryScreen->unk12);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
do
|
||||||
|
{
|
||||||
|
offset = gUnknown_085B8770[a0 & 0x7][i] + (a0 / 8) * TILE_SIZE_4BPP;
|
||||||
|
sCryWaveformWindowTiledata[offset] &= gUnknown_085B8C30[r6];
|
||||||
|
sCryWaveformWindowTiledata[offset] |= gUnknown_085B8C32[r6][((i / 3) - 1) & 0x0F];
|
||||||
|
i++;
|
||||||
|
} while (i < sDexCryScreen->unk12);
|
||||||
|
}
|
||||||
|
|
||||||
|
sDexCryScreen->unk12 = sp0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_8145814(u8 windowId)
|
||||||
|
{
|
||||||
|
CopyWindowToVram(windowId, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_8145824(u8 windowId, s16 arg1, u8 arg2)
|
||||||
|
{
|
||||||
|
if (!arg2)
|
||||||
|
{
|
||||||
|
u8 bg = GetWindowAttribute(windowId, WINDOW_BG);
|
||||||
|
ChangeBgX(bg, arg1 << 8, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 sub_8145850(struct CryRelatedStruct *arg0, u8 windowId)
|
||||||
|
{
|
||||||
|
int retVal = FALSE;
|
||||||
|
|
||||||
|
switch (gDexCryScreenState)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
if (!sCryVolumeMeter)
|
||||||
|
sCryVolumeMeter = AllocZeroed(sizeof(*sCryVolumeMeter));
|
||||||
|
|
||||||
|
CopyToWindowPixelBuffer(windowId, gUnknown_085B8438, 0, 0);
|
||||||
|
LoadPalette(gUnknown_085B8418, 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;
|
||||||
|
sCryVolumeMeter->unk2 = 0;
|
||||||
|
retVal = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8145914(void)
|
||||||
|
{
|
||||||
|
FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[sCryVolumeMeter->needleSpriteId].oam.paletteNum));
|
||||||
|
DestroySprite(gSprites + sCryVolumeMeter->needleSpriteId);
|
||||||
|
FREE_AND_SET_NULL(sDexCryScreen);
|
||||||
|
FREE_AND_SET_NULL(sCryVolumeMeter);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_814596C(struct Sprite *sprite)
|
||||||
|
{
|
||||||
|
u16 i;
|
||||||
|
s8 r3;
|
||||||
|
s16 x;
|
||||||
|
s16 y;
|
||||||
|
struct ObjAffineSrcData affine;
|
||||||
|
struct OamMatrix matrix;
|
||||||
|
u8 *var0;
|
||||||
|
|
||||||
|
gSprites[sCryVolumeMeter->needleSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sCryVolumeMeter->unk0 == sCryVolumeMeter->unk1)
|
||||||
|
{
|
||||||
|
// empty block
|
||||||
|
}
|
||||||
|
else if (sCryVolumeMeter->unk0 < sCryVolumeMeter->unk1)
|
||||||
|
{
|
||||||
|
sCryVolumeMeter->unk0 += sCryVolumeMeter->unk2;
|
||||||
|
if (sCryVolumeMeter->unk0 > sCryVolumeMeter->unk1)
|
||||||
|
{
|
||||||
|
sCryVolumeMeter->unk0 = sCryVolumeMeter->unk1;
|
||||||
|
sCryVolumeMeter->unk1 = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sCryVolumeMeter->unk0 -= sCryVolumeMeter->unk2;
|
||||||
|
if (sCryVolumeMeter->unk0 < sCryVolumeMeter->unk1)
|
||||||
|
{
|
||||||
|
sCryVolumeMeter->unk0 = sCryVolumeMeter->unk1;
|
||||||
|
sCryVolumeMeter->unk1 = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
affine.xScale = 0x100;
|
||||||
|
affine.yScale = 0x100;
|
||||||
|
affine.rotation = sCryVolumeMeter->unk0 * 256;
|
||||||
|
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];
|
||||||
|
sprite->pos2.x = x * 24 / 256;
|
||||||
|
sprite->pos2.y = y * 24 / 256;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_8145B24(s8 a0)
|
||||||
|
{
|
||||||
|
u16 r2 = (0x20 - a0) & 0xff;
|
||||||
|
if (r2 > 0x20 && r2 < 0xe0)
|
||||||
|
r2 = 0xe0;
|
||||||
|
|
||||||
|
sCryVolumeMeter->unk1 = r2;
|
||||||
|
sCryVolumeMeter->unk2 = 5;
|
||||||
|
}
|
@ -71,7 +71,7 @@ gUnknown_030061C4: @ 30061C4
|
|||||||
gCB2_AfterEvolution: @ 30061E8
|
gCB2_AfterEvolution: @ 30061E8
|
||||||
.space 0x4
|
.space 0x4
|
||||||
|
|
||||||
gUnknown_030061EC: @ 30061EC
|
gDexCryScreenState: @ 30061EC
|
||||||
.space 0x4
|
.space 0x4
|
||||||
|
|
||||||
.include "save.o"
|
.include "save.o"
|
||||||
|
@ -365,15 +365,7 @@ gUnknown_0203AB88: @ 203AB88
|
|||||||
gUnknown_0203AB8C: @ 203AB8C
|
gUnknown_0203AB8C: @ 203AB8C
|
||||||
.space 0x4
|
.space 0x4
|
||||||
|
|
||||||
gUnknown_0203AB90: @ 203AB90
|
.include "src/pokedex_cry_screen.o"
|
||||||
.space 0x4
|
|
||||||
|
|
||||||
gUnknown_0203AB94: @ 203AB94
|
|
||||||
.space 0x4
|
|
||||||
|
|
||||||
gUnknown_0203AB98: @ 203AB98
|
|
||||||
.space 0x4
|
|
||||||
|
|
||||||
.include "src/coins.o"
|
.include "src/coins.o"
|
||||||
.include "src/battle_transition.o"
|
.include "src/battle_transition.o"
|
||||||
.include "src/battle_message.o"
|
.include "src/battle_message.o"
|
||||||
|
Loading…
Reference in New Issue
Block a user