battle transition data decomp

This commit is contained in:
jiangzhengwenjz
2019-07-23 14:07:10 +08:00
parent a674ba2749
commit e150a62045
24 changed files with 765 additions and 131 deletions
+1 -122
View File
@@ -133,128 +133,7 @@ gUnknown_83F846D:: @ 83F846D
gUnknown_83F847D:: @ 83F847D
.incbin "baserom.gba", 0x3F847D, 0x323
sBigPokeballTileset:: @ 83F87A0
.incbin "baserom.gba", 0x3F87A0, 0x580
sSlidingPokeballTilemap:: @ 83F8D20
.incbin "baserom.gba", 0x3F8D20, 0x240
sVsBarTileset:: @ 83F8F60
.incbin "baserom.gba", 0x3F8F60, 0x11E0
sGridSquareTilemap:: @ 83FA140
.incbin "baserom.gba", 0x3FA140, 0x1E0
sBT_Phase1Tasks:: @ 83FA320
.incbin "baserom.gba", 0x3FA320, 0x48
sBT_Phase2Tasks:: @ 83FA368
.incbin "baserom.gba", 0x3FA368, 0x48
sBT_MainPhases:: @ 83FA3B0
.incbin "baserom.gba", 0x3FA3B0, 0x10
sBT_Phase2BlurFuncs:: @ 83FA3C0
.incbin "baserom.gba", 0x3FA3C0, 0xC
sBT_Phase2DistortedWaveFuncs:: @ 83FA3CC
.incbin "baserom.gba", 0x3FA3CC, 0x8
sBT_Phase2HorizontalCorrugateFuncs:: @ 83FA3D4
.incbin "baserom.gba", 0x3FA3D4, 0x8
sBT_Phase2BigPokeballFuncs:: @ 83FA3DC
.incbin "baserom.gba", 0x3FA3DC, 0x18
sBT_Phase2SlidingPokeballsFuncs:: @ 83FA3F4
.incbin "baserom.gba", 0x3FA3F4, 0xC
gUnknown_83FA400:: @ 83FA400
.incbin "baserom.gba", 0x3FA400, 0x4
gUnknown_83FA404:: @ 83FA404
.incbin "baserom.gba", 0x3FA404, 0xA
gUnknown_83FA40E:: @ 83FA40E
.incbin "baserom.gba", 0x3FA40E, 0x6
sBT_Phase2ClockwiseBlackFadeFuncs:: @ 83FA414
.incbin "baserom.gba", 0x3FA414, 0x1C
sBT_Phase2FullScreenWaveFuncs:: @ 83FA430
.incbin "baserom.gba", 0x3FA430, 0x8
sBT_Phase2BlackWaveToRightFuncs:: @ 83FA438
.incbin "baserom.gba", 0x3FA438, 0xC
gUnknown_83FA444:: @ 83FA444
.incbin "baserom.gba", 0x3FA444, 0x20
sBT_Phase2AntiClockwiseSpiralFuncs:: @ 83FA464
.incbin "baserom.gba", 0x3FA464, 0x8
sBT_Phase2MugshotFuncs:: @ 83FA46C
.incbin "baserom.gba", 0x3FA46C, 0x28
sMugshotsTrainerPicIDsTable:: @ 83FA494
.incbin "baserom.gba", 0x3FA494, 0x6
sMugshotsOpponentRotationScales:: @ 83FA49A
.incbin "baserom.gba", 0x3FA49A, 0x14
sMugshotsOpponentCoords:: @ 83FA4AE
.incbin "baserom.gba", 0x3FA4AE, 0x16
sBT_Phase2MugshotSpriteFuncs:: @ 83FA4C4
.incbin "baserom.gba", 0x3FA4C4, 0x1C
sMugShotSlideVelocity:: @ 83FA4E0
.incbin "baserom.gba", 0x3FA4E0, 0x4
sMugShotSlideDeceleration:: @ 83FA4E4
.incbin "baserom.gba", 0x3FA4E4, 0x4
sBT_Phase2SlicedScreenFuncs:: @ 83FA4E8
.incbin "baserom.gba", 0x3FA4E8, 0xC
sBT_Phase2WhiteFadeInStripesFuncs:: @ 83FA4F4
.incbin "baserom.gba", 0x3FA4F4, 0x14
sWhiteStripeDelay:: @ 83FA508
.incbin "baserom.gba", 0x3FA508, 0xC
sBT_Phase2GridSquaresFuncs:: @ 83FA514
.incbin "baserom.gba", 0x3FA514, 0xC
sBT_Phase2BlackDoodlesFuncs:: @ 83FA520
.incbin "baserom.gba", 0x3FA520, 0x14
sBlackDoodlesSegments:: @ 83FA534
.incbin "baserom.gba", 0x3FA534, 0x46
sBlackDoodlesDelay:: @ 83FA57A
.incbin "baserom.gba", 0x3FA57A, 0xE
sBT_Phase1FadeFuncs:: @ 83FA588
.incbin "baserom.gba", 0x3FA588, 0x44
sSpriteTemplate_SlidingPokeball:: @ 83FA5CC
.incbin "baserom.gba", 0x3FA5CC, 0x6C
sSlidingPokeballBigPokeballPalette:: @ 83FA638
.incbin "baserom.gba", 0x3FA638, 0x108
sVsBarOpponentPalettes:: @ 83FA740
.incbin "baserom.gba", 0x3FA740, 0x14
sVsBarPlayerPalettes:: @ 83FA754
.incbin "baserom.gba", 0x3FA754, 0x30
sBigPokeballTilemap:: @ 83FA784
.incbin "baserom.gba", 0x3FA784, 0x4B0
sVsBarTilemap:: @ 83FAC34
.incbin "baserom.gba", 0x3FAC34, 0x500
.section .rodata.83FB134
gUnknown_83FB134:: @ 83FB134
.incbin "baserom.gba", 0x3FB134, 0xA80
+7 -1
View File
@@ -31,7 +31,13 @@ gUnknown_83A0010:: @ 83A0010
.incbin "baserom.gba", 0x3A0010, 0x3688
gUnknown_83A3698:: @ 83A3698
.incbin "baserom.gba", 0x3A3698, 0x1AC0
.incbin "baserom.gba", 0x3A3698, 0x80
gEventObjectBaseOam_32x32:: @ 83A3718
.incbin "baserom.gba", 0x3A3718, 0x8
gUnknown_83A3720:: @ 83A3720
.incbin "baserom.gba", 0x3A3720, 0x1a38
gUnknown_83A5158:: @ 83A5158
.incbin "baserom.gba", 0x3A5158, 0xB0
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
172 49 49
115 115 115
148 148 148
180 180 180
213 213 213
255 82 172
255 98 189
255 115 205
255 131 222
255 148 238
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
172 49 49
115 115 115
148 148 148
180 180 180
213 213 213
197 197 65
213 213 82
230 230 98
246 246 115
255 255 131
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
172 49 49
115 115 115
148 148 148
180 180 180
213 213 213
8 213 8
32 238 32
49 246 49
74 255 74
123 255 123
230 123 139
246 139 156
255 156 172
255 172 189
255 189 205
230 123 139
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
230 123 139
246 139 156
255 156 172
255 172 189
255 189 205
255 255 255
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
172 49 49
115 115 115
148 148 148
180 180 180
213 213 213
0 0 131
16 16 148
32 32 164
49 49 180
65 65 197
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
172 49 49
115 115 115
148 148 148
180 180 180
213 213 213
189 0 189
205 16 205
222 32 222
238 49 238
255 65 255
106 180 213
123 197 230
139 213 246
156 230 255
172 246 255
255 255 255
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
106 180 213
123 197 230
139 213 246
156 230 255
172 246 255
255 255 255
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
98 172 238
246 8 0
238 213 180
222 180 148
255 255 255
222 230 238
189 205 230
156 180 222
98 156 180
148 0 0
197 197 197
238 230 164
222 205 131
213 180 106
205 156 82
0 0 0
Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

