mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
Dusclops Bonus Deep Dive Naming & incidental dump/naming (#202)
Some checks failed
CI / build (push) Has been cancelled
Some checks failed
CI / build (push) Has been cancelled
* checkpoint * checkpoint 2 * checkpoint * checkpoint * checkpoint * checkpoint * final mode_change update * remove temporary whitespace from gDuskullSpritesheetOam * correct spelling of collision * remove unneeded .orig files * remove unneeded comment * Rename PlayRumble function
This commit is contained in:
parent
97bf71ef12
commit
15da57f3f7
|
|
@ -94,7 +94,7 @@ gPokedexStateFuncs:: @ 0x0805C880
|
|||
.4byte Pokedex_State8_4B34 @ POKEDEX_STATE_8
|
||||
.4byte Pokedex_State9_4BB4 @ POKEDEX_STATE_9
|
||||
.4byte Pokedex_State10_4B10 @ POKEDEX_STATE_10
|
||||
.4byte Pokedex_State11_4C80 @ POKEDEX_STATE_11
|
||||
.4byte Pokedex_DeleteConfirmation @ POKEDEX_STATE_DELETE_CONFIRMATION
|
||||
.4byte Pokedex_ReturnToTitle @ POKEDEX_STATE_RETURN_TO_TITLE
|
||||
|
||||
gPokedexEntries:: @ 0x0805C8B4
|
||||
|
|
@ -292,7 +292,7 @@ gTitlescreenStateFuncs:: @ 0x08079890
|
|||
.4byte TitleScreen6_AnimCloseMenu @ SUBSTATE_ANIM_CLOSE_MENU
|
||||
.4byte TitleScreen7_8011020 @ SUBSTATE_7
|
||||
.4byte TitleScreen8_8011228 @ SUBSTATE_8
|
||||
.4byte TitleScreen9_8010D84 @ SUBSTATE_9
|
||||
.4byte TitleScreen9_8010D84 @ SUBSTATE_DELETE_SAVE_GAME_CONFIRMATION
|
||||
.4byte TitleScreen10_ExecMenuSelection @ SUBSTATE_EXEC_MENU_SELECTION
|
||||
.4byte TitleScreen11_80114B4 @ SUBSTATE_11
|
||||
|
||||
|
|
@ -1593,7 +1593,7 @@ gOptionsSEList:: @ 0x08527D66
|
|||
.2byte SE_UNKNOWN_0xE0, SE_UNKNOWN_0xE1, SE_UNKNOWN_0xE2, SE_UNKNOWN_0xE3, SE_UNKNOWN_0xE4
|
||||
|
||||
.2byte SE_UNKNOWN_0xE5, SE_UNKNOWN_0xE6, SE_UNKNOWN_0xE7, SE_UNKNOWN_0xE8, SE_UNKNOWN_0xE9
|
||||
.2byte SE_UNKNOWN_0xEA, SE_UNKNOWN_0xEB, SE_UNKNOWN_0xEC, SE_UNKNOWN_0xF1, SE_UNKNOWN_0xF2
|
||||
.2byte SE_UNKNOWN_0xEA, SE_UNKNOWN_0xEB, SE_UNKNOWN_0xEC, SE_DUSKULL_APPEAR, SE_DUSKULL_DEATH_CRY
|
||||
.2byte SE_DUSCLOPS_DEPART_INCOMPLETE, SE_DUSCLOPS_MOVE, SE_DUSCLOPS_APPEAR, SE_DUSCLOPS_HIT, SE_DUSCLOPS_BALL_ABSORB
|
||||
.2byte SE_DUSCLOPS_BALL_LAUNCH, SE_UNKNOWN_0xF9, SE_UNKNOWN_0xFC, SE_UNKNOWN_0xFD, SE_UNKNOWN_0xFE
|
||||
.2byte SE_UNKNOWN_0xFF, SE_UNKNOWN_0x100, SE_UNKNOWN_0x101, SE_UNKNOWN_0x102, SE_UNKNOWN_0x103
|
||||
|
|
|
|||
73
data/rom_2.s
73
data/rom_2.s
|
|
@ -2253,7 +2253,7 @@ gUnknown_086ACDF4:: @ 0x086ACDF4
|
|||
.2byte 0x0000, 0x00F0, 0x008C, 0x00C8
|
||||
.2byte 0,0,0,0,0,0,0,0
|
||||
|
||||
@ suspected as board level colision detection logic; one per board;
|
||||
@ suspected as board level collision detection logic; one per board;
|
||||
@ similar contents for boards decompiled.
|
||||
BoardCollisionFuncts_086ACE0C:: @ 0x086ACE0C
|
||||
.4byte COLLISION_CHECK_RUBY_14E08, COLLISION_CHECK_SAPPHIRE_16090;
|
||||
|
|
@ -2645,11 +2645,74 @@ gUnknown_086AE5A0:: @ 0x086AE5A0
|
|||
gCommonAndEggWeights:: @ 0x086AE5E0
|
||||
.2byte 10, 10, 15, 15, 2, 0
|
||||
|
||||
gUnknown_086AE5EC:: @ 0x086AE5EC
|
||||
.incbin "baserom.gba", 0x6AE5EC, 0xA2
|
||||
DuskullFramesetData:: @ 0x086AE5EC
|
||||
@OamIx, timeTillChange, tileOffset
|
||||
.2byte 0x0000, 0x000F, 0x0000
|
||||
.2byte 0x0001, 0x000F, 0x0001
|
||||
.2byte 0x0000, 0x000F, 0x0000
|
||||
.2byte 0x0002, 0x000F, 0x0002
|
||||
.2byte 0x0003, 0x0005, 0x0003
|
||||
.2byte 0x0004, 0x0007, 0x0004
|
||||
.2byte 0x0005, 0x000B, 0x0005
|
||||
.2byte 0x0006, 0x000F, 0x0000
|
||||
.2byte 0x0007, 0x000F, 0x0001
|
||||
.2byte 0x0006, 0x000F, 0x0000
|
||||
.2byte 0x0008, 0x000F, 0x0002
|
||||
.2byte 0x0009, 0x0005, 0x0003
|
||||
.2byte 0x000A, 0x0007, 0x0004
|
||||
.2byte 0x000B, 0x000B, 0x0005
|
||||
.2byte 0x000C, 0x0007, 0x0006
|
||||
.2byte 0x000C, 0x0016, 0x0006
|
||||
.2byte 0x0003, 0x0005, 0x0003
|
||||
.2byte 0x0003, 0x0005, 0x0003
|
||||
.2byte 0x000E, 0x0005, 0x0008
|
||||
.2byte 0x000F, 0x0004, 0x0009
|
||||
.2byte 0x0010, 0x0001, 0x000A
|
||||
.2byte 0x000F, 0x0004, 0x0009
|
||||
.2byte 0x000E, 0x0005, 0x0008
|
||||
.2byte 0x000F, 0x0004, 0x0009
|
||||
.2byte 0x0010, 0x0001, 0x000A
|
||||
.2byte 0x000F, 0x0004, 0x0009
|
||||
.2byte 0x0003, 0x0005, 0x0003
|
||||
|
||||
gUnknown_086AE68E:: @ 0x086AE68E
|
||||
.incbin "baserom.gba", 0x6AE68E, 0x8A
|
||||
DuclopsFramesetData:: @ 0x086AE68E
|
||||
@ tileOffset, timeTillChange
|
||||
.2byte 0x0000, 0x000F
|
||||
.2byte 0x0001, 0x000F
|
||||
.2byte 0x0002, 0x000F
|
||||
.2byte 0x0003, 0x000F
|
||||
.2byte 0x0000, 0x000F
|
||||
.2byte 0x0004, 0x000F
|
||||
.2byte 0x0005, 0x000F
|
||||
.2byte 0x0006, 0x000F
|
||||
.2byte 0x0007, 0x0013
|
||||
.2byte 0x0008, 0x000F
|
||||
.2byte 0x0009, 0x0011
|
||||
.2byte 0x0008, 0x0007
|
||||
.2byte 0x000A, 0x0005
|
||||
.2byte 0x000B, 0x0047
|
||||
.2byte 0x000B, 0x000B
|
||||
.2byte 0x000A, 0x0005
|
||||
.2byte 0x0008, 0x0013
|
||||
.2byte 0x000C, 0x000F
|
||||
.2byte 0x000D, 0x000F
|
||||
.2byte 0x000C, 0x000F
|
||||
.2byte 0x000E, 0x000F
|
||||
.2byte 0x0000, 0x001B
|
||||
.2byte 0x0001, 0x001B
|
||||
.2byte 0x0002, 0x001B
|
||||
.2byte 0x0003, 0x001B
|
||||
.2byte 0x0000, 0x001B
|
||||
.2byte 0x0004, 0x001B
|
||||
.2byte 0x0005, 0x001B
|
||||
.2byte 0x0006, 0x001B
|
||||
|
||||
@ Likely pointed to by something else.
|
||||
.2byte 0x0000, 0x049C
|
||||
.2byte 0x01C2, 0x049C
|
||||
.2byte 0x02EE, 0x049C
|
||||
.2byte 0x041A, 0x049C
|
||||
.2byte 0x02EE, 0x049C, 0x01C2
|
||||
|
||||
gUnknown_086AE718:: @ 0x086AE718
|
||||
.incbin "baserom.gba", 0x6AE718, 0x2AC
|
||||
|
|
|
|||
|
|
@ -3947,8 +3947,8 @@ gDirectSound_086885EC:: @ 0x086885EC
|
|||
.include "sound/songs/se_unk_ea.s"
|
||||
.include "sound/songs/se_unk_eb.s"
|
||||
.include "sound/songs/se_unk_ec.s"
|
||||
.include "sound/songs/se_unk_f1.s"
|
||||
.include "sound/songs/se_unk_f2.s"
|
||||
.include "sound/songs/se_duskull_appear.s"
|
||||
.include "sound/songs/se_duskull_death_cry.s"
|
||||
.include "sound/songs/se_dusclops_depart_incomplete.s"
|
||||
.include "sound/songs/se_dusclops_move.s"
|
||||
.include "sound/songs/se_dusclops_appear.s"
|
||||
|
|
|
|||
|
|
@ -9,6 +9,12 @@
|
|||
"palette": ""
|
||||
},
|
||||
"files": [
|
||||
{
|
||||
"gfx_filename": "duskull",
|
||||
"oam": true,
|
||||
"mheight": 4,
|
||||
"mwidth": 5
|
||||
},
|
||||
{
|
||||
"gfx_filename": "dusclops_bonus_clear",
|
||||
"segments": [
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
|
@ -192,8 +192,8 @@
|
|||
#define SE_UNKNOWN_0xEE 0xEE // No Sound
|
||||
#define SE_UNKNOWN_0xEF 0xEF // No Sound
|
||||
#define SE_UNKNOWN_0xF0 0xF0 // No Sound
|
||||
#define SE_UNKNOWN_0xF1 0xF1 // SE109 Dusclops stage start, and Duskull hit (same as 119)
|
||||
#define SE_UNKNOWN_0xF2 0xF2 // SE110 Duskull death cry
|
||||
#define SE_DUSKULL_APPEAR 0xF1 // SE109 Dusclops stage start, and Duskull hit (same as 119)
|
||||
#define SE_DUSKULL_DEATH_CRY 0xF2 // SE110 Duskull death cry
|
||||
#define SE_DUSCLOPS_DEPART_INCOMPLETE 0xF3 // SE111 Duskull leaves, unhit
|
||||
#define SE_DUSCLOPS_MOVE 0xF4 // SE112 Dusclops entry, footsteps
|
||||
#define SE_DUSCLOPS_APPEAR 0xF5 // SE113 Dusclops appears
|
||||
|
|
|
|||
86
include/constants/dusclops_states.h
Normal file
86
include/constants/dusclops_states.h
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
#ifndef GUARD_CONSTANTS_DUSCLOPS_STATES_H
|
||||
#define GUARD_CONSTANTS_DUSCLOPS_STATES_H
|
||||
|
||||
enum DusclopsBoardStates{
|
||||
DUSCLOPS_BOARD_STATE_0_INTRO = 0,
|
||||
DUSCLOPS_BOARD_STATE_1_DUSKULL_PHASE = 1,
|
||||
DUSCLOPS_BOARD_STATE_2_INIT_DUSCLOPS_PHASE = 2,
|
||||
DUSCLOPS_BOARD_STATE_3_DUSCLOPS_PHASE = 3,
|
||||
DUSCLOPS_BOARD_STATE_4_INIT_SCORE_PHASE = 4,
|
||||
DUSCLOPS_BOARD_STATE_SCORE_PHASE = 5,
|
||||
DUSCLOPS_BOARD_STATE_SCORE_COUNTING_FINISHED = 6
|
||||
};
|
||||
|
||||
enum DusclopsEntityColisionMode{
|
||||
DUSCLOPS_ENTITY_COLLISION_MODE_NONE = 0,
|
||||
DUSCLOPS_ENTITY_COLLISION_MODE_DUSKULL = 1,
|
||||
DUSCLOPS_ENTITY_COLLISION_MODE_DUSCLOPS = 2
|
||||
};
|
||||
|
||||
enum DuskullEntityState{
|
||||
DUSKULL_ENTITY_STATE_SPAWN = 0,
|
||||
DUSKULL_ENTITY_STATE_APPEARS = 1,
|
||||
DUSKULL_ENTITY_STATE_MOVE_LEFT = 2,
|
||||
DUSKULL_ENTITY_STATE_MOVE_RIGHT = 3,
|
||||
DUSKULL_ENTITY_STATE_HIT = 4,
|
||||
DUSKULL_ENTITY_STATE_DYING = 5,
|
||||
DUSKULL_ENTITY_STATE_ESCAPE_WHILE_WALKING_LEFT = 6,
|
||||
DUSKULL_ENTITY_STATE_ESCAPE_WHILE_WALKING_RIGHT = 7,
|
||||
DUSKULL_ENTITY_STATE_ESCAPE = 8,
|
||||
DUSKULL_ENTITY_STATE_CLEANUP = 9
|
||||
};
|
||||
|
||||
enum DuskullFramesetIx{
|
||||
DUSKULL_FRAME_MOVE_LEFT_START = 0,
|
||||
DUSKULL_FRAME_MOVE_LEFT_END = 3,
|
||||
DUSKULL_FRAME_NEUTRAL_FACING = 6,
|
||||
DUSKULL_FRAME_MOVE_RIGHT_START = 7,
|
||||
DUSKULL_FRAME_MOVE_RIGHT_END = 10,
|
||||
DUSKULL_FRAME_TURN_TO_FACE_LEFT_END = 13,
|
||||
DUSKULL_FRAME_HIT = 14,
|
||||
DUSKULL_FRAME_DYING = 15,
|
||||
DUSKULL_FRAME_ESCAPE_PREP = 18,
|
||||
DUSKULL_FRAME_ESCAPE = 25
|
||||
};
|
||||
|
||||
enum DuskullTileOffset{
|
||||
DUSKULL_TILE_OFFSET_QUARTER_FACING = 3,
|
||||
DUSKULL_TILE_OFFSET_FACE_FORWARD = 4
|
||||
};
|
||||
|
||||
enum DusclopsEntityState{
|
||||
DUSCLOPS_ENTITY_STATE_INIT = 0,
|
||||
DUSCLOPS_ENTITY_STATE_INTRO_APPEARANCE = 1,
|
||||
DUSCLOPS_ENTITY_STATE_GUARD_READY = 2,
|
||||
DUSCLOPS_ENTITY_STATE_WALKING = 3,
|
||||
DUSCLOPS_ENTITY_STATE_HIT = 4,
|
||||
DUSCLOPS_ENTITY_STATE_HIT_STUN = 5,
|
||||
DUSCLOPS_ENTITY_STATE_HIT_ABSORB_ZONE = 6,
|
||||
DUSCLOPS_ENTITY_STATE_ABSORBED_BALL = 7,
|
||||
DUSCLOPS_ENTITY_STATE_VANISH = 8
|
||||
};
|
||||
|
||||
enum DusclopsFramesetIx{
|
||||
DUSCLOPS_FRAME_WALK_NEUTRAL = 0,
|
||||
DUSCLOPS_FRAME_LEFT_FOOT_LANDS = 2,
|
||||
DUSCLOPS_FRAME_WALK_NEUTRAL_RIGHT_FOOT_FORWARD = 4,
|
||||
DUSCLOPS_FRAME_RIGHT_FOOT_LANDS = 6,
|
||||
DUSCLOPS_FRAME_RIGHT_FOOT_FORWARD = 7,
|
||||
DUSCLOPS_FRAME_ABSORB_START = 9,
|
||||
DUSCLOPS_FRAME_ABSORB_VORTEX_START = 10,
|
||||
DUSCLOPS_FRAME_ABSORB_VORTEX_END = 12,
|
||||
DUSCLOPS_FRAME_ABSORB_LAUNCH_PREP = 15,
|
||||
DUSCLOPS_FRAME_ABSOLB_LAUNCH = 16,
|
||||
DUSCLOPS_FRAME_INTRO_START = 21,
|
||||
DUSCLOPS_FRAME_INTRO_FOOTSTEP_LEFT = 23,
|
||||
DUSCLOPS_FRAME_INTRO_FOOTSTEP_RIGHT = 27,
|
||||
DUSCLOPS_FRAME_INTRO_END = 28,
|
||||
};
|
||||
|
||||
enum DusclopsTileOffset{
|
||||
DUSCLOPS_TILE_OFFSET_HIT = 7,
|
||||
DUSCLOPS_TILE_OFFSET_ABSORB_START = 8,
|
||||
DUSCLOPS_TILE_OFFSET_VANQUISHED = 15
|
||||
};
|
||||
|
||||
#endif // GUARD_CONSTANTS_DUSCLOPS_STATES_H
|
||||
|
|
@ -10,7 +10,7 @@ void sub_10C0(void);
|
|||
void sub_111C(void);
|
||||
int sub_1170(void);
|
||||
void sub_1198(void);
|
||||
void sub_11B0(int arg0);
|
||||
void PlayRumble(int arg0);
|
||||
void sub_11E4(int arg0);
|
||||
void sub_11F0(int arg0);
|
||||
void sub_11FC(void);
|
||||
|
|
@ -350,7 +350,7 @@ extern void sub_3FAC(void);
|
|||
//extern ? Pokedex_State10_4B10();
|
||||
//extern ? Pokedex_State8_4B34();
|
||||
//extern ? Pokedex_State9_4BB4();
|
||||
//extern ? Pokedex_State11_4C80();
|
||||
//extern ? Pokedex_DeleteConfirmation();
|
||||
//extern ? Pokedex_ReturnToTitle();
|
||||
//extern ? sub_71DC();
|
||||
extern void sub_8974(s16);
|
||||
|
|
@ -389,8 +389,8 @@ void sub_153CC(s32, s16*, u16*);
|
|||
extern void sub_162B8(struct Vector16 *arg0, s16* arg1, u8* arg2);
|
||||
extern void sub_1642C(u8, u16*, u16*);
|
||||
//extern ? COLLISION_CHECK_DUSCLOPS_171C8();
|
||||
extern void sub_173FC(struct Vector16 *arg0, s16* arg1, u8* arg2);
|
||||
extern void sub_17634(u8, u16*, u16*);
|
||||
extern void CheckDusclopsEntitiesCollision(struct Vector16 *arg0, s16* arg1, u8* arg2);
|
||||
extern void CheckDusclopsAbzorbZoneHit(u8, u16*, u16*);
|
||||
//extern ? COLLISION_CHECK_KECLEON_176B0();
|
||||
extern void sub_17898(struct Vector16 *, u16 *, u8 *);
|
||||
extern void sub_179D0(u8, u16 *, u16 *);
|
||||
|
|
@ -572,12 +572,12 @@ extern void sub_32B74();
|
|||
extern void sub_32BE4();
|
||||
//extern ? DuskullBonus_Setup();
|
||||
//extern ? DusclopsBoardProcess_3B_33130();
|
||||
extern void sub_3342C(s16 index1, s16 index2);
|
||||
extern void sub_336E0();
|
||||
extern void sub_340EC();
|
||||
extern void sub_34450();
|
||||
extern void sub_350F0();
|
||||
extern void sub_351A8();
|
||||
extern void SwapDuskullEntityIndex(s16 index1, s16 index2);
|
||||
extern void DuskullPhase_ProcessEntityLogic();
|
||||
extern void DuskullPhase_ProcessGraphics();
|
||||
extern void DusclopsPhase_ProcessEntityLogicAndGraphics();
|
||||
extern void FadeToMainBoard();
|
||||
extern void ProceessBonusBannerAndScoring();
|
||||
extern void sub_356A0();
|
||||
extern void sub_357B8(void);
|
||||
//extern ? KecleonBoardProcess_3A_35860();
|
||||
|
|
@ -625,7 +625,7 @@ extern void sub_46FD4(s16);
|
|||
extern void sub_47030(void);
|
||||
//extern ? AllBoardProcess_1A_47100();
|
||||
//extern ? AllBoardProcess_1B_47160();
|
||||
extern void sub_472E4();
|
||||
extern void BonusStage_HandleModeChangeFlags();
|
||||
extern void sub_47344(void);
|
||||
extern void sub_474F4(void);
|
||||
extern void sub_47670(void);
|
||||
|
|
|
|||
|
|
@ -71,6 +71,18 @@
|
|||
#define JOY_NEW(button) TEST_BUTTON(gMain.newKeys, button)
|
||||
#define JOY_HELD(button) TEST_BUTTON(gMain.heldKeys, button)
|
||||
|
||||
#define MODE_CHANGE_NONE 0 // Used for If checks
|
||||
#define MODE_CHANGE_BANNER 0x1 //2^0
|
||||
#define MODE_CHANGE_PAUSE 0x2 //2^1
|
||||
#define MODE_CHANGE_DEBUG 0x4 //2^2
|
||||
#define MODE_CHANGE_BALL_SAVER 0x8 //2^3
|
||||
#define MODE_CHANGE_END_OF_BALL 0x10 //2^4
|
||||
#define MODE_CHANGE_END_OF_GAME 0x20 //2^5
|
||||
#define MODE_CHANGE_EXPIRED_BONUS 0x40 //2^6
|
||||
#define MODE_CHANGE_BONUS_BANNER 0x80 //2^7
|
||||
#define MODE_CHANGE_EXPIRED_BONUS_BANNER 0xC0 // 2^6 + 2^7
|
||||
|
||||
|
||||
struct BgOffsets
|
||||
{
|
||||
u16 xOffset;
|
||||
|
|
@ -489,10 +501,10 @@ struct PinballGame
|
|||
/*0x380*/ u16 unk380;
|
||||
/*0x382*/ s8 unk382;
|
||||
/*0x383*/ s8 unk383;
|
||||
/*0x384*/ s8 unk384;
|
||||
/*0x385*/ s8 unk385;
|
||||
/*0x386*/ s8 unk386;
|
||||
/*0x387*/ s8 unk387;
|
||||
/*0x384*/ s8 legendaryHitsRequired;
|
||||
/*0x385*/ s8 bonusModeHitCount;
|
||||
/*0x386*/ s8 returnToMainBoardFlag;
|
||||
/*0x387*/ s8 boardEntityCollisionMode;
|
||||
/*0x388*/ s8 unk388;
|
||||
/*0x389*/ s8 unk389;
|
||||
/*0x38A*/ s16 unk38A;
|
||||
|
|
@ -501,21 +513,21 @@ struct PinballGame
|
|||
/*0x390*/ u16 unk390;
|
||||
/*0x392*/ u16 unk392;
|
||||
/*0x394*/ s16 unk394;
|
||||
/*0x396*/ s8 unk396;
|
||||
/*0x397*/ s8 unk397[3];
|
||||
/*0x39A*/ u8 unk39A[3];
|
||||
/*0x39D*/ s8 unk39D[3];
|
||||
/*0x3A0*/ s8 unk3A0[3];
|
||||
/*0x3A3*/ s8 unk3A3[3];
|
||||
/*0x3A6*/ s8 unk3A6[3];
|
||||
/*0x3A9*/ s8 unk3A9[3];
|
||||
/*0x3AC*/ s8 unk3AC[3];
|
||||
/*0x3B0*/ u16 unk3B0[3];
|
||||
/*0x3B6*/ u16 unk3B6[3];
|
||||
/*0x3BC*/ u16 unk3BC[3];
|
||||
/*0x396*/ s8 minionActiveCount;
|
||||
/*0x397*/ s8 minionSpriteVariant[3];
|
||||
/*0x39A*/ u8 minionNextSpriteVariant[3];
|
||||
/*0x39D*/ s8 minionOamIx[3];
|
||||
/*0x3A0*/ s8 minionState[3];
|
||||
/*0x3A3*/ s8 minionFramesetIx[3];
|
||||
/*0x3A6*/ s8 minionDrawInFrame[3];
|
||||
/*0x3A9*/ s8 minionCanCollide[3];
|
||||
/*0x3AC*/ s8 minionDeathTimer[3];
|
||||
/*0x3B0*/ u16 minionStateTimer[3];
|
||||
/*0x3B6*/ u16 minionTimeAlive[3];
|
||||
/*0x3BC*/ u16 minionEscapeAtTime[3];
|
||||
/*0x3C2*/ u8 filler3C2[0x2];
|
||||
/*0x3C4*/ struct Vector16 unk3C4[3];
|
||||
/*0x3D0*/ struct Vector16 unk3D0[3];
|
||||
/*0x3C4*/ struct Vector16 minionLogicPosition[3];
|
||||
/*0x3D0*/ struct Vector16 minionCollisionPosition[3];
|
||||
/*0x3DC*/ s8 unk3DC;
|
||||
/*0x3DD*/ s8 unk3DD;
|
||||
/*0x3DE*/ s8 unk3DE;
|
||||
|
|
@ -958,7 +970,7 @@ extern struct Unk086ACE8C gUnknown_086ACE8C[13];
|
|||
extern u16 gUnknown_086ACEF4[2];
|
||||
extern const u8 *const gUnknown_086ACEF8[];
|
||||
extern const u8 *const gUnknown_086ACF18[];
|
||||
extern s16 gUnknown_086AE68E[][2];
|
||||
extern s16 DuclopsFramesetData[][2];
|
||||
extern u16 gUnknown_086B4568[14][45];
|
||||
extern const u8 gUnknown_084F61EC[];
|
||||
extern u8 gUnknown_081B45A4[];
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ struct Main
|
|||
// x40 End of bonus with expired timer,
|
||||
// x80 Bonus Score banner
|
||||
// Most cause a board state transition once conditions are met.
|
||||
/*0x0F*/ u8 unkF;
|
||||
/*0x0F*/ u8 modeChangeFlags;
|
||||
/*0x10*/ u8 unk10;
|
||||
/*0x11*/ u8 unk11;
|
||||
/*0x12*/ u16 unk12;
|
||||
|
|
|
|||
|
|
@ -286,9 +286,18 @@ extern s16 gUnknown_0202BF14;
|
|||
extern s8 gUnknown_0202C590;
|
||||
extern s16 gUnknown_0201B120;
|
||||
extern s8 gUnknown_0202BEC4;
|
||||
extern s8 gUnknown_0202BEFC;
|
||||
extern s8 gUnknown_02002830;
|
||||
extern s8 gUnknown_02002831;
|
||||
|
||||
/****
|
||||
* Yellow confirmation/info window mode
|
||||
* 0= Transmession connection prompt,
|
||||
* 1= Transferring in progress?
|
||||
* 2= transmission error message
|
||||
* 3= transfer complete?
|
||||
* 4= delete save data confirmation
|
||||
* ****/
|
||||
extern s8 Pokedex_PopupTypeIx;
|
||||
extern s8 gPokedex_EraseSaveDataAccessCounter;
|
||||
extern s8 gPokedex_EraseSaveDataAccessStep;
|
||||
extern s8 gUnknown_0202C794;
|
||||
extern s8 gUnknown_0201C1B4;
|
||||
extern s8 gUnknown_0202C5AC;
|
||||
|
|
|
|||
|
|
@ -248,8 +248,8 @@ gSongTable:: @ 0x08534E04
|
|||
song mus_dummy, MUSIC_PLAYER_BGM, 0
|
||||
song mus_dummy, MUSIC_PLAYER_BGM, 0
|
||||
song mus_dummy, MUSIC_PLAYER_BGM, 0
|
||||
song se_unk_f1, MUSIC_PLAYER_SE2, 2
|
||||
song se_unk_f2, MUSIC_PLAYER_SE2, 2
|
||||
song se_duskull_appear, MUSIC_PLAYER_SE2, 2
|
||||
song se_duskull_death_cry, MUSIC_PLAYER_SE2, 2
|
||||
song se_dusclops_depart_incomplete, MUSIC_PLAYER_SE2, 2
|
||||
song se_dusclops_move, MUSIC_PLAYER_SE2, 2
|
||||
song se_dusclops_appear, MUSIC_PLAYER_SE2, 2
|
||||
|
|
|
|||
|
|
@ -1,58 +1,58 @@
|
|||
.include "sound/MPlayDef.s"
|
||||
|
||||
.equ se_unk_f1_grp, gUnknown_08531D4C
|
||||
.equ se_unk_f1_pri, 5
|
||||
.equ se_unk_f1_rev, reverb_set+50
|
||||
.equ se_unk_f1_mvl, 127
|
||||
.equ se_unk_f1_key, 0
|
||||
.equ se_unk_f1_tbs, 1
|
||||
.equ se_unk_f1_exg, 0
|
||||
.equ se_unk_f1_cmp, 1
|
||||
.equ se_duskull_appear_grp, gUnknown_08531D4C
|
||||
.equ se_duskull_appear_pri, 5
|
||||
.equ se_duskull_appear_rev, reverb_set+50
|
||||
.equ se_duskull_appear_mvl, 127
|
||||
.equ se_duskull_appear_key, 0
|
||||
.equ se_duskull_appear_tbs, 1
|
||||
.equ se_duskull_appear_exg, 0
|
||||
.equ se_duskull_appear_cmp, 1
|
||||
|
||||
.section .rodata
|
||||
.global se_unk_f1
|
||||
.global se_duskull_appear
|
||||
.align 2
|
||||
|
||||
@*********************** Track 01 ***********************@
|
||||
|
||||
se_unk_f1_0: @ 0x086A14B4
|
||||
.byte KEYSH , se_unk_f1_key+0
|
||||
.byte TEMPO , 150*se_unk_f1_tbs/2
|
||||
se_duskull_appear_0: @ 0x086A14B4
|
||||
.byte KEYSH , se_duskull_appear_key+0
|
||||
.byte TEMPO , 150*se_duskull_appear_tbs/2
|
||||
.byte VOICE , 45
|
||||
.byte BENDR , 24
|
||||
.byte PAN , c_v+0
|
||||
.byte VOL , 32*se_unk_f1_mvl/mxv
|
||||
.byte VOL , 32*se_duskull_appear_mvl/mxv
|
||||
.byte MOD , 30
|
||||
.byte BEND , c_v+0
|
||||
.byte N06 , Cn3 , v127
|
||||
.byte W01
|
||||
.byte BEND , c_v+4
|
||||
.byte W01
|
||||
.byte VOL , 49*se_unk_f1_mvl/mxv
|
||||
.byte VOL , 49*se_duskull_appear_mvl/mxv
|
||||
.byte PAN , c_v+5
|
||||
.byte BEND , c_v+9
|
||||
.byte W01
|
||||
.byte c_v+16
|
||||
.byte W01
|
||||
.byte VOL , 61*se_unk_f1_mvl/mxv
|
||||
.byte VOL , 61*se_duskull_appear_mvl/mxv
|
||||
.byte BEND , c_v+24
|
||||
.byte W02
|
||||
.byte PAN , c_v+0
|
||||
.byte BEND , c_v+2
|
||||
.byte N06 , Dn3 , v116
|
||||
.byte W01
|
||||
.byte VOL , 71*se_unk_f1_mvl/mxv
|
||||
.byte VOL , 71*se_duskull_appear_mvl/mxv
|
||||
.byte BEND , c_v+7
|
||||
.byte W01
|
||||
.byte PAN , c_v-4
|
||||
.byte BEND , c_v+12
|
||||
.byte W01
|
||||
.byte VOL , 81*se_unk_f1_mvl/mxv
|
||||
.byte VOL , 81*se_duskull_appear_mvl/mxv
|
||||
.byte BEND , c_v+18
|
||||
.byte W01
|
||||
.byte c_v+27
|
||||
.byte W02
|
||||
.byte VOL , 95*se_unk_f1_mvl/mxv
|
||||
.byte VOL , 95*se_duskull_appear_mvl/mxv
|
||||
.byte PAN , c_v+0
|
||||
.byte BEND , c_v+4
|
||||
.byte N06 , En3 , v112
|
||||
|
|
@ -92,20 +92,20 @@ se_unk_f1_0: @ 0x086A14B4
|
|||
.byte W01
|
||||
.byte c_v+34
|
||||
.byte W02
|
||||
.byte VOL , 82*se_unk_f1_mvl/mxv
|
||||
.byte VOL , 82*se_duskull_appear_mvl/mxv
|
||||
.byte PAN , c_v+0
|
||||
.byte BEND , c_v+14
|
||||
.byte N06 , An3 , v100
|
||||
.byte W01
|
||||
.byte BEND , c_v+18
|
||||
.byte W01
|
||||
.byte VOL , 71*se_unk_f1_mvl/mxv
|
||||
.byte VOL , 71*se_duskull_appear_mvl/mxv
|
||||
.byte PAN , c_v-8
|
||||
.byte BEND , c_v+23
|
||||
.byte W01
|
||||
.byte c_v+30
|
||||
.byte W01
|
||||
.byte VOL , 61*se_unk_f1_mvl/mxv
|
||||
.byte VOL , 61*se_duskull_appear_mvl/mxv
|
||||
.byte BEND , c_v+38
|
||||
.byte W02
|
||||
.byte PAN , c_v+0
|
||||
|
|
@ -153,13 +153,13 @@ se_unk_f1_0: @ 0x086A14B4
|
|||
|
||||
.align 2
|
||||
|
||||
se_unk_f1: @ 0x086A1588
|
||||
se_duskull_appear: @ 0x086A1588
|
||||
.byte 1 @ NumTrks
|
||||
.byte 0 @ NumBlks
|
||||
.byte se_unk_f1_pri @ Priority
|
||||
.byte se_unk_f1_rev @ Reverb
|
||||
.byte se_duskull_appear_pri @ Priority
|
||||
.byte se_duskull_appear_rev @ Reverb
|
||||
|
||||
.word se_unk_f1_grp
|
||||
.word se_duskull_appear_grp
|
||||
|
||||
.word se_unk_f1_0
|
||||
.word se_duskull_appear_0
|
||||
@ 0x086A1594
|
||||
|
|
@ -1,24 +1,24 @@
|
|||
.include "sound/MPlayDef.s"
|
||||
|
||||
.equ se_unk_f2_grp, gUnknown_08531D4C
|
||||
.equ se_unk_f2_pri, 5
|
||||
.equ se_unk_f2_rev, reverb_set+50
|
||||
.equ se_unk_f2_mvl, 127
|
||||
.equ se_unk_f2_key, 0
|
||||
.equ se_unk_f2_tbs, 1
|
||||
.equ se_unk_f2_exg, 0
|
||||
.equ se_unk_f2_cmp, 1
|
||||
.equ se_duskull_death_cry_grp, gUnknown_08531D4C
|
||||
.equ se_duskull_death_cry_pri, 5
|
||||
.equ se_duskull_death_cry_rev, reverb_set+50
|
||||
.equ se_duskull_death_cry_mvl, 127
|
||||
.equ se_duskull_death_cry_key, 0
|
||||
.equ se_duskull_death_cry_tbs, 1
|
||||
.equ se_duskull_death_cry_exg, 0
|
||||
.equ se_duskull_death_cry_cmp, 1
|
||||
|
||||
.section .rodata
|
||||
.global se_unk_f2
|
||||
.global se_duskull_death_cry
|
||||
.align 2
|
||||
|
||||
@*********************** Track 01 ***********************@
|
||||
|
||||
se_unk_f2_0: @ 0x086A1594
|
||||
.byte VOL , 110*se_unk_f2_mvl/mxv
|
||||
.byte KEYSH , se_unk_f2_key+0
|
||||
.byte TEMPO , 150*se_unk_f2_tbs/2
|
||||
se_duskull_death_cry_0: @ 0x086A1594
|
||||
.byte VOL , 110*se_duskull_death_cry_mvl/mxv
|
||||
.byte KEYSH , se_duskull_death_cry_key+0
|
||||
.byte TEMPO , 150*se_duskull_death_cry_tbs/2
|
||||
.byte VOICE , 61
|
||||
.byte BENDR , 44
|
||||
.byte PAN , c_v+0
|
||||
|
|
@ -87,26 +87,26 @@ se_unk_f2_0: @ 0x086A1594
|
|||
|
||||
@*********************** Track 02 ***********************@
|
||||
|
||||
se_unk_f2_1: @ 0x086A15E8
|
||||
.byte KEYSH , se_unk_f2_key+0
|
||||
se_duskull_death_cry_1: @ 0x086A15E8
|
||||
.byte KEYSH , se_duskull_death_cry_key+0
|
||||
.byte VOICE , 66
|
||||
.byte BENDR , 44
|
||||
.byte PAN , c_v+1
|
||||
.byte VOL , 110*se_unk_f2_mvl/mxv
|
||||
.byte VOL , 110*se_duskull_death_cry_mvl/mxv
|
||||
.byte N48 , Dn3 , v020
|
||||
.byte W24
|
||||
.byte W03
|
||||
.byte VOL , 103*se_unk_f2_mvl/mxv
|
||||
.byte VOL , 103*se_duskull_death_cry_mvl/mxv
|
||||
.byte W04
|
||||
.byte 96*se_unk_f2_mvl/mxv
|
||||
.byte 96*se_duskull_death_cry_mvl/mxv
|
||||
.byte W03
|
||||
.byte 83*se_unk_f2_mvl/mxv
|
||||
.byte 83*se_duskull_death_cry_mvl/mxv
|
||||
.byte W04
|
||||
.byte 67*se_unk_f2_mvl/mxv
|
||||
.byte 67*se_duskull_death_cry_mvl/mxv
|
||||
.byte W04
|
||||
.byte 49*se_unk_f2_mvl/mxv
|
||||
.byte 49*se_duskull_death_cry_mvl/mxv
|
||||
.byte W03
|
||||
.byte 23*se_unk_f2_mvl/mxv
|
||||
.byte 23*se_duskull_death_cry_mvl/mxv
|
||||
.byte W03
|
||||
.byte FINE
|
||||
|
||||
|
|
@ -114,14 +114,14 @@ se_unk_f2_1: @ 0x086A15E8
|
|||
|
||||
.align 2
|
||||
|
||||
se_unk_f2: @ 0x086A1608
|
||||
se_duskull_death_cry: @ 0x086A1608
|
||||
.byte 2 @ NumTrks
|
||||
.byte 0 @ NumBlks
|
||||
.byte se_unk_f2_pri @ Priority
|
||||
.byte se_unk_f2_rev @ Reverb
|
||||
.byte se_duskull_death_cry_pri @ Priority
|
||||
.byte se_duskull_death_cry_rev @ Reverb
|
||||
|
||||
.word se_unk_f2_grp
|
||||
.word se_duskull_death_cry_grp
|
||||
|
||||
.word se_unk_f2_0
|
||||
.word se_unk_f2_1
|
||||
.word se_duskull_death_cry_0
|
||||
.word se_duskull_death_cry_1
|
||||
@ 0x086A1618
|
||||
|
|
@ -25,20 +25,20 @@ void AllBoardProcess_1B_47160(void)
|
|||
{
|
||||
if (JOY_NEW(START_BUTTON) && gMain.mainState != STATE_GAME_IDLE && gCurrentPinballGame->unk1100 == 0)
|
||||
{
|
||||
if (gMain.unkF & 0x2)
|
||||
if (gMain.modeChangeFlags & MODE_CHANGE_PAUSE)
|
||||
{
|
||||
gMain.unkF &= ~0x2;
|
||||
gMain.modeChangeFlags &= ~MODE_CHANGE_PAUSE;
|
||||
sub_497BC();
|
||||
}
|
||||
else if ((gMain.unkF & 0x20) == 0)
|
||||
else if ((gMain.modeChangeFlags & MODE_CHANGE_END_OF_GAME) == 0)
|
||||
{
|
||||
gMain.unkF |= 0x2;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_PAUSE;
|
||||
sub_495A0();
|
||||
}
|
||||
}
|
||||
|
||||
//Game is paused
|
||||
if (gMain.unkF & 0x2)
|
||||
if (gMain.modeChangeFlags & MODE_CHANGE_PAUSE)
|
||||
{
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
|
|
@ -60,24 +60,24 @@ void AllBoardProcess_1B_47160(void)
|
|||
sub_49850();
|
||||
}
|
||||
|
||||
gMain.unkF &= ~0x2;
|
||||
gMain.modeChangeFlags &= ~MODE_CHANGE_PAUSE;
|
||||
sub_497BC();
|
||||
gMain.newKeys &= ~A_BUTTON;
|
||||
}
|
||||
|
||||
if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
gMain.unkF &= ~0x2;
|
||||
gMain.modeChangeFlags &= ~MODE_CHANGE_PAUSE;
|
||||
sub_497BC();
|
||||
gMain.newKeys &= ~B_BUTTON;
|
||||
}
|
||||
|
||||
if (gMain.unkF & 0x2)
|
||||
if (gMain.modeChangeFlags & MODE_CHANGE_PAUSE)
|
||||
sub_49A34();
|
||||
}
|
||||
|
||||
//Game is not paused
|
||||
if (gMain.unkF == 0x0)
|
||||
if (gMain.modeChangeFlags == MODE_CHANGE_NONE)
|
||||
{
|
||||
gCurrentPinballGame->unk740 = 0;
|
||||
if (gMain.unk14 != 0)
|
||||
|
|
@ -94,7 +94,7 @@ void AllBoardProcess_1B_47160(void)
|
|||
}
|
||||
|
||||
if (gMain.unk14 == 0)
|
||||
gMain.unkF = gMain.unk11;
|
||||
gMain.modeChangeFlags = gMain.unk11;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ void MainBoardProcess_2B_4D960(void)
|
|||
int var4;
|
||||
|
||||
var0 = 0x1000;
|
||||
if (gMain.unkF == 0)
|
||||
if (gMain.modeChangeFlags == MODE_CHANGE_NONE)
|
||||
sub_4E2F8();
|
||||
|
||||
if (gCurrentPinballGame->unk5FB)
|
||||
|
|
@ -185,7 +185,7 @@ void BonusBoardProcess_2B_4DBFC(void)
|
|||
int var4;
|
||||
|
||||
var0 = 0x1000;
|
||||
if ((gMain.unkF & ~0x40) == 0)
|
||||
if ((gMain.modeChangeFlags & ~MODE_CHANGE_EXPIRED_BONUS) == 0)
|
||||
sub_4E468();
|
||||
|
||||
if (gCurrentPinballGame->unk5FB)
|
||||
|
|
@ -302,7 +302,7 @@ void sub_4DFA0(void)
|
|||
{
|
||||
gCurrentPinballGame->unk128 = 4;
|
||||
m4aSongNumStart(SE_TILT_TRIGGERED);
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -314,7 +314,7 @@ void sub_4DFA0(void)
|
|||
{
|
||||
gCurrentPinballGame->unk128 = 4;
|
||||
m4aSongNumStart(SE_TILT_TRIGGERED);
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -325,7 +325,7 @@ void sub_4DFA0(void)
|
|||
{
|
||||
gCurrentPinballGame->unk128 = 4;
|
||||
m4aSongNumStart(SE_TILT_TRIGGERED);
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -428,7 +428,7 @@ void sub_4E2F8(void)
|
|||
gCurrentPinballGame->unk163 = 3;
|
||||
if (gCurrentPinballGame->unk20)
|
||||
{
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
gCurrentPinballGame->ball->velocity.y = -590;
|
||||
gCurrentPinballGame->ball->velocity.x = 0;
|
||||
m4aSongNumStart(SE_UNKNOWN_0xCD);
|
||||
|
|
@ -489,10 +489,10 @@ void sub_4E468(void)
|
|||
{
|
||||
unk1334->velocity.x = 0;
|
||||
gCurrentPinballGame->ball->velocity.y = 0;
|
||||
if (gMain.unkF & 0x40)
|
||||
if (gMain.modeChangeFlags & MODE_CHANGE_EXPIRED_BONUS)
|
||||
{
|
||||
gCurrentPinballGame->unk386 = 1;
|
||||
gMain.unkF = 0x80;
|
||||
gCurrentPinballGame->returnToMainBoardFlag = 1;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_BONUS_BANNER;
|
||||
gCurrentPinballGame->ball->positionQ0.y = gUnknown_02031520.unk14.unk2A - 10;
|
||||
}
|
||||
else
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -40,9 +40,9 @@ void GroudonBoardProcess_3A_3B120(void)
|
|||
gCurrentPinballGame->unk17 = 0;
|
||||
gCurrentPinballGame->unk13 = 0;
|
||||
if (gCurrentPinballGame->numCompletedBonusStages % 5 == 3)
|
||||
gCurrentPinballGame->unk384 = 18;
|
||||
gCurrentPinballGame->legendaryHitsRequired = 18;
|
||||
else
|
||||
gCurrentPinballGame->unk384 = 15;
|
||||
gCurrentPinballGame->legendaryHitsRequired = 15;
|
||||
|
||||
gCurrentPinballGame->unk294 = 0;
|
||||
gCurrentPinballGame->eventTimer = gCurrentPinballGame->timerBonus + 10800;
|
||||
|
|
@ -50,12 +50,12 @@ void GroudonBoardProcess_3A_3B120(void)
|
|||
gCurrentPinballGame->unk388 = 3;
|
||||
gCurrentPinballGame->unk392 = 0;
|
||||
gCurrentPinballGame->ball->unk0 = 1;
|
||||
gCurrentPinballGame->unk386 = 0;
|
||||
gCurrentPinballGame->unk387 = 1;
|
||||
gCurrentPinballGame->returnToMainBoardFlag = 0;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 1;
|
||||
gCurrentPinballGame->unk6C4 = 3;
|
||||
gCurrentPinballGame->unk382 = 0;
|
||||
gCurrentPinballGame->unk383 = 0;
|
||||
gCurrentPinballGame->unk385 = 0;
|
||||
gCurrentPinballGame->bonusModeHitCount = 0;
|
||||
gCurrentPinballGame->unk389 = 0;
|
||||
gCurrentPinballGame->unk38E = 0;
|
||||
gCurrentPinballGame->unk390 = 0;
|
||||
|
|
@ -175,12 +175,12 @@ void GroudonBoardProcess_3B_3B49C(void)
|
|||
gMain.spriteGroups[5].available = 1;
|
||||
DmaCopy16(3, gGroudonBonusClear_Gfx, (void *)0x06015800, 0x2000);
|
||||
gCurrentPinballGame->unk394 = 136;
|
||||
gMain.unkF = 0x80;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_BONUS_BANNER;
|
||||
gCurrentPinballGame->unk5FA = 1;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
sub_351A8();
|
||||
ProceessBonusBannerAndScoring();
|
||||
if (gCurrentPinballGame->scoreCounterAnimationEnabled)
|
||||
gCurrentPinballGame->unk18 = 181;
|
||||
|
||||
|
|
@ -217,10 +217,10 @@ void GroudonBoardProcess_3B_3B49C(void)
|
|||
gMain.spriteGroups[5].available = 1;
|
||||
DmaCopy16(3, gGroudonBonusClear_Gfx, (void *)0x06015800, 0x2000);
|
||||
gCurrentPinballGame->unk394 = 136;
|
||||
gMain.unkF = 0x80;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_BONUS_BANNER;
|
||||
break;
|
||||
case 5:
|
||||
sub_351A8();
|
||||
ProceessBonusBannerAndScoring();
|
||||
if (gCurrentPinballGame->scoreCounterAnimationEnabled)
|
||||
gCurrentPinballGame->unk18 = 181;
|
||||
|
||||
|
|
@ -243,8 +243,8 @@ void GroudonBoardProcess_3B_3B49C(void)
|
|||
}
|
||||
break;
|
||||
case 6:
|
||||
sub_351A8();
|
||||
gCurrentPinballGame->unk386 = 1;
|
||||
ProceessBonusBannerAndScoring();
|
||||
gCurrentPinballGame->returnToMainBoardFlag = 1;
|
||||
gCurrentPinballGame->unk5FA = 1;
|
||||
break;
|
||||
}
|
||||
|
|
@ -253,20 +253,20 @@ void GroudonBoardProcess_3B_3B49C(void)
|
|||
sub_3B7C4();
|
||||
sub_3C6E0();
|
||||
sub_3E644();
|
||||
if (gCurrentPinballGame->unk294 && gCurrentPinballGame->eventTimer < 2 && gMain.unkF == 0)
|
||||
if (gCurrentPinballGame->unk294 && gCurrentPinballGame->eventTimer < 2 && gMain.modeChangeFlags == MODE_CHANGE_NONE)
|
||||
{
|
||||
m4aMPlayAllStop();
|
||||
m4aSongNumStart(MUS_END_OF_BALL3);
|
||||
gMain.unkF |= 0x40;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_EXPIRED_BONUS;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk386)
|
||||
if (gCurrentPinballGame->returnToMainBoardFlag)
|
||||
{
|
||||
gCurrentPinballGame->unk5FA = 1;
|
||||
sub_350F0();
|
||||
FadeToMainBoard();
|
||||
}
|
||||
|
||||
sub_472E4();
|
||||
BonusStage_HandleModeChangeFlags();
|
||||
}
|
||||
|
||||
void sub_3B7C4(void)
|
||||
|
|
@ -282,9 +282,9 @@ void sub_3B7C4(void)
|
|||
{
|
||||
MPlayStart(&gMPlayInfo_SE1, &se_unk_118);
|
||||
gCurrentPinballGame->scoreAddedInFrame = 500000;
|
||||
sub_11B0(7);
|
||||
gCurrentPinballGame->unk385++;
|
||||
if (gCurrentPinballGame->unk385 >= gCurrentPinballGame->unk384)
|
||||
PlayRumble(7);
|
||||
gCurrentPinballGame->bonusModeHitCount++;
|
||||
if (gCurrentPinballGame->bonusModeHitCount >= gCurrentPinballGame->legendaryHitsRequired)
|
||||
gCurrentPinballGame->unk3DC = 6;
|
||||
}
|
||||
|
||||
|
|
@ -338,7 +338,7 @@ void sub_3B7C4(void)
|
|||
gCurrentPinballGame->unk4CA = 31;
|
||||
gCurrentPinballGame->unk4C9 = gCurrentPinballGame->unk3E4 / 110;
|
||||
m4aSongNumStart(SE_GROUDON_STEP);
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk3E4 == 160 || gCurrentPinballGame->unk3E4 == 380)
|
||||
|
|
@ -346,7 +346,7 @@ void sub_3B7C4(void)
|
|||
gCurrentPinballGame->unk4CA = 31;
|
||||
gCurrentPinballGame->unk4C9 = gCurrentPinballGame->unk3E4 / 110;
|
||||
m4aSongNumStart(SE_GROUDON_STEP);
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk3E4 == 490)
|
||||
|
|
@ -354,7 +354,7 @@ void sub_3B7C4(void)
|
|||
gCurrentPinballGame->unk4CA = 31;
|
||||
gCurrentPinballGame->unk4C9 = 4;
|
||||
m4aSongNumStart(SE_UNKNOWN_0x11A);
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -373,7 +373,7 @@ void sub_3B7C4(void)
|
|||
{
|
||||
gCurrentPinballGame->unk4C8 = 60;
|
||||
MPlayStart(&gMPlayInfo_SE1, &se_unk_11b);
|
||||
sub_11B0(13);
|
||||
PlayRumble(13);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -586,7 +586,7 @@ void sub_3B7C4(void)
|
|||
gCurrentPinballGame->unk129 = 0;
|
||||
gCurrentPinballGame->unk128 = 1;
|
||||
gCurrentPinballGame->unk4C8 = 60;
|
||||
sub_11B0(13);
|
||||
PlayRumble(13);
|
||||
MPlayStart(&gMPlayInfo_SE1, &se_unk_11b);
|
||||
}
|
||||
}
|
||||
|
|
@ -594,8 +594,10 @@ void sub_3B7C4(void)
|
|||
break;
|
||||
case 6:
|
||||
gCurrentPinballGame->unk294 = 3;
|
||||
|
||||
if (gCurrentPinballGame->numCompletedBonusStages % 5 == 3)
|
||||
{
|
||||
// catch groudon
|
||||
gCurrentPinballGame->unk3DC = 9;
|
||||
gCurrentPinballGame->unk3E2 = 0;
|
||||
gMain.spriteGroups[10].available = 1;
|
||||
|
|
@ -608,10 +610,11 @@ void sub_3B7C4(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
// bonus completed
|
||||
gCurrentPinballGame->unk3DC = 7;
|
||||
gCurrentPinballGame->unk3E2 = 32;
|
||||
gCurrentPinballGame->unk387 = 0;
|
||||
gMain.unkF = 0x80;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 0;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_BONUS_BANNER;
|
||||
gCurrentPinballGame->unk388 = 2;
|
||||
gCurrentPinballGame->unk392 = 0;
|
||||
}
|
||||
|
|
@ -693,7 +696,7 @@ void sub_3B7C4(void)
|
|||
gCurrentPinballGame->unk4CA = 31;
|
||||
gCurrentPinballGame->unk4C9 = 6;
|
||||
m4aSongNumStart(SE_GROUDON_STEP);
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -704,7 +707,7 @@ void sub_3B7C4(void)
|
|||
gCurrentPinballGame->unk4CA = 31;
|
||||
gCurrentPinballGame->unk4C9 = 5;
|
||||
m4aSongNumStart(SE_GROUDON_STEP);
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1093,7 +1096,7 @@ void sub_3CBC4(void)
|
|||
gCurrentPinballGame->unk482 = 10;
|
||||
gMain.spriteGroups[24].available = 1;
|
||||
gCurrentPinballGame->unk486 = 612;
|
||||
sub_11B0(9);
|
||||
PlayRumble(9);
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk488.x += (Cos(gCurrentPinballGame->unk484) * 40) / 20000;
|
||||
|
|
@ -1199,7 +1202,7 @@ void sub_3CBC4(void)
|
|||
if (gCurrentPinballGame->unk4D8[i] == 0)
|
||||
{
|
||||
m4aSongNumStart(SE_GROUDON_BOULDER_LAND);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk4D8[i] < 5)
|
||||
|
|
@ -1231,7 +1234,7 @@ void sub_3CBC4(void)
|
|||
if (gCurrentPinballGame->unk4D8[i] == 1)
|
||||
{
|
||||
m4aSongNumStart(SE_GROUDON_BOULDER_LAND);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk4D8[i] < 5)
|
||||
|
|
@ -1261,7 +1264,7 @@ void sub_3CBC4(void)
|
|||
if (gCurrentPinballGame->unk4D8[i] == 1)
|
||||
{
|
||||
m4aSongNumStart(SE_GROUDON_BOULDER_LAND);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk4D8[i] < 5)
|
||||
|
|
@ -1291,7 +1294,7 @@ void sub_3CBC4(void)
|
|||
if (gCurrentPinballGame->unk4D8[i] == 1)
|
||||
{
|
||||
m4aSongNumStart(SE_GROUDON_BOULDER_LAND);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk4D8[i] < 3)
|
||||
|
|
@ -1380,7 +1383,7 @@ void sub_3CBC4(void)
|
|||
{
|
||||
m4aSongNumStart(SE_GROUDON_BALL_HIT_FIRE);
|
||||
gCurrentPinballGame->unk48C[i] = 3;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -1399,7 +1402,7 @@ void sub_3CBC4(void)
|
|||
{
|
||||
m4aSongNumStart(SE_GROUDON_BALL_HIT_FIRE);
|
||||
gCurrentPinballGame->unk48C[i] = 5;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -1418,7 +1421,7 @@ void sub_3CBC4(void)
|
|||
{
|
||||
m4aSongNumStart(SE_GROUDON_BALL_HIT_FIRE);
|
||||
gCurrentPinballGame->unk48C[i] = 7;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -1447,7 +1450,7 @@ void sub_3CBC4(void)
|
|||
}
|
||||
|
||||
m4aSongNumStart(SE_GROUDON_BALL_HIT_FIRE);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -1601,7 +1604,7 @@ void sub_3CBC4(void)
|
|||
gCurrentPinballGame->unk46C[2].y = 0x20 + scale / 8;
|
||||
gCurrentPinballGame->unk46C[3].y = 0x20 + scale / 8;
|
||||
|
||||
if ((gMain.unkF & 0xC0) == 0)
|
||||
if ((gMain.modeChangeFlags & MODE_CHANGE_EXPIRED_BONUS_BANNER) == 0)
|
||||
{
|
||||
gMain.blendControl = 0x1E10;
|
||||
gMain.blendAlpha = BLDALPHA_BLEND(var6, 16 - var6);
|
||||
|
|
@ -1633,11 +1636,11 @@ void sub_3CBC4(void)
|
|||
gCurrentPinballGame->unk5B0 = ArcTan2(-tempVector.x, tempVector.y);
|
||||
gCurrentPinballGame->ball->velocity.x = (Cos(gCurrentPinballGame->unk5B0) * -400) / 20000;
|
||||
gCurrentPinballGame->ball->velocity.y = (Sin(gCurrentPinballGame->unk5B0) * 400) / 20000;
|
||||
sub_11B0(9);
|
||||
PlayRumble(9);
|
||||
}
|
||||
}
|
||||
|
||||
if ((gMain.unkF & 0xC0) != 0)
|
||||
if ((gMain.modeChangeFlags & MODE_CHANGE_EXPIRED_BONUS_BANNER) != 0)
|
||||
gMain.spriteGroups[30].available = 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,14 +68,14 @@ void KecleonBoardProcess_3A_35860(void)
|
|||
gCurrentPinballGame->unk388 = 3;
|
||||
gCurrentPinballGame->unk392 = 0;
|
||||
gCurrentPinballGame->ball->unk0 = 1;
|
||||
gCurrentPinballGame->unk386 = 0;
|
||||
gCurrentPinballGame->returnToMainBoardFlag = 0;
|
||||
gCurrentPinballGame->unk3F7 = 1;
|
||||
gCurrentPinballGame->unk3DC = 0;
|
||||
gCurrentPinballGame->unk3E8 = 750;
|
||||
gCurrentPinballGame->unk3EA = 360;
|
||||
gCurrentPinballGame->unk3DF = 3;
|
||||
gCurrentPinballGame->unk385 = 0;
|
||||
gCurrentPinballGame->unk387 = 0;
|
||||
gCurrentPinballGame->bonusModeHitCount = 0;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 0;
|
||||
gCurrentPinballGame->unk394 = 0;
|
||||
gCurrentPinballGame->unk3DE = 0;
|
||||
gCurrentPinballGame->unk3E0 = 0;
|
||||
|
|
@ -108,7 +108,7 @@ void KecleonBoardProcess_3A_35860(void)
|
|||
gCurrentPinballGame->unk1A = 0;
|
||||
gCurrentPinballGame->unk400.y = gCurrentPinballGame->unk3EA / 10 + 58;
|
||||
sub_38218();
|
||||
gCurrentPinballGame->unk387 = 1;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 1;
|
||||
sub_35D54();
|
||||
sub_36CB4();
|
||||
m4aSongNumStart(MUS_BONUS_FIELD_KECLEON);
|
||||
|
|
@ -137,14 +137,14 @@ void KecleonBoardProcess_3B_35AA4(void)
|
|||
gCurrentPinballGame->unk18 = 0;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk386 == 0)
|
||||
if (gCurrentPinballGame->returnToMainBoardFlag == 0)
|
||||
{
|
||||
gMain.blendControl = 0x1C10;
|
||||
gMain.blendAlpha = BLDALPHA_BLEND(16, 0);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (gCurrentPinballGame->unk386 == 0)
|
||||
if (gCurrentPinballGame->returnToMainBoardFlag == 0)
|
||||
{
|
||||
if (gCurrentPinballGame->unk40E == 0)
|
||||
{
|
||||
|
|
@ -173,11 +173,11 @@ void KecleonBoardProcess_3B_35AA4(void)
|
|||
gMain.spriteGroups[5].available = 1;
|
||||
DmaCopy16(3, gKecleonBonusClear_Gfx, (void *)0x6015800, 0x2000);
|
||||
gCurrentPinballGame->unk394 = 0x88;
|
||||
gMain.unkF = 0x80;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_BONUS_BANNER;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
sub_351A8();
|
||||
ProceessBonusBannerAndScoring();
|
||||
if (gCurrentPinballGame->scoreCounterAnimationEnabled)
|
||||
gCurrentPinballGame->unk18 = 181;
|
||||
|
||||
|
|
@ -206,8 +206,8 @@ void KecleonBoardProcess_3B_35AA4(void)
|
|||
}
|
||||
break;
|
||||
case 4:
|
||||
sub_351A8();
|
||||
gCurrentPinballGame->unk386 = 1;
|
||||
ProceessBonusBannerAndScoring();
|
||||
gCurrentPinballGame->returnToMainBoardFlag = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -215,20 +215,20 @@ void KecleonBoardProcess_3B_35AA4(void)
|
|||
sub_36CB4();
|
||||
sub_372B4();
|
||||
sub_3751C();
|
||||
if (gCurrentPinballGame->unk294 && gCurrentPinballGame->eventTimer < 2 && gMain.unkF == 0)
|
||||
if (gCurrentPinballGame->unk294 && gCurrentPinballGame->eventTimer < 2 && gMain.modeChangeFlags == MODE_CHANGE_NONE)
|
||||
{
|
||||
m4aMPlayAllStop();
|
||||
m4aSongNumStart(MUS_END_OF_BALL3);
|
||||
gCurrentPinballGame->unk404 = 0;
|
||||
gCurrentPinballGame->unk408 = 0;
|
||||
gCurrentPinballGame->unk406 = 0;
|
||||
gMain.unkF |= 0x40;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_EXPIRED_BONUS;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk386)
|
||||
sub_350F0();
|
||||
if (gCurrentPinballGame->returnToMainBoardFlag)
|
||||
FadeToMainBoard();
|
||||
|
||||
sub_472E4();
|
||||
BonusStage_HandleModeChangeFlags();
|
||||
sub_37850();
|
||||
}
|
||||
|
||||
|
|
@ -415,7 +415,7 @@ void sub_35D54(void)
|
|||
gCurrentPinballGame->unk3EA += tempVec.y;
|
||||
if (deltaMagSquared < 2500)
|
||||
{
|
||||
if (gCurrentPinballGame->unk385 > 9)
|
||||
if (gCurrentPinballGame->bonusModeHitCount > 9)
|
||||
{
|
||||
if (gCurrentPinballGame->unk3DE == 66)
|
||||
{
|
||||
|
|
@ -614,9 +614,9 @@ void sub_35D54(void)
|
|||
gCurrentPinballGame->unk3E4 = 0;
|
||||
gCurrentPinballGame->unk3FA = 0;
|
||||
gCurrentPinballGame->scoreAddedInFrame = 500000;
|
||||
gCurrentPinballGame->unk385++;
|
||||
gCurrentPinballGame->bonusModeHitCount++;
|
||||
MPlayStart(&gMPlayInfo_SE1, &se_unk_101);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
break;
|
||||
case 12:
|
||||
if (gUnknown_086AE718[gCurrentPinballGame->unk3E2][1] > gCurrentPinballGame->unk3E4)
|
||||
|
|
@ -630,21 +630,21 @@ void sub_35D54(void)
|
|||
if (gCurrentPinballGame->unk3E2 == gCurrentPinballGame->unk3DE + 4)
|
||||
{
|
||||
gCurrentPinballGame->unk3E2 = gCurrentPinballGame->unk3DE + 3;
|
||||
if (gCurrentPinballGame->unk385 < 10)
|
||||
if (gCurrentPinballGame->bonusModeHitCount < 10)
|
||||
{
|
||||
gCurrentPinballGame->unk3DC = 13;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk294 = 3;
|
||||
gMain.unkF = 0x80;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_BONUS_BANNER;
|
||||
gCurrentPinballGame->unk388 = 2;
|
||||
gCurrentPinballGame->unk392 = 0;
|
||||
gCurrentPinballGame->unk3DC = 13;
|
||||
gCurrentPinballGame->unk404 = 0;
|
||||
gCurrentPinballGame->unk408 = 0;
|
||||
gCurrentPinballGame->unk406 = 0;
|
||||
gCurrentPinballGame->unk387 = 0;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -657,7 +657,7 @@ void sub_35D54(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (gCurrentPinballGame->unk385 > 9)
|
||||
if (gCurrentPinballGame->bonusModeHitCount > 9)
|
||||
{
|
||||
if (gCurrentPinballGame->unk3F6 == 0)
|
||||
{
|
||||
|
|
@ -797,22 +797,22 @@ void sub_36CB4(void)
|
|||
{
|
||||
gCurrentPinballGame->unk3F0 = 2 * (gCurrentPinballGame->unk3E8 / 10) + 144;
|
||||
gCurrentPinballGame->unk3F2 = 2 * (gCurrentPinballGame->unk3EA / 10) + 84;
|
||||
if (gCurrentPinballGame->unk385 < 10)
|
||||
gCurrentPinballGame->unk387 = 2;
|
||||
if (gCurrentPinballGame->bonusModeHitCount < 10)
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 2;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk3E2 >= 33 && gCurrentPinballGame->unk3E2 < 36)
|
||||
{
|
||||
gCurrentPinballGame->unk3F0 = 2 * (gCurrentPinballGame->unk3E8 / 10) + 240;
|
||||
gCurrentPinballGame->unk3F2 = 2 * (gCurrentPinballGame->unk3EA / 10) + 84;
|
||||
if (gCurrentPinballGame->unk385 < 10)
|
||||
gCurrentPinballGame->unk387 = 2;
|
||||
if (gCurrentPinballGame->bonusModeHitCount < 10)
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk3F0 = 2 * (gCurrentPinballGame->unk3E8 / 10) + 208;
|
||||
gCurrentPinballGame->unk3F2 = 2 * (gCurrentPinballGame->unk3EA / 10) + 56;
|
||||
if (gCurrentPinballGame->unk385 < 10)
|
||||
gCurrentPinballGame->unk387 = 1;
|
||||
if (gCurrentPinballGame->bonusModeHitCount < 10)
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 1;
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk400.x = (gCurrentPinballGame->unk3E8 / 10) + 120;
|
||||
|
|
@ -1135,7 +1135,7 @@ void sub_37850(void)
|
|||
if (gCurrentPinballGame->unk40C == 40)
|
||||
{
|
||||
m4aSongNumStart(SE_KECLEON_TREE_HIT);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
|
||||
if (var0 < 0)
|
||||
|
|
|
|||
|
|
@ -46,9 +46,9 @@ void KyogreBoardProcess_3A_383E4(void)
|
|||
gCurrentPinballGame->eventTimer = gCurrentPinballGame->timerBonus + 10800;
|
||||
gCurrentPinballGame->timerBonus = 0;
|
||||
if (gCurrentPinballGame->numCompletedBonusStages % 5 == 3)
|
||||
gCurrentPinballGame->unk384 = 18;
|
||||
gCurrentPinballGame->legendaryHitsRequired = 18;
|
||||
else
|
||||
gCurrentPinballGame->unk384 = 15;
|
||||
gCurrentPinballGame->legendaryHitsRequired = 15;
|
||||
|
||||
gCurrentPinballGame->unk390 = 0;
|
||||
gCurrentPinballGame->unk389 = 0;
|
||||
|
|
@ -57,11 +57,11 @@ void KyogreBoardProcess_3A_383E4(void)
|
|||
gCurrentPinballGame->unk388 = 3;
|
||||
gCurrentPinballGame->unk392 = 0;
|
||||
gCurrentPinballGame->ball->unk0 = 1;
|
||||
gCurrentPinballGame->unk386 = 0;
|
||||
gCurrentPinballGame->returnToMainBoardFlag = 0;
|
||||
gCurrentPinballGame->unk394 = 0;
|
||||
gCurrentPinballGame->unk38E = 0;
|
||||
gCurrentPinballGame->unk385 = 0;
|
||||
gCurrentPinballGame->unk387 = 0;
|
||||
gCurrentPinballGame->bonusModeHitCount = 0;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 0;
|
||||
gCurrentPinballGame->unk6C4 = 3;
|
||||
gCurrentPinballGame->unk3DF = 14;
|
||||
gCurrentPinballGame->unk3DC = 0;
|
||||
|
|
@ -155,12 +155,12 @@ void KyogreBoardProcess_3B_3869C(void)
|
|||
gMain.spriteGroups[5].available = 1;
|
||||
DmaCopy16(3, gKyogreBonusClear_Gfx, (void *)0x06015800, 0x2000);
|
||||
gCurrentPinballGame->unk394 = 136;
|
||||
gMain.unkF = 0x80;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_BONUS_BANNER;
|
||||
gCurrentPinballGame->unk5FA = 1;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
sub_351A8();
|
||||
ProceessBonusBannerAndScoring();
|
||||
if (gCurrentPinballGame->scoreCounterAnimationEnabled)
|
||||
gCurrentPinballGame->unk18 = 181;
|
||||
|
||||
|
|
@ -197,10 +197,10 @@ void KyogreBoardProcess_3B_3869C(void)
|
|||
gMain.spriteGroups[5].available = 1;
|
||||
DmaCopy16(3, gKyogreBonusClear_Gfx, (void *)0x06015800, 0x2000);
|
||||
gCurrentPinballGame->unk394 = 136;
|
||||
gMain.unkF = 0x80;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_BONUS_BANNER;
|
||||
break;
|
||||
case 5:
|
||||
sub_351A8();
|
||||
ProceessBonusBannerAndScoring();
|
||||
if (gCurrentPinballGame->scoreCounterAnimationEnabled)
|
||||
gCurrentPinballGame->unk18 = 181;
|
||||
|
||||
|
|
@ -223,8 +223,8 @@ void KyogreBoardProcess_3B_3869C(void)
|
|||
}
|
||||
break;
|
||||
case 6:
|
||||
sub_351A8();
|
||||
gCurrentPinballGame->unk386 = 1;
|
||||
ProceessBonusBannerAndScoring();
|
||||
gCurrentPinballGame->returnToMainBoardFlag = 1;
|
||||
gCurrentPinballGame->unk5FA = 1;
|
||||
}
|
||||
|
||||
|
|
@ -232,20 +232,20 @@ void KyogreBoardProcess_3B_3869C(void)
|
|||
sub_38A20();
|
||||
sub_395D8();
|
||||
sub_3AE14();
|
||||
if (gCurrentPinballGame->unk294 && gCurrentPinballGame->eventTimer < 2 && gMain.unkF == 0)
|
||||
if (gCurrentPinballGame->unk294 && gCurrentPinballGame->eventTimer < 2 && gMain.modeChangeFlags == MODE_CHANGE_NONE)
|
||||
{
|
||||
m4aMPlayAllStop();
|
||||
m4aSongNumStart(MUS_END_OF_BALL3);
|
||||
gMain.unkF |= 0x40;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_EXPIRED_BONUS;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk386)
|
||||
if (gCurrentPinballGame->returnToMainBoardFlag)
|
||||
{
|
||||
gCurrentPinballGame->unk5FA = 1;
|
||||
sub_350F0();
|
||||
FadeToMainBoard();
|
||||
}
|
||||
|
||||
sub_472E4();
|
||||
BonusStage_HandleModeChangeFlags();
|
||||
}
|
||||
|
||||
void sub_38A20(void)
|
||||
|
|
@ -262,10 +262,11 @@ void sub_38A20(void)
|
|||
if (gCurrentPinballGame->unk452 == 4)
|
||||
{
|
||||
MPlayStart(&gMPlayInfo_SE1, &se_unk_10a);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
gCurrentPinballGame->scoreAddedInFrame = 500000;
|
||||
gCurrentPinballGame->unk385++;
|
||||
if (gCurrentPinballGame->unk385 >= gCurrentPinballGame->unk384 && gCurrentPinballGame->unk387 == 1)
|
||||
gCurrentPinballGame->bonusModeHitCount++;
|
||||
if (gCurrentPinballGame->bonusModeHitCount >= gCurrentPinballGame->legendaryHitsRequired &&
|
||||
gCurrentPinballGame->boardEntityCollisionMode == 1)
|
||||
gCurrentPinballGame->unk3DC = 7;
|
||||
}
|
||||
}
|
||||
|
|
@ -312,7 +313,7 @@ void sub_38A20(void)
|
|||
if (gCurrentPinballGame->unk3E2 == 33)
|
||||
{
|
||||
MPlayStart(&gMPlayInfo_SE1, &se_unk_10b);
|
||||
gCurrentPinballGame->unk387 = 1;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -338,7 +339,7 @@ void sub_38A20(void)
|
|||
|
||||
if (gCurrentPinballGame->unk3E2 == 11)
|
||||
{
|
||||
gCurrentPinballGame->unk387 = 1;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 1;
|
||||
MPlayStart(&gMPlayInfo_SE1, &se_unk_10b);
|
||||
}
|
||||
}
|
||||
|
|
@ -361,7 +362,7 @@ void sub_38A20(void)
|
|||
|
||||
if (gCurrentPinballGame->unk3E2 == 5)
|
||||
{
|
||||
gCurrentPinballGame->unk387 = 0;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 0;
|
||||
MPlayStart(&gMPlayInfo_SE1, &se_unk_10c);
|
||||
}
|
||||
}
|
||||
|
|
@ -386,7 +387,7 @@ void sub_38A20(void)
|
|||
{
|
||||
if (gCurrentPinballGame->unk3DD == 3)
|
||||
{
|
||||
if (gCurrentPinballGame->unk385 >= gCurrentPinballGame->unk384)
|
||||
if (gCurrentPinballGame->bonusModeHitCount >= gCurrentPinballGame->legendaryHitsRequired)
|
||||
{
|
||||
gCurrentPinballGame->unk3E2 = 0;
|
||||
gCurrentPinballGame->unk3DC = 4;
|
||||
|
|
@ -483,8 +484,10 @@ void sub_38A20(void)
|
|||
break;
|
||||
case 7:
|
||||
gCurrentPinballGame->unk294 = 3;
|
||||
|
||||
if (gCurrentPinballGame->numCompletedBonusStages % 5 == 3)
|
||||
{
|
||||
// catch kyogre
|
||||
gCurrentPinballGame->unk3DC = 10;
|
||||
gCurrentPinballGame->unk3E2 = 0;
|
||||
gMain.spriteGroups[10].available = 1;
|
||||
|
|
@ -497,9 +500,10 @@ void sub_38A20(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
// normal completion
|
||||
gCurrentPinballGame->unk3DC = 9;
|
||||
gCurrentPinballGame->unk3E2 = 79;
|
||||
gMain.unkF = 0x80;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_BONUS_BANNER;
|
||||
gCurrentPinballGame->unk388 = 2;
|
||||
gCurrentPinballGame->unk392 = 0;
|
||||
}
|
||||
|
|
@ -533,7 +537,7 @@ void sub_38A20(void)
|
|||
|
||||
if (gCurrentPinballGame->unk3E2 == 97)
|
||||
{
|
||||
gCurrentPinballGame->unk387 = 0;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 0;
|
||||
MPlayStart(&gMPlayInfo_SE1, &se_unk_10f);
|
||||
}
|
||||
}
|
||||
|
|
@ -600,9 +604,9 @@ void sub_38A20(void)
|
|||
gCurrentPinballGame->unk3E4 = 0;
|
||||
gCurrentPinballGame->unk3E2 = 67;
|
||||
gCurrentPinballGame->unk3DC = 12;
|
||||
gCurrentPinballGame->unk387 = 2;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 2;
|
||||
MPlayStart(&gMPlayInfo_SE1, &se_unk_10b);
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
|
|
@ -633,15 +637,15 @@ void sub_38A20(void)
|
|||
}
|
||||
|
||||
if (gCurrentPinballGame->unk3E2 == 70)
|
||||
gCurrentPinballGame->unk387 = 3;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 3;
|
||||
|
||||
if (gCurrentPinballGame->unk3E2 == 73)
|
||||
gCurrentPinballGame->unk387 = 0;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 0;
|
||||
|
||||
if (gCurrentPinballGame->unk3E2 == 72)
|
||||
{
|
||||
MPlayStart(&gMPlayInfo_SE1, &se_unk_10c);
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -691,12 +695,12 @@ void sub_395D8(void)
|
|||
group->baseY = gCurrentPinballGame->unk3EA / 10 + 66u - gCurrentPinballGame->unk5A;
|
||||
gCurrentPinballGame->unk288 = gCurrentPinballGame->unk3E8 / 10 + 120;
|
||||
gCurrentPinballGame->unk28A = gCurrentPinballGame->unk3EA / 10 + 50;
|
||||
if (gCurrentPinballGame->unk387 == 2)
|
||||
if (gCurrentPinballGame->boardEntityCollisionMode == 2)
|
||||
{
|
||||
gCurrentPinballGame->unk3F0 = (gCurrentPinballGame->unk3E8 / 10) * 2 + 192;
|
||||
gCurrentPinballGame->unk3F2 = (gCurrentPinballGame->unk3EA / 10) * 2 + 134;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk387 == 3)
|
||||
else if (gCurrentPinballGame->boardEntityCollisionMode == 3)
|
||||
{
|
||||
gCurrentPinballGame->unk3F0 = (gCurrentPinballGame->unk3E8 / 10) * 2 + 192;
|
||||
gCurrentPinballGame->unk3F2 = (gCurrentPinballGame->unk3EA / 10) * 2 + 150;
|
||||
|
|
@ -1002,7 +1006,7 @@ void sub_39A40(void)
|
|||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
group = &gMain.spriteGroups[22 + i];
|
||||
if ((gMain.unkF & 0x80) == 0)
|
||||
if ((gMain.modeChangeFlags & MODE_CHANGE_BONUS_BANNER) == 0)
|
||||
{
|
||||
switch (gCurrentPinballGame->unk441[i]) {
|
||||
case 0:
|
||||
|
|
@ -1040,11 +1044,11 @@ void sub_39A40(void)
|
|||
yy = tempVector.y * tempVector.y;
|
||||
squaredMagnitude = xx + yy;
|
||||
if (gCurrentPinballGame->unk383 == 0 && gCurrentPinballGame->unk388 == 0 &&
|
||||
gCurrentPinballGame->unk385 < gCurrentPinballGame->unk384 &&
|
||||
gCurrentPinballGame->bonusModeHitCount < gCurrentPinballGame->legendaryHitsRequired &&
|
||||
gCurrentPinballGame->unk452 == 0 && squaredMagnitude < 400)
|
||||
{
|
||||
m4aSongNumStart(SE_UNKNOWN_0x113);
|
||||
sub_11B0(12);
|
||||
PlayRumble(12);
|
||||
gCurrentPinballGame->unk1F = 1;
|
||||
gCurrentPinballGame->unk458[i] = 0;
|
||||
gCurrentPinballGame->unk441[i] = 3;
|
||||
|
|
@ -1092,7 +1096,7 @@ void sub_39A40(void)
|
|||
{
|
||||
gCurrentPinballGame->unk458[i]++;
|
||||
if (gCurrentPinballGame->unk458[i] % 9 == 0)
|
||||
sub_11B0(12);
|
||||
PlayRumble(12);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1222,7 +1226,7 @@ void sub_39A40(void)
|
|||
gCurrentPinballGame->unk46C[2].y = 0x20 + scale / 8;
|
||||
gCurrentPinballGame->unk46C[3].y = 0x20 + scale / 8;
|
||||
|
||||
if ((gMain.unkF & 0xC0) == 0)
|
||||
if ((gMain.modeChangeFlags & MODE_CHANGE_EXPIRED_BONUS_BANNER) == 0)
|
||||
{
|
||||
gMain.blendControl = 0x1E10;
|
||||
gMain.blendAlpha = BLDALPHA_BLEND(var6, 16 - var6);
|
||||
|
|
@ -1255,13 +1259,13 @@ void sub_39A40(void)
|
|||
gCurrentPinballGame->unk448 = 0;
|
||||
gCurrentPinballGame->unk454 = 0;
|
||||
if (!gMain.spriteGroups[16].available)
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
|
||||
gMain.spriteGroups[16].available = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (gMain.unkF & 0xC0)
|
||||
if (gMain.modeChangeFlags & MODE_CHANGE_EXPIRED_BONUS_BANNER)
|
||||
gMain.spriteGroups[24].available = 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,9 +34,9 @@ void RayquazaBoardProcess_3A_3E79C(void)
|
|||
gCurrentPinballGame->unk17 = 0;
|
||||
gCurrentPinballGame->unk13 = 0;
|
||||
if (gCurrentPinballGame->numCompletedBonusStages % 10 == 9)
|
||||
gCurrentPinballGame->unk384 = 18;
|
||||
gCurrentPinballGame->legendaryHitsRequired = 18;
|
||||
else
|
||||
gCurrentPinballGame->unk384 = 15;
|
||||
gCurrentPinballGame->legendaryHitsRequired = 15;
|
||||
|
||||
gCurrentPinballGame->unk294 = 0;
|
||||
gCurrentPinballGame->eventTimer = gCurrentPinballGame->timerBonus + 10800;
|
||||
|
|
@ -45,12 +45,12 @@ void RayquazaBoardProcess_3A_3E79C(void)
|
|||
gCurrentPinballGame->unk392 = 0;
|
||||
gCurrentPinballGame->ball->unk0 = 1;
|
||||
gCurrentPinballGame->unkE6 = -88;
|
||||
gCurrentPinballGame->unk387 = 1;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 1;
|
||||
gCurrentPinballGame->unk6C4 = 3;
|
||||
gCurrentPinballGame->unk382 = 0;
|
||||
gCurrentPinballGame->unk383 = 0;
|
||||
gCurrentPinballGame->unk385 = 0;
|
||||
gCurrentPinballGame->unk386 = 0;
|
||||
gCurrentPinballGame->bonusModeHitCount = 0;
|
||||
gCurrentPinballGame->returnToMainBoardFlag = 0;
|
||||
gCurrentPinballGame->unk389 = 0;
|
||||
gCurrentPinballGame->unk38A = 0;
|
||||
gCurrentPinballGame->unk38C = 0;
|
||||
|
|
@ -60,8 +60,8 @@ void RayquazaBoardProcess_3A_3E79C(void)
|
|||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
gCurrentPinballGame->unk3C4[i].x = 0;
|
||||
gCurrentPinballGame->unk3C4[i].y = 0;
|
||||
gCurrentPinballGame->minionLogicPosition[i].x = 0;
|
||||
gCurrentPinballGame->minionLogicPosition[i].y = 0;
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk3DC = 0;
|
||||
|
|
@ -153,11 +153,11 @@ void RayquazaBoardProcess_3B_3EB2C(void)
|
|||
gMain.spriteGroups[5].available = 1;
|
||||
DmaCopy16(3, gRayquazaBonusClear_Gfx, (void *)0x06015800, 0x2000);
|
||||
gCurrentPinballGame->unk394 = 136;
|
||||
gMain.unkF = 0x80;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_BONUS_BANNER;
|
||||
gCurrentPinballGame->unk5FA = 1;
|
||||
break;
|
||||
case 3:
|
||||
sub_351A8();
|
||||
ProceessBonusBannerAndScoring();
|
||||
if (gCurrentPinballGame->scoreCounterAnimationEnabled)
|
||||
gCurrentPinballGame->unk18 = 181;
|
||||
|
||||
|
|
@ -194,10 +194,10 @@ void RayquazaBoardProcess_3B_3EB2C(void)
|
|||
gMain.spriteGroups[5].available = 1;
|
||||
DmaCopy16(3, gRayquazaBonusClear_Gfx, (void *)0x06015800, 0x2000);
|
||||
gCurrentPinballGame->unk394 = 136;
|
||||
gMain.unkF = 0x80;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_BONUS_BANNER;
|
||||
break;
|
||||
case 5:
|
||||
sub_351A8();
|
||||
ProceessBonusBannerAndScoring();
|
||||
if (gCurrentPinballGame->scoreCounterAnimationEnabled)
|
||||
gCurrentPinballGame->unk18 = 181;
|
||||
|
||||
|
|
@ -221,8 +221,8 @@ void RayquazaBoardProcess_3B_3EB2C(void)
|
|||
}
|
||||
break;
|
||||
case 6:
|
||||
sub_351A8();
|
||||
gCurrentPinballGame->unk386 = 1;
|
||||
ProceessBonusBannerAndScoring();
|
||||
gCurrentPinballGame->returnToMainBoardFlag = 1;
|
||||
gCurrentPinballGame->unk5FA = 1;
|
||||
break;
|
||||
}
|
||||
|
|
@ -231,20 +231,20 @@ void RayquazaBoardProcess_3B_3EB2C(void)
|
|||
sub_40288();
|
||||
sub_3EDF0();
|
||||
sub_3FAE0();
|
||||
if (gCurrentPinballGame->unk294 && gCurrentPinballGame->eventTimer < 2 && gMain.unkF == 0)
|
||||
if (gCurrentPinballGame->unk294 && gCurrentPinballGame->eventTimer < 2 && gMain.modeChangeFlags == MODE_CHANGE_NONE)
|
||||
{
|
||||
m4aMPlayAllStop();
|
||||
m4aSongNumStart(MUS_END_OF_BALL3);
|
||||
gMain.unkF |= 0x40;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_EXPIRED_BONUS;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk386)
|
||||
if (gCurrentPinballGame->returnToMainBoardFlag)
|
||||
{
|
||||
gCurrentPinballGame->unk5FA = 1;
|
||||
sub_350F0();
|
||||
FadeToMainBoard();
|
||||
}
|
||||
|
||||
sub_472E4();
|
||||
BonusStage_HandleModeChangeFlags();
|
||||
}
|
||||
|
||||
void sub_3EDF0(void)
|
||||
|
|
@ -257,9 +257,9 @@ void sub_3EDF0(void)
|
|||
{
|
||||
m4aSongNumStart(SE_RAYQUAZA_HIT);
|
||||
gCurrentPinballGame->scoreAddedInFrame = 1000000;
|
||||
gCurrentPinballGame->unk385++;
|
||||
sub_11B0(7);
|
||||
if (gCurrentPinballGame->unk385 >= gCurrentPinballGame->unk384 && gCurrentPinballGame->unk3DC != 6)
|
||||
gCurrentPinballGame->bonusModeHitCount++;
|
||||
PlayRumble(7);
|
||||
if (gCurrentPinballGame->bonusModeHitCount >= gCurrentPinballGame->legendaryHitsRequired && gCurrentPinballGame->unk3DC != 6)
|
||||
gCurrentPinballGame->unk3DC = 9;
|
||||
}
|
||||
|
||||
|
|
@ -271,11 +271,11 @@ void sub_3EDF0(void)
|
|||
if (gCurrentPinballGame->unk50C)
|
||||
{
|
||||
gCurrentPinballGame->unk50C--;
|
||||
gCurrentPinballGame->unk387 = 0;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk387 = 1;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = 1;
|
||||
}
|
||||
|
||||
switch (gCurrentPinballGame->unk3DC)
|
||||
|
|
@ -409,7 +409,7 @@ void sub_3EDF0(void)
|
|||
}
|
||||
else if (gCurrentPinballGame->unk3DD == 6)
|
||||
{
|
||||
if (gCurrentPinballGame->unk385 >= gCurrentPinballGame->unk384 - 1)
|
||||
if (gCurrentPinballGame->bonusModeHitCount >= gCurrentPinballGame->legendaryHitsRequired - 1)
|
||||
{
|
||||
gCurrentPinballGame->unk3E2 = 13;
|
||||
gCurrentPinballGame->unk3DC = 4;
|
||||
|
|
@ -559,6 +559,7 @@ void sub_3EDF0(void)
|
|||
gCurrentPinballGame->unk294 = 3;
|
||||
if (gCurrentPinballGame->numCompletedBonusStages % 10 == 9)
|
||||
{
|
||||
// Catch Rayquaza
|
||||
gCurrentPinballGame->unk3DC = 14;
|
||||
gCurrentPinballGame->unk3E2 = 0;
|
||||
gMain.spriteGroups[10].available = 1;
|
||||
|
|
@ -571,9 +572,10 @@ void sub_3EDF0(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
// Normal Completion
|
||||
gCurrentPinballGame->unk3DC = 10;
|
||||
gCurrentPinballGame->unk3E2 = 98;
|
||||
gMain.unkF = 0x80;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_BONUS_BANNER;
|
||||
gCurrentPinballGame->unk388 = 2;
|
||||
gCurrentPinballGame->unk392 = 0;
|
||||
}
|
||||
|
|
@ -642,12 +644,12 @@ void sub_3EDF0(void)
|
|||
gCurrentPinballGame->unk506 = 2;
|
||||
gCurrentPinballGame->unk516 = 0;
|
||||
gCurrentPinballGame->unk5FA = 1;
|
||||
gMain.unkF = 0x80;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_BONUS_BANNER;
|
||||
gMain.spriteGroups[14].available = 1;
|
||||
gCurrentPinballGame->unk3C4[0].x = 0;
|
||||
gCurrentPinballGame->unk3C4[0].y = -5000;
|
||||
gCurrentPinballGame->unk3C4[1].x = 1400;
|
||||
gCurrentPinballGame->unk3C4[1].y = -2000;
|
||||
gCurrentPinballGame->minionLogicPosition[0].x = 0;
|
||||
gCurrentPinballGame->minionLogicPosition[0].y = -5000;
|
||||
gCurrentPinballGame->minionLogicPosition[1].x = 1400;
|
||||
gCurrentPinballGame->minionLogicPosition[1].y = -2000;
|
||||
gCurrentPinballGame->unk418.x = -200;
|
||||
gCurrentPinballGame->unk418.y = 800;
|
||||
gCurrentPinballGame->unk414.x = 24;
|
||||
|
|
@ -888,7 +890,7 @@ void sub_3FAE0(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
if ((gMain.unkF & 0xC0) == 0)
|
||||
if ((gMain.modeChangeFlags & MODE_CHANGE_EXPIRED_BONUS_BANNER) == 0)
|
||||
{
|
||||
gMain.blendControl = 0x1E10;
|
||||
gMain.blendAlpha = BLDALPHA_BLEND(var2, 0x10 - var2);
|
||||
|
|
@ -1088,14 +1090,14 @@ void sub_40288(void)
|
|||
yy = tempVector.y * tempVector.y;
|
||||
squaredMagnitude = xx + yy;
|
||||
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
if (gCurrentPinballGame->unk441[0] < 3 && gCurrentPinballGame->unk441[1] < 3 &&
|
||||
gCurrentPinballGame->unk388 == 0 && squaredMagnitude < 200)
|
||||
{
|
||||
gMain.spriteGroups[36].available = 1;
|
||||
gCurrentPinballGame->unk486 = 600;
|
||||
m4aSongNumStart(SE_UNKNOWN_0x12A);
|
||||
sub_11B0(9);
|
||||
PlayRumble(9);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1263,7 +1265,7 @@ void sub_40288(void)
|
|||
yy = tempVector.y * tempVector.y;
|
||||
squaredMagnitude = xx + yy;
|
||||
if (gCurrentPinballGame->unk383 == 0 && gCurrentPinballGame->unk388 == 0 &&
|
||||
gCurrentPinballGame->unk385 < gCurrentPinballGame->unk384 &&
|
||||
gCurrentPinballGame->bonusModeHitCount < gCurrentPinballGame->legendaryHitsRequired &&
|
||||
gCurrentPinballGame->unk452 == 0 && squaredMagnitude < 300)
|
||||
{
|
||||
gCurrentPinballGame->unk486 = 6;
|
||||
|
|
@ -1284,7 +1286,7 @@ void sub_40288(void)
|
|||
gCurrentPinballGame->unk520.x = gCurrentPinballGame->unk45C[i].x;
|
||||
gCurrentPinballGame->unk520.y = gCurrentPinballGame->unk45C[i].y;
|
||||
m4aSongNumStart(SE_UNKNOWN_0x12B);
|
||||
sub_11B0(13);
|
||||
PlayRumble(13);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1360,7 +1362,7 @@ void sub_40288(void)
|
|||
gCurrentPinballGame->ball->velocity.x = 0;
|
||||
gCurrentPinballGame->unk441[i] = 0;
|
||||
gCurrentPinballGame->unk5FA = 0;
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk458[i]++;
|
||||
|
|
@ -1685,7 +1687,7 @@ void sub_417F8(void)
|
|||
if (gCurrentPinballGame->unk441[0] < 3 && gCurrentPinballGame->unk441[1] < 3 && gCurrentPinballGame->unk388 == 0)
|
||||
{
|
||||
gCurrentPinballGame->ball->velocity.x += 500;
|
||||
sub_11B0(13);
|
||||
PlayRumble(13);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1714,7 +1716,7 @@ void sub_417F8(void)
|
|||
if (gCurrentPinballGame->unk441[0] < 3 && gCurrentPinballGame->unk441[1] < 3 && gCurrentPinballGame->unk388 == 0)
|
||||
{
|
||||
gCurrentPinballGame->ball->velocity.x -= 500;
|
||||
sub_11B0(13);
|
||||
PlayRumble(13);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1843,59 +1845,59 @@ void sub_423D8(void)
|
|||
|
||||
if (gCurrentPinballGame->unk516 == 1)
|
||||
{
|
||||
gCurrentPinballGame->unk3C4[0].x = 300;
|
||||
gCurrentPinballGame->unk3C4[0].y = 1200;
|
||||
gCurrentPinballGame->unk3C4[1].x = 1200;
|
||||
gCurrentPinballGame->unk3C4[1].y = 400;
|
||||
gCurrentPinballGame->unk3C4[2].x = 1000;
|
||||
gCurrentPinballGame->unk3C4[2].y = 2500;
|
||||
gCurrentPinballGame->minionLogicPosition[0].x = 300;
|
||||
gCurrentPinballGame->minionLogicPosition[0].y = 1200;
|
||||
gCurrentPinballGame->minionLogicPosition[1].x = 1200;
|
||||
gCurrentPinballGame->minionLogicPosition[1].y = 400;
|
||||
gCurrentPinballGame->minionLogicPosition[2].x = 1000;
|
||||
gCurrentPinballGame->minionLogicPosition[2].y = 2500;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk516 == 88)
|
||||
{
|
||||
gCurrentPinballGame->unk3C4[0].x = 1600;
|
||||
gCurrentPinballGame->unk3C4[0].y = 1800;
|
||||
gCurrentPinballGame->minionLogicPosition[0].x = 1600;
|
||||
gCurrentPinballGame->minionLogicPosition[0].y = 1800;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk516 == 120)
|
||||
{
|
||||
gCurrentPinballGame->unk3C4[1].x = 600;
|
||||
gCurrentPinballGame->unk3C4[1].y = 1800;
|
||||
gCurrentPinballGame->minionLogicPosition[1].x = 600;
|
||||
gCurrentPinballGame->minionLogicPosition[1].y = 1800;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk516 == 170)
|
||||
{
|
||||
gCurrentPinballGame->unk3C4[2].x = 1800;
|
||||
gCurrentPinballGame->unk3C4[2].y = 2000;
|
||||
gCurrentPinballGame->minionLogicPosition[2].x = 1800;
|
||||
gCurrentPinballGame->minionLogicPosition[2].y = 2000;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk516 == 215)
|
||||
{
|
||||
gCurrentPinballGame->unk3C4[0].x = 0;
|
||||
gCurrentPinballGame->unk3C4[0].y = 2000;
|
||||
gCurrentPinballGame->minionLogicPosition[0].x = 0;
|
||||
gCurrentPinballGame->minionLogicPosition[0].y = 2000;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk516 == 305)
|
||||
{
|
||||
gCurrentPinballGame->unk3C4[1].x = 1800;
|
||||
gCurrentPinballGame->unk3C4[1].y = 1800;
|
||||
gCurrentPinballGame->minionLogicPosition[1].x = 1800;
|
||||
gCurrentPinballGame->minionLogicPosition[1].y = 1800;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk516 == 315)
|
||||
{
|
||||
gCurrentPinballGame->unk3C4[2].x = 300;
|
||||
gCurrentPinballGame->unk3C4[2].y = 1800;
|
||||
gCurrentPinballGame->minionLogicPosition[2].x = 300;
|
||||
gCurrentPinballGame->minionLogicPosition[2].y = 1800;
|
||||
}
|
||||
|
||||
group = &gMain.spriteGroups[11];
|
||||
if (group->available)
|
||||
{
|
||||
group->baseX = gCurrentPinballGame->unk3C4[0].x / 10;
|
||||
group->baseY = gCurrentPinballGame->unk3C4[0].y / 10;
|
||||
group->baseX = gCurrentPinballGame->minionLogicPosition[0].x / 10;
|
||||
group->baseY = gCurrentPinballGame->minionLogicPosition[0].y / 10;
|
||||
if (group->baseY <= -60)
|
||||
group->baseY = -60;
|
||||
else
|
||||
gCurrentPinballGame->unk3C4[0].y -= 20;
|
||||
gCurrentPinballGame->minionLogicPosition[0].y -= 20;
|
||||
|
||||
if (group->baseY > 200)
|
||||
group->baseY = 180;
|
||||
|
|
@ -1911,12 +1913,12 @@ void sub_423D8(void)
|
|||
group = &gMain.spriteGroups[12];
|
||||
if (group->available)
|
||||
{
|
||||
group->baseX = gCurrentPinballGame->unk3C4[1].x / 10;
|
||||
group->baseY = gCurrentPinballGame->unk3C4[1].y / 10;
|
||||
group->baseX = gCurrentPinballGame->minionLogicPosition[1].x / 10;
|
||||
group->baseY = gCurrentPinballGame->minionLogicPosition[1].y / 10;
|
||||
if (group->baseY <= -60)
|
||||
group->baseY = -60;
|
||||
else
|
||||
gCurrentPinballGame->unk3C4[1].y -= 12;
|
||||
gCurrentPinballGame->minionLogicPosition[1].y -= 12;
|
||||
|
||||
if (group->baseY > 200)
|
||||
group->baseY = 180;
|
||||
|
|
@ -1932,12 +1934,12 @@ void sub_423D8(void)
|
|||
group = &gMain.spriteGroups[13];
|
||||
if (group->available)
|
||||
{
|
||||
group->baseX = gCurrentPinballGame->unk3C4[2].x / 10;
|
||||
group->baseY = gCurrentPinballGame->unk3C4[2].y / 10;
|
||||
group->baseX = gCurrentPinballGame->minionLogicPosition[2].x / 10;
|
||||
group->baseY = gCurrentPinballGame->minionLogicPosition[2].y / 10;
|
||||
if (group->baseY <= -60)
|
||||
group->baseY = -60;
|
||||
else
|
||||
gCurrentPinballGame->unk3C4[2].y -= 18;
|
||||
gCurrentPinballGame->minionLogicPosition[2].y -= 18;
|
||||
|
||||
if (group->baseY > 200)
|
||||
group->baseY = 180;
|
||||
|
|
@ -2016,12 +2018,12 @@ void sub_423D8(void)
|
|||
group = &gMain.spriteGroups[11];
|
||||
if (group->available)
|
||||
{
|
||||
group->baseX = gCurrentPinballGame->unk3C4[0].x / 10;
|
||||
group->baseY = gCurrentPinballGame->unk3C4[0].y / 10;
|
||||
group->baseX = gCurrentPinballGame->minionLogicPosition[0].x / 10;
|
||||
group->baseY = gCurrentPinballGame->minionLogicPosition[0].y / 10;
|
||||
if (group->baseY > 180)
|
||||
group->baseY = 180;
|
||||
else if (gCurrentPinballGame->unk516 < 256)
|
||||
gCurrentPinballGame->unk3C4[0].y += 20;
|
||||
gCurrentPinballGame->minionLogicPosition[0].y += 20;
|
||||
|
||||
if (group->baseY < -60)
|
||||
group->baseY = -60;
|
||||
|
|
@ -2037,12 +2039,12 @@ void sub_423D8(void)
|
|||
group = &gMain.spriteGroups[12];
|
||||
if (group->available)
|
||||
{
|
||||
group->baseX = gCurrentPinballGame->unk3C4[1].x / 10;
|
||||
group->baseY = gCurrentPinballGame->unk3C4[1].y / 10;
|
||||
group->baseX = gCurrentPinballGame->minionLogicPosition[1].x / 10;
|
||||
group->baseY = gCurrentPinballGame->minionLogicPosition[1].y / 10;
|
||||
if (group->baseY > 180)
|
||||
group->baseY = 180;
|
||||
else if (gCurrentPinballGame->unk516 < 256)
|
||||
gCurrentPinballGame->unk3C4[1].y += 10;
|
||||
gCurrentPinballGame->minionLogicPosition[1].y += 10;
|
||||
|
||||
if (group->baseY < -60)
|
||||
group->baseY = -60;
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ void RubyBoardProcess_3B_19B10(void)
|
|||
sub_19B90();
|
||||
sub_19E10();
|
||||
|
||||
if (gMain.unkF == 0)
|
||||
if (gMain.modeChangeFlags == MODE_CHANGE_NONE)
|
||||
{
|
||||
sub_19F70();
|
||||
}
|
||||
|
|
@ -287,7 +287,7 @@ void sub_19E10(void)
|
|||
{
|
||||
sub_225F0();
|
||||
}
|
||||
sub_472E4();
|
||||
BonusStage_HandleModeChangeFlags();
|
||||
|
||||
if (gCurrentPinballGame->unk1328 != 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ void SapphireBoardProcess_3B_3276C(void)
|
|||
sub_19B90();
|
||||
sub_327C0();
|
||||
|
||||
if (!gMain.unkF)
|
||||
if (!gMain.modeChangeFlags)
|
||||
sub_328C8();
|
||||
|
||||
sub_32DF8();
|
||||
|
|
@ -118,7 +118,7 @@ void sub_327C0(void)
|
|||
if (gCurrentPinballGame->unk194)
|
||||
sub_225F0();
|
||||
|
||||
sub_472E4();
|
||||
BonusStage_HandleModeChangeFlags();
|
||||
}
|
||||
|
||||
void sub_328C8(void)
|
||||
|
|
@ -134,13 +134,13 @@ void sub_328C8(void)
|
|||
sub_2E67C();
|
||||
sub_31144();
|
||||
|
||||
if (!(gMain.unkF & 0x20))
|
||||
if (!(gMain.modeChangeFlags & MODE_CHANGE_END_OF_GAME))
|
||||
sub_2F79C();
|
||||
}
|
||||
|
||||
void sub_32914(void)
|
||||
{
|
||||
if (gMain.unkF != 0)
|
||||
if (gMain.modeChangeFlags != MODE_CHANGE_NONE)
|
||||
return;
|
||||
|
||||
switch (gCurrentPinballGame->unk25)
|
||||
|
|
@ -263,7 +263,7 @@ void sub_32B74(void)
|
|||
gCurrentPinballGame->scoreAddedInFrame = 50000;
|
||||
|
||||
m4aSongNumStart(SE_UNKNOWN_0xD5);
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
|
||||
void sub_32BE4(void)
|
||||
|
|
@ -345,7 +345,7 @@ void sub_32BE4(void)
|
|||
gCurrentPinballGame->ball->unk6 = 0;
|
||||
gCurrentPinballGame->ball->velocity.x = -0x66;
|
||||
gCurrentPinballGame->ball->velocity.y = 0xC8;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
gCurrentPinballGame->ball->unk6 = 0;
|
||||
gCurrentPinballGame->ball->positionQ0.x = 0xAB;
|
||||
gCurrentPinballGame->ball->positionQ0.y = 0xD4;
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ void SphealBoardProcess_3A_42E48(void)
|
|||
gCurrentPinballGame->ball->velocity.x = 0;
|
||||
gCurrentPinballGame->ball->velocity.y = 0;
|
||||
gCurrentPinballGame->ball->unk6 = 0;
|
||||
gCurrentPinballGame->unk386 = 0;
|
||||
gCurrentPinballGame->returnToMainBoardFlag = 0;
|
||||
gCurrentPinballGame->unk53A = 0;
|
||||
gCurrentPinballGame->unk542 = 0;
|
||||
gCurrentPinballGame->unk544 = 0;
|
||||
|
|
@ -73,9 +73,9 @@ void SphealBoardProcess_3A_42E48(void)
|
|||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
gCurrentPinballGame->unk3A0[i] = 0;
|
||||
gCurrentPinballGame->unk3A3[i] = 0;
|
||||
gCurrentPinballGame->unk3B0[i] = 0;
|
||||
gCurrentPinballGame->minionState[i] = 0;
|
||||
gCurrentPinballGame->minionFramesetIx[i] = 0;
|
||||
gCurrentPinballGame->minionStateTimer[i] = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
|
|
@ -171,7 +171,7 @@ void SphealBoardProcess_3B_43228(void)
|
|||
{
|
||||
m4aMPlayAllStop();
|
||||
MPlayStart(&gMPlayInfo_SE1, &se_unk_13b);
|
||||
gMain.unkF = 0x80;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_BONUS_BANNER;
|
||||
gCurrentPinballGame->unk388 = 2;
|
||||
gCurrentPinballGame->unk392 = 0;
|
||||
}
|
||||
|
|
@ -257,7 +257,7 @@ void SphealBoardProcess_3B_43228(void)
|
|||
break;
|
||||
case 5:
|
||||
sub_45E90();
|
||||
gCurrentPinballGame->unk386 = 1;
|
||||
gCurrentPinballGame->returnToMainBoardFlag = 1;
|
||||
gCurrentPinballGame->unk5FA = 1;
|
||||
break;
|
||||
}
|
||||
|
|
@ -266,13 +266,13 @@ void SphealBoardProcess_3B_43228(void)
|
|||
sub_43500();
|
||||
sub_44D58();
|
||||
sub_45E08();
|
||||
if (gCurrentPinballGame->unk386)
|
||||
if (gCurrentPinballGame->returnToMainBoardFlag)
|
||||
{
|
||||
gCurrentPinballGame->unk5FA = 1;
|
||||
sub_350F0();
|
||||
FadeToMainBoard();
|
||||
}
|
||||
|
||||
sub_472E4();
|
||||
BonusStage_HandleModeChangeFlags();
|
||||
}
|
||||
|
||||
void sub_43500(void)
|
||||
|
|
@ -282,10 +282,10 @@ void sub_43500(void)
|
|||
struct OamDataSimple *oamSimple;
|
||||
s16 var0;
|
||||
|
||||
if (gCurrentPinballGame->unk13 < 2 && gMain.unkF == 0)
|
||||
if (gCurrentPinballGame->unk13 < 2 && gMain.modeChangeFlags == MODE_CHANGE_NONE)
|
||||
sub_455D0();
|
||||
|
||||
if (gCurrentPinballGame->unk13 < 2 && gMain.unkF == 0)
|
||||
if (gCurrentPinballGame->unk13 < 2 && gMain.modeChangeFlags == MODE_CHANGE_NONE)
|
||||
{
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
|
|
@ -293,15 +293,15 @@ void sub_43500(void)
|
|||
{
|
||||
MPlayStart(&gMPlayInfo_SE1, &se_unk_13c);
|
||||
gCurrentPinballGame->scoreAddedInFrame = 5000;
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
|
||||
switch (gCurrentPinballGame->unk3A0[i])
|
||||
switch (gCurrentPinballGame->minionState[i])
|
||||
{
|
||||
case 0:
|
||||
gCurrentPinballGame->unk3B0[i] = 0;
|
||||
gCurrentPinballGame->unk3A3[i] = 4;
|
||||
gCurrentPinballGame->unk3A0[i] = 1;
|
||||
gCurrentPinballGame->minionStateTimer[i] = 0;
|
||||
gCurrentPinballGame->minionFramesetIx[i] = 4;
|
||||
gCurrentPinballGame->minionState[i] = 1;
|
||||
break;
|
||||
case 1:
|
||||
if (gCurrentPinballGame->unk548[i] > 0)
|
||||
|
|
@ -310,16 +310,16 @@ void sub_43500(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (gUnknown_086AFAE2[gCurrentPinballGame->unk3A3[i]][0] > gCurrentPinballGame->unk3B0[i])
|
||||
if (gUnknown_086AFAE2[gCurrentPinballGame->minionFramesetIx[i]][0] > gCurrentPinballGame->minionStateTimer[i])
|
||||
{
|
||||
gCurrentPinballGame->unk3B0[i]++;
|
||||
gCurrentPinballGame->minionStateTimer[i]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk3B0[i] = 0;
|
||||
gCurrentPinballGame->unk3A3[i]++;
|
||||
if (gCurrentPinballGame->unk3A3[i] == 6)
|
||||
gCurrentPinballGame->unk3A3[i] = 4;
|
||||
gCurrentPinballGame->minionStateTimer[i] = 0;
|
||||
gCurrentPinballGame->minionFramesetIx[i]++;
|
||||
if (gCurrentPinballGame->minionFramesetIx[i] == 6)
|
||||
gCurrentPinballGame->minionFramesetIx[i] = 4;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -330,14 +330,14 @@ void sub_43500(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (gCurrentPinballGame->unk3B0[i] != 0)
|
||||
if (gCurrentPinballGame->minionStateTimer[i] != 0)
|
||||
{
|
||||
gCurrentPinballGame->unk3B0[i]--;
|
||||
gCurrentPinballGame->unk3A3[i] = 8;
|
||||
gCurrentPinballGame->minionStateTimer[i]--;
|
||||
gCurrentPinballGame->minionFramesetIx[i] = 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk3A3[i] = 7;
|
||||
gCurrentPinballGame->minionFramesetIx[i] = 7;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -348,18 +348,18 @@ void sub_43500(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (gUnknown_086AFAE2[gCurrentPinballGame->unk3A3[i]][0] > gCurrentPinballGame->unk3B0[i])
|
||||
if (gUnknown_086AFAE2[gCurrentPinballGame->minionFramesetIx[i]][0] > gCurrentPinballGame->minionStateTimer[i])
|
||||
{
|
||||
gCurrentPinballGame->unk3B0[i]++;
|
||||
gCurrentPinballGame->minionStateTimer[i]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk3B0[i] = 0;
|
||||
gCurrentPinballGame->unk3A3[i]++;
|
||||
if (gCurrentPinballGame->unk3A3[i] > 14)
|
||||
gCurrentPinballGame->minionStateTimer[i] = 0;
|
||||
gCurrentPinballGame->minionFramesetIx[i]++;
|
||||
if (gCurrentPinballGame->minionFramesetIx[i] > 14)
|
||||
{
|
||||
gCurrentPinballGame->unk3A3[i] = 4;
|
||||
gCurrentPinballGame->unk3A0[i] = 1;
|
||||
gCurrentPinballGame->minionFramesetIx[i] = 4;
|
||||
gCurrentPinballGame->minionState[i] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -376,7 +376,7 @@ void sub_43500(void)
|
|||
if (gCurrentPinballGame->unk548[0] > 0)
|
||||
var0 = 0;
|
||||
else
|
||||
var0 = gUnknown_086AFAE0[gCurrentPinballGame->unk3A3[0]][0];
|
||||
var0 = gUnknown_086AFAE0[gCurrentPinballGame->minionFramesetIx[0]][0];
|
||||
|
||||
DmaCopy16(3, gUnknown_084B47EC[var0], (void *)0x060114A0, 0x600);
|
||||
oamSimple = &group->oam[0];
|
||||
|
|
@ -392,7 +392,7 @@ void sub_43500(void)
|
|||
if (gCurrentPinballGame->unk548[1] > 0)
|
||||
var0 = 0;
|
||||
else
|
||||
var0 = gUnknown_086AFAE0[gCurrentPinballGame->unk3A3[1]][0];
|
||||
var0 = gUnknown_086AFAE0[gCurrentPinballGame->minionFramesetIx[1]][0];
|
||||
|
||||
DmaCopy16(3, gUnknown_084B47EC[var0], (void *)0x06010CA0, 0x600);
|
||||
oamSimple = &group->oam[0];
|
||||
|
|
@ -416,7 +416,7 @@ void sub_4387C(void)
|
|||
s16 var4;
|
||||
const struct Unk_086AFAC0 *var5;
|
||||
|
||||
if (gCurrentPinballGame->unk13 == 1 && gMain.unkF == 0)
|
||||
if (gCurrentPinballGame->unk13 == 1 && gMain.modeChangeFlags == MODE_CHANGE_NONE)
|
||||
{
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
|
|
@ -561,7 +561,7 @@ void sub_4387C(void)
|
|||
}
|
||||
}
|
||||
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
gCurrentPinballGame->unk54F[i] = 0;
|
||||
gCurrentPinballGame->scoreAddedInFrame = 3000;
|
||||
break;
|
||||
|
|
@ -955,7 +955,7 @@ void sub_44D58(void)
|
|||
if (gCurrentPinballGame->unk13 == 1)
|
||||
gMain.spriteGroups[11].available = 1;
|
||||
|
||||
if (gCurrentPinballGame->unk13 < 2 && gMain.unkF == 0 && gCurrentPinballGame->unk542)
|
||||
if (gCurrentPinballGame->unk13 < 2 && gMain.modeChangeFlags == MODE_CHANGE_NONE && gCurrentPinballGame->unk542)
|
||||
{
|
||||
if (gCurrentPinballGame->unk542 == 21)
|
||||
MPlayStart(&gMPlayInfo_SE1, &se_unk_138);
|
||||
|
|
@ -1024,7 +1024,7 @@ void sub_44F3C(void)
|
|||
gCurrentPinballGame->ball->velocity.x = -0x60;
|
||||
gCurrentPinballGame->ball->velocity.y = 0x54;
|
||||
gCurrentPinballGame->ball->oamPriority = 3;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk591 == 2)
|
||||
|
|
@ -1143,7 +1143,7 @@ void sub_45164(void)
|
|||
gCurrentPinballGame->unk24 = 0;
|
||||
gCurrentPinballGame->unk7E = 0;
|
||||
m4aSongNumStart(SE_UNKNOWN_0xE5);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
|
||||
gCurrentPinballGame->ball->positionQ1.x = gCurrentPinballGame->ball->positionQ0.x * 2;
|
||||
|
|
@ -1173,18 +1173,18 @@ void sub_455D0(void)
|
|||
break;
|
||||
case 1:
|
||||
var0 = gCurrentPinballGame->unk530[i];
|
||||
gCurrentPinballGame->unk3A0[var0] = 2;
|
||||
gCurrentPinballGame->unk3B0[var0] = 0;
|
||||
gCurrentPinballGame->unk3A3[var0] = 7;
|
||||
gCurrentPinballGame->minionState[var0] = 2;
|
||||
gCurrentPinballGame->minionStateTimer[var0] = 0;
|
||||
gCurrentPinballGame->minionFramesetIx[var0] = 7;
|
||||
if (gCurrentPinballGame->unk53C[i])
|
||||
{
|
||||
gCurrentPinballGame->unk53C[i]--;
|
||||
if (gCurrentPinballGame->unk53C[i] == 0)
|
||||
{
|
||||
gCurrentPinballGame->unk536[i] = 0;
|
||||
gCurrentPinballGame->unk3A0[var0] = 1;
|
||||
gCurrentPinballGame->unk3B0[var0] = 0;
|
||||
gCurrentPinballGame->unk3A3[var0] = 4;
|
||||
gCurrentPinballGame->minionState[var0] = 1;
|
||||
gCurrentPinballGame->minionStateTimer[var0] = 0;
|
||||
gCurrentPinballGame->minionFramesetIx[var0] = 4;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -1198,9 +1198,9 @@ void sub_455D0(void)
|
|||
|
||||
gCurrentPinballGame->unk536[i] = 3;
|
||||
gCurrentPinballGame->unk533[i] = 0;
|
||||
gCurrentPinballGame->unk3A0[var0] = 2;
|
||||
gCurrentPinballGame->unk3B0[var0] = 0;
|
||||
gCurrentPinballGame->unk3A3[var0] = 7;
|
||||
gCurrentPinballGame->minionState[var0] = 2;
|
||||
gCurrentPinballGame->minionStateTimer[var0] = 0;
|
||||
gCurrentPinballGame->minionFramesetIx[var0] = 7;
|
||||
break;
|
||||
case 3:
|
||||
var0 = gCurrentPinballGame->unk530[i];
|
||||
|
|
@ -1225,9 +1225,9 @@ void sub_455D0(void)
|
|||
{
|
||||
gCurrentPinballGame->unk533[i] = 0;
|
||||
gCurrentPinballGame->unk536[i] = 5;
|
||||
gCurrentPinballGame->unk3A0[var0] = 3;
|
||||
gCurrentPinballGame->unk3A3[var0] = 15;
|
||||
gCurrentPinballGame->unk3B0[var0] = 0;
|
||||
gCurrentPinballGame->minionState[var0] = 3;
|
||||
gCurrentPinballGame->minionFramesetIx[var0] = 15;
|
||||
gCurrentPinballGame->minionStateTimer[var0] = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -1241,9 +1241,9 @@ void sub_455D0(void)
|
|||
gCurrentPinballGame->unk580[i].y = 0x6600;
|
||||
gCurrentPinballGame->unk578[i].y = 0xFED4;
|
||||
gCurrentPinballGame->unk553[i] = 13;
|
||||
gCurrentPinballGame->unk3A0[var0] = 2;
|
||||
gCurrentPinballGame->unk3A3[var0] = 8;
|
||||
gCurrentPinballGame->unk3B0[var0] = 12;
|
||||
gCurrentPinballGame->minionState[var0] = 2;
|
||||
gCurrentPinballGame->minionFramesetIx[var0] = 8;
|
||||
gCurrentPinballGame->minionStateTimer[var0] = 12;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1251,9 +1251,9 @@ void sub_455D0(void)
|
|||
gCurrentPinballGame->unk578[i].y = 0xFE70;
|
||||
gCurrentPinballGame->unk533[i] = 0;
|
||||
gCurrentPinballGame->unk536[i] = 4;
|
||||
gCurrentPinballGame->unk3A0[var0] = 3;
|
||||
gCurrentPinballGame->unk3A3[var0] = 11;
|
||||
gCurrentPinballGame->unk3B0[var0] = 0;
|
||||
gCurrentPinballGame->minionState[var0] = 3;
|
||||
gCurrentPinballGame->minionFramesetIx[var0] = 11;
|
||||
gCurrentPinballGame->minionStateTimer[var0] = 0;
|
||||
gCurrentPinballGame->unk542 = 100;
|
||||
gCurrentPinballGame->unk52C[0]++;
|
||||
}
|
||||
|
|
@ -1278,14 +1278,14 @@ void sub_455D0(void)
|
|||
{
|
||||
gCurrentPinballGame->unk533[i]++;
|
||||
MPlayStart(&gMPlayInfo_SE1, &se_unk_13d);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
if (gCurrentPinballGame->unk533[i] < 3)
|
||||
{
|
||||
gCurrentPinballGame->ball->positionQ8.y = 0x6500;
|
||||
gCurrentPinballGame->ball->velocity.y = -0x5A;
|
||||
gCurrentPinballGame->unk3A0[var0] = 2;
|
||||
gCurrentPinballGame->unk3A3[var0] = 8;
|
||||
gCurrentPinballGame->unk3B0[var0] = 12;
|
||||
gCurrentPinballGame->minionState[var0] = 2;
|
||||
gCurrentPinballGame->minionFramesetIx[var0] = 8;
|
||||
gCurrentPinballGame->minionStateTimer[var0] = 12;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1293,9 +1293,9 @@ void sub_455D0(void)
|
|||
gCurrentPinballGame->ball->velocity.y = -0x78;
|
||||
gCurrentPinballGame->unk533[i] = 0;
|
||||
gCurrentPinballGame->unk536[i] = 4;
|
||||
gCurrentPinballGame->unk3A0[var0] = 3;
|
||||
gCurrentPinballGame->unk3A3[var0] = 11;
|
||||
gCurrentPinballGame->unk3B0[var0] = 0;
|
||||
gCurrentPinballGame->minionState[var0] = 3;
|
||||
gCurrentPinballGame->minionFramesetIx[var0] = 11;
|
||||
gCurrentPinballGame->minionStateTimer[var0] = 0;
|
||||
gCurrentPinballGame->unk542 = 106;
|
||||
gCurrentPinballGame->unk52C[1]++;
|
||||
}
|
||||
|
|
@ -1349,7 +1349,7 @@ void sub_455D0(void)
|
|||
gCurrentPinballGame->ball->velocity.y = -gCurrentPinballGame->ball->velocity.y / 3;
|
||||
gCurrentPinballGame->ball->velocity.x = 0;
|
||||
if (gCurrentPinballGame->unk533[i] == 1)
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ void MainBoardProcess_4B_19490(void)
|
|||
{
|
||||
s16 i;
|
||||
|
||||
if ((gMain.unkF & 1) == 0)
|
||||
if ((gMain.modeChangeFlags & MODE_CHANGE_BANNER) == 0)
|
||||
sub_195C4();
|
||||
|
||||
for (i = 0; i < 2; i++)
|
||||
|
|
@ -127,7 +127,7 @@ void sub_195C4(void)
|
|||
gCurrentPinballGame->unk1334[0].velocity.x = gCurrentPinballGame->unk60.x;
|
||||
gCurrentPinballGame->unk1334[0].velocity.y = gCurrentPinballGame->unk60.y;
|
||||
gCurrentPinballGame->unk5C = 0;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
flipper->unk2 = flipper->position / 2 + 1;
|
||||
flipper->position += 4;
|
||||
|
|
@ -144,7 +144,7 @@ void sub_195C4(void)
|
|||
gCurrentPinballGame->unk1334[0].velocity.x = gCurrentPinballGame->unk60.x;
|
||||
gCurrentPinballGame->unk1334[0].velocity.y = gCurrentPinballGame->unk60.y;
|
||||
gCurrentPinballGame->unk5C = 0;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
flipper->position -= 2;
|
||||
}
|
||||
|
|
@ -160,10 +160,10 @@ void BonusBoardProcess_4B_19734(void)
|
|||
s16 i;
|
||||
s16 priority = 1;
|
||||
|
||||
if ((gMain.unkF & 1) == 0)
|
||||
if ((gMain.modeChangeFlags & MODE_CHANGE_BANNER) == 0)
|
||||
{
|
||||
sub_19894();
|
||||
gMain.unkF = gMain.unkF;
|
||||
gMain.modeChangeFlags = gMain.modeChangeFlags;
|
||||
}
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
|
|
@ -212,7 +212,7 @@ void sub_19894(void)
|
|||
flipper->prevPosition = flipper->position;
|
||||
flipper->unk2 = 0;
|
||||
|
||||
if (gCurrentPinballGame->heldButtonActions[i] && gMain.unkF == 0)
|
||||
if (gCurrentPinballGame->heldButtonActions[i] && gMain.modeChangeFlags == MODE_CHANGE_NONE)
|
||||
{
|
||||
if (flipper->active == 0 && gCurrentPinballGame->unk25 == 0 && gCurrentPinballGame->unk1A == 0)
|
||||
{
|
||||
|
|
@ -243,7 +243,7 @@ void sub_19894(void)
|
|||
gCurrentPinballGame->unk1334[0].velocity.x = gCurrentPinballGame->unk60.x;
|
||||
gCurrentPinballGame->unk1334[0].velocity.y = gCurrentPinballGame->unk60.y;
|
||||
gCurrentPinballGame->unk5C = 0;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
flipper->unk2 = flipper->position / 2 + 1;
|
||||
flipper->position += 4;
|
||||
|
|
@ -260,7 +260,7 @@ void sub_19894(void)
|
|||
gCurrentPinballGame->unk1334[0].velocity.x = gCurrentPinballGame->unk60.x;
|
||||
gCurrentPinballGame->unk1334[0].velocity.y = gCurrentPinballGame->unk60.y;
|
||||
gCurrentPinballGame->unk5C = 0;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
flipper->position -= 2;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -407,7 +407,7 @@ void sub_13D24(u16 arg0, struct Vector16 *arg1, struct Vector16 *arg2)
|
|||
&& gCurrentPinballGame->unk61C == 0
|
||||
&& gMain.selectedField < MAIN_FIELD_COUNT)
|
||||
{
|
||||
sub_11B0(6);
|
||||
PlayRumble(6);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -796,7 +796,7 @@ u16 sub_14740(struct Vector16 *arg0, u16 *arg1)
|
|||
|
||||
res = 1;
|
||||
m4aSongNumStart(SE_JIRACHI_HIT);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -822,7 +822,7 @@ u16 sub_14740(struct Vector16 *arg0, u16 *arg1)
|
|||
|
||||
res = 1;
|
||||
m4aSongNumStart(SE_POKEMON_CATCH_HIT);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -336,7 +336,7 @@ void BonusBoardProcess_7B_12BF8()
|
|||
unk1334_0->unk6 -= 40;
|
||||
}
|
||||
|
||||
if ((gMain.unkF & -0x41) == 0) // 1011 1111
|
||||
if ((gMain.modeChangeFlags & ~MODE_CHANGE_EXPIRED_BONUS) == 0)
|
||||
{
|
||||
gCurrentPinballGame->unk392++;
|
||||
if (r5 >= 7 && r5 <= 10)
|
||||
|
|
@ -379,7 +379,7 @@ void BonusBoardProcess_7B_12BF8()
|
|||
unk1334_0->unk6 -= 20;
|
||||
}
|
||||
|
||||
if ((gMain.unkF & -0x81) == 0) // 0111 1111
|
||||
if ((gMain.modeChangeFlags & ~MODE_CHANGE_BONUS_BANNER) == 0)
|
||||
gCurrentPinballGame->unk392++;
|
||||
|
||||
if (gCurrentPinballGame->unk392 == 23)
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@ void sub_4D3D0(void)
|
|||
if (gCurrentPinballGame->eventTimer == 0)
|
||||
return;
|
||||
|
||||
if (gCurrentPinballGame->unk294 == 2 && gMain.unkF == 0)
|
||||
if (gCurrentPinballGame->unk294 == 2 && gMain.modeChangeFlags == MODE_CHANGE_NONE)
|
||||
gCurrentPinballGame->eventTimer--;
|
||||
|
||||
sp0[0] = gCurrentPinballGame->eventTimer / 3600;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#include "main.h"
|
||||
#include "m4a.h"
|
||||
#include "constants/bg_music.h"
|
||||
#include "constants/dusclops_states.h"
|
||||
|
||||
extern const u16 gUnknown_08254B10[];
|
||||
extern const u16 gUnknown_08257390[];
|
||||
|
|
@ -765,7 +766,7 @@ void sub_153CC(s32 arg0, s16* arg1, u16* arg2)
|
|||
*arg1 = 1;
|
||||
gCurrentPinballGame->scoreAddedInFrame = 5000;
|
||||
m4aSongNumStart(SE_UNKNOWN_0xB7);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
return;
|
||||
case 13:
|
||||
if (gCurrentPinballGame->unk2D8 == 0)
|
||||
|
|
@ -786,7 +787,7 @@ void sub_153CC(s32 arg0, s16* arg1, u16* arg2)
|
|||
|
||||
m4aSongNumStart(SE_UNKNOWN_0xB7);
|
||||
gCurrentPinballGame->scoreAddedInFrame = 5000;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
return;
|
||||
case 14:
|
||||
if ((gCurrentPinballGame->unk13 > 2) && (gCurrentPinballGame->unk13 != 5))
|
||||
|
|
@ -803,7 +804,7 @@ void sub_153CC(s32 arg0, s16* arg1, u16* arg2)
|
|||
|
||||
m4aSongNumStart(SE_UNKNOWN_0xB7);
|
||||
gCurrentPinballGame->scoreAddedInFrame = 5000;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
return;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk2DA == 3)
|
||||
|
|
@ -815,7 +816,7 @@ void sub_153CC(s32 arg0, s16* arg1, u16* arg2)
|
|||
|
||||
m4aSongNumStart(SE_UNKNOWN_0xB7);
|
||||
gCurrentPinballGame->unk2D9 = 1;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -831,7 +832,7 @@ void sub_153CC(s32 arg0, s16* arg1, u16* arg2)
|
|||
|
||||
m4aSongNumStart(SE_UNKNOWN_0xB7);
|
||||
gCurrentPinballGame->scoreAddedInFrame = 5000;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
@ -1055,7 +1056,7 @@ void sub_1642C(u8 arg0, u16* arg1, u16* arg2)
|
|||
|
||||
gCurrentPinballGame->unk36E[1] = 0;
|
||||
gCurrentPinballGame->unk36A[1] = 1;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
|
||||
gCurrentPinballGame->ball->velocity.x /= 2;
|
||||
gCurrentPinballGame->ball->velocity.y /= 2;
|
||||
|
|
@ -1078,7 +1079,7 @@ void sub_1642C(u8 arg0, u16* arg1, u16* arg2)
|
|||
gCurrentPinballGame->unk36E[0] = 0;
|
||||
gCurrentPinballGame->unk36A[0] = 1;
|
||||
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
|
||||
gCurrentPinballGame->ball->velocity.x /= 2;
|
||||
gCurrentPinballGame->ball->velocity.y /= 2;
|
||||
|
|
@ -1505,7 +1506,7 @@ s16 COLLISION_CHECK_DUSCLOPS_171C8(struct Vector16* arg0, u16* arg1) {
|
|||
sp00 = gUnknown_02031520.unk14.unk48[unk2 + unk1][unk0 * 64 + vec2.y * 8 + vec2.x];
|
||||
sp02 = gUnknown_02031520.unk14.unk58[unk2 + unk1][unk0 * 64 + vec2.y * 8 + vec2.x];
|
||||
|
||||
sub_173FC(arg0, &sp00, &sp02);
|
||||
CheckDusclopsEntitiesCollision(arg0, &sp00, &sp02);
|
||||
switch_enum = sp02 & 0xF;
|
||||
some_enum = sp02 >> 4;
|
||||
|
||||
|
|
@ -1563,11 +1564,11 @@ s16 COLLISION_CHECK_DUSCLOPS_171C8(struct Vector16* arg0, u16* arg1) {
|
|||
break;
|
||||
}
|
||||
|
||||
sub_17634(some_enum, &return_val, arg1);
|
||||
CheckDusclopsAbzorbZoneHit(some_enum, &return_val, arg1);
|
||||
return return_val;
|
||||
}
|
||||
|
||||
void sub_173FC(struct Vector16 *arg0, s16* arg1, u8* arg2) {
|
||||
void CheckDusclopsEntitiesCollision(struct Vector16 *arg0, s16* arg1, u8* arg2) {
|
||||
s16 deltaX;
|
||||
s16 deltaY;
|
||||
u16 maskedResult;
|
||||
|
|
@ -1577,7 +1578,7 @@ void sub_173FC(struct Vector16 *arg0, s16* arg1, u8* arg2) {
|
|||
maskedResult = 0;
|
||||
lowerNibble = 0;
|
||||
|
||||
if(gCurrentPinballGame->unk387 == 2)
|
||||
if(gCurrentPinballGame->boardEntityCollisionMode == DUSCLOPS_ENTITY_COLLISION_MODE_DUSCLOPS)
|
||||
{
|
||||
if (*arg2 != 0)
|
||||
return;
|
||||
|
|
@ -1594,27 +1595,28 @@ void sub_173FC(struct Vector16 *arg0, s16* arg1, u8* arg2) {
|
|||
if (lowerNibble == 0)
|
||||
return;
|
||||
|
||||
//Can be hit when ready to absorb (2) or when walking (3)
|
||||
temp = gCurrentPinballGame->unk3DC -3;
|
||||
if (temp <= 1U)
|
||||
*arg2 = 1;
|
||||
else
|
||||
*arg2 = lowerNibble;
|
||||
|
||||
gCurrentPinballGame->unk3DC = 4;
|
||||
gCurrentPinballGame->unk3DC = DUSCLOPS_ENTITY_STATE_HIT;
|
||||
*arg1 = maskedResult;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if(gCurrentPinballGame->unk387 == 1)
|
||||
if(gCurrentPinballGame->boardEntityCollisionMode == DUSCLOPS_ENTITY_COLLISION_MODE_DUSKULL)
|
||||
{
|
||||
if (*arg2 != 0)
|
||||
return;
|
||||
|
||||
if (gCurrentPinballGame->unk3A9[0] != 0)
|
||||
if (gCurrentPinballGame->minionCanCollide[0] )
|
||||
{
|
||||
deltaX = arg0->x - gCurrentPinballGame->unk3D0[0].x;
|
||||
deltaY = arg0->y - gCurrentPinballGame->unk3D0[0].y;
|
||||
deltaX = arg0->x - gCurrentPinballGame->minionCollisionPosition[0].x;
|
||||
deltaY = arg0->y - gCurrentPinballGame->minionCollisionPosition[0].y;
|
||||
|
||||
if (deltaX < 64U && deltaY < 64U)
|
||||
{
|
||||
|
|
@ -1622,16 +1624,16 @@ void sub_173FC(struct Vector16 *arg0, s16* arg1, u8* arg2) {
|
|||
lowerNibble = 0xF & gUnknown_08252B10[deltaY * 64 + deltaX];
|
||||
|
||||
if (lowerNibble != 0)
|
||||
gCurrentPinballGame->unk3A0[0] = 4;
|
||||
gCurrentPinballGame->minionState[0] = DUSKULL_ENTITY_STATE_HIT;
|
||||
}
|
||||
}
|
||||
|
||||
if (lowerNibble == 0)
|
||||
{
|
||||
if (gCurrentPinballGame->unk3A9[1] != 0)
|
||||
if (gCurrentPinballGame->minionCanCollide[1] )
|
||||
{
|
||||
deltaX = arg0->x - gCurrentPinballGame->unk3D0[1].x;
|
||||
deltaY = arg0->y - gCurrentPinballGame->unk3D0[1].y;
|
||||
deltaX = arg0->x - gCurrentPinballGame->minionCollisionPosition[1].x;
|
||||
deltaY = arg0->y - gCurrentPinballGame->minionCollisionPosition[1].y;
|
||||
|
||||
if (deltaX < 64U && deltaY < 64U)
|
||||
{
|
||||
|
|
@ -1639,17 +1641,17 @@ void sub_173FC(struct Vector16 *arg0, s16* arg1, u8* arg2) {
|
|||
lowerNibble = 0xF & gUnknown_08252B10[deltaY * 64 + deltaX];
|
||||
|
||||
if (lowerNibble != 0)
|
||||
gCurrentPinballGame->unk3A0[1] = 4;
|
||||
gCurrentPinballGame->minionState[1] = DUSKULL_ENTITY_STATE_HIT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (lowerNibble == 0)
|
||||
{
|
||||
if ( gCurrentPinballGame->unk3A9[2] != 0)
|
||||
if ( gCurrentPinballGame->minionCanCollide[2] )
|
||||
{
|
||||
deltaX = arg0->x - gCurrentPinballGame->unk3D0[2].x;
|
||||
deltaY = arg0->y - gCurrentPinballGame->unk3D0[2].y;
|
||||
deltaX = arg0->x - gCurrentPinballGame->minionCollisionPosition[2].x;
|
||||
deltaY = arg0->y - gCurrentPinballGame->minionCollisionPosition[2].y;
|
||||
|
||||
if (deltaX < 64U && deltaY < 64U)
|
||||
{
|
||||
|
|
@ -1658,7 +1660,7 @@ void sub_173FC(struct Vector16 *arg0, s16* arg1, u8* arg2) {
|
|||
|
||||
if (lowerNibble != 0)
|
||||
{
|
||||
gCurrentPinballGame->unk3A0[2] = 4;
|
||||
gCurrentPinballGame->minionState[2] = DUSKULL_ENTITY_STATE_HIT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1673,8 +1675,7 @@ void sub_173FC(struct Vector16 *arg0, s16* arg1, u8* arg2) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void sub_17634(u8 arg0, u16 *arg1, u16 *arg2)
|
||||
void CheckDusclopsAbzorbZoneHit(u8 arg0, u16 *arg1, u16 *arg2)
|
||||
{
|
||||
switch (arg0)
|
||||
{
|
||||
|
|
@ -1683,9 +1684,9 @@ void sub_17634(u8 arg0, u16 *arg1, u16 *arg2)
|
|||
case 3:
|
||||
break;
|
||||
case 4:
|
||||
gCurrentPinballGame->unk3DC = 6;
|
||||
gCurrentPinballGame->unk3DC = DUSCLOPS_ENTITY_STATE_HIT_ABSORB_ZONE;
|
||||
gCurrentPinballGame->unk1F = 1;
|
||||
gCurrentPinballGame->unk387 = 0;
|
||||
gCurrentPinballGame->boardEntityCollisionMode = DUSCLOPS_ENTITY_COLLISION_MODE_NONE;
|
||||
break;
|
||||
case 5:
|
||||
case 6:
|
||||
|
|
@ -1776,7 +1777,7 @@ void sub_17898(struct Vector16 *arg0, u16 *arg1, u8 *arg2)
|
|||
s16 deltaY;
|
||||
u16 arrayValue;
|
||||
|
||||
if (gCurrentPinballGame->unk387 == 1)
|
||||
if (gCurrentPinballGame->boardEntityCollisionMode == 1)
|
||||
{
|
||||
if (*arg2 & 0xF)
|
||||
return;
|
||||
|
|
@ -1798,7 +1799,7 @@ void sub_17898(struct Vector16 *arg0, u16 *arg1, u8 *arg2)
|
|||
|
||||
gCurrentPinballGame->unk3DC = 9;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk387 == 2)
|
||||
else if (gCurrentPinballGame->boardEntityCollisionMode == 2)
|
||||
{
|
||||
u16 maskedResult;
|
||||
|
||||
|
|
@ -2217,7 +2218,7 @@ void sub_18180(struct Vector16 *arg0, u16 *arg1, u8 *arg2)
|
|||
u16 arrayValue;
|
||||
u16 maskedResult;
|
||||
|
||||
if (gCurrentPinballGame->unk387 == 1)
|
||||
if (gCurrentPinballGame->boardEntityCollisionMode == 1)
|
||||
{
|
||||
if (*arg2 & 0xF)
|
||||
return;
|
||||
|
|
@ -2238,7 +2239,7 @@ void sub_18180(struct Vector16 *arg0, u16 *arg1, u8 *arg2)
|
|||
*arg1 = maskedResult;
|
||||
*arg2 = 6;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk387 == 2)
|
||||
else if (gCurrentPinballGame->boardEntityCollisionMode == 2)
|
||||
{
|
||||
if (*arg2 & 0xF)
|
||||
return;
|
||||
|
|
@ -2259,7 +2260,7 @@ void sub_18180(struct Vector16 *arg0, u16 *arg1, u8 *arg2)
|
|||
*arg1 = maskedResult;
|
||||
*arg2 = 6;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk387 == 3)
|
||||
else if (gCurrentPinballGame->boardEntityCollisionMode == 3)
|
||||
{
|
||||
if (*arg2 & 0xF)
|
||||
return;
|
||||
|
|
@ -2412,7 +2413,7 @@ void sub_1857C(struct Vector16 *arg0, u16 *arg1, u8 *arg2)
|
|||
u16 lowerNibble;
|
||||
s16 i;
|
||||
|
||||
if (gCurrentPinballGame->unk387 == 1)
|
||||
if (gCurrentPinballGame->boardEntityCollisionMode == 1)
|
||||
{
|
||||
if ((*arg2 & 0xF) == 0)
|
||||
{
|
||||
|
|
@ -2612,7 +2613,7 @@ void sub_18A4C(struct Vector16 *arg0, u16 *arg1, u8 *arg2)
|
|||
u16 maskedResult;
|
||||
u16 lowerNibble;
|
||||
|
||||
if (gCurrentPinballGame->unk387 != 1)
|
||||
if (gCurrentPinballGame->boardEntityCollisionMode != 1)
|
||||
return;
|
||||
if (*arg2 & 0xF)
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -35,33 +35,33 @@ struct Unk_86AFCB0
|
|||
extern const struct Unk_86AFCB0 gUnknown_086AFCB0[][2];
|
||||
|
||||
// Handle debug system flags
|
||||
void sub_472E4(void)
|
||||
void BonusStage_HandleModeChangeFlags(void)
|
||||
{
|
||||
if (gMain.unkF == 0x0)
|
||||
if (gMain.modeChangeFlags == MODE_CHANGE_NONE)
|
||||
return;
|
||||
|
||||
if (gMain.unkF & 0x8)
|
||||
if (gMain.modeChangeFlags & MODE_CHANGE_BALL_SAVER)
|
||||
{
|
||||
// instantly reset ball
|
||||
sub_478D8();
|
||||
return;
|
||||
}
|
||||
|
||||
if (gMain.unkF & 0x10)
|
||||
if (gMain.modeChangeFlags & MODE_CHANGE_END_OF_BALL)
|
||||
{
|
||||
// lose life, and reset ball
|
||||
sub_47670();
|
||||
return;
|
||||
}
|
||||
|
||||
if (gMain.unkF & 0x20)
|
||||
if (gMain.modeChangeFlags & MODE_CHANGE_END_OF_GAME)
|
||||
{
|
||||
// end game
|
||||
sub_474F4();
|
||||
return;
|
||||
}
|
||||
|
||||
if (gMain.unkF & 0x4)
|
||||
if (gMain.modeChangeFlags & MODE_CHANGE_DEBUG)
|
||||
{
|
||||
// debug tool (move ball position, and change ball speed)
|
||||
sub_47344();
|
||||
|
|
@ -240,7 +240,7 @@ void sub_47670(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
gMain.unkF &= 0xEF;
|
||||
gMain.modeChangeFlags &= ~MODE_CHANGE_END_OF_BALL;
|
||||
sub_47FBC();
|
||||
if (gCurrentPinballGame->numLives > 0)
|
||||
{
|
||||
|
|
@ -281,7 +281,7 @@ void sub_47670(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
gMain.unkF |= 0x20;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_END_OF_GAME;
|
||||
gMain.unk12 = 3600;
|
||||
m4aSongNumStart(MUS_SLOTS_PRIZE);
|
||||
}
|
||||
|
|
@ -415,7 +415,7 @@ void sub_478D8(void)
|
|||
{
|
||||
gCurrentPinballGame->unk5FA = 0;
|
||||
m4aSongNumStart(SE_UNKNOWN_0x96);
|
||||
sub_11B0(6);
|
||||
PlayRumble(6);
|
||||
}
|
||||
|
||||
gCurrentPinballGame->ball->positionQ8.x = (gCurrentPinballGame->unk110 / 100 + 86) << 8;
|
||||
|
|
@ -490,7 +490,7 @@ void sub_478D8(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
gMain.unkF &= 0xF7;
|
||||
gMain.modeChangeFlags &= ~MODE_CHANGE_BALL_SAVER;
|
||||
gCurrentPinballGame->unk26 = 60;
|
||||
sub_11C14(0);
|
||||
gCurrentPinballGame->unk1F = 0;
|
||||
|
|
|
|||
|
|
@ -46,6 +46,18 @@ extern u8 gEReaderBackground_Gfx[];
|
|||
extern u8 gUnknown_0807FD00[];
|
||||
extern s16 gUnknown_086A550C[];
|
||||
|
||||
enum EReaderState{
|
||||
EREADER_STATE_0_LOAD_GRAPHICS = 0,
|
||||
EREADER_STATE_1 = 1,
|
||||
EREADER_STATE_2 = 2,
|
||||
EREADER_STATE_3 = 3,
|
||||
EREADER_STATE_4 = 4,
|
||||
EREADER_STATE_5 = 5,
|
||||
EREADER_STATE_6 = 6,
|
||||
EREADER_STATE_7 = 7,
|
||||
EREADER_STATE_8 = 8,
|
||||
};
|
||||
|
||||
void EReaderMain(void)
|
||||
{
|
||||
gEReaderStateFuncs[gMain.subState]();
|
||||
|
|
@ -85,7 +97,7 @@ void LoadEReaderGraphics(void)
|
|||
m4aSongNumStart(MUS_UNKNOWN_0x5);
|
||||
sub_0CBC();
|
||||
sub_024C();
|
||||
gMain.subState = 1;
|
||||
gMain.subState = EREADER_STATE_1;
|
||||
}
|
||||
|
||||
void sub_2DF0(void)
|
||||
|
|
@ -130,7 +142,7 @@ void Ereader_State1_2E40(void)
|
|||
gUnknown_0202C604 = gUnknown_086A551A[gUnknown_0202AD90] + 1;
|
||||
}
|
||||
else if (gUnknown_086A5528[gUnknown_0202AD90] == 0) {
|
||||
gMain.subState = 2;
|
||||
gMain.subState = EREADER_STATE_2;
|
||||
}
|
||||
else {
|
||||
sub_377C();
|
||||
|
|
@ -143,7 +155,7 @@ void Ereader_State1_2E40(void)
|
|||
else if (JOY_NEW(B_BUTTON)) {
|
||||
m4aSongNumStart(SE_MENU_CANCEL);
|
||||
gUnknown_0202BEF8 = STATE_TITLE;
|
||||
gMain.subState = 8;
|
||||
gMain.subState = EREADER_STATE_8;
|
||||
}
|
||||
sub_394C();
|
||||
DmaCopy16(3, gUnknown_03000000, (void*) VRAM + 0x4000, 0x3000);
|
||||
|
|
@ -161,7 +173,7 @@ void Ereader_State2_2FC0(void)
|
|||
gUnknown_0201B124 = 0;
|
||||
gUnknown_0202C584 = 1;
|
||||
m4aSongNumStart(SE_TRIGGER_BUTTON_HIT);
|
||||
gMain.subState = 3;
|
||||
gMain.subState = EREADER_STATE_3;
|
||||
}
|
||||
}
|
||||
gUnknown_0202A58C = 0;
|
||||
|
|
@ -198,7 +210,7 @@ void Ereader_State3_304C(void)
|
|||
}
|
||||
gMain.eReaderBonuses[gEReaderCardIndex] = 1;
|
||||
gUnknown_0201A44C = 0;
|
||||
gMain.subState = 5;
|
||||
gMain.subState = EREADER_STATE_5;
|
||||
}
|
||||
else {
|
||||
gUnknown_0201A44C = 0;
|
||||
|
|
@ -208,7 +220,7 @@ void Ereader_State3_304C(void)
|
|||
gUnknown_0202C5A4 = 0;
|
||||
gUnknown_0202AD90 = 13;
|
||||
sub_377C();
|
||||
gMain.subState = 4;
|
||||
gMain.subState = EREADER_STATE_4;
|
||||
m4aSongNumStart(SE_FAILURE);
|
||||
}
|
||||
}
|
||||
|
|
@ -227,7 +239,7 @@ void Ereader_State3_304C(void)
|
|||
gUnknown_0202C5A4 = 0;
|
||||
gUnknown_0202AD90 = 13;
|
||||
sub_377C();
|
||||
gMain.subState = 4;
|
||||
gMain.subState = EREADER_STATE_4;
|
||||
m4aSongNumStart(SE_FAILURE);
|
||||
}
|
||||
}
|
||||
|
|
@ -307,7 +319,7 @@ void Ereader_State5_33A0(void)
|
|||
sub_02B4();
|
||||
m4aMPlayAllStop();
|
||||
sub_0D10();
|
||||
gMain.subState = 6;
|
||||
gMain.subState = EREADER_STATE_6;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -351,7 +363,7 @@ void Ereader_State6_343C(void)
|
|||
m4aSongNumStart(MUS_UNKNOWN_0x5);
|
||||
sub_0CBC();
|
||||
sub_024C();
|
||||
gMain.subState = 7;
|
||||
gMain.subState = EREADER_STATE_7;
|
||||
}
|
||||
|
||||
void Ereader_State7_33C8(void)
|
||||
|
|
@ -389,7 +401,7 @@ void Ereader_State7_33C8(void)
|
|||
else {
|
||||
gUnknown_0202BEF8 = STATE_TITLE;
|
||||
}
|
||||
gMain.subState = 8;
|
||||
gMain.subState = EREADER_STATE_8;
|
||||
}
|
||||
else {
|
||||
sub_377C();
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ void PinballGameIdle1_19190(void)
|
|||
sub_356A0();
|
||||
}
|
||||
|
||||
if ((gMain.unkF & 2) != 0)
|
||||
if ((gMain.modeChangeFlags & MODE_CHANGE_PAUSE) != 0)
|
||||
{
|
||||
DmaCopy16(3, gCurrentPinballGame->unk111A, (void *)OBJ_PLTT, OBJ_PLTT_SIZE);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ void sub_1198(void)
|
|||
gIntrTable[1] = Timer3Intr;
|
||||
}
|
||||
|
||||
void sub_11B0(int arg0)
|
||||
void PlayRumble(int arg0)
|
||||
{
|
||||
if (gMain_saveData.rumbleEnabled)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -54,6 +54,24 @@ struct unkStruct_2002858
|
|||
s8 unk26;
|
||||
};
|
||||
|
||||
enum HighScoreStates{
|
||||
HIGH_SCORE_STATE_0 = 0,
|
||||
HIGH_SCORE_STATE_1 = 1,
|
||||
HIGH_SCORE_STATE_2 = 2,
|
||||
HIGH_SCORE_STATE_3 = 3,
|
||||
HIGH_SCORE_STATE_4 = 4,
|
||||
HIGH_SCORE_STATE_5 = 5,
|
||||
HIGH_SCORE_STATE_6 = 6,
|
||||
HIGH_SCORE_STATE_7 = 7,
|
||||
HIGH_SCORE_STATE_8 = 8,
|
||||
HIGH_SCORE_STATE_9 = 9,
|
||||
HIGH_SCORE_STATE_10 = 10,
|
||||
HIGH_SCORE_STATE_11 = 11,
|
||||
HIGH_SCORE_STATE_12 = 12,
|
||||
HIGH_SCORE_STATE_13 = 13,
|
||||
HIGH_SCORE_STATE_14 = 14
|
||||
};
|
||||
|
||||
struct unkStruct_2002858 gUnknown_02002858;
|
||||
|
||||
extern struct HighScoreEntry gUnknown_0202C610[MAIN_FIELD_COUNT][NUM_HIGH_SCORES];
|
||||
|
|
@ -243,7 +261,7 @@ void HighScore_State1_D20C(void)
|
|||
gUnknown_02002858.unk18 = 0;
|
||||
gUnknown_0202BEB0 = 1;
|
||||
gUnknown_0201C18C = 0;
|
||||
gMain.subState = 2;
|
||||
gMain.subState = HIGH_SCORE_STATE_2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -266,7 +284,7 @@ void HighScore_State2_D308(void)
|
|||
gUnknown_02002858.unk18 = 999;
|
||||
gUnknown_02002858.unk1A = 0;
|
||||
m4aSongNumStart(MUS_HIGH_SCORE);
|
||||
gMain.subState = 3;
|
||||
gMain.subState = HIGH_SCORE_STATE_3;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -313,7 +331,7 @@ void HighScore_State2_D308(void)
|
|||
CopyString(0, 0x15, 6 - (gUnknown_02002858.mainField << 1), gUnknown_08079870[gUnknown_02002858.highScoreIndex] +(gUnknown_02002858.mainField << 5), 4, 2);
|
||||
}
|
||||
m4aSongNumStart(MUS_HIGH_SCORE);
|
||||
gMain.subState = 4;
|
||||
gMain.subState = HIGH_SCORE_STATE_4;
|
||||
}
|
||||
|
||||
DmaCopy16(3, gUnknown_03005C00, 0x6000000, 0x1000);
|
||||
|
|
@ -354,7 +372,7 @@ void HighScore_State3_D4B8(void)
|
|||
if(JOY_NEW(A_BUTTON | B_BUTTON))
|
||||
{
|
||||
m4aSongNumStart(SE_MENU_CANCEL);
|
||||
gMain.subState = 0xb;
|
||||
gMain.subState = HIGH_SCORE_STATE_11;
|
||||
}
|
||||
if(JOY_NEW(START_BUTTON))
|
||||
{
|
||||
|
|
@ -363,7 +381,7 @@ void HighScore_State3_D4B8(void)
|
|||
m4aSongNumStart(SE_MENU_POPUP_OPEN);
|
||||
gUnknown_0201B178 = 1;
|
||||
gUnknown_0202BEBC = 0;
|
||||
gMain.subState = 5;
|
||||
gMain.subState = HIGH_SCORE_STATE_5;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -382,7 +400,7 @@ void HighScore_State3_D4B8(void)
|
|||
m4aSongNumStart(SE_MENU_POPUP_OPEN);
|
||||
gUnknown_0201B178 = 1;
|
||||
gUnknown_0202BEBC = 4;
|
||||
gMain.subState = 0xA;
|
||||
gMain.subState = HIGH_SCORE_STATE_10;
|
||||
}
|
||||
}
|
||||
if(gUnknown_02002884 > 0)
|
||||
|
|
@ -509,7 +527,7 @@ void HighScore_State4_D664(void)
|
|||
}
|
||||
|
||||
SaveFile_WriteToSram();
|
||||
gMain.subState = 3;
|
||||
gMain.subState = HIGH_SCORE_STATE_3;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -546,7 +564,7 @@ void HighScore_State5_D9F8(void)
|
|||
sub_E908();
|
||||
gUnknown_0201B124 = 0;
|
||||
sub_E464();
|
||||
gMain.subState = 6;
|
||||
gMain.subState = HIGH_SCORE_STATE_6;
|
||||
}
|
||||
|
||||
void HighScore_State6_DA20(void)
|
||||
|
|
@ -558,7 +576,7 @@ void HighScore_State6_DA20(void)
|
|||
gUnknown_0201B178 = 0;
|
||||
gUnknown_0202BEBC = 0;
|
||||
sub_2568();
|
||||
gMain.subState = 3;
|
||||
gMain.subState = HIGH_SCORE_STATE_3;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -574,12 +592,12 @@ void HighScore_State6_DA20(void)
|
|||
s16 var0 = sub_E94C();
|
||||
if (var0 == -1)
|
||||
{
|
||||
gMain.subState = 8;
|
||||
gMain.subState = HIGH_SCORE_STATE_8;
|
||||
}
|
||||
else if (var0 == 1)
|
||||
{
|
||||
gUnknown_0202BEBC = 2;
|
||||
gMain.subState = 7;
|
||||
gMain.subState = HIGH_SCORE_STATE_7;
|
||||
m4aSongNumStart(SE_FAILURE);
|
||||
}
|
||||
}
|
||||
|
|
@ -588,7 +606,7 @@ void HighScore_State6_DA20(void)
|
|||
if ((gUnknown_0202ADD0 & 0x7f0000) != 0 && gUnknown_0202ADE4 == -1 && ++gUnknown_0201A444 > 180)
|
||||
{
|
||||
gUnknown_0202BEBC = 2;
|
||||
gMain.subState = 7;
|
||||
gMain.subState = HIGH_SCORE_STATE_7;
|
||||
m4aSongNumStart(SE_FAILURE);
|
||||
}
|
||||
}
|
||||
|
|
@ -600,7 +618,7 @@ void HighScore_State9_DB4C(void)
|
|||
if (++gUnknown_0201A444 > 2)
|
||||
{
|
||||
gUnknown_0201A444 = 0;
|
||||
gMain.subState = 5;
|
||||
gMain.subState = HIGH_SCORE_STATE_5;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -626,7 +644,7 @@ void HighScore_State7_DB70(void)
|
|||
sub_02B4();
|
||||
m4aMPlayAllStop();
|
||||
sub_0D10();
|
||||
gMain.subState = 0;
|
||||
gMain.subState = HIGH_SCORE_STATE_0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -665,7 +683,7 @@ void HighScore_State8_DBF4(void)
|
|||
sub_02B4();
|
||||
m4aMPlayAllStop();
|
||||
sub_0D10();
|
||||
gMain.subState = 12;
|
||||
gMain.subState = HIGH_SCORE_STATE_12;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -683,14 +701,14 @@ void HighScore_State10_DCF0(void)
|
|||
sub_02B4();
|
||||
m4aMPlayAllStop();
|
||||
sub_0D10();
|
||||
gMain.subState = 0;
|
||||
gMain.subState = HIGH_SCORE_STATE_0;
|
||||
}
|
||||
else if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
m4aSongNumStart(SE_MENU_CANCEL);
|
||||
gUnknown_0201B178 = 0;
|
||||
gUnknown_0202BEBC = 0;
|
||||
gMain.subState = 3;
|
||||
gMain.subState = HIGH_SCORE_STATE_3;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -284,7 +284,7 @@ void Options_HandleInput(void)
|
|||
if (gGameBoyPlayerEnabled == TRUE)
|
||||
{
|
||||
m4aSongNumStart(SE_MENU_SELECT);
|
||||
sub_11B0(11);
|
||||
PlayRumble(11);
|
||||
if (gOptionsData.unk2E == 0)
|
||||
gOptionsData.unk2E = 1;
|
||||
|
||||
|
|
|
|||
|
|
@ -317,7 +317,7 @@ static void sub_4A270(void)
|
|||
|
||||
void sub_4A518(void)
|
||||
{
|
||||
gMain.unkF = 0;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_NONE;
|
||||
gMain.unk10 = 0;
|
||||
gMain.fieldFrameCount = 0;
|
||||
gMain.unk11 = 0;
|
||||
|
|
@ -566,7 +566,7 @@ void PinballGame_State1_4AAD8(void)
|
|||
sub_3E5D0();
|
||||
}
|
||||
|
||||
if (gMain.unkF & 0x2)
|
||||
if (gMain.modeChangeFlags & MODE_CHANGE_PAUSE)
|
||||
DmaCopy16(3, gCurrentPinballGame->unk111A, (void *)OBJ_PLTT, OBJ_PLTT_SIZE);
|
||||
|
||||
gCurrentPinballGame->unk1D = 2;
|
||||
|
|
@ -600,13 +600,13 @@ void sub_4ABEC(void)
|
|||
|
||||
UpdateButtonActionsFromJoy();
|
||||
CurrentBoardProcPairs_020028D8[1].unk4();
|
||||
if (gMain.unkE == 0 && !(gMain.unkF & 0x2))
|
||||
if (gMain.unkE == 0 && !(gMain.modeChangeFlags & MODE_CHANGE_PAUSE))
|
||||
{
|
||||
CurrentBoardProcPairs_020028D8[2].unk4();
|
||||
CurrentBoardProcPairs_020028D8[0].unk4();
|
||||
CurrentBoardProcPairs_020028D8[3].unk4();
|
||||
CurrentBoardProcPairs_020028D8[4].unk4();
|
||||
if (gMain.unkF)
|
||||
if (gMain.modeChangeFlags)
|
||||
{
|
||||
if (!gCurrentPinballGame->unk1F)
|
||||
{
|
||||
|
|
@ -656,13 +656,13 @@ void sub_4ACF0(void)
|
|||
|
||||
sub_4B334();
|
||||
CurrentBoardProcPairs_020028D8[1].unk4();
|
||||
if (!(gMain.unkF & 0x2))
|
||||
if (!(gMain.modeChangeFlags & MODE_CHANGE_PAUSE))
|
||||
{
|
||||
CurrentBoardProcPairs_020028D8[2].unk4();
|
||||
CurrentBoardProcPairs_020028D8[0].unk4();
|
||||
CurrentBoardProcPairs_020028D8[3].unk4();
|
||||
CurrentBoardProcPairs_020028D8[4].unk4();
|
||||
if (gMain.unkF)
|
||||
if (gMain.modeChangeFlags)
|
||||
{
|
||||
if (!gCurrentPinballGame->unk1F)
|
||||
{
|
||||
|
|
@ -724,14 +724,14 @@ void sub_4AE8C(void)
|
|||
|
||||
UpdateButtonActionsFromJoy();
|
||||
CurrentBoardProcPairs_020028D8[1].unk4();
|
||||
if (gMain.unkF & 0x2)
|
||||
if (gMain.modeChangeFlags & MODE_CHANGE_PAUSE)
|
||||
return;
|
||||
|
||||
CurrentBoardProcPairs_020028D8[0].unk4();
|
||||
CurrentBoardProcPairs_020028D8[2].unk4();
|
||||
CurrentBoardProcPairs_020028D8[3].unk4();
|
||||
CurrentBoardProcPairs_020028D8[4].unk4();
|
||||
if (gMain.unkF & ~0x40)
|
||||
if (gMain.modeChangeFlags & ~MODE_CHANGE_EXPIRED_BONUS)
|
||||
{
|
||||
if (!gCurrentPinballGame->unk1F)
|
||||
{
|
||||
|
|
@ -789,13 +789,13 @@ void sub_4B000(void)
|
|||
s16 i;
|
||||
|
||||
sub_4B334();
|
||||
if (!(gMain.unkF & 0x2))
|
||||
if (!(gMain.modeChangeFlags & MODE_CHANGE_PAUSE))
|
||||
{
|
||||
CurrentBoardProcPairs_020028D8[0].unk4();
|
||||
CurrentBoardProcPairs_020028D8[2].unk4();
|
||||
CurrentBoardProcPairs_020028D8[3].unk4();
|
||||
CurrentBoardProcPairs_020028D8[4].unk4();
|
||||
if (gMain.unkF & ~0x40)
|
||||
if (gMain.modeChangeFlags & ~MODE_CHANGE_EXPIRED_BONUS)
|
||||
{
|
||||
if (!gCurrentPinballGame->unk1F)
|
||||
{
|
||||
|
|
@ -909,7 +909,7 @@ void UpdateButtonActionsFromJoy(void)
|
|||
gCurrentPinballGame->releasedButtonActions[i] = 0;
|
||||
}
|
||||
|
||||
if (gMain.unkF)
|
||||
if (gMain.modeChangeFlags)
|
||||
return;
|
||||
|
||||
for (i = 0; i < 5; i++)
|
||||
|
|
@ -942,7 +942,7 @@ void sub_4B334(void)
|
|||
gCurrentPinballGame->releasedButtonActions[i] = 0;
|
||||
}
|
||||
|
||||
if (gMain.unkF)
|
||||
if (gMain.modeChangeFlags)
|
||||
return;
|
||||
|
||||
if (gUnknown_02031510 < 60 * 60)
|
||||
|
|
@ -991,7 +991,7 @@ void sub_4B408(s16 arg0)
|
|||
gCurrentPinballGame->field = gMain.selectedField;
|
||||
gCurrentPinballGame->unk10FE = gMain.unk5;
|
||||
gCurrentPinballGame->unk10FF = gMain.unk6;
|
||||
gCurrentPinballGame->unk1101 = gMain.unkF;
|
||||
gCurrentPinballGame->unk1101 = gMain.modeChangeFlags;
|
||||
gCurrentPinballGame->unk1102 = gMain.unk10;
|
||||
gCurrentPinballGame->unk1103 = gMain.unk11;
|
||||
gCurrentPinballGame->unk1320 = gMain.unk12;
|
||||
|
|
@ -1054,7 +1054,7 @@ void sub_4B678(u16 arg0)
|
|||
gMain.selectedField = gCurrentPinballGame->field;
|
||||
gMain.unk5 = gCurrentPinballGame->unk10FE;
|
||||
gMain.unk6 = gCurrentPinballGame->unk10FF;
|
||||
gMain.unkF = gCurrentPinballGame->unk1101;
|
||||
gMain.modeChangeFlags = gCurrentPinballGame->unk1101;
|
||||
gMain.unk10 = gCurrentPinballGame->unk1102;
|
||||
gMain.unk11 = gCurrentPinballGame->unk1103;
|
||||
gMain.unk12 = gCurrentPinballGame->unk1320;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ enum PokedexStates
|
|||
POKEDEX_STATE_8,
|
||||
POKEDEX_STATE_9,
|
||||
POKEDEX_STATE_10,
|
||||
POKEDEX_STATE_11,
|
||||
POKEDEX_STATE_DELETE_CONFIRMATION,
|
||||
POKEDEX_STATE_RETURN_TO_TITLE,
|
||||
};
|
||||
|
||||
|
|
@ -34,7 +34,7 @@ static void PokedexListScrollUp(void);
|
|||
static void PokedexListScrollDown(void);
|
||||
static void PokedexListScrollUpFast(void);
|
||||
static void PokedexListScrollDownFast(void);
|
||||
void sub_4FC8(void);
|
||||
void Pokedex_CheckDeleteKeyComboPressed(void);
|
||||
void sub_5064(void);
|
||||
void sub_51CC(void);
|
||||
static s16 sub_5EA4(void);
|
||||
|
|
@ -76,6 +76,14 @@ extern const s16 gUnknown_086A6014[][51];
|
|||
extern const u16 gUnknown_086A5E12[][4];
|
||||
extern s16 gUnknown_086A64F0[];
|
||||
|
||||
enum PokedexPopupType {
|
||||
POKEDEX_POPUP_TRANSMISSION_CONNECT_PROMPT = 0,
|
||||
POKEDEX_POPUP_TRANSMITTING_ACTIVE = 1,
|
||||
POKEDEX_POPUP_TRANSMISSION_ERROR = 2,
|
||||
POKEDEX_POPUP_TRANSMISSION_COMPLETE = 3,
|
||||
POKEDEX_POPUP_DELETE_CONFIRMATION_PROMPT = 4
|
||||
};
|
||||
|
||||
// The japanese and english text glyphs are sourced from the same blob of tile graphics, and
|
||||
// each glyph is two tiles high.
|
||||
#define ENGLISH_GLYPHS_START 0x2820
|
||||
|
|
@ -184,10 +192,10 @@ void sub_3FAC(void)
|
|||
}
|
||||
|
||||
gUnknown_0202BEC4 = 0;
|
||||
gUnknown_0202BEFC = 0;
|
||||
Pokedex_PopupTypeIx = POKEDEX_POPUP_TRANSMISSION_CONNECT_PROMPT;
|
||||
gUnknown_0201B120 = 0;
|
||||
gUnknown_02002830 = 0;
|
||||
gUnknown_02002831 = 0;
|
||||
gPokedex_EraseSaveDataAccessCounter = 0;
|
||||
gPokedex_EraseSaveDataAccessStep = 0;
|
||||
gUnknown_0202C794 = 0;
|
||||
gUnknown_0201C1B4 = 0;
|
||||
gUnknown_0202C5AC = 0;
|
||||
|
|
@ -332,13 +340,13 @@ void Pokedex_HandleListInput(void)
|
|||
{
|
||||
m4aSongNumStart(SE_MENU_POPUP_OPEN);
|
||||
gUnknown_0202BEC4 = 1;
|
||||
gUnknown_0202BEFC = 0;
|
||||
Pokedex_PopupTypeIx = POKEDEX_POPUP_TRANSMISSION_CONNECT_PROMPT;
|
||||
gUnknown_0202BF04 = 0;
|
||||
gUnknown_0202A588 = 0;
|
||||
gMain.subState = POKEDEX_STATE_LINK_SETUP;
|
||||
}
|
||||
|
||||
sub_4FC8();
|
||||
Pokedex_CheckDeleteKeyComboPressed();
|
||||
}
|
||||
|
||||
if (gPokedexScrollWaitFrames > 0)
|
||||
|
|
@ -582,7 +590,7 @@ void Pokedex_State7_49D0(void)
|
|||
{
|
||||
m4aSongNumStart(SE_MENU_CANCEL);
|
||||
gUnknown_0202BEC4 = 0;
|
||||
gUnknown_0202BEFC = 0;
|
||||
Pokedex_PopupTypeIx = POKEDEX_POPUP_TRANSMISSION_CONNECT_PROMPT;
|
||||
gUnknown_0202BF04 = 1;
|
||||
gUnknown_0202A588 = 1;
|
||||
sub_2568();
|
||||
|
|
@ -608,7 +616,7 @@ void Pokedex_State7_49D0(void)
|
|||
}
|
||||
else if (var0 == 1)
|
||||
{
|
||||
gUnknown_0202BEFC = 2;
|
||||
Pokedex_PopupTypeIx = POKEDEX_POPUP_TRANSMISSION_ERROR;
|
||||
gMain.subState = POKEDEX_STATE_8;
|
||||
m4aSongNumStart(SE_FAILURE);
|
||||
}
|
||||
|
|
@ -621,7 +629,7 @@ void Pokedex_State7_49D0(void)
|
|||
gUnknown_0201A444++;
|
||||
if (0xB4 < gUnknown_0201A444)
|
||||
{
|
||||
gUnknown_0202BEFC = 2;
|
||||
Pokedex_PopupTypeIx = POKEDEX_POPUP_TRANSMISSION_ERROR;
|
||||
gMain.subState = POKEDEX_STATE_8;
|
||||
m4aSongNumStart(SE_FAILURE);
|
||||
}
|
||||
|
|
@ -651,7 +659,7 @@ void Pokedex_State8_4B34(void)
|
|||
{
|
||||
gUnknown_0201B120 = 0;
|
||||
gUnknown_0202BEC4 = 0;
|
||||
gUnknown_0202BEFC = 0;
|
||||
Pokedex_PopupTypeIx = POKEDEX_POPUP_TRANSMISSION_CONNECT_PROMPT;
|
||||
gUnknown_0202BF04 = 1;
|
||||
gUnknown_0202A588 = 1;
|
||||
|
||||
|
|
@ -682,13 +690,13 @@ void Pokedex_State9_4BB4(void)
|
|||
DisableSerial();
|
||||
break;
|
||||
case 0x82:
|
||||
gUnknown_0202BEFC = 3;
|
||||
Pokedex_PopupTypeIx = POKEDEX_POPUP_TRANSMISSION_COMPLETE;
|
||||
m4aSongNumStart(SE_MENU_SELECT);
|
||||
break;
|
||||
case 0xFA:
|
||||
gUnknown_0201B120 = 0;
|
||||
gUnknown_0202BEC4 = 0;
|
||||
gUnknown_0202BEFC = 0;
|
||||
Pokedex_PopupTypeIx = POKEDEX_POPUP_TRANSMISSION_CONNECT_PROMPT;
|
||||
gUnknown_0202BF04 = 1;
|
||||
gUnknown_0202A588 = 1;
|
||||
for(index = 0; index < 0xE1; index++)
|
||||
|
|
@ -709,7 +717,7 @@ void Pokedex_State9_4BB4(void)
|
|||
gUnknown_0201B120++;
|
||||
}
|
||||
|
||||
void Pokedex_State11_4C80(void)
|
||||
void Pokedex_DeleteConfirmation(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
|
|
@ -729,7 +737,7 @@ void Pokedex_State11_4C80(void)
|
|||
}
|
||||
|
||||
gUnknown_0202BEC4 = 0;
|
||||
gUnknown_0202BEFC = 0;
|
||||
Pokedex_PopupTypeIx = POKEDEX_POPUP_TRANSMISSION_CONNECT_PROMPT;
|
||||
gUnknown_0202BF04 = 1;
|
||||
gUnknown_0202A588 = 1;
|
||||
|
||||
|
|
@ -743,7 +751,7 @@ void Pokedex_State11_4C80(void)
|
|||
{
|
||||
m4aSongNumStart(SE_MENU_CANCEL);
|
||||
gUnknown_0202BEC4 = 0;
|
||||
gUnknown_0202BEFC = 0;
|
||||
Pokedex_PopupTypeIx = POKEDEX_POPUP_TRANSMISSION_CONNECT_PROMPT;
|
||||
gUnknown_0202BF04 = 1;
|
||||
gUnknown_0202A588 = 1;
|
||||
gMain.subState = POKEDEX_STATE_HANDLE_LIST_INPUT;
|
||||
|
|
@ -880,31 +888,31 @@ static void PokedexListScrollDownFast(void)
|
|||
gPokedexScrollWaitFrames = SCROLL_WAIT_FRAMES;
|
||||
}
|
||||
|
||||
void sub_4FC8(void)
|
||||
void Pokedex_CheckDeleteKeyComboPressed(void)
|
||||
{
|
||||
// To delete save file, press R_BUTTON 3 times while holding L_BUTTON And DPAD_LEFT.
|
||||
if (JOY_HELD(L_BUTTON | DPAD_LEFT) == (L_BUTTON | DPAD_LEFT) && JOY_NEW(R_BUTTON))
|
||||
{
|
||||
gUnknown_02002830 = 40;
|
||||
if (++gUnknown_02002831 == 3)
|
||||
gPokedex_EraseSaveDataAccessCounter = 40;
|
||||
if (++gPokedex_EraseSaveDataAccessStep == 3)
|
||||
{
|
||||
gUnknown_02002831 = 0;
|
||||
gUnknown_02002830 = 0;
|
||||
gPokedex_EraseSaveDataAccessStep = 0;
|
||||
gPokedex_EraseSaveDataAccessCounter = 0;
|
||||
m4aSongNumStart(SE_MENU_POPUP_OPEN);
|
||||
gUnknown_0202BEC4 = 1;
|
||||
gUnknown_0202BEFC = 4;
|
||||
Pokedex_PopupTypeIx = POKEDEX_POPUP_DELETE_CONFIRMATION_PROMPT;
|
||||
gUnknown_0202BF04 = 0;
|
||||
gUnknown_0202A588 = 0;
|
||||
gMain.subState = POKEDEX_STATE_11;
|
||||
gMain.subState = POKEDEX_STATE_DELETE_CONFIRMATION;
|
||||
}
|
||||
}
|
||||
|
||||
if (gUnknown_02002830 > 0)
|
||||
if (gPokedex_EraseSaveDataAccessCounter > 0)
|
||||
{
|
||||
gUnknown_02002830--;
|
||||
if (gUnknown_02002830 <= 0)
|
||||
if (--gPokedex_EraseSaveDataAccessCounter <= 0)
|
||||
{
|
||||
gUnknown_02002830 = 0;
|
||||
gUnknown_02002831 = 0;
|
||||
gPokedex_EraseSaveDataAccessCounter = 0;
|
||||
gPokedex_EraseSaveDataAccessStep = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1002,7 +1010,7 @@ void sub_51FC(void)
|
|||
group3 = &gMain_spriteGroups[3];
|
||||
group4 = &gMain_spriteGroups[4];
|
||||
group5 = &gMain_spriteGroups[5 + gUnknown_0201A448];
|
||||
group6 = &gMain_spriteGroups[17 + gUnknown_0202BEFC];
|
||||
group6 = &gMain_spriteGroups[17 + Pokedex_PopupTypeIx];
|
||||
group7 = &gMain_spriteGroups[22 + gUnknown_0202BEE0];
|
||||
group8 = &gMain_spriteGroups[24];
|
||||
group9 = &gMain_spriteGroups[25 + gUnknown_02019C28 * 2 + gUnknown_0202C5AC];
|
||||
|
|
@ -1128,7 +1136,8 @@ void sub_51FC(void)
|
|||
|
||||
if (group6->available == 1)
|
||||
{
|
||||
if (gUnknown_0202BEFC == 0 || gUnknown_0202BEFC == 4)
|
||||
if (Pokedex_PopupTypeIx == POKEDEX_POPUP_TRANSMISSION_CONNECT_PROMPT ||
|
||||
Pokedex_PopupTypeIx == POKEDEX_POPUP_DELETE_CONFIRMATION_PROMPT)
|
||||
{
|
||||
group6->baseX = 120;
|
||||
group6->baseY = 100;
|
||||
|
|
@ -1139,7 +1148,7 @@ void sub_51FC(void)
|
|||
group6->baseY = 80;
|
||||
}
|
||||
|
||||
spriteSet = gUnknown_086A6148[17 + gUnknown_0202BEFC];
|
||||
spriteSet = gUnknown_086A6148[17 + Pokedex_PopupTypeIx];
|
||||
for (i = 0; i < spriteSet->count; i++)
|
||||
{
|
||||
groupOam = &group6->oam[i];
|
||||
|
|
@ -1217,7 +1226,7 @@ static void RenderLinkGraphics(void)
|
|||
group3 = &gMain_spriteGroups[3];
|
||||
group4 = &gMain_spriteGroups[4];
|
||||
group6 = &gMain_spriteGroups[5 + gUnknown_0201A448];
|
||||
group7 = &gMain_spriteGroups[17 + gUnknown_0202BEFC];
|
||||
group7 = &gMain_spriteGroups[17 + Pokedex_PopupTypeIx];
|
||||
group5 = &gMain_spriteGroups[24];
|
||||
|
||||
group0->available = TRUE;
|
||||
|
|
@ -1300,7 +1309,8 @@ static void RenderLinkGraphics(void)
|
|||
|
||||
if (group7->available == 1)
|
||||
{
|
||||
if (gUnknown_0202BEFC == 0 || gUnknown_0202BEFC == 4)
|
||||
if (Pokedex_PopupTypeIx == POKEDEX_POPUP_TRANSMISSION_CONNECT_PROMPT ||
|
||||
Pokedex_PopupTypeIx == POKEDEX_POPUP_DELETE_CONFIRMATION_PROMPT)
|
||||
{
|
||||
group7->baseX = 120;
|
||||
group7->baseY = 100;
|
||||
|
|
@ -1311,7 +1321,7 @@ static void RenderLinkGraphics(void)
|
|||
group7->baseY = 80;
|
||||
}
|
||||
|
||||
spriteSet = gUnknown_086A6148[17 + gUnknown_0202BEFC];
|
||||
spriteSet = gUnknown_086A6148[17 + Pokedex_PopupTypeIx];
|
||||
for (i = 0; i < spriteSet->count; i++)
|
||||
{
|
||||
groupOam = &group7->oam[i];
|
||||
|
|
@ -1519,6 +1529,7 @@ static int sub_6144(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
//Link transfer as host (See sub_65DC for client)
|
||||
int sub_639C(void)
|
||||
{
|
||||
int i, j;
|
||||
|
|
@ -1539,7 +1550,7 @@ int sub_639C(void)
|
|||
if (gUnknown_0201A4D0[0][0] == 0xECEC && gUnknown_0201A4D0[0][1] == 0xECEC)
|
||||
{
|
||||
gUnknown_0201B128 = -1;
|
||||
gUnknown_0202BEFC = 1;
|
||||
Pokedex_PopupTypeIx = POKEDEX_POPUP_TRANSMITTING_ACTIVE;
|
||||
gUnknown_0201C180 = 1;
|
||||
}
|
||||
else if (++gUnknown_0202BECC > 10)
|
||||
|
|
@ -1607,6 +1618,7 @@ int sub_639C(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
//Link transfer as client (See sub_639C for host)
|
||||
static int sub_65DC(void)
|
||||
{
|
||||
int i, j;
|
||||
|
|
@ -1627,7 +1639,7 @@ static int sub_65DC(void)
|
|||
if (gUnknown_0201A4D0[0][0] == 0xECEC && gUnknown_0201A4D0[0][1] == 0xECEC)
|
||||
{
|
||||
gUnknown_0201B128 = -1;
|
||||
gUnknown_0202BEFC = 1;
|
||||
Pokedex_PopupTypeIx = POKEDEX_POPUP_TRANSMITTING_ACTIVE;
|
||||
gUnknown_0201C180 = 1;
|
||||
}
|
||||
else if (++gUnknown_0202BECC > 10)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ extern void sub_1A2C0(void);
|
|||
|
||||
void sub_1A0F4(void)
|
||||
{
|
||||
if ((gMain.unkF & 1) != 0)
|
||||
if ((gMain.modeChangeFlags & MODE_CHANGE_BANNER) != 0)
|
||||
{
|
||||
gCurrentPinballGame->unk5F7 = 1;
|
||||
if (gCurrentPinballGame->unkFA != 0)
|
||||
|
|
@ -61,7 +61,7 @@ void sub_1A0F4(void)
|
|||
{
|
||||
gCurrentPinballGame->unkE6 = 0;
|
||||
gCurrentPinballGame->unk1F = 0;
|
||||
gMain.unkF = gMain.unkF & 254;
|
||||
gMain.modeChangeFlags &= ~MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unk5F7 = 0;
|
||||
|
||||
if (gCurrentPinballGame->unkFB == 0)
|
||||
|
|
@ -80,7 +80,7 @@ void sub_1A0F4(void)
|
|||
|
||||
gCurrentPinballGame->unkE6 = 0;
|
||||
gCurrentPinballGame->unk1F = 0;
|
||||
gMain.unkF = gMain.unkF & 254;
|
||||
gMain.modeChangeFlags &= ~MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unk5F7 = 0;
|
||||
|
||||
if (gCurrentPinballGame->unkFB == 0)
|
||||
|
|
@ -96,7 +96,7 @@ void sub_1A0F4(void)
|
|||
{
|
||||
gCurrentPinballGame->unkE6 = 0;
|
||||
gCurrentPinballGame->unk1F = 0;
|
||||
gMain.unkF = gMain.unkF & 254;
|
||||
gMain.modeChangeFlags &= ~MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unk5F7 = 0;
|
||||
|
||||
if (gCurrentPinballGame->unkFB == 0)
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ void sub_22D54(void);
|
|||
|
||||
void sub_1A98C(void)
|
||||
{
|
||||
if (gMain.unkF != 0)
|
||||
if (gMain.modeChangeFlags != MODE_CHANGE_NONE)
|
||||
return;
|
||||
|
||||
switch (gCurrentPinballGame->unk25)
|
||||
|
|
@ -77,7 +77,7 @@ void sub_1AA38(void)
|
|||
m4aSongNumStart(SE_UNKNOWN_0xCE);
|
||||
gCurrentPinballGame->scoreAddedInFrame = 50000;
|
||||
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -88,7 +88,7 @@ void sub_1AA38(void)
|
|||
* When this function is nulled out at sub_1A9E8, the banner *doesn't* show, and
|
||||
* the ball bounces off the sharpedo. However, the grid still shows a picked mon,
|
||||
* and the mode otherwise works mostly normally, with the exception of affecting
|
||||
* the 'tilt' behavior, and the colision with the cyndaquil pushback.
|
||||
* the 'tilt' behavior, and the collision with the cyndaquil pushback.
|
||||
*/
|
||||
void sub_1AAA0(void)
|
||||
{
|
||||
|
|
@ -199,7 +199,7 @@ void sub_1AAA0(void)
|
|||
if (gCurrentPinballGame->unk28 == 18)
|
||||
{
|
||||
m4aSongNumStart(194);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
}
|
||||
else if (gCurrentPinballGame->unk28 > 12)
|
||||
|
|
@ -248,7 +248,7 @@ void sub_1AD84(void)
|
|||
{
|
||||
gCurrentPinballGame->unk2DA = 4;
|
||||
m4aSongNumStart(SE_UNKNOWN_0xB7);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
gCurrentPinballGame->unk28 = 500;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk2D0 !=0)
|
||||
|
|
@ -409,7 +409,7 @@ void sub_1B140(s16 arg0)
|
|||
{
|
||||
int var_r7 = 0;
|
||||
|
||||
if (gMain.unkF == 0 && gCurrentPinballGame->unk1BA != 0)
|
||||
if (gMain.modeChangeFlags == MODE_CHANGE_NONE && gCurrentPinballGame->unk1BA != 0)
|
||||
gCurrentPinballGame->unk1BA--;
|
||||
|
||||
if (arg0 == 0)
|
||||
|
|
@ -761,7 +761,7 @@ void sub_1B140(s16 arg0)
|
|||
{
|
||||
m4aMPlayAllStop();
|
||||
|
||||
gMain.unkF |= 1;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unkEA = 0;
|
||||
gCurrentPinballGame->unkEC = 120;
|
||||
gCurrentPinballGame->unkE8 = 0;
|
||||
|
|
@ -1180,7 +1180,7 @@ void sub_1C560(void)
|
|||
gCurrentPinballGame->unk5F3 = 0;
|
||||
gCurrentPinballGame->scoreAddedInFrame = 10000;
|
||||
gCurrentPinballGame->unk5F7 = 1;
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
|
||||
void sub_1C5AC(void)
|
||||
|
|
|
|||
|
|
@ -390,7 +390,7 @@ void sub_1D5D8(void)
|
|||
var1 = gUnknown_086AD7C0[gCurrentPinballGame->unk2FD][0];
|
||||
var0 = gUnknown_086AD7C0[gCurrentPinballGame->unk2FD][2];
|
||||
m4aSongNumStart(SE_UNKNOWN_0xCF);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
gCurrentPinballGame->scoreAddedInFrame = 50000;
|
||||
break;
|
||||
case 2:
|
||||
|
|
@ -419,7 +419,7 @@ void sub_1D5D8(void)
|
|||
var1 = gUnknown_086AD7C0[gCurrentPinballGame->unk2FD][0];
|
||||
var0 = gUnknown_086AD7C0[gCurrentPinballGame->unk2FD][2];
|
||||
m4aSongNumStart(SE_UNKNOWN_0xCF);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
gCurrentPinballGame->scoreAddedInFrame = 100000;
|
||||
break;
|
||||
case 4:
|
||||
|
|
@ -526,7 +526,7 @@ void sub_1DAD8(void)
|
|||
{
|
||||
if (gCurrentPinballGame->unk2F2 == 5)
|
||||
{
|
||||
gMain.unkF |= 0x1;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unkEA = 0;
|
||||
gCurrentPinballGame->unkEC = 3;
|
||||
gCurrentPinballGame->unkE8 = 0;
|
||||
|
|
@ -663,7 +663,7 @@ void sub_1DDDC(void)
|
|||
gCurrentPinballGame->ball->oamPriority = 0;
|
||||
gCurrentPinballGame->scoreAddedInFrame = 5000;
|
||||
m4aSongNumStart(SE_UNKNOWN_0xD5);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
break;
|
||||
case 3:
|
||||
if (gUnknown_086AD862[gCurrentPinballGame->unk2A5][1] > gCurrentPinballGame->unk2A6)
|
||||
|
|
@ -790,7 +790,7 @@ void sub_1DDDC(void)
|
|||
gCurrentPinballGame->unk2A2 = 8;
|
||||
gCurrentPinballGame->scoreAddedInFrame = 10;
|
||||
m4aSongNumStart(SE_UNKNOWN_0xB6);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
if (gCurrentPinballGame->unk724)
|
||||
gCurrentPinballGame->unk724 = 1;
|
||||
break;
|
||||
|
|
@ -823,7 +823,7 @@ void sub_1DDDC(void)
|
|||
MPlayStart(&gMPlayInfo_SE3, &se_unk_d7);
|
||||
|
||||
if (gCurrentPinballGame->unk2A6 % 10 == 0)
|
||||
sub_11B0(12);
|
||||
PlayRumble(12);
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
|
|
@ -1053,7 +1053,7 @@ void sub_1EC48(void)
|
|||
{
|
||||
gCurrentPinballGame->scoreAddedInFrame = 500;
|
||||
m4aSongNumStart(SE_UNKNOWN_0xB6);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
if (gCurrentPinballGame->unk13 == 4 && gCurrentPinballGame->unk17 == 5 && gCurrentPinballGame->unk625 < 6)
|
||||
{
|
||||
if (gCurrentPinballGame->unk625 == 0)
|
||||
|
|
@ -1069,7 +1069,7 @@ void sub_1EC48(void)
|
|||
{
|
||||
if (gCurrentPinballGame->unk16C == 4)
|
||||
{
|
||||
gMain.unkF |= 0x1;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unkEA = 50;
|
||||
gCurrentPinballGame->unkEC = 600;
|
||||
gCurrentPinballGame->unkE8 = 236;
|
||||
|
|
@ -1087,7 +1087,7 @@ void sub_1EC48(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
gMain.unkF |= 0x1;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unkEA = 50;
|
||||
gCurrentPinballGame->unkEC = 600;
|
||||
gCurrentPinballGame->unkE8 = 236;
|
||||
|
|
@ -1768,7 +1768,7 @@ void sub_1FF0C(void)
|
|||
gCurrentPinballGame->unk2E3[0] = 0;
|
||||
gCurrentPinballGame->unk2E3[1] = 0;
|
||||
gCurrentPinballGame->unk2E2 = 0;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
m4aSongNumStart(SE_UNKNOWN_0xB7);
|
||||
gCurrentPinballGame->scoreAddedInFrame = 3000;
|
||||
gCurrentPinballGame->unk2E5[0] = 0;
|
||||
|
|
@ -1818,7 +1818,7 @@ void sub_201B8(void)
|
|||
|
||||
if (gCurrentPinballGame->unk6C2 == 0)
|
||||
{
|
||||
gMain.unkF |= 0x1;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unkEA = 70;
|
||||
gCurrentPinballGame->unkEC = 160;
|
||||
gCurrentPinballGame->unkE8 = 0;
|
||||
|
|
@ -2019,7 +2019,7 @@ void sub_203CC(void)
|
|||
gCurrentPinballGame->scoreAddedInFrame = 4000;
|
||||
}
|
||||
|
||||
sub_11B0(11);
|
||||
PlayRumble(11);
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk61E >= 100)
|
||||
|
|
|
|||
|
|
@ -1581,7 +1581,7 @@ void sub_23E18(void)
|
|||
gCurrentPinballGame->unk1EC = 2;
|
||||
gCurrentPinballGame->unk746 = 1;
|
||||
DmaCopy16(3, gRubyStageCyndaquil_Gfx[gCurrentPinballGame->unk746], (void *)0x06013300, 0x280);
|
||||
gMain.unkF |= 0x1;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unkEA = 0;
|
||||
gCurrentPinballGame->unkEC = 60;
|
||||
gCurrentPinballGame->unkE8 = 72;
|
||||
|
|
@ -2045,7 +2045,7 @@ void sub_24408(void)
|
|||
gCurrentPinballGame->ball->velocity.y = -(Sin(angle2) * 160) / 20000;
|
||||
}
|
||||
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -2846,7 +2846,7 @@ void sub_26A10(void)
|
|||
switch (gCurrentPinballGame->unk17)
|
||||
{
|
||||
case 0:
|
||||
if (gMain.unkF == 0)
|
||||
if (gMain.modeChangeFlags == MODE_CHANGE_NONE)
|
||||
{
|
||||
gCurrentPinballGame->unk17++;
|
||||
gCurrentPinballGame->unk708 = 0;
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ void sub_27F94(void)
|
|||
gCurrentPinballGame->unk6D3[i] = 15;
|
||||
break;
|
||||
case 4:
|
||||
if (gMain.unkF == 0)
|
||||
if (gMain.modeChangeFlags == MODE_CHANGE_NONE)
|
||||
{
|
||||
if (gMain.selectedField == FIELD_RUBY)
|
||||
{
|
||||
|
|
@ -97,7 +97,7 @@ void sub_27F94(void)
|
|||
}
|
||||
else if (gCurrentPinballGame->unk28 == 93)
|
||||
{
|
||||
gMain.unkF |= 1;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unkEA = 0;
|
||||
gCurrentPinballGame->unkEC = 120;
|
||||
gCurrentPinballGame->unkE8 = 0;
|
||||
|
|
@ -132,7 +132,7 @@ void sub_27F94(void)
|
|||
}
|
||||
else if (gCurrentPinballGame->unk28 == 67)
|
||||
{
|
||||
gMain.unkF |= 1;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unkEA = 0;
|
||||
gCurrentPinballGame->unkEC = 120;
|
||||
gCurrentPinballGame->unkE8 = 0;
|
||||
|
|
@ -294,7 +294,7 @@ void sub_28544(void)
|
|||
gCurrentPinballGame->unk17++;
|
||||
return;
|
||||
case 1:
|
||||
if (gMain.unkF == 0)
|
||||
if (gMain.modeChangeFlags == MODE_CHANGE_NONE)
|
||||
{
|
||||
if (gMain.selectedField == FIELD_RUBY)
|
||||
{
|
||||
|
|
@ -304,7 +304,7 @@ void sub_28544(void)
|
|||
}
|
||||
else if (gCurrentPinballGame->unk28 == 93)
|
||||
{
|
||||
gMain.unkF |= 1;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unkEA = 0;
|
||||
gCurrentPinballGame->unkEC = 120;
|
||||
gCurrentPinballGame->unkE8 = 0;
|
||||
|
|
@ -338,7 +338,7 @@ void sub_28544(void)
|
|||
}
|
||||
else if (gCurrentPinballGame->unk28 == 67)
|
||||
{
|
||||
gMain.unkF |= 1;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unkEA = 0;
|
||||
gCurrentPinballGame->unkEC = 120;
|
||||
gCurrentPinballGame->unkE8 = 0;
|
||||
|
|
@ -367,7 +367,7 @@ void sub_28544(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
else if ((gMain.unkF & 0x1) && gCurrentPinballGame->unkF0 == 1)
|
||||
else if ((gMain.modeChangeFlags & MODE_CHANGE_BANNER) && gCurrentPinballGame->unkF0 == 1)
|
||||
{
|
||||
gCurrentPinballGame->unk6C4 = 3;
|
||||
return;
|
||||
|
|
@ -1273,7 +1273,7 @@ void sub_2A354(void)
|
|||
{
|
||||
if (gCurrentPinballGame->unk6DE == 120)
|
||||
{
|
||||
gMain.unkF |= 1;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unkEA = 0;
|
||||
gCurrentPinballGame->unkEC = 250;
|
||||
gCurrentPinballGame->unkE8 = 272;
|
||||
|
|
@ -1862,7 +1862,7 @@ void sub_2AADC(void)
|
|||
if (gCurrentPinballGame->unk5A6 == 0)
|
||||
{
|
||||
m4aMPlayAllStop();
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk5A6 == 2)
|
||||
|
|
@ -2061,7 +2061,7 @@ void sub_2AADC(void)
|
|||
if (temp_r0 > 183)
|
||||
{
|
||||
if (temp_r0 == 185)
|
||||
sub_11B0(6);
|
||||
PlayRumble(6);
|
||||
|
||||
if (temp_r0 == 184)
|
||||
m4aSongNumStart(158);
|
||||
|
|
@ -2077,7 +2077,7 @@ void sub_2AADC(void)
|
|||
else if (temp_r0 > 167)
|
||||
{
|
||||
if (temp_r0 == 169)
|
||||
sub_11B0(6);
|
||||
PlayRumble(6);
|
||||
|
||||
if (temp_r0 == 168)
|
||||
m4aSongNumStart(0x9E);
|
||||
|
|
@ -2095,7 +2095,7 @@ void sub_2AADC(void)
|
|||
if (temp_r0 > 115)
|
||||
{
|
||||
if (temp_r0 == 117)
|
||||
sub_11B0(6);
|
||||
PlayRumble(6);
|
||||
|
||||
if (temp_r0 == 116)
|
||||
m4aSongNumStart(0x9E);
|
||||
|
|
@ -2111,7 +2111,7 @@ void sub_2AADC(void)
|
|||
else if (temp_r0 > 99)
|
||||
{
|
||||
if (temp_r0 == 101)
|
||||
sub_11B0(6);
|
||||
PlayRumble(6);
|
||||
|
||||
if (temp_r0 == 100)
|
||||
m4aSongNumStart(0x9E);
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ void sub_2C538(void)
|
|||
gCurrentPinballGame->ball->unk6 = 0;
|
||||
gMain.spriteGroups[68].available = 1;
|
||||
gCurrentPinballGame->unk302 = 6;
|
||||
sub_11B0(8);
|
||||
PlayRumble(8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -942,7 +942,7 @@ void sub_2E6AC(void)
|
|||
gCurrentPinballGame->ball->velocity.y = 0;
|
||||
gCurrentPinballGame->ball->unk6 = 0;
|
||||
m4aSongNumStart(SE_UNKNOWN_0xE2);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
gCurrentPinballGame->scoreAddedInFrame = 100000;
|
||||
}
|
||||
|
||||
|
|
@ -1128,7 +1128,7 @@ void sub_2E6AC(void)
|
|||
gCurrentPinballGame->ball->oamPriority = 3;
|
||||
gCurrentPinballGame->unk24 = 0;
|
||||
m4aSongNumStart(SE_UNKNOWN_0xE5);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
|
||||
gCurrentPinballGame->ball->positionQ1.x = gCurrentPinballGame->ball->positionQ0.x * 2;
|
||||
|
|
@ -1529,7 +1529,7 @@ void sub_2F79C(void)
|
|||
{
|
||||
m4aSongNumStart(SE_UNKNOWN_0xE8);
|
||||
gCurrentPinballGame->scoreAddedInFrame = 10;
|
||||
sub_11B0(13);
|
||||
PlayRumble(13);
|
||||
}
|
||||
|
||||
mosaicVal = gUnknown_08137CD6[gCurrentPinballGame->unk368 / 3];
|
||||
|
|
@ -1701,7 +1701,7 @@ void sub_30178(void)
|
|||
{
|
||||
gCurrentPinballGame->scoreAddedInFrame = 500;
|
||||
m4aSongNumStart(SE_UNKNOWN_0xB6);
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
if (gCurrentPinballGame->unk13 == 4 && gCurrentPinballGame->unk17 == 5)
|
||||
{
|
||||
if (gCurrentPinballGame->unk625 < 6)
|
||||
|
|
@ -1717,7 +1717,7 @@ void sub_30178(void)
|
|||
{
|
||||
if (gCurrentPinballGame->unk6C6 == 0)
|
||||
{
|
||||
gMain.unkF |= 0x1;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unkEA = 50;
|
||||
gCurrentPinballGame->unkEC = 600;
|
||||
gCurrentPinballGame->unkE8 = 0xEC;
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ void sub_304C8(void)
|
|||
if (group->available)
|
||||
{
|
||||
group->baseX = 192 - gCurrentPinballGame->unk58;
|
||||
if (gCurrentPinballGame->unk346 > 2 && gMain.unkF)
|
||||
if (gCurrentPinballGame->unk346 > 2 && gMain.modeChangeFlags)
|
||||
group->baseY = 56 - gCurrentPinballGame->unk5A;
|
||||
else
|
||||
group->baseY = 200;
|
||||
|
|
@ -273,7 +273,7 @@ void sub_308DC(void)
|
|||
}
|
||||
else if (var0 < 38)
|
||||
{
|
||||
if (var0 == 32 && (gMain.unkF & 0x20) == 0)
|
||||
if (var0 == 32 && (gMain.modeChangeFlags & MODE_CHANGE_END_OF_GAME) == 0)
|
||||
m4aSongNumStart(SE_UNKNOWN_0xEB);
|
||||
|
||||
gCurrentPinballGame->unk32F[i] = 6;
|
||||
|
|
@ -315,7 +315,7 @@ void sub_308DC(void)
|
|||
|
||||
if (gCurrentPinballGame->unk6C2 == 0)
|
||||
{
|
||||
gMain.unkF |= 1;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unkEA = 70;
|
||||
gCurrentPinballGame->unkEC = 160;
|
||||
gCurrentPinballGame->unkE8 = 0;
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ void sub_31498(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
gMain.unkF |= 0x1;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unkEA = 0;
|
||||
gCurrentPinballGame->unkEC = 920;
|
||||
gCurrentPinballGame->unkE8 = 0;
|
||||
|
|
@ -150,7 +150,7 @@ void sub_31498(void)
|
|||
case 4:
|
||||
if (gCurrentPinballGame->unk343 && gCurrentPinballGame->unk344)
|
||||
{
|
||||
gMain.unkF |= 0x1;
|
||||
gMain.modeChangeFlags |= MODE_CHANGE_BANNER;
|
||||
gCurrentPinballGame->unkEA = 0;
|
||||
gCurrentPinballGame->unkEC = 160;
|
||||
gCurrentPinballGame->unkE8 = 0;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ extern const u8 gKyogreBonusClear_Gfx[];
|
|||
extern const u8 gGroudonBonusClear_Gfx[];
|
||||
extern const u8 gRayquazaBonusClear_Gfx[];
|
||||
|
||||
void sub_350F0(void)
|
||||
void FadeToMainBoard(void)
|
||||
{
|
||||
gCurrentPinballGame->unk1100 = 1;
|
||||
switch (gCurrentPinballGame->unk17)
|
||||
|
|
@ -55,7 +55,7 @@ void sub_350F0(void)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_351A8(void)
|
||||
void ProceessBonusBannerAndScoring(void)
|
||||
{
|
||||
s16 i;
|
||||
struct SpriteGroup *group;
|
||||
|
|
@ -251,7 +251,7 @@ void sub_357B8(void)
|
|||
gMain.unk5 = gMain.selectedField;
|
||||
gMain.selectedField = temp;
|
||||
gMain.unk6 = 0;
|
||||
gMain.unkF = 0;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_NONE;
|
||||
gCurrentPinballGame->eventTimer = 0;
|
||||
gCurrentPinballGame->unk294 = 0;
|
||||
if (gCurrentPinballGame->numCompletedBonusStages > 4)
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ void sub_4E920(void)
|
|||
{
|
||||
m4aSongNumStart(SE_SLINGSHOT_HIT);
|
||||
gCurrentPinballGame->scoreAddedInFrame = 500;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -347,7 +347,7 @@ void sub_4F9F0(void)
|
|||
{
|
||||
m4aSongNumStart(SE_SLINGSHOT_HIT);
|
||||
gCurrentPinballGame->scoreAddedInFrame = 500;
|
||||
sub_11B0(7);
|
||||
PlayRumble(7);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
#include "main.h"
|
||||
#include "constants/bg_music.h"
|
||||
|
||||
static void sub_114FC(void);
|
||||
static void TitleScreen_CheckDeleteKeyComboPressed(void);
|
||||
static void sub_1157C(void);
|
||||
static void sub_11640(void);
|
||||
|
||||
|
|
@ -26,7 +26,7 @@ enum
|
|||
SUBSTATE_ANIM_CLOSE_MENU,
|
||||
SUBSTATE_7,
|
||||
SUBSTATE_8,
|
||||
SUBSTATE_9,
|
||||
SUBSTATE_DELETE_SAVE_GAME_CONFIRMATION,
|
||||
SUBSTATE_EXEC_MENU_SELECTION,
|
||||
SUBSTATE_11,
|
||||
};
|
||||
|
|
@ -177,7 +177,7 @@ void TitleScreen1_WaitForStartButton(void)
|
|||
gMain.subState = SUBSTATE_2;
|
||||
}
|
||||
|
||||
sub_114FC();
|
||||
TitleScreen_CheckDeleteKeyComboPressed();
|
||||
sub_1157C();
|
||||
|
||||
gTitlescreen.idleFramesCounter++;
|
||||
|
|
@ -601,22 +601,19 @@ void TitleScreen11_80114B4(void)
|
|||
SetMainGameState(gUnknown_086A964C[gTitlescreen.unk6]);
|
||||
}
|
||||
|
||||
static void sub_114FC(void)
|
||||
static void TitleScreen_CheckDeleteKeyComboPressed(void)
|
||||
{
|
||||
// To delete save file, press R_BUTTON 3 times while holding L_BUTTON And DPAD_LEFT.
|
||||
if (JOY_HELD(L_BUTTON | DPAD_LEFT) == (L_BUTTON | DPAD_LEFT))
|
||||
if (JOY_HELD(L_BUTTON | DPAD_LEFT) == (L_BUTTON | DPAD_LEFT) && JOY_NEW(R_BUTTON))
|
||||
{
|
||||
if (JOY_NEW(R_BUTTON))
|
||||
gEraseSaveDataAccessCounter = 40;
|
||||
if (++gEraseSaveDataAccessStep == 3)
|
||||
{
|
||||
gEraseSaveDataAccessCounter = 40;
|
||||
if (++gEraseSaveDataAccessStep == 3)
|
||||
{
|
||||
gEraseSaveDataAccessStep = 0;
|
||||
gEraseSaveDataAccessCounter = 0;
|
||||
m4aSongNumStart(SE_MENU_POPUP_OPEN);
|
||||
gTitlescreen.deleteSaveWindowVisible = TRUE;
|
||||
gMain.subState = SUBSTATE_9;
|
||||
}
|
||||
gEraseSaveDataAccessStep = 0;
|
||||
gEraseSaveDataAccessCounter = 0;
|
||||
m4aSongNumStart(SE_MENU_POPUP_OPEN);
|
||||
gTitlescreen.deleteSaveWindowVisible = TRUE;
|
||||
gMain.subState = SUBSTATE_DELETE_SAVE_GAME_CONFIRMATION;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ void ResetSomeGraphicsRelatedStuff(void)
|
|||
ClearGraphicsMemory();
|
||||
sub_0518();
|
||||
ClearSprites();
|
||||
gMain.unkF = 0;
|
||||
gMain.modeChangeFlags = MODE_CHANGE_NONE;
|
||||
gMain.unk10 = 0;
|
||||
gMain.fieldFrameCount = 0;
|
||||
gMain.unk11 = 0;
|
||||
|
|
|
|||
|
|
@ -34,9 +34,9 @@ gUnknown_0200282C: @ 0x0200282C
|
|||
.space 0x1
|
||||
gUnknown_0200282D: @ 0x0200282D
|
||||
.space 0x3
|
||||
gUnknown_02002830: @ 0x02002830
|
||||
gPokedex_EraseSaveDataAccessCounter: @ 0x02002830
|
||||
.space 0x1
|
||||
gUnknown_02002831: @ 0x02002831
|
||||
gPokedex_EraseSaveDataAccessStep: @ 0x02002831
|
||||
.space 0x7
|
||||
gFieldSelectData: @ 0x02002838
|
||||
.space 0x18
|
||||
|
|
@ -467,7 +467,7 @@ gUnknown_0202BEF4: @ 0x0202BEF4
|
|||
.space 0x4
|
||||
gUnknown_0202BEF8: @ 0x0202BEF8
|
||||
.space 0x4
|
||||
gUnknown_0202BEFC: @ 0x0202BEFC
|
||||
Pokedex_PopupTypeIx: @ 0x0202BEFC
|
||||
.space 0x4
|
||||
gUnknown_0202BF00: @ 0x0202BF00
|
||||
.space 0x4
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user