From 77c628e0eefc8a7e55281721e7f22cced9fcd278 Mon Sep 17 00:00:00 2001 From: Retnuhytnuob <65794339+Retnuhytnuob@users.noreply.github.com> Date: Thu, 19 Mar 2026 17:59:21 -0500 Subject: [PATCH] Sound Effect Naming, kickback naming, catch state enum (#211) * kickback naming, catch state enum * sound renaming through 98 --- data/rom_1.s | 22 +- data/rom_2.s | 14 +- data/sound_data.s | 56 ++-- graphics/stage/main/charge_fill_indicator.png | Bin 0 -> 521 bytes include/constants/bg_music.h | 120 ++++----- include/constants/main_board.h | 12 + include/constants/ruby_states.h | 1 + include/constants/sapphire_states.h | 5 + include/functions.h | 6 +- include/global.h | 60 ++--- sound/song_table.inc | 56 ++-- ...e_unk_93.s => se_area_roulette_selected.s} | 44 ++-- sound/songs/se_ball_saved.s | 84 ++++++ .../songs/{se_unk_87.s => se_ball_upgrade.s} | 36 +-- sound/songs/se_bonus_score_tallied.s | 54 ++++ sound/songs/se_catch_all_reveal_lightning.s | 98 +++++++ ...unk_8e.s => se_catch_all_reveal_shatter.s} | 44 ++-- .../{se_unk_8b.s => se_catch_evo_banner.s} | 60 ++--- sound/songs/se_catch_tile_reveal.s | 82 ++++++ sound/songs/se_center_hole_eject.s | 103 ++++++++ sound/songs/se_coin_collected.s | 50 ++++ sound/songs/se_dex_info_field_select_move.s | 40 +++ .../{se_unk_84.s => se_evo_item_appear.s} | 44 ++-- sound/songs/se_evo_item_collected.s | 76 ++++++ sound/songs/se_evo_item_finish_appear.s | 63 +++++ .../{se_unk_92.s => se_hatch_flourish.s} | 88 +++---- sound/songs/se_kickback_thunderwave.s | 61 +++++ sound/songs/se_lati_delivery.s | 64 +++++ sound/songs/se_pichu_in_position_chirp.s | 43 ++++ sound/songs/se_pichu_kickback.s | 43 ++++ ...se_unk_7a.s => se_pika_full_charge_1_up.s} | 36 +-- sound/songs/se_pika_no_kickback.s | 42 +++ sound/songs/se_pika_spinner_clack.s | 46 ++++ sound/songs/se_pikachu_kickback.s | 43 ++++ sound/songs/se_roulette_tick.s | 53 ++++ sound/songs/se_saver_plunger_drop.s | 45 ++++ sound/songs/se_shop_list_reveal.s | 75 ++++++ sound/songs/se_travel_painter_flight.s | 58 +++++ sound/songs/se_travel_painter_paints.s | 42 +++ sound/songs/se_unk_142.s | 42 --- sound/songs/se_unk_6d.s | 40 --- sound/songs/se_unk_75.s | 43 ---- sound/songs/se_unk_79.s | 46 ---- sound/songs/se_unk_7c.s | 61 ----- sound/songs/se_unk_7e.s | 50 ---- sound/songs/se_unk_80.s | 103 -------- sound/songs/se_unk_81.s | 53 ---- sound/songs/se_unk_85.s | 63 ----- sound/songs/se_unk_86.s | 76 ------ sound/songs/se_unk_8c.s | 82 ------ sound/songs/se_unk_8d.s | 98 ------- sound/songs/se_unk_8f.s | 75 ------ sound/songs/se_unk_91.s | 54 ---- sound/songs/se_unk_94.s | 84 ------ sound/songs/se_unk_95.s | 64 ----- sound/songs/se_unk_96.s | 45 ---- sound/songs/se_unk_97.s | 58 ----- sound/songs/se_unk_98.s | 42 --- sound/songs/se_unk_b1.s | 43 ---- sound/songs/se_unk_b3.s | 43 ---- src/board_process2.c | 28 +- src/board_process3_ruby.c | 14 +- src/board_process3_sapphire.c | 32 +-- src/board_process3_spheal.c | 4 +- src/board_process4.c | 7 +- src/board_process6.c | 5 +- src/board_process8.c | 10 +- src/bonus_field_select.c | 8 +- src/collision_checks.c | 12 +- src/debug_menu.c | 20 +- src/field_select.c | 8 +- src/pinball_game_main.c | 44 ++-- src/pokedex.c | 6 +- src/rom_1A0F4.c | 19 +- src/rom_1A98C.c | 36 +-- src/rom_201B8.c | 222 ++++++++-------- src/rom_27E08.c | 240 +++++++++--------- src/rom_27F94.c | 52 ++-- src/rom_2E67C.c | 15 +- src/rom_30480.c | 2 +- src/rom_31BE8.c | 6 +- src/rom_4F258.c | 22 +- src/rom_50AD4.c | 18 +- 83 files changed, 2051 insertions(+), 2013 deletions(-) create mode 100644 graphics/stage/main/charge_fill_indicator.png create mode 100644 include/constants/main_board.h create mode 100644 include/constants/sapphire_states.h rename sound/songs/{se_unk_93.s => se_area_roulette_selected.s} (53%) create mode 100644 sound/songs/se_ball_saved.s rename sound/songs/{se_unk_87.s => se_ball_upgrade.s} (55%) create mode 100644 sound/songs/se_bonus_score_tallied.s create mode 100644 sound/songs/se_catch_all_reveal_lightning.s rename sound/songs/{se_unk_8e.s => se_catch_all_reveal_shatter.s} (56%) rename sound/songs/{se_unk_8b.s => se_catch_evo_banner.s} (62%) create mode 100644 sound/songs/se_catch_tile_reveal.s create mode 100644 sound/songs/se_center_hole_eject.s create mode 100644 sound/songs/se_coin_collected.s create mode 100644 sound/songs/se_dex_info_field_select_move.s rename sound/songs/{se_unk_84.s => se_evo_item_appear.s} (73%) create mode 100644 sound/songs/se_evo_item_collected.s create mode 100644 sound/songs/se_evo_item_finish_appear.s rename sound/songs/{se_unk_92.s => se_hatch_flourish.s} (57%) create mode 100644 sound/songs/se_kickback_thunderwave.s create mode 100644 sound/songs/se_lati_delivery.s create mode 100644 sound/songs/se_pichu_in_position_chirp.s create mode 100644 sound/songs/se_pichu_kickback.s rename sound/songs/{se_unk_7a.s => se_pika_full_charge_1_up.s} (56%) create mode 100644 sound/songs/se_pika_no_kickback.s create mode 100644 sound/songs/se_pika_spinner_clack.s create mode 100644 sound/songs/se_pikachu_kickback.s create mode 100644 sound/songs/se_roulette_tick.s create mode 100644 sound/songs/se_saver_plunger_drop.s create mode 100644 sound/songs/se_shop_list_reveal.s create mode 100644 sound/songs/se_travel_painter_flight.s create mode 100644 sound/songs/se_travel_painter_paints.s delete mode 100644 sound/songs/se_unk_142.s delete mode 100644 sound/songs/se_unk_6d.s delete mode 100644 sound/songs/se_unk_75.s delete mode 100644 sound/songs/se_unk_79.s delete mode 100644 sound/songs/se_unk_7c.s delete mode 100644 sound/songs/se_unk_7e.s delete mode 100644 sound/songs/se_unk_80.s delete mode 100644 sound/songs/se_unk_81.s delete mode 100644 sound/songs/se_unk_85.s delete mode 100644 sound/songs/se_unk_86.s delete mode 100644 sound/songs/se_unk_8c.s delete mode 100644 sound/songs/se_unk_8d.s delete mode 100644 sound/songs/se_unk_8f.s delete mode 100644 sound/songs/se_unk_91.s delete mode 100644 sound/songs/se_unk_94.s delete mode 100644 sound/songs/se_unk_95.s delete mode 100644 sound/songs/se_unk_96.s delete mode 100644 sound/songs/se_unk_97.s delete mode 100644 sound/songs/se_unk_98.s delete mode 100644 sound/songs/se_unk_b1.s delete mode 100644 sound/songs/se_unk_b3.s diff --git a/data/rom_1.s b/data/rom_1.s index 38408db..b66ce34 100644 --- a/data/rom_1.s +++ b/data/rom_1.s @@ -1445,8 +1445,8 @@ gPelipper_Gfx:: @ 0x084BB16C .incbin "graphics/stage/sapphire/pelipper.4bpp" .incbin "graphics/stage/sapphire/charger.4bpp" -gCatchCounterDigitTilesGfx:: @ 0x084C00EC - .incbin "baserom.gba", 0x4C00EC, 0x700 +gChargeFillIndicator_Gfx:: @ 0x084C00EC + .incbin "graphics/stage/main/charge_fill_indicator.4bpp" gPikaSaverTilesGfx:: @ 0x084C07EC .incbin "baserom.gba", 0x4C07EC, 0x480 @@ -1613,14 +1613,14 @@ gOptionsBGMList:: @ 0x08527D22 gOptionsSEList:: @ 0x08527D66 .2byte SE_MENU_SELECT, SE_MENU_CANCEL, SE_MENU_MOVE, SE_MENU_POPUP_OPEN, SE_MENU_POPUP_CLOSE - .2byte SE_SCORE_ENTRY_A_B_MOVE, SE_SCORE_ENTRY_LETTER_CHANGE, SE_UNKNOWN_0x6D, SE_FLIPPER_PRESSED, SE_SLINGSHOT_HIT - .2byte SE_POKEMON_CATCH_HIT, SE_UNKNOWN_0x75, SE_TRIGGER_BUTTON_HIT, SE_WALL_HIT, SE_TILT_TRIGGERED - .2byte SE_UNKNOWN_0x79, SE_UNKNOWN_0x7A, SE_UNKNOWN_0x7B, SE_UNKNOWN_0x7C, SE_UNKNOWN_0x7E - .2byte SE_UNKNOWN_0x80, SE_UNKNOWN_0x81, SE_EVO_SELECTION_MOVE, SE_EVO_SELECTION_CONFIRM, SE_UNKNOWN_0x84 - .2byte SE_UNKNOWN_0x85, SE_UNKNOWN_0x86, SE_UNKNOWN_0x87, SE_FAILURE, SE_UNKNOWN_0x8B - .2byte SE_UNKNOWN_0x8C, SE_UNKNOWN_0x8D, SE_UNKNOWN_0x8E, SE_UNKNOWN_0x8F, SE_UNKNOWN_0x91 - .2byte SE_UNKNOWN_0x92, SE_UNKNOWN_0x93, SE_UNKNOWN_0x94, SE_UNKNOWN_0x95, SE_UNKNOWN_0x96 - .2byte SE_UNKNOWN_0x97, SE_UNKNOWN_0x98, SE_UNKNOWN_0x99, SE_UNKNOWN_0x9A, SE_UNKNOWN_0x9B + .2byte SE_SCORE_ENTRY_A_B_MOVE, SE_SCORE_ENTRY_LETTER_CHANGE, SE_DEX_INFO_FIELD_SELECT_MOVE, SE_FLIPPER_PRESSED, SE_SLINGSHOT_HIT + .2byte SE_POKEMON_CATCH_HIT, SE_PICHU_IN_POSITION_CHIRP, SE_TRIGGER_BUTTON_HIT, SE_WALL_HIT, SE_TILT_TRIGGERED + .2byte SE_PIKA_SPINNER_CLACK, SE_PIKA_FULL_CHARGE_1_UP, SE_UNKNOWN_0x7B, SE_KICKBACK_THUNDERWAVE, SE_COIN_COLLECTED + .2byte SE_CENTER_HOLE_EJECT, SE_ROULETTE_TICK, SE_EVO_SELECTION_MOVE, SE_EVO_SELECTION_CONFIRM, SE_EVO_ITEM_APPEAR + .2byte SE_EVO_ITEM_FINISH_APPEAR, SE_EVO_ITEM_COLLECTED, SE_BALL_UPGRADE, SE_FAILURE, SE_CATCH_EVO_BANNER + .2byte SE_CATCH_TILE_REVEAL, SE_CATCH_ALL_REVEAL_LIGHTNING, SE_CATCH_ALL_REVEAL_SHATTER, SE_SHOP_LIST_REVEAL, SE_BONUS_SCORE_TALLIED + .2byte SE_HATCH_FLOURISH, SE_AREA_ROULETTE_SELECTED, SE_BALL_SAVED, SE_LATI_DELIVERY, SE_SAVER_PLUNGER_DROP + .2byte SE_TRAVEL_PAINTER_FLIGHT, SE_TRAVEL_PAINTER_PAINTS, SE_UNKNOWN_0x99, SE_UNKNOWN_0x9A, SE_UNKNOWN_0x9B .2byte SE_UNKNOWN_0x9C, SE_UNKNOWN_0x9D, SE_UNKNOWN_0x9E, SE_WARP, SE_UNKNOWN_0xA1 .2byte SE_UNKNOWN_0xA2, SE_UNKNOWN_0xA3, SE_UNKNOWN_0xA4, SE_UNKNOWN_0xA5, SE_UNKNOWN_0xA6 .2byte SE_UNKNOWN_0xA7, SE_PIKA_CHARGE_DO, SE_PIKA_CHARGE_RE, SE_PIKA_CHARGE_MI, SE_PIKA_CHARGE_FA @@ -1649,7 +1649,7 @@ gOptionsSEList:: @ 0x08527D66 .2byte SE_UNKNOWN_0x13B, SE_UNKNOWN_0x13C, SE_UNKNOWN_0x13D, SE_UNKNOWN_0x13E, SE_UNKNOWN_0x140 .2byte SE_JIRACHI_MOVE, SE_JIRACHI_HIT, SE_UNKNOWN_0x146, SE_UNKNOWN_0x147, SE_UNKNOWN_0x148 .2byte SE_UNKNOWN_0x149, SE_WHISCASH_EARTHQUAKE, SE_HIGH_SCORE_EARNED, SE_UNKNOWN_0x14B, SE_UNKNOWN_0x71 - .2byte SE_UNKNOWN_0xB1, SE_UNKNOWN_0xB2, SE_UNKNOWN_0xB3, SE_UNKNOWN_0x142 + .2byte SE_PIKACHU_KICKBACK, SE_UNKNOWN_0xB2, SE_PICHU_KICKBACK, SE_PIKA_NO_KICKBACK gDefaultButtonConfigs:: @ 0x08527ED6 diff --git a/data/rom_2.s b/data/rom_2.s index 2e7045e..70799b2 100644 --- a/data/rom_2.s +++ b/data/rom_2.s @@ -4131,11 +4131,19 @@ gCatchOverlayAnimData:: @ 0x086ADEE0 gPikaSaverAnimFrameTable:: @ 0x086ADF48 .incbin "baserom.gba", 0x6ADF48, 0x42 -gCatchHoleXPositions:: @ 0x086ADF8A - .incbin "baserom.gba", 0x6ADF8A, 0x6 +gOutlaneCenterXPositions:: @ 0x086ADF8A + .2byte 33,206 + .align 2,0 gPikaSaverWaypoints:: @ 0x086ADF90 - .incbin "baserom.gba", 0x6ADF90, 0x38 + @vector32 positions + .4byte 1320, 4480 @ Start Walk In + .4byte 1350, 4260 + .4byte 2040, 3860 + .4byte 2100, 3960 @ Home in Chute + .4byte 1930, 3860 @ Start Walk Out + .4byte 1340, 4260 + .4byte 1320, 4480 gArrowBounceOffsets:: @ 0x086ADFC8 .incbin "baserom.gba", 0x6ADFC8, 0xC diff --git a/data/sound_data.s b/data/sound_data.s index 368fa87..d59d1d4 100644 --- a/data/sound_data.s +++ b/data/sound_data.s @@ -3825,48 +3825,48 @@ gDirectSound_086885EC:: @ 0x086885EC .include "sound/songs/se_score_entry_a_b_move.s" .include "sound/songs/se_score_entry_letter_change.s" .include "sound/songs/se_unk_6c.s" -.include "sound/songs/se_unk_6d.s" +.include "sound/songs/se_dex_info_field_select_move.s" .include "sound/songs/se_unk_6e.s" .include "sound/songs/se_unk_6f.s" .include "sound/songs/se_unk_71.s" .include "sound/songs/se_flipper_pressed.s" .include "sound/songs/se_slingshot_hit.s" .include "sound/songs/se_pokemon_catch_hit.s" -.include "sound/songs/se_unk_75.s" +.include "sound/songs/se_pichu_in_position_chirp.s" .include "sound/songs/se_trigger_button_hit.s" .include "sound/songs/se_wall_hit.s" .include "sound/songs/se_tilt_triggered.s" -.include "sound/songs/se_unk_79.s" -.include "sound/songs/se_unk_7a.s" +.include "sound/songs/se_pika_spinner_clack.s" +.include "sound/songs/se_pika_full_charge_1_up.s" .include "sound/songs/se_unk_7b.s" -.include "sound/songs/se_unk_7c.s" +.include "sound/songs/se_kickback_thunderwave.s" .include "sound/songs/se_unk_7d.s" -.include "sound/songs/se_unk_7e.s" +.include "sound/songs/se_coin_collected.s" .include "sound/songs/se_unk_7f.s" -.include "sound/songs/se_unk_80.s" -.include "sound/songs/se_unk_81.s" +.include "sound/songs/se_center_hole_eject.s" +.include "sound/songs/se_roulette_tick.s" .include "sound/songs/se_evo_selection_move.s" .include "sound/songs/se_evo_selection_confirm.s" -.include "sound/songs/se_unk_84.s" -.include "sound/songs/se_unk_85.s" -.include "sound/songs/se_unk_86.s" -.include "sound/songs/se_unk_87.s" +.include "sound/songs/se_evo_item_appear.s" +.include "sound/songs/se_evo_item_finish_appear.s" +.include "sound/songs/se_evo_item_collected.s" +.include "sound/songs/se_ball_upgrade.s" .include "sound/songs/se_unk_88.s" .include "sound/songs/se_unk_89.s" .include "sound/songs/se_failure.s" -.include "sound/songs/se_unk_8b.s" -.include "sound/songs/se_unk_8c.s" -.include "sound/songs/se_unk_8d.s" -.include "sound/songs/se_unk_8e.s" -.include "sound/songs/se_unk_8f.s" -.include "sound/songs/se_unk_91.s" -.include "sound/songs/se_unk_92.s" -.include "sound/songs/se_unk_93.s" -.include "sound/songs/se_unk_94.s" -.include "sound/songs/se_unk_95.s" -.include "sound/songs/se_unk_96.s" -.include "sound/songs/se_unk_97.s" -.include "sound/songs/se_unk_98.s" +.include "sound/songs/se_catch_evo_banner.s" +.include "sound/songs/se_catch_tile_reveal.s" +.include "sound/songs/se_catch_all_reveal_lightning.s" +.include "sound/songs/se_catch_all_reveal_shatter.s" +.include "sound/songs/se_shop_list_reveal.s" +.include "sound/songs/se_bonus_score_tallied.s" +.include "sound/songs/se_hatch_flourish.s" +.include "sound/songs/se_area_roulette_selected.s" +.include "sound/songs/se_ball_saved.s" +.include "sound/songs/se_lati_delivery.s" +.include "sound/songs/se_saver_plunger_drop.s" +.include "sound/songs/se_travel_painter_flight.s" +.include "sound/songs/se_travel_painter_paints.s" .include "sound/songs/se_unk_99.s" .include "sound/songs/se_unk_9a.s" .include "sound/songs/se_unk_9b.s" @@ -3891,9 +3891,9 @@ gDirectSound_086885EC:: @ 0x086885EC .include "sound/songs/se_pika_charge_ti.s" .include "sound/songs/se_pika_charge_high_do.s" .include "sound/songs/se_unk_b0.s" -.include "sound/songs/se_unk_b1.s" +.include "sound/songs/se_pikachu_kickback.s" .include "sound/songs/se_unk_b2.s" -.include "sound/songs/se_unk_b3.s" +.include "sound/songs/se_pichu_kickback.s" .include "sound/songs/se_unk_b4.s" .include "sound/songs/se_ruby_bumper_hit.s" .include "sound/songs/se_unk_b7.s" @@ -4011,7 +4011,7 @@ gDirectSound_086885EC:: @ 0x086885EC .include "sound/songs/se_unk_13e.s" .include "sound/songs/se_unk_13f.s" .include "sound/songs/se_unk_140.s" -.include "sound/songs/se_unk_142.s" +.include "sound/songs/se_pika_no_kickback.s" .include "sound/songs/se_jirachi_move.s" .include "sound/songs/se_jirachi_hit.s" .include "sound/songs/se_unk_146.s" diff --git a/graphics/stage/main/charge_fill_indicator.png b/graphics/stage/main/charge_fill_indicator.png new file mode 100644 index 0000000000000000000000000000000000000000..39befc7aa23792f53d18f58ee1028ccad62d7a2f GIT binary patch literal 521 zcmV+k0`~ohP)iSfr0005dNklb>!3$?*x1y13E(~Qj`-XY11^F^1)c* zGc6ksKLFNy1l$49u;%biG}5q#T}>1xT0<(tNJ9#dD+AP0Ac9&e5~P#@Ck_Xa<%0&^ z8#-Rb*KPn0+<}H8V3(S15cc>9usL$~s~(!NXUrbmxrADKW={@eFzG6c)b*;zdFQs` z;oqM}hOJ!8{>*ballCatchState == 0 && gCurrentPinballGame->captureState != 2 && gCurrentPinballGame->entityOverlayCollisionState == 0) + if (gCurrentPinballGame->ballCatchState == NOT_TRAPPED && gCurrentPinballGame->captureState != 2 && gCurrentPinballGame->kickbackFiring == 0) { if (gCurrentPinballGame->newButtonActions[2]) { @@ -452,7 +452,7 @@ void ProcessMainBoardBallDrainAndLaunch(void) gCurrentPinballGame->ball->velocity.y = 0; if (gMain.modeChangeDelayTimer == 0) { - if (gCurrentPinballGame->modeTimeRemaining) + if (gCurrentPinballGame->saverTimeRemaining) { gMain.modeChangeDelayTimer = 4; gMain.pendingModeChangeType = 8; @@ -468,8 +468,8 @@ void ProcessMainBoardBallDrainAndLaunch(void) ResetBoardStateOnDeath(); if (gCurrentPinballGame->outLanePikaPosition == 2 && gMain.eReaderBonuses[EREADER_DX_MODE_CARD] == 0) { - gCurrentPinballGame->pikaRescuePath = 2; - gCurrentPinballGame->pikaSaverTimer = 800; + gCurrentPinballGame->pichuWalkMode = 2; + gCurrentPinballGame->pichuEntranceTimer = 800; gCurrentPinballGame->outLanePikaPosition = 0; } } @@ -538,20 +538,20 @@ void ResetBoardStateOnDeath(void) gCurrentPinballGame->holeIndicators[2] = gCurrentPinballGame->holeIndicators[0]; gCurrentPinballGame->holeIndicators[3] = gCurrentPinballGame->holeIndicators[0]; gCurrentPinballGame->pikaSpinMomentum = 0; - gCurrentPinballGame->catchOverlayFrameTimer = 0; - gCurrentPinballGame->catchOverlayKeyframeIndex = 0; + gCurrentPinballGame->kickbackAnimFrameTimer = 0; + gCurrentPinballGame->kickbackFrameId = 0; if (gCurrentPinballGame->outLanePikaPosition != 2 || !gMain.eReaderBonuses[EREADER_DX_MODE_CARD]) { gCurrentPinballGame->pikaChargeTarget = 0; gCurrentPinballGame->pikaChargeProgress = 0; - gCurrentPinballGame->prevCatchCounterValue = 0; - gCurrentPinballGame->catchCounterValue = 0; - gCurrentPinballGame->catchCounterXShift = 0; - gCurrentPinballGame->catchCounterSlideOffsetY = -4; - gCurrentPinballGame->catchCounterAnimState = 0x100; - gCurrentPinballGame->catchCounterScaleY = 0x100; - gCurrentPinballGame->pikachuAnimTimer = 0; - gCurrentPinballGame->catchCounterSlideTimer = 0; + gCurrentPinballGame->prevChargeFillValue = 0; + gCurrentPinballGame->chargeFillValue = 0; + gCurrentPinballGame->chargeIndicatorXOffset = 0; + gCurrentPinballGame->chargeIndicatorYOffset = -4; + gCurrentPinballGame->chargeIndicatorScaleX = 0x100; + gCurrentPinballGame->chargeIndicatorScaleY = 0x100; + gCurrentPinballGame->chargeFillAnimTimer = 0; + gCurrentPinballGame->fullChargeSlideAnimTimer = 0; } gCurrentPinballGame->ballPowerUpLight[0] = 0; diff --git a/src/board_process3_ruby.c b/src/board_process3_ruby.c index 72926d3..9602755 100644 --- a/src/board_process3_ruby.c +++ b/src/board_process3_ruby.c @@ -58,11 +58,11 @@ void RubyBoardProcess_3A_19A20(void) gCurrentPinballGame->pikachuSpinFrame = 0; gCurrentPinballGame->pikachuSpinPrevFrame = 1; UpdatePikachuChargeCounter(); - AnimateCatchCounterDisplay(); + ProcessChargeIndicator(); DrawPikachuSpinner(); - gCurrentPinballGame->catchCounterAnimState = 256; - gCurrentPinballGame->catchCounterScaleY = 256; + gCurrentPinballGame->chargeIndicatorScaleX = 256; + gCurrentPinballGame->chargeIndicatorScaleY = 256; gCurrentPinballGame->rampPrizeType = 2; DrawRubyNuzleafPlatformSprite(); @@ -277,8 +277,8 @@ void UpdateRubyBoardEntityRendering(void) { DrawSpoinkSprite(); } - UpdateCatchModeLogic(); - AnimateCatchCounterDisplay(); + UpdateKickbackLogic(); + ProcessChargeIndicator(); UpdateRubyBoardAnimations(); UpdatePortraitSpritePositions(); UpdateEvolutionShopSprite(); @@ -320,7 +320,7 @@ void HandleRubyFlipperButtonInput(void) if (gCurrentPinballGame->newButtonActions[0]) { if (gCurrentPinballGame->pikaKickbackTimer == 0 && gCurrentPinballGame->outLanePikaPosition != 2 && - gCurrentPinballGame->pikaSaverTimer == 0 && gCurrentPinballGame->entityOverlayCollisionState == 0) + gCurrentPinballGame->pichuEntranceTimer == 0 && gCurrentPinballGame->kickbackFiring == 0) { gCurrentPinballGame->outLanePikaPosition = 0; } @@ -340,7 +340,7 @@ void HandleRubyFlipperButtonInput(void) if (gCurrentPinballGame->newButtonActions[1]) { if (gCurrentPinballGame->pikaKickbackTimer == 0 && gCurrentPinballGame->outLanePikaPosition != 2 && - gCurrentPinballGame->pikaSaverTimer == 0 && gCurrentPinballGame->entityOverlayCollisionState == 0) + gCurrentPinballGame->pichuEntranceTimer == 0 && gCurrentPinballGame->kickbackFiring == 0) { gCurrentPinballGame->outLanePikaPosition = 1; } diff --git a/src/board_process3_sapphire.c b/src/board_process3_sapphire.c index e61072c..49c9fb0 100644 --- a/src/board_process3_sapphire.c +++ b/src/board_process3_sapphire.c @@ -3,6 +3,8 @@ #include "m4a.h" #include "main.h" #include "constants/bg_music.h" +#include "constants/sapphire_states.h" + //#include "constants/pinball_game.h" extern void HandleSapphireFlipperButtonInput(void); @@ -14,13 +16,13 @@ void SapphireBoardProcess_3A_326F4(void) gCurrentPinballGame->pikachuSpinPrevFrame = 1; UpdatePikachuChargeCounter(); - AnimateCatchCounterDisplay(); + ProcessChargeIndicator(); DrawPikachuSpinner(); CalculateRubyBumperBounce(); HandleRubyBumperHit(); - gCurrentPinballGame->catchCounterAnimState = 0x100; - gCurrentPinballGame->catchCounterScaleY = 0x100; + gCurrentPinballGame->chargeIndicatorScaleX = 0x100; + gCurrentPinballGame->chargeIndicatorScaleY = 0x100; InitSapphireEggCaveState(); UpdateSapphireEggCaveAnimation(); @@ -110,8 +112,8 @@ void UpdateSapphireBoardEntityRendering(void) if (0xA8 < gCurrentPinballGame->cameraYViewport) DrawSpoinkSprite(); - UpdateCatchModeLogic(); - AnimateCatchCounterDisplay(); + UpdateKickbackLogic(); + ProcessChargeIndicator(); UpdatePortraitSpritePositions(); DrawBoardEdgeBanner(); @@ -145,13 +147,13 @@ void DispatchSapphireCatchModeInit(void) switch (gCurrentPinballGame->ballCatchState) { - case 1: + case TRAP_CATCH_HOLE: InitSapphireWailmerCatch(); break; - case 3: + case TRAP_EVO_SHOP_HOLE: InitSapphireEvolutionShopCatch(); break; - case 4: + case TRAP_CENTER_HOLE: InitCenterTrapMode(); break; } @@ -166,13 +168,13 @@ void UpdateSapphireCatchModeAnimation(void) switch (gCurrentPinballGame->ballCatchState) { - case 1: + case TRAP_CATCH_HOLE: UpdateSapphireWailmerCatchSequence(); break; - case 3: + case TRAP_EVO_SHOP_HOLE: UpdateSapphireEvolutionShopSequence(); break; - case 4: + case TRAP_CENTER_HOLE: AnimateCenterTrapSequence(); //Center Hole break; } @@ -240,7 +242,7 @@ void UpdateSapphireEvolutionShopSequence(void) gCurrentPinballGame->ballUpgradeTimerFrozen = 0; gCurrentPinballGame->ball->positionQ1.x = gCurrentPinballGame->ball->positionQ0.x * 2; gCurrentPinballGame->ball->positionQ1.y = gCurrentPinballGame->ball->positionQ0.y * 2; - gCurrentPinballGame->ballCatchState = 0; + gCurrentPinballGame->ballCatchState = NOT_TRAPPED; m4aSongNumStart(SE_UNKNOWN_0xC3); @@ -352,7 +354,7 @@ void UpdateSapphireWailmerCatchSequence(void) gCurrentPinballGame->ball->positionQ1.x = gCurrentPinballGame->ball->positionQ0.x * 2; gCurrentPinballGame->ball->positionQ1.y = gCurrentPinballGame->ball->positionQ0.y * 2; gCurrentPinballGame->ball->prevPositionQ1 = gCurrentPinballGame->ball->positionQ1; - gCurrentPinballGame->ballCatchState = 0; + gCurrentPinballGame->ballCatchState = NOT_TRAPPED; gCurrentPinballGame->ballUpgradeTimerFrozen = 0; m4aSongNumStart(SE_WHISCASH_SPIT_BALL); gCurrentPinballGame->cameraScrollTarget = 0; @@ -368,7 +370,7 @@ void HandleSapphireFlipperButtonInput(void) if (gCurrentPinballGame->newButtonActions[0]) { if (gCurrentPinballGame->pikaKickbackTimer == 0 && gCurrentPinballGame->outLanePikaPosition != 2 && - gCurrentPinballGame->pikaSaverTimer == 0 && gCurrentPinballGame->entityOverlayCollisionState == 0) + gCurrentPinballGame->pichuEntranceTimer == 0 && gCurrentPinballGame->kickbackFiring == 0) { gCurrentPinballGame->outLanePikaPosition = 0; } @@ -388,7 +390,7 @@ void HandleSapphireFlipperButtonInput(void) if (gCurrentPinballGame->newButtonActions[1]) { if (gCurrentPinballGame->pikaKickbackTimer == 0 && gCurrentPinballGame->outLanePikaPosition != 2 && - gCurrentPinballGame->pikaSaverTimer == 0 && gCurrentPinballGame->entityOverlayCollisionState == 0) + gCurrentPinballGame->pichuEntranceTimer == 0 && gCurrentPinballGame->kickbackFiring == 0) { gCurrentPinballGame->outLanePikaPosition = 1; } diff --git a/src/board_process3_spheal.c b/src/board_process3_spheal.c index 7198830..2e9337d 100644 --- a/src/board_process3_spheal.c +++ b/src/board_process3_spheal.c @@ -1482,7 +1482,7 @@ void UpdateSphealResultsScreen(void) if ((gCurrentPinballGame->resultsAnimTimer % 3) == 0) { gCurrentPinballGame->sphealKnockdownDisplayCount[0]++; - m4aSongNumStart(SE_UNKNOWN_0x91); + m4aSongNumStart(SE_BONUS_SCORE_TALLIED); } } else @@ -1498,7 +1498,7 @@ void UpdateSphealResultsScreen(void) if ((gCurrentPinballGame->resultsAnimTimer % 3) == 0) { gCurrentPinballGame->sphealKnockdownDisplayCount[1]++; - m4aSongNumStart(SE_UNKNOWN_0x91); + m4aSongNumStart(SE_BONUS_SCORE_TALLIED); } } else diff --git a/src/board_process4.c b/src/board_process4.c index fe86f28..dfbc6ff 100644 --- a/src/board_process4.c +++ b/src/board_process4.c @@ -4,6 +4,7 @@ #include "main.h" #include "m4a.h" #include "constants/bg_music.h" +#include "constants/main_board.h" void AllBoardProcess_4A_19304(void) { @@ -99,7 +100,7 @@ void UpdateMainBoardFlipperPhysics(void) if (gCurrentPinballGame->heldButtonActions[i]) { - if (flipper->active == 0 && gCurrentPinballGame->ballCatchState == 0) + if (flipper->active == 0 && gCurrentPinballGame->ballCatchState == NOT_TRAPPED) m4aSongNumStart(SE_FLIPPER_PRESSED); flipper->active = 1; @@ -214,7 +215,9 @@ void UpdateBonusBoardFlipperPhysics(void) if (gCurrentPinballGame->heldButtonActions[i] && gMain.modeChangeFlags == MODE_CHANGE_NONE) { - if (flipper->active == 0 && gCurrentPinballGame->ballCatchState == 0 && gCurrentPinballGame->flippersDisabled == 0) + if (flipper->active == 0 && + gCurrentPinballGame->ballCatchState == NOT_TRAPPED && + gCurrentPinballGame->flippersDisabled == 0) { m4aSongNumStart(SE_FLIPPER_PRESSED); } diff --git a/src/board_process6.c b/src/board_process6.c index e317636..f1b8061 100644 --- a/src/board_process6.c +++ b/src/board_process6.c @@ -3,6 +3,7 @@ #include "constants/bg_music.h" #include "m4a.h" #include "constants/anglemath.h" +#include "constants/main_board.h" extern u8 gCatchTargetCollisionBitmap[]; extern u16 gFlipperCollisionAngles[][2]; @@ -404,7 +405,7 @@ void ComputeWallReflection(u16 arg0, struct Vector16 *arg1, struct Vector16 *arg m4aSongNumStart(SE_WALL_HIT); if (forwardMag > 0x118 - && gCurrentPinballGame->entityOverlayCollisionState == 0 + && gCurrentPinballGame->kickbackFiring == 0 && gMain.selectedField < MAIN_FIELD_COUNT) { PlayRumble(6); @@ -883,7 +884,7 @@ void ProcessBonusTrapPhysics(void) else { gCurrentPinballGame->collisionMapScrollY = 0; - gCurrentPinballGame->ballCatchState = 4; + gCurrentPinballGame->ballCatchState = TRAP_CENTER_HOLE; if (gMain.selectedField == FIELD_RUBY) DispatchRubyCatchModeInit(); else diff --git a/src/board_process8.c b/src/board_process8.c index 763c403..58566bf 100644 --- a/src/board_process8.c +++ b/src/board_process8.c @@ -45,7 +45,7 @@ void AllBoardProcess_8B_4CEB4(void) { gCurrentPinballGame->scoreLo += gCurrentPinballGame->scoreAddStepSize; gCurrentPinballGame->scoreAdditionAccumulator -= gCurrentPinballGame->scoreAddStepSize; - m4aSongNumStart(SE_UNKNOWN_0x91); + m4aSongNumStart(SE_BONUS_SCORE_TALLIED); } } } @@ -133,9 +133,9 @@ void AllBoardProcess_8B_4CEB4(void) gBG0TilemapBuffer[0x7DB] = (gCurrentPinballGame->numLives + 5) * 2 - 0x3EA0; gBG0TilemapBuffer[0x7FB] = (gCurrentPinballGame->numLives + 5) * 2 - 0x3E9F; - if (gCurrentPinballGame->catchCounterValue == 13) + if (gCurrentPinballGame->chargeFillValue == 13) { - if (gCurrentPinballGame->catchCounterBlinkTimer & 0x8) + if (gCurrentPinballGame->fullChargeIndicatorBlinkTimer & 0x8) { gBG0TilemapBuffer[0x7DD] = 0xC19A; gBG0TilemapBuffer[0x7FD] = 0xC19B; @@ -146,8 +146,8 @@ void AllBoardProcess_8B_4CEB4(void) gBG0TilemapBuffer[0x7FD] = 0xC183; } - if (gCurrentPinballGame->catchCounterBlinkTimer) - gCurrentPinballGame->catchCounterBlinkTimer--; + if (gCurrentPinballGame->fullChargeIndicatorBlinkTimer) + gCurrentPinballGame->fullChargeIndicatorBlinkTimer--; } else { diff --git a/src/bonus_field_select.c b/src/bonus_field_select.c index 9fd41b0..3161711 100644 --- a/src/bonus_field_select.c +++ b/src/bonus_field_select.c @@ -107,7 +107,7 @@ void BonusFieldSelect_State1_2768(void) { if (gSelectedBonusField != FIELD_SELECT_DUSCLOPS && gSelectedBonusField != FIELD_SELECT_GROUDON) { - m4aSongNumStart(SE_UNKNOWN_0x6D); + m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE); gSelectedBonusField--; } } @@ -115,7 +115,7 @@ void BonusFieldSelect_State1_2768(void) { if (gSelectedBonusField != FIELD_SELECT_SPHEAL && gSelectedBonusField != FIELD_SELECT_RAYQUAZA) { - m4aSongNumStart(SE_UNKNOWN_0x6D); + m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE); gSelectedBonusField++; } } @@ -123,7 +123,7 @@ void BonusFieldSelect_State1_2768(void) { if (gSelectedBonusField > FIELD_SELECT_SPHEAL) { - m4aSongNumStart(SE_UNKNOWN_0x6D); + m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE); gSelectedBonusField -= 3; } } @@ -131,7 +131,7 @@ void BonusFieldSelect_State1_2768(void) { if (gSelectedBonusField < FIELD_SELECT_GROUDON) { - m4aSongNumStart(SE_UNKNOWN_0x6D); + m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE); gSelectedBonusField += 3; } } diff --git a/src/collision_checks.c b/src/collision_checks.c index 4ebf33e..bde9b37 100644 --- a/src/collision_checks.c +++ b/src/collision_checks.c @@ -276,12 +276,12 @@ void ProcessRubyCollisionEvent(s32 arg0, s16* arg1, u16* arg2) if (gCurrentPinballGame->ball->positionQ1.x > 359) { if (gCurrentPinballGame->ball->positionQ1.y > 199) - gCurrentPinballGame->ballCatchState = 1; + gCurrentPinballGame->ballCatchState = TRAP_CATCH_HOLE; else - gCurrentPinballGame->ballCatchState = 3; + gCurrentPinballGame->ballCatchState = TRAP_EVO_SHOP_HOLE; } else - gCurrentPinballGame->ballCatchState= 2; + gCurrentPinballGame->ballCatchState= TRAP_EGG_HOLE; DispatchRubyCatchModeInit(); gCurrentPinballGame->collisionResponseType = 7; @@ -1006,9 +1006,9 @@ void ProcessSapphireCollisionEvent(u8 arg0, u16* arg1, u16* arg2) if (gCurrentPinballGame->collisionCooldownTimer == 0) { if (gCurrentPinballGame->ball->positionQ1.x >= 200) - gCurrentPinballGame->ballCatchState = 1; + gCurrentPinballGame->ballCatchState = TRAP_CATCH_HOLE; else - gCurrentPinballGame->ballCatchState = 3; + gCurrentPinballGame->ballCatchState = TRAP_EVO_SHOP_HOLE; DispatchSapphireCatchModeInit(); gCurrentPinballGame->collisionResponseType = 7; @@ -1279,7 +1279,7 @@ void ProcessSapphireCollisionEvent(u8 arg0, u16* arg1, u16* arg2) gCurrentPinballGame->catchArrowProgress++; - if (gCurrentPinballGame->catchCounterValue == 13) + if (gCurrentPinballGame->chargeFillValue == 13) m4aSongNumStart(SE_UNKNOWN_0x99); if (gCurrentPinballGame->catchArrowProgress > 1) diff --git a/src/debug_menu.c b/src/debug_menu.c index 7b7ef38..ca00691 100644 --- a/src/debug_menu.c +++ b/src/debug_menu.c @@ -244,7 +244,7 @@ void EndOfBallSequence(void) ClearDebugTextDisplay(); if (gCurrentPinballGame->numLives > 0) { - gCurrentPinballGame->modeTimeRemaining = 1800; + gCurrentPinballGame->saverTimeRemaining = 1800; gCurrentPinballGame->numLives--; gCurrentPinballGame->collisionCooldownTimer = 60; gCurrentPinballGame->bonusCatchCount = 0; @@ -400,7 +400,7 @@ void BallSaverAnimation(void) gCurrentPinballGame->ballSaverBallPosX = gCurrentPinballGame->ballSaverPosX; gCurrentPinballGame->ballSaverBallPosY = gCurrentPinballGame->ballSaverPosY; if (gMain.animationTimer == 56) - m4aSongNumStart(SE_UNKNOWN_0x95); + m4aSongNumStart(SE_LATI_DELIVERY); gCurrentPinballGame->ball->positionQ8.x = (gCurrentPinballGame->ballSaverBallPosX / 100 + 86) << 8; gCurrentPinballGame->ball->positionQ8.y = (gCurrentPinballGame->ballSaverSlideY + 372 + gCurrentPinballGame->ballSaverBallPosY / 100) << 8; @@ -414,7 +414,7 @@ void BallSaverAnimation(void) if (gMain.animationTimer == 32) { gCurrentPinballGame->boardEntityActive = 0; - m4aSongNumStart(SE_UNKNOWN_0x96); + m4aSongNumStart(SE_SAVER_PLUNGER_DROP); PlayRumble(6); } @@ -480,7 +480,7 @@ void BallSaverAnimation(void) gCurrentPinballGame->boardEntityActive = 1; gCurrentPinballGame->ballUpgradeTimerFrozen = 1; gCurrentPinballGame->startButtonDisabled = 1; - m4aSongNumStart(SE_UNKNOWN_0x94); + m4aSongNumStart(SE_BALL_SAVED); } else if (gMain.animationTimer == 0) { @@ -657,7 +657,7 @@ void EndOfBallBonusSummary(void) gCurrentPinballGame->scoreHi += gCurrentPinballGame->bonusTotalScoreHi; gCurrentPinballGame->bonusTotalScoreLo = 0; gCurrentPinballGame->bonusTotalScoreHi = 0; - m4aSongNumStart(SE_UNKNOWN_0x91); + m4aSongNumStart(SE_BONUS_SCORE_TALLIED); } } @@ -954,13 +954,13 @@ void EndOfBallBonusSummary(void) { gCurrentPinballGame->bonusCategoryScore -= 200000; gCurrentPinballGame->bonusSubtotal += 200000; - m4aSongNumStart(SE_UNKNOWN_0x91); + m4aSongNumStart(SE_BONUS_SCORE_TALLIED); } else if (gCurrentPinballGame->bonusCategoryScore != 0) { gCurrentPinballGame->bonusSubtotal += gCurrentPinballGame->bonusCategoryScore; gCurrentPinballGame->bonusCategoryScore = 0; - m4aSongNumStart(SE_UNKNOWN_0x91); + m4aSongNumStart(SE_BONUS_SCORE_TALLIED); } } @@ -990,20 +990,20 @@ void EndOfBallBonusSummary(void) { gCurrentPinballGame->bonusTotalScoreLo -= 200000; gCurrentPinballGame->scoreLo += 200000; - m4aSongNumStart(SE_UNKNOWN_0x91); + m4aSongNumStart(SE_BONUS_SCORE_TALLIED); } else if (gCurrentPinballGame->bonusTotalScoreHi != 0) { gCurrentPinballGame->bonusTotalScoreHi--; gCurrentPinballGame->bonusTotalScoreLo += 99800000; gCurrentPinballGame->scoreLo += 200000; - m4aSongNumStart(SE_UNKNOWN_0x91); + m4aSongNumStart(SE_BONUS_SCORE_TALLIED); } else if (gCurrentPinballGame->bonusTotalScoreLo != 0) { gCurrentPinballGame->scoreLo += gCurrentPinballGame->bonusTotalScoreLo; gCurrentPinballGame->bonusTotalScoreLo = 0; - m4aSongNumStart(SE_UNKNOWN_0x91); + m4aSongNumStart(SE_BONUS_SCORE_TALLIED); } } diff --git a/src/field_select.c b/src/field_select.c index ecd8a4a..2cf3e50 100644 --- a/src/field_select.c +++ b/src/field_select.c @@ -111,7 +111,7 @@ void FieldSelect_State1_8C7C(void) { if (gFieldSelectData.selectedField == FIELD_SAPPHIRE) { - m4aSongNumStart(SE_UNKNOWN_0x6D); + m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE); gFieldSelectData.selectedField = FIELD_RUBY; gFieldSelectData.rubyHighlightVisible = 0; gFieldSelectData.sapphireHighlightVisible = 1; @@ -122,7 +122,7 @@ void FieldSelect_State1_8C7C(void) { if (gFieldSelectData.selectedField == FIELD_RUBY) { - m4aSongNumStart(SE_UNKNOWN_0x6D); + m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE); gFieldSelectData.selectedField = FIELD_SAPPHIRE; gFieldSelectData.rubyHighlightVisible = 1; gFieldSelectData.sapphireHighlightVisible = 0; @@ -234,7 +234,7 @@ void FieldSelect_State1_8C7C(void) { if (gFieldSelectData.selectedField == FIELD_SAPPHIRE) { - m4aSongNumStart(SE_UNKNOWN_0x6D); + m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE); gFieldSelectData.selectedField = FIELD_RUBY; gFieldSelectData.rubyHighlightVisible = 0; gFieldSelectData.sapphireHighlightVisible = 1; @@ -248,7 +248,7 @@ void FieldSelect_State1_8C7C(void) { if (gFieldSelectData.selectedField == FIELD_RUBY) { - m4aSongNumStart(SE_UNKNOWN_0x6D); + m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE); gFieldSelectData.selectedField = FIELD_SAPPHIRE; gFieldSelectData.rubyHighlightVisible = 1; gFieldSelectData.sapphireHighlightVisible = 0; diff --git a/src/pinball_game_main.c b/src/pinball_game_main.c index 8cf75e8..d237396 100644 --- a/src/pinball_game_main.c +++ b/src/pinball_game_main.c @@ -338,16 +338,16 @@ void InitPinballGameState(void) { gCurrentPinballGame->pikaChargeTarget = 168; gCurrentPinballGame->pikaChargeProgress = 168; - gCurrentPinballGame->prevCatchCounterValue = 13; - gCurrentPinballGame->catchCounterValue = 13; - gCurrentPinballGame->catchCounterSlideTimer = 0; - gCurrentPinballGame->catchCounterXShift = 0; - gCurrentPinballGame->catchCounterSlideOffsetY = 120; - gCurrentPinballGame->catchCounterBlinkTimer = 60; + gCurrentPinballGame->prevChargeFillValue = 13; + gCurrentPinballGame->chargeFillValue = 13; + gCurrentPinballGame->fullChargeSlideAnimTimer = 0; + gCurrentPinballGame->chargeIndicatorXOffset = 0; + gCurrentPinballGame->chargeIndicatorYOffset = 120; + gCurrentPinballGame->fullChargeIndicatorBlinkTimer = 60; DmaCopy16(3, gDxModePikachuObjTiles, (void *)OBJ_VRAM0 + 0x600, 0x180); gCurrentPinballGame->outLanePikaPosition = 2; gMain.fieldSpriteGroups[41]->available = FALSE; - gCurrentPinballGame->pikaSaverTimer = 1; + gCurrentPinballGame->pichuEntranceTimer = 1; gCurrentPinballGame->ballUpgradeType = BALL_UPGRADE_TYPE_MASTER_BALL; gCurrentPinballGame->ballUpgradeCounter = 60 * 60; gCurrentPinballGame->numLives = 9; @@ -355,8 +355,8 @@ void InitPinballGameState(void) } else { - gCurrentPinballGame->catchCounterXShift = 0; - gCurrentPinballGame->catchCounterSlideOffsetY = -4; + gCurrentPinballGame->chargeIndicatorXOffset = 0; + gCurrentPinballGame->chargeIndicatorYOffset = -4; gCurrentPinballGame->numLives = 2; gCurrentPinballGame->coins = 10; } @@ -389,7 +389,7 @@ void SetBallPositionForBonusReturn(void) gCurrentPinballGame->ballFrozenState = 1; gCurrentPinballGame->trapAnimState = 0; gCurrentPinballGame->modeAnimTimer = 120; - gCurrentPinballGame->ballCatchState = 4; + gCurrentPinballGame->ballCatchState = TRAP_CENTER_HOLE; if (gMain.selectedField == FIELD_RUBY) UpdateRubyCatchModeAnimation(); else @@ -1035,18 +1035,18 @@ void RestoreGameState(u16 arg0) if ((var2 & 0x3) == 1) { gCurrentPinballGame->pikaSpinMomentum = 0; - gCurrentPinballGame->catchOverlayFrameTimer = 0; - gCurrentPinballGame->catchOverlayKeyframeIndex = 0; + gCurrentPinballGame->kickbackAnimFrameTimer = 0; + gCurrentPinballGame->kickbackFrameId = 0; gCurrentPinballGame->pikaChargeTarget = 0; gCurrentPinballGame->pikaChargeProgress = 0; - gCurrentPinballGame->prevCatchCounterValue = 0; - gCurrentPinballGame->catchCounterValue = 0; - gCurrentPinballGame->catchCounterXShift = 0; - gCurrentPinballGame->catchCounterSlideOffsetY = -4; - gCurrentPinballGame->catchCounterAnimState = 256; - gCurrentPinballGame->catchCounterScaleY = 256; - gCurrentPinballGame->pikachuAnimTimer = 0; - gCurrentPinballGame->catchCounterSlideTimer = 0; + gCurrentPinballGame->prevChargeFillValue = 0; + gCurrentPinballGame->chargeFillValue = 0; + gCurrentPinballGame->chargeIndicatorXOffset = 0; + gCurrentPinballGame->chargeIndicatorYOffset = -4; + gCurrentPinballGame->chargeIndicatorScaleX = 256; + gCurrentPinballGame->chargeIndicatorScaleY = 256; + gCurrentPinballGame->chargeFillAnimTimer = 0; + gCurrentPinballGame->fullChargeSlideAnimTimer = 0; } } @@ -1379,8 +1379,8 @@ void RestoreMainFieldDynamicGraphics(void) var0 = gCurrentPinballGame->pikachuSpinFrame; DmaCopy16(3, gMainBoardPikaSpinner_Gfx[var0 = gCurrentPinballGame->pikachuSpinFrame], 0x06010780, 0x120); - var0 = gCurrentPinballGame->catchCounterValue; - DmaCopy16(3, gCatchCounterDigitTilesGfx[var0], 0x06010AE0, 0x80); + var0 = gCurrentPinballGame->chargeFillValue; + DmaCopy16(3, gChargeFillIndicator_Gfx[var0], 0x06010AE0, 0x80); for (i = 0; i <= 1; i++) { diff --git a/src/pokedex.c b/src/pokedex.c index bfcff94..948ef5c 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -429,7 +429,7 @@ void Pokedex_DetailViewInput(void) { if ((gPokedexSelectedMon < BONUS_SPECIES_START) && (gPokedexDescriptionPage == 1)) { - m4aSongNumStart(SE_UNKNOWN_0x6D); + m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE); gPokedexDescriptionPage = 0; PrintDexDescription(gPokedexSelectedMon, 0); gPokedexSpriteIndexBase = gPokedexDescriptionPage; @@ -439,7 +439,7 @@ void Pokedex_DetailViewInput(void) { if ((gPokedexSelectedMon < BONUS_SPECIES_START) && (gPokedexDescriptionPage == 0)) { - m4aSongNumStart(SE_UNKNOWN_0x6D); + m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE); gPokedexDescriptionPage = 1; PrintDexDescription(gPokedexSelectedMon, 1); gPokedexSpriteIndexBase = gPokedexDescriptionPage; @@ -452,7 +452,7 @@ void Pokedex_DetailViewInput(void) { if (!gPokedexDescriptionPage) { - m4aSongNumStart(SE_UNKNOWN_0x6D); + m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE); gPokedexDescriptionPage = 1 - gPokedexDescriptionPage; PrintDexDescription(gPokedexSelectedMon, gPokedexDescriptionPage); gPokedexSpriteIndexBase = gPokedexDescriptionPage; diff --git a/src/rom_1A0F4.c b/src/rom_1A0F4.c index cad4033..edabf60 100644 --- a/src/rom_1A0F4.c +++ b/src/rom_1A0F4.c @@ -2,6 +2,7 @@ #include "main.h" #include "m4a.h" #include "constants/bg_music.h" +#include "constants/main_board.h" extern void RenderBannerSlideAnimation(void); @@ -171,7 +172,7 @@ void RenderBannerSlideAnimation(void) { if (gCurrentPinballGame->bannerSlideTimer == 0x28) { - MPlayStart(&gMPlayInfo_SE1, &se_unk_8b); + MPlayStart(&gMPlayInfo_SE1, &se_catch_evo_banner); } gCurrentPinballGame->bannerSlideTimer--; if (gCurrentPinballGame->bannerSlideTimer <= 0xF) @@ -186,8 +187,8 @@ void RenderBannerSlideAnimation(void) if (gCurrentPinballGame->bannerSlideTimer < 36) { - if ((gCurrentPinballGame->ballCatchState == 3 && gCurrentPinballGame->evolutionShopActive == 1) || - (gCurrentPinballGame->ballCatchState == 4 && gCurrentPinballGame->rouletteOutcomeId == 9)) + if ((gCurrentPinballGame->ballCatchState == TRAP_EVO_SHOP_HOLE && gCurrentPinballGame->evolutionShopActive == 1) || + (gCurrentPinballGame->ballCatchState == TRAP_CENTER_HOLE && gCurrentPinballGame->rouletteOutcomeId == 9)) { gCurrentPinballGame->paletteSwapActive = 0; } @@ -213,8 +214,8 @@ void RenderBannerSlideAnimation(void) gMain.blendBrightness = 4; if (gCurrentPinballGame->bannerSlideTimer <= 0x27) { - if ((gCurrentPinballGame->ballCatchState == 3 && gCurrentPinballGame->evolutionShopActive == 1) || - (gCurrentPinballGame->ballCatchState == 4 && gCurrentPinballGame->rouletteOutcomeId == 9)) + if ((gCurrentPinballGame->ballCatchState == TRAP_EVO_SHOP_HOLE && gCurrentPinballGame->evolutionShopActive == 1) || + (gCurrentPinballGame->ballCatchState == TRAP_CENTER_HOLE && gCurrentPinballGame->rouletteOutcomeId == 9)) { gCurrentPinballGame->paletteSwapActive = 0; } @@ -254,8 +255,8 @@ void RenderBannerSlideAnimation(void) gCurrentPinballGame->bannerSlideTimer++; gCurrentPinballGame->bannerSlideVelocity -= 0xA; if (gCurrentPinballGame->bannerSlideTimer > 0x18 && - (gCurrentPinballGame->ballCatchState != 3 || gCurrentPinballGame->evolutionShopActive != 1) && - (gCurrentPinballGame->ballCatchState != 4 || gCurrentPinballGame->rouletteOutcomeId != 9)) + (gCurrentPinballGame->ballCatchState != TRAP_EVO_SHOP_HOLE || gCurrentPinballGame->evolutionShopActive != 1) && + (gCurrentPinballGame->ballCatchState != TRAP_CENTER_HOLE || gCurrentPinballGame->rouletteOutcomeId != 9)) { gMain.blendBrightness = 4; if (gCurrentPinballGame->bannerSlideTimer > 0x19) @@ -283,8 +284,8 @@ void RenderBannerSlideAnimation(void) gMain.fieldSpriteGroups[11]->available = 0; gCurrentPinballGame->bannerGfxIndex = 0; gCurrentPinballGame->activePortraitType = 0; - if ((gCurrentPinballGame->ballCatchState != 3 || gCurrentPinballGame->evolutionShopActive != 1) && - (gCurrentPinballGame->ballCatchState != 4 || gCurrentPinballGame->rouletteOutcomeId != 9)) + if ((gCurrentPinballGame->ballCatchState != TRAP_EVO_SHOP_HOLE || gCurrentPinballGame->evolutionShopActive != 1) && + (gCurrentPinballGame->ballCatchState != TRAP_CENTER_HOLE || gCurrentPinballGame->rouletteOutcomeId != 9)) { gMain.blendBrightness = 0; DmaCopy16(3, gBoardConfig.fieldLayout.objPaletteSets[0], (void *)(OBJ_PLTT), 0x20); diff --git a/src/rom_1A98C.c b/src/rom_1A98C.c index 3e04119..b6bd4b9 100644 --- a/src/rom_1A98C.c +++ b/src/rom_1A98C.c @@ -24,16 +24,16 @@ void DispatchRubyCatchModeInit(void) switch (gCurrentPinballGame->ballCatchState) { - case 1: + case TRAP_CATCH_HOLE: InitSharpedoCatchMode(); break; - case 2: + case TRAP_EGG_HOLE: InitEggHatchMode(); break; - case 3: + case TRAP_EVO_SHOP_HOLE: InitRubyEvolutionShopMode(); break; - case 4: + case TRAP_CENTER_HOLE: InitCenterTrapMode(); break; } @@ -48,16 +48,16 @@ void UpdateRubyCatchModeAnimation(void) switch (gCurrentPinballGame->ballCatchState) { - case 1: + case TRAP_CATCH_HOLE: AnimateSharpedoCatchSequence(); // Catch hole break; - case 2: + case TRAP_EGG_HOLE: AnimateEggHatchSequence(); //Hatch hole break; - case 3: + case TRAP_EVO_SHOP_HOLE: AnimateRubyEvolutionShopSequence(); //Mart / Evo hole break; - case 4: + case TRAP_CENTER_HOLE: AnimateCenterTrapSequence(); //Center Hole break; } @@ -235,7 +235,7 @@ void AnimateSharpedoCatchSequence(void) gCurrentPinballGame->collisionCooldownTimer = 30; gCurrentPinballGame->ball->positionQ1.x = gCurrentPinballGame->ball->positionQ0.x * 2; gCurrentPinballGame->ball->positionQ1.y = gCurrentPinballGame->ball->positionQ0.y * 2; - gCurrentPinballGame->ballCatchState = 0; + gCurrentPinballGame->ballCatchState = NOT_TRAPPED; gCurrentPinballGame->ballUpgradeTimerFrozen = 0; gCurrentPinballGame->catchHoleAnimFrame = 0; } @@ -311,8 +311,8 @@ void AnimateEggHatchSequence(void) } else { - gCurrentPinballGame->ball->ballHidden = modeAnimTimer; - gCurrentPinballGame->ballCatchState = modeAnimTimer; + gCurrentPinballGame->ball->ballHidden = 0; + gCurrentPinballGame->ballCatchState = NOT_TRAPPED; gCurrentPinballGame->ball->positionQ0.x = 0x58; gCurrentPinballGame->ball->positionQ0.y = 0xA2; @@ -395,7 +395,7 @@ void AnimateRubyEvolutionShopSequence(void) gCurrentPinballGame->ballUpgradeTimerFrozen = 0; gCurrentPinballGame->ball->positionQ1.x = gCurrentPinballGame->ball->positionQ0.x * 2; gCurrentPinballGame->ball->positionQ1.y = gCurrentPinballGame->ball->positionQ0.y * 2; - gCurrentPinballGame->ballCatchState = 0; + gCurrentPinballGame->ballCatchState = NOT_TRAPPED; gCurrentPinballGame->shopDoorTargetFrame = 0x13; m4aSongNumStart(SE_UNKNOWN_0xC3); @@ -500,7 +500,7 @@ void UpdateShopEntryAnimation(s16 arg0) gCurrentPinballGame->shopAnimSlideTimer = 15; gMain.shopPanelActive = 1; - m4aSongNumStart(SE_UNKNOWN_0x8F); + m4aSongNumStart(SE_SHOP_LIST_REVEAL); if (gCurrentPinballGame->outLanePikaPosition == 2) gCurrentPinballGame->shopPikaSaverMaxed = 1; @@ -729,7 +729,7 @@ void UpdateShopEntryAnimation(s16 arg0) m4aSongNumStart(MUS_FIELD_SAPPHIRE2); } - if (gCurrentPinballGame->ballCatchState == 4) + if (gCurrentPinballGame->ballCatchState == TRAP_CENTER_HOLE) gCurrentPinballGame->outcomeFrameCounter = 170; else gCurrentPinballGame->modeAnimTimer = 24; @@ -1147,7 +1147,7 @@ void UpdateShopEntryAnimation(s16 arg0) if (gCurrentPinballGame->catchModeEventTimer == 0) { - if (gCurrentPinballGame->ballCatchState == 4) + if (gCurrentPinballGame->ballCatchState == TRAP_CENTER_HOLE) gCurrentPinballGame->outcomeFrameCounter = 170; else gCurrentPinballGame->modeAnimTimer = 24; @@ -1219,7 +1219,7 @@ void AnimateCenterTrapSequence(void) } else if (gCurrentPinballGame->modeAnimTimer == 24) { - m4aSongNumStart(SE_UNKNOWN_0x80); + m4aSongNumStart(SE_CENTER_HOLE_EJECT); gCurrentPinballGame->trapAnimState = 2; gCurrentPinballGame->ball->velocity.x = 73; gCurrentPinballGame->ball->velocity.y = 236; @@ -1252,7 +1252,7 @@ void AnimateCenterTrapSequence(void) else { gCurrentPinballGame->trapAnimState = 0; - gCurrentPinballGame->ballCatchState = 0; + gCurrentPinballGame->ballCatchState = NOT_TRAPPED; } } @@ -1266,7 +1266,7 @@ void TransitionToBonusField(void) gCurrentPinballGame->ballFrozenState = 0; gCurrentPinballGame->ball->scale = 0x100; gCurrentPinballGame->trapAnimState = 0; - gCurrentPinballGame->ballCatchState = 0; + gCurrentPinballGame->ballCatchState = NOT_TRAPPED; if (gCurrentPinballGame->bonusReturnState == 0) { gCurrentPinballGame->evoItemCount = 0; diff --git a/src/rom_201B8.c b/src/rom_201B8.c index 1c04217..90efba6 100644 --- a/src/rom_201B8.c +++ b/src/rom_201B8.c @@ -39,14 +39,14 @@ extern const u16 gPortraitIdleCycleData[]; extern const u16 gPortraitAnimPalettes[]; extern const s16 gRouletteOutcomeFrameOffsets[]; -extern struct SongHeader se_unk_7a; -extern struct SongHeader se_unk_79; +extern struct SongHeader se_pika_full_charge_1_up; +extern struct SongHeader se_pika_spinner_clack; extern struct SongHeader se_whiscash_splashdown; -extern struct SongHeader se_unk_142; -extern struct SongHeader se_unk_b1; -extern struct SongHeader se_unk_b3; +extern struct SongHeader se_pika_no_kickback; +extern struct SongHeader se_pikachu_kickback; +extern struct SongHeader se_pichu_kickback; extern s16 gPikaSaverAnimFrameTable[100]; -extern s16 gCatchHoleXPositions[3]; +extern s16 gOutlaneCenterXPositions[2]; extern u16 gCatchOverlayAnimData[][2]; extern s16 gCatchOverlayOamData[28][12]; @@ -798,8 +798,8 @@ void RubyPond_EntityLogic(void) gCurrentPinballGame->scoreAddedInFrame = 10; m4aSongNumStart(SE_RUBY_BUMPER_HIT); PlayRumble(7); - if (gCurrentPinballGame->modeTimeRemaining) - gCurrentPinballGame->modeTimeRemaining = 1; + if (gCurrentPinballGame->saverTimeRemaining) + gCurrentPinballGame->saverTimeRemaining = 1; break; case WHISCASH_STATE_ANGRY: if (gWhiscashFramesetData[gCurrentPinballGame->whiscashFrameIx][1] > gCurrentPinballGame->whiscashStateTimer) @@ -1248,19 +1248,19 @@ void UpdatePikachuChargeCounter(void) if (gCurrentPinballGame->pikaChargeTarget != gCurrentPinballGame->pikaChargeProgress) { gCurrentPinballGame->pikaChargeProgress += 2; - gCurrentPinballGame->catchCounterValue = gCurrentPinballGame->pikaChargeProgress / 14; - gCurrentPinballGame->catchCounterSlideTimer = 80; - gCurrentPinballGame->catchCounterAnimState = 256; - gCurrentPinballGame->catchCounterScaleY = 256; - if (gCurrentPinballGame->catchCounterValue == 11) - gCurrentPinballGame->pikachuAnimTimer = 120; + gCurrentPinballGame->chargeFillValue = gCurrentPinballGame->pikaChargeProgress / 14; + gCurrentPinballGame->fullChargeSlideAnimTimer = 80; + gCurrentPinballGame->chargeIndicatorScaleX = 256; + gCurrentPinballGame->chargeIndicatorScaleY = 256; + if (gCurrentPinballGame->chargeFillValue == 11) + gCurrentPinballGame->chargeFillAnimTimer = 120; - if (gCurrentPinballGame->catchCounterValue > 11) + if (gCurrentPinballGame->chargeFillValue > 11) { - gCurrentPinballGame->catchCounterValue = 12; - gCurrentPinballGame->catchCounterSlideTimer = 120; - gCurrentPinballGame->catchCounterAnimState = 256; - gCurrentPinballGame->catchCounterScaleY = 256; + gCurrentPinballGame->chargeFillValue = 12; + gCurrentPinballGame->fullChargeSlideAnimTimer = 120; + gCurrentPinballGame->chargeIndicatorScaleX = 256; + gCurrentPinballGame->chargeIndicatorScaleY = 256; } if (gCurrentPinballGame->pikaChargeProgress < 168 && gCurrentPinballGame->pikaChargeProgress % 8 == 0) @@ -1274,7 +1274,7 @@ void UpdatePikachuChargeCounter(void) gCurrentPinballGame->pikaChargeProgress = gCurrentPinballGame->pikaChargeTarget; if (gCurrentPinballGame->pikaChargeProgress >= 168) { - MPlayStart(&gMPlayInfo_SE1, &se_unk_7a); + MPlayStart(&gMPlayInfo_SE1, &se_pika_full_charge_1_up); gCurrentPinballGame->scoreAddedInFrame = 3000; } } @@ -1296,13 +1296,13 @@ void UpdatePikachuChargeCounter(void) else { gCurrentPinballGame->pikaSpinFrameCounter = 0; - MPlayStart(&gMPlayInfo_SE3, &se_unk_79); + MPlayStart(&gMPlayInfo_SE3, &se_pika_spinner_clack); gCurrentPinballGame->scoreAddedInFrame = 100; - if (gCurrentPinballGame->catchCounterValue < 12 && gCurrentPinballGame->entityOverlayCollisionState == 0) + if (gCurrentPinballGame->chargeFillValue < 12 && gCurrentPinballGame->kickbackFiring == 0) { - gCurrentPinballGame->catchCounterSlideTimer = 80; - gCurrentPinballGame->catchCounterAnimState = 256; - gCurrentPinballGame->catchCounterScaleY = 256; + gCurrentPinballGame->fullChargeSlideAnimTimer = 80; + gCurrentPinballGame->chargeIndicatorScaleX = 256; + gCurrentPinballGame->chargeIndicatorScaleY = 256; } } @@ -1327,13 +1327,13 @@ void UpdatePikachuChargeCounter(void) else { gCurrentPinballGame->pikaSpinFrameCounter = 0; - MPlayStart(&gMPlayInfo_SE3, &se_unk_79); + MPlayStart(&gMPlayInfo_SE3, &se_pika_spinner_clack); gCurrentPinballGame->scoreAddedInFrame = 100; - if (gCurrentPinballGame->catchCounterValue < 12 && gCurrentPinballGame->entityOverlayCollisionState == 0) + if (gCurrentPinballGame->chargeFillValue < 12 && gCurrentPinballGame->kickbackFiring == 0) { - gCurrentPinballGame->catchCounterSlideTimer = 80; - gCurrentPinballGame->catchCounterAnimState = 256; - gCurrentPinballGame->catchCounterScaleY = 256; + gCurrentPinballGame->fullChargeSlideAnimTimer = 80; + gCurrentPinballGame->chargeIndicatorScaleX = 256; + gCurrentPinballGame->chargeIndicatorScaleY = 256; } } @@ -1855,18 +1855,19 @@ void DrawSideBumperSprites(void) } } -void UpdateCatchModeLogic(void) +void UpdateKickbackLogic(void) { - s16 i; + s16 outlaneChuteIx; s16 j; s16 r5; + s16 oamIx; s16 tempY; struct SpriteGroup *spriteGroup; struct OamDataSimple *oamSimple; u16 *dst; const u16 *src; - AnimateCreatureApproach(); + PichuArrivalSequence(); if (gCurrentPinballGame->pikaChargeTarget > 167) { @@ -1887,13 +1888,13 @@ void UpdateCatchModeLogic(void) if (gCurrentPinballGame->outLanePikaPosition == 2) { - gCurrentPinballGame->catchHoleOccupied[0] = 1; - gCurrentPinballGame->catchHoleOccupied[1] = 1; + gCurrentPinballGame->kickbackOccupied[0] = 1; + gCurrentPinballGame->kickbackOccupied[1] = 1; } else { - gCurrentPinballGame->catchHoleOccupied[0 + gCurrentPinballGame->outLanePikaPosition] = 1; - gCurrentPinballGame->catchHoleOccupied[1 - gCurrentPinballGame->outLanePikaPosition] = 0; + gCurrentPinballGame->kickbackOccupied[0 + gCurrentPinballGame->outLanePikaPosition] = 1; + gCurrentPinballGame->kickbackOccupied[1 - gCurrentPinballGame->outLanePikaPosition] = 0; } if (gCurrentPinballGame->pikaKickbackTimer != 0) @@ -1902,34 +1903,34 @@ void UpdateCatchModeLogic(void) { // gCurrentPinballGame->outLaneSide + gCurrentPinballGame->outLanePikaPosition // Note: this can be && chained off of the previous if, once we have this line deciphered. - if (gCurrentPinballGame->catchHoleOccupied[gCurrentPinballGame->outLaneSide - 1] != 0) + if (gCurrentPinballGame->kickbackOccupied[gCurrentPinballGame->outLaneSide - 1] != 0) { if (gCurrentPinballGame->pikaChargeTarget > 167) { gCurrentPinballGame->ballFrozenState = 1; - gCurrentPinballGame->entityOverlayCollisionState = 1; - gCurrentPinballGame->catchAnimProgress = 120; - gCurrentPinballGame->catchAnimDuration = 120; - gCurrentPinballGame->catchOverlayTimer = gCurrentPinballGame->catchAnimProgress; + gCurrentPinballGame->kickbackFiring = 1; + gCurrentPinballGame->kickbackAnimProgress = 120; + gCurrentPinballGame->kickbackAnimDuration = 120; + gCurrentPinballGame->kickbackLaunchTimer = gCurrentPinballGame->kickbackAnimProgress; gCurrentPinballGame->ballUpgradeTimerFrozen = 1; - gCurrentPinballGame->catchOverlayFrameTimer = 0; - gCurrentPinballGame->catchOverlayKeyframeIndex = 0; + gCurrentPinballGame->kickbackAnimFrameTimer = 0; + gCurrentPinballGame->kickbackFrameId = 0; if (gCurrentPinballGame->outLanePikaPosition != 2) { gCurrentPinballGame->pikaChargeTarget = 0; gCurrentPinballGame->pikaChargeProgress = 0; - gCurrentPinballGame->prevCatchCounterValue = 0; - gCurrentPinballGame->catchCounterValue = 0; - gCurrentPinballGame->catchCounterXShift = 0; - gCurrentPinballGame->catchCounterSlideOffsetY = -4; - gCurrentPinballGame->catchCounterAnimState = 256; - gCurrentPinballGame->catchCounterScaleY = 256; - gCurrentPinballGame->pikachuAnimTimer = 0; - gCurrentPinballGame->catchCounterSlideTimer = 0; + gCurrentPinballGame->prevChargeFillValue = 0; + gCurrentPinballGame->chargeFillValue = 0; + gCurrentPinballGame->chargeIndicatorXOffset = 0; + gCurrentPinballGame->chargeIndicatorYOffset = -4; + gCurrentPinballGame->chargeIndicatorScaleX = 256; + gCurrentPinballGame->chargeIndicatorScaleY = 256; + gCurrentPinballGame->chargeFillAnimTimer = 0; + gCurrentPinballGame->fullChargeSlideAnimTimer = 0; } - gCurrentPinballGame->catchBallStartPos = gCurrentPinballGame->ball->positionQ1; + gCurrentPinballGame->kickbackBallHoverPos = gCurrentPinballGame->ball->positionQ1; gCurrentPinballGame->scoreAddedInFrame = 30000; if (gCurrentPinballGame->bonusPikaSaverCount <= 98) @@ -1938,17 +1939,17 @@ void UpdateCatchModeLogic(void) else { gCurrentPinballGame->pikaKickbackTimer = 60; - MPlayStart(&gMPlayInfo_SE1, &se_unk_142); + MPlayStart(&gMPlayInfo_SE1, &se_pika_no_kickback); } - i = gCurrentPinballGame->outLaneSide - 1; + outlaneChuteIx = gCurrentPinballGame->outLaneSide - 1; if (gCurrentPinballGame->outLanePikaPosition == 2) - gCurrentPinballGame->pikaSaverTileIndex[i] = (i) * 7 + 2; + gCurrentPinballGame->pikaSaverTileIndex[outlaneChuteIx] = (outlaneChuteIx) * 7 + 2; else - gCurrentPinballGame->pikaSaverTileIndex[i] = 2; + gCurrentPinballGame->pikaSaverTileIndex[outlaneChuteIx] = 2; - DmaCopy16(3, gPikaSaverTilesGfx + (gCurrentPinballGame->pikaSaverTileIndex[i] * 0x180), 0x06010480 + ((i) * 0x180), 0x180); + DmaCopy16(3, gPikaSaverTilesGfx + (gCurrentPinballGame->pikaSaverTileIndex[outlaneChuteIx] * 0x180), 0x06010480 + ((outlaneChuteIx) * 0x180), 0x180); } } @@ -1960,66 +1961,67 @@ void UpdateCatchModeLogic(void) gCurrentPinballGame->pikaKickbackTimer--; } - if (gCurrentPinballGame->entityOverlayCollisionState != 0) + if (gCurrentPinballGame->kickbackFiring != 0) { - if (gCurrentPinballGame->catchOverlayTimer > 1) + if (gCurrentPinballGame->kickbackLaunchTimer > 1) { - r5 = (gCurrentPinballGame->catchAnimProgress * 0x10000) / 10; - gCurrentPinballGame->catchOverlayTimer--; - if (gCurrentPinballGame->catchAnimProgress != 0) + r5 = (gCurrentPinballGame->kickbackAnimProgress * 0x10000) / 10; + gCurrentPinballGame->kickbackLaunchTimer--; + if (gCurrentPinballGame->kickbackAnimProgress != 0) { - gCurrentPinballGame->catchAnimProgress--; - if (gCurrentPinballGame->catchAnimProgress == 40 && gCurrentPinballGame->catchOverlayTimer > 40) + gCurrentPinballGame->kickbackAnimProgress--; + if (gCurrentPinballGame->kickbackAnimProgress == 40 && gCurrentPinballGame->kickbackLaunchTimer > 40) { - gCurrentPinballGame->catchAnimProgress = 60; + gCurrentPinballGame->kickbackAnimProgress = 60; } } - if (gCurrentPinballGame->catchOverlayTimer == 116) + if (gCurrentPinballGame->kickbackLaunchTimer == 116) { if (gCurrentPinballGame->activePortraitType) - gCurrentPinballGame->catchOverlayTimer = 120; + gCurrentPinballGame->kickbackLaunchTimer = 120; else { gCurrentPinballGame->activePortraitType = 1; if (gCurrentPinballGame->outLanePikaPosition == 2) { if (gCurrentPinballGame->outLaneSide == 1) - MPlayStart(&gMPlayInfo_SE1, &se_unk_b1); + MPlayStart(&gMPlayInfo_SE1, &se_pikachu_kickback); else - MPlayStart(&gMPlayInfo_SE1, &se_unk_b3); + MPlayStart(&gMPlayInfo_SE1, &se_pichu_kickback); m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x40); } else { - MPlayStart(&gMPlayInfo_SE1, &se_unk_b1); + MPlayStart(&gMPlayInfo_SE1, &se_pikachu_kickback); m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x40); } } } - if (gCurrentPinballGame->catchOverlayTimer == 115 && gCurrentPinballGame->activePortraitType == 1) + if (gCurrentPinballGame->kickbackLaunchTimer == 115 && gCurrentPinballGame->activePortraitType == 1) m4aMPlayVolumeControl(&gMPlayInfo_SE1, 0xFFFF, 0x200); + // used for the horizontal 'floaty' movement when electric builds pre-launch. gCurrentPinballGame->ball->positionQ1.x = - gCurrentPinballGame->catchBallStartPos.x + ((Sin(r5) * 6) / 20000) + - ((gCatchHoleXPositions[gCurrentPinballGame->outLaneSide - 1] * 2 - gCurrentPinballGame->catchBallStartPos.x) * (gCurrentPinballGame->catchAnimDuration - gCurrentPinballGame->catchAnimProgress)) / gCurrentPinballGame->catchAnimDuration; + gCurrentPinballGame->kickbackBallHoverPos.x + ((Sin(r5) * 6) / 20000) + + ((gOutlaneCenterXPositions[gCurrentPinballGame->outLaneSide - 1] * 2 - gCurrentPinballGame->kickbackBallHoverPos.x) * (gCurrentPinballGame->kickbackAnimDuration - gCurrentPinballGame->kickbackAnimProgress)) / gCurrentPinballGame->kickbackAnimDuration; - tempY = ((gCurrentPinballGame->catchAnimDuration - gCurrentPinballGame->catchAnimProgress) * 40) / gCurrentPinballGame->catchAnimDuration; - gCurrentPinballGame->ball->positionQ1.y = gCurrentPinballGame->catchBallStartPos.y - tempY; + tempY = ((gCurrentPinballGame->kickbackAnimDuration - gCurrentPinballGame->kickbackAnimProgress) * 40) / gCurrentPinballGame->kickbackAnimDuration; + gCurrentPinballGame->ball->positionQ1.y = gCurrentPinballGame->kickbackBallHoverPos.y - tempY; gCurrentPinballGame->ball->positionQ8.x = gCurrentPinballGame->ball->positionQ1.x * 128; gCurrentPinballGame->ball->positionQ8.y = gCurrentPinballGame->ball->positionQ1.y * 128; } - else if (gCurrentPinballGame->catchOverlayTimer == 1) + else if (gCurrentPinballGame->kickbackLaunchTimer == 1) { - gCurrentPinballGame->ball->positionQ1.x = gCatchHoleXPositions[gCurrentPinballGame->outLaneSide - 1] * 2; + gCurrentPinballGame->ball->positionQ1.x = gOutlaneCenterXPositions[gCurrentPinballGame->outLaneSide - 1] * 2; gCurrentPinballGame->ball->positionQ1.y = 702; gCurrentPinballGame->ball->positionQ8.x = gCurrentPinballGame->ball->positionQ1.x * 128; gCurrentPinballGame->ball->positionQ8.y = gCurrentPinballGame->ball->positionQ1.y * 128; gCurrentPinballGame->ball->velocity.x = 0; // fly me to the moon gCurrentPinballGame->ball->velocity.y = -300; - m4aSongNumStart(SE_UNKNOWN_0x7C); - gCurrentPinballGame->catchOverlayTimer = 0; + m4aSongNumStart(SE_KICKBACK_THUNDERWAVE); + gCurrentPinballGame->kickbackLaunchTimer = 0; gCurrentPinballGame->ballFrozenState = 0; gCurrentPinballGame->ballUpgradeTimerFrozen = 0; gCurrentPinballGame->holeIndicators[(gCurrentPinballGame->outLaneSide - 1) * 3] = 1; @@ -2038,14 +2040,14 @@ void UpdateCatchModeLogic(void) PlayRumble(11); } - if (gCurrentPinballGame->catchOverlayTimer >= 100) + if (gCurrentPinballGame->kickbackLaunchTimer >= 100) { if (gCurrentPinballGame->outLanePikaPosition == 2) gCurrentPinballGame->pikaSaverTileIndex[gCurrentPinballGame->outLaneSide - 1] = (gCurrentPinballGame->outLaneSide - 1) * 7 + 2; else gCurrentPinballGame->pikaSaverTileIndex[gCurrentPinballGame->outLaneSide - 1] = 2; - if (gCurrentPinballGame->catchOverlayTimer == 100) + if (gCurrentPinballGame->kickbackLaunchTimer == 100) { gMain.fieldSpriteGroups[38]->available = 1; @@ -2061,37 +2063,37 @@ void UpdateCatchModeLogic(void) } else { - if (gCatchOverlayAnimData[gCurrentPinballGame->catchOverlayKeyframeIndex][1] > gCurrentPinballGame->catchOverlayFrameTimer) - gCurrentPinballGame->catchOverlayFrameTimer++; + if (gCatchOverlayAnimData[gCurrentPinballGame->kickbackFrameId][1] > gCurrentPinballGame->kickbackAnimFrameTimer) + gCurrentPinballGame->kickbackAnimFrameTimer++; else { - gCurrentPinballGame->catchOverlayFrameTimer = 0; - gCurrentPinballGame->catchOverlayKeyframeIndex++; + gCurrentPinballGame->kickbackAnimFrameTimer = 0; + gCurrentPinballGame->kickbackFrameId++; - if (gCurrentPinballGame->catchOverlayKeyframeIndex == 23) + if (gCurrentPinballGame->kickbackFrameId == 23) { - m4aSongNumStop(SE_UNKNOWN_0x7C); + m4aSongNumStop(SE_KICKBACK_THUNDERWAVE); m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); } - if (gCurrentPinballGame->catchOverlayKeyframeIndex > 25) + if (gCurrentPinballGame->kickbackFrameId > 25) { - gCurrentPinballGame->catchOverlayKeyframeIndex = 25; - gCurrentPinballGame->entityOverlayCollisionState = 0; + gCurrentPinballGame->kickbackFrameId = 25; + gCurrentPinballGame->kickbackFiring = 0; gMain.fieldSpriteGroups[38]->available = 0; gCurrentPinballGame->activePortraitType = 0; - i = gCurrentPinballGame->outLaneSide - 1; + outlaneChuteIx = gCurrentPinballGame->outLaneSide - 1; if (gCurrentPinballGame->outLanePikaPosition == 2) - gCurrentPinballGame->pikaSaverTileIndex[i] = i * 9; + gCurrentPinballGame->pikaSaverTileIndex[outlaneChuteIx] = outlaneChuteIx * 9; else - gCurrentPinballGame->pikaSaverTileIndex[i] = 0; + gCurrentPinballGame->pikaSaverTileIndex[outlaneChuteIx] = 0; - DmaCopy16(3, gPikaSaverTilesGfx + (gCurrentPinballGame->pikaSaverTileIndex[i] * 0x180), 0x06010480 + (i * 0x180), 0x180); + DmaCopy16(3, gPikaSaverTilesGfx + (gCurrentPinballGame->pikaSaverTileIndex[outlaneChuteIx] * 0x180), 0x06010480 + (outlaneChuteIx * 0x180), 0x180); } } - if (gCurrentPinballGame->catchOverlayKeyframeIndex >= 17 && gCurrentPinballGame->catchOverlayKeyframeIndex <= 23) + if (gCurrentPinballGame->kickbackFrameId >= 17 && gCurrentPinballGame->kickbackFrameId <= 23) { if ((gMain.systemFrameCount & 3) >> 1) gCurrentPinballGame->cameraBaseX = -3; @@ -2099,29 +2101,29 @@ void UpdateCatchModeLogic(void) gCurrentPinballGame->cameraBaseX = 3; } - r5 = gCatchOverlayAnimData[gCurrentPinballGame->catchOverlayKeyframeIndex][0]; - i = gCurrentPinballGame->outLaneSide - 1; + oamIx = gCatchOverlayAnimData[gCurrentPinballGame->kickbackFrameId][0]; + outlaneChuteIx = gCurrentPinballGame->outLaneSide - 1; spriteGroup = gMain.fieldSpriteGroups[38]; - spriteGroup->baseX = (i * 177) - (gCurrentPinballGame->cameraXOffset - 16); - if (gCurrentPinballGame->entityOverlayCollisionState) + spriteGroup->baseX = (outlaneChuteIx * 177) - (gCurrentPinballGame->cameraXOffset - 16); + if (gCurrentPinballGame->kickbackFiring) { spriteGroup->baseY = 380 - gCurrentPinballGame->cameraYOffset; - gCurrentPinballGame->catchHoleOccupied[i] = 0; + gCurrentPinballGame->kickbackOccupied[outlaneChuteIx] = 0; } else { spriteGroup->baseY = 180; - gCurrentPinballGame->catchHoleOccupied[i] = 1; + gCurrentPinballGame->kickbackOccupied[outlaneChuteIx] = 1; } for (j = 0; j < 4; j++) { oamSimple = &spriteGroup->oam[j]; dst = (u16 *)&gOamBuffer[oamSimple->oamId]; - *dst++ = gCatchOverlayOamData[r5][j * 3 + 0]; - *dst++ = gCatchOverlayOamData[r5][j * 3 + 1]; - *dst++ = gCatchOverlayOamData[r5][j * 3 + 2]; + *dst++ = gCatchOverlayOamData[oamIx][j * 3 + 0]; + *dst++ = gCatchOverlayOamData[oamIx][j * 3 + 1]; + *dst++ = gCatchOverlayOamData[oamIx][j * 3 + 2]; gOamBuffer[oamSimple->oamId].x += spriteGroup->baseX; gOamBuffer[oamSimple->oamId].y += spriteGroup->baseY; @@ -2132,15 +2134,15 @@ void UpdateCatchModeLogic(void) if (spriteGroup->available) { - for (i = 0; i <= 1; i++) + for (outlaneChuteIx = 0; outlaneChuteIx <= 1; outlaneChuteIx++) { - spriteGroup = gMain.fieldSpriteGroups[29 + i]; - spriteGroup->baseX = (i * 177) - (gCurrentPinballGame->cameraXOffset - 16); - if (gCurrentPinballGame->catchHoleOccupied[i]) + spriteGroup = gMain.fieldSpriteGroups[29 + outlaneChuteIx]; + spriteGroup->baseX = (outlaneChuteIx * 177) - (gCurrentPinballGame->cameraXOffset - 16); + if (gCurrentPinballGame->kickbackOccupied[outlaneChuteIx]) { if ((gMain.fieldFrameCount % 5) == 0) { - DmaCopy16(3, gPikaSaverTilesGfx + (gCurrentPinballGame->pikaSaverTileIndex[i] * 0x180), 0x06010480 + (i * 0x180), 0x180); + DmaCopy16(3, gPikaSaverTilesGfx + (gCurrentPinballGame->pikaSaverTileIndex[outlaneChuteIx] * 0x180), 0x06010480 + (outlaneChuteIx * 0x180), 0x180); } tempY = 380 - gCurrentPinballGame->cameraYOffset; diff --git a/src/rom_27E08.c b/src/rom_27E08.c index 62619d5..3fe22c2 100644 --- a/src/rom_27E08.c +++ b/src/rom_27E08.c @@ -76,12 +76,12 @@ extern const u8 gPikachuSaverTilesGfx[]; extern u8 gCatchSpritePaletteBuffer[]; -extern struct SongHeader se_unk_84; -extern struct SongHeader se_unk_85; -extern struct SongHeader se_unk_86; +extern struct SongHeader se_evo_item_appear; +extern struct SongHeader se_evo_item_finish_appear; +extern struct SongHeader se_evo_item_collected; -void AnimateCreatureApproach(void) +void PichuArrivalSequence(void) { s16 i; struct SpriteGroup *group; @@ -94,36 +94,38 @@ void AnimateCreatureApproach(void) s16 index; group = gMain.fieldSpriteGroups[41]; - if (gCurrentPinballGame->pikaSaverTimer == 0) + if (gCurrentPinballGame->pichuEntranceTimer == 0) return; - if (gCurrentPinballGame->pikaSaverTimer == 800) + if (gCurrentPinballGame->pichuEntranceTimer == 800) { group->available = 1; - if (gCurrentPinballGame->pikaRescuePath == 1) + if (gCurrentPinballGame->pichuWalkMode == 1) { - gCurrentPinballGame->catchCreatureX = 1090; - gCurrentPinballGame->catchCreatureY = 4680; + //Start entrance + gCurrentPinballGame->walkMonXPos = 1090; + gCurrentPinballGame->walkMonYPos = 4680; gCurrentPinballGame->creatureWaypointIndex = 0; } else { - gCurrentPinballGame->catchCreatureX = 2000; - gCurrentPinballGame->catchCreatureY = 3820; + //Start exit + gCurrentPinballGame->walkMonXPos = 2000; + gCurrentPinballGame->walkMonYPos = 3820; gCurrentPinballGame->creatureWaypointIndex = 4; } } else { - if (gCurrentPinballGame->pikaSaverTimer == 799) + if (gCurrentPinballGame->pichuEntranceTimer == 799) { - if (gCurrentPinballGame->pikaRescuePath != 1) + if (gCurrentPinballGame->pichuWalkMode != 1) { DmaCopy16(3, gPikaSaverTilesGfx, (void *)0x06010600, 0x180); } } - tempVec.x = gPikaSaverWaypoints[gCurrentPinballGame->creatureWaypointIndex].x - 120 - gCurrentPinballGame->catchCreatureX; - tempVec.y = gPikaSaverWaypoints[gCurrentPinballGame->creatureWaypointIndex].y - 160 - gCurrentPinballGame->catchCreatureY; + tempVec.x = gPikaSaverWaypoints[gCurrentPinballGame->creatureWaypointIndex].x - 120 - gCurrentPinballGame->walkMonXPos; + tempVec.y = gPikaSaverWaypoints[gCurrentPinballGame->creatureWaypointIndex].y - 160 - gCurrentPinballGame->walkMonYPos; xx = tempVec.x * tempVec.x; yy = tempVec.y * tempVec.y; squaredMagnitude = xx + yy; @@ -131,12 +133,12 @@ void AnimateCreatureApproach(void) tempVec2.x = (Cos(angle) * 7) / 20000; tempVec2.y = (Sin(angle) * -7) / 20000; index = gAngleToDirectionTable[angle / 0x2000] + (gMain.systemFrameCount % 24) / 8; - gCurrentPinballGame->catchCreatureX += tempVec2.x; - gCurrentPinballGame->catchCreatureY += tempVec2.y; + gCurrentPinballGame->walkMonXPos += tempVec2.x; + gCurrentPinballGame->walkMonYPos += tempVec2.y; if (group->available) { - group->baseX = gCurrentPinballGame->catchCreatureX / 10 - gCurrentPinballGame->cameraXOffset; - group->baseY = gCurrentPinballGame->catchCreatureY / 10 - gCurrentPinballGame->cameraYOffset; + group->baseX = gCurrentPinballGame->walkMonXPos / 10 - gCurrentPinballGame->cameraXOffset; + group->baseY = gCurrentPinballGame->walkMonYPos / 10 - gCurrentPinballGame->cameraYOffset; if (group->baseY > 180) group->baseY = 180; else if (group->baseY < -30) @@ -155,31 +157,31 @@ void AnimateCreatureApproach(void) if (squaredMagnitude < 2500) { gCurrentPinballGame->creatureWaypointIndex++; - if (gCurrentPinballGame->pikaRescuePath == 1) + if (gCurrentPinballGame->pichuWalkMode == 1) { if (gCurrentPinballGame->creatureWaypointIndex == 4) { DmaCopy16(3, gPikachuSaverTilesGfx, (void *)0x06010600, 0x180); gCurrentPinballGame->outLanePikaPosition = 2; gMain.fieldSpriteGroups[41]->available = 0; - gCurrentPinballGame->pikaSaverTimer = 1; - m4aSongNumStart(SE_UNKNOWN_0x75); + gCurrentPinballGame->pichuEntranceTimer = 1; + m4aSongNumStart(SE_PICHU_IN_POSITION_CHIRP); } } else if (gCurrentPinballGame->creatureWaypointIndex == 7) { gMain.fieldSpriteGroups[41]->available = 0; - gCurrentPinballGame->pikaSaverTimer = 1; + gCurrentPinballGame->pichuEntranceTimer = 1; } } } - gCurrentPinballGame->pikaSaverTimer--; + gCurrentPinballGame->pichuEntranceTimer--; } -void ResetCatchState(s16 arg0) +void ResetCatchState(s16 resetHoleIndicators) { - if (arg0) + if (resetHoleIndicators) { gCurrentPinballGame->allHolesLit = 0; gCurrentPinballGame->holeIndicators[0] = 0; @@ -544,70 +546,70 @@ void AnimateBonusTrapSprite(void) } } -void AnimateCatchCounterDisplay(void) +void ProcessChargeIndicator(void) { s16 i; struct SpriteGroup *group; struct OamDataSimple *oamSimple; - s16 index; + s16 chargeLevelIx; s16 sp0[3]; group = gMain.fieldSpriteGroups[17]; memset(sp0, 0, sizeof(sp0)); - if (gCurrentPinballGame->catchCounterValue != gCurrentPinballGame->prevCatchCounterValue) + if (gCurrentPinballGame->chargeFillValue != gCurrentPinballGame->prevChargeFillValue) { - if (gCurrentPinballGame->catchCounterValue == 12) { - if (gCurrentPinballGame->pikachuAnimTimer) + if (gCurrentPinballGame->chargeFillValue == 12) { + if (gCurrentPinballGame->chargeFillAnimTimer) { - gCurrentPinballGame->pikachuAnimTimer--; - index = ((gCurrentPinballGame->pikachuAnimTimer % 20) / 10) + 12; - if (gCurrentPinballGame->pikachuAnimTimer < 41) + gCurrentPinballGame->chargeFillAnimTimer--; + chargeLevelIx = ((gCurrentPinballGame->chargeFillAnimTimer % 20) / 10) + 12; + if (gCurrentPinballGame->chargeFillAnimTimer < 41) { - if (gCurrentPinballGame->pikachuAnimTimer > 2) + if (gCurrentPinballGame->chargeFillAnimTimer > 2) { - gCurrentPinballGame->catchCounterXShift += 3; - gCurrentPinballGame->catchCounterSlideOffsetY += 2; + gCurrentPinballGame->chargeIndicatorXOffset += 3; + gCurrentPinballGame->chargeIndicatorYOffset += 2; } - gCurrentPinballGame->catchCounterAnimState = gCurrentPinballGame->catchCounterScaleY = ((gCurrentPinballGame->pikachuAnimTimer * 128) / 40) + 128; - sp0[1] = ((40 - gCurrentPinballGame->pikachuAnimTimer) * 16) / 40; - sp0[0] = -((40 - gCurrentPinballGame->pikachuAnimTimer) * 16) / 40; + gCurrentPinballGame->chargeIndicatorScaleX = gCurrentPinballGame->chargeIndicatorScaleY = ((gCurrentPinballGame->chargeFillAnimTimer * 128) / 40) + 128; + sp0[1] = ((40 - gCurrentPinballGame->chargeFillAnimTimer) * 16) / 40; + sp0[0] = -((40 - gCurrentPinballGame->chargeFillAnimTimer) * 16) / 40; sp0[2] = 0; } } else { - gCurrentPinballGame->prevCatchCounterValue = 13; - gCurrentPinballGame->catchCounterValue = 13; - index = 13; - gCurrentPinballGame->catchCounterSlideTimer = 0; - gCurrentPinballGame->catchCounterSlideOffsetY = 120; - gCurrentPinballGame->catchCounterBlinkTimer = 60; + gCurrentPinballGame->prevChargeFillValue = 13; + gCurrentPinballGame->chargeFillValue = 13; + chargeLevelIx = 13; + gCurrentPinballGame->fullChargeSlideAnimTimer = 0; + gCurrentPinballGame->chargeIndicatorYOffset = 120; + gCurrentPinballGame->fullChargeIndicatorBlinkTimer = 60; } - DmaCopy16(3, gCatchCounterDigitTilesGfx[index], (void *)0x06010AE0, 0x80); + DmaCopy16(3, gChargeFillIndicator_Gfx[chargeLevelIx], (void *)0x06010AE0, 0x80); } else { - DmaCopy16(3, gCatchCounterDigitTilesGfx[gCurrentPinballGame->catchCounterValue], (void *)0x06010AE0, 0x80); - gCurrentPinballGame->prevCatchCounterValue = gCurrentPinballGame->catchCounterValue; + DmaCopy16(3, gChargeFillIndicator_Gfx[gCurrentPinballGame->chargeFillValue], (void *)0x06010AE0, 0x80); + gCurrentPinballGame->prevChargeFillValue = gCurrentPinballGame->chargeFillValue; } } - if (gCurrentPinballGame->catchCounterSlideTimer) + if (gCurrentPinballGame->fullChargeSlideAnimTimer) { - gCurrentPinballGame->catchCounterSlideTimer--; - group->baseY = 80 + gCurrentPinballGame->catchCounterSlideOffsetY; - if (gCurrentPinballGame->catchCounterSlideTimer < 20) - gCurrentPinballGame->catchCounterScaleY = (gCurrentPinballGame->catchCounterSlideTimer * 12) + 16; + gCurrentPinballGame->fullChargeSlideAnimTimer--; + group->baseY = 80 + gCurrentPinballGame->chargeIndicatorYOffset; + if (gCurrentPinballGame->fullChargeSlideAnimTimer < 20) + gCurrentPinballGame->chargeIndicatorScaleY = (gCurrentPinballGame->fullChargeSlideAnimTimer * 12) + 16; } else { group->baseY = 180; } - group->baseX = 119 + gCurrentPinballGame->catchCounterXShift; - SetMatrixScale(gCurrentPinballGame->catchCounterAnimState, gCurrentPinballGame->catchCounterScaleY, 1); + group->baseX = 119 + gCurrentPinballGame->chargeIndicatorXOffset; + SetMatrixScale(gCurrentPinballGame->chargeIndicatorScaleX, gCurrentPinballGame->chargeIndicatorScaleY, 1); for (i = 0; i < 3; i++) { oamSimple = &group->oam[i]; @@ -896,7 +898,7 @@ void AnimateCoinReward(void) gCurrentPinballGame->coinBounceTimer[var2] = 17; gCurrentPinballGame->coinSpritePos[var2].x = 188; gCurrentPinballGame->coinSpritePos[var2].y = 140; - m4aSongNumStart(SE_UNKNOWN_0x7E); + m4aSongNumStart(SE_COIN_COLLECTED); gCurrentPinballGame->coins += gCurrentPinballGame->coinRewardAmount - gCurrentPinballGame->coinsAwarded; if (gCurrentPinballGame->coins > 99) gCurrentPinballGame->coins = 99; @@ -912,7 +914,7 @@ void AnimateCoinReward(void) gCurrentPinballGame->coinSpritePos[var2].x = 188; gCurrentPinballGame->coinSpritePos[var2].y = 140; gCurrentPinballGame->coinsAwarded++; - m4aSongNumStart(SE_UNKNOWN_0x7E); + m4aSongNumStart(SE_COIN_COLLECTED); gCurrentPinballGame->coins++; if (gCurrentPinballGame->coins > 99) gCurrentPinballGame->coins = 99; @@ -1493,7 +1495,7 @@ void UpdateEggModeAnimation(void) RequestBoardStateTransition(5); if (gCurrentPinballGame->eggAnimFrameIndex == 28) - m4aSongNumStart(SE_UNKNOWN_0x92); + m4aSongNumStart(SE_HATCH_FLOURISH); } var3 = gEggAnimationFrameData[gCurrentPinballGame->eggAnimFrameIndex][0]; @@ -1715,25 +1717,25 @@ void InitEggMode(void) { gCurrentPinballGame->boardSubState = 0; gCurrentPinballGame->stageTimer = 0; - gCurrentPinballGame->modeTimeRemaining = 1800; + gCurrentPinballGame->saverTimeRemaining = 1800; gCurrentPinballGame->creatureHitCount = 0; - gCurrentPinballGame->creatureVelX = 0; - gCurrentPinballGame->creatureVelY = 0; + gCurrentPinballGame->walkMonXVelocity = 0; + gCurrentPinballGame->walkMonYVelocity = 0; if (gMain.selectedField == FIELD_RUBY) { - gCurrentPinballGame->catchCreatureX = 750; - gCurrentPinballGame->catchCreatureY = 1040; + gCurrentPinballGame->walkMonXPos = 750; + gCurrentPinballGame->walkMonYPos = 1040; } else { - gCurrentPinballGame->catchCreatureX = 1960; - gCurrentPinballGame->catchCreatureY = 300; + gCurrentPinballGame->walkMonXPos = 1960; + gCurrentPinballGame->walkMonYPos = 300; } gCurrentPinballGame->creatureWaypointIndex = 0; gCurrentPinballGame->waypointSubTimer = 0; - gCurrentPinballGame->creatureVelX = 0; - gCurrentPinballGame->creatureVelY = 0; + gCurrentPinballGame->walkMonXVelocity = 0; + gCurrentPinballGame->walkMonYVelocity = 0; gCurrentPinballGame->creatureHitCooldown = 0; gCurrentPinballGame->captureFlashTimer = 0; } @@ -1779,8 +1781,8 @@ void UpdateEggMode(void) { gCurrentPinballGame->creatureWaypointIndex = 0; gCurrentPinballGame->boardSubState = 3; - gCurrentPinballGame->creatureVelX = 0; - gCurrentPinballGame->creatureVelY = 0; + gCurrentPinballGame->walkMonXVelocity = 0; + gCurrentPinballGame->walkMonYVelocity = 0; } if (gCurrentPinballGame->creatureWaypointIndex == 12) @@ -1797,13 +1799,13 @@ void UpdateEggMode(void) if (gCurrentPinballGame->creatureWaypointIndex == 12) { - gCurrentPinballGame->creatureVelX = -8; - gCurrentPinballGame->creatureVelY = -30; + gCurrentPinballGame->walkMonXVelocity = -8; + gCurrentPinballGame->walkMonYVelocity = -30; } else { - gCurrentPinballGame->creatureVelX = 0; - gCurrentPinballGame->creatureVelY = 0; + gCurrentPinballGame->walkMonXVelocity = 0; + gCurrentPinballGame->walkMonYVelocity = 0; } } else @@ -1813,8 +1815,8 @@ void UpdateEggMode(void) gCurrentPinballGame->waypointSubTimer = 0; gCurrentPinballGame->creatureWaypointIndex = 10; gCurrentPinballGame->boardSubState = 2; - gCurrentPinballGame->creatureVelX = 0; - gCurrentPinballGame->creatureVelY = 0; + gCurrentPinballGame->walkMonXVelocity = 0; + gCurrentPinballGame->walkMonYVelocity = 0; } } } @@ -1823,13 +1825,13 @@ void UpdateEggMode(void) var1 = gEggHatchAnimData[gCurrentPinballGame->creatureWaypointIndex][2]; if (gCurrentPinballGame->creatureWaypointIndex == 12) { - gCurrentPinballGame->creatureVelY += 2; - gCurrentPinballGame->catchCreatureX += gCurrentPinballGame->creatureVelX; - gCurrentPinballGame->catchCreatureY += gCurrentPinballGame->creatureVelY; + gCurrentPinballGame->walkMonYVelocity += 2; + gCurrentPinballGame->walkMonXPos += gCurrentPinballGame->walkMonXVelocity; + gCurrentPinballGame->walkMonYPos += gCurrentPinballGame->walkMonYVelocity; } - group->baseX = gCurrentPinballGame->catchCreatureX / 10 - gCurrentPinballGame->cameraXOffset; - group->baseY = gCurrentPinballGame->catchCreatureY / 10 - gCurrentPinballGame->cameraYOffset; + group->baseX = gCurrentPinballGame->walkMonXPos / 10 - gCurrentPinballGame->cameraXOffset; + group->baseY = gCurrentPinballGame->walkMonYPos / 10 - gCurrentPinballGame->cameraYOffset; DmaCopy16(3, gCatchSpriteFrameBuffer[var0], (void *)0x060112A0, 0x120); DmaCopy16(3, gCatchSpritePaletteBuffer, (void *)0x050003A0, 0x20); for (i = 0; i < 4; i++) @@ -1859,8 +1861,8 @@ void UpdateEggMode(void) } else if (gCurrentPinballGame->waypointSubTimer == 240) { - gCurrentPinballGame->catchCreatureX = 2260; - gCurrentPinballGame->catchCreatureY = 740; + gCurrentPinballGame->walkMonXPos = 2260; + gCurrentPinballGame->walkMonYPos = 740; gCurrentPinballGame->creatureWaypointIndex = 0; priority = 2; var0 = 0; @@ -1868,8 +1870,8 @@ void UpdateEggMode(void) } else { - tempVec.x = gSapphireEggWaypoints[gCurrentPinballGame->creatureWaypointIndex].x - 120 - gCurrentPinballGame->catchCreatureX; - tempVec.y = gSapphireEggWaypoints[gCurrentPinballGame->creatureWaypointIndex].y - 160 - gCurrentPinballGame->catchCreatureY; + tempVec.x = gSapphireEggWaypoints[gCurrentPinballGame->creatureWaypointIndex].x - 120 - gCurrentPinballGame->walkMonXPos; + tempVec.y = gSapphireEggWaypoints[gCurrentPinballGame->creatureWaypointIndex].y - 160 - gCurrentPinballGame->walkMonYPos; xx = tempVec.x * tempVec.x; yy = tempVec.y * tempVec.y; squaredMagnitude = xx + yy; @@ -1892,8 +1894,8 @@ void UpdateEggMode(void) tempVec2.y = -(Sin(angle) * 7) / 20000; } - gCurrentPinballGame->catchCreatureX += tempVec2.x; - gCurrentPinballGame->catchCreatureY += tempVec2.y; + gCurrentPinballGame->walkMonXPos += tempVec2.x; + gCurrentPinballGame->walkMonYPos += tempVec2.y; if (squaredMagnitude < 2500) { if (gCurrentPinballGame->creatureWaypointIndex < 6) @@ -1904,8 +1906,8 @@ void UpdateEggMode(void) { gCurrentPinballGame->creatureWaypointIndex = 3; gCurrentPinballGame->boardSubState = 3; - gCurrentPinballGame->creatureVelX = 0; - gCurrentPinballGame->creatureVelY = 0; + gCurrentPinballGame->walkMonXVelocity = 0; + gCurrentPinballGame->walkMonYVelocity = 0; } } @@ -1922,8 +1924,8 @@ void UpdateEggMode(void) DmaCopy16(3, gCatchSpriteFrameBuffer[var0], (void *)0x060112A0, 0x120); gCurrentPinballGame->waypointSubTimer++; - group->baseX = gCurrentPinballGame->catchCreatureX / 10 - gCurrentPinballGame->cameraXOffset; - group->baseY = gCurrentPinballGame->catchCreatureY / 10 - gCurrentPinballGame->cameraYOffset; + group->baseX = gCurrentPinballGame->walkMonXPos / 10 - gCurrentPinballGame->cameraXOffset; + group->baseY = gCurrentPinballGame->walkMonYPos / 10 - gCurrentPinballGame->cameraYOffset; if (group->baseY > 180) group->baseY = 180; else if (group->baseY < -30) @@ -1938,8 +1940,8 @@ void UpdateEggMode(void) } break; case 3: - tempVec.x = gEggWalkPathWaypoints[gMain.selectedField][gCurrentPinballGame->creatureWaypointIndex].x - 120 - gCurrentPinballGame->catchCreatureX; - tempVec.y = gEggWalkPathWaypoints[gMain.selectedField][gCurrentPinballGame->creatureWaypointIndex].y - 160 - gCurrentPinballGame->catchCreatureY; + tempVec.x = gEggWalkPathWaypoints[gMain.selectedField][gCurrentPinballGame->creatureWaypointIndex].x - 120 - gCurrentPinballGame->walkMonXPos; + tempVec.y = gEggWalkPathWaypoints[gMain.selectedField][gCurrentPinballGame->creatureWaypointIndex].y - 160 - gCurrentPinballGame->walkMonYPos; xx = tempVec.x * tempVec.x; yy = tempVec.y * tempVec.y; squaredMagnitude = xx + yy; @@ -1962,8 +1964,8 @@ void UpdateEggMode(void) var0 = gAngleToDirectionTable[angle / 0x2000] + (gMain.systemFrameCount % 32) / 8 - ((gMain.systemFrameCount % 32) / 24) * 2; } - gCurrentPinballGame->catchCreatureX += tempVec2.x; - gCurrentPinballGame->catchCreatureY += tempVec2.y; + gCurrentPinballGame->walkMonXPos += tempVec2.x; + gCurrentPinballGame->walkMonYPos += tempVec2.y; } if (squaredMagnitude < 2500) @@ -1998,8 +2000,8 @@ void UpdateEggMode(void) priority = 1; } - group->baseX = gCurrentPinballGame->catchCreatureX / 10 - gCurrentPinballGame->cameraXOffset; - group->baseY = gCurrentPinballGame->catchCreatureY / 10 - gCurrentPinballGame->cameraYOffset;; + group->baseX = gCurrentPinballGame->walkMonXPos / 10 - gCurrentPinballGame->cameraXOffset; + group->baseY = gCurrentPinballGame->walkMonYPos / 10 - gCurrentPinballGame->cameraYOffset;; if (group->baseY > 180) group->baseY = 180; else if (group->baseY < -30) @@ -2020,8 +2022,8 @@ void UpdateEggMode(void) } else { - tempVec.x = gCurrentPinballGame->ball->positionQ0.x - (gCurrentPinballGame->catchCreatureX / 10 + 12); - tempVec.y = gCurrentPinballGame->ball->positionQ0.y - (gCurrentPinballGame->catchCreatureY / 10 + 14); + tempVec.x = gCurrentPinballGame->ball->positionQ0.x - (gCurrentPinballGame->walkMonXPos / 10 + 12); + tempVec.y = gCurrentPinballGame->ball->positionQ0.y - (gCurrentPinballGame->walkMonYPos / 10 + 14); xx = tempVec.x * tempVec.x; yy = tempVec.y * tempVec.y; squaredMagnitude = xx + yy; @@ -2033,7 +2035,7 @@ void UpdateEggMode(void) if (gCurrentPinballGame->creatureHitCount > 1) gCurrentPinballGame->boardSubState = 4; - m4aSongNumStart(SE_UNKNOWN_0x75); + m4aSongNumStart(SE_PICHU_IN_POSITION_CHIRP); angle2 = ArcTan2(-gCurrentPinballGame->ball->velocity.x, gCurrentPinballGame->ball->velocity.y); if (gCurrentPinballGame->creatureHitCount > 1) { @@ -2058,14 +2060,14 @@ void UpdateEggMode(void) DmaCopy16(3, &gBallUpgradeTilesGfx[(gCurrentPinballGame->ballUpgradeType * 8 + 4) * 0x40], (void *)0x06016760, 0x80); gCurrentPinballGame->captureSequenceFrame = 0; gCurrentPinballGame->captureState = 2; - gCurrentPinballGame->catchTargetX = gCurrentPinballGame->catchCreatureX / 10 + 8; - gCurrentPinballGame->catchTargetY = gCurrentPinballGame->catchCreatureY / 10 - 31; + gCurrentPinballGame->catchTargetX = gCurrentPinballGame->walkMonXPos / 10 + 8; + gCurrentPinballGame->catchTargetY = gCurrentPinballGame->walkMonYPos / 10 - 31; for (i = 0; i < 6; i++) gCurrentPinballGame->hatchTilePalette[i] = 13; gCurrentPinballGame->boardSubState++; - group->baseX = gCurrentPinballGame->catchCreatureX / 10 - gCurrentPinballGame->cameraXOffset; - group->baseY = gCurrentPinballGame->catchCreatureY / 10 - gCurrentPinballGame->cameraYOffset; + group->baseX = gCurrentPinballGame->walkMonXPos / 10 - gCurrentPinballGame->cameraXOffset; + group->baseY = gCurrentPinballGame->walkMonYPos / 10 - gCurrentPinballGame->cameraYOffset; if (group->baseY > 180) group->baseY = 180; @@ -2088,8 +2090,8 @@ void UpdateEggMode(void) if (group->available) { - group->baseX = gCurrentPinballGame->catchCreatureX / 10 - gCurrentPinballGame->cameraXOffset; - group->baseY = gCurrentPinballGame->catchCreatureY / 10 - gCurrentPinballGame->cameraYOffset; + group->baseX = gCurrentPinballGame->walkMonXPos / 10 - gCurrentPinballGame->cameraXOffset; + group->baseY = gCurrentPinballGame->walkMonYPos / 10 - gCurrentPinballGame->cameraYOffset; for (i = 0; i < 4; i++) { oamSimple = &group->oam[i]; @@ -2255,7 +2257,7 @@ void RevealSequentialHatchTiles(void) if (gCurrentPinballGame->hatchFrameId == 1) { - m4aSongNumStart(SE_UNKNOWN_0x8C); + m4aSongNumStart(SE_CATCH_TILE_REVEAL); InitSequentialTileParticles(); } @@ -2317,7 +2319,7 @@ void RevealAllHatchTilesAtOnce(void) DmaCopy16(3, gHatchStartTilesGfx, (void *)0x06015800, 0x2000); DmaCopy16(3, gHatchStartPalette, (void *)0x050003C0, 0x20); gMain.fieldSpriteGroups[35]->available = 1; - m4aSongNumStart(SE_UNKNOWN_0x8D); + m4aSongNumStart(SE_CATCH_ALL_REVEAL_LIGHTNING); gCurrentPinballGame->hatchRevealPhase++; gCurrentPinballGame->revealAnimFrameCounter = 0; gCurrentPinballGame->revealFramesetIndex = 0; @@ -2405,7 +2407,7 @@ void RevealAllHatchTilesAtOnce(void) DmaCopy16(3, gHatchStage3Palette, (void *)0x050003C0, 0x20); gCurrentPinballGame->hatchRevealPhase++; InitBurstTileParticles(); - m4aSongNumStart(SE_UNKNOWN_0x8E); + m4aSongNumStart(SE_CATCH_ALL_REVEAL_SHATTER); break; case 6: gMain.blendBrightness = 0; @@ -2620,7 +2622,7 @@ void UpdateAreaRoulette(void) gCurrentPinballGame->rouletteInitialSpeed = gCurrentPinballGame->rouletteSpinSpeed; gCurrentPinballGame->sapphirePondFlag = 1; gCurrentPinballGame->launcherCharging = 1; - gCurrentPinballGame->modeTimeRemaining = 3600; + gCurrentPinballGame->saverTimeRemaining = 3600; gCurrentPinballGame->rubyPondState = RUBY_POND_STATE_CHINCHOU_COUNTERCLOCKWISE; } } @@ -2667,7 +2669,7 @@ void UpdateAreaRoulette(void) gMain.fieldSpriteGroups[20]->available = 0; gMain.fieldSpriteGroups[21]->available = 0; gMain.fieldSpriteGroups[34]->available = 1; - m4aSongNumStart(SE_UNKNOWN_0x93); + m4aSongNumStart(SE_AREA_ROULETTE_SELECTED); } } @@ -2696,7 +2698,7 @@ void UpdateAreaRoulette(void) gCurrentPinballGame->area = gAreaRouletteTable[gMain.selectedField][gCurrentPinballGame->areaRouletteSlotIndex]; gCurrentPinballGame->rouletteAreaIndex[1] = gAreaToSpeciesTable[gCurrentPinballGame->area]; LoadPortraitGraphics(0, 1); - m4aSongNumStart(SE_UNKNOWN_0x81); + m4aSongNumStart(SE_ROULETTE_TICK); } break; case 6: @@ -2828,7 +2830,7 @@ void InitTravelMode(void) gCurrentPinballGame->boardModeType = 2; gCurrentPinballGame->eventTimer = gCurrentPinballGame->timerBonus + 3600; gCurrentPinballGame->timerBonus = 0; - gCurrentPinballGame->modeTimeRemaining = 1800; + gCurrentPinballGame->saverTimeRemaining = 1800; DmaCopy16(3, gDefaultBallPalette, (void *)0x05000180, 0x20); } @@ -3040,7 +3042,7 @@ void InitEvolutionMode(void) gCurrentPinballGame->boardModeType = 2; gCurrentPinballGame->eventTimer = gCurrentPinballGame->timerBonus + 7200; gCurrentPinballGame->timerBonus = 0; - gCurrentPinballGame->modeTimeRemaining = 3600; + gCurrentPinballGame->saverTimeRemaining = 3600; if (gCurrentPinballGame->currentSpecies == SPECIES_WURMPLE) { gCurrentPinballGame->evoItemGfxIndex = 0; @@ -3388,7 +3390,7 @@ void UpdateEvolutionItemAnimation(void) } if (gCurrentPinballGame->evoItemAppearTimer == 60) - MPlayStart(&gMPlayInfo_SE1, &se_unk_84); + MPlayStart(&gMPlayInfo_SE1, &se_evo_item_appear); if (gEvoItemAppearFrameThresholds[gCurrentPinballGame->evoItemAnimFrame] > gCurrentPinballGame->evoItemAnimFrameTimer) { @@ -3404,7 +3406,7 @@ void UpdateEvolutionItemAnimation(void) gCurrentPinballGame->evoItemAppearTimer = 1; gMain.fieldSpriteGroups[40]->available = 0; gMain.fieldSpriteGroups[32]->available = 1; - MPlayStart(&gMPlayInfo_SE1, &se_unk_85); + MPlayStart(&gMPlayInfo_SE1, &se_evo_item_finish_appear); gCurrentPinballGame->activePortraitType = 0; } } @@ -3442,7 +3444,7 @@ void UpdateEvolutionItemAnimation(void) gCurrentPinballGame->evoItemsCaught < 3) { gCurrentPinballGame->scoreAddedInFrame = 10000; - MPlayStart(&gMPlayInfo_SE1, &se_unk_86); + MPlayStart(&gMPlayInfo_SE1, &se_evo_item_collected); gCurrentPinballGame->boardSubState = 1; gCurrentPinballGame->catchLights[gCurrentPinballGame->evoItemsCaught] = 5; gCurrentPinballGame->evoItemsCaught++; @@ -3517,11 +3519,11 @@ void InitCatchEmMode(void) if (gCurrentPinballGame->catchEmModeStartCount == 0) { - gCurrentPinballGame->modeTimeRemaining = 6000; + gCurrentPinballGame->saverTimeRemaining = 6000; } else { - gCurrentPinballGame->modeTimeRemaining = 4200; + gCurrentPinballGame->saverTimeRemaining = 4200; } gCurrentPinballGame->catchEmModeStartCount++; diff --git a/src/rom_27F94.c b/src/rom_27F94.c index bac8ad7..8e2bd16 100644 --- a/src/rom_27F94.c +++ b/src/rom_27F94.c @@ -40,9 +40,9 @@ extern const u16 gHatchAnimOamAttributes[][3]; extern const u16 gSapphireHatchOamFramesets[14][18]; extern const u8 (*gCatchSpriteGfxPtrs[])[0x480]; -extern struct SongHeader se_unk_84; -extern struct SongHeader se_unk_81; -extern struct SongHeader se_unk_87; +extern struct SongHeader se_evo_item_appear; +extern struct SongHeader se_roulette_tick; +extern struct SongHeader se_ball_upgrade; extern struct SongHeader se_unk_9a; enum HatchTileRevealStates { @@ -272,7 +272,7 @@ void InitJirachiBonus(void) gCurrentPinballGame->jirachiTagTimer[1] = 10; gCurrentPinballGame->jirachiTagTimer[2] = 20; gCurrentPinballGame->jirachiTagTimer[3] = 30; - gCurrentPinballGame->modeTimeRemaining = 3240; + gCurrentPinballGame->saverTimeRemaining = 3240; gCurrentPinballGame->allHolesLit = 0; gCurrentPinballGame->holeIndicators[0] = 0; gCurrentPinballGame->holeIndicators[1] = gCurrentPinballGame->holeIndicators[0]; @@ -466,7 +466,7 @@ void UpdateJirachiBonus(void) gCurrentPinballGame->boardSubState = 4; gCurrentPinballGame->stageTimer = 150; gCurrentPinballGame->jirachiCollisionEnabled = 0; - MPlayStart(&gMPlayInfo_SE1, &se_unk_84); + MPlayStart(&gMPlayInfo_SE1, &se_evo_item_appear); } return; case 4: @@ -1220,7 +1220,7 @@ void RunRouletteWheel(void) gCurrentPinballGame->modeOutcomeValues[1] = gCurrentPinballGame->rouletteSlotValues[gCurrentPinballGame->rouletteSlotCursor]; LoadPortraitGraphics(2, 1); - MPlayStart(&gMPlayInfo_SE1, &se_unk_81); + MPlayStart(&gMPlayInfo_SE1, &se_roulette_tick); } } @@ -1247,7 +1247,7 @@ void ProcessRouletteOutcome(void) case 0: case 1: case 2: - gCurrentPinballGame->modeTimeRemaining = (gCurrentPinballGame->rouletteOutcomeId + 1) * 1800; + gCurrentPinballGame->saverTimeRemaining = (gCurrentPinballGame->rouletteOutcomeId + 1) * 1800; break; case 3: if (gCurrentPinballGame->ballCatchState == 3) @@ -1265,15 +1265,15 @@ void ProcessRouletteOutcome(void) { gCurrentPinballGame->pikaChargeTarget = 168; gCurrentPinballGame->pikaChargeProgress = 168; - gCurrentPinballGame->prevCatchCounterValue = 13; - gCurrentPinballGame->catchCounterValue = 13; - gCurrentPinballGame->catchCounterSlideTimer = 0; - gCurrentPinballGame->catchCounterSlideOffsetY = 120; - gCurrentPinballGame->catchCounterBlinkTimer = 60; + gCurrentPinballGame->prevChargeFillValue = 13; + gCurrentPinballGame->chargeFillValue = 13; + gCurrentPinballGame->fullChargeSlideAnimTimer = 0; + gCurrentPinballGame->chargeIndicatorYOffset = 120; + gCurrentPinballGame->fullChargeIndicatorBlinkTimer = 60; DmaCopy16(3, gPikachuSaverTilesGfx, (void *)0x06010600, 0x180); gCurrentPinballGame->outLanePikaPosition = 2; gMain.fieldSpriteGroups[41]->available = 0; - gCurrentPinballGame->pikaSaverTimer = 1; + gCurrentPinballGame->pichuEntranceTimer = 1; } } else @@ -1289,19 +1289,19 @@ void ProcessRouletteOutcome(void) gCurrentPinballGame->bannerGfxIndex = 0; gCurrentPinballGame->bannerActive = 1; gCurrentPinballGame->bannerPreserveBallState = 0; - gCurrentPinballGame->pikaRescuePath = 1; - gCurrentPinballGame->pikaSaverTimer = 800; + gCurrentPinballGame->pichuWalkMode = 1; + gCurrentPinballGame->pichuEntranceTimer = 800; gCurrentPinballGame->outLanePikaPosition = 0; gCurrentPinballGame->pikaChargeTarget = 168; gCurrentPinballGame->pikaChargeProgress = 168; - gCurrentPinballGame->prevCatchCounterValue = 13; - gCurrentPinballGame->catchCounterValue = 13; - gCurrentPinballGame->catchCounterSlideTimer = 0; - gCurrentPinballGame->catchCounterSlideOffsetY = 120; - gCurrentPinballGame->catchCounterBlinkTimer = 60; + gCurrentPinballGame->prevChargeFillValue = 13; + gCurrentPinballGame->chargeFillValue = 13; + gCurrentPinballGame->fullChargeSlideAnimTimer = 0; + gCurrentPinballGame->chargeIndicatorYOffset = 120; + gCurrentPinballGame->fullChargeIndicatorBlinkTimer = 60; } - if (gCurrentPinballGame->pikaSaverTimer) + if (gCurrentPinballGame->pichuEntranceTimer) { if (gCurrentPinballGame->outcomeFrameCounter >= 176) gCurrentPinballGame->outcomeFrameCounter = 176; @@ -1385,7 +1385,7 @@ void ProcessRouletteOutcome(void) gCurrentPinballGame->ballUpgradeType++; gCurrentPinballGame->ballUpgradeCounter = 3600; - MPlayStart(&gMPlayInfo_SE1, &se_unk_87); + MPlayStart(&gMPlayInfo_SE1, &se_ball_upgrade); DmaCopy16(3, gBallPalettes[gCurrentPinballGame->ballUpgradeType], (void *)0x05000220, 0x20); } break; @@ -1394,7 +1394,7 @@ void ProcessRouletteOutcome(void) { gCurrentPinballGame->ballUpgradeType = BALL_UPGRADE_TYPE_MASTER_BALL; gCurrentPinballGame->ballUpgradeCounter = 3600; - MPlayStart(&gMPlayInfo_SE1, &se_unk_87); + MPlayStart(&gMPlayInfo_SE1, &se_ball_upgrade); DmaCopy16(3, gBallPalettes[gCurrentPinballGame->ballUpgradeType], (void *)0x05000220, 0x20); } break; @@ -1460,19 +1460,19 @@ void ProcessRouletteOutcome(void) case 33: if (gCurrentPinballGame->outcomeFrameCounter == 70) { - m4aSongNumStart(SE_UNKNOWN_0x91); + m4aSongNumStart(SE_BONUS_SCORE_TALLIED); gCurrentPinballGame->scoreAddedInFrame = 100; } break; case 34: if (gCurrentPinballGame->outcomeFrameCounter == 70) { - m4aSongNumStart(SE_UNKNOWN_0x91); + m4aSongNumStart(SE_BONUS_SCORE_TALLIED); gCurrentPinballGame->scoreAddedInFrame = 500; } break; case 35: if (gCurrentPinballGame->outcomeFrameCounter == 70) { - m4aSongNumStart(SE_UNKNOWN_0x91); + m4aSongNumStart(SE_BONUS_SCORE_TALLIED); gCurrentPinballGame->scoreAddedInFrame = 900; } break; diff --git a/src/rom_2E67C.c b/src/rom_2E67C.c index d7f86c8..dc317b9 100644 --- a/src/rom_2E67C.c +++ b/src/rom_2E67C.c @@ -2,6 +2,7 @@ #include "m4a.h" #include "main.h" #include "constants/bg_music.h" +#include "constants/main_board.h" extern const s16 gPelipperIdleFrameIndices[]; extern const s16 gPelipperSwallowAnimData[][3]; @@ -50,7 +51,7 @@ extern const u8 gLifeCountDigit_Gfx[][0x40]; extern const u8 gOneUpSpritePalette[]; extern struct SongHeader se_unk_fc; -extern struct SongHeader se_unk_7a; +extern struct SongHeader se_pika_full_charge_1_up; extern u8 gPaletteFadeRGBCache[][3]; @@ -164,7 +165,7 @@ void AnimateOneUpSprite(void) if (gCurrentPinballGame->oneUpAnimTimer == 58) { - MPlayStart(&gMPlayInfo_SE1, &se_unk_7a); + MPlayStart(&gMPlayInfo_SE1, &se_pika_full_charge_1_up); if (gCurrentPinballGame->numLives < 9) gCurrentPinballGame->numLives++; } @@ -763,7 +764,7 @@ void RunTravelEventCutscene(void) gCurrentPinballGame->travelPainterVelY = -30; index = (gCurrentPinballGame->stageTimer % 4) / 2; if (gCurrentPinballGame->stageTimer % 10 == 0) - m4aSongNumStart(SE_UNKNOWN_0x97); + m4aSongNumStart(SE_TRAVEL_PAINTER_FLIGHT); } else if (gCurrentPinballGame->stageTimer < 90) { @@ -807,7 +808,7 @@ void RunTravelEventCutscene(void) index = gTravelEventAnimData[gCurrentPinballGame->travelAnimKeyframeIndex][1]; if (gTravelEventAnimData[gCurrentPinballGame->travelAnimKeyframeIndex][2] == 5 && gCurrentPinballGame->travelAnimSubTimer == 1) - m4aSongNumStart(SE_UNKNOWN_0x98); + m4aSongNumStart(SE_TRAVEL_PAINTER_PAINTS); if (index == 16) gCurrentPinballGame->travelPainterPosX = -80; @@ -848,7 +849,7 @@ void RunTravelEventCutscene(void) gCurrentPinballGame->travelPainterPosX += gCurrentPinballGame->travelPainterVelX; gCurrentPinballGame->travelPainterPosY += gCurrentPinballGame->travelPainterVelY; if (gCurrentPinballGame->stageTimer % 10 == 0) - m4aSongNumStart(SE_UNKNOWN_0x97); + m4aSongNumStart(SE_TRAVEL_PAINTER_FLIGHT); } if (gMain.selectedField == FIELD_RUBY) @@ -1261,7 +1262,7 @@ void UpdateZigzagoonEntity(void) gCurrentPinballGame->zigzagoonOamFrame = 1; } - if (gCurrentPinballGame->ballCatchState != 4) + if (gCurrentPinballGame->ballCatchState != TRAP_CENTER_HOLE) gCurrentPinballGame->zigzagoonShockWallActive = 0; break; case 2: @@ -1511,7 +1512,7 @@ void UpdateSapphireBumperLogic(void) } } - if (gCurrentPinballGame->ballCatchState != 3) + if (gCurrentPinballGame->ballCatchState != TRAP_EVO_SHOP_HOLE) { if (gCurrentPinballGame->sapphireBumperLitCountdown) gCurrentPinballGame->sapphireBumperLitCountdown--; diff --git a/src/rom_30480.c b/src/rom_30480.c index 35d777f..64ed279 100644 --- a/src/rom_30480.c +++ b/src/rom_30480.c @@ -116,7 +116,7 @@ void UpdateSapphireEggCaveAnimation(void) RequestBoardStateTransition(5); if (gCurrentPinballGame->eggAnimFrameIndex == 28) - m4aSongNumStart(SE_UNKNOWN_0x92); + m4aSongNumStart(SE_HATCH_FLOURISH); } sp0 = gEggAnimationFrameData[gCurrentPinballGame->eggAnimFrameIndex][0]; diff --git a/src/rom_31BE8.c b/src/rom_31BE8.c index 2214367..b42e9b5 100644 --- a/src/rom_31BE8.c +++ b/src/rom_31BE8.c @@ -138,13 +138,13 @@ void UpdateSapphireHoleLetterSystem(void) if (gCurrentPinballGame->holeLetterCount < 6) { - gCurrentPinballGame->catchCreatureY = 280; + gCurrentPinballGame->walkMonYPos = 280; } else { - gCurrentPinballGame->catchCreatureY += 6; + gCurrentPinballGame->walkMonYPos += 6; if (gCurrentPinballGame->holeLetterSystemState == 4) - gCurrentPinballGame->catchCreatureY = gCurrentPinballGame->catchCreatureY + 20; + gCurrentPinballGame->walkMonYPos = gCurrentPinballGame->walkMonYPos + 20; } break; case 4: diff --git a/src/rom_4F258.c b/src/rom_4F258.c index dee6a64..6277c3f 100644 --- a/src/rom_4F258.c +++ b/src/rom_4F258.c @@ -18,7 +18,7 @@ extern const u8 *gShopItemTilePointers[][3]; extern const s16 gRubySlingshotAnimIndices[]; extern const u8 *gRubySlingshotTilePointers[][3][5]; -extern struct SongHeader se_unk_87; +extern struct SongHeader se_ball_upgrade; void UpdateRubyBoardAnimations(void) @@ -65,8 +65,8 @@ void UpdateRubyBoardAnimations(void) if (gCurrentPinballGame->hudSpriteBaseY > 202) DrawRubyModeTimerDisplay(); - if (gCurrentPinballGame->modeTimeRemaining && gCurrentPinballGame->ballCatchState == 0) - gCurrentPinballGame->modeTimeRemaining--; + if (gCurrentPinballGame->saverTimeRemaining && gCurrentPinballGame->ballCatchState == 0) + gCurrentPinballGame->saverTimeRemaining--; } void AnimateRubySlingshotTimer(void) @@ -195,26 +195,26 @@ void DrawRubyModeTimerDisplay(void) const u8 **src; const u8 **dest; - if (gCurrentPinballGame->modeTimeRemaining > 300) + if (gCurrentPinballGame->saverTimeRemaining > 300) { - gCurrentPinballGame->modeTimerDisplayIndex = 1; + gCurrentPinballGame->saverLit = 1; } else { - if (gCurrentPinballGame->modeTimeRemaining) + if (gCurrentPinballGame->saverTimeRemaining) { if (gCurrentPinballGame->ballCatchState) - gCurrentPinballGame->modeTimerDisplayIndex = 1; + gCurrentPinballGame->saverLit = 1; else - gCurrentPinballGame->modeTimerDisplayIndex = (gMain.fieldFrameCount % 16) / 8; + gCurrentPinballGame->saverLit = (gMain.fieldFrameCount % 16) / 8; } else { - gCurrentPinballGame->modeTimerDisplayIndex = 0; + gCurrentPinballGame->saverLit = 0; } } - src = gRubyModeTimerTilePointers[gCurrentPinballGame->modeTimerDisplayIndex]; + src = gRubyModeTimerTilePointers[gCurrentPinballGame->saverLit]; dest = gRubyModeTimerTilePointers[2]; DmaCopy16(3, src[0], dest[0], 0xC0); DmaCopy16(3, src[1], dest[1], 0xC0); @@ -373,7 +373,7 @@ void AnimateRubyBallPowerUpSequence(void) } if (gCurrentPinballGame->ballShadowTimer == 40) - MPlayStart(&gMPlayInfo_SE1, &se_unk_87); + MPlayStart(&gMPlayInfo_SE1, &se_ball_upgrade); if (gCurrentPinballGame->ballShadowTimer == 60) gMain.fieldSpriteGroups[43]->available = 1; diff --git a/src/rom_50AD4.c b/src/rom_50AD4.c index b93e39b..def2310 100644 --- a/src/rom_50AD4.c +++ b/src/rom_50AD4.c @@ -308,8 +308,8 @@ void UpdateSapphireBoardAnimations(void) if (gCurrentPinballGame->hudSpriteBaseY >= 8 && gCurrentPinballGame->hudSpriteBaseY < 182) AnimateBumperHitCounter(); - if (gCurrentPinballGame->modeTimeRemaining && gCurrentPinballGame->ballCatchState == 0) - gCurrentPinballGame->modeTimeRemaining--; + if (gCurrentPinballGame->saverTimeRemaining && gCurrentPinballGame->ballCatchState == 0) + gCurrentPinballGame->saverTimeRemaining--; } void DrawSapphireProgressDigits(void) @@ -456,23 +456,23 @@ void DrawSapphireModeTimerDisplay(void) const u8 **src; const u8 **dest; - if (gCurrentPinballGame->modeTimeRemaining > 300) + if (gCurrentPinballGame->saverTimeRemaining > 300) { - gCurrentPinballGame->modeTimerDisplayIndex = 1; + gCurrentPinballGame->saverLit = 1; } - else if (gCurrentPinballGame->modeTimeRemaining) + else if (gCurrentPinballGame->saverTimeRemaining) { if (gCurrentPinballGame->ballCatchState) - gCurrentPinballGame->modeTimerDisplayIndex = 1; + gCurrentPinballGame->saverLit = 1; else - gCurrentPinballGame->modeTimerDisplayIndex = (gMain.fieldFrameCount & 0xF) / 8; + gCurrentPinballGame->saverLit = (gMain.fieldFrameCount & 0xF) / 8; } else { - gCurrentPinballGame->modeTimerDisplayIndex = 0; + gCurrentPinballGame->saverLit = 0; } - src = gSapphireModeTimerDisplayTilePtrs[gCurrentPinballGame->modeTimerDisplayIndex]; + src = gSapphireModeTimerDisplayTilePtrs[gCurrentPinballGame->saverLit]; dest = gSapphireModeTimerDisplayTilePtrs[2]; DmaCopy16(3, src[0], dest[0], 0xE0); DmaCopy16(3, src[1], dest[1], 0xE0);