@@ -0,0 +1,19 @@
JASC-PAL
0100
16
115 197 164
255 222 205
222 164 148
205 131 115
123 90 82
57 74 123
41 57 98
24 41 82
16 32 57
222 230 238
255 197 90
189 156 90
255 98 90
197 65 65
255 255 255
0 0 0
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

+6 -4
View File
@@ -3,10 +3,6 @@
#include "global.h"
bool8 BT_IsDone(void);
void BT_StartOnField(u8 transitionId);
bool8 FldEff_Pokeball(void);
enum
{
MUGSHOT_LORELEI,
@@ -36,4 +32,10 @@ enum
#define B_TRANSITION_BLUE 16
#define B_TRANSITION_ANTI_CLOCKWISE_SPIRAL 17
extern const struct SpritePalette sSpritePalette_SlidingPokeball;
bool8 BT_IsDone(void);
void BT_StartOnField(u8 transitionId);
bool8 FldEff_Pokeball(void);
#endif // GUARD_BATTLE_TRANSITION_H
+2
View File
@@ -418,6 +418,8 @@ SECTIONS {
data/data_83F5738.o(.rodata);
src/battle_records.o(.rodata);
data/data_83F5738.o(.rodata.83F6C90);
src/battle_transition.o(.rodata);
data/data_83F5738.o(.rodata.83FB134);
src/save.o(.rodata);
data/data_83FECCC.o(.rodata);
src/intro.o(.rodata);
+577
View File
@@ -0,0 +1,577 @@
#include "global.h"
#include "sprite.h"
#include "task.h"
#include "battle_transition.h"
typedef bool8 (*TransitionStateFunc)(struct Task *task);
typedef bool8 (*TransitionSpriteCallback)(struct Sprite *sprite);
struct TransitionData
{
vu8 vblankDma;
u16 winIn;
u16 winOut;
u16 win0H;
u16 win0V;
u16 unused_A;
u16 unused_C;
u16 bldCnt;
u16 bldAlpha;
u16 bldY;
s16 bg123HOfs;
s16 bg123VOfs;
s16 bg0HOfsOpponent;
s16 bg0HOfsPlayer;
s16 bg0VOfs;
s16 unused_1E;
s16 counter;
s16 unused_22;
s16 data[11]; // for multiple purposes
};
struct __attribute__((packed)) BlackDoodleSegment
{
s16 startPtX;
s16 startPtY;
s16 endPtX;
s16 endPtY;
u16 whichSide;
};
EWRAM_DATA struct TransitionData *sTransitionStructPtr = NULL;
// TODO: move this declaration to include/event_object_movement.h
extern const struct OamData gEventObjectBaseOam_32x32;
bool8 BT_Phase1_FadeOut(struct Task *task);
bool8 BT_Phase1_FadeIn(struct Task *task);
bool8 BT_Phase2BlackDoodles_Init(struct Task *task);
bool8 BT_Phase2BlackDoodles_InitSingleBrush(struct Task *task);
bool8 BT_Phase2BlackDoodles_DrawSingleBrush(struct Task *task);
bool8 BT_Phase2BlackDoodles_IsDone(struct Task *task);
bool8 BT_Phase2BlackDoodles_NextBrush(struct Task *task);
bool8 BT_Phase2GridSquares_LoadGfx(struct Task *task);
bool8 BT_Phase2GridSquares_UpdateTileset(struct Task *task);
bool8 BT_Phase2GridSquares_IsDone(struct Task *task);
bool8 BT_Phase2WhiteFadeInStripes_Init(struct Task *task);
bool8 BT_Phase2WhiteFadeInStripes_SetupSprites(struct Task *task);
bool8 BT_Phase2WhiteFadeInStripes_IsWhiteFadeDone(struct Task *task);
bool8 BT_Phase2WhiteFadeInStripes_Stop(struct Task *task);
bool8 BT_Phase2WhiteFadeInStripes_IsDone(struct Task *task);
bool8 BT_Phase2SlicedScreen_Init(struct Task *task);
bool8 BT_Phase2SlicedScreen_UpdateOffsets(struct Task *task);
bool8 BT_Phase2SlicedScreen_End(struct Task *task);
bool8 BT_Phase2Mugshot_Init(struct Task *task);
bool8 BT_Phase2Mugshot_LoadGfx(struct Task *task);
bool8 BT_Phase2Mugshot_VsBarsSlideIn(struct Task *task);
bool8 BT_Phase2Mugshot_StartSpriteSlide(struct Task *task);
bool8 BT_Phase2Mugshot_WaitForOpponentInPlace(struct Task *task);
bool8 BT_Phase2Mugshot_WaitForPlayerInPlace(struct Task *task);
bool8 BT_Phase2Mugshot_ExpandWhiteBand(struct Task *task);
bool8 BT_Phase2Mugshot_StartBlackFade(struct Task *task);
bool8 BT_Phase2Mugshot_WaitForBlackFade(struct Task *task);
bool8 BT_Phase2Mugshot_End(struct Task *task);
bool8 BT_Phase2AntiClockwiseSpiral_Init(struct Task *task);
bool8 BT_Phase2AntiClockwiseSpiral_Update(struct Task *task);
bool8 BT_Phase2BlackWaveToRight_Init(struct Task *task);
bool8 BT_Phase2BlackWaveToRight_UpdateWave(struct Task *task);
bool8 BT_Phase2BlackWaveToRight_End(struct Task *task);
bool8 BT_Phase2FullScreenWave_Init(struct Task *task);
bool8 BT_Phase2FullScreenWave_UpdateWave(struct Task *task);
bool8 BT_Phase2ClockwiseBlackFade_Init(struct Task *task);
bool8 BT_Phase2ClockwiseBlackFade_Step1(struct Task *task);
bool8 BT_Phase2ClockwiseBlackFade_Step2(struct Task *task);
bool8 BT_Phase2ClockwiseBlackFade_Step3(struct Task *task);
bool8 BT_Phase2ClockwiseBlackFade_Step4(struct Task *task);
bool8 BT_Phase2ClockwiseBlackFade_Step5(struct Task *task);
bool8 BT_Phase2ClockwiseBlackFade_End(struct Task *task);
bool8 BT_Phase2SlidingPokeballs_LoadBgGfx(struct Task *task);
bool8 BT_Phase2SlidingPokeballs_SetupFldeffArgs(struct Task *task);
bool8 BT_Phase2SlidingPokeballs_IsDone(struct Task *task);
bool8 BT_Phase2BigPokeball_Init(struct Task *task);
bool8 BT_Phase2BigPokeball_LoadTilemapAndWave(struct Task *task);
bool8 BT_Phase2BigPokeball_UpdateWave1IncEva(struct Task *task);
bool8 BT_Phase2BigPokeball_UpdateWave2DecEvb(struct Task *task);
bool8 BT_Phase2BigPokeball_UpdateWave3(struct Task *task);
bool8 BT_Phase2BigPokeball_CircleEffect(struct Task *task);
bool8 BT_Phase2HorizontalCorrugate_Init(struct Task *task);
bool8 BT_Phase2HorizontalCorrugate_UpdateWave(struct Task *task);
bool8 BT_Phase2DistortedWave_InitWave(struct Task *task);
bool8 BT_Phase2DistortedWave_UpdateWave(struct Task *task);
bool8 BT_Phase2Blur_InitBgMosaic(struct Task *task);
bool8 BT_Phase2Blur_Anim(struct Task *task);
bool8 BT_Phase2Blur_IsDone(struct Task *task);
bool8 BT_Phase1Blink(struct Task *task);
bool8 BT_WaitForPhase1(struct Task *task);
bool8 BT_Phase2LaunchAnimTask(struct Task *task);
bool8 BT_WaitForPhase2(struct Task *task);
bool8 BT_Phase2Blur(struct Task *task);
bool8 BT_Phase2DistortedWave(struct Task *task);
bool8 BT_Phase2HorizontalCorrugate(struct Task *task);
bool8 BT_Phase2BigPokeball(struct Task *task);
bool8 BT_Phase2SlidingPokeballs(struct Task *task);
bool8 BT_Phase2ClockwiseBlackFade(struct Task *task);
bool8 BT_Phase2FullScreenWave(struct Task *task);
bool8 BT_Phase2BlackWaveToRight(struct Task *task);
bool8 BT_Phase2SlicedScreen(struct Task *task);
bool8 BT_Phase2WhiteFadeInStripes(struct Task *task);
bool8 BT_Phase2GridSquares(struct Task *task);
bool8 BT_Phase2BlackDoodles(struct Task *task);
bool8 BT_Phase2StartLoreleiMugshot(struct Task *task);
bool8 BT_Phase2StartBrunoMugshot(struct Task *task);
bool8 BT_Phase2StartAgathaMugshot(struct Task *task);
bool8 BT_Phase2StartLanceMugshot(struct Task *task);
bool8 BT_Phase2StartBlueMugshot(struct Task *task);
bool8 BT_Phase2AntiClockwiseSpiral(struct Task *task);
bool8 BT_Phase1Task(struct Task *task);
bool8 BT_Phase2MugshotsSpriteFuncs_Wait(struct Sprite *sprite);
bool8 BT_Phase2MugshotsSpriteFuncs_InitParams(struct Sprite *sprite);
bool8 BT_Phase2MugshotsSpriteFuncs_SlideSpriteIn(struct Sprite *sprite);
bool8 BT_Phase2MugshotsSpriteFuncs_DecelerateSprite(struct Sprite *sprite);
bool8 BT_Phase2MugshotsSpriteFuncs_DecelerateSprite2(struct Sprite *sprite);
void SpriteCB_BT_Phase2Mugshots(struct Sprite *sprite);
void SpriteCB_BT_Phase2SlidingPokeballs(struct Sprite *sprite);
const u32 sBigPokeballTileset[] = INCBIN_U32("graphics/battle_transitions/big_pokeball_tileset.4bpp");
const u32 sSlidingPokeballTilemap[] = INCBIN_U32("graphics/battle_transitions/sliding_pokeball_tilemap.bin");
const u8 sSpriteImage_SlidingPokeball[] = INCBIN_U8("graphics/battle_transitions/sliding_pokeball.4bpp");
const u32 sVsBarTileset[] = INCBIN_U32("graphics/battle_transitions/vsbar_tileset.4bpp");
const u8 sSpriteImage_UnusedBrendan[] = INCBIN_U8("graphics/battle_transitions/unused_brendan.4bpp");
const u8 sSpriteImage_UnusedLass[] = INCBIN_U8("graphics/battle_transitions/unused_lass.4bpp");
const u32 sGridSquareTilemap[] = INCBIN_U32("graphics/battle_transitions/grid_square_tilemap.bin");
const TransitionStateFunc sBT_Phase1Tasks[] =
{
BT_Phase1Task,
BT_Phase1Task,
BT_Phase1Task,
BT_Phase1Task,
BT_Phase1Task,
BT_Phase1Task,
BT_Phase1Task,
BT_Phase1Task,
BT_Phase1Task,
BT_Phase1Task,
BT_Phase1Task,
BT_Phase1Task,
BT_Phase1Task,
BT_Phase1Task,
BT_Phase1Task,
BT_Phase1Task,
BT_Phase1Task,
BT_Phase1Task,
};
const TransitionStateFunc sBT_Phase2Tasks[] =
{
BT_Phase2Blur,
BT_Phase2DistortedWave,
BT_Phase2HorizontalCorrugate,
BT_Phase2BigPokeball,
BT_Phase2SlidingPokeballs,
BT_Phase2ClockwiseBlackFade,
BT_Phase2FullScreenWave,
BT_Phase2BlackWaveToRight,
BT_Phase2SlicedScreen,
BT_Phase2WhiteFadeInStripes,
BT_Phase2GridSquares,
BT_Phase2BlackDoodles,
BT_Phase2StartLoreleiMugshot,
BT_Phase2StartBrunoMugshot,
BT_Phase2StartAgathaMugshot,
BT_Phase2StartLanceMugshot,
BT_Phase2StartBlueMugshot,
BT_Phase2AntiClockwiseSpiral,
};
const TransitionStateFunc sBT_MainPhases[] =
{
BT_Phase1Blink,
BT_WaitForPhase1,
BT_Phase2LaunchAnimTask,
BT_WaitForPhase2,
};
const TransitionStateFunc sBT_Phase2BlurFuncs[] =
{
BT_Phase2Blur_InitBgMosaic,
BT_Phase2Blur_Anim,
BT_Phase2Blur_IsDone,
};
const TransitionStateFunc sBT_Phase2DistortedWaveFuncs[] =
{
BT_Phase2DistortedWave_InitWave,
BT_Phase2DistortedWave_UpdateWave,
};
const TransitionStateFunc sBT_Phase2HorizontalCorrugateFuncs[] =
{
BT_Phase2HorizontalCorrugate_Init,
BT_Phase2HorizontalCorrugate_UpdateWave,
};
const TransitionStateFunc sBT_Phase2BigPokeballFuncs[] =
{
BT_Phase2BigPokeball_Init,
BT_Phase2BigPokeball_LoadTilemapAndWave,
BT_Phase2BigPokeball_UpdateWave1IncEva,
BT_Phase2BigPokeball_UpdateWave2DecEvb,
BT_Phase2BigPokeball_UpdateWave3,
BT_Phase2BigPokeball_CircleEffect,
};
const TransitionStateFunc sBT_Phase2SlidingPokeballsFuncs[] =
{
BT_Phase2SlidingPokeballs_LoadBgGfx,
BT_Phase2SlidingPokeballs_SetupFldeffArgs,
BT_Phase2SlidingPokeballs_IsDone,
};
const s16 gUnknown_83FA400[] = { -16, 256 };
const s16 gUnknown_83FA404[] = { 0, 16, 32, 8, 24 };
const s16 gUnknown_83FA40E[] = { 8, -8 };
const TransitionStateFunc sBT_Phase2ClockwiseBlackFadeFuncs[] =
{
BT_Phase2ClockwiseBlackFade_Init,
BT_Phase2ClockwiseBlackFade_Step1,
BT_Phase2ClockwiseBlackFade_Step2,
BT_Phase2ClockwiseBlackFade_Step3,
BT_Phase2ClockwiseBlackFade_Step4,
BT_Phase2ClockwiseBlackFade_Step5,
BT_Phase2ClockwiseBlackFade_End,
};
const TransitionStateFunc sBT_Phase2FullScreenWaveFuncs[] =
{
BT_Phase2FullScreenWave_Init,
BT_Phase2FullScreenWave_UpdateWave,
};
const TransitionStateFunc sBT_Phase2BlackWaveToRightFuncs[] =
{
BT_Phase2BlackWaveToRight_Init,
BT_Phase2BlackWaveToRight_UpdateWave,
BT_Phase2BlackWaveToRight_End,
};
const s16 gUnknown_83FA444[] =
{
0x0, 0x26E,
0x100, 0x69,
0x0, -0x69,
-0x100, -0x266E,
0x0, 0x26E,
0x100, 0x69,
0x0, -0x69,
-0x100, -0x266E,
};
const TransitionStateFunc sBT_Phase2AntiClockwiseSpiralFuncs[] =
{
BT_Phase2AntiClockwiseSpiral_Init,
BT_Phase2AntiClockwiseSpiral_Update,
};
const TransitionStateFunc sBT_Phase2MugshotFuncs[] =
{
BT_Phase2Mugshot_Init,
BT_Phase2Mugshot_LoadGfx,
BT_Phase2Mugshot_VsBarsSlideIn,
BT_Phase2Mugshot_StartSpriteSlide,
BT_Phase2Mugshot_WaitForOpponentInPlace,
BT_Phase2Mugshot_WaitForPlayerInPlace,
BT_Phase2Mugshot_ExpandWhiteBand,
BT_Phase2Mugshot_StartBlackFade,
BT_Phase2Mugshot_WaitForBlackFade,
BT_Phase2Mugshot_End,
};
const u8 sMugshotsTrainerPicIDsTable[MUGSHOTS_COUNT] =
{
// TODO: document these with macro
0x70, 0x71, 0x72, 0x73, 0x7D
};
const s16 sMugshotsOpponentRotationScales[MUGSHOTS_COUNT][2] =
{
{0x200, 0x200},
{0x200, 0x200},
{0x200, 0x200},
{0x200, 0x200},
{0x200, 0x200},
};
const s16 sMugshotsOpponentCoords[MUGSHOTS_COUNT][2] =
{
{ -8, 0 },
{ -10, 0 },
{ 0, 0 },
{ -32, 0 },
{ 0, 0 },
};
const TransitionSpriteCallback sBT_Phase2MugshotSpriteFuncs[] =
{
BT_Phase2MugshotsSpriteFuncs_Wait,
BT_Phase2MugshotsSpriteFuncs_InitParams,
BT_Phase2MugshotsSpriteFuncs_SlideSpriteIn,
BT_Phase2MugshotsSpriteFuncs_DecelerateSprite,
BT_Phase2MugshotsSpriteFuncs_Wait,
BT_Phase2MugshotsSpriteFuncs_DecelerateSprite2, // not used
BT_Phase2MugshotsSpriteFuncs_Wait,
};
const s16 sMugShotSlideVelocity[] = { 12, -12 };
const s16 sMugShotSlideDeceleration[] = { -1, 1 };
const TransitionStateFunc sBT_Phase2SlicedScreenFuncs[] =
{
BT_Phase2SlicedScreen_Init,
BT_Phase2SlicedScreen_UpdateOffsets,
BT_Phase2SlicedScreen_End,
};
const TransitionStateFunc sBT_Phase2WhiteFadeInStripesFuncs[] =
{
BT_Phase2WhiteFadeInStripes_Init,
BT_Phase2WhiteFadeInStripes_SetupSprites,
BT_Phase2WhiteFadeInStripes_IsWhiteFadeDone,
BT_Phase2WhiteFadeInStripes_Stop,
BT_Phase2WhiteFadeInStripes_IsDone,
};
const u16 sWhiteStripeDelay[] = { 0, 9, 15, 6, 12, 3 };
const TransitionStateFunc sBT_Phase2GridSquaresFuncs[] =
{
BT_Phase2GridSquares_LoadGfx,
BT_Phase2GridSquares_UpdateTileset,
BT_Phase2GridSquares_IsDone,
};
const TransitionStateFunc sBT_Phase2BlackDoodlesFuncs[] =
{
BT_Phase2BlackDoodles_Init,
BT_Phase2BlackDoodles_InitSingleBrush,
BT_Phase2BlackDoodles_DrawSingleBrush,
BT_Phase2BlackDoodles_IsDone,
BT_Phase2BlackDoodles_NextBrush,
};
const struct BlackDoodleSegment sBlackDoodlesSegments[] =
{
{
.startPtX = 0x38,
.startPtY = 0x0,
.endPtX = 0x0,
.endPtY = 0xA0,
.whichSide = 0,
},
{
.startPtX = 0x68,
.startPtY = 0xA0,
.endPtX = 0xF0,
.endPtY = 0x58,
.whichSide = 1,
},
{
.startPtX = 0xF0,
.startPtY = 0x48,
.endPtX = 0x38,
.endPtY = 0x0,
.whichSide = 1,
},
{
.startPtX = 0x0,
.startPtY = 0x20,
.endPtX = 0x90,
.endPtY = 0xA0,
.whichSide = 0,
},
{
.startPtX = 0x90,
.startPtY = 0xA0,
.endPtX = 0xB8,
.endPtY = 0x0,
.whichSide = 1,
},
{
.startPtX = 0x38,
.startPtY = 0x0,
.endPtX = 0xA8,
.endPtY = 0xA0,
.whichSide = 0,
},
{
.startPtX = 0xA8,
.startPtY = 0xA0,
.endPtX = 0x30,
.endPtY = 0x0,
.whichSide = 1,
},
};
const s16 sBlackDoodlesDelay[] = { 1, 1, 1, 1, 1, 1, 0 };
const TransitionStateFunc sBT_Phase1FadeFuncs[] =
{
BT_Phase1_FadeOut,
BT_Phase1_FadeIn,
};
const struct SpriteFrameImage sSpriteImageTable_SlidingPokeball[] =
{
{
.data = sSpriteImage_SlidingPokeball,
.size = 0x200,
},
};
const union AnimCmd sSpriteAnim_SlidingPokeball[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_END,
};
const union AnimCmd *const sSpriteAnimTable_SlidingPokeball[] = { sSpriteAnim_SlidingPokeball };
const union AffineAnimCmd sSpriteAffineAnim_SlidingPokeball1[] =
{
AFFINEANIMCMD_FRAME(0, 0, -4, 1),
AFFINEANIMCMD_JUMP(0),
};
const union AffineAnimCmd sSpriteAffineAnim_SlidingPokeball2[] =
{
AFFINEANIMCMD_FRAME(0, 0, 4, 1),
AFFINEANIMCMD_JUMP(0),
};
const union AffineAnimCmd *const sSpriteAffineAnimTable_SlidingPokeball[] =
{
sSpriteAffineAnim_SlidingPokeball1,
sSpriteAffineAnim_SlidingPokeball2,
};
const struct SpriteTemplate sSpriteTemplate_SlidingPokeball =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0x1009,
.oam = &gEventObjectBaseOam_32x32,
.anims = sSpriteAnimTable_SlidingPokeball,
.images = sSpriteImageTable_SlidingPokeball,
.affineAnims = sSpriteAffineAnimTable_SlidingPokeball,
.callback = SpriteCB_BT_Phase2SlidingPokeballs,
};
const struct OamData sOamData_Unused =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.mosaic = 0,
.bpp = 0,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
.size = SPRITE_SIZE(64x64),
.tileNum = 0,
.priority = 0,
.paletteNum = 0,
.affineParam = 0,
};
const struct SpriteFrameImage sSpriteImageTable_UnusedBrendan[] =
{
{
.data = sSpriteImage_UnusedBrendan,
.size = 0x800,
},
};
const struct SpriteFrameImage sSpriteImageTable_UnusedLass[] =
{
{
.data = sSpriteImage_UnusedLass,
.size = 0x800,
},
};
const union AnimCmd sSpriteAnim_Unused[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_END,
};
const union AnimCmd *const sSpriteAnimTable_Unused[] = { sSpriteAnim_Unused };
const struct SpriteTemplate sSpriteTemplateTable_Unused[] =
{
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0x100A,
.oam = &sOamData_Unused,
.anims = sSpriteAnimTable_Unused,
.images = sSpriteImageTable_UnusedBrendan,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_BT_Phase2Mugshots,
},
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0x100A,
.oam = &sOamData_Unused,
.anims = sSpriteAnimTable_Unused,
.images = sSpriteImageTable_UnusedLass,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_BT_Phase2Mugshots,
},
};
// this palette is shared by big pokeball and sliding pokeball
const u16 sSlidingPokeballBigPokeballPalette[] = INCBIN_U16("graphics/battle_transitions/sliding_pokeball.gbapal");
const struct SpritePalette sSpritePalette_SlidingPokeball =
{
.data = sSlidingPokeballBigPokeballPalette,
.tag = 0x1009,
};
const u16 sVsBarLoreleiPalette[] = INCBIN_U16("graphics/battle_transitions/lorelei_bg.gbapal");
const u16 sVsBarBrunoPalette[] = INCBIN_U16("graphics/battle_transitions/bruno_bg.gbapal");
const u16 sVsBarAgathaPalette[] = INCBIN_U16("graphics/battle_transitions/agatha_bg.gbapal");
const u16 sVsBarLancePalette[] = INCBIN_U16("graphics/battle_transitions/lance_bg.gbapal");
const u16 sVsBarBluePalette[] = INCBIN_U16("graphics/battle_transitions/blue_bg.gbapal");
const u16 sVsBarMalePlayerPalette[] = INCBIN_U16("graphics/battle_transitions/red_bg.gbapal");
const u16 sVsBarFemalePlayerPalette[] = INCBIN_U16("graphics/battle_transitions/green_bg.gbapal");
const u16 *const sVsBarOpponentPalettes[MUGSHOTS_COUNT] =
{
sVsBarLoreleiPalette,
sVsBarBrunoPalette,
sVsBarAgathaPalette,
sVsBarLancePalette,
sVsBarBluePalette,
};
const u16 *const sVsBarPlayerPalettes[] =
{
sVsBarMalePlayerPalette,
sVsBarFemalePlayerPalette,
};
const u16 sUnusedTrainerPalette[] = INCBIN_U16("graphics/battle_transitions/unused_trainer.gbapal");
const struct SpritePalette sSpritePalette_UnusedTrainer =
{
.data = sUnusedTrainerPalette,
.tag = 0x100A,
};
const u16 sBigPokeballTilemap[] = INCBIN_U16("graphics/battle_transitions/big_pokeball_tilemap.bin");
const u16 sVsBarTilemap[] = INCBIN_U16("graphics/battle_transitions/vsbar_tilemap.bin");
+1 -4
View File
@@ -1055,10 +1055,7 @@ gUnknown_2039A24: @ 2039A24
.space 0x4
.include "src/coins.o"
.align 2
sTransitionStructPtr: @ 2039A2C
.space 0x4
.include "src/battle_transition.o"
gUnknown_2039A30: @ 2039A30
.space 0x4