summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/AgbRfu_LinkManager.c4
-rw-r--r--src/agb_flash.c2
-rw-r--r--src/battle_anim_effects_1.c10
-rwxr-xr-xsrc/battle_anim_effects_2.c6
-rwxr-xr-xsrc/battle_anim_effects_3.c20
-rw-r--r--src/battle_anim_electric.c2
-rw-r--r--src/battle_anim_fire.c2
-rw-r--r--src/battle_anim_ghost.c4
-rw-r--r--src/battle_anim_psychic.c2
-rw-r--r--src/battle_anim_rock.c4
-rwxr-xr-xsrc/battle_anim_throw.c (renamed from src/battle_anim_special.c)1051
-rw-r--r--src/battle_anim_utility_funcs.c4
-rw-r--r--src/battle_arena.c8
-rw-r--r--src/battle_bg.c2
-rw-r--r--src/battle_controller_link_opponent.c10
-rw-r--r--src/battle_controller_link_partner.c4
-rw-r--r--src/battle_controller_opponent.c10
-rw-r--r--src/battle_controller_player.c14
-rw-r--r--src/battle_controller_player_partner.c4
-rw-r--r--src/battle_controller_recorded_opponent.c10
-rw-r--r--src/battle_controller_recorded_player.c8
-rw-r--r--src/battle_controller_wally.c4
-rw-r--r--src/battle_gfx_sfx_util.c21
-rw-r--r--src/battle_interface.c6
-rw-r--r--src/battle_main.c89
-rw-r--r--src/battle_message.c22
-rw-r--r--src/battle_pyramid_bag.c8
-rw-r--r--src/battle_script_commands.c15
-rw-r--r--src/battle_setup.c44
-rw-r--r--src/battle_transition.c2
-rw-r--r--src/berry_blender.c3045
-rwxr-xr-xsrc/berry_crush.c26
-rw-r--r--src/bike.c2
-rw-r--r--src/braille_puzzles.c10
-rw-r--r--src/cable_car.c2
-rw-r--r--src/cable_club.c8
-rw-r--r--src/contest.c44
-rw-r--r--src/contest_painting.c116
-rw-r--r--src/contest_util.c6
-rw-r--r--src/credits.c2
-rw-r--r--src/decoration.c2
-rw-r--r--src/dodrio_berry_picking.c54
-rw-r--r--src/easy_chat.c4
-rw-r--r--src/egg_hatch.c16
-rwxr-xr-xsrc/ereader_screen.c4
-rw-r--r--src/event_object_movement.c79
-rw-r--r--src/evolution_graphics.c10
-rw-r--r--src/evolution_scene.c20
-rw-r--r--src/field_control_avatar.c4
-rw-r--r--src/field_door.c4
-rw-r--r--src/field_effect.c30
-rwxr-xr-xsrc/field_effect_helpers.c4
-rw-r--r--src/field_player_avatar.c16
-rw-r--r--src/field_screen_effect.c18
-rw-r--r--src/field_special_scene.c8
-rw-r--r--src/field_specials.c16
-rw-r--r--src/field_tasks.c8
-rw-r--r--src/field_weather.c12
-rw-r--r--src/field_weather_effect.c10
-rw-r--r--src/fldeff_cut.c4
-rw-r--r--src/fldeff_flash.c2
-rw-r--r--src/fldeff_misc.c38
-rw-r--r--src/fldeff_rocksmash.c2
-rw-r--r--src/fldeff_softboiled.c4
-rw-r--r--src/fldeff_sweetscent.c2
-rw-r--r--src/frontier_pass.c6
-rw-r--r--src/graphics.c27
-rw-r--r--src/hall_of_fame.c4
-rw-r--r--src/intro.c6
-rwxr-xr-xsrc/item_menu.c166
-rw-r--r--src/item_menu_icons.c97
-rwxr-xr-xsrc/item_use.c8
-rw-r--r--src/link.c48
-rw-r--r--src/link_rfu_2.c180
-rw-r--r--src/list_menu.c2
-rw-r--r--src/m4a.c111
-rw-r--r--src/m4a_1.s456
-rw-r--r--src/main_menu.c2
-rw-r--r--src/match_call.c4
-rw-r--r--src/menu.c56
-rw-r--r--src/menu_specialized.c119
-rw-r--r--src/minigame_countdown.c18
-rw-r--r--src/mirage_tower.c2
-rw-r--r--src/move_relearner.c28
-rw-r--r--src/mystery_gift.c4
-rw-r--r--src/naming_screen.c2
-rw-r--r--src/overworld.c36
-rwxr-xr-xsrc/party_menu.c30
-rw-r--r--src/pokeball.c70
-rw-r--r--src/pokeblock.c40
-rw-r--r--src/pokeblock_feed.c29
-rw-r--r--src/pokedex.c42
-rwxr-xr-xsrc/pokedex_area_screen.c2
-rw-r--r--src/pokemon.c64
-rwxr-xr-xsrc/pokemon_jump.c28
-rw-r--r--src/pokemon_storage_system.c18
-rw-r--r--src/pokemon_summary_screen.c4
-rw-r--r--src/pokenav_main_menu.c2
-rwxr-xr-xsrc/pokenav_match_call_1.c2
-rwxr-xr-xsrc/pokenav_match_call_2.c4
-rw-r--r--src/pokenav_menu_handler_1.c6
-rw-r--r--src/pokenav_menu_handler_2.c4
-rw-r--r--src/rayquaza_scene.c18
-rw-r--r--src/record_mixing.c4
-rw-r--r--src/reset_rtc_screen.c2
-rw-r--r--src/rotating_gate.c4
-rw-r--r--src/roulette.c32
-rw-r--r--src/script.c6
-rwxr-xr-xsrc/shop.c2
-rw-r--r--src/slot_machine.c22
-rw-r--r--src/sound.c36
-rw-r--r--src/strings.c6
-rw-r--r--src/title_screen.c2
-rw-r--r--src/trade.c42
-rwxr-xr-xsrc/trainer_card.c12
-rw-r--r--src/trainer_hill.c73
-rw-r--r--src/tv.c4
-rw-r--r--src/union_room.c26
118 files changed, 3617 insertions, 3425 deletions
diff --git a/src/AgbRfu_LinkManager.c b/src/AgbRfu_LinkManager.c
index f6ebcc726..42cc9aea3 100644
--- a/src/AgbRfu_LinkManager.c
+++ b/src/AgbRfu_LinkManager.c
@@ -352,7 +352,7 @@ static bool8 rfu_LMAN_linkWatcher(u16 REQ_commandID)
{
for (i = 0; i < RFU_CHILD_MAX; i++)
{
- if ((bm_linkLossSlot >> i) & 1)
+ if (bm_linkLossSlot & (1 << i))
{
lman.linkRecoveryTimer.active |= (1 << i);
lman.linkRecoveryTimer.count[i] = lman.linkRecoveryTimer.count_max;
@@ -396,7 +396,7 @@ static bool8 rfu_LMAN_linkWatcher(u16 REQ_commandID)
bm_disconnectSlot = 0;
for (i = 0; i < RFU_CHILD_MAX; i++)
{
- if ((lman.linkRecoveryTimer.active >> i) & 1 && lman.linkRecoveryTimer.count[i] && --lman.linkRecoveryTimer.count[i] == 0)
+ if ((lman.linkRecoveryTimer.active) & (1 << i) && lman.linkRecoveryTimer.count[i] && --lman.linkRecoveryTimer.count[i] == 0)
{
lman.linkRecoveryTimer.active &= ~(1 << i);
bm_disconnectSlot |= (1 << i);
diff --git a/src/agb_flash.c b/src/agb_flash.c
index eeccf1116..15ab0932d 100644
--- a/src/agb_flash.c
+++ b/src/agb_flash.c
@@ -293,4 +293,4 @@ u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, u8 *src, u32 n)
}
return result;
-} \ No newline at end of file
+}
diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c
index f4769145d..c8d43e12e 100644
--- a/src/battle_anim_effects_1.c
+++ b/src/battle_anim_effects_1.c
@@ -3178,14 +3178,14 @@ static void AnimItemSteal_Step3(struct Sprite* sprite)
sprite->pos2.y = Sin(sprite->data[0] + 0x80, 30 - sprite->data[1] * 8);
if (sprite->pos2.y == 0)
- PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(63));
+ PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(63));
if (moveAlongLinearPath(sprite))
{
sprite->pos2.y = 0;
sprite->data[0] = 0;
sprite->callback = AnimItemSteal_Step2;
- PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(-64));
+ PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64));
}
}
@@ -4260,7 +4260,7 @@ static void AnimLockOnTarget_Step1(struct Sprite* sprite)
sprite->callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step2);
sprite->data[5] += 0x100;
- PlaySE12WithPanning(SE_W199, BattleAnimAdjustPanning(63));
+ PlaySE12WithPanning(SE_M_LOCK_ON, BattleAnimAdjustPanning(63));
break;
}
@@ -4346,7 +4346,7 @@ static void AnimLockOnTarget_Step4(struct Sprite* sprite)
sprite->data[2]++;
pal = sprite->oam.paletteNum;
LoadPalette(&gPlttBufferUnfaded[0x108 + pal * 16], pal * 16 | 0x101, 4);
- PlaySE12WithPanning(SE_W043, BattleAnimAdjustPanning(63));
+ PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(63));
}
else if (sprite->data[1] == 0)
{
@@ -4821,7 +4821,7 @@ static void AnimSharpenSphere_Step(struct Sprite* sprite)
{
sprite->data[4]++;
if (!(sprite->data[4] & 1))
- PlaySE12WithPanning(SE_W207B, sprite->data[5]);
+ PlaySE12WithPanning(SE_M_SWAGGER2, sprite->data[5]);
}
sprite->data[0] = 0;
diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c
index f7d1eea10..d891a4d01 100755
--- a/src/battle_anim_effects_2.c
+++ b/src/battle_anim_effects_2.c
@@ -1632,7 +1632,7 @@ static void AirCutterProjectileStep1(u8 taskId)
gTasks[taskId].data[gTasks[taskId].data[1] + 13] = spriteId;
gTasks[taskId].data[0] = gTasks[taskId].data[3];
gTasks[taskId].data[1]++;
- PlaySE12WithPanning(SE_W059B, BattleAnimAdjustPanning(-63));
+ PlaySE12WithPanning(SE_M_BLIZZARD2, BattleAnimAdjustPanning(-63));
if (gTasks[taskId].data[1] > 2)
gTasks[taskId].func = AirCutterProjectileStep2;
}
@@ -1829,7 +1829,7 @@ static void AnimBulletSeed_Step1(struct Sprite *sprite)
int i;
u16 rand;
s16* ptr;
- PlaySE12WithPanning(SE_W030, BattleAnimAdjustPanning(63));
+ PlaySE12WithPanning(SE_M_HORN_ATTACK, BattleAnimAdjustPanning(63));
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
sprite->pos2.y = 0;
@@ -2502,7 +2502,7 @@ static void AnimPencil_Step(struct Sprite *sprite)
sprite->pos1.y -= 1;
sprite->data[2]++;
if (sprite->data[2] % 10 == 0)
- PlaySE12WithPanning(SE_W166, sprite->data[6]);
+ PlaySE12WithPanning(SE_M_SKETCH, sprite->data[6]);
}
sprite->data[4] += sprite->data[3];
if (sprite->data[4] > 31)
diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c
index afdc90049..bad46f144 100755
--- a/src/battle_anim_effects_3.c
+++ b/src/battle_anim_effects_3.c
@@ -1647,7 +1647,7 @@ static void AnimClappingHand_Step(struct Sprite *sprite)
sprite->data[2]++;
if (sprite->data[3] == 0)
{
- PlaySE1WithPanning(SE_W227, BattleAnimAdjustPanning(-64));
+ PlaySE1WithPanning(SE_M_ENCORE, BattleAnimAdjustPanning(-64));
}
}
}
@@ -1931,7 +1931,7 @@ static void TormentAttacker_Step(u8 taskId)
y = task->data[3] + task->data[5];
spriteId = CreateSprite(&gThoughtBubbleSpriteTemplate, x, y, 6 - task->data[1]);
- PlaySE12WithPanning(SE_W118, BattleAnimAdjustPanning(-64));
+ PlaySE12WithPanning(SE_M_METRONOME, BattleAnimAdjustPanning(-64));
if (spriteId != MAX_SPRITES)
{
@@ -2412,7 +2412,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
gTasks[taskId].data[11] = gBattle_BG1_Y;
gTasks[taskId].data[0]++;
- PlaySE12WithPanning(SE_W234, BattleAnimAdjustPanning(-64));
+ PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(-64));
break;
case 1:
if (gTasks[taskId].data[4]++ > 0)
@@ -2447,7 +2447,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
{
gTasks[taskId].data[3] = 0;
gTasks[taskId].data[0] = 1;
- PlaySE12WithPanning(SE_W234, BattleAnimAdjustPanning(-64));
+ PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(-64));
}
break;
case 4:
@@ -4769,7 +4769,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId)
if (gSprites[spriteId].pos2.y == 0)
{
- PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(-64));
+ PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64));
gTasks[taskId].data[10] -= 0x800;
gTasks[taskId].data[0]++;
}
@@ -4791,7 +4791,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId)
if (gSprites[spriteId].pos2.y == 0)
{
- PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(-64));
+ PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64));
DestroyAnimVisualTask(taskId);
}
break;
@@ -4828,7 +4828,7 @@ static void AnimBlockX_Step(struct Sprite *sprite)
sprite->pos2.y += 10;
if (sprite->pos2.y >= 0)
{
- PlaySE12WithPanning(SE_W166, BattleAnimAdjustPanning(63));
+ PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(63));
sprite->pos2.y = 0;
sprite->data[0]++;
}
@@ -4838,7 +4838,7 @@ static void AnimBlockX_Step(struct Sprite *sprite)
sprite->pos2.y = -(gSineTable[sprite->data[1]] >> 3);
if (sprite->data[1] > 0x7F)
{
- PlaySE12WithPanning(SE_W166, BattleAnimAdjustPanning(63));
+ PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(63));
sprite->data[1] = 0;
sprite->pos2.y = 0;
sprite->data[0]++;
@@ -4857,7 +4857,7 @@ static void AnimBlockX_Step(struct Sprite *sprite)
case 3:
if (++sprite->data[1] > 8)
{
- PlaySE12WithPanning(SE_W043, BattleAnimAdjustPanning(63));
+ PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(63));
sprite->data[1] = 0;
sprite->data[0]++;
}
@@ -5152,7 +5152,7 @@ static void sub_815FE80(struct Sprite *sprite)
case 0:
if (gBattleAnimArgs[7] == -1)
{
- PlaySE12WithPanning(SE_W233, BattleAnimAdjustPanning(63));
+ PlaySE12WithPanning(SE_M_VITAL_THROW, BattleAnimAdjustPanning(63));
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 16;
sprite->data[0] = -32;
sprite->data[7]++;
diff --git a/src/battle_anim_electric.c b/src/battle_anim_electric.c
index c153dbc10..a57e88b03 100644
--- a/src/battle_anim_electric.c
+++ b/src/battle_anim_electric.c
@@ -1242,7 +1242,7 @@ static bool8 sub_810B430(struct Task *task, u8 taskId)
if (task->data[4] == 0 && task->data[5] > 0)
{
task->data[14] += task->data[15];
- PlaySE12WithPanning(SE_W085, task->data[14]);
+ PlaySE12WithPanning(SE_M_THUNDERBOLT, task->data[14]);
}
if ((task->data[5] < 0 && task->data[7] <= task->data[8])
diff --git a/src/battle_anim_fire.c b/src/battle_anim_fire.c
index f02ecae19..c8402f727 100644
--- a/src/battle_anim_fire.c
+++ b/src/battle_anim_fire.c
@@ -1136,7 +1136,7 @@ static void AnimWillOWispOrb_Step(struct Sprite *sprite)
if ((initialData5 == 0 || initialData5 > 196) && newData5 > 0 && sprite->data[7] == 0)
{
- PlaySE12WithPanning(SE_W172, gAnimCustomPanning);
+ PlaySE12WithPanning(SE_M_FLAME_WHEEL, gAnimCustomPanning);
}
}
else
diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c
index b8de6b0e1..632954351 100644
--- a/src/battle_anim_ghost.c
+++ b/src/battle_anim_ghost.c
@@ -252,7 +252,7 @@ static void AnimConfuseRayBallBounce_Step1(struct Sprite *sprite)
return;
if (r0 <= 0)
return;
- PlaySE12WithPanning(SE_W109, gAnimCustomPanning);
+ PlaySE12WithPanning(SE_M_CONFUSE_RAY, gAnimCustomPanning);
}
static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite)
@@ -271,7 +271,7 @@ static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite)
if (r2 == 0 || r2 > 196)
{
if (r0 > 0)
- PlaySE(SE_W109);
+ PlaySE(SE_M_CONFUSE_RAY);
}
if (sprite->data[6] == 0)
diff --git a/src/battle_anim_psychic.c b/src/battle_anim_psychic.c
index 25340f9c6..3f451998c 100644
--- a/src/battle_anim_psychic.c
+++ b/src/battle_anim_psychic.c
@@ -1137,7 +1137,7 @@ static void AnimPsychoBoost(struct Sprite *sprite)
case 1:
if (sprite->affineAnimEnded)
{
- PlaySE12WithPanning(SE_W100, BattleAnimAdjustPanning(-64));
+ PlaySE12WithPanning(SE_M_TELEPORT, BattleAnimAdjustPanning(-64));
ChangeSpriteAffineAnim(sprite, 1);
sprite->data[0]++;
}
diff --git a/src/battle_anim_rock.c b/src/battle_anim_rock.c
index 436ac60a3..29ba49346 100644
--- a/src/battle_anim_rock.c
+++ b/src/battle_anim_rock.c
@@ -631,7 +631,7 @@ static void AnimTask_Rollout_Step(u8 taskId)
task->data[0]++;
}
- PlaySE12WithPanning(SE_W029, task->data[13]);
+ PlaySE12WithPanning(SE_M_HEADBUTT, task->data[13]);
break;
case 1:
if (--task->data[11] == 0)
@@ -661,7 +661,7 @@ static void AnimTask_Rollout_Step(u8 taskId)
task->data[9] = 0;
sub_8111214(task);
task->data[13] += task->data[14];
- PlaySE12WithPanning(SE_W091, task->data[13]);
+ PlaySE12WithPanning(SE_M_DIG, task->data[13]);
}
if (--task->data[8] == 0)
diff --git a/src/battle_anim_special.c b/src/battle_anim_throw.c
index bf0d1d438..7049931d3 100755
--- a/src/battle_anim_special.c
+++ b/src/battle_anim_throw.c
@@ -22,51 +22,73 @@
#include "constants/rgb.h"
// iwram
-int gUnknown_030062DC;
-u16 gUnknown_030062E0;
-u16 gUnknown_030062E4;
+u32 gMonShrinkDuration;
+u16 gMonShrinkDelta;
+u16 gMonShrinkDistance;
+
+enum {
+ BALL_ROLL_1,
+ BALL_PIVOT_1,
+ BALL_ROLL_2,
+ BALL_PIVOT_2,
+ BALL_ROLL_3,
+ BALL_NEXT_MOVE,
+ BALL_WAIT_NEXT_SHAKE
+};
+
+enum {
+ MON_SHRINK,
+ MON_SHRINK_STEP,
+ MON_SHRINK_INVISIBLE,
+ MON_SHRINK_FREE
+};
+
+enum {
+ SHINY_STAR_ENCIRCLE,
+ SHINY_STAR_DIAGONAL,
+};
static void sub_8170660(u8);
static void sub_8170A38(u8);
-static void sub_8170EF0(u8);
-static void sub_8171104(struct Sprite *);
-static void sub_8171030(u8);
-static void sub_81710A8(u8);
-static void sub_8171134(struct Sprite *);
-static void sub_8171CAC(struct Sprite *);
-static void sub_81711E8(struct Sprite *);
-static void sub_8171240(struct Sprite *);
-static void sub_817138C(struct Sprite *);
-static void sub_81713D0(struct Sprite *);
-static void sub_81717B4(struct Sprite *);
-static void sub_81714D4(struct Sprite *);
-static void sub_8171520(struct Sprite *);
-static void sub_81717D8(struct Sprite *);
-static void sub_8171AE4(struct Sprite *);
-static void sub_81717F8(struct Sprite *);
-static void sub_81719EC(struct Sprite *);
-static void sub_81718D8(struct Sprite *);
-static void sub_81719C0(struct Sprite *);
-static void sub_8171D60(u8);
-static void sub_8171AAC(struct Sprite *);
-static void sub_8171BAC(struct Sprite *);
-static void sub_8171CE8(struct Sprite *);
+static void AnimTask_ThrowBall_Step(u8);
+static void SpriteCB_Ball_Throw(struct Sprite *);
+static void AnimTask_ThrowBall_StandingTrainer_Step(u8);
+static void Task_PlayerThrow_Wait(u8);
+static void SpriteCB_Ball_Arc(struct Sprite *);
+static void SpriteCB_Ball_Block(struct Sprite *);
+static void SpriteCB_Ball_MonShrink(struct Sprite *);
+static void SpriteCB_Ball_MonShrink_Step(struct Sprite *);
+static void SpriteCB_Ball_Bounce(struct Sprite *);
+static void SpriteCB_Ball_Bounce_Step(struct Sprite *);
+static void SpriteCB_Ball_Release(struct Sprite *);
+static void SpriteCB_Ball_Wobble(struct Sprite *);
+static void SpriteCB_Ball_Wobble_Step(struct Sprite *);
+static void SpriteCB_Ball_Capture(struct Sprite *);
+static void SpriteCB_Ball_Release_Step(struct Sprite *);
+static void SpriteCB_Ball_Capture_Step(struct Sprite *);
+static void MakeCaptureStars(struct Sprite *);
+static void SpriteCB_Ball_FadeOut(struct Sprite *);
+static void DestroySpriteAfterOneFrame(struct Sprite *);
+static void LoadBallParticleGfx(u8);
+static void SpriteCB_CaptureStar_Flicker(struct Sprite *);
+static void SpriteCB_Ball_Release_Wait(struct Sprite *);
+static void SpriteCB_Ball_Block_Step(struct Sprite *);
static void PokeBallOpenParticleAnimation_Step1(struct Sprite *);
static void PokeBallOpenParticleAnimation_Step2(struct Sprite *);
static void DestroyBallOpenAnimationParticle(struct Sprite *);
static void FanOutBallOpenParticles_Step1(struct Sprite *);
static void RepeatBallOpenParticleAnimation_Step1(struct Sprite *);
static void PremierBallOpenParticleAnimation_Step1(struct Sprite *);
-static void sub_8172AB0(u8);
-static void sub_8172B40(u8);
-static void sub_8172B90(u8);
-static void sub_8172FEC(u8);
-static void sub_81731FC(struct Sprite *);
-static void sub_8173250(struct Sprite *);
-static void sub_81731B0(u8);
-static void sub_817339C(struct Sprite *);
-static void sub_81733D4(struct Sprite *);
-static void sub_8173400(struct Sprite *);
+static void Task_FadeMon_ToBallColor(u8);
+static void Task_FadeMon_ToNormal(u8);
+static void Task_FadeMon_ToNormal_Step(u8);
+static void Task_ShinyStars(u8);
+static void SpriteCB_ShinyStars_Encircle(struct Sprite *);
+static void SpriteCB_ShinyStars_Diagonal(struct Sprite *);
+static void Task_ShinyStars_Wait(u8);
+static void SpriteCB_PokeBlock_LiftArm(struct Sprite *);
+static void SpriteCB_PokeBlock_Arc(struct Sprite *);
+static void SpriteCB_ThrowPokeBlock_Free(struct Sprite *);
static void PokeBallOpenParticleAnimation(u8);
static void GreatBallOpenParticleAnimation(u8);
static void SafariBallOpenParticleAnimation(u8);
@@ -76,31 +98,31 @@ static void DiveBallOpenParticleAnimation(u8);
static void RepeatBallOpenParticleAnimation(u8);
static void TimerBallOpenParticleAnimation(u8);
static void PremierBallOpenParticleAnimation(u8);
-static void sub_817330C(struct Sprite *);
+static void SpriteCB_PokeBlock_Throw(struct Sprite *);
-struct BallCaptureSuccessStarData
+struct CaptureStar
{
s8 xOffset;
s8 yOffset;
- s8 unk2;
+ s8 amplitude;
};
-static const struct BallCaptureSuccessStarData sBallCaptureSuccessStarData[] =
+static const struct CaptureStar sCaptureStars[] =
{
{
.xOffset = 10,
.yOffset = 2,
- .unk2 = -3,
+ .amplitude = -3,
},
{
.xOffset = 15,
.yOffset = 0,
- .unk2 = -4,
+ .amplitude = -4,
},
{
.xOffset = -10,
.yOffset = 2,
- .unk2 = -4,
+ .amplitude = -4,
},
};
@@ -379,7 +401,7 @@ const struct SpriteTemplate gPokeblockSpriteTemplate =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_817330C,
+ .callback = SpriteCB_PokeBlock_Throw,
};
const union AnimCmd gUnknown_085E5350[] =
@@ -400,7 +422,7 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_085E535C =
.anims = gUnknown_085E5358,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_817330C,
+ .callback = SpriteCB_PokeBlock_Throw,
};
extern const struct SpriteTemplate gWishStarSpriteTemplate;
@@ -578,7 +600,7 @@ void AnimTask_FlashHealthboxOnLevelUp(u8 taskId)
static void sub_8170A38(u8 taskId)
{
u8 paletteNum;
- int paletteOffset, colorOffset;
+ u32 paletteOffset, colorOffset;
gTasks[taskId].data[0]++;
if (gTasks[taskId].data[0]++ >= gTasks[taskId].data[11])
@@ -658,13 +680,13 @@ void AnimTask_SwitchOutBallEffect(u8 taskId)
switch (gTasks[taskId].data[0])
{
case 0:
- x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
- y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1);
+ x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X);
+ y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y);
priority = gSprites[spriteId].oam.priority;
subpriority = gSprites[spriteId].subpriority;
gTasks[taskId].data[10] = AnimateBallOpenParticles(x, y + 32, priority, subpriority, ballId);
selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0);
- gTasks[taskId].data[11] = LaunchBallFadeMonTask(0, gBattleAnimAttacker, selectedPalettes, ballId);
+ gTasks[taskId].data[11] = LaunchBallFadeMonTask(FALSE, gBattleAnimAttacker, selectedPalettes, ballId);
gTasks[taskId].data[0]++;
break;
case 1:
@@ -730,6 +752,12 @@ u8 ItemIdToBallId(u16 ballItem)
}
}
+#define tSpriteId data[0]
+
+#define sDuration data[0]
+#define sTargetX data[1]
+#define sTargetY data[2]
+
void AnimTask_ThrowBall(u8 taskId)
{
u8 ballId;
@@ -737,26 +765,26 @@ void AnimTask_ThrowBall(u8 taskId)
ballId = ItemIdToBallId(gLastUsedItem);
spriteId = CreateSprite(&gBallSpriteTemplates[ballId], 32, 80, 29);
- gSprites[spriteId].data[0] = 34;
- gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
- gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) - 16;
- gSprites[spriteId].callback = sub_8171104;
- gBattleSpritesDataPtr->animationData->field_9_x2 = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible;
- gTasks[taskId].data[0] = spriteId;
- gTasks[taskId].func = sub_8170EF0;
+ gSprites[spriteId].sDuration = 34;
+ gSprites[spriteId].sTargetX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
+ gSprites[spriteId].sTargetY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) - 16;
+ gSprites[spriteId].callback = SpriteCB_Ball_Throw;
+ gBattleSpritesDataPtr->animationData->wildMonInvisible = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible;
+ gTasks[taskId].tSpriteId = spriteId;
+ gTasks[taskId].func = AnimTask_ThrowBall_Step;
}
-static void sub_8170EF0(u8 taskId)
+static void AnimTask_ThrowBall_Step(u8 taskId)
{
- u8 spriteId = gTasks[taskId].data[0];
- if ((u16)gSprites[spriteId].data[0] == 0xFFFF)
+ u8 spriteId = gTasks[taskId].tSpriteId;
+ if ((u16)gSprites[spriteId].sDuration == 0xFFFF)
DestroyAnimVisualTask(taskId);
}
-// Safari Ball / Wally's ball throw
-void AnimTask_ThrowBallSpecial(u8 taskId)
+// Safari Zone throw / Wally's throw
+void AnimTask_ThrowBall_StandingTrainer(u8 taskId)
{
- int x, y;
+ s16 x, y;
u8 ballId;
u8 subpriority;
u8 spriteId;
@@ -775,27 +803,33 @@ void AnimTask_ThrowBallSpecial(u8 taskId)
ballId = ItemIdToBallId(gLastUsedItem);
subpriority = GetBattlerSpriteSubpriority(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) + 1;
spriteId = CreateSprite(&gBallSpriteTemplates[ballId], x + 32, y | 80, subpriority);
- gSprites[spriteId].data[0] = 34;
- gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
- gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) - 16;
+ gSprites[spriteId].sDuration = 34;
+ gSprites[spriteId].sTargetX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
+ gSprites[spriteId].sTargetY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) - 16;
gSprites[spriteId].callback = SpriteCallbackDummy;
gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].callback = sub_8039E84;
- gTasks[taskId].data[0] = spriteId;
- gTasks[taskId].func = sub_8171030;
+ gTasks[taskId].tSpriteId = spriteId;
+ gTasks[taskId].func = AnimTask_ThrowBall_StandingTrainer_Step;
}
-static void sub_8171030(u8 taskId)
+static void AnimTask_ThrowBall_StandingTrainer_Step(u8 taskId)
{
if (gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].animCmdIndex == 1)
{
- PlaySE12WithPanning(SE_NAGERU, 0);
- gSprites[gTasks[taskId].data[0]].callback = sub_8171104;
- CreateTask(sub_81710A8, 10);
- gTasks[taskId].func = sub_8170EF0;
+ PlaySE12WithPanning(SE_BALL_THROW, 0);
+ gSprites[gTasks[taskId].tSpriteId].callback = SpriteCB_Ball_Throw;
+ CreateTask(Task_PlayerThrow_Wait, 10);
+ gTasks[taskId].func = AnimTask_ThrowBall_Step;
}
}
-static void sub_81710A8(u8 taskId)
+#undef sDuration
+#undef sTargetX
+#undef sTargetY
+
+#undef tSpriteId
+
+static void Task_PlayerThrow_Wait(u8 taskId)
{
if (gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].animEnded)
{
@@ -804,29 +838,50 @@ static void sub_81710A8(u8 taskId)
}
}
-static void sub_8171104(struct Sprite *sprite)
+#define sTargetXArg data[1]
+#define sTargetYArg data[2]
+
+#define sOffsetX data[1] // re-use
+#define sTargetX data[2] // re-use
+#define sOffsetY data[3]
+#define sTargetY data[4]
+#define sAmplitude data[5]
+
+static void SpriteCB_Ball_Throw(struct Sprite *sprite)
{
- u16 temp = sprite->data[1];
- u16 temp2 = sprite->data[2];
- sprite->data[1] = sprite->pos1.x;
- sprite->data[2] = temp;
- sprite->data[3] = sprite->pos1.y;
- sprite->data[4] = temp2;
- sprite->data[5] = -40;
+ u16 targetX = sprite->sTargetXArg;
+ u16 targetY = sprite->sTargetYArg;
+
+ sprite->sOffsetX = sprite->pos1.x;
+ sprite->sTargetX = targetX;
+ sprite->sOffsetY = sprite->pos1.y;
+ sprite->sTargetY = targetY;
+ sprite->sAmplitude = -40;
InitAnimArcTranslation(sprite);
- sprite->callback = sub_8171134;
+ sprite->callback = SpriteCB_Ball_Arc;
}
-static void sub_8171134(struct Sprite *sprite)
+#undef sTargetXArg
+#undef sTargetYArg
+#undef sOffsetX
+#undef sTargetX
+#undef sOffsetY
+#undef sTargetY
+#undef sAmplitude
+
+#define sTimer data[5]
+#define sTaskId data[5] // re-use
+
+static void SpriteCB_Ball_Arc(struct Sprite *sprite)
{
- int i;
+ s32 i;
u8 ballId;
if (TranslateAnimHorizontalArc(sprite))
{
if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_TRAINER_BLOCK)
{
- sprite->callback = sub_8171CAC;
+ sprite->callback = SpriteCB_Ball_Block;
}
else
{
@@ -839,374 +894,451 @@ static void sub_8171134(struct Sprite *sprite)
for (i = 0; i < 8; i++)
sprite->data[i] = 0;
- sprite->data[5] = 0;
- sprite->callback = sub_81711E8;
+ sprite->sTimer = 0;
+ sprite->callback = SpriteCB_Ball_MonShrink;
ballId = ItemIdToBallId(gLastUsedItem);
switch (ballId)
{
case 0 ... POKEBALL_COUNT - 1:
AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
- LaunchBallFadeMonTask(0, gBattleAnimTarget, 14, ballId);
+ LaunchBallFadeMonTask(FALSE, gBattleAnimTarget, 14, ballId);
break;
}
}
}
}
-static void sub_81711E8(struct Sprite *sprite)
+static void SpriteCB_Ball_MonShrink(struct Sprite *sprite)
{
- if (++sprite->data[5] == 10)
+ if (++sprite->sTimer == 10)
{
- sprite->data[5] = CreateTask(TaskDummy, 50);
- sprite->callback = sub_8171240;
+ sprite->sTaskId = CreateTask(TaskDummy, 50);
+ sprite->callback = SpriteCB_Ball_MonShrink_Step;
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] = 0;
}
}
-static void sub_8171240(struct Sprite *sprite)
+#undef sTimer
+#undef sTaskId
+
+#define tState data[0]
+#define sTimer data[1]
+#define sTaskId data[5]
+
+static void SpriteCB_Ball_MonShrink_Step(struct Sprite *sprite)
{
u8 spriteId;
u8 taskId;
spriteId = gBattlerSpriteIds[gBattleAnimTarget];
- taskId = sprite->data[5];
+ taskId = sprite->sTaskId;
- if (++gTasks[taskId].data[1] == 11)
- PlaySE(SE_SUIKOMU);
+ if (++gTasks[taskId].sTimer == 11)
+ PlaySE(SE_BALL_TRADE);
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
- case 0:
+ case MON_SHRINK:
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
gTasks[taskId].data[10] = 256;
- gUnknown_030062DC = 28;
- gUnknown_030062E4 = (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) - (sprite->pos1.y + sprite->pos2.y);
- gUnknown_030062E0 = (u32)(gUnknown_030062E4 * 256) / 28;
- gTasks[taskId].data[2] = gUnknown_030062E0;
- gTasks[taskId].data[0]++;
+ gMonShrinkDuration = 28;
+ gMonShrinkDistance = (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) - (sprite->pos1.y + sprite->pos2.y);
+ gMonShrinkDelta = (u32)(gMonShrinkDistance * 256) / gMonShrinkDuration;
+ gTasks[taskId].data[2] = gMonShrinkDelta;
+ gTasks[taskId].tState++; // MON_SHRINK_STEP
break;
- case 1:
- gTasks[taskId].data[10] += 0x20;
+ case MON_SHRINK_STEP:
+ gTasks[taskId].data[10] += 32;
SetSpriteRotScale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[10], 0);
gTasks[taskId].data[3] += gTasks[taskId].data[2];
gSprites[spriteId].pos2.y = -gTasks[taskId].data[3] >> 8;
- if (gTasks[taskId].data[10] >= 0x480)
- gTasks[taskId].data[0]++;
+ if (gTasks[taskId].data[10] >= 1152)
+ gTasks[taskId].tState++; // MON_SHRINK_INVISIBLE
break;
- case 2:
+ case MON_SHRINK_INVISIBLE:
ResetSpriteRotScale(spriteId);
gSprites[spriteId].invisible = TRUE;
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++; // MON_SHRINK_FREE
break;
+ case MON_SHRINK_FREE:
default:
if (gTasks[taskId].data[1] > 10)
{
DestroyTask(taskId);
StartSpriteAnim(sprite, 2);
sprite->data[5] = 0;
- sprite->callback = sub_817138C;
+ sprite->callback = SpriteCB_Ball_Bounce;
}
break;
}
}
-static void sub_817138C(struct Sprite *sprite)
+#undef sTimer
+#undef tState
+#undef sTaskId
+
+#define sState data[3]
+#define sAmplitude data[4]
+#define sPhase data[5]
+
+static void SpriteCB_Ball_Bounce(struct Sprite *sprite)
{
- int angle;
+ s16 phase;
if (sprite->animEnded)
{
- sprite->data[3] = 0;
- sprite->data[4] = 40;
- sprite->data[5] = 0;
- angle = 0;
- sprite->pos1.y += Cos(angle, 40);
- sprite->pos2.y = -Cos(angle, sprite->data[4]);
- sprite->callback = sub_81713D0;
+ sprite->sState = 0;
+ sprite->sAmplitude = 40;
+ sprite->sPhase = 0;
+ phase = 0;
+ sprite->pos1.y += Cos(phase, 40);
+ sprite->pos2.y = -Cos(phase, sprite->sAmplitude);
+ sprite->callback = SpriteCB_Ball_Bounce_Step;
}
}
-static void sub_81713D0(struct Sprite *sprite)
+#undef sState
+#undef sAmplitude
+#undef sPhase
+
+#define DIRECTION(state) (state & 0xFF)
+#define PHASE_DELTA(state) (state >> 8)
+#define BOUNCES(state) (state >> 8)
+#define FALL(state) (state &= -0x100)
+#define RISE_FASTER(state) (state += 257)
+
+#define BALL_FALLING 0
+#define BALL_RISING 1
+
+#define sState data[3]
+#define sAmplitude data[4]
+#define sPhase data[5]
+#define sTimer data[5] // re-use
+
+// Animates the Poké Ball dropping to ground and bouncing.
+static void SpriteCB_Ball_Bounce_Step(struct Sprite *sprite)
{
bool8 lastBounce;
- int bounceCount;
+ s16 bounceCount;
- lastBounce = 0;
+ lastBounce = FALSE;
- switch (sprite->data[3] & 0xFF)
+ switch (DIRECTION(sprite->sState))
{
- case 0:
- sprite->pos2.y = -Cos(sprite->data[5], sprite->data[4]);
- sprite->data[5] += (sprite->data[3] >> 8) + 4;
- if (sprite->data[5] >= 64)
+ case BALL_FALLING:
+ sprite->pos2.y = -Cos(sprite->sPhase, sprite->sAmplitude);
+ sprite->sPhase += PHASE_DELTA(sprite->sState) + 4;
+ // Once the ball touches the ground
+ if (sprite->sPhase >= 64)
{
- sprite->data[4] -= 10;
- sprite->data[3] += 257;
+ sprite->sAmplitude -= 10;
+ RISE_FASTER(sprite->sState);
- bounceCount = sprite->data[3] >> 8;
+ bounceCount = BOUNCES(sprite->sState);
if (bounceCount == 4)
- lastBounce = 1;
+ lastBounce = TRUE;
- // Play a different sound effect for each pokeball bounce.
switch (bounceCount)
{
case 1:
- PlaySE(SE_KON);
+ PlaySE(SE_BALL_BOUNCE_1);
break;
case 2:
- PlaySE(SE_KON2);
+ PlaySE(SE_BALL_BOUNCE_2);
break;
case 3:
- PlaySE(SE_KON3);
+ PlaySE(SE_BALL_BOUNCE_3);
break;
default:
- PlaySE(SE_KON4);
+ PlaySE(SE_BALL_BOUNCE_4);
break;
}
}
break;
- case 1:
- sprite->pos2.y = -Cos(sprite->data[5], sprite->data[4]);
- sprite->data[5] -= (sprite->data[3] >> 8) + 4;
- if (sprite->data[5] <= 0)
+ case BALL_RISING:
+ sprite->pos2.y = -Cos(sprite->sPhase, sprite->sAmplitude);
+ sprite->sPhase -= PHASE_DELTA(sprite->sState) + 4;
+ // Once ball reaches max height
+ if (sprite->sPhase <= 0)
{
- sprite->data[5] = 0;
- sprite->data[3] &= -0x100;
+ // Set to BALL_FALLING
+ sprite->sPhase = 0;
+ FALL(sprite->sState);
}
break;
}
if (lastBounce)
{
- sprite->data[3] = 0;
+ sprite->sState = 0;
sprite->pos1.y += Cos(64, 40);
sprite->pos2.y = 0;
if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_NO_SHAKES)
{
- sprite->data[5] = 0;
- sprite->callback = sub_81717B4;
+ sprite->sTimer = 0;
+ sprite->callback = SpriteCB_Ball_Release;
}
else
{
- sprite->callback = sub_81714D4;
+ sprite->callback = SpriteCB_Ball_Wobble;
sprite->data[4] = 1;
sprite->data[5] = 0;
}
}
}
-static void sub_81714D4(struct Sprite *sprite)
+#undef sState
+#undef sAmplitude
+#undef sPhase
+#undef sTimer
+
+#undef DIRECTION
+#undef PHASE_DELTA
+#undef BOUNCES
+#undef FALL
+#undef RISE_FASTER
+
+#define sTimer data[3]
+#define sState data[3] // re-use
+
+static void SpriteCB_Ball_Wobble(struct Sprite *sprite)
{
- if (++sprite->data[3] == 31)
+ if (++sprite->sTimer == 31)
{
- sprite->data[3] = 0;
- sprite->affineAnimPaused = 1;
- StartSpriteAffineAnim(sprite, 1);
- gBattleSpritesDataPtr->animationData->field_C = 0;
- sprite->callback = sub_8171520;
- PlaySE(SE_BOWA);
+ sprite->sState = 0;
+ sprite->affineAnimPaused = TRUE;
+ StartSpriteAffineAnim(sprite, BALL_ROTATE_RIGHT);
+ gBattleSpritesDataPtr->animationData->ballSubpx = 0;
+ sprite->callback = SpriteCB_Ball_Wobble_Step;
+ PlaySE(SE_BALL);
}
}
-static void sub_8171520(struct Sprite *sprite)
+#undef sTimer
+#undef sState
+
+#define sState data[3]
+#define sDirection data[4]
+#define sTimer data[5]
+
+#define STATE(state) (state & 0xFF)
+#define SHAKES(state) (state >> 8)
+#define SHAKE_INC(state) (state += 0x100)
+#define RESET_STATE(state) (state &= -0x100)
+
+static void SpriteCB_Ball_Wobble_Step(struct Sprite *sprite)
{
- s8 state;
- u16 var0;
+ s8 shakes;
+ u16 frame;
- switch (sprite->data[3] & 0xFF)
+ switch (STATE(sprite->sState))
{
- case 0:
- if (gBattleSpritesDataPtr->animationData->field_C > 0xFF)
+ case BALL_ROLL_1:
+ // Rolling effect: every frame in the rotation, the sprite shifts 176/256 of a pixel.
+ if (gBattleSpritesDataPtr->animationData->ballSubpx > 255)
{
- sprite->pos2.x += sprite->data[4];
- gBattleSpritesDataPtr->animationData->field_C &= 0xFF;
+ sprite->pos2.x += sprite->sDirection;
+ gBattleSpritesDataPtr->animationData->ballSubpx &= 0xFF;
}
else
- {
- gBattleSpritesDataPtr->animationData->field_C += 0xB0;
- }
+ gBattleSpritesDataPtr->animationData->ballSubpx += 176;
- sprite->data[5]++;
- sprite->affineAnimPaused = 0;
- var0 = sprite->data[5] + 7;
- if (var0 > 14)
+ sprite->sTimer++;
+ sprite->affineAnimPaused = FALSE;
+ frame = sprite->sTimer + 7;
+ if (frame > 14)
{
- gBattleSpritesDataPtr->animationData->field_C = 0;
- sprite->data[3]++;
- sprite->data[5] = 0;
+ gBattleSpritesDataPtr->animationData->ballSubpx = 0;
+ sprite->sState++; // BALL_PIVOT_1
+ sprite->sTimer = 0;
}
break;
- case 1:
- if (++sprite->data[5] == 1)
+ case BALL_PIVOT_1:
+ if (++sprite->sTimer == 1)
{
- sprite->data[5] = 0;
- sprite->data[4] = -sprite->data[4];
- sprite->data[3]++;
- sprite->affineAnimPaused = 0;
- if (sprite->data[4] < 0)
- ChangeSpriteAffineAnim(sprite, 2);
+ sprite->sTimer = 0;
+ sprite->sDirection = -sprite->sDirection;
+ sprite->sState++; // BALL_ROLL_2
+ sprite->affineAnimPaused = FALSE;
+ if (sprite->sDirection < 0)
+ ChangeSpriteAffineAnim(sprite, BALL_ROTATE_LEFT);
else
- ChangeSpriteAffineAnim(sprite, 1);
+ ChangeSpriteAffineAnim(sprite, BALL_ROTATE_RIGHT);
}
else
- {
- sprite->affineAnimPaused = 1;
- }
+ sprite->affineAnimPaused = TRUE;
break;
- case 2:
- if (gBattleSpritesDataPtr->animationData->field_C > 0xFF)
+ case BALL_ROLL_2:
+ if (gBattleSpritesDataPtr->animationData->ballSubpx > 255)
{
- sprite->pos2.x += sprite->data[4];
- gBattleSpritesDataPtr->animationData->field_C &= 0xFF;
+ sprite->pos2.x += sprite->sDirection;
+ gBattleSpritesDataPtr->animationData->ballSubpx &= 0xFF;
}
else
- {
- gBattleSpritesDataPtr->animationData->field_C += 0xB0;
- }
+ gBattleSpritesDataPtr->animationData->ballSubpx += 176;
- sprite->data[5]++;
- sprite->affineAnimPaused = 0;
- var0 = sprite->data[5] + 12;
- if (var0 > 24)
+ sprite->sTimer++;
+ sprite->affineAnimPaused = FALSE;
+ frame = sprite->sTimer + 12;
+ if (frame > 24)
{
- gBattleSpritesDataPtr->animationData->field_C = 0;
- sprite->data[3]++;
- sprite->data[5] = 0;
+ gBattleSpritesDataPtr->animationData->ballSubpx = 0;
+ sprite->sState++; // BALL_PIVOT_2
+ sprite->sTimer = 0;
}
break;
- case 3:
- if (sprite->data[5]++ < 0)
+ case BALL_PIVOT_2:
+ if (sprite->sTimer++ < 0)
{
- sprite->affineAnimPaused = 1;
+ sprite->affineAnimPaused = TRUE;
break;
}
- sprite->data[5] = 0;
- sprite->data[4] = -sprite->data[4];
- sprite->data[3]++;
- sprite->affineAnimPaused = 0;
- if (sprite->data[4] < 0)
- ChangeSpriteAffineAnim(sprite, 2);
+ sprite->sTimer = 0;
+ sprite->sDirection = -sprite->sDirection;
+ sprite->sState++; // BALL_ROLL_3
+ sprite->affineAnimPaused = FALSE;
+ if (sprite->sDirection < 0)
+ ChangeSpriteAffineAnim(sprite, BALL_ROTATE_LEFT);
else
- ChangeSpriteAffineAnim(sprite, 1);
+ ChangeSpriteAffineAnim(sprite, BALL_ROTATE_RIGHT);
// fall through
- case 4:
- if (gBattleSpritesDataPtr->animationData->field_C > 0xFF)
+ case BALL_ROLL_3:
+ if (gBattleSpritesDataPtr->animationData->ballSubpx > 0xFF)
{
- sprite->pos2.x += sprite->data[4];
- gBattleSpritesDataPtr->animationData->field_C &= 0xFF;
+ sprite->pos2.x += sprite->sDirection;
+ gBattleSpritesDataPtr->animationData->ballSubpx &= 0xFF;
}
else
- {
- gBattleSpritesDataPtr->animationData->field_C += 0xB0;
- }
+ gBattleSpritesDataPtr->animationData->ballSubpx += 176;
- sprite->data[5]++;
- sprite->affineAnimPaused = 0;
- var0 = sprite->data[5] + 4;
- if (var0 > 8)
+ sprite->sTimer++;
+ sprite->affineAnimPaused = FALSE;
+ frame = sprite->sTimer + 4;
+ if (frame > 8)
{
- gBattleSpritesDataPtr->animationData->field_C = 0;
- sprite->data[3]++;
- sprite->data[5] = 0;
- sprite->data[4] = -sprite->data[4];
+ gBattleSpritesDataPtr->animationData->ballSubpx = 0;
+ sprite->sState++; // BALL_NEXT_MOVE
+ sprite->sTimer = 0;
+ sprite->sDirection = -sprite->sDirection;
}
break;
- case 5:
- sprite->data[3] += 0x100;
- state = sprite->data[3] >> 8;
- if (state == gBattleSpritesDataPtr->animationData->ballThrowCaseId)
+ case BALL_NEXT_MOVE:
+ SHAKE_INC(sprite->sState);
+ shakes = SHAKES(sprite->sState);
+ if (shakes == gBattleSpritesDataPtr->animationData->ballThrowCaseId)
{
- sprite->affineAnimPaused = 1;
- sprite->callback = sub_81717B4;
+ sprite->affineAnimPaused = TRUE;
+ sprite->callback = SpriteCB_Ball_Release;
}
else
{
- if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_3_SHAKES_SUCCESS && state == 3)
+ if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_3_SHAKES_SUCCESS && shakes == 3)
{
- sprite->callback = sub_81717D8;
- sprite->affineAnimPaused = 1;
+ sprite->callback = SpriteCB_Ball_Capture;
+ sprite->affineAnimPaused = TRUE;
}
else
{
- sprite->data[3]++;
- sprite->affineAnimPaused = 1;
+ sprite->sState++; // BALL_WAIT_NEXT_SHAKE
+ sprite->affineAnimPaused = TRUE;
}
}
break;
- case 6:
+ case BALL_WAIT_NEXT_SHAKE:
default:
- if (++sprite->data[5] == 31)
+ if (++sprite->sTimer == 31)
{
- sprite->data[5] = 0;
- sprite->data[3] &= -0x100;
+ sprite->sTimer = 0;
+ RESET_STATE(sprite->sState);
StartSpriteAffineAnim(sprite, 3);
- if (sprite->data[4] < 0)
- StartSpriteAffineAnim(sprite, 2);
+ if (sprite->sDirection < 0)
+ StartSpriteAffineAnim(sprite, BALL_ROTATE_LEFT);
else
- StartSpriteAffineAnim(sprite, 1);
+ StartSpriteAffineAnim(sprite, BALL_ROTATE_RIGHT);
- PlaySE(SE_BOWA);
+ PlaySE(SE_BALL);
}
break;
}
}
-static void sub_81717B4(struct Sprite *sprite)
+#undef STATE
+#undef SHAKES
+#undef SHAKE_INC
+#undef RESET_STATE
+
+#undef sState
+
+#define sTimer data[5]
+
+static void SpriteCB_Ball_Release(struct Sprite *sprite)
{
- if (++sprite->data[5] == 31)
+ if (++sprite->sTimer == 31)
{
sprite->data[5] = 0;
- sprite->callback = sub_8171AE4;
+ sprite->callback = SpriteCB_Ball_Release_Step;
}
}
+#undef sTimer
-static void sub_81717D8(struct Sprite *sprite)
+#define sState data[0]
+#define sTimer data[4]
+
+static void SpriteCB_Ball_Capture(struct Sprite *sprite)
{
- sprite->animPaused = 1;
- sprite->callback = sub_81717F8;
+ sprite->animPaused = TRUE;
+ sprite->callback = SpriteCB_Ball_Capture_Step;
sprite->data[3] = 0;
- sprite->data[4] = 0;
+ sprite->sTimer = 0;
sprite->data[5] = 0;
}
-static void sub_81717F8(struct Sprite *sprite)
+// Fade and unfade ball, create star animations, play sound effects
+static void SpriteCB_Ball_Capture_Step(struct Sprite *sprite)
{
u8 *battler = &gBattleAnimTarget;
- sprite->data[4]++;
- if (sprite->data[4] == 40)
+ sprite->sTimer++;
+ if (sprite->sTimer == 40)
{
- PlaySE(SE_RG_GETTING);
+ PlaySE(SE_RG_BALL_CLICK);
BlendPalettes(0x10000 << sprite->oam.paletteNum, 6, RGB(0, 0, 0));
- sub_81719EC(sprite);
+ MakeCaptureStars(sprite);
}
- else if (sprite->data[4] == 60)
+ else if (sprite->sTimer == 60)
{
BeginNormalPaletteFade(0x10000 << sprite->oam.paletteNum, 2, 6, 0, RGB(0, 0, 0));
}
- else if (sprite->data[4] == 95)
+ else if (sprite->sTimer == 95)
{
- gDoingBattleAnim = 0;
+ gDoingBattleAnim = FALSE;
UpdateOamPriorityInAllHealthboxes(1);
m4aMPlayAllStop();
- PlaySE(MUS_RG_FAN6);
+ PlaySE(MUS_RG_CAUGHT_INTRO);
}
- else if (sprite->data[4] == 315)
+ else if (sprite->sTimer == 315)
{
FreeOamMatrix(gSprites[gBattlerSpriteIds[*battler]].oam.matrixNum);
DestroySprite(&gSprites[gBattlerSpriteIds[*battler]]);
- sprite->data[0] = 0;
- sprite->callback = sub_81718D8;
+
+ sprite->sState = 0;
+ sprite->callback = SpriteCB_Ball_FadeOut;
}
}
-static void sub_81718D8(struct Sprite *sprite)
+#undef sTimer
+#undef sState
+
+#define sState data[0]
+#define sFrame data[0] // re-use
+
+static void SpriteCB_Ball_FadeOut(struct Sprite *sprite)
{
u8 paletteIndex;
- switch (sprite->data[0])
+ switch (sprite->sState)
{
case 0:
sprite->data[1] = 0;
@@ -1216,7 +1348,7 @@ static void sub_81718D8(struct Sprite *sprite)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0));
paletteIndex = IndexOfSpritePaletteTag(sprite->template->paletteTag);
BeginNormalPaletteFade(1 << (paletteIndex + 0x10), 0, 0, 16, RGB(31, 31, 31));
- sprite->data[0]++;
+ sprite->sState++;
break;
case 1:
if (sprite->data[1]++ > 0)
@@ -1225,103 +1357,124 @@ static void sub_81718D8(struct Sprite *sprite)
sprite->data[2]++;
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16 - sprite->data[2], sprite->data[2]));
if (sprite->data[2] == 16)
- sprite->data[0]++;
+ sprite->sState++;
}
break;
case 2:
sprite->invisible = TRUE;
- sprite->data[0]++;
+ sprite->sState++;
break;
default:
if (!gPaletteFade.active)
{
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
- sprite->data[0] = 0;
- sprite->callback = sub_81719C0;
+
+ sprite->sFrame = 0;
+ sprite->callback = DestroySpriteAfterOneFrame;
}
break;
}
}
-static void sub_81719C0(struct Sprite *sprite)
+#undef sState
+#undef sFrame
+
+#define sFrame data[0]
+
+static void DestroySpriteAfterOneFrame(struct Sprite *sprite)
{
- if (sprite->data[0] == 0)
- {
- sprite->data[0] = -1;
- }
+ if (sprite->sFrame == 0)
+ sprite->sFrame = -1;
else
{
FreeSpriteOamMatrix(sprite);
DestroySprite(sprite);
}
}
+#undef sFrame
+
+#define sDuration data[0]
+#define sTargetX data[2]
+#define sTargetY data[4]
+#define sAmplitude data[5]
-static void sub_81719EC(struct Sprite *sprite)
+static void MakeCaptureStars(struct Sprite *sprite)
{
u32 i;
u8 subpriority;
if (sprite->subpriority)
- {
subpriority = sprite->subpriority - 1;
- }
else
{
subpriority = 0;
sprite->subpriority = 1;
}
- sub_8171D60(4);
- for (i = 0; i < 3; i++)
+ LoadBallParticleGfx(BALL_MASTER);
+ for (i = 0; i < ARRAY_COUNT(sCaptureStars); i++)
{
u8 spriteId = CreateSprite(&gBallParticlesSpriteTemplates[4], sprite->pos1.x, sprite->pos1.y, subpriority);
if (spriteId != MAX_SPRITES)
{
- gSprites[spriteId].data[0] = 24;
- gSprites[spriteId].data[2] = sprite->pos1.x + sBallCaptureSuccessStarData[i].xOffset;
- gSprites[spriteId].data[4] = sprite->pos1.y + sBallCaptureSuccessStarData[i].yOffset;
- gSprites[spriteId].data[5] = sBallCaptureSuccessStarData[i].unk2;
+ gSprites[spriteId].sDuration = 24;
+ gSprites[spriteId].sTargetX = sprite->pos1.x + sCaptureStars[i].xOffset;
+ gSprites[spriteId].sTargetY = sprite->pos1.y + sCaptureStars[i].yOffset;
+ gSprites[spriteId].sAmplitude = sCaptureStars[i].amplitude;
InitAnimArcTranslation(&gSprites[spriteId]);
- gSprites[spriteId].callback = sub_8171AAC;
- StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[4]);
+ gSprites[spriteId].callback = SpriteCB_CaptureStar_Flicker;
+ StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[BALL_MASTER]);
}
}
}
-static void sub_8171AAC(struct Sprite *sprite)
+#undef sDuration
+#undef sTargetX
+#undef sTargetY
+#undef sAmplitude
+
+static void SpriteCB_CaptureStar_Flicker(struct Sprite *sprite)
{
sprite->invisible = !sprite->invisible;
if (TranslateAnimHorizontalArc(sprite))
DestroySprite(sprite);
}
-static void sub_8171AE4(struct Sprite *sprite)
+#define sFrame data[0]
+#define sOffsetY data[1]
+
+// Poké Ball didn't catch - starts:
+// - Ball particle animations
+// - Wild mon fade to normal color
+// - Wild mon emerge from Poké Ball
+static void SpriteCB_Ball_Release_Step(struct Sprite *sprite)
{
u8 ballId;
StartSpriteAnim(sprite, 1);
StartSpriteAffineAnim(sprite, 0);
- sprite->callback = sub_8171BAC;
+ sprite->callback = SpriteCB_Ball_Release_Wait;
ballId = ItemIdToBallId(gLastUsedItem);
switch (ballId)
{
case 0 ... POKEBALL_COUNT - 1:
AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
- LaunchBallFadeMonTask(1, gBattleAnimTarget, 14, ballId);
+ LaunchBallFadeMonTask(TRUE, gBattleAnimTarget, 14, ballId);
break;
}
+ // Animate Pokémon emerging from Poké Ball
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = FALSE;
StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], 1);
AnimateSprite(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]]);
- gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] = 0x1000;
+ gSprites[gBattlerSpriteIds[gBattleAnimTarget]].sOffsetY = 4096;
}
-static void sub_8171BAC(struct Sprite *sprite)
+static void SpriteCB_Ball_Release_Wait(struct Sprite *sprite)
{
- int next = FALSE;
+ bool8 released = FALSE;
if (sprite->animEnded)
sprite->invisible = TRUE;
@@ -1329,28 +1482,31 @@ static void sub_8171BAC(struct Sprite *sprite)
if (gSprites[gBattlerSpriteIds[gBattleAnimTarget]].affineAnimEnded)
{
StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], 0);
- next = TRUE;
+ released = TRUE;
}
else
{
- gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] -= 288;
- gSprites[gBattlerSpriteIds[gBattleAnimTarget]].pos2.y = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] >> 8;
+ gSprites[gBattlerSpriteIds[gBattleAnimTarget]].sOffsetY -= 288;
+ gSprites[gBattlerSpriteIds[gBattleAnimTarget]].pos2.y = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].sOffsetY >> 8;
}
- if (sprite->animEnded && next)
+ if (sprite->animEnded && released)
{
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].pos2.y = 0;
- gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = gBattleSpritesDataPtr->animationData->field_9_x2;
- sprite->data[0] = 0;
- sprite->callback = sub_81719C0;
+ gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = gBattleSpritesDataPtr->animationData->wildMonInvisible;
+ sprite->sFrame = 0;
+ sprite->callback = DestroySpriteAfterOneFrame;
gDoingBattleAnim = 0;
UpdateOamPriorityInAllHealthboxes(1);
}
}
-static void sub_8171CAC(struct Sprite *sprite)
+#undef sFrame
+#undef sOffsetY
+
+static void SpriteCB_Ball_Block(struct Sprite *sprite)
{
- int i;
+ s32 i;
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
@@ -1359,29 +1515,40 @@ static void sub_8171CAC(struct Sprite *sprite)
for (i = 0; i < 6; i++)
sprite->data[i] = 0;
- sprite->callback = sub_8171CE8;
+ sprite->callback = SpriteCB_Ball_Block_Step;
}
-static void sub_8171CE8(struct Sprite *sprite)
+#define sDy data[0]
+#define sDx data[1]
+
+#define sFrame data[0] // re-use
+
+// Poké Ball moves down off screen after being blocked. The x-speed oscillates.
+static void SpriteCB_Ball_Block_Step(struct Sprite *sprite)
{
- s16 var0 = sprite->data[0] + 0x800;
- s16 var1 = sprite->data[1] + 0x680;
- sprite->pos2.x -= var1 >> 8;
- sprite->pos2.y += var0 >> 8;
- sprite->data[0] = (sprite->data[0] + 0x800) & 0xFF;
- sprite->data[1] = (sprite->data[1] + 0x680) & 0xFF;
+ s16 dy = sprite->sDy + 0x800;
+ s16 dx = sprite->sDx + 0x680;
+ sprite->pos2.x -= dx >> 8;
+ sprite->pos2.y += dy >> 8;
+ sprite->sDy = (sprite->sDy + 0x800) & 0xFF;
+ sprite->sDx = (sprite->sDx + 0x680) & 0xFF;
if (sprite->pos1.y + sprite->pos2.y > 160
|| sprite->pos1.x + sprite->pos2.x < -8)
{
- sprite->data[0] = 0;
- sprite->callback = sub_81719C0;
+ sprite->sFrame = 0;
+ sprite->callback = DestroySpriteAfterOneFrame;
gDoingBattleAnim = 0;
UpdateOamPriorityInAllHealthboxes(1);
}
}
-static void sub_8171D60(u8 ballId)
+#undef sDy
+#undef sDx
+
+#undef sFrame
+
+static void LoadBallParticleGfx(u8 ballId)
{
u8 taskId;
@@ -1396,22 +1563,22 @@ u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId)
{
u8 taskId;
- sub_8171D60(ballId);
+ LoadBallParticleGfx(ballId);
taskId = CreateTask(gBallParticleAnimationFuncs[ballId], 5);
gTasks[taskId].data[1] = x;
gTasks[taskId].data[2] = y;
gTasks[taskId].data[3] = priority;
gTasks[taskId].data[4] = subpriority;
gTasks[taskId].data[15] = ballId;
- PlaySE(SE_BOWA2);
+ PlaySE(SE_BALL_OPEN);
return taskId;
}
-void sub_8171E20(void)
+static void IncrBallParticleCount(void)
{
if (gMain.inBattle)
- gBattleSpritesDataPtr->animationData->field_A++;
+ gBattleSpritesDataPtr->animationData->numBallParticles++;
}
static void PokeBallOpenParticleAnimation(u8 taskId)
@@ -1433,7 +1600,7 @@ static void PokeBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_8171E20();
+ IncrBallParticleCount();
StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = PokeBallOpenParticleAnimation_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1492,7 +1659,7 @@ static void TimerBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_8171E20();
+ IncrBallParticleCount();
StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1526,7 +1693,7 @@ static void DiveBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_8171E20();
+ IncrBallParticleCount();
StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1561,7 +1728,7 @@ static void SafariBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_8171E20();
+ IncrBallParticleCount();
StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1596,7 +1763,7 @@ static void UltraBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_8171E20();
+ IncrBallParticleCount();
StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1637,7 +1804,7 @@ static void GreatBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_8171E20();
+ IncrBallParticleCount();
StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1687,7 +1854,7 @@ static void RepeatBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_8171E20();
+ IncrBallParticleCount();
StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = RepeatBallOpenParticleAnimation_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1731,7 +1898,7 @@ static void MasterBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_8171E20();
+ IncrBallParticleCount();
StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1775,7 +1942,7 @@ static void PremierBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_8171E20();
+ IncrBallParticleCount();
StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = PremierBallOpenParticleAnimation_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1802,7 +1969,7 @@ static void PremierBallOpenParticleAnimation_Step1(struct Sprite *sprite)
static void DestroyBallOpenAnimationParticle(struct Sprite *sprite)
{
- int i, j;
+ s32 i, j;
if (!gMain.inBattle)
{
@@ -1813,8 +1980,8 @@ static void DestroyBallOpenAnimationParticle(struct Sprite *sprite)
}
else
{
- gBattleSpritesDataPtr->animationData->field_A--;
- if (gBattleSpritesDataPtr->animationData->field_A == 0)
+ gBattleSpritesDataPtr->animationData->numBallParticles--;
+ if (gBattleSpritesDataPtr->animationData->numBallParticles == 0)
{
for (i = 0; i < POKEBALL_COUNT; i++)
{
@@ -1840,70 +2007,78 @@ static void DestroyBallOpenAnimationParticle(struct Sprite *sprite)
}
}
-u8 LaunchBallFadeMonTask(u8 unfadeLater, u8 battler, u32 selectedPalettes, u8 ballId)
+#define tCoeff data[0]
+#define tdCoeff data[1]
+#define tTimer data[2]
+#define tPalOffset data[3]
+#define tPaletteLo data[10]
+#define tPaletteHi data[11]
+#define tBallId data[15]
+
+u8 LaunchBallFadeMonTask(bool8 unfadeLater, u8 battler, u32 selectedPalettes, u8 ballId)
{
u8 taskId;
- taskId = CreateTask(sub_8172AB0, 5);
- gTasks[taskId].data[15] = ballId;
- gTasks[taskId].data[3] = battler;
- gTasks[taskId].data[10] = selectedPalettes;
- gTasks[taskId].data[11] = selectedPalettes >> 16;
+ taskId = CreateTask(Task_FadeMon_ToBallColor, 5);
+ gTasks[taskId].tBallId = ballId;
+ gTasks[taskId].tPalOffset = battler;
+ gTasks[taskId].tPaletteLo = selectedPalettes;
+ gTasks[taskId].tPaletteHi = selectedPalettes >> 16;
if (!unfadeLater)
{
BlendPalette(battler * 16 + 0x100, 16, 0, gBallOpenFadeColors[ballId]);
- gTasks[taskId].data[1] = 1;
+ gTasks[taskId].tdCoeff = 1;
}
else
{
BlendPalette(battler * 16 + 0x100, 16, 16, gBallOpenFadeColors[ballId]);
- gTasks[taskId].data[0] = 16;
- gTasks[taskId].data[1] = -1;
- gTasks[taskId].func = sub_8172B40;
+ gTasks[taskId].tCoeff = 16;
+ gTasks[taskId].tdCoeff = -1;
+ gTasks[taskId].func = Task_FadeMon_ToNormal;
}
BeginNormalPaletteFade(selectedPalettes, 0, 0, 16, RGB(31, 31, 31));
return taskId;
}
-static void sub_8172AB0(u8 taskId)
+static void Task_FadeMon_ToBallColor(u8 taskId)
{
- u8 ballId = gTasks[taskId].data[15];
+ u8 ballId = gTasks[taskId].tBallId;
- if (gTasks[taskId].data[2] <= 16)
+ if (gTasks[taskId].tTimer <= 16)
{
- BlendPalette(gTasks[taskId].data[3] * 16 + 0x100, 16, gTasks[taskId].data[0], gBallOpenFadeColors[ballId]);
- gTasks[taskId].data[0] += gTasks[taskId].data[1];
- gTasks[taskId].data[2]++;
+ BlendPalette(gTasks[taskId].tPalOffset * 16 + 0x100, 16, gTasks[taskId].tCoeff, gBallOpenFadeColors[ballId]);
+ gTasks[taskId].tCoeff += gTasks[taskId].tdCoeff;
+ gTasks[taskId].tTimer++;
}
else if (!gPaletteFade.active)
{
- u32 selectedPalettes = (u16)gTasks[taskId].data[10] | ((u16)gTasks[taskId].data[11] << 16);
- BeginNormalPaletteFade(selectedPalettes, 0, 16, 0, RGB(31, 31, 31));
+ u32 selectedPalettes = (u16)gTasks[taskId].tPaletteLo | ((u16)gTasks[taskId].tPaletteHi << 16);
+ BeginNormalPaletteFade(selectedPalettes, 0, 16, 0, RGB_WHITE);
DestroyTask(taskId);
}
}
-static void sub_8172B40(u8 taskId)
+static void Task_FadeMon_ToNormal(u8 taskId)
{
if (!gPaletteFade.active)
{
- u32 selectedPalettes = (u16)gTasks[taskId].data[10] | ((u16)gTasks[taskId].data[11] << 16);
- BeginNormalPaletteFade(selectedPalettes, 0, 16, 0, RGB(31, 31, 31));
- gTasks[taskId].func = sub_8172B90;
+ u32 selectedPalettes = (u16)gTasks[taskId].tPaletteLo | ((u16)gTasks[taskId].tPaletteHi << 16);
+ BeginNormalPaletteFade(selectedPalettes, 0, 16, 0, RGB_WHITE);
+ gTasks[taskId].func = Task_FadeMon_ToNormal_Step;
}
}
-static void sub_8172B90(u8 taskId)
+static void Task_FadeMon_ToNormal_Step(u8 taskId)
{
- u8 ballId = gTasks[taskId].data[15];
+ u8 ballId = gTasks[taskId].tBallId;
- if (gTasks[taskId].data[2] <= 16)
+ if (gTasks[taskId].tTimer <= 16)
{
- BlendPalette(gTasks[taskId].data[3] * 16 + 0x100, 16, gTasks[taskId].data[0], gBallOpenFadeColors[ballId]);
- gTasks[taskId].data[0] += gTasks[taskId].data[1];
- gTasks[taskId].data[2]++;
+ BlendPalette(gTasks[taskId].tPalOffset * 16 + 0x100, 16, gTasks[taskId].tCoeff, gBallOpenFadeColors[ballId]);
+ gTasks[taskId].tCoeff += gTasks[taskId].tdCoeff;
+ gTasks[taskId].tTimer++;
}
else
{
@@ -1911,6 +2086,14 @@ static void sub_8172B90(u8 taskId)
}
}
+#undef tCoeff
+#undef tdCoeff
+#undef tTimer
+#undef tPalOffset
+#undef tPaletteLo
+#undef tPaletteHi
+#undef tBallId
+
// arg0: TRUE to swap to mon, FALSE to swap to substitute
void AnimTask_SwapMonSpriteToFromSubstitute(u8 taskId)
{
@@ -2016,14 +2199,25 @@ void AnimTask_SetTargetToEffectBattler(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void sub_8172EF0(u8 battler, struct Pokemon *mon)
+#define tBattler data[0]
+#define tStarMove data[1]
+#define tStarTimer data[10]
+#define tStarIdx data[11]
+#define tNumStars data[12]
+#define tTimer data[13]
+
+#define sTaskId data[0]
+#define sPhase data[1] // For encircling stars
+#define sTimer data[1] // For diagnoal stars
+
+void TryShinyAnimation(u8 battler, struct Pokemon *mon)
{
- int isShiny;
+ bool8 isShiny;
u32 otId, personality;
u32 shinyValue;
- u8 taskId1, taskId2;
+ u8 taskCirc, taskDgnl;
- isShiny = 0;
+ isShiny = FALSE;
gBattleSpritesDataPtr->healthBoxesData[battler].flag_x80 = 1;
otId = GetMonData(mon, MON_DATA_OT_ID);
personality = GetMonData(mon, MON_DATA_PERSONALITY);
@@ -2042,12 +2236,12 @@ void sub_8172EF0(u8 battler, struct Pokemon *mon)
LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[ANIM_TAG_GOLD_STARS - ANIM_SPRITES_START]);
}
- taskId1 = CreateTask(sub_8172FEC, 10);
- taskId2 = CreateTask(sub_8172FEC, 10);
- gTasks[taskId1].data[0] = battler;
- gTasks[taskId2].data[0] = battler;
- gTasks[taskId1].data[1] = 0;
- gTasks[taskId2].data[1] = 1;
+ taskCirc = CreateTask(Task_ShinyStars, 10);
+ taskDgnl = CreateTask(Task_ShinyStars, 10);
+ gTasks[taskCirc].tBattler = battler;
+ gTasks[taskDgnl].tBattler = battler;
+ gTasks[taskCirc].tStarMove = SHINY_STAR_ENCIRCLE;
+ gTasks[taskDgnl].tStarMove = SHINY_STAR_DIAGONAL;
return;
}
}
@@ -2055,86 +2249,88 @@ void sub_8172EF0(u8 battler, struct Pokemon *mon)
gBattleSpritesDataPtr->healthBoxesData[battler].field_1_x1 = 1;
}
-static void sub_8172FEC(u8 taskId)
+static void Task_ShinyStars(u8 taskId)
{
u8 battler;
u8 x, y;
u8 spriteId;
- u16 counter;
- s16 state;
+ u16 timer;
+ s16 starIdx;
u8 pan;
- if (gTasks[taskId].data[13] < 60)
+ if (gTasks[taskId].tTimer < 60)
{
- gTasks[taskId].data[13]++;
+ gTasks[taskId].tTimer++;
return;
}
- if (gBattleSpritesDataPtr->animationData->field_A)
+ // Wait until the ball particles have despawned
+ if (gBattleSpritesDataPtr->animationData->numBallParticles)
return;
- counter = gTasks[taskId].data[10]++;
- if (counter & 3)
+ timer = gTasks[taskId].tStarTimer++;
+ if (timer % 4) // Create sprite 1 of every 4 frames
return;
- battler = gTasks[taskId].data[0];
- x = GetBattlerSpriteCoord(battler, 0);
- y = GetBattlerSpriteCoord(battler, 1);
- state = gTasks[taskId].data[11];
- if (state == 0)
+ battler = gTasks[taskId].tBattler;
+ x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X);
+ y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y);
+
+ starIdx = gTasks[taskId].tStarIdx;
+ if (starIdx == 0) // Big star
{
spriteId = CreateSprite(&gWishStarSpriteTemplate, x, y, 5);
}
- else if (state >= 0 && gTasks[taskId].data[11] < 4)
+ else if (starIdx >= 0 && gTasks[taskId].tStarIdx < 4) // Medium star
{
spriteId = CreateSprite(&gMiniTwinklingStarSpriteTemplate, x, y, 5);
gSprites[spriteId].oam.tileNum += 4;
}
- else
+ else // Small star
{
spriteId = CreateSprite(&gMiniTwinklingStarSpriteTemplate, x, y, 5);
gSprites[spriteId].oam.tileNum += 5;
}
- if (gTasks[taskId].data[1] == 0)
+ if (gTasks[taskId].tStarMove == SHINY_STAR_ENCIRCLE)
{
- gSprites[spriteId].callback = sub_81731FC;
+ gSprites[spriteId].callback = SpriteCB_ShinyStars_Encircle;
}
else
{
- gSprites[spriteId].callback = sub_8173250;
+ gSprites[spriteId].callback = SpriteCB_ShinyStars_Diagonal;
gSprites[spriteId].pos2.x = -32;
gSprites[spriteId].pos2.y = 32;
gSprites[spriteId].invisible = TRUE;
- if (gTasks[taskId].data[11] == 0)
+ if (gTasks[taskId].tStarIdx == 0)
{
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
pan = -64;
else
pan = 63;
- PlaySE12WithPanning(SE_REAPOKE, pan);
+ PlaySE12WithPanning(SE_SHINY, pan);
}
}
- gSprites[spriteId].data[0] = taskId;
- gTasks[taskId].data[11]++;
+ gSprites[spriteId].sTaskId = taskId;
+ gTasks[taskId].tStarIdx++;
if (spriteId != MAX_SPRITES)
- gTasks[taskId].data[12]++;
+ gTasks[taskId].tNumStars++;
- if (gTasks[taskId].data[11] == 5)
- gTasks[taskId].func = sub_81731B0;
+ if (gTasks[taskId].tStarIdx == 5)
+ gTasks[taskId].func = Task_ShinyStars_Wait;
}
-static void sub_81731B0(u8 taskId)
+static void Task_ShinyStars_Wait(u8 taskId)
{
u8 battler;
- if (gTasks[taskId].data[12] == 0)
+ if (gTasks[taskId].tNumStars == 0)
{
- if (gTasks[taskId].data[1] == 1)
+ if (gTasks[taskId].tStarMove == SHINY_STAR_DIAGONAL)
{
- battler = gTasks[taskId].data[0];
+ battler = gTasks[taskId].tBattler;
gBattleSpritesDataPtr->healthBoxesData[battler].field_1_x1 = 1;
}
@@ -2142,25 +2338,24 @@ static void sub_81731B0(u8 taskId)
}
}
-static void sub_81731FC(struct Sprite *sprite)
+static void SpriteCB_ShinyStars_Encircle(struct Sprite *sprite)
{
- sprite->pos2.x = Sin(sprite->data[1], 24);
- sprite->pos2.y = Cos(sprite->data[1], 24);
- sprite->data[1] += 12;
- if (sprite->data[1] > 0xFF)
+ sprite->pos2.x = Sin(sprite->sPhase, 24);
+ sprite->pos2.y = Cos(sprite->sPhase, 24);
+ sprite->sPhase += 12;
+ if (sprite->sPhase > 255)
{
- gTasks[sprite->data[0]].data[12]--;
+ gTasks[sprite->sTaskId].tNumStars--;
FreeSpriteOamMatrix(sprite);
DestroySprite(sprite);
}
}
-static void sub_8173250(struct Sprite *sprite)
+static void SpriteCB_ShinyStars_Diagonal(struct Sprite *sprite)
{
- if (sprite->data[1] < 4)
- {
- sprite->data[1]++;
- }
+ // Delayed four frames to de-sync from encircling stars
+ if (sprite->sTimer < 4)
+ sprite->sTimer++;
else
{
sprite->invisible = FALSE;
@@ -2168,13 +2363,24 @@ static void sub_8173250(struct Sprite *sprite)
sprite->pos2.y -= 5;
if (sprite->pos2.x > 32)
{
- gTasks[sprite->data[0]].data[12]--;
+ gTasks[sprite->sTaskId].tNumStars--;
FreeSpriteOamMatrix(sprite);
DestroySprite(sprite);
}
}
}
+#undef tBattler
+#undef tStarMove
+#undef tStarTimer
+#undef tStarIdx
+#undef tNumStars
+#undef tTimer
+
+#undef sTaskId
+#undef sPhase
+#undef sTimer
+
void AnimTask_LoadPokeblockGfx(u8 taskId)
{
u8 paletteIndex;
@@ -2192,35 +2398,46 @@ void AnimTask_FreePokeblockGfx(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-static void sub_817330C(struct Sprite *sprite)
+#define sDuration data[0]
+#define sTargetX data[2]
+#define sTargetY data[4]
+#define sAmplitude data[5]
+
+static void SpriteCB_PokeBlock_Throw(struct Sprite *sprite)
{
InitSpritePosToAnimAttacker(sprite, 0);
- sprite->data[0] = 30;
- sprite->data[2] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), 0) + gBattleAnimArgs[2];
- sprite->data[4] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), 1) + gBattleAnimArgs[3];
- sprite->data[5] = -32;
+ sprite->sDuration = 30;
+ sprite->sTargetX = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), BATTLER_COORD_X) + gBattleAnimArgs[2];
+ sprite->sTargetY = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), BATTLER_COORD_Y) + gBattleAnimArgs[3];
+ sprite->sAmplitude = -32;
InitAnimArcTranslation(sprite);
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].callback = sub_8039E84;
- sprite->callback = sub_817339C;
+ sprite->callback = SpriteCB_PokeBlock_LiftArm;
}
-static void sub_817339C(struct Sprite *sprite)
+#undef sDuration
+#undef sTargetX
+#undef sTargetY
+#undef sAmplitude
+
+static void SpriteCB_PokeBlock_LiftArm(struct Sprite *sprite)
{
if (gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].animCmdIndex == 1)
- sprite->callback = sub_81733D4;
+ sprite->callback = SpriteCB_PokeBlock_Arc;
}
-static void sub_81733D4(struct Sprite *sprite)
+static void SpriteCB_PokeBlock_Arc(struct Sprite *sprite)
{
if (TranslateAnimHorizontalArc(sprite))
{
sprite->data[0] = 0;
sprite->invisible = TRUE;
- sprite->callback = sub_8173400;
+ sprite->callback = SpriteCB_ThrowPokeBlock_Free;
}
}
-static void sub_8173400(struct Sprite *sprite)
+// Destroy after end of player animation
+static void SpriteCB_ThrowPokeBlock_Free(struct Sprite *sprite)
{
if (gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].animEnded)
{
diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c
index ab2f42264..9790cf9ea 100644
--- a/src/battle_anim_utility_funcs.c
+++ b/src/battle_anim_utility_funcs.c
@@ -535,9 +535,9 @@ static void sub_81170EC(u8 taskId)
gTasks[taskId].func = sub_81172EC;
if (sAnimStatsChangeData->data[0] == 0)
- PlaySE12WithPanning(SE_W287, BattleAnimAdjustPanning2(-64));
+ PlaySE12WithPanning(SE_M_STAT_INCREASE, BattleAnimAdjustPanning2(-64));
else
- PlaySE12WithPanning(SE_W287B, BattleAnimAdjustPanning2(-64));
+ PlaySE12WithPanning(SE_M_STAT_DECREASE, BattleAnimAdjustPanning2(-64));
}
static void sub_81172EC(u8 taskId)
diff --git a/src/battle_arena.c b/src/battle_arena.c
index 42a967fc6..0ffba4910 100644
--- a/src/battle_arena.c
+++ b/src/battle_arena.c
@@ -563,7 +563,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
}
break;
case 4:
- PlaySE(SE_HANTEI1);
+ PlaySE(SE_ARENA_TIMEUP1);
ShowJudgmentSprite(80, 40, ARENA_CATEGORY_MIND, B_POSITION_PLAYER_LEFT);
ShowJudgmentSprite(160, 40, ARENA_CATEGORY_MIND, B_POSITION_OPPONENT_LEFT);
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement);
@@ -572,7 +572,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
ret = 1;
break;
case 5:
- PlaySE(SE_HANTEI1);
+ PlaySE(SE_ARENA_TIMEUP1);
ShowJudgmentSprite(80, 56, ARENA_CATEGORY_SKILL, B_POSITION_PLAYER_LEFT);
ShowJudgmentSprite(160, 56, ARENA_CATEGORY_SKILL, B_POSITION_OPPONENT_LEFT);
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement);
@@ -581,7 +581,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
ret = 1;
break;
case 6:
- PlaySE(SE_HANTEI1);
+ PlaySE(SE_ARENA_TIMEUP1);
ShowJudgmentSprite(80, 72, ARENA_CATEGORY_BODY, B_POSITION_PLAYER_LEFT);
ShowJudgmentSprite(160, 72, ARENA_CATEGORY_BODY, B_POSITION_OPPONENT_LEFT);
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement);
@@ -590,7 +590,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
ret = 1;
break;
case 7:
- PlaySE(SE_HANTEI2);
+ PlaySE(SE_ARENA_TIMEUP2);
if (gBattleTextBuff1[0] > gBattleTextBuff2[0])
{
ret = 2;
diff --git a/src/battle_bg.c b/src/battle_bg.c
index 00c504bfd..7c9b05b25 100644
--- a/src/battle_bg.c
+++ b/src/battle_bg.c
@@ -1105,7 +1105,7 @@ void InitLinkBattleVsScreen(u8 taskId)
if (gTasks[taskId].data[5] != 0)
DrawLinkBattleVsScreenOutcomeText();
- PlaySE(SE_W231);
+ PlaySE(SE_M_HARDEN);
DestroyTask(taskId);
gSprites[gBattleStruct->linkBattleVsSpriteId_V].invisible = FALSE;
gSprites[gBattleStruct->linkBattleVsSpriteId_S].invisible = FALSE;
diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c
index ce22c605f..3461e9754 100644
--- a/src/battle_controller_link_opponent.c
+++ b/src/battle_controller_link_opponent.c
@@ -281,14 +281,14 @@ static void sub_8064734(void)
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
{
- sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
}
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].field_1_x1)
{
- sub_8172EF0(BATTLE_PARTNER(gActiveBattler), &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]);
+ TryShinyAnimation(BATTLE_PARTNER(gActiveBattler), &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]);
}
@@ -369,7 +369,7 @@ static void sub_8064B04(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
{
- sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
}
else
{
@@ -497,7 +497,7 @@ static void sub_8064F40(void)
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
{
- sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
}
if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
@@ -1357,7 +1357,7 @@ static void LinkOpponentHandleFaintAnimation(void)
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
- PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_TARGET);
+ PlaySE12WithPanning(SE_FAINT, SOUND_PAN_TARGET);
gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintOpponentMon;
gBattlerControllerFuncs[gActiveBattler] = sub_8064C14;
}
diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c
index ece4c24bc..63aa6eaea 100644
--- a/src/battle_controller_link_partner.c
+++ b/src/battle_controller_link_partner.c
@@ -383,7 +383,7 @@ static void sub_814B69C(void)
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
}
if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
@@ -1179,7 +1179,7 @@ static void LinkPartnerHandleFaintAnimation(void)
{
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
- PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_ATTACKER);
+ PlaySE12WithPanning(SE_FAINT, SOUND_PAN_ATTACKER);
gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5;
gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00;
diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c
index daf2c260e..858201b4b 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle_controller_opponent.c
@@ -290,9 +290,9 @@ static void sub_805F560(void)
bool32 r10 = FALSE;
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
- sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI) && IsDoubleBattle() && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1)
- sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
+ TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80)
@@ -369,7 +369,7 @@ static void sub_805F560(void)
static void sub_805F994(void)
{
if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
- sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
{
@@ -481,7 +481,7 @@ static void sub_805FD00(void)
static void sub_805FDF0(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
- sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
@@ -1394,7 +1394,7 @@ static void OpponentHandleFaintAnimation(void)
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
- PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_TARGET);
+ PlaySE12WithPanning(SE_FAINT, SOUND_PAN_TARGET);
gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintOpponentMon;
gBattlerControllerFuncs[gActiveBattler] = sub_805FAC4;
}
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index 08ce9f09c..c9a3bc2e0 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -853,7 +853,7 @@ static void sub_80586F8(void)
{
if (gReceivedRemoteLinkPlayers == 0)
{
- m4aSongNumStop(SE_HINSI);
+ m4aSongNumStop(SE_LOW_HEALTH);
gMain.inBattle = 0;
gMain.callback1 = gPreBattleCallback1;
SetMainCallback2(sub_8038D64);
@@ -866,7 +866,7 @@ static void sub_80586F8(void)
{
if (IsLinkTaskFinished())
{
- m4aSongNumStop(SE_HINSI);
+ m4aSongNumStop(SE_LOW_HEALTH);
gMain.inBattle = 0;
gMain.callback1 = gPreBattleCallback1;
SetMainCallback2(sub_8038D64);
@@ -895,7 +895,7 @@ void sub_80587B0(void)
}
else
{
- m4aSongNumStop(SE_HINSI);
+ m4aSongNumStop(SE_LOW_HEALTH);
gMain.inBattle = 0;
gMain.callback1 = gPreBattleCallback1;
SetMainCallback2(gMain.savedCallback);
@@ -977,9 +977,9 @@ static void sub_8058B40(void)
bool32 r8 = FALSE;
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
- sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
- sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
+ TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
@@ -1082,7 +1082,7 @@ static void sub_805902C(void)
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
}
if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
@@ -2392,7 +2392,7 @@ static void PlayerHandleFaintAnimation(void)
{
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
- PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_ATTACKER);
+ PlaySE12WithPanning(SE_FAINT, SOUND_PAN_ATTACKER);
gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5;
gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00;
diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c
index 21c1fdd5b..7796bef09 100644
--- a/src/battle_controller_player_partner.c
+++ b/src/battle_controller_player_partner.c
@@ -568,7 +568,7 @@ static void sub_81BBAE8(void)
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
}
if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
@@ -1371,7 +1371,7 @@ static void PlayerPartnerHandleFaintAnimation(void)
{
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
- PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_ATTACKER);
+ PlaySE12WithPanning(SE_FAINT, SOUND_PAN_ATTACKER);
gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5;
gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00;
diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c
index 35383611b..76e84da41 100644
--- a/src/battle_controller_recorded_opponent.c
+++ b/src/battle_controller_recorded_opponent.c
@@ -263,9 +263,9 @@ static void sub_818686C(void)
bool32 r8 = FALSE;
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
- sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
- sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
+ TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
@@ -350,7 +350,7 @@ static void sub_8186C48(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
{
- sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
}
else
{
@@ -479,7 +479,7 @@ static void sub_8187084(void)
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
{
- sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
}
if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
@@ -1284,7 +1284,7 @@ static void RecordedOpponentHandleFaintAnimation(void)
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
- PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_TARGET);
+ PlaySE12WithPanning(SE_FAINT, SOUND_PAN_TARGET);
gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintOpponentMon;
gBattlerControllerFuncs[gActiveBattler] = sub_8186D58;
}
diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c
index 5f3b3ea65..387586f88 100644
--- a/src/battle_controller_recorded_player.c
+++ b/src/battle_controller_recorded_player.c
@@ -280,12 +280,12 @@ static void sub_8189D40(void)
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
}
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
- sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
+ TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
}
}
@@ -463,7 +463,7 @@ static void sub_818A470(void)
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
}
if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
@@ -1286,7 +1286,7 @@ static void RecordedPlayerHandleFaintAnimation(void)
{
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
- PlaySE12WithPanning(SE_POKE_DEAD, -64);
+ PlaySE12WithPanning(SE_FAINT, -64);
gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5;
gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00;
diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c
index a5b1ae2f7..a26694a8e 100644
--- a/src/battle_controller_wally.c
+++ b/src/battle_controller_wally.c
@@ -286,9 +286,9 @@ static void CompleteOnChosenItem(void)
static void sub_816864C(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
- sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
- sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
+ TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c
index 50a5f8ad5..b1bb61aaf 100644
--- a/src/battle_gfx_sfx_util.c
+++ b/src/battle_gfx_sfx_util.c
@@ -1014,15 +1014,12 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite)
palOffset = (battlerId * 16) + 0x100;
LoadCompressedPalette(gSubstituteDollPal, palOffset, 32);
}
- else
+ else if (!IsContest())
{
- if (!IsContest())
- {
- if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
- BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId);
- else
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battlerId]], battlerId);
- }
+ if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
+ BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId);
+ else
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battlerId]], battlerId);
}
}
@@ -1058,7 +1055,7 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId)
if (!gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong)
{
if (!gBattleSpritesDataPtr->battlerData[battlerId ^ BIT_FLANK].lowHpSong)
- PlaySE(SE_HINSI);
+ PlaySE(SE_LOW_HEALTH);
gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong = 1;
}
}
@@ -1067,12 +1064,12 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId)
gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong = 0;
if (!IsDoubleBattle())
{
- m4aSongNumStop(SE_HINSI);
+ m4aSongNumStop(SE_LOW_HEALTH);
return;
}
if (IsDoubleBattle() && !gBattleSpritesDataPtr->battlerData[battlerId ^ BIT_FLANK].lowHpSong)
{
- m4aSongNumStop(SE_HINSI);
+ m4aSongNumStop(SE_LOW_HEALTH);
return;
}
}
@@ -1086,7 +1083,7 @@ void BattleStopLowHpSound(void)
if (IsDoubleBattle())
gBattleSpritesDataPtr->battlerData[playerBattler ^ BIT_FLANK].lowHpSong = 0;
- m4aSongNumStop(SE_HINSI);
+ m4aSongNumStop(SE_LOW_HEALTH);
}
u8 GetMonHPBarLevel(struct Pokemon *mon)
diff --git a/src/battle_interface.c b/src/battle_interface.c
index 12273addb..719af6a06 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -1649,7 +1649,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
gBattleSpritesDataPtr->animationData->field_9_x1C++;
}
- PlaySE12WithPanning(SE_TB_START, 0);
+ PlaySE12WithPanning(SE_BALL_TRAY_ENTER, 0);
return taskId;
}
@@ -1852,9 +1852,9 @@ static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite)
pan = SOUND_PAN_ATTACKER;
if (sprite->data[7] != 0)
- PlaySE2WithPanning(SE_TB_KARA, pan);
+ PlaySE2WithPanning(SE_BALL_TRAY_EXIT, pan);
else
- PlaySE1WithPanning(SE_TB_KON, pan);
+ PlaySE1WithPanning(SE_BALL_TRAY_BALL, pan);
sprite->callback = SpriteCallbackDummy;
}
diff --git a/src/battle_main.c b/src/battle_main.c
index 0ea19dfaa..935a53ffe 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -1869,7 +1869,7 @@ static void FreeRestoreBattleData(void)
gScanlineEffect.state = 3;
gMain.inBattle = 0;
ZeroEnemyPartyMons();
- m4aSongNumStop(SE_HINSI);
+ m4aSongNumStop(SE_LOW_HEALTH);
FreeMonSpritesGfx();
FreeBattleSpritesData();
FreeBattleResources();
@@ -2114,7 +2114,7 @@ void sub_8038B74(struct Sprite *sprite)
{
StartSpriteAffineAnim(sprite, 1);
sprite->callback = sub_8038B04;
- PlaySE(SE_BT_START);
+ PlaySE(SE_MUGSHOT);
}
static void sub_8038B94(u8 taskId)
@@ -4851,40 +4851,38 @@ static void SetActionsAndBattlersTurnOrder(void)
gBattleStruct->focusPunchBattlerId = 0;
return;
}
- else
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
+ if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_ITEM || gChosenActionByBattler[gActiveBattler] == B_ACTION_SWITCH)
{
- if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_ITEM || gChosenActionByBattler[gActiveBattler] == B_ACTION_SWITCH)
- {
- gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler];
- gBattlerByTurnOrder[turnOrderId] = gActiveBattler;
- turnOrderId++;
- }
+ gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler];
+ gBattlerByTurnOrder[turnOrderId] = gActiveBattler;
+ turnOrderId++;
}
- for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
+ }
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
+ {
+ if (gChosenActionByBattler[gActiveBattler] != B_ACTION_USE_ITEM && gChosenActionByBattler[gActiveBattler] != B_ACTION_SWITCH)
{
- if (gChosenActionByBattler[gActiveBattler] != B_ACTION_USE_ITEM && gChosenActionByBattler[gActiveBattler] != B_ACTION_SWITCH)
- {
- gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler];
- gBattlerByTurnOrder[turnOrderId] = gActiveBattler;
- turnOrderId++;
- }
+ gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler];
+ gBattlerByTurnOrder[turnOrderId] = gActiveBattler;
+ turnOrderId++;
}
- for (i = 0; i < gBattlersCount - 1; i++)
+ }
+ for (i = 0; i < gBattlersCount - 1; i++)
+ {
+ for (j = i + 1; j < gBattlersCount; j++)
{
- for (j = i + 1; j < gBattlersCount; j++)
+ u8 battler1 = gBattlerByTurnOrder[i];
+ u8 battler2 = gBattlerByTurnOrder[j];
+
+ if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM
+ && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM
+ && gActionsByTurnOrder[i] != B_ACTION_SWITCH
+ && gActionsByTurnOrder[j] != B_ACTION_SWITCH)
{
- u8 battler1 = gBattlerByTurnOrder[i];
- u8 battler2 = gBattlerByTurnOrder[j];
- if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM
- && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM
- && gActionsByTurnOrder[i] != B_ACTION_SWITCH
- && gActionsByTurnOrder[j] != B_ACTION_SWITCH)
- {
- if (GetWhoStrikesFirst(battler1, battler2, FALSE))
- SwapTurnOrder(i, j);
- }
+ if (GetWhoStrikesFirst(battler1, battler2, FALSE))
+ SwapTurnOrder(i, j);
}
}
}
@@ -4962,12 +4960,8 @@ static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void)
}
TryClearRageStatuses();
- gCurrentTurnActionNumber = 0;
-{
- // something stupid needed to match
- u8 zero;
- gCurrentActionFuncId = gActionsByTurnOrder[(zero = 0)];
-}
+ gCurrentTurnActionNumber = 0; //See comment underneath
+ gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; //Should be gActionsByTurnOrder[(gCurrentTurnActionNumber = 0)], but that doesn't match
gDynamicBasePower = 0;
gBattleStruct->dynamicMoveType = 0;
gBattleMainFunc = RunTurnActionsFunctions;
@@ -4990,13 +4984,10 @@ static void RunTurnActionsFunctions(void)
gHitMarker &= ~(HITMARKER_x100000);
gBattleMainFunc = sEndTurnFuncsTable[gBattleOutcome & 0x7F];
}
- else
+ else if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another battlerId
{
- if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another battlerId
- {
- gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING);
- gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE);
- }
+ gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING);
+ gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE);
}
}
@@ -5019,9 +5010,9 @@ static void HandleEndTurn_BattleWon(void)
gBattlescriptCurrInstr = BattleScript_FrontierTrainerBattleWon;
if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN)
- PlayBGM(MUS_KACHI3);
+ PlayBGM(MUS_VICTORY_GYM_LEADER);
else
- PlayBGM(MUS_KACHI1);
+ PlayBGM(MUS_VICTORY_TRAINER);
}
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & BATTLE_TYPE_LINK))
{
@@ -5032,7 +5023,7 @@ static void HandleEndTurn_BattleWon(void)
{
case TRAINER_CLASS_ELITE_FOUR:
case TRAINER_CLASS_CHAMPION:
- PlayBGM(MUS_KACHI5);
+ PlayBGM(MUS_VICTORY_LEAGUE);
break;
case TRAINER_CLASS_TEAM_AQUA:
case TRAINER_CLASS_TEAM_MAGMA:
@@ -5040,13 +5031,13 @@ static void HandleEndTurn_BattleWon(void)
case TRAINER_CLASS_AQUA_LEADER:
case TRAINER_CLASS_MAGMA_ADMIN:
case TRAINER_CLASS_MAGMA_LEADER:
- PlayBGM(MUS_KACHI4);
+ PlayBGM(MUS_VICTORY_AQUA_MAGMA);
break;
case TRAINER_CLASS_LEADER:
- PlayBGM(MUS_KACHI3);
+ PlayBGM(MUS_VICTORY_GYM_LEADER);
break;
default:
- PlayBGM(MUS_KACHI1);
+ PlayBGM(MUS_VICTORY_TRAINER);
break;
}
}
@@ -5279,7 +5270,7 @@ static void ReturnFromBattleToOverworld(void)
SetRoamerInactive();
}
- m4aSongNumStop(SE_HINSI);
+ m4aSongNumStop(SE_LOW_HEALTH);
SetMainCallback2(gMain.savedCallback);
}
@@ -5826,7 +5817,7 @@ static void HandleAction_GoNear(void)
static void HandleAction_SafariZoneRun(void)
{
gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
- PlaySE(SE_NIGERU);
+ PlaySE(SE_FLEE);
gCurrentTurnActionNumber = gBattlersCount;
gBattleOutcome = B_OUTCOME_RAN;
}
diff --git a/src/battle_message.c b/src/battle_message.c
index 4e87c9344..c004665d7 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -315,23 +315,23 @@ static const u8 sText_StatsWontIncrease2[] = _("{B_ATK_NAME_WITH_PREFIX}'s stats
static const u8 sText_StatsWontDecrease2[] = _("{B_DEF_NAME_WITH_PREFIX}'s stats won't\ngo any lower!");
static const u8 sText_CriticalHit[] = _("A critical hit!");
static const u8 sText_OneHitKO[] = _("It's a one-hit KO!");
-static const u8 sText_123Poof[] = _("{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_KON}Poof!\p");
+static const u8 sText_123Poof[] = _("{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_BALL_BOUNCE_1}Poof!\p");
static const u8 sText_AndEllipsis[] = _("And…\p");
static const u8 sText_HMMovesCantBeForgotten[] = _("HM moves can't be\nforgotten now.\p");
static const u8 sText_NotVeryEffective[] = _("It's not very effective…");
static const u8 sText_SuperEffective[] = _("It's super effective!");
-static const u8 sText_GotAwaySafely[] = _("{PLAY_SE SE_NIGERU}Got away safely!\p");
-static const u8 sText_PkmnFledUsingIts[] = _("{PLAY_SE SE_NIGERU}{B_ATK_NAME_WITH_PREFIX} fled\nusing its {B_LAST_ITEM}!\p");
-static const u8 sText_PkmnFledUsing[] = _("{PLAY_SE SE_NIGERU}{B_ATK_NAME_WITH_PREFIX} fled\nusing {B_ATK_ABILITY}!\p");
-static const u8 sText_WildPkmnFled[] = _("{PLAY_SE SE_NIGERU}Wild {B_BUFF1} fled!");
+static const u8 sText_GotAwaySafely[] = _("{PLAY_SE SE_FLEE}Got away safely!\p");
+static const u8 sText_PkmnFledUsingIts[] = _("{PLAY_SE SE_FLEE}{B_ATK_NAME_WITH_PREFIX} fled\nusing its {B_LAST_ITEM}!\p");
+static const u8 sText_PkmnFledUsing[] = _("{PLAY_SE SE_FLEE}{B_ATK_NAME_WITH_PREFIX} fled\nusing {B_ATK_ABILITY}!\p");
+static const u8 sText_WildPkmnFled[] = _("{PLAY_SE SE_FLEE}Wild {B_BUFF1} fled!");
static const u8 sText_PlayerDefeatedLinkTrainer[] = _("Player defeated\n{B_LINK_OPPONENT1_NAME}!");
static const u8 sText_TwoLinkTrainersDefeated[] = _("Player beat {B_LINK_OPPONENT1_NAME}\nand {B_LINK_OPPONENT2_NAME}!");
static const u8 sText_PlayerLostAgainstLinkTrainer[] = _("Player lost against\n{B_LINK_OPPONENT1_NAME}!");
static const u8 sText_PlayerLostToTwo[] = _("Player lost to {B_LINK_OPPONENT1_NAME}\nand {B_LINK_OPPONENT2_NAME}!");
static const u8 sText_PlayerBattledToDrawLinkTrainer[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME}!");
static const u8 sText_PlayerBattledToDrawVsTwo[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}!");
-static const u8 sText_WildFled[] = _("{PLAY_SE SE_NIGERU}{B_LINK_OPPONENT1_NAME} fled!");
-static const u8 sText_TwoWildFled[] = _("{PLAY_SE SE_NIGERU}{B_LINK_OPPONENT1_NAME} and\n{B_LINK_OPPONENT2_NAME} fled!");
+static const u8 sText_WildFled[] = _("{PLAY_SE SE_FLEE}{B_LINK_OPPONENT1_NAME} fled!");
+static const u8 sText_TwoWildFled[] = _("{PLAY_SE SE_FLEE}{B_LINK_OPPONENT1_NAME} and\n{B_LINK_OPPONENT2_NAME} fled!");
static const u8 sText_NoRunningFromTrainers[] = _("No! There's no running\nfrom a TRAINER battle!\p");
static const u8 sText_CantEscape[] = _("Can't escape!\p");
static const u8 sText_DontLeaveBirch[] = _("PROF. BIRCH: Don't leave me like this!\p");
@@ -381,7 +381,7 @@ static const u8 sText_PkmnCuriousAboutX[] = _("{B_OPPONENT_MON1_NAME} is curious
static const u8 sText_PkmnEnthralledByX[] = _("{B_OPPONENT_MON1_NAME} is enthralled by\nthe {B_BUFF1}!");
static const u8 sText_PkmnIgnoredX[] = _("{B_OPPONENT_MON1_NAME} completely ignored\nthe {B_BUFF1}!");
static const u8 sText_ThrewPokeblockAtPkmn[] = _("{B_PLAYER_NAME} threw a {POKEBLOCK}\nat the {B_OPPONENT_MON1_NAME}!");
-static const u8 sText_OutOfSafariBalls[] = _("{PLAY_SE SE_PINPON}ANNOUNCER: You're out of\nSAFARI BALLS! Game over!\p");
+static const u8 sText_OutOfSafariBalls[] = _("{PLAY_SE SE_DING_DONG}ANNOUNCER: You're out of\nSAFARI BALLS! Game over!\p");
static const u8 sText_OpponentMon1Appeared[] = _("{B_OPPONENT_MON1_NAME} appeared!\p");
static const u8 sText_WildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p");
static const u8 sText_WildPkmnAppeared2[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p");
@@ -474,8 +474,8 @@ static const u8 sText_PkmnBrokeFree[] = _("Oh, no!\nThe POKéMON broke free!");
static const u8 sText_ItAppearedCaught[] = _("Aww!\nIt appeared to be caught!");
static const u8 sText_AarghAlmostHadIt[] = _("Aargh!\nAlmost had it!");
static const u8 sText_ShootSoClose[] = _("Shoot!\nIt was so close, too!");
-static const u8 sText_GotchaPkmnCaught[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_KACHI22}\p");
-static const u8 sText_GotchaPkmnCaught2[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_KACHI22}{PAUSE 127}");
+static const u8 sText_GotchaPkmnCaught[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_CAUGHT}\p");
+static const u8 sText_GotchaPkmnCaught2[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_CAUGHT}{PAUSE 127}");
static const u8 sText_GiveNicknameCaptured[] = _("Give a nickname to the\ncaptured {B_OPPONENT_MON1_NAME}?");
static const u8 sText_PkmnSentToPC[] = _("{B_OPPONENT_MON1_NAME} was sent to\n{B_PC_CREATOR_NAME} PC.");
static const u8 sText_Someones[] = _("someone's");
@@ -1346,7 +1346,7 @@ static const u8 sText_QuestionForfeitMatch[] = _("Would you like to forfeit the
static const u8 sText_ForfeitedMatch[] = _("{B_PLAYER_NAME} forfeited the match!");
static const u8 sText_Trainer1WinText[] = _("{B_TRAINER1_WIN_TEXT}");
static const u8 sText_Trainer2WinText[] = _("{B_TRAINER2_WIN_TEXT}");
-static const u8 sText_Trainer1Fled[] = _( "{PLAY_SE SE_NIGERU}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!");
+static const u8 sText_Trainer1Fled[] = _( "{PLAY_SE SE_FLEE}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!");
static const u8 sText_PlayerLostAgainstTrainer1[] = _("Player lost against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!");
static const u8 sText_PlayerBattledToDrawTrainer1[] = _("Player battled to a draw against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!");
const u8 gText_RecordBattleToPass[] = _("Would you like to record your battle\non your FRONTIER PASS?");
diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c
index 33daed80c..e038e71e1 100644
--- a/src/battle_pyramid_bag.c
+++ b/src/battle_pyramid_bag.c
@@ -970,7 +970,7 @@ static void HandleMenuActionInput(u8 taskId)
if (id > 0 && IsValidMenuAction(id - 2))
{
PlaySE(SE_SELECT);
- sub_8199134(0, -1);
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP);
}
}
else if (gMain.newKeys & DPAD_DOWN)
@@ -978,7 +978,7 @@ static void HandleMenuActionInput(u8 taskId)
if (id < gPyramidBagResources->menuActionsCount - 2 && IsValidMenuAction(id + 2))
{
PlaySE(SE_SELECT);
- sub_8199134(0, 1);
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN);
}
}
else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED)
@@ -986,7 +986,7 @@ static void HandleMenuActionInput(u8 taskId)
if (id & 1 && IsValidMenuAction(id - 1))
{
PlaySE(SE_SELECT);
- sub_8199134(-1, 0);
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE);
}
}
else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED)
@@ -994,7 +994,7 @@ static void HandleMenuActionInput(u8 taskId)
if (!(id & 1) && IsValidMenuAction(id + 1))
{
PlaySE(SE_SELECT);
- sub_8199134(1, 0);
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE);
}
}
else if (gMain.newKeys & A_BUTTON)
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 565e03106..9ff5e8fc6 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -1977,11 +1977,11 @@ static void Cmd_effectivenesssound(void)
switch (gMoveResultFlags & (u8)(~(MOVE_RESULT_MISSED)))
{
case MOVE_RESULT_SUPER_EFFECTIVE:
- BtlController_EmitPlaySE(0, SE_KOUKA_H);
+ BtlController_EmitPlaySE(0, SE_SUPER_EFFECTIVE);
MarkBattlerForControllerExec(gActiveBattler);
break;
case MOVE_RESULT_NOT_VERY_EFFECTIVE:
- BtlController_EmitPlaySE(0, SE_KOUKA_L);
+ BtlController_EmitPlaySE(0, SE_NOT_EFFECTIVE);
MarkBattlerForControllerExec(gActiveBattler);
break;
case MOVE_RESULT_DOESNT_AFFECT_FOE:
@@ -1994,17 +1994,17 @@ static void Cmd_effectivenesssound(void)
default:
if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE)
{
- BtlController_EmitPlaySE(0, SE_KOUKA_H);
+ BtlController_EmitPlaySE(0, SE_SUPER_EFFECTIVE);
MarkBattlerForControllerExec(gActiveBattler);
}
else if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE)
{
- BtlController_EmitPlaySE(0, SE_KOUKA_L);
+ BtlController_EmitPlaySE(0, SE_NOT_EFFECTIVE);
MarkBattlerForControllerExec(gActiveBattler);
}
else if (!(gMoveResultFlags & (MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED)))
{
- BtlController_EmitPlaySE(0, SE_KOUKA_M);
+ BtlController_EmitPlaySE(0, SE_EFFECTIVE);
MarkBattlerForControllerExec(gActiveBattler);
}
break;
@@ -3320,7 +3320,7 @@ static void Cmd_getexp(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gBattleMons[0].hp && !gBattleStruct->wildVictorySong)
{
BattleStopLowHpSound();
- PlayBGM(MUS_KACHI2);
+ PlayBGM(MUS_VICTORY_WILD);
gBattleStruct->wildVictorySong++;
}
@@ -6428,7 +6428,7 @@ static void Cmd_various(void)
gBattleOutcome = B_OUTCOME_MON_TELEPORTED;
break;
case VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC:
- BtlController_EmitPlayFanfareOrBGM(0, MUS_KACHI1, TRUE);
+ BtlController_EmitPlayFanfareOrBGM(0, MUS_VICTORY_TRAINER, TRUE);
MarkBattlerForControllerExec(gActiveBattler);
break;
}
@@ -9893,6 +9893,7 @@ static void Cmd_handleballthrow(void)
else // not caught
{
gBattleCommunication[MULTISTRING_CHOOSER] = shakes;
+ // Maybe inject SpriteCB_TestBallThrow here
gBattlescriptCurrInstr = BattleScript_ShakeBallThrow;
}
}
diff --git a/src/battle_setup.c b/src/battle_setup.c
index 0c0ef72d3..3c20d9ffe 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -518,22 +518,22 @@ void BattleSetup_StartLegendaryBattle(void)
default:
case SPECIES_GROUDON:
gBattleTypeFlags |= BATTLE_TYPE_GROUDON;
- CreateBattleStartTask(B_TRANSITION_GROUDON, MUS_BATTLE34);
+ CreateBattleStartTask(B_TRANSITION_GROUDON, MUS_VS_KYOGRE_GROUDON);
break;
case SPECIES_KYOGRE:
gBattleTypeFlags |= BATTLE_TYPE_KYOGRE;
- CreateBattleStartTask(B_TRANSITION_KYOGRE, MUS_BATTLE34);
+ CreateBattleStartTask(B_TRANSITION_KYOGRE, MUS_VS_KYOGRE_GROUDON);
break;
case SPECIES_RAYQUAZA:
gBattleTypeFlags |= BATTLE_TYPE_RAYQUAZA;
- CreateBattleStartTask(B_TRANSITION_RAYQUAZA, MUS_VS_REKKU);
+ CreateBattleStartTask(B_TRANSITION_RAYQUAZA, MUS_VS_RAYQUAZA);
break;
case SPECIES_DEOXYS:
- CreateBattleStartTask(B_TRANSITION_BLUR, MUS_RG_VS_DEO);
+ CreateBattleStartTask(B_TRANSITION_BLUR, MUS_RG_VS_DEOXYS);
break;
case SPECIES_LUGIA:
case SPECIES_HO_OH:
- CreateBattleStartTask(B_TRANSITION_BLUR, MUS_RG_VS_DEN);
+ CreateBattleStartTask(B_TRANSITION_BLUR, MUS_RG_VS_LEGEND);
break;
case SPECIES_MEW:
CreateBattleStartTask(B_TRANSITION_GRID_SQUARES, MUS_VS_MEW);
@@ -553,9 +553,9 @@ void StartGroudonKyogreBattle(void)
gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_KYOGRE_GROUDON;
if (gGameVersion == VERSION_RUBY)
- CreateBattleStartTask(B_TRANSITION_SHARDS, MUS_BATTLE34); // GROUDON
+ CreateBattleStartTask(B_TRANSITION_SHARDS, MUS_VS_KYOGRE_GROUDON); // GROUDON
else
- CreateBattleStartTask(B_TRANSITION_RIPPLE, MUS_BATTLE34); // KYOGRE
+ CreateBattleStartTask(B_TRANSITION_RIPPLE, MUS_VS_KYOGRE_GROUDON); // KYOGRE
IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
IncrementGameStat(GAME_STAT_WILD_BATTLES);
@@ -588,7 +588,7 @@ void StartRegiBattle(void)
transitionId = B_TRANSITION_GRID_SQUARES;
break;
}
- CreateBattleStartTask(transitionId, MUS_BATTLE36);
+ CreateBattleStartTask(transitionId, MUS_VS_REGI);
IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
IncrementGameStat(GAME_STAT_WILD_BATTLES);
@@ -1454,46 +1454,46 @@ void SetUpTrainerEncounterMusic(void)
switch (GetTrainerEncounterMusicId(trainerId))
{
case TRAINER_ENCOUNTER_MUSIC_MALE:
- music = MUS_BOYEYE;
+ music = MUS_ENCOUNTER_MALE;
break;
case TRAINER_ENCOUNTER_MUSIC_FEMALE:
- music = MUS_GIRLEYE;
+ music = MUS_ENCOUNTER_FEMALE;
break;
case TRAINER_ENCOUNTER_MUSIC_GIRL:
- music = MUS_SYOUJOEYE;
+ music = MUS_ENCOUNTER_GIRL;
break;
case TRAINER_ENCOUNTER_MUSIC_INTENSE:
- music = MUS_HAGESHII;
+ music = MUS_ENCOUNTER_INTENSE;
break;
case TRAINER_ENCOUNTER_MUSIC_COOL:
- music = MUS_KAKKOII;
+ music = MUS_ENCOUNTER_COOL;
break;
case TRAINER_ENCOUNTER_MUSIC_AQUA:
- music = MUS_AQA_0;
+ music = MUS_ENCOUNTER_AQUA;
break;
case TRAINER_ENCOUNTER_MUSIC_MAGMA:
- music = MUS_MGM0;
+ music = MUS_ENCOUNTER_MAGMA;
break;
case TRAINER_ENCOUNTER_MUSIC_SWIMMER:
- music = MUS_SWIMEYE;
+ music = MUS_ENCOUNTER_SWIMMER;
break;
case TRAINER_ENCOUNTER_MUSIC_TWINS:
- music = MUS_HUTAGO;
+ music = MUS_ENCOUNTER_TWINS;
break;
case TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR:
- music = MUS_SITENNOU;
+ music = MUS_ENCOUNTER_ELITE_FOUR;
break;
case TRAINER_ENCOUNTER_MUSIC_HIKER:
- music = MUS_YAMA_EYE;
+ music = MUS_ENCOUNTER_HIKER;
break;
case TRAINER_ENCOUNTER_MUSIC_INTERVIEWER:
- music = MUS_INTER_V;
+ music = MUS_ENCOUNTER_INTERVIEWER;
break;
case TRAINER_ENCOUNTER_MUSIC_RICH:
- music = MUS_TEST;
+ music = MUS_ENCOUNTER_RICH;
break;
default:
- music = MUS_AYASII;
+ music = MUS_ENCOUNTER_SUSPICIOUS;
}
PlayNewMapMusic(music);
}
diff --git a/src/battle_transition.c b/src/battle_transition.c
index b0cdbd93a..559279e74 100644
--- a/src/battle_transition.c
+++ b/src/battle_transition.c
@@ -2227,7 +2227,7 @@ static bool8 Phase2_Mugshot_Func4(struct Task *task)
SetTrainerPicSlideTable(task->tPlayerSpriteId, 1);
IncrementTrainerPicState(task->tOpponentSpriteId);
- PlaySE(SE_BT_START);
+ PlaySE(SE_MUGSHOT);
sTransitionStructPtr->VBlank_DMA++;
return FALSE;
diff --git a/src/berry_blender.c b/src/berry_blender.c
index 8d6f3a8fd..2cdb841ee 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -1,5 +1,4 @@
#include "global.h"
-#include "constants/game_stat.h"
#include "overworld.h"
#include "berry_blender.h"
#include "bg.h"
@@ -7,7 +6,6 @@
#include "task.h"
#include "sprite.h"
#include "sound.h"
-#include "constants/songs.h"
#include "m4a.h"
#include "bg.h"
#include "palette.h"
@@ -19,10 +17,10 @@
#include "event_data.h"
#include "main.h"
#include "link.h"
+#include "link_rfu.h"
#include "item_menu_icons.h"
#include "berry.h"
#include "item.h"
-#include "constants/items.h"
#include "string_util.h"
#include "international_string_util.h"
#include "random.h"
@@ -35,43 +33,97 @@
#include "graphics.h"
#include "new_game.h"
#include "save.h"
-#include "link.h"
+#include "strings.h"
#include "constants/berry.h"
+#include "constants/game_stat.h"
+#include "constants/items.h"
#include "constants/rgb.h"
+#include "constants/songs.h"
+
+enum {
+ SCORE_BEST,
+ SCORE_GOOD,
+ SCORE_MISS,
+ NUM_SCORE_TYPES,
+};
-#define BLENDER_SCORE_BEST 0
-#define BLENDER_SCORE_GOOD 1
-#define BLENDER_SCORE_MISS 2
+// Redundant with the above. Reversed
+enum {
+ PROXIMITY_MISS,
+ PROXIMITY_GOOD,
+ PROXIMITY_BEST,
+};
-#define BLENDER_MAX_PLAYERS 4
-#define BLENDER_SCORES_NO 3
+enum {
+ SCOREANIM_GOOD,
+ SCOREANIM_MISS,
+ SCOREANIM_BEST_FLASH,
+ SCOREANIM_BEST_STATIC,
+};
-enum
-{
- PLAY_AGAIN_OK,
- DONT_PLAY_AGAIN,
+enum {
+ PLAY_AGAIN_YES,
+ PLAY_AGAIN_NO,
CANT_PLAY_NO_BERRIES,
CANT_PLAY_NO_PKBLCK_SPACE
};
+enum {
+ BLENDER_MISTER,
+ BLENDER_LADDIE,
+ BLENDER_LASSIE,
+ BLENDER_MASTER,
+ BLENDER_DUDE,
+ BLENDER_MISS
+};
+
+#define BLENDER_MAX_PLAYERS MAX_LINK_PLAYERS
+
+#define NO_PLAYER 0xFF
+
+#define MAX_PROGRESS_BAR 1000
+
+#define MAX_ARROW_POS 0x10000 // By virtue of being u16
+#define MIN_ARROW_SPEED 0x80
+#define ARROW_FALL_ROTATION 0x5800 // The amount the arrow spins as it falls in at the start
+
+// Tile offsets
+#define PROGRESS_BAR_FILLED_TOP 0x80E9
+#define PROGRESS_BAR_FILLED_BOTTOM 0x80F9
+#define PROGRESS_BAR_EMPTY_TOP 0x80E1
+#define PROGRESS_BAR_EMPTY_BOTTOM 0x80F1
+#define RPM_DIGIT 0x8072
+
+// Tile and palette tags
+#define GFXTAG_COUNTDOWN_NUMBERS 12345
+#define GFXTAG_START 12346
+#define GFXTAG_PARTICLES 23456
+#define GFXTAG_PLAYER_ARROW 46545
+#define GFXTAG_SCORE_SYMBOLS 48888
+
+#define PALTAG_PLAYER_ARROW 12312
+#define PALTAG_MISC 46546
+
+// Last berry that an NPC can put in
+#define NUM_NPC_BERRIES ITEM_TO_BERRY(ITEM_ASPEAR_BERRY)
+
struct BlenderBerry
{
u16 itemId;
u8 name[BERRY_NAME_LENGTH + 1];
- u8 flavors[FLAVOR_COUNT];
- u8 smoothness;
+ u8 flavors[FLAVOR_COUNT + 1]; // 5 flavors, + 1 for feel
};
struct TimeAndRPM
{
u32 time;
- u16 max_RPM;
+ u16 maxRPM;
};
struct BlenderGameBlock
{
struct TimeAndRPM timeRPM;
- u16 scores[BLENDER_MAX_PLAYERS][BLENDER_SCORES_NO];
+ u16 scores[BLENDER_MAX_PLAYERS][NUM_SCORE_TYPES];
};
struct TvBlenderStruct
@@ -82,138 +134,122 @@ struct TvBlenderStruct
u8 pokeblockSheen;
};
-struct BerryBlenderData
+struct BerryBlender
{
u8 mainState;
u8 loadGfxState;
- u8 unused_02[0x42];
- u16 field_44;
- u8 scoreIconIds[BLENDER_SCORES_NO];
+ u8 unused0[66];
+ u16 unk0; // never read
+ u8 scoreIconIds[NUM_SCORE_TYPES];
u16 arrowPos;
- s16 field_4C;
- u16 max_RPM;
- u8 syncArrowSpriteIds[BLENDER_MAX_PLAYERS];
- u8 syncArrowSprite2Ids[BLENDER_MAX_PLAYERS];
- u8 unused_57[0xB];
+ s16 speed;
+ u16 maxRPM;
+ u8 playerArrowSpriteIds[BLENDER_MAX_PLAYERS];
+ u8 playerArrowSpriteIds2[BLENDER_MAX_PLAYERS];
+ u8 unused1[11];
u8 gameEndState;
- u16 field_64[BLENDER_MAX_PLAYERS];
- u16 field_6C;
- u16 field_6E;
+ u16 playerContinueResponses[BLENDER_MAX_PLAYERS];
+ u16 canceledPlayerCmd;
+ u16 canceledPlayerId;
u16 playAgainState;
- u8 field_72;
+ u8 slowdownTimer;
u16 chosenItemId[BLENDER_MAX_PLAYERS];
- u8 playersNo;
- u8 unused_7D[0x10];
- u16 field_8E[BLENDER_MAX_PLAYERS];
- u16 field_96[BLENDER_MAX_PLAYERS];
+ u8 numPlayers;
+ u8 unused2[16];
+ u16 arrowIdToPlayerId[BLENDER_MAX_PLAYERS];
+ u16 playerIdToArrowId[BLENDER_MAX_PLAYERS];
u8 yesNoAnswer;
u8 stringVar[100];
u32 gameFrameTime;
s32 framesToWait;
- u32 field_10C;
- u8 unused_110[4];
- u8 field_114;
- u16 field_116;
- u16 field_118;
- u16 field_11A;
+ u32 unk1; // never read
+ u8 unused3[4];
+ u8 playerToThrowBerry;
+ u16 progressBarValue;
+ u16 maxProgressBarValue;
+ u16 centerScale;
s16 bg_X;
s16 bg_Y;
- u8 field_120[3];
- u8 field_123;
- u16 scores[BLENDER_MAX_PLAYERS][BLENDER_SCORES_NO];
+ u8 opponentTaskIds[BLENDER_MAX_PLAYERS - 1];
+ u8 perfectOpponents; // for debugging, NPCs will always hit Best
+ u16 scores[BLENDER_MAX_PLAYERS][NUM_SCORE_TYPES];
u8 playerPlaces[BLENDER_MAX_PLAYERS];
struct BgAffineSrcData bgAffineSrc;
- u16 field_154;
+ u16 savedMusic;
struct BlenderBerry blendedBerries[BLENDER_MAX_PLAYERS];
struct TimeAndRPM smallBlock;
- u32 field_1A0;
- u8 field_1A4;
+ u32 linkPlayAgainState;
+ u8 ownRanking;
struct TvBlenderStruct tvBlender;
- u8 tilemapBuffers[2][0x800];
+ u8 tilemapBuffers[2][BG_SCREEN_SIZE];
s16 textState;
void *tilesBuffer;
struct BlenderGameBlock gameBlock;
};
-extern struct MusicPlayerInfo gMPlayInfo_SE2;
-extern struct MusicPlayerInfo gMPlayInfo_BGM;
-
-// text
-extern const u8 gText_SavingDontTurnOff2[];
-extern const u8 gText_Space[];
-extern const u8 gText_BlenderMaxSpeedRecord[];
-extern const u8 gText_234Players[];
-
-// this file's functions
-static void BerryBlender_SetBackgroundsPos(void);
-static void sub_8080EA4(u8 taskId);
-static void sub_8080FD0(u8 taskId);
-static void sub_80810F8(u8 taskId);
-static void sub_8081224(u8 taskId);
-static void sub_8083F3C(u8 taskId);
-static void sub_80833F8(struct Sprite *sprite);
-static void sub_8082F68(struct Sprite *sprite);
-static void sub_8083010(struct Sprite *sprite);
-static void sub_80830C0(struct Sprite *sprite);
-static void sub_8082F9C(struct Sprite *sprite);
-static void Blender_SetPlayerNamesLocal(u8 opponentsNum);
-static void sub_807FAC8(void);
-static void sub_8082D28(void);
-static bool32 Blender_PrintText(s16 *textState, const u8 *string, s32 textSpeed);
-static void sub_807FFA4(void);
-static void sub_8080018(void);
-static void sub_80808D4(void);
-static void Blender_DummiedOutFunc(s16 a0, s16 a1);
-static void sub_8081898(void);
-static void sub_8082CB4(struct BgAffineSrcData *bgAffineSrc);
-static bool8 sub_8083380(void);
-static void sub_808074C(void);
-static void Blender_PrintPlayerNames(void);
-static void sub_8080588(void);
-static void Blender_SetParticipantBerryData(u8 participantId, u16 itemId);
-static void Blender_AddTextPrinter(u8 windowId, const u8 *string, u8 x, u8 y, s32 speed, s32 caseId);
-static void sub_8080DF8(void);
-static void sub_8082E84(void);
-static void sub_80832BC(s16* a0, u16 a1);
-static void sub_8083140(u16 a0, u16 a2);
-static void sub_8083230(u16 a0);
-static void sub_808330C(void);
-static void sub_8082AD4(void);
-static void CB2_HandleBlenderEndGame(void);
-static bool8 Blender_PrintBlendingRanking(void);
-static bool8 Blender_PrintBlendingResults(void);
-static void CB2_HandlePlayerPlayAgainChoice(void);
-static void CB2_HandlePlayerLinkPlayAgainChoice(void);
-static void sub_8083170(u16 a0, u16 a1);
-static void Blender_PrintMadePokeblockString(struct Pokeblock *pokeblock, u8 *dst);
-static bool32 TryAddContestLinkTvShow(struct Pokeblock *pokeblock, struct TvBlenderStruct *a1);
-
-// EWRAM
-EWRAM_DATA static struct BerryBlenderData *sBerryBlenderData = NULL;
-EWRAM_DATA static s32 sUnknown_020322A8[5] = {0};
-EWRAM_DATA static s32 sUnknown_020322BC[5] = {0};
-EWRAM_DATA static u32 sUnknown_020322D0 = 0;
-
-// IWRAM bss
-static s16 sUnknown_03000DE8[8];
-static s16 sUnknown_03000DF8[6];
-static s16 sUnknown_03000E04;
-static s16 sUnknown_03000E06;
-
-// IWRAM common
-u8 gInGameOpponentsNo;
+static void SetBgPos(void);
+static void Task_HandleOpponent1(u8);
+static void Task_HandleOpponent2(u8);
+static void Task_HandleOpponent3(u8);
+static void Task_HandleBerryMaster(u8);
+static void Task_PlayPokeblockFanfare(u8);
+static void SpriteCB_PlayerArrow(struct Sprite *);
+static void SpriteCB_ScoreSymbol(struct Sprite *);
+static void SpriteCB_CountdownNumber(struct Sprite *);
+static void SpriteCB_Start(struct Sprite *);
+static void SpriteCB_ScoreSymbolBest(struct Sprite *);
+static void InitLocalPlayers(u8);
+static void CB2_LoadBerryBlender(void);
+static void UpdateBlenderCenter(void);
+static bool32 Blender_PrintText(s16 *, const u8 *, s32 );
+static void StartBlender(void);
+static void CB2_StartBlenderLink(void);
+static void CB2_StartBlenderLocal(void);
+static void Blender_DummiedOutFunc(s16, s16);
+static void CB2_PlayBlender(void);
+static void DrawBlenderCenter(struct BgAffineSrcData *);
+static bool8 UpdateBlenderLandScreenShake(void);
+static void SetPlayerIdMaps(void);
+static void PrintPlayerNames(void);
+static void InitBlenderBgs(void);
+static void SetPlayerBerryData(u8, u16);
+static void Blender_AddTextPrinter(u8, const u8 *, u8, u8, s32, s32);
+static void ResetLinkCmds(void);
+static void CreateParticleSprites(void);
+static void ShakeBgCoordForHit(s16*, u16);
+static void TryUpdateProgressBar(u16, u16);
+static void UpdateRPM(u16);
+static void RestoreBgCoords(void);
+static void ProcessLinkPlayerCmds(void);
+static void CB2_EndBlenderGame(void);
+static bool8 PrintBlendingRanking(void);
+static bool8 PrintBlendingResults(void);
+static void CB2_CheckPlayAgainLocal(void);
+static void CB2_CheckPlayAgainLink(void);
+static void UpdateProgressBar(u16, u16);
+static void PrintMadePokeblockString(struct Pokeblock *, u8 *);
+static bool32 TryAddContestLinkTvShow(struct Pokeblock *, struct TvBlenderStruct *);
+
+EWRAM_DATA static struct BerryBlender *sBerryBlender = NULL;
+EWRAM_DATA static s32 sDebug_PokeblockFactorFlavors[FLAVOR_COUNT] = {0};
+EWRAM_DATA static s32 sDebug_PokeblockFactorFlavorsAfterRPM[FLAVOR_COUNT] = {0};
+EWRAM_DATA static u32 sDebug_PokeblockFactorRPM = 0;
+
+static s16 sPokeblockFlavors[FLAVOR_COUNT + 1]; // + 1 for feel
+static s16 sPokeblockPresentFlavors[FLAVOR_COUNT + 1];
+static s16 sDebug_MaxRPMStage;
+static s16 sDebug_GameTimeStage;
-// rom
+u8 gInGameOpponentsNo;
-static const u16 sBlenderCenterPal[] = INCBIN_U16("graphics/berry_blender/center.gbapal");
-static const u8 sBlenderCenterMap[] = INCBIN_U8("graphics/berry_blender/center_map.bin");
-static const u16 sBlenderOuterPal[] = INCBIN_U16("graphics/berry_blender/outer.gbapal");
+static const u16 sBlenderCenter_Pal[] = INCBIN_U16("graphics/berry_blender/center.gbapal");
+static const u8 sBlenderCenter_Tilemap[] = INCBIN_U8("graphics/berry_blender/center_map.bin");
+static const u16 sBlenderOuter_Pal[] = INCBIN_U16("graphics/berry_blender/outer.gbapal");
-// unreferenced pals?
-static const u16 sUnknownPal_0[] = INCBIN_U16("graphics/unknown/unknown_339514.gbapal");
-static const u16 sUnknownArray_1[224] = {0};
+static const u16 sUnused_Pal[] = INCBIN_U16("graphics/berry_blender/unused.gbapal");
+static const u16 sEmpty_Pal[16 * 14] = {0};
-// unused text?
+// unused text
static const u8 sUnusedText_YesNo[] = _("YES\nNO");
static const u8 sUnusedText_2[] = _("▶");
static const u8 sUnusedText_Space[] = _(" ");
@@ -232,22 +268,12 @@ static const u8 sText_Miss[] = _("MISS");
static const u8* const sBlenderOpponentsNames[] =
{
- sText_Mister,
- sText_Laddie,
- sText_Lassie,
- sText_Master,
- sText_Dude,
- sText_Miss
-};
-
-enum
-{
- BLENDER_MISTER,
- BLENDER_LADDIE,
- BLENDER_LASSIE,
- BLENDER_MASTER,
- BLENDER_DUDE,
- BLENDER_MISS
+ [BLENDER_MISTER] = sText_Mister,
+ [BLENDER_LADDIE] = sText_Laddie,
+ [BLENDER_LASSIE] = sText_Lassie,
+ [BLENDER_MASTER] = sText_Master,
+ [BLENDER_DUDE] = sText_Dude,
+ [BLENDER_MISS] = sText_Miss
};
static const u8 sText_PressAToStart[] = _("Press the A Button to start.");
@@ -274,7 +300,7 @@ static const u8 sText_TheLevelIs[] = _("The level is ");
static const u8 sText_TheFeelIs[] = _(", and the feel is ");
static const u8 sText_Dot2[] = _(".");
-static const struct BgTemplate sBerryBlenderBgTemplates[3] =
+static const struct BgTemplate sBgTemplates[3] =
{
{
.bg = 0,
@@ -305,7 +331,7 @@ static const struct BgTemplate sBerryBlenderBgTemplates[3] =
}
};
-static const struct WindowTemplate sBerryBlender_WindowTemplates[] =
+static const struct WindowTemplate sWindowTemplates[] =
{
{
.bg = 0,
@@ -364,7 +390,7 @@ static const struct WindowTemplate sBerryBlender_WindowTemplates[] =
DUMMY_WIN_TEMPLATE
};
-static const struct WindowTemplate sBlender_YesNoWindowTemplate =
+static const struct WindowTemplate sYesNoWindowTemplate_ContinuePlaying =
{
.bg = 0,
.tilemapLeft = 21,
@@ -375,31 +401,58 @@ static const struct WindowTemplate sBlender_YesNoWindowTemplate =
.baseBlock = 0xCC
};
-static const s8 sUnknown_083399C0[][2] =
+static const s8 sPlayerArrowQuadrant[BLENDER_MAX_PLAYERS][2] =
{
- {-1, -1}, {1, -1}, {-1, 1}, {1, 1}
+ {-1, -1},
+ { 1, -1},
+ {-1, 1},
+ { 1, 1}
};
-static const u8 sBlenderSyncArrowsPos[BLENDER_MAX_PLAYERS][2] =
+static const u8 sPlayerArrowPos[BLENDER_MAX_PLAYERS][2] =
{
- {72, 32}, {168, 32}, {72, 128}, {168, 128}
+ { 72, 32},
+ {168, 32},
+ { 72, 128},
+ {168, 128}
};
-static const u8 sUnknown_083399D0[3][4] =
+static const u8 sPlayerIdMap[BLENDER_MAX_PLAYERS - 1][BLENDER_MAX_PLAYERS] =
{
- {-1, 0, 1, -1}, {-1, 0, 1, 2}, {0, 1, 2, 3}
+ {NO_PLAYER, 0, 1, NO_PLAYER}, // 2 Players
+ {NO_PLAYER, 0, 1, 2}, // 3 Players
+ { 0, 1, 2, 3} // 4 Players
};
-static const u16 sUnknown_083399DC[] = {0, 0xC000, 0x4000, 0x8000};
-static const u8 sUnknown_083399E4[] = {1, 1, 0};
-static const u8 sUnknown_083399E7[] = {32, 224, 96, 160, 0};
-static const TaskFunc sUnknown_083399EC[] =
+// Blender arrow positions:
+//
+// 0x0000 (limit 0x10000)
+// . .
+// . .
+// 0x4000 . . 0xC000
+// . .
+// . .
+// . .
+// 0x8000
+//
+static const u16 sArrowStartPos[] = {
+ 0,
+ MAX_ARROW_POS / 4 * 3, // 0xC000
+ MAX_ARROW_POS / 4, // 0x4000
+ MAX_ARROW_POS / 4 * 2 // 0x8000
+};
+static const u8 sArrowStartPosIds[BLENDER_MAX_PLAYERS - 1] = {1, 1, 0};
+static const u8 sArrowHitRangeStart[BLENDER_MAX_PLAYERS] = {32, 224, 96, 160};
+
+static const TaskFunc sLocalOpponentTasks[] =
{
- sub_8080EA4, sub_8080FD0, sub_80810F8
+ Task_HandleOpponent1,
+ Task_HandleOpponent2,
+ Task_HandleOpponent3
};
-static const struct OamData sOamData_8216314 =
+static const struct OamData sOam_PlayerArrow =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -416,40 +469,40 @@ static const struct OamData sOamData_8216314 =
.affineParam = 0,
};
-static const union AnimCmd sSpriteAnim_821631C[] =
+static const union AnimCmd sAnim_PlayerArrow_TopLeft[] =
{
- ANIMCMD_FRAME(16, 5, 1, 1),
+ ANIMCMD_FRAME(16, 5, .vFlip = TRUE, .hFlip = TRUE),
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_8216324[] =
+static const union AnimCmd sAnim_PlayerArrow_TopRight[] =
{
ANIMCMD_FRAME(16, 5, .vFlip = TRUE),
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_821632C[] =
+static const union AnimCmd sAnim_PlayerArrow_BottomLeft[] =
{
ANIMCMD_FRAME(16, 5, .hFlip = TRUE),
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_8216334[] =
+static const union AnimCmd sAnim_PlayerArrow_BottomRight[] =
{
ANIMCMD_FRAME(16, 5, 0, 0),
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_821633C[] =
+static const union AnimCmd sAnim_PlayerArrow_TopLeft_Flash[] =
{
- ANIMCMD_FRAME(48, 2, 1, 1),
- ANIMCMD_FRAME(32, 5, 1, 1),
- ANIMCMD_FRAME(48, 3, 1, 1),
- ANIMCMD_FRAME(16, 5, 1, 1),
+ ANIMCMD_FRAME(48, 2, .vFlip = TRUE, .hFlip = TRUE),
+ ANIMCMD_FRAME(32, 5, .vFlip = TRUE, .hFlip = TRUE),
+ ANIMCMD_FRAME(48, 3, .vFlip = TRUE, .hFlip = TRUE),
+ ANIMCMD_FRAME(16, 5, .vFlip = TRUE, .hFlip = TRUE),
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_8216350[] =
+static const union AnimCmd sAnim_PlayerArrow_TopRight_Flash[] =
{
ANIMCMD_FRAME(48, 2, .vFlip = TRUE),
ANIMCMD_FRAME(32, 5, .vFlip = TRUE),
@@ -458,7 +511,7 @@ static const union AnimCmd sSpriteAnim_8216350[] =
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_8216364[] =
+static const union AnimCmd sAnim_PlayerArrow_BottomLeft_Flash[] =
{
ANIMCMD_FRAME(48, 2, .hFlip = TRUE),
ANIMCMD_FRAME(32, 5, .hFlip = TRUE),
@@ -467,7 +520,7 @@ static const union AnimCmd sSpriteAnim_8216364[] =
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_8216378[] =
+static const union AnimCmd sAnim_PlayerArrow_BottomRight_Flash[] =
{
ANIMCMD_FRAME(48, 2, 0, 0),
ANIMCMD_FRAME(32, 5, 0, 0),
@@ -476,73 +529,73 @@ static const union AnimCmd sSpriteAnim_8216378[] =
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_821638C[] =
+static const union AnimCmd sAnim_PlayerArrow_TopLeft_Off[] =
{
- ANIMCMD_FRAME(0, 5, 1, 1),
+ ANIMCMD_FRAME(0, 5, .vFlip = TRUE, .hFlip = TRUE),
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_8216394[] =
+static const union AnimCmd sAnim_PlayerArrow_TopRight_Off[] =
{
ANIMCMD_FRAME(0, 5, .vFlip = TRUE),
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_821639C[] =
+static const union AnimCmd sAnim_PlayerArrow_BottomLeft_Off[] =
{
ANIMCMD_FRAME(0, 5, .hFlip = TRUE),
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_82163A4[] =
+static const union AnimCmd sAnim_PlayerArrow_BottomRight_Off[] =
{
ANIMCMD_FRAME(0, 5, 0, 0),
ANIMCMD_END
};
-static const union AnimCmd *const sSpriteAnimTable_82163AC[] =
+static const union AnimCmd *const sAnims_PlayerArrow[] =
{
- sSpriteAnim_821631C,
- sSpriteAnim_8216324,
- sSpriteAnim_821632C,
- sSpriteAnim_8216334,
- sSpriteAnim_821633C,
- sSpriteAnim_8216350,
- sSpriteAnim_8216364,
- sSpriteAnim_8216378,
- sSpriteAnim_821638C,
- sSpriteAnim_8216394,
- sSpriteAnim_821639C,
- sSpriteAnim_82163A4
+ sAnim_PlayerArrow_TopLeft,
+ sAnim_PlayerArrow_TopRight,
+ sAnim_PlayerArrow_BottomLeft,
+ sAnim_PlayerArrow_BottomRight,
+ sAnim_PlayerArrow_TopLeft_Flash,
+ sAnim_PlayerArrow_TopRight_Flash,
+ sAnim_PlayerArrow_BottomLeft_Flash,
+ sAnim_PlayerArrow_BottomRight_Flash,
+ sAnim_PlayerArrow_TopLeft_Off,
+ sAnim_PlayerArrow_TopRight_Off,
+ sAnim_PlayerArrow_BottomLeft_Off,
+ sAnim_PlayerArrow_BottomRight_Off
};
-static const struct SpriteSheet sSpriteSheet_BlenderArrow =
+static const struct SpriteSheet sSpriteSheet_PlayerArrow =
{
- gBerryBlenderArrowTiles, 0x800, 46545
+ gBerryBlenderPlayerArrow_Gfx, 0x800, GFXTAG_PLAYER_ARROW
};
static const struct SpritePalette sSpritePal_BlenderMisc =
{
- gBerryBlenderMiscPalette, 46546
+ gBerryBlenderMiscPalette, PALTAG_MISC
};
-static const struct SpritePalette sSpritePal_BlenderArrow =
+static const struct SpritePalette sSpritePal_PlayerArrow =
{
- gBerryBlenderArrowPalette, 12312
+ gBerryBlenderArrowPalette, PALTAG_PLAYER_ARROW
};
-static const struct SpriteTemplate sBlenderSyncArrow_SpriteTemplate =
+static const struct SpriteTemplate sSpriteTemplate_PlayerArrow =
{
- .tileTag = 46545,
- .paletteTag = 12312,
- .oam = &sOamData_8216314,
- .anims = sSpriteAnimTable_82163AC,
+ .tileTag = GFXTAG_PLAYER_ARROW,
+ .paletteTag = PALTAG_PLAYER_ARROW,
+ .oam = &sOam_PlayerArrow,
+ .anims = sAnims_PlayerArrow,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80833F8
+ .callback = SpriteCB_PlayerArrow
};
-static const struct OamData sOamData_821640C =
+static const struct OamData sOam_ScoreSymbols =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -559,19 +612,19 @@ static const struct OamData sOamData_821640C =
.affineParam = 0,
};
-static const union AnimCmd sSpriteAnim_8216414[] =
+static const union AnimCmd sAnim_ScoreSymbols_Good[] =
{
ANIMCMD_FRAME(0, 20),
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_821641C[] =
+static const union AnimCmd sAnim_ScoreSymbols_Miss[] =
{
ANIMCMD_FRAME(4, 20, 1, 0),
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_8216424[] =
+static const union AnimCmd sAnim_ScoreSymbols_BestFlash[] =
{
ANIMCMD_FRAME(8, 4),
ANIMCMD_FRAME(12, 4),
@@ -581,37 +634,37 @@ static const union AnimCmd sSpriteAnim_8216424[] =
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_821643C[] =
+static const union AnimCmd sAnim_ScoreSymbols_BestStatic[] =
{
ANIMCMD_FRAME(8, 4),
ANIMCMD_END
};
-static const union AnimCmd *const sSpriteAnimTable_8216444[] =
+static const union AnimCmd *const sAnims_ScoreSymbols[] =
{
- sSpriteAnim_8216414,
- sSpriteAnim_821641C,
- sSpriteAnim_8216424,
- sSpriteAnim_821643C,
+ [SCOREANIM_GOOD] = sAnim_ScoreSymbols_Good,
+ [SCOREANIM_MISS] = sAnim_ScoreSymbols_Miss,
+ [SCOREANIM_BEST_FLASH] = sAnim_ScoreSymbols_BestFlash,
+ [SCOREANIM_BEST_STATIC] = sAnim_ScoreSymbols_BestStatic,
};
-static const struct SpriteSheet sUnknown_08339B38 =
+static const struct SpriteSheet sSpriteSheet_ScoreSymbols =
{
- gBerryBlenderMarubatsuTiles, 0x200, 48888
+ gBerryBlenderScoreSymbols_Gfx, 0x200, GFXTAG_SCORE_SYMBOLS
};
-static const struct SpriteTemplate sUnknown_08339B40 =
+static const struct SpriteTemplate sSpriteTemplate_ScoreSymbols =
{
- .tileTag = 48888,
- .paletteTag = 46546,
- .oam = &sOamData_821640C,
- .anims = sSpriteAnimTable_8216444,
+ .tileTag = GFXTAG_SCORE_SYMBOLS,
+ .paletteTag = PALTAG_MISC,
+ .oam = &sOam_ScoreSymbols,
+ .anims = sAnims_ScoreSymbols,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_8082F68
+ .callback = SpriteCB_ScoreSymbol
};
-static const struct OamData sOamData_8216474 =
+static const struct OamData sOam_Particles =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -628,7 +681,7 @@ static const struct OamData sOamData_8216474 =
.affineParam = 0,
};
-static const union AnimCmd sSpriteAnim_821647C[] =
+static const union AnimCmd sAnim_SparkleCrossToX[] =
{
ANIMCMD_FRAME(0, 3),
ANIMCMD_FRAME(1, 4),
@@ -638,7 +691,7 @@ static const union AnimCmd sSpriteAnim_821647C[] =
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_8216494[] =
+static const union AnimCmd sAnim_SparkleXToCross[] =
{
ANIMCMD_FRAME(0, 3),
ANIMCMD_FRAME(2, 4),
@@ -648,7 +701,7 @@ static const union AnimCmd sSpriteAnim_8216494[] =
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_82164AC[] =
+static const union AnimCmd sAnim_SparkleFull[] =
{
ANIMCMD_FRAME(0, 2),
ANIMCMD_FRAME(1, 2),
@@ -661,44 +714,44 @@ static const union AnimCmd sSpriteAnim_82164AC[] =
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_82164D0[] =
+static const union AnimCmd sAnim_GreenArrow[] =
{
ANIMCMD_FRAME(5, 5, 1, 1),
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_82164D8[] =
+static const union AnimCmd sAnim_GreenDot[] =
{
ANIMCMD_FRAME(6, 5, 1, 1),
ANIMCMD_END
};
-static const union AnimCmd *const sSpriteAnimTable_82164E0[] =
+static const union AnimCmd *const sAnims_Particles[] =
{
- sSpriteAnim_821647C,
- sSpriteAnim_8216494,
- sSpriteAnim_82164AC,
- sSpriteAnim_82164D0,
- sSpriteAnim_82164D8,
+ sAnim_SparkleCrossToX, // Only this effect is ever used, rest go unused
+ sAnim_SparkleXToCross,
+ sAnim_SparkleFull,
+ sAnim_GreenArrow,
+ sAnim_GreenDot,
};
-static const struct SpriteSheet sUnknown_08339BD8 =
+static const struct SpriteSheet sSpriteSheet_Particles =
{
- gBerryBlenderParticlesTiles, 0xE0, 23456
+ gBerryBlenderParticles_Gfx, 0xE0, GFXTAG_PARTICLES
};
-static const struct SpriteTemplate sUnknown_08339BE0 =
+static const struct SpriteTemplate sSpriteTemplate_Particles =
{
- .tileTag = 23456,
- .paletteTag = 46546,
- .oam = &sOamData_8216474,
- .anims = sSpriteAnimTable_82164E0,
+ .tileTag = GFXTAG_PARTICLES,
+ .paletteTag = PALTAG_MISC,
+ .oam = &sOam_Particles,
+ .anims = sAnims_Particles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
-static const struct OamData sOamData_8216514 =
+static const struct OamData sOam_CountdownNumbers =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -715,48 +768,48 @@ static const struct OamData sOamData_8216514 =
.affineParam = 0,
};
-static const union AnimCmd sSpriteAnim_821651C[] =
+static const union AnimCmd sAnim_CountdownNumbers_3[] =
{
ANIMCMD_FRAME(32, 30),
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_8216524[] =
+static const union AnimCmd sAnim_CountdownNumbers_2[] =
{
ANIMCMD_FRAME(16, 30),
ANIMCMD_END
};
-static const union AnimCmd sSpriteAnim_821652C[] =
+static const union AnimCmd sAnim_CountdownNumbers_1[] =
{
ANIMCMD_FRAME(0, 30),
ANIMCMD_END
};
-static const union AnimCmd *const sSpriteAnimTable_8216534[] =
+static const union AnimCmd *const sAnims_CountdownNumbers[] =
{
- sSpriteAnim_821651C,
- sSpriteAnim_8216524,
- sSpriteAnim_821652C,
+ sAnim_CountdownNumbers_3,
+ sAnim_CountdownNumbers_2,
+ sAnim_CountdownNumbers_1,
};
-static const struct SpriteSheet sUnknown_08339C24 =
+static const struct SpriteSheet sSpriteSheet_CountdownNumbers =
{
- gBerryBlenderCountdownNumbersTiles, 0x600, 12345
+ gBerryBlenderCountdownNumbers_Gfx, 0x600, GFXTAG_COUNTDOWN_NUMBERS
};
-static const struct SpriteTemplate sUnknown_08339C2C =
+static const struct SpriteTemplate sSpriteTemplate_CountdownNumbers =
{
- .tileTag = 12345,
- .paletteTag = 46546,
- .oam = &sOamData_8216514,
- .anims = sSpriteAnimTable_8216534,
+ .tileTag = GFXTAG_COUNTDOWN_NUMBERS,
+ .paletteTag = PALTAG_MISC,
+ .oam = &sOam_CountdownNumbers,
+ .anims = sAnims_CountdownNumbers,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_8083010
+ .callback = SpriteCB_CountdownNumber
};
-static const struct OamData sOamData_8216560 =
+static const struct OamData sOam_Start =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -773,34 +826,36 @@ static const struct OamData sOamData_8216560 =
.affineParam = 0,
};
-static const union AnimCmd sSpriteAnim_8216568[] =
+static const union AnimCmd sAnim_Start[] =
{
ANIMCMD_FRAME(0, 30),
ANIMCMD_END
};
-static const union AnimCmd *const sSpriteAnimTable_8216570[] =
+static const union AnimCmd *const sAnims_Start[] =
{
- sSpriteAnim_8216568,
+ sAnim_Start,
};
-static const struct SpriteSheet sUnknown_08339C58 =
+static const struct SpriteSheet sSpriteSheet_Start =
{
- gBerryBlenderStartTiles, 0x400, 12346
+ gBerryBlenderStart_Gfx, 0x400, GFXTAG_START
};
-static const struct SpriteTemplate sUnknown_08339C60 =
+static const struct SpriteTemplate sSpriteTemplate_Start =
{
- .tileTag = 12346,
- .paletteTag = 46546,
- .oam = &sOamData_8216560,
- .anims = sSpriteAnimTable_8216570,
+ .tileTag = GFXTAG_START,
+ .paletteTag = PALTAG_MISC,
+ .oam = &sOam_Start,
+ .anims = sAnims_Start,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80830C0
+ .callback = SpriteCB_Start
};
-static const s16 sUnknown_08339C78[][5] =
+// Data for throwing the berries in at the start
+// x, y, bounce speed, x speed, y speed
+static const s16 sBerrySpriteData[][5] =
{
{-10, 20, 10, 2, 1},
{250, 20, 10, -2, 1},
@@ -808,18 +863,54 @@ static const s16 sUnknown_08339C78[][5] =
{250, 140, 10, -2, -1},
};
-static const u8 sOpponentBerrySets[][3] =
-{
- {4, 3, 2}, {0, 4, 3}, {1, 0, 4}, {2, 1, 0}, {3, 2, 1}, {0, 2, 3}, {1, 3, 4}, {2, 4, 0}, {3, 0, 1}, {4, 1, 2},
-};
-
-static const u8 sSpecialOpponentBerrySets[] = {30, 31, 32, 33, 34};
-
-static const u8 sUnknown_08339CC3[] = {1, 1, 2, 3, 4};
-
-static const u8 sUnknown_08339CC8[] = {0x1C, 0x16, 0x13, 0x1A, 0x19, 0x0E, 0x0D, 0x0B, 0x07, 0x15};
-
-static const u8 sUnknown_08339CD2[] =
+// There are only 5 different berries the NPCs will ever use
+// Each of these sets represents 3 berries chosen to be used by the NPCs
+// If the player's berry is one of the 5 possible berries, a set is chosen that excludes it
+static const u8 sOpponentBerrySets[NUM_NPC_BERRIES * 2][3] =
+{
+ // These sets are used if the player chose one of the 5 NPC berries
+ {ITEM_TO_BERRY(ITEM_ASPEAR_BERRY) - 1, ITEM_TO_BERRY(ITEM_RAWST_BERRY) - 1, ITEM_TO_BERRY(ITEM_PECHA_BERRY) - 1}, // player chose Cheri Berry
+ {ITEM_TO_BERRY(ITEM_CHERI_BERRY) - 1, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY) - 1, ITEM_TO_BERRY(ITEM_RAWST_BERRY) - 1}, // player chose Chesto Berry
+ {ITEM_TO_BERRY(ITEM_CHESTO_BERRY) - 1, ITEM_TO_BERRY(ITEM_CHERI_BERRY) - 1, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY) - 1}, // player chose Pecha Berry
+ {ITEM_TO_BERRY(ITEM_PECHA_BERRY) - 1, ITEM_TO_BERRY(ITEM_CHESTO_BERRY) - 1, ITEM_TO_BERRY(ITEM_CHERI_BERRY) - 1}, // player chose Rawst Berry
+ {ITEM_TO_BERRY(ITEM_RAWST_BERRY) - 1, ITEM_TO_BERRY(ITEM_PECHA_BERRY) - 1, ITEM_TO_BERRY(ITEM_CHESTO_BERRY) - 1}, // player chose Aspear Berry
+
+ // These sets are used if the player chose a different berry (set is selected by player's berry % 5)
+ {ITEM_TO_BERRY(ITEM_CHERI_BERRY) - 1, ITEM_TO_BERRY(ITEM_PECHA_BERRY) - 1, ITEM_TO_BERRY(ITEM_RAWST_BERRY) - 1}, // player chose Leppa, Figy, ...
+ {ITEM_TO_BERRY(ITEM_CHESTO_BERRY) - 1, ITEM_TO_BERRY(ITEM_RAWST_BERRY) - 1, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY) - 1}, // player chose Oran, Wiki, ...
+ {ITEM_TO_BERRY(ITEM_PECHA_BERRY) - 1, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY) - 1, ITEM_TO_BERRY(ITEM_CHERI_BERRY) - 1}, // player chose Persim, Mago, ...
+ {ITEM_TO_BERRY(ITEM_RAWST_BERRY) - 1, ITEM_TO_BERRY(ITEM_CHERI_BERRY) - 1, ITEM_TO_BERRY(ITEM_CHESTO_BERRY) - 1}, // player chose Lum, Aguav, ...
+ {ITEM_TO_BERRY(ITEM_ASPEAR_BERRY) - 1, ITEM_TO_BERRY(ITEM_CHESTO_BERRY) - 1, ITEM_TO_BERRY(ITEM_PECHA_BERRY) - 1}, // player chose Sitrus, Iapapa, ...
+};
+
+// Berry master's berries follow the same rules as above, but instead of explicitly listing
+// the alternate sets if the player chooses one of these berries, it implicitly uses these berries - 5, i.e. Tamato - Nomel
+static const u8 sBerryMasterBerries[] = {
+ ITEM_TO_BERRY(ITEM_SPELON_BERRY) - 1,
+ ITEM_TO_BERRY(ITEM_PAMTRE_BERRY) - 1,
+ ITEM_TO_BERRY(ITEM_WATMEL_BERRY) - 1,
+ ITEM_TO_BERRY(ITEM_DURIN_BERRY) - 1,
+ ITEM_TO_BERRY(ITEM_BELUE_BERRY) - 1
+};
+
+// "0 players" is link
+static const u8 sNumPlayersToSpeedDivisor[] = {1, 1, 2, 3, 4};
+
+// Black pokeblocks will use one of these random combinations of flavors
+static const u8 sBlackPokeblockFlavorFlags[] = {
+ (1 << FLAVOR_SOUR) | (1 << FLAVOR_BITTER) | (1 << FLAVOR_SWEET),
+ (1 << FLAVOR_SOUR) | (1 << FLAVOR_SWEET) | (1 << FLAVOR_DRY),
+ (1 << FLAVOR_SOUR) | (1 << FLAVOR_DRY) | (1 << FLAVOR_SPICY),
+ (1 << FLAVOR_SOUR) | (1 << FLAVOR_BITTER) | (1 << FLAVOR_DRY),
+ (1 << FLAVOR_SOUR) | (1 << FLAVOR_BITTER) | (1 << FLAVOR_SPICY),
+ (1 << FLAVOR_BITTER) | (1 << FLAVOR_SWEET) | (1 << FLAVOR_DRY),
+ (1 << FLAVOR_BITTER) | (1 << FLAVOR_SWEET) | (1 << FLAVOR_SPICY),
+ (1 << FLAVOR_BITTER) | (1 << FLAVOR_DRY) | (1 << FLAVOR_SPICY),
+ (1 << FLAVOR_SWEET) | (1 << FLAVOR_DRY) | (1 << FLAVOR_SPICY),
+ (1 << FLAVOR_SOUR) | (1 << FLAVOR_SWEET) | (1 << FLAVOR_SPICY),
+};
+
+static const u8 sUnused[] =
{
0xfe, 0x02, 0x02, 0xce, 0xd0, 0x37, 0x44, 0x07, 0x1f, 0x0c, 0x10,
0x00, 0xff, 0xfe, 0x91, 0x72, 0xce, 0xd0, 0x37, 0x44, 0x07, 0x1f,
@@ -840,20 +931,18 @@ static const struct WindowTemplate sBlenderRecordWindowTemplate =
.baseBlock = 8
};
-// code
-
-static void Blender_ControlHitPitch(void)
+static void UpdateHitPitch(void)
{
- m4aMPlayPitchControl(&gMPlayInfo_SE2, 0xFFFF, 2 * (sBerryBlenderData->field_4C - 128));
+ m4aMPlayPitchControl(&gMPlayInfo_SE2, 0xFFFF, 2 * (sBerryBlender->speed - MIN_ARROW_SPEED));
}
-static void VBlankCB0_BerryBlender(void)
+static void VBlankCB_BerryBlender(void)
{
- BerryBlender_SetBackgroundsPos();
- SetBgAffine(2, sBerryBlenderData->bgAffineSrc.texX, sBerryBlenderData->bgAffineSrc.texY,
- sBerryBlenderData->bgAffineSrc.scrX, sBerryBlenderData->bgAffineSrc.scrY,
- sBerryBlenderData->bgAffineSrc.sx, sBerryBlenderData->bgAffineSrc.sy,
- sBerryBlenderData->bgAffineSrc.alpha);
+ SetBgPos();
+ SetBgAffine(2, sBerryBlender->bgAffineSrc.texX, sBerryBlender->bgAffineSrc.texY,
+ sBerryBlender->bgAffineSrc.scrX, sBerryBlender->bgAffineSrc.scrY,
+ sBerryBlender->bgAffineSrc.sx, sBerryBlender->bgAffineSrc.sy,
+ sBerryBlender->bgAffineSrc.alpha);
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
@@ -861,64 +950,64 @@ static void VBlankCB0_BerryBlender(void)
static bool8 LoadBerryBlenderGfx(void)
{
- switch (sBerryBlenderData->loadGfxState)
+ switch (sBerryBlender->loadGfxState)
{
case 0:
- sBerryBlenderData->tilesBuffer = AllocZeroed(GetDecompressedDataSize(sBlenderCenterGfx) + 100);
- LZDecompressWram(sBlenderCenterGfx, sBerryBlenderData->tilesBuffer);
- sBerryBlenderData->loadGfxState++;
+ sBerryBlender->tilesBuffer = AllocZeroed(GetDecompressedDataSize(gBerryBlenderCenter_Gfx) + 100);
+ LZDecompressWram(gBerryBlenderCenter_Gfx, sBerryBlender->tilesBuffer);
+ sBerryBlender->loadGfxState++;
break;
case 1:
- CopyToBgTilemapBuffer(2, sBlenderCenterMap, 0x400, 0);
+ CopyToBgTilemapBuffer(2, sBlenderCenter_Tilemap, 0x400, 0);
CopyBgTilemapBufferToVram(2);
- LoadPalette(sBlenderCenterPal, 0, 0x100);
- sBerryBlenderData->loadGfxState++;
+ LoadPalette(sBlenderCenter_Pal, 0, 0x100);
+ sBerryBlender->loadGfxState++;
break;
case 2:
- LoadBgTiles(2, sBerryBlenderData->tilesBuffer, GetDecompressedDataSize(sBlenderCenterGfx), 0);
- sBerryBlenderData->loadGfxState++;
+ LoadBgTiles(2, sBerryBlender->tilesBuffer, GetDecompressedDataSize(gBerryBlenderCenter_Gfx), 0);
+ sBerryBlender->loadGfxState++;
break;
case 3:
- LZDecompressWram(gUnknown_08D91DB8, sBerryBlenderData->tilesBuffer);
- sBerryBlenderData->loadGfxState++;
+ LZDecompressWram(gBerryBlenderOuter_Gfx, sBerryBlender->tilesBuffer);
+ sBerryBlender->loadGfxState++;
break;
case 4:
- LoadBgTiles(1, sBerryBlenderData->tilesBuffer, GetDecompressedDataSize(gUnknown_08D91DB8), 0);
- sBerryBlenderData->loadGfxState++;
+ LoadBgTiles(1, sBerryBlender->tilesBuffer, GetDecompressedDataSize(gBerryBlenderOuter_Gfx), 0);
+ sBerryBlender->loadGfxState++;
break;
case 5:
- LZDecompressWram(gUnknown_08D927EC, sBerryBlenderData->tilesBuffer);
- sBerryBlenderData->loadGfxState++;
+ LZDecompressWram(gBerryBlenderOuter_Tilemap, sBerryBlender->tilesBuffer);
+ sBerryBlender->loadGfxState++;
break;
case 6:
- CopyToBgTilemapBuffer(1, sBerryBlenderData->tilesBuffer, GetDecompressedDataSize(gUnknown_08D927EC), 0);
+ CopyToBgTilemapBuffer(1, sBerryBlender->tilesBuffer, GetDecompressedDataSize(gBerryBlenderOuter_Tilemap), 0);
CopyBgTilemapBufferToVram(1);
- sBerryBlenderData->loadGfxState++;
+ sBerryBlender->loadGfxState++;
break;
case 7:
- LoadPalette(sBlenderOuterPal, 0x80, 0x20);
- sBerryBlenderData->loadGfxState++;
+ LoadPalette(sBlenderOuter_Pal, 0x80, 0x20);
+ sBerryBlender->loadGfxState++;
break;
case 8:
- LoadSpriteSheet(&sSpriteSheet_BlenderArrow);
- LoadSpriteSheet(&sUnknown_08339BD8);
- LoadSpriteSheet(&sUnknown_08339B38);
- sBerryBlenderData->loadGfxState++;
+ LoadSpriteSheet(&sSpriteSheet_PlayerArrow);
+ LoadSpriteSheet(&sSpriteSheet_Particles);
+ LoadSpriteSheet(&sSpriteSheet_ScoreSymbols);
+ sBerryBlender->loadGfxState++;
break;
case 9:
- LoadSpriteSheet(&sUnknown_08339C24);
- LoadSpriteSheet(&sUnknown_08339C58);
- LoadSpritePalette(&sSpritePal_BlenderArrow);
+ LoadSpriteSheet(&sSpriteSheet_CountdownNumbers);
+ LoadSpriteSheet(&sSpriteSheet_Start);
+ LoadSpritePalette(&sSpritePal_PlayerArrow);
LoadSpritePalette(&sSpritePal_BlenderMisc);
- Free(sBerryBlenderData->tilesBuffer);
- sBerryBlenderData->loadGfxState = 0;
+ Free(sBerryBlender->tilesBuffer);
+ sBerryBlender->loadGfxState = 0;
return TRUE;
}
return FALSE;
}
-static void sub_807F9D0(void)
+static void DrawBlenderBg(void)
{
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14);
CopyBgTilemapBufferToVram(0);
@@ -933,7 +1022,7 @@ static void sub_807F9D0(void)
static void InitBerryBlenderWindows(void)
{
- if (InitWindows(sBerryBlender_WindowTemplates))
+ if (InitWindows(sWindowTemplates))
{
s32 i;
@@ -946,24 +1035,27 @@ static void InitBerryBlenderWindows(void)
}
}
+// gSpecialVar_0x8004 is the number of NPC opponents
+// Set to 0 indicates it's a link blender
void DoBerryBlending(void)
{
- if (sBerryBlenderData == NULL)
- sBerryBlenderData = AllocZeroed(sizeof(*sBerryBlenderData));
+ if (sBerryBlender == NULL)
+ sBerryBlender = AllocZeroed(sizeof(*sBerryBlender));
- sBerryBlenderData->gameEndState = 0;
- sBerryBlenderData->mainState = 0;
- sBerryBlenderData->gameEndState = 0;
+ sBerryBlender->gameEndState = 0;
+ sBerryBlender->mainState = 0;
+ sBerryBlender->gameEndState = 0;
- Blender_SetPlayerNamesLocal(gSpecialVar_0x8004);
- SetMainCallback2(sub_807FAC8);
+ InitLocalPlayers(gSpecialVar_0x8004);
+ SetMainCallback2(CB2_LoadBerryBlender);
}
-static void sub_807FAC8(void)
+// Show the blender screen initially and prompt to choose a berry
+static void CB2_LoadBerryBlender(void)
{
s32 i;
- switch (sBerryBlenderData->mainState)
+ switch (sBerryBlender->mainState)
{
case 0:
SetGpuReg(REG_OFFSET_DISPCNT, 0);
@@ -971,68 +1063,69 @@ static void sub_807FAC8(void)
FreeAllSpritePalettes();
SetVBlankCallback(NULL);
ResetBgsAndClearDma3BusyFlags(0);
- InitBgsFromTemplates(1, sBerryBlenderBgTemplates, ARRAY_COUNT(sBerryBlenderBgTemplates));
- SetBgTilemapBuffer(1, sBerryBlenderData->tilemapBuffers[0]);
- SetBgTilemapBuffer(2, sBerryBlenderData->tilemapBuffers[1]);
+ InitBgsFromTemplates(1, sBgTemplates, ARRAY_COUNT(sBgTemplates));
+ SetBgTilemapBuffer(1, sBerryBlender->tilemapBuffers[0]);
+ SetBgTilemapBuffer(2, sBerryBlender->tilemapBuffers[1]);
LoadUserWindowBorderGfx(0, 1, 0xD0);
LoadMessageBoxGfx(0, 0x14, 0xF0);
InitBerryBlenderWindows();
- sBerryBlenderData->mainState++;
- sBerryBlenderData->field_118 = 0;
- sBerryBlenderData->field_116 = 0;
- sBerryBlenderData->field_11A = 0x50;
- sBerryBlenderData->bg_X = 0;
- sBerryBlenderData->bg_Y = 0;
- sBerryBlenderData->loadGfxState = 0;
+ sBerryBlender->mainState++;
+ sBerryBlender->maxProgressBarValue = 0;
+ sBerryBlender->progressBarValue = 0;
+ sBerryBlender->centerScale = 80;
+ sBerryBlender->bg_X = 0;
+ sBerryBlender->bg_Y = 0;
+ sBerryBlender->loadGfxState = 0;
- sub_8082D28();
+ UpdateBlenderCenter();
break;
case 1:
if (LoadBerryBlenderGfx())
{
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
- sBerryBlenderData->syncArrowSpriteIds[i] = CreateSprite(&sBlenderSyncArrow_SpriteTemplate, sBlenderSyncArrowsPos[i][0], sBlenderSyncArrowsPos[i][1], 1);
- StartSpriteAnim(&gSprites[sBerryBlenderData->syncArrowSpriteIds[i]], i + 8);
+ sBerryBlender->playerArrowSpriteIds[i] = CreateSprite(&sSpriteTemplate_PlayerArrow, sPlayerArrowPos[i][0], sPlayerArrowPos[i][1], 1);
+ StartSpriteAnim(&gSprites[sBerryBlender->playerArrowSpriteIds[i]], i + 8);
}
- if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
+ if (gReceivedRemoteLinkPlayers && gWirelessCommType)
{
LoadWirelessStatusIndicatorSpriteGfx();
CreateWirelessStatusIndicatorSprite(0, 0);
}
- SetVBlankCallback(VBlankCB0_BerryBlender);
- sBerryBlenderData->mainState++;
+ SetVBlankCallback(VBlankCB_BerryBlender);
+ sBerryBlender->mainState++;
}
break;
case 2:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
- sub_8082D28();
- sBerryBlenderData->mainState++;
+ UpdateBlenderCenter();
+ sBerryBlender->mainState++;
break;
case 3:
- sub_807F9D0();
+ DrawBlenderBg();
if (!gPaletteFade.active)
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
break;
case 4:
- if (Blender_PrintText(&sBerryBlenderData->textState, sText_BerryBlenderStart, GetPlayerTextSpeedDelay()))
- sBerryBlenderData->mainState++;
+ if (Blender_PrintText(&sBerryBlender->textState, sText_BerryBlenderStart, GetPlayerTextSpeedDelay()))
+ sBerryBlender->mainState++;
break;
case 5:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
break;
case 6:
if (!gPaletteFade.active)
{
+ // Go to bag menu to choose berry, set callback to StartBlender
FreeAllWindowBuffers();
UnsetBgTilemapBuffer(2);
UnsetBgTilemapBuffer(1);
SetVBlankCallback(NULL);
- ChooseBerrySetCallback(sub_807FFA4);
+ ChooseBerryForMachine(StartBlender);
- sBerryBlenderData->mainState = 0;
+ sBerryBlender->mainState = 0;
}
break;
}
@@ -1043,47 +1136,71 @@ static void sub_807FAC8(void)
UpdatePaletteFade();
}
-static void sub_807FD08(struct Sprite* sprite)
+#define sTargetY data[0]
+#define sX data[1]
+#define sY data[2]
+#define sBounceSpeed data[3]
+#define sYUpSpeed data[4]
+#define sBounces data[5]
+#define sXSpeed data[6]
+#define sYDownSpeed data[7]
+
+// For throwing berries into the machine
+static void SpriteCB_Berry(struct Sprite* sprite)
{
- sprite->data[1] += sprite->data[6];
- sprite->data[2] -= sprite->data[4];
- sprite->data[2] += sprite->data[7];
- sprite->data[0] += sprite->data[7];
- sprite->data[4]--;
+ sprite->sX += sprite->sXSpeed;
+ sprite->sY -= sprite->sYUpSpeed;
+ sprite->sY += sprite->sYDownSpeed;
+ sprite->sTargetY += sprite->sYDownSpeed;
+ sprite->sYUpSpeed--;
- if (sprite->data[0] < sprite->data[2])
+ if (sprite->sTargetY < sprite->sY)
{
- sprite->data[3] = sprite->data[4] = sprite->data[3] - 1;
+ sprite->sBounceSpeed = sprite->sYUpSpeed = sprite->sBounceSpeed - 1;
- if (++sprite->data[5] > 3)
+ if (++sprite->sBounces > 3)
DestroySprite(sprite);
else
- PlaySE(SE_TB_KARA);
+ PlaySE(SE_BALL_TRAY_EXIT);
}
- sprite->pos1.x = sprite->data[1];
- sprite->pos1.y = sprite->data[2];
+ sprite->pos1.x = sprite->sX;
+ sprite->pos1.y = sprite->sY;
}
-static void sub_807FD64(struct Sprite* sprite, s16 a2, s16 a3, s16 a4, s16 a5, s16 a6)
+static void SetBerrySpriteData(struct Sprite* sprite, s16 x, s16 y, s16 bounceSpeed, s16 xSpeed, s16 ySpeed)
{
- sprite->data[0] = a3;
- sprite->data[1] = a2;
- sprite->data[2] = a3;
- sprite->data[3] = a4;
- sprite->data[4] = 10;
- sprite->data[5] = 0;
- sprite->data[6] = a5;
- sprite->data[7] = a6;
- sprite->callback = sub_807FD08;
+ sprite->sTargetY = y;
+ sprite->sX = x;
+ sprite->sY = y;
+ sprite->sBounceSpeed = bounceSpeed;
+ sprite->sYUpSpeed = 10;
+ sprite->sBounces = 0;
+ sprite->sXSpeed = xSpeed;
+ sprite->sYDownSpeed = ySpeed;
+ sprite->callback = SpriteCB_Berry;
}
-static void sub_807FD90(u16 a0, u8 a1)
+#undef sTargetY
+#undef sX
+#undef sY
+#undef sBounceSpeed
+#undef sYUpSpeed
+#undef sBounces
+#undef sXSpeed
+#undef sYDownSpeed
+
+static void CreateBerrySprite(u16 a0, u8 playerId)
{
- u8 spriteId = LoadSpinningBerryPicGfx(a0 + 123, 0, 80, a1 & 1);
- sub_807FD64(&gSprites[spriteId], sUnknown_08339C78[a1][0], sUnknown_08339C78[a1][1], sUnknown_08339C78[a1][2], sUnknown_08339C78[a1][3], sUnknown_08339C78[a1][4]);
+ u8 spriteId = CreateSpinningBerrySprite(a0 + FIRST_BERRY_INDEX - 10, 0, 80, playerId & 1);
+ SetBerrySpriteData(&gSprites[spriteId],
+ sBerrySpriteData[playerId][0],
+ sBerrySpriteData[playerId][1],
+ sBerrySpriteData[playerId][2],
+ sBerrySpriteData[playerId][3],
+ sBerrySpriteData[playerId][4]);
}
-static void Blender_CopyBerryData(struct BlenderBerry* berry, u16 itemId)
+static void ConvertItemToBlenderBerry(struct BlenderBerry* berry, u16 itemId)
{
const struct Berry *berryInfo = GetBerryInfo(ITEM_TO_BERRY(itemId));
@@ -1094,19 +1211,19 @@ static void Blender_CopyBerryData(struct BlenderBerry* berry, u16 itemId)
berry->flavors[FLAVOR_SWEET] = berryInfo->sweet;
berry->flavors[FLAVOR_BITTER] = berryInfo->bitter;
berry->flavors[FLAVOR_SOUR] = berryInfo->sour;
- berry->smoothness = berryInfo->smoothness;
+ berry->flavors[FLAVOR_COUNT] = berryInfo->smoothness;
}
-static void Blender_SetPlayerNamesLocal(u8 opponentsNum)
+static void InitLocalPlayers(u8 opponentsNum)
{
switch (opponentsNum)
{
- case 0:
+ case 0: // Link games have 0 in-game opponents
gInGameOpponentsNo = 0;
break;
case 1:
gInGameOpponentsNo = 1;
- sBerryBlenderData->playersNo = 2;
+ sBerryBlender->numPlayers = 2;
StringCopy(gLinkPlayers[0].name, gSaveBlock2Ptr->playerName);
if (!FlagGet(FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER))
@@ -1119,7 +1236,7 @@ static void Blender_SetPlayerNamesLocal(u8 opponentsNum)
break;
case 2:
gInGameOpponentsNo = 2;
- sBerryBlenderData->playersNo = 3;
+ sBerryBlender->numPlayers = 3;
StringCopy(gLinkPlayers[0].name, gSaveBlock2Ptr->playerName);
StringCopy(gLinkPlayers[1].name, sBlenderOpponentsNames[BLENDER_DUDE]);
StringCopy(gLinkPlayers[2].name, sBlenderOpponentsNames[BLENDER_LASSIE]);
@@ -1130,7 +1247,7 @@ static void Blender_SetPlayerNamesLocal(u8 opponentsNum)
break;
case 3:
gInGameOpponentsNo = 3;
- sBerryBlenderData->playersNo = 4;
+ sBerryBlender->numPlayers = 4;
StringCopy(gLinkPlayers[0].name, gSaveBlock2Ptr->playerName);
StringCopy(gLinkPlayers[1].name, sBlenderOpponentsNames[BLENDER_MISS]);
StringCopy(gLinkPlayers[2].name, sBlenderOpponentsNames[BLENDER_LADDIE]);
@@ -1144,94 +1261,95 @@ static void Blender_SetPlayerNamesLocal(u8 opponentsNum)
}
}
-static void sub_807FFA4(void)
+static void StartBlender(void)
{
s32 i;
SetGpuReg(REG_OFFSET_DISPCNT, 0);
- if (sBerryBlenderData == NULL)
- sBerryBlenderData = AllocZeroed(sizeof(*sBerryBlenderData));
+ if (sBerryBlender == NULL)
+ sBerryBlender = AllocZeroed(sizeof(*sBerryBlender));
- sBerryBlenderData->mainState = 0;
- sBerryBlenderData->field_10C = 0;
+ sBerryBlender->mainState = 0;
+ sBerryBlender->unk1 = 0;
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
- sBerryBlenderData->chosenItemId[i] = ITEM_NONE;
+ sBerryBlender->chosenItemId[i] = ITEM_NONE;
- Blender_SetPlayerNamesLocal(gSpecialVar_0x8004);
+ InitLocalPlayers(gSpecialVar_0x8004);
if (gSpecialVar_0x8004 == 0)
- SetMainCallback2(sub_8080018);
+ SetMainCallback2(CB2_StartBlenderLink);
else
- SetMainCallback2(sub_80808D4);
+ SetMainCallback2(CB2_StartBlenderLocal);
}
-static void sub_8080018(void)
+static void CB2_StartBlenderLink(void)
{
s32 i, j;
- switch (sBerryBlenderData->mainState)
+ switch (sBerryBlender->mainState)
{
case 0:
- sub_8080588();
+ InitBlenderBgs();
gLinkType = LINKTYPE_BERRY_BLENDER;
- sBerryBlenderData->field_72 = 0;
+ sBerryBlender->slowdownTimer = 0;
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
- sBerryBlenderData->field_64[i] = 0;
- for (j = 0; j < 3; j++)
+ sBerryBlender->playerContinueResponses[i] = 0;
+ for (j = 0; j < NUM_SCORE_TYPES; j++)
{
- sBerryBlenderData->scores[i][j] = 0;
+ sBerryBlender->scores[i][j] = 0;
}
}
- sBerryBlenderData->playAgainState = 0;
- sBerryBlenderData->max_RPM = 0;
- sBerryBlenderData->loadGfxState = 0;
- sBerryBlenderData->mainState++;
+ sBerryBlender->playAgainState = 0;
+ sBerryBlender->maxRPM = 0;
+ sBerryBlender->loadGfxState = 0;
+ sBerryBlender->mainState++;
break;
case 1:
if (LoadBerryBlenderGfx())
{
- sBerryBlenderData->mainState++;
- sub_8082D28();
+ sBerryBlender->mainState++;
+ UpdateBlenderCenter();
}
break;
case 2:
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
- sBerryBlenderData->syncArrowSprite2Ids[i] = CreateSprite(&sBlenderSyncArrow_SpriteTemplate, sBlenderSyncArrowsPos[i][0], sBlenderSyncArrowsPos[i][1], 1);
- StartSpriteAnim(&gSprites[sBerryBlenderData->syncArrowSprite2Ids[i]], i + 8);
+ sBerryBlender->playerArrowSpriteIds2[i] = CreateSprite(&sSpriteTemplate_PlayerArrow, sPlayerArrowPos[i][0], sPlayerArrowPos[i][1], 1);
+ StartSpriteAnim(&gSprites[sBerryBlender->playerArrowSpriteIds2[i]], i + 8);
}
- if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
+ if (gReceivedRemoteLinkPlayers && gWirelessCommType)
{
LoadWirelessStatusIndicatorSpriteGfx();
CreateWirelessStatusIndicatorSprite(0, 0);
}
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
break;
case 3:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
break;
case 4:
- sub_807F9D0();
+ DrawBlenderBg();
if (!gPaletteFade.active)
{
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
}
break;
case 5:
- Blender_PrintText(&sBerryBlenderData->textState, sText_CommunicationStandby, 0);
- sBerryBlenderData->mainState = 8;
- sBerryBlenderData->framesToWait = 0;
+ Blender_PrintText(&sBerryBlender->textState, sText_CommunicationStandby, 0);
+ sBerryBlender->mainState = 8;
+ sBerryBlender->framesToWait = 0;
break;
case 8:
- sBerryBlenderData->mainState++;
- sBerryBlenderData->field_114 = 0;
- Blender_CopyBerryData(&sBerryBlenderData->blendedBerries[0], gSpecialVar_ItemId);
- memcpy(gBlockSendBuffer, &sBerryBlenderData->blendedBerries[0], sizeof(struct BlenderBerry));
+ // Send berry choice to link partners
+ sBerryBlender->mainState++;
+ sBerryBlender->playerToThrowBerry = 0;
+ ConvertItemToBlenderBerry(&sBerryBlender->blendedBerries[0], gSpecialVar_ItemId);
+ memcpy(gBlockSendBuffer, &sBerryBlender->blendedBerries[0], sizeof(struct BlenderBerry));
SetLinkStandbyCallback();
- sBerryBlenderData->framesToWait = 0;
+ sBerryBlender->framesToWait = 0;
break;
case 9:
if (IsLinkTaskFinished())
@@ -1239,122 +1357,130 @@ static void sub_8080018(void)
ResetBlockReceivedFlags();
if (GetMultiplayerId() == 0)
SendBlockRequest(4);
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
}
break;
case 10:
- if (++sBerryBlenderData->framesToWait > 20)
+ if (++sBerryBlender->framesToWait > 20)
{
+ // Wait for partners' berries
ClearDialogWindowAndFrameToTransparent(4, TRUE);
if (GetBlockReceivedStatus() == GetLinkPlayerCountAsBitFlags())
{
for (i = 0; i < GetLinkPlayerCount(); i++)
{
- memcpy(&sBerryBlenderData->blendedBerries[i], &gBlockRecvBuffer[i][0], sizeof(struct BlenderBerry));
- sBerryBlenderData->chosenItemId[i] = sBerryBlenderData->blendedBerries[i].itemId;
+ memcpy(&sBerryBlender->blendedBerries[i], &gBlockRecvBuffer[i][0], sizeof(struct BlenderBerry));
+ sBerryBlender->chosenItemId[i] = sBerryBlender->blendedBerries[i].itemId;
}
ResetBlockReceivedFlags();
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
}
}
break;
case 11:
- sBerryBlenderData->playersNo = GetLinkPlayerCount();
+ sBerryBlender->numPlayers = GetLinkPlayerCount();
+ // Throw 1 player's berry in
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
- if (sBerryBlenderData->field_114 == sUnknown_083399D0[sBerryBlenderData->playersNo - 2][i])
+ if (sBerryBlender->playerToThrowBerry == sPlayerIdMap[sBerryBlender->numPlayers - 2][i])
{
- sub_807FD90(sBerryBlenderData->chosenItemId[sBerryBlenderData->field_114], i);
+ CreateBerrySprite(sBerryBlender->chosenItemId[sBerryBlender->playerToThrowBerry], i);
break;
}
}
- sBerryBlenderData->framesToWait = 0;
- sBerryBlenderData->mainState++;
- sBerryBlenderData->field_114++;
+ sBerryBlender->framesToWait = 0;
+ sBerryBlender->mainState++;
+ sBerryBlender->playerToThrowBerry++;
break;
case 12:
- if (++sBerryBlenderData->framesToWait > 60)
+ if (++sBerryBlender->framesToWait > 60)
{
- if (sBerryBlenderData->field_114 >= sBerryBlenderData->playersNo)
+ if (sBerryBlender->playerToThrowBerry >= sBerryBlender->numPlayers)
{
- sBerryBlenderData->mainState++;
- sBerryBlenderData->arrowPos = sUnknown_083399DC[sUnknown_083399E4[sBerryBlenderData->playersNo - 2]] - 22528;
+ // Finished throwing berries in
+ sBerryBlender->mainState++;
+ sBerryBlender->arrowPos = sArrowStartPos[sArrowStartPosIds[sBerryBlender->numPlayers - 2]] - ARROW_FALL_ROTATION;
}
else
{
- sBerryBlenderData->mainState--;
+ // Haven't finished throwing berries in, go back to prev step
+ sBerryBlender->mainState--;
}
- sBerryBlenderData->framesToWait = 0;
+ sBerryBlender->framesToWait = 0;
}
break;
case 13:
if (IsLinkTaskFinished())
{
- sBerryBlenderData->mainState++;
- sub_8082CB4(&sBerryBlenderData->bgAffineSrc);
- PlaySE(SE_RU_HYUU);
+ sBerryBlender->mainState++;
+ DrawBlenderCenter(&sBerryBlender->bgAffineSrc);
+ PlaySE(SE_FALL);
ShowBg(2);
}
break;
case 14:
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON);
- sBerryBlenderData->arrowPos += 0x200;
- sBerryBlenderData->field_11A += 4;
- if (sBerryBlenderData->field_11A > 0xFF)
+ sBerryBlender->arrowPos += 0x200;
+ sBerryBlender->centerScale += 4;
+ if (sBerryBlender->centerScale > 255)
{
SetGpuRegBits(REG_OFFSET_BG2CNT, 2);
- sBerryBlenderData->mainState++;
- sBerryBlenderData->field_11A = 0x100;
- sBerryBlenderData->arrowPos = sUnknown_083399DC[sUnknown_083399E4[sBerryBlenderData->playersNo - 2]];
- sBerryBlenderData->framesToWait = 0;
- PlaySE(SE_TRACK_DOOR);
- sub_808074C();
- Blender_PrintPlayerNames();
+ sBerryBlender->mainState++;
+ sBerryBlender->centerScale = 256;
+ sBerryBlender->arrowPos = sArrowStartPos[sArrowStartPosIds[sBerryBlender->numPlayers - 2]];
+ sBerryBlender->framesToWait = 0;
+ PlaySE(SE_TRUCK_DOOR);
+ SetPlayerIdMaps();
+ PrintPlayerNames();
}
- sub_8082CB4(&sBerryBlenderData->bgAffineSrc);
+ DrawBlenderCenter(&sBerryBlender->bgAffineSrc);
break;
case 15:
- if (sub_8083380())
+ if (UpdateBlenderLandScreenShake())
{
- sBerryBlenderData->framesToWait = 0;
- sBerryBlenderData->mainState++;
+ sBerryBlender->framesToWait = 0;
+ sBerryBlender->mainState++;
}
- sub_8082CB4(&sBerryBlenderData->bgAffineSrc);
+ DrawBlenderCenter(&sBerryBlender->bgAffineSrc);
break;
case 16:
- CreateSprite(&sUnknown_08339C2C, 120, -16, 3);
- sBerryBlenderData->mainState++;
+ CreateSprite(&sSpriteTemplate_CountdownNumbers, 120, -16, 3);
+ sBerryBlender->mainState++;
+ break;
+ case 17:
+ // Wait here for the countdown
+ // State is progressed in SpriteCB_Start
break;
case 18:
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
break;
case 19:
SetLinkStandbyCallback();
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
break;
case 20:
if (IsLinkTaskFinished())
{
- sub_800A418();
- sBerryBlenderData->mainState++;
+ SetBerryBlenderLinkCallback();
+ sBerryBlender->mainState++;
}
break;
case 21:
- sBerryBlenderData->field_4C = 128;
- sBerryBlenderData->gameFrameTime = 0;
- SetMainCallback2(sub_8081898);
+ sBerryBlender->speed = MIN_ARROW_SPEED;
+ sBerryBlender->gameFrameTime = 0;
+ SetMainCallback2(CB2_PlayBlender);
if (GetCurrentMapMusic() != MUS_CYCLING)
{
- sBerryBlenderData->field_154 = GetCurrentMapMusic();
+ sBerryBlender->savedMusic = GetCurrentMapMusic();
}
PlayBGM(MUS_CYCLING);
break;
}
- Blender_DummiedOutFunc(sBerryBlenderData->bg_X, sBerryBlenderData->bg_Y);
+ Blender_DummiedOutFunc(sBerryBlender->bg_X, sBerryBlender->bg_Y);
RunTasks();
AnimateSprites();
BuildOamBuffer();
@@ -1362,7 +1488,7 @@ static void sub_8080018(void)
UpdatePaletteFade();
}
-static void sub_8080588(void)
+static void InitBlenderBgs(void)
{
SetGpuReg(REG_OFFSET_DISPCNT, 0);
@@ -1370,47 +1496,47 @@ static void sub_8080588(void)
FreeAllSpritePalettes();
ResetTasks();
- SetVBlankCallback(VBlankCB0_BerryBlender);
+ SetVBlankCallback(VBlankCB_BerryBlender);
ResetBgsAndClearDma3BusyFlags(0);
- InitBgsFromTemplates(1, sBerryBlenderBgTemplates, ARRAY_COUNT(sBerryBlenderBgTemplates));
+ InitBgsFromTemplates(1, sBgTemplates, ARRAY_COUNT(sBgTemplates));
- SetBgTilemapBuffer(1, sBerryBlenderData->tilemapBuffers[0]);
- SetBgTilemapBuffer(2, sBerryBlenderData->tilemapBuffers[1]);
+ SetBgTilemapBuffer(1, sBerryBlender->tilemapBuffers[0]);
+ SetBgTilemapBuffer(2, sBerryBlender->tilemapBuffers[1]);
LoadUserWindowBorderGfx(0, 1, 0xD0);
LoadMessageBoxGfx(0, 0x14, 0xF0);
InitBerryBlenderWindows();
- sBerryBlenderData->field_44 = 0;
- sBerryBlenderData->field_4C = 0;
- sBerryBlenderData->arrowPos = 0;
- sBerryBlenderData->max_RPM = 0;
- sBerryBlenderData->bg_X = 0;
- sBerryBlenderData->bg_Y = 0;
+ sBerryBlender->unk0 = 0;
+ sBerryBlender->speed = 0;
+ sBerryBlender->arrowPos = 0;
+ sBerryBlender->maxRPM = 0;
+ sBerryBlender->bg_X = 0;
+ sBerryBlender->bg_Y = 0;
}
-static u8 sub_8080624(u16 arrowPos, u8 playerId)
+static u8 GetArrowProximity(u16 arrowPos, u8 playerId)
{
- u32 var1 = (arrowPos / 0x100) + 0x18;
- u8 arrID = sBerryBlenderData->field_96[playerId];
- u32 var2 = sUnknown_083399E7[arrID];
+ u32 pos = (arrowPos / 256) + 24;
+ u8 arrowId = sBerryBlender->playerIdToArrowId[playerId];
+ u32 hitRangeStart = sArrowHitRangeStart[arrowId];
- if (var1 >= var2 && var1 < var2 + 0x30)
+ if (pos >= hitRangeStart && pos < hitRangeStart + 48)
{
- if (var1 >= var2 + 20 && var1 < var2 + 28)
- return 2;
+ if (pos >= hitRangeStart + 20 && pos < hitRangeStart + 28)
+ return PROXIMITY_BEST;
else
- return 1;
+ return PROXIMITY_GOOD;
}
- return 0;
+ return PROXIMITY_MISS;
}
-static void Blender_SetOpponentsBerryData(u16 playerBerryItemId, u8 playersNum, struct BlenderBerry* playerBerry)
+static void SetOpponentsBerryData(u16 playerBerryItemId, u8 playersNum, struct BlenderBerry* playerBerry)
{
u16 opponentSetId = 0;
u16 opponentBerryId;
- u16 var;
+ u16 berryMasterDiff;
u16 i;
if (playerBerryItemId == ITEM_ENIGMA_BERRY)
@@ -1420,70 +1546,73 @@ static void Blender_SetOpponentsBerryData(u16 playerBerryItemId, u8 playersNum,
if (playerBerry->flavors[opponentSetId] > playerBerry->flavors[i])
opponentSetId = i;
}
- opponentSetId += 5;
+ opponentSetId += NUM_NPC_BERRIES;
}
else
{
- opponentSetId = playerBerryItemId - FIRST_BERRY_INDEX;
- if (opponentSetId >= 5)
- opponentSetId = (opponentSetId % 5) + 5;
+ opponentSetId = ITEM_TO_BERRY(playerBerryItemId) - 1;
+ if (opponentSetId >= NUM_NPC_BERRIES)
+ opponentSetId = (opponentSetId % NUM_NPC_BERRIES) + NUM_NPC_BERRIES;
}
for (i = 0; i < playersNum - 1; i++)
{
opponentBerryId = sOpponentBerrySets[opponentSetId][i];
- var = playerBerryItemId - 163;
+ berryMasterDiff = ITEM_TO_BERRY(playerBerryItemId) - ITEM_TO_BERRY(ITEM_SPELON_BERRY);
if (!FlagGet(FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER) && gSpecialVar_0x8004 == 1)
{
- opponentSetId %= 5;
- opponentBerryId = sSpecialOpponentBerrySets[opponentSetId];
- if (var <= 4)
- opponentBerryId -= 5;
+ opponentSetId %= ARRAY_COUNT(sBerryMasterBerries);
+ opponentBerryId = sBerryMasterBerries[opponentSetId];
+
+ // If the player's berry is any of the Berry Master's berries,
+ // then use the next lower set of berries
+ if (berryMasterDiff < ARRAY_COUNT(sBerryMasterBerries))
+ opponentBerryId -= ARRAY_COUNT(sBerryMasterBerries);
}
- Blender_SetParticipantBerryData(i + 1, opponentBerryId + FIRST_BERRY_INDEX);
+ SetPlayerBerryData(i + 1, opponentBerryId + FIRST_BERRY_INDEX);
}
}
-static void sub_808074C(void)
+static void SetPlayerIdMaps(void)
{
s32 i, j;
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
- sBerryBlenderData->field_96[i] = 0xFF;
- sBerryBlenderData->field_8E[i] = sUnknown_083399D0[sBerryBlenderData->playersNo - 2][i];
+ sBerryBlender->playerIdToArrowId[i] = NO_PLAYER;
+ sBerryBlender->arrowIdToPlayerId[i] = sPlayerIdMap[sBerryBlender->numPlayers - 2][i];
}
for (j = 0; j < BLENDER_MAX_PLAYERS; j++)
{
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
- if (sBerryBlenderData->field_8E[i] == j)
- sBerryBlenderData->field_96[j] = i;
+ if (sBerryBlender->arrowIdToPlayerId[i] == j)
+ sBerryBlender->playerIdToArrowId[j] = i;
}
}
}
-static void Blender_PrintPlayerNames(void)
+static void PrintPlayerNames(void)
{
s32 i, xPos;
- u32 multiplayerId = 0;
+ u32 playerId = 0;
u8 text[20];
if (gReceivedRemoteLinkPlayers)
- multiplayerId = GetMultiplayerId();
+ playerId = GetMultiplayerId();
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
- if (sBerryBlenderData->field_8E[i] != 0xFF)
+ if (sBerryBlender->arrowIdToPlayerId[i] != NO_PLAYER)
{
- sBerryBlenderData->syncArrowSpriteIds[sBerryBlenderData->field_8E[i]] = sBerryBlenderData->syncArrowSprite2Ids[i];
- StartSpriteAnim(&gSprites[sBerryBlenderData->syncArrowSpriteIds[sBerryBlenderData->field_8E[i]]], i);
+ sBerryBlender->playerArrowSpriteIds[sBerryBlender->arrowIdToPlayerId[i]] = sBerryBlender->playerArrowSpriteIds2[i];
+ StartSpriteAnim(&gSprites[sBerryBlender->playerArrowSpriteIds[sBerryBlender->arrowIdToPlayerId[i]]], i);
text[0] = EOS;
- StringCopy(text, gLinkPlayers[sBerryBlenderData->field_8E[i]].name);
+ StringCopy(text, gLinkPlayers[sBerryBlender->arrowIdToPlayerId[i]].name);
xPos = GetStringCenterAlignXOffset(1, text, 0x38);
- if (multiplayerId == sBerryBlenderData->field_8E[i])
- Blender_AddTextPrinter(i, text, xPos, 1, 0, 2);
+ if (playerId == sBerryBlender->arrowIdToPlayerId[i])
+ Blender_AddTextPrinter(i, text, xPos, 1, 0, 2); // Highlight player's name in red
else
Blender_AddTextPrinter(i, text, xPos, 1, 0, 1);
@@ -1493,167 +1622,174 @@ static void Blender_PrintPlayerNames(void)
}
}
-static void sub_80808D4(void)
+static void CB2_StartBlenderLocal(void)
{
s32 i, j;
- switch (sBerryBlenderData->mainState)
+ switch (sBerryBlender->mainState)
{
case 0:
SetWirelessCommType0();
- sub_8080588();
- Blender_SetParticipantBerryData(0, gSpecialVar_ItemId);
- Blender_CopyBerryData(&sBerryBlenderData->blendedBerries[0], gSpecialVar_ItemId);
- Blender_SetOpponentsBerryData(gSpecialVar_ItemId, sBerryBlenderData->playersNo, &sBerryBlenderData->blendedBerries[0]);
+ InitBlenderBgs();
+ SetPlayerBerryData(0, gSpecialVar_ItemId);
+ ConvertItemToBlenderBerry(&sBerryBlender->blendedBerries[0], gSpecialVar_ItemId);
+ SetOpponentsBerryData(gSpecialVar_ItemId, sBerryBlender->numPlayers, &sBerryBlender->blendedBerries[0]);
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
- sBerryBlenderData->field_64[i] = 0;
- for (j = 0; j < 3; j++)
+ sBerryBlender->playerContinueResponses[i] = 0;
+ for (j = 0; j < NUM_SCORE_TYPES; j++)
{
- sBerryBlenderData->scores[i][j] = 0;
+ sBerryBlender->scores[i][j] = 0;
}
}
- sBerryBlenderData->playAgainState = 0;
- sBerryBlenderData->loadGfxState = 0;
+ sBerryBlender->playAgainState = 0;
+ sBerryBlender->loadGfxState = 0;
gLinkType = LINKTYPE_BERRY_BLENDER;
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
break;
case 1:
if (LoadBerryBlenderGfx())
{
- sBerryBlenderData->mainState++;
- sub_8082D28();
+ sBerryBlender->mainState++;
+ UpdateBlenderCenter();
}
break;
case 2:
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
- sBerryBlenderData->syncArrowSprite2Ids[i] = CreateSprite(&sBlenderSyncArrow_SpriteTemplate, sBlenderSyncArrowsPos[i][0], sBlenderSyncArrowsPos[i][1], 1);
- StartSpriteAnim(&gSprites[sBerryBlenderData->syncArrowSprite2Ids[i]], i + 8);
+ sBerryBlender->playerArrowSpriteIds2[i] = CreateSprite(&sSpriteTemplate_PlayerArrow, sPlayerArrowPos[i][0], sPlayerArrowPos[i][1], 1);
+ StartSpriteAnim(&gSprites[sBerryBlender->playerArrowSpriteIds2[i]], i + 8);
}
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
break;
case 3:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
- sBerryBlenderData->mainState++;
- sBerryBlenderData->framesToWait = 0;
+ sBerryBlender->mainState++;
+ sBerryBlender->framesToWait = 0;
break;
case 4:
- if (++sBerryBlenderData->framesToWait == 2)
- sub_807F9D0();
+ if (++sBerryBlender->framesToWait == 2)
+ DrawBlenderBg();
if (!gPaletteFade.active)
- sBerryBlenderData->mainState = 8;
+ sBerryBlender->mainState = 8;
break;
case 8:
- sBerryBlenderData->mainState = 11;
- sBerryBlenderData->field_114 = 0;
+ sBerryBlender->mainState = 11;
+ sBerryBlender->playerToThrowBerry = 0;
break;
case 11:
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
- u32 var = sUnknown_083399D0[sBerryBlenderData->playersNo - 2][i];
- if (sBerryBlenderData->field_114 == var)
+ // Throw 1 player's berry in
+ u32 playerId = sPlayerIdMap[sBerryBlender->numPlayers - 2][i];
+ if (sBerryBlender->playerToThrowBerry == playerId)
{
- sub_807FD90(sBerryBlenderData->chosenItemId[sBerryBlenderData->field_114], i);
+ CreateBerrySprite(sBerryBlender->chosenItemId[sBerryBlender->playerToThrowBerry], i);
break;
}
}
- sBerryBlenderData->framesToWait = 0;
- sBerryBlenderData->mainState++;
- sBerryBlenderData->field_114++;
+ sBerryBlender->framesToWait = 0;
+ sBerryBlender->mainState++;
+ sBerryBlender->playerToThrowBerry++;
break;
case 12:
- if (++sBerryBlenderData->framesToWait > 60)
+ if (++sBerryBlender->framesToWait > 60)
{
- if (sBerryBlenderData->field_114 >= sBerryBlenderData->playersNo)
+ if (sBerryBlender->playerToThrowBerry >= sBerryBlender->numPlayers)
{
- sBerryBlenderData->arrowPos = sUnknown_083399DC[sUnknown_083399E4[sBerryBlenderData->playersNo - 2]] - 22528;
- sBerryBlenderData->mainState++;
+ // Finished throwing berries in
+ sBerryBlender->arrowPos = sArrowStartPos[sArrowStartPosIds[sBerryBlender->numPlayers - 2]] - ARROW_FALL_ROTATION;
+ sBerryBlender->mainState++;
}
else
{
- sBerryBlenderData->mainState--;
+ // Haven't finished throwing berries in, go back to prev step
+ sBerryBlender->mainState--;
}
- sBerryBlenderData->framesToWait = 0;
+ sBerryBlender->framesToWait = 0;
}
break;
case 13:
- sBerryBlenderData->mainState++;
- sub_808074C();
- PlaySE(SE_RU_HYUU);
- sub_8082CB4(&sBerryBlenderData->bgAffineSrc);
+ sBerryBlender->mainState++;
+ SetPlayerIdMaps();
+ PlaySE(SE_FALL);
+ DrawBlenderCenter(&sBerryBlender->bgAffineSrc);
ShowBg(2);
break;
case 14:
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON);
- sBerryBlenderData->arrowPos += 0x200;
- sBerryBlenderData->field_11A += 4;
- if (sBerryBlenderData->field_11A > 0xFF)
+ sBerryBlender->arrowPos += 0x200;
+ sBerryBlender->centerScale += 4;
+ if (sBerryBlender->centerScale > 255)
{
- sBerryBlenderData->mainState++;
- sBerryBlenderData->field_11A = 0x100;
- sBerryBlenderData->arrowPos = sUnknown_083399DC[sUnknown_083399E4[sBerryBlenderData->playersNo - 2]];
+ sBerryBlender->mainState++;
+ sBerryBlender->centerScale = 256;
+ sBerryBlender->arrowPos = sArrowStartPos[sArrowStartPosIds[sBerryBlender->numPlayers - 2]];
SetGpuRegBits(REG_OFFSET_BG2CNT, 2);
- sBerryBlenderData->framesToWait = 0;
- PlaySE(SE_TRACK_DOOR);
- Blender_PrintPlayerNames();
+ sBerryBlender->framesToWait = 0;
+ PlaySE(SE_TRUCK_DOOR);
+ PrintPlayerNames();
}
- sub_8082CB4(&sBerryBlenderData->bgAffineSrc);
+ DrawBlenderCenter(&sBerryBlender->bgAffineSrc);
break;
case 15:
- if (sub_8083380())
+ if (UpdateBlenderLandScreenShake())
{
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
}
- sub_8082CB4(&sBerryBlenderData->bgAffineSrc);
+ DrawBlenderCenter(&sBerryBlender->bgAffineSrc);
break;
case 16:
- CreateSprite(&sUnknown_08339C2C, 120, -16, 3);
- sBerryBlenderData->mainState++;
+ CreateSprite(&sSpriteTemplate_CountdownNumbers, 120, -16, 3);
+ sBerryBlender->mainState++;
+ break;
+ case 17:
+ // Wait here for the countdown
+ // State is progressed in SpriteCB_Start
break;
case 18:
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
break;
case 19:
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
break;
case 20:
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
break;
case 21:
- sub_8080DF8();
- sBerryBlenderData->field_4C = 0x80;
- sBerryBlenderData->gameFrameTime = 0;
- sBerryBlenderData->field_123 = 0;
- sBerryBlenderData->field_72 = 0;
- SetMainCallback2(sub_8081898);
+ ResetLinkCmds();
+ sBerryBlender->speed = MIN_ARROW_SPEED;
+ sBerryBlender->gameFrameTime = 0;
+ sBerryBlender->perfectOpponents = FALSE;
+ sBerryBlender->slowdownTimer = 0;
+ SetMainCallback2(CB2_PlayBlender);
if (gSpecialVar_0x8004 == 1)
{
if (!FlagGet(FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER))
- sBerryBlenderData->field_120[0] = CreateTask(sub_8081224, 10);
+ sBerryBlender->opponentTaskIds[0] = CreateTask(Task_HandleBerryMaster, 10);
else
- sBerryBlenderData->field_120[0] = CreateTask(sUnknown_083399EC[0], 10);
+ sBerryBlender->opponentTaskIds[0] = CreateTask(sLocalOpponentTasks[0], 10);
}
if (gSpecialVar_0x8004 > 1)
{
for (i = 0; i < gSpecialVar_0x8004; i++)
- sBerryBlenderData->field_120[i] = CreateTask(sUnknown_083399EC[i], 10 + i);
+ sBerryBlender->opponentTaskIds[i] = CreateTask(sLocalOpponentTasks[i], 10 + i);
}
if (GetCurrentMapMusic() != MUS_CYCLING)
- sBerryBlenderData->field_154 = GetCurrentMapMusic();
+ sBerryBlender->savedMusic = GetCurrentMapMusic();
PlayBGM(MUS_CYCLING);
- PlaySE(SE_MOTER);
- Blender_ControlHitPitch();
+ PlaySE(SE_BERRY_BLENDER);
+ UpdateHitPitch();
break;
}
- Blender_DummiedOutFunc(sBerryBlenderData->bg_X, sBerryBlenderData->bg_Y);
+ Blender_DummiedOutFunc(sBerryBlender->bg_X, sBerryBlender->bg_Y);
RunTasks();
AnimateSprites();
BuildOamBuffer();
@@ -1661,410 +1797,433 @@ static void sub_80808D4(void)
UpdatePaletteFade();
}
-static void sub_8080DF8(void)
+static void ResetLinkCmds(void)
{
s32 i;
- for (i = 0; i < CMD_LENGTH / 2; i++)
+ for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
- gSendCmd[0] = 0;
- gSendCmd[2] = 0;
- gRecvCmds[i][0] = 0;
- gRecvCmds[i][2] = 0;
+ gSendCmd[BLENDER_COMM_INPUT_STATE] = 0;
+ gSendCmd[BLENDER_COMM_SCORE] = 0;
+ gRecvCmds[i][BLENDER_COMM_INPUT_STATE] = 0;
+ gRecvCmds[i][BLENDER_COMM_SCORE] = 0;
}
}
-static void sub_8080E20(u8 taskId)
+#define tTimer data[0]
+#define tDelay data[1]
+#define tPlayerId data[2]
+
+static void Task_OpponentMiss(u8 taskId)
{
- if(++gTasks[taskId].data[0] > gTasks[taskId].data[1])
+ if(++gTasks[taskId].tTimer > gTasks[taskId].tDelay)
{
- gRecvCmds[gTasks[taskId].data[2]][2] = 0x2345;
+ gRecvCmds[gTasks[taskId].tPlayerId][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_MISS;
DestroyTask(taskId);
}
}
-static void sub_8080E6C(u8 a0, u8 a1)
+static void CreateOpponentMissTask(u8 playerId, u8 delay)
{
- u8 taskId = CreateTask(sub_8080E20, 80);
- gTasks[taskId].data[1] = a1;
- gTasks[taskId].data[2] = a0;
+ u8 taskId = CreateTask(Task_OpponentMiss, 80);
+ gTasks[taskId].tDelay = delay;
+ gTasks[taskId].tPlayerId = playerId;
}
-static void sub_8080EA4(u8 taskId)
+#undef tTimer
+#undef tDelay
+#undef tPlayerId
+
+#define tDidInput data[0]
+
+static void Task_HandleOpponent1(u8 taskId)
{
- if (sub_8080624(sBerryBlenderData->arrowPos, 1) == 2)
+ if (GetArrowProximity(sBerryBlender->arrowPos, 1) == PROXIMITY_BEST)
{
- if (gTasks[taskId].data[0] == 0)
+ if (!gTasks[taskId].tDidInput)
{
- if (sBerryBlenderData->field_123 == 0)
+ if (!sBerryBlender->perfectOpponents)
{
u8 rand = Random() / 655;
- if (sBerryBlenderData->field_4C < 500)
+ if (sBerryBlender->speed < 500)
{
if (rand > 75)
- gRecvCmds[1][2] = 0x4523;
+ gRecvCmds[1][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_BEST;
else
- gRecvCmds[1][2] = 0x5432;
+ gRecvCmds[1][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD;
- gRecvCmds[1][2] = 0x5432;
+ // BUG: Overrwrote above assignment. Opponent 1 can't get Best at low speed
+ gRecvCmds[1][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD;
}
- else if (sBerryBlenderData->field_4C < 1500)
+ else if (sBerryBlender->speed < 1500)
{
if (rand > 80)
{
- gRecvCmds[1][2] = 0x4523;
+ gRecvCmds[1][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_BEST;
}
else
{
u8 value = rand - 21;
if (value < 60)
- gRecvCmds[1][2] = 0x5432;
+ gRecvCmds[1][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD;
else if (rand < 10)
- sub_8080E6C(1, 5);
+ CreateOpponentMissTask(1, 5);
}
}
else if (rand <= 90)
{
u8 value = rand - 71;
if (value < 20)
- gRecvCmds[1][2] = 0x5432;
+ gRecvCmds[1][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD;
else if (rand < 30)
- sub_8080E6C(1, 5);
+ CreateOpponentMissTask(1, 5);
}
else
{
- gRecvCmds[1][2] = 0x4523;
+ gRecvCmds[1][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_BEST;
}
}
else
{
- gRecvCmds[1][2] = 0x4523;
+ gRecvCmds[1][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_BEST;
}
- gTasks[taskId].data[0] = 1;
+ gTasks[taskId].tDidInput = TRUE;
}
}
else
{
- gTasks[taskId].data[0] = 0;
+ gTasks[taskId].tDidInput = FALSE;
}
}
-static void sub_8080FD0(u8 taskId)
+static void Task_HandleOpponent2(u8 taskId)
{
- u32 var1 = (sBerryBlenderData->arrowPos + 0x1800) & 0xFFFF;
- u32 var2 = sBerryBlenderData->field_96[2] & 0xFF;
- if ((var1 >> 8) > sUnknown_083399E7[var2] + 20 && (var1 >> 8) < sUnknown_083399E7[var2] + 40)
+ u32 var1 = (sBerryBlender->arrowPos + 0x1800) & 0xFFFF;
+ u32 arrowId = sBerryBlender->playerIdToArrowId[2] & 0xFF;
+ if ((var1 >> 8) > sArrowHitRangeStart[arrowId] + 20 && (var1 >> 8) < sArrowHitRangeStart[arrowId] + 40)
{
- if (gTasks[taskId].data[0] == 0)
+ if (!gTasks[taskId].tDidInput)
{
- if (sBerryBlenderData->field_123 == 0)
+ if (!sBerryBlender->perfectOpponents)
{
u8 rand = Random() / 655;
- if (sBerryBlenderData->field_4C < 500)
+ if (sBerryBlender->speed < 500)
{
if (rand > 66)
- gRecvCmds[2][2] = 0x4523;
+ gRecvCmds[2][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_BEST;
else
- gRecvCmds[2][2] = 0x5432;
+ gRecvCmds[2][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD;
}
else
{
u8 value;
if (rand > 65)
- gRecvCmds[2][2] = 0x4523;
+ gRecvCmds[2][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_BEST;
value = rand - 41;
if (value < 25)
- gRecvCmds[2][2] = 0x5432;
+ gRecvCmds[2][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD;
if (rand < 10)
- sub_8080E6C(2, 5);
+ CreateOpponentMissTask(2, 5);
}
- gTasks[taskId].data[0] = 1;
+ gTasks[taskId].tDidInput = TRUE;
}
else
{
- gRecvCmds[2][2] = 0x4523;
- gTasks[taskId].data[0] = 1;
+ gRecvCmds[2][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_BEST;
+ gTasks[taskId].tDidInput = TRUE;
}
}
}
else
{
- gTasks[taskId].data[0] = 0;
+ gTasks[taskId].tDidInput = FALSE;
}
}
-static void sub_80810F8(u8 taskId)
+static void Task_HandleOpponent3(u8 taskId)
{
- u32 var1, var2;
-
- var1 = (sBerryBlenderData->arrowPos + 0x1800) & 0xFFFF;
- var2 = sBerryBlenderData->field_96[3] & 0xFF;
- if ((var1 >> 8) > sUnknown_083399E7[var2] + 20 && (var1 >> 8) < sUnknown_083399E7[var2] + 40)
+ u32 var1 = (sBerryBlender->arrowPos + 0x1800) & 0xFFFF;
+ u32 arrowId = sBerryBlender->playerIdToArrowId[3] & 0xFF;
+ if ((var1 >> 8) > sArrowHitRangeStart[arrowId] + 20 && (var1 >> 8) < sArrowHitRangeStart[arrowId] + 40)
{
if (gTasks[taskId].data[0] == 0)
{
- if (sBerryBlenderData->field_123 == 0)
+ if (!sBerryBlender->perfectOpponents)
{
u8 rand = (Random() / 655);
- if (sBerryBlenderData->field_4C < 500)
+ if (sBerryBlender->speed < 500)
{
if (rand > 88)
- gRecvCmds[3][2] = 0x4523;
+ gRecvCmds[3][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_BEST;
else
- gRecvCmds[3][2] = 0x5432;
+ gRecvCmds[3][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD;
}
else
{
if (rand > 60)
{
- gRecvCmds[3][2] = 0x4523;
+ gRecvCmds[3][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_BEST;
}
else
{
s8 value = rand - 56; // makes me wonder what the original code was
u8 value2 = value;
if (value2 < 5)
- gRecvCmds[3][2] = 0x5432;
+ gRecvCmds[3][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD;
}
if (rand < 5)
- sub_8080E6C(3, 5);
+ CreateOpponentMissTask(3, 5);
}
- gTasks[taskId].data[0] = 1;
+ gTasks[taskId].tDidInput = TRUE;
}
else
{
- gRecvCmds[3][2] = 0x4523;
- gTasks[taskId].data[0] = 1;
+ gRecvCmds[3][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_BEST;
+ gTasks[taskId].tDidInput = TRUE;
}
}
}
else
{
- gTasks[taskId].data[0] = 0;
+ gTasks[taskId].tDidInput = FALSE;
}
}
-static void sub_8081224(u8 taskId)
+static void Task_HandleBerryMaster(u8 taskId)
{
- if (sub_8080624(sBerryBlenderData->arrowPos, 1) == 2)
+ if (GetArrowProximity(sBerryBlender->arrowPos, 1) == PROXIMITY_BEST)
{
- if (gTasks[taskId].data[0] == 0)
+ if (!gTasks[taskId].tDidInput)
{
- gRecvCmds[1][2] = 0x4523;
- gTasks[taskId].data[0] = 1;
+ gRecvCmds[1][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_BEST;
+ gTasks[taskId].tDidInput = TRUE;
}
}
else
{
- gTasks[taskId].data[0] = 0;
+ gTasks[taskId].tDidInput = FALSE;
}
}
-static void sub_8081288(u16 a0, u8 a1)
+#undef tDidInput
+
+static void CreateScoreSymbolSprite(u16 cmd, u8 arrowId)
{
u8 spriteId;
- spriteId = CreateSprite(&sUnknown_08339B40,
- sBlenderSyncArrowsPos[a1][0] - (10 * sUnknown_083399C0[a1][0]),
- sBlenderSyncArrowsPos[a1][1] - (10 * sUnknown_083399C0[a1][1]),
+ spriteId = CreateSprite(&sSpriteTemplate_ScoreSymbols,
+ sPlayerArrowPos[arrowId][0] - (10 * sPlayerArrowQuadrant[arrowId][0]),
+ sPlayerArrowPos[arrowId][1] - (10 * sPlayerArrowQuadrant[arrowId][1]),
1);
- if (a0 == 0x4523)
+ if (cmd == LINKCMD_BLENDER_SCORE_BEST)
{
- StartSpriteAnim(&gSprites[spriteId], 2);
- gSprites[spriteId].callback = sub_8082F9C;
- PlaySE(SE_RU_GASHIN);
+ StartSpriteAnim(&gSprites[spriteId], SCOREANIM_BEST_FLASH);
+ gSprites[spriteId].callback = SpriteCB_ScoreSymbolBest;
+ PlaySE(SE_ICE_STAIRS);
}
- else if (a0 == 0x5432)
+ else if (cmd == LINKCMD_BLENDER_SCORE_GOOD)
{
- StartSpriteAnim(&gSprites[spriteId], 0);
- PlaySE(SE_SEIKAI);
+ StartSpriteAnim(&gSprites[spriteId], SCOREANIM_GOOD);
+ PlaySE(SE_SUCCESS);
}
- else if (a0 == 0x2345)
+ else if (cmd == LINKCMD_BLENDER_SCORE_MISS)
{
- StartSpriteAnim(&gSprites[spriteId], 1);
- PlaySE(SE_HAZURE);
+ StartSpriteAnim(&gSprites[spriteId], SCOREANIM_MISS);
+ PlaySE(SE_FAILURE);
}
- sub_8082E84();
+ CreateParticleSprites();
}
-static void sub_8081370(u16 a0)
+static void UpdateSpeedFromHit(u16 cmd)
{
- Blender_ControlHitPitch();
- switch (a0)
+ UpdateHitPitch();
+ switch (cmd)
{
- case 0x4523:
- if (sBerryBlenderData->field_4C < 1500)
- sBerryBlenderData->field_4C += (0x180 / sUnknown_08339CC3[sBerryBlenderData->playersNo]);
+ case LINKCMD_BLENDER_SCORE_BEST:
+ if (sBerryBlender->speed < 1500) {
+ sBerryBlender->speed += (384 / sNumPlayersToSpeedDivisor[sBerryBlender->numPlayers]);
+ }
else
{
- sBerryBlenderData->field_4C += (128 / sUnknown_08339CC3[sBerryBlenderData->playersNo]);
- sub_80832BC(&sBerryBlenderData->bg_X, (sBerryBlenderData->field_4C / 100) - 10);
- sub_80832BC(&sBerryBlenderData->bg_Y, (sBerryBlenderData->field_4C / 100) - 10);
+ sBerryBlender->speed += (128 / sNumPlayersToSpeedDivisor[sBerryBlender->numPlayers]);
+ ShakeBgCoordForHit(&sBerryBlender->bg_X, (sBerryBlender->speed / 100) - 10);
+ ShakeBgCoordForHit(&sBerryBlender->bg_Y, (sBerryBlender->speed / 100) - 10);
}
break;
- case 0x5432:
- if (sBerryBlenderData->field_4C < 1500)
- sBerryBlenderData->field_4C += (0x100 / sUnknown_08339CC3[sBerryBlenderData->playersNo]);
+ case LINKCMD_BLENDER_SCORE_GOOD:
+ if (sBerryBlender->speed < 1500)
+ sBerryBlender->speed += (256 / sNumPlayersToSpeedDivisor[sBerryBlender->numPlayers]);
break;
- case 0x2345:
- sBerryBlenderData->field_4C -= (0x100 / sUnknown_08339CC3[sBerryBlenderData->playersNo]);
- if (sBerryBlenderData->field_4C < 0x80)
- sBerryBlenderData->field_4C = 0x80;
+ case LINKCMD_BLENDER_SCORE_MISS:
+ sBerryBlender->speed -= (256 / sNumPlayersToSpeedDivisor[sBerryBlender->numPlayers]);
+ if (sBerryBlender->speed < MIN_ARROW_SPEED)
+ sBerryBlender->speed = MIN_ARROW_SPEED;
break;
}
}
-static bool32 sub_80814B0(u16 arg0, u16 arg1, u16 arg2)
+// Return TRUE if the received command matches the corresponding Link or RFU command
+static bool32 CheckRecvCmdMatches(u16 recvCmd, u16 linkCmd, u16 rfuCmd)
{
- if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
+ if (gReceivedRemoteLinkPlayers && gWirelessCommType)
{
- if ((arg0 & 0xFF00) == arg2)
+ if ((recvCmd & 0xFF00) == rfuCmd)
return TRUE;
}
else
{
- if (arg0 == arg1)
+ if (recvCmd == linkCmd)
return TRUE;
}
return FALSE;
}
-static void sub_80814F4(void)
+static void UpdateOpponentScores(void)
{
s32 i;
if (gSpecialVar_0x8004 != 0)
{
- if (gSendCmd[2] != 0)
+ // Local game, "send" players score to itself
+ if (gSendCmd[BLENDER_COMM_SCORE] != 0)
{
- gRecvCmds[0][2] = gSendCmd[2];
- gRecvCmds[0][0] = 0x4444;
- gSendCmd[2] = 0;
+ gRecvCmds[0][BLENDER_COMM_SCORE] = gSendCmd[BLENDER_COMM_SCORE];
+ gRecvCmds[0][BLENDER_COMM_INPUT_STATE] = LINKCMD_BLENDER_SEND_KEYS;
+ gSendCmd[BLENDER_COMM_SCORE] = 0;
}
- for (i = 1; i < 4; i++)
+
+ // Local game, simulate NPCs sending keys
+ // Their actual inputs are handled by Task_HandleOpponent
+ for (i = 1; i < BLENDER_MAX_PLAYERS; i++)
{
- if (gRecvCmds[i][2] != 0)
- gRecvCmds[i][0] = 0x4444;
+ if (gRecvCmds[i][BLENDER_COMM_SCORE] != 0)
+ gRecvCmds[i][BLENDER_COMM_INPUT_STATE] = LINKCMD_BLENDER_SEND_KEYS;
}
}
- for (i = 0; i < sBerryBlenderData->playersNo; i++)
+ for (i = 0; i < sBerryBlender->numPlayers; i++)
{
- if (sub_80814B0(gRecvCmds[i][0], 0x4444, 0x4400))
+ if (CheckRecvCmdMatches(gRecvCmds[i][BLENDER_COMM_INPUT_STATE], LINKCMD_BLENDER_SEND_KEYS, RFUCMD_BLENDER_SEND_KEYS))
{
- u32 var = sBerryBlenderData->field_96[i];
- if (gRecvCmds[i][2] == 0x4523)
+ u32 arrowId = sBerryBlender->playerIdToArrowId[i];
+ if (gRecvCmds[i][BLENDER_COMM_SCORE] == LINKCMD_BLENDER_SCORE_BEST)
{
- sub_8081370(0x4523);
- sBerryBlenderData->field_116 += (sBerryBlenderData->field_4C / 55);
- if (sBerryBlenderData->field_116 >= 1000)
- sBerryBlenderData->field_116 = 1000;
- sub_8081288(0x4523, var);
- sBerryBlenderData->scores[i][BLENDER_SCORE_BEST]++;
+ UpdateSpeedFromHit(LINKCMD_BLENDER_SCORE_BEST);
+ sBerryBlender->progressBarValue += (sBerryBlender->speed / 55);
+ if (sBerryBlender->progressBarValue >= MAX_PROGRESS_BAR)
+ sBerryBlender->progressBarValue = MAX_PROGRESS_BAR;
+ CreateScoreSymbolSprite(LINKCMD_BLENDER_SCORE_BEST, arrowId);
+ sBerryBlender->scores[i][SCORE_BEST]++;
}
- else if (gRecvCmds[i][2] == 0x5432)
+ else if (gRecvCmds[i][BLENDER_COMM_SCORE] == LINKCMD_BLENDER_SCORE_GOOD)
{
- sub_8081370(0x5432);
- sBerryBlenderData->field_116 += (sBerryBlenderData->field_4C / 70);
- sub_8081288(0x5432, var);
- sBerryBlenderData->scores[i][BLENDER_SCORE_GOOD]++;
+ UpdateSpeedFromHit(LINKCMD_BLENDER_SCORE_GOOD);
+ sBerryBlender->progressBarValue += (sBerryBlender->speed / 70);
+ CreateScoreSymbolSprite(LINKCMD_BLENDER_SCORE_GOOD, arrowId);
+ sBerryBlender->scores[i][SCORE_GOOD]++;
}
- else if (gRecvCmds[i][2] == 0x2345)
+ else if (gRecvCmds[i][BLENDER_COMM_SCORE] == LINKCMD_BLENDER_SCORE_MISS)
{
- sub_8081288(0x2345, var);
- sub_8081370(0x2345);
- if (sBerryBlenderData->scores[i][BLENDER_SCORE_MISS] < 999)
- sBerryBlenderData->scores[i][BLENDER_SCORE_MISS]++;
+ CreateScoreSymbolSprite(LINKCMD_BLENDER_SCORE_MISS, arrowId);
+ UpdateSpeedFromHit(LINKCMD_BLENDER_SCORE_MISS);
+ if (sBerryBlender->scores[i][SCORE_MISS] < 999)
+ sBerryBlender->scores[i][SCORE_MISS]++;
}
- if (gRecvCmds[i][2] == 0x2345 || gRecvCmds[2][i] == 0x4523 || gRecvCmds[2][i] == 0x5432) // could be a bug, 2 and i are reversed
+
+ // BUG: Should [i][BLENDER_COMM_SCORE] below, not [BLENDER_COMM_SCORE][i]
+ // As a result the music tempo updates if any player misses, but only if 1 specific player hits
+ if (gRecvCmds[i][BLENDER_COMM_SCORE] == LINKCMD_BLENDER_SCORE_MISS
+ || gRecvCmds[BLENDER_COMM_SCORE][i] == LINKCMD_BLENDER_SCORE_BEST
+ || gRecvCmds[BLENDER_COMM_SCORE][i] == LINKCMD_BLENDER_SCORE_GOOD)
{
- if (sBerryBlenderData->field_4C > 1500)
- m4aMPlayTempoControl(&gMPlayInfo_BGM, ((sBerryBlenderData->field_4C - 750) / 20) + 256);
+ if (sBerryBlender->speed > 1500)
+ m4aMPlayTempoControl(&gMPlayInfo_BGM, ((sBerryBlender->speed - 750) / 20) + 256);
else
- m4aMPlayTempoControl(&gMPlayInfo_BGM, 0x100);
+ m4aMPlayTempoControl(&gMPlayInfo_BGM, 256);
}
}
}
if (gSpecialVar_0x8004 != 0)
{
- for (i = 0; i < sBerryBlenderData->playersNo; i++)
+ for (i = 0; i < sBerryBlender->numPlayers; i++)
{
- gRecvCmds[i][0] = 0;
- gRecvCmds[i][2] = 0;
+ gRecvCmds[i][BLENDER_COMM_INPUT_STATE] = 0;
+ gRecvCmds[i][BLENDER_COMM_SCORE] = 0;
}
}
}
-static void sub_8081744(void)
+static void HandlePlayerInput(void)
{
- u8 var2;
- bool8 A_pressed = FALSE;
+ u8 arrowId;
+ bool8 pressedA = FALSE;
u8 playerId = 0;
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
playerId = GetMultiplayerId();
- var2 = sBerryBlenderData->field_96[playerId];
+ arrowId = sBerryBlender->playerIdToArrowId[playerId];
- if (sBerryBlenderData->gameEndState == 0)
+ if (sBerryBlender->gameEndState == 0)
{
- if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_L_EQUALS_A && gMain.newKeys & A_BUTTON)
+ if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_L_EQUALS_A && JOY_NEW(A_BUTTON))
{
- if ((gMain.heldKeysRaw & (A_BUTTON | L_BUTTON)) != (A_BUTTON | L_BUTTON))
- A_pressed = TRUE;
+ if (JOY_HELD_RAW(A_BUTTON | L_BUTTON) != (A_BUTTON | L_BUTTON))
+ pressedA = TRUE;
}
- else if (gMain.newKeys & A_BUTTON)
+ else if (JOY_NEW(A_BUTTON))
{
- A_pressed = TRUE;
+ pressedA = TRUE;
}
- if (A_pressed)
+ if (pressedA)
{
- u8 var3;
- StartSpriteAnim(&gSprites[sBerryBlenderData->syncArrowSpriteIds[sBerryBlenderData->field_8E[var2]]], var2 + 4);
- var3 = sub_8080624(sBerryBlenderData->arrowPos, playerId);
+ u8 proximity;
+ StartSpriteAnim(&gSprites[sBerryBlender->playerArrowSpriteIds[sBerryBlender->arrowIdToPlayerId[arrowId]]], arrowId + 4);
+ proximity = GetArrowProximity(sBerryBlender->arrowPos, playerId);
- if (var3 == 2)
- gSendCmd[2] = 0x4523;
- else if (var3 == 1)
- gSendCmd[2] = 0x5432;
+ if (proximity == PROXIMITY_BEST)
+ gSendCmd[BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_BEST;
+ else if (proximity == PROXIMITY_GOOD)
+ gSendCmd[BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD;
else
- gSendCmd[2] = 0x2345;
+ gSendCmd[BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_MISS;
}
}
- if (++sBerryBlenderData->field_72 > 5)
+ if (++sBerryBlender->slowdownTimer > 5)
{
- if (sBerryBlenderData->field_4C > 128)
- sBerryBlenderData->field_4C--;
- sBerryBlenderData->field_72 = 0;
+ if (sBerryBlender->speed > MIN_ARROW_SPEED)
+ sBerryBlender->speed--;
+ sBerryBlender->slowdownTimer = 0;
}
- if (gEnableContestDebugging && gMain.newKeys & L_BUTTON)
- sBerryBlenderData->field_123 ^= 1;
+
+ if (gEnableContestDebugging && JOY_NEW(L_BUTTON))
+ sBerryBlender->perfectOpponents ^= 1;
}
-static void sub_8081898(void)
+static void CB2_PlayBlender(void)
{
- sub_8082D28();
+ UpdateBlenderCenter();
- if (sBerryBlenderData->gameFrameTime < (99 * 60 * 60) + (59 * 60)) // game time can't be longer than 99 minutes and 59 seconds, can't print 3 digits
- sBerryBlenderData->gameFrameTime++;
+ if (sBerryBlender->gameFrameTime < (99 * 60 * 60) + (59 * 60)) // game time can't be longer than 99 minutes and 59 seconds, can't print 3 digits
+ sBerryBlender->gameFrameTime++;
- sub_8081744();
- SetLinkDebugValues((u16)(sBerryBlenderData->field_4C), sBerryBlenderData->field_116);
- sub_80814F4();
- sub_8083140(sBerryBlenderData->field_116, 1000);
- sub_8083230(sBerryBlenderData->field_4C);
- sub_808330C();
- sub_8082AD4();
- if (sBerryBlenderData->gameEndState == 0 && sBerryBlenderData->field_118 >= 1000)
+ HandlePlayerInput();
+ SetLinkDebugValues((u16)(sBerryBlender->speed), sBerryBlender->progressBarValue);
+ UpdateOpponentScores();
+ TryUpdateProgressBar(sBerryBlender->progressBarValue, MAX_PROGRESS_BAR);
+ UpdateRPM(sBerryBlender->speed);
+ RestoreBgCoords();
+ ProcessLinkPlayerCmds();
+ if (sBerryBlender->gameEndState == 0 && sBerryBlender->maxProgressBarValue >= MAX_PROGRESS_BAR)
{
- sBerryBlenderData->field_116 = 1000;
- sBerryBlenderData->gameEndState = 1;
- SetMainCallback2(CB2_HandleBlenderEndGame);
+ sBerryBlender->progressBarValue = MAX_PROGRESS_BAR;
+ sBerryBlender->gameEndState = 1;
+ SetMainCallback2(CB2_EndBlenderGame);
}
- Blender_DummiedOutFunc(sBerryBlenderData->bg_X, sBerryBlenderData->bg_Y);
+ Blender_DummiedOutFunc(sBerryBlender->bg_X, sBerryBlender->bg_Y);
RunTasks();
AnimateSprites();
BuildOamBuffer();
@@ -2077,362 +2236,380 @@ static void Blender_DummiedOutFunc(s16 a0, s16 a1)
}
-static bool8 sub_8081964(struct BlenderBerry* berries, u8 index1, u8 index2)
+static bool8 AreBlenderBerriesSame(struct BlenderBerry* berries, u8 a, u8 b)
{
- if (berries[index1].itemId != berries[index2].itemId
- || (StringCompare(berries[index1].name, berries[index2].name) == 0
- && (berries[index1].flavors[FLAVOR_SPICY] == berries[index2].flavors[FLAVOR_SPICY]
- && berries[index1].flavors[FLAVOR_DRY] == berries[index2].flavors[FLAVOR_DRY]
- && berries[index1].flavors[FLAVOR_SWEET] == berries[index2].flavors[FLAVOR_SWEET]
- && berries[index1].flavors[FLAVOR_BITTER] == berries[index2].flavors[FLAVOR_BITTER]
- && berries[index1].flavors[FLAVOR_SOUR] == berries[index2].flavors[FLAVOR_SOUR]
- && berries[index1].smoothness == berries[index2].smoothness)))
+ // First check to itemId is pointless (and wrong anyway?), always false when this is called
+ // Only used to determine if two enigma berries are equivalent
+ if (berries[a].itemId != berries[b].itemId
+ || (StringCompare(berries[a].name, berries[b].name) == 0
+ && (berries[a].flavors[FLAVOR_SPICY] == berries[b].flavors[FLAVOR_SPICY]
+ && berries[a].flavors[FLAVOR_DRY] == berries[b].flavors[FLAVOR_DRY]
+ && berries[a].flavors[FLAVOR_SWEET] == berries[b].flavors[FLAVOR_SWEET]
+ && berries[a].flavors[FLAVOR_BITTER] == berries[b].flavors[FLAVOR_BITTER]
+ && berries[a].flavors[FLAVOR_SOUR] == berries[b].flavors[FLAVOR_SOUR]
+ && berries[a].flavors[FLAVOR_COUNT] == berries[b].flavors[FLAVOR_COUNT])))
return TRUE;
else
return FALSE;
}
-static u32 Blender_GetPokeblockColor(struct BlenderBerry* berries, s16* a1, u8 playersNo, u8 a3)
+static u32 CalculatePokeblockColor(struct BlenderBerry* berries, s16* _flavors, u8 numPlayers, u8 negativeFlavors)
{
- s16 vars[6];
- s32 i;
- s32 r6;
- u8 r2;
+ s16 flavors[FLAVOR_COUNT + 1];
+ s32 i, j;
+ u8 numFlavors;
- for (i = 0; i < 6; i++)
- vars[i] = a1[i];
+ for (i = 0; i < FLAVOR_COUNT + 1; i++)
+ flavors[i] = _flavors[i];
- r6 = 0;
- for (i = 0; i < 5; i++)
+ j = 0;
+ for (i = 0; i < FLAVOR_COUNT; i++)
{
- if (vars[i] == 0)
- r6++;
+ if (flavors[i] == 0)
+ j++;
}
- if (r6 == 5 || a3 > 3)
- return 12;
- for (i = 0; i < playersNo; i++)
+
+ // If all flavors are 0, or at least 3 were negative/0
+ // or if players used the same berry, color is black
+ if (j == 5 || negativeFlavors > 3)
+ return PBLOCK_CLR_BLACK;
+
+ for (i = 0; i < numPlayers; i++)
{
- for (r6 = 0; r6 < playersNo; r6++)
+ for (j = 0; j < numPlayers; j++)
{
- if (berries[i].itemId == berries[r6].itemId && i != r6
- && (berries[i].itemId != ITEM_ENIGMA_BERRY || sub_8081964(berries, i, r6)))
- return 12;
+ if (berries[i].itemId == berries[j].itemId && i != j
+ && (berries[i].itemId != ITEM_ENIGMA_BERRY || AreBlenderBerriesSame(berries, i, j)))
+ return PBLOCK_CLR_BLACK;
}
}
- r2 = 0;
- for (r2 = 0, i = 0; i < 5; i++)
+
+ numFlavors = 0;
+ for (numFlavors = 0, i = 0; i < FLAVOR_COUNT; i++)
{
- if (vars[i] > 0)
- r2++;
+ if (flavors[i] > 0)
+ numFlavors++;
}
- if (r2 > 3)
- return 13;
- if (r2 == 3)
- return 11;
- for (i = 0; i < 5; i++)
+
+ // Check for special colors (White/Gray/Gold)
+ if (numFlavors > 3)
+ return PBLOCK_CLR_WHITE;
+
+ if (numFlavors == 3)
+ return PBLOCK_CLR_GRAY;
+
+ for (i = 0; i < FLAVOR_COUNT; i++)
{
- if (vars[i] > 50)
- return 14;
- }
- if (r2 == 1 && vars[0] > 0)
- return 1;
- if (r2 == 1 && vars[1] > 0)
- return 2;
- if (r2 == 1 && vars[2] > 0)
- return 3;
- if (r2 == 1 && vars[3] > 0)
- return 4;
- if (r2 == 1 && vars[4] > 0)
- return 5;
- if (r2 == 2)
- {
- s32 var = 0;
- for (i = 0; i < 5; i++)
+ if (flavors[i] > 50)
+ return PBLOCK_CLR_GOLD;
+ }
+
+ // Only 1 flavor present, return corresponding color
+ if (numFlavors == 1 && flavors[FLAVOR_SPICY] > 0)
+ return PBLOCK_CLR_RED;
+ if (numFlavors == 1 && flavors[FLAVOR_DRY] > 0)
+ return PBLOCK_CLR_BLUE;
+ if (numFlavors == 1 && flavors[FLAVOR_SWEET] > 0)
+ return PBLOCK_CLR_PINK;
+ if (numFlavors == 1 && flavors[FLAVOR_BITTER] > 0)
+ return PBLOCK_CLR_GREEN;
+ if (numFlavors == 1 && flavors[FLAVOR_SOUR] > 0)
+ return PBLOCK_CLR_YELLOW;
+
+ if (numFlavors == 2)
+ {
+ // Determine which 2 flavors are present
+ s32 idx = 0;
+ for (i = 0; i < FLAVOR_COUNT; i++)
{
- if (vars[i] > 0)
- sUnknown_03000DF8[var++] = i;
+ if (flavors[i] > 0)
+ sPokeblockPresentFlavors[idx++] = i;
}
- if (vars[sUnknown_03000DF8[0]] >= vars[sUnknown_03000DF8[1]])
+ // Use the stronger flavor to determine color
+ // The weaker flavor is returned in the upper 16 bits, but this is ignored in the color assignment
+ if (flavors[sPokeblockPresentFlavors[0]] >= flavors[sPokeblockPresentFlavors[1]])
{
- if (sUnknown_03000DF8[0] == 0)
- return (sUnknown_03000DF8[1] << 16) | 6;
- if (sUnknown_03000DF8[0] == 1)
- return (sUnknown_03000DF8[1] << 16) | 7;
- if (sUnknown_03000DF8[0] == 2)
- return (sUnknown_03000DF8[1] << 16) | 8;
- if (sUnknown_03000DF8[0] == 3)
- return (sUnknown_03000DF8[1] << 16) | 9;
- if (sUnknown_03000DF8[0] == 4)
- return (sUnknown_03000DF8[1] << 16) | 10;
+ if (sPokeblockPresentFlavors[0] == FLAVOR_SPICY)
+ return (sPokeblockPresentFlavors[1] << 16) | PBLOCK_CLR_PURPLE;
+ if (sPokeblockPresentFlavors[0] == FLAVOR_DRY)
+ return (sPokeblockPresentFlavors[1] << 16) | PBLOCK_CLR_INDIGO;
+ if (sPokeblockPresentFlavors[0] == FLAVOR_SWEET)
+ return (sPokeblockPresentFlavors[1] << 16) | PBLOCK_CLR_BROWN;
+ if (sPokeblockPresentFlavors[0] == FLAVOR_BITTER)
+ return (sPokeblockPresentFlavors[1] << 16) | PBLOCK_CLR_LITE_BLUE;
+ if (sPokeblockPresentFlavors[0] == FLAVOR_SOUR)
+ return (sPokeblockPresentFlavors[1] << 16) | PBLOCK_CLR_OLIVE;
}
else
{
- if (sUnknown_03000DF8[1] == 0)
- return (sUnknown_03000DF8[0] << 16) | 6;
- if (sUnknown_03000DF8[1] == 1)
- return (sUnknown_03000DF8[0] << 16) | 7;
- if (sUnknown_03000DF8[1] == 2)
- return (sUnknown_03000DF8[0] << 16) | 8;
- if (sUnknown_03000DF8[1] == 3)
- return (sUnknown_03000DF8[0] << 16) | 9;
- if (sUnknown_03000DF8[1] == 4)
- return (sUnknown_03000DF8[0] << 16) | 10;
+ if (sPokeblockPresentFlavors[1] == FLAVOR_SPICY)
+ return (sPokeblockPresentFlavors[0] << 16) | PBLOCK_CLR_PURPLE;
+ if (sPokeblockPresentFlavors[1] == FLAVOR_DRY)
+ return (sPokeblockPresentFlavors[0] << 16) | PBLOCK_CLR_INDIGO;
+ if (sPokeblockPresentFlavors[1] == FLAVOR_SWEET)
+ return (sPokeblockPresentFlavors[0] << 16) | PBLOCK_CLR_BROWN;
+ if (sPokeblockPresentFlavors[1] == FLAVOR_BITTER)
+ return (sPokeblockPresentFlavors[0] << 16) | PBLOCK_CLR_LITE_BLUE;
+ if (sPokeblockPresentFlavors[1] == FLAVOR_SOUR)
+ return (sPokeblockPresentFlavors[0] << 16) | PBLOCK_CLR_OLIVE;
}
}
- return 0;
+ return PBLOCK_CLR_NONE;
}
-static void sub_8081BB0(s16 value)
+static void Debug_SetMaxRPMStage(s16 value)
{
- sUnknown_03000E04 = value;
+ sDebug_MaxRPMStage = value;
}
-static s16 sub_8081BBC(void)
+// Unused
+static s16 Debug_GetMaxRPMStage(void)
{
- return sUnknown_03000E04;
+ return sDebug_MaxRPMStage;
}
-static void sub_8081BC8(s16 value)
+static void Debug_SetGameTimeStage(s16 value)
{
- sUnknown_03000E06 = value;
+ sDebug_GameTimeStage = value;
}
-static s16 sub_8081BD4(void)
+// Unued
+static s16 Debug_GetGameTimeStage(void)
{
- return sUnknown_03000E06;
+ return sDebug_GameTimeStage;
}
-#if MODERN
-// TODO remove this as soon as the code below is understood
-// add a UBFIX if required (code buggy?)
-__attribute__((optimize("no-aggressive-loop-optimizations")))
-#endif
-static void Blender_CalculatePokeblock(struct BlenderBerry *berries, struct Pokeblock *pokeblock, u8 playersNo, u8 *flavors, u16 maxRPM)
+static void CalculatePokeblock(struct BlenderBerry *berries, struct Pokeblock *pokeblock, u8 numPlayers, u8 *flavors, u16 maxRPM)
{
s32 i, j;
s32 multiuseVar, var2;
- u8 var3;
+ u8 numNegatives;
- for (i = 0; i < 6; i++)
- sUnknown_03000DE8[i] = 0;
+ for (i = 0; i < FLAVOR_COUNT + 1; i++)
+ sPokeblockFlavors[i] = 0;
- for (i = 0; i < playersNo; i++)
+ // Add up the flavor + feel of each players berry
+ for (i = 0; i < numPlayers; i++)
{
- for (j = 0; j < 6; j++)
- sUnknown_03000DE8[j] += berries[i].flavors[j];
+ for (j = 0; j < FLAVOR_COUNT + 1; j++)
+ sPokeblockFlavors[j] += berries[i].flavors[j];
}
- multiuseVar = sUnknown_03000DE8[0];
- sUnknown_03000DE8[0] -= sUnknown_03000DE8[1];
- sUnknown_03000DE8[1] -= sUnknown_03000DE8[2];
- sUnknown_03000DE8[2] -= sUnknown_03000DE8[3];
- sUnknown_03000DE8[3] -= sUnknown_03000DE8[4];
- sUnknown_03000DE8[4] -= multiuseVar;
+ // Subtract each flavor total from the prev one
+ // The idea is to focus on only the flavors with the highest totals
+ // Bad way to do it though (order matters here)
+ multiuseVar = sPokeblockFlavors[0];
+ sPokeblockFlavors[FLAVOR_SPICY] -= sPokeblockFlavors[FLAVOR_DRY];
+ sPokeblockFlavors[FLAVOR_DRY] -= sPokeblockFlavors[FLAVOR_SWEET];
+ sPokeblockFlavors[FLAVOR_SWEET] -= sPokeblockFlavors[FLAVOR_BITTER];
+ sPokeblockFlavors[FLAVOR_BITTER] -= sPokeblockFlavors[FLAVOR_SOUR];
+ sPokeblockFlavors[FLAVOR_SOUR] -= multiuseVar;
+ // Count (and reset) the resulting negative flavors
multiuseVar = 0;
- for (i = 0; i < 5; i++)
+ for (i = 0; i < FLAVOR_COUNT; i++)
{
- if (sUnknown_03000DE8[i] < 0)
+ if (sPokeblockFlavors[i] < 0)
{
- sUnknown_03000DE8[i] = 0;
+ sPokeblockFlavors[i] = 0;
multiuseVar++;
}
}
- var3 = multiuseVar;
- for (i = 0; i < 5; i++)
+ numNegatives = multiuseVar;
+
+ // Subtract the number of negative flavor totals from each positive total (without going below 0)
+ for (i = 0; i < FLAVOR_COUNT; i++)
{
- if (sUnknown_03000DE8[i] > 0)
+ if (sPokeblockFlavors[i] > 0)
{
- if (sUnknown_03000DE8[i] < multiuseVar)
- sUnknown_03000DE8[i] = 0;
+ if (sPokeblockFlavors[i] < multiuseVar)
+ sPokeblockFlavors[i] = 0;
else
- sUnknown_03000DE8[i] -= multiuseVar;
+ sPokeblockFlavors[i] -= multiuseVar;
}
}
- for (i = 0; i < 5; i++)
- {
- sUnknown_020322A8[i] = sUnknown_03000DE8[i];
- }
- multiuseVar = maxRPM / 333 + 100;
- sUnknown_020322D0 = multiuseVar;
+ for (i = 0; i < FLAVOR_COUNT; i++)
+ sDebug_PokeblockFactorFlavors[i] = sPokeblockFlavors[i];
- for (i = 0; i < 5; i++)
+ // Factor in max RPM and round
+ sDebug_PokeblockFactorRPM = multiuseVar = maxRPM / 333 + 100;
+ for (i = 0; i < FLAVOR_COUNT; i++)
{
- s32 r4;
- s32 r5 = sUnknown_03000DE8[i];
- r5 = (r5 * multiuseVar) / 10;
- r4 = r5 % 10;
- r5 /= 10;
- if (r4 > 4)
- r5++;
- sUnknown_03000DE8[i] = r5;
- }
- for (i = 0; i < 5; i++)
- {
- sUnknown_020322BC[i] = sUnknown_03000DE8[i];
+ s32 remainder;
+ s32 flavor = sPokeblockFlavors[i];
+ flavor = (flavor * multiuseVar) / 10;
+ remainder = flavor % 10;
+ flavor /= 10;
+ if (remainder > 4)
+ flavor++;
+ sPokeblockFlavors[i] = flavor;
}
- pokeblock->color = Blender_GetPokeblockColor(berries, &sUnknown_03000DE8[0], playersNo, var3);
- sUnknown_03000DE8[5] = (sUnknown_03000DE8[5] / playersNo) - playersNo;
+ for (i = 0; i < FLAVOR_COUNT; i++)
+ sDebug_PokeblockFactorFlavorsAfterRPM[i] = sPokeblockFlavors[i];
- if (sUnknown_03000DE8[5] < 0)
- sUnknown_03000DE8[5] = 0;
+ // Calculate color and feel of pokeblock
+ pokeblock->color = CalculatePokeblockColor(berries, &sPokeblockFlavors[0], numPlayers, numNegatives);
+ sPokeblockFlavors[FLAVOR_COUNT] = (sPokeblockFlavors[FLAVOR_COUNT] / numPlayers) - numPlayers;
- if (pokeblock->color == 12)
+ if (sPokeblockFlavors[FLAVOR_COUNT] < 0)
+ sPokeblockFlavors[FLAVOR_COUNT] = 0;
+
+ if (pokeblock->color == PBLOCK_CLR_BLACK)
{
- multiuseVar = Random() % 10;
- for (i = 0; i < 5; i++)
+ // Black pokeblocks get their flavors randomly reassigned
+ multiuseVar = Random() % ARRAY_COUNT(sBlackPokeblockFlavorFlags);
+ for (i = 0; i < FLAVOR_COUNT; i++)
{
- if ((sUnknown_08339CC8[multiuseVar] >> i) & 1)
- sUnknown_03000DE8[i] = 2;
+ if ((sBlackPokeblockFlavorFlags[multiuseVar] >> i) & 1)
+ sPokeblockFlavors[i] = 2;
else
- sUnknown_03000DE8[i] = 0;
+ sPokeblockFlavors[i] = 0;
}
}
- for (i = 0; i < 6; i++)
+ for (i = 0; i < FLAVOR_COUNT + 1; i++)
{
- if (sUnknown_03000DE8[i] > 255)
- sUnknown_03000DE8[i] = 255;
+ if (sPokeblockFlavors[i] > 255)
+ sPokeblockFlavors[i] = 255;
}
- pokeblock->spicy = sUnknown_03000DE8[0];
- pokeblock->dry = sUnknown_03000DE8[1];
- pokeblock->sweet = sUnknown_03000DE8[2];
- pokeblock->bitter = sUnknown_03000DE8[3];
- pokeblock->sour = sUnknown_03000DE8[4];
- pokeblock->feel = sUnknown_03000DE8[5];
+ pokeblock->spicy = sPokeblockFlavors[FLAVOR_SPICY];
+ pokeblock->dry = sPokeblockFlavors[FLAVOR_DRY];
+ pokeblock->sweet = sPokeblockFlavors[FLAVOR_SWEET];
+ pokeblock->bitter = sPokeblockFlavors[FLAVOR_BITTER];
+ pokeblock->sour = sPokeblockFlavors[FLAVOR_SOUR];
+ pokeblock->feel = sPokeblockFlavors[FLAVOR_COUNT];
- for (i = 0; i < 6; i++)
- {
- flavors[i] = sUnknown_03000DE8[i];
- }
+ for (i = 0; i < FLAVOR_COUNT + 1; i++)
+ flavors[i] = sPokeblockFlavors[i];
}
-static void BlenderDebug_CalculatePokeblock(struct BlenderBerry* berries, struct Pokeblock* pokeblock, u8 playersNo, u8* flavors, u16 a4)
+// Unused
+static void Debug_CalculatePokeblock(struct BlenderBerry* berries, struct Pokeblock* pokeblock, u8 numPlayers, u8* flavors, u16 maxRPM)
{
- Blender_CalculatePokeblock(berries, pokeblock, playersNo, flavors, a4);
+ CalculatePokeblock(berries, pokeblock, numPlayers, flavors, maxRPM);
}
-static void sub_8081E20(void)
+static void Debug_SetStageVars(void)
{
- u32 frames = (u16)(sBerryBlenderData->gameFrameTime);
- u16 max_RPM = sBerryBlenderData->max_RPM;
- s16 var = 0;
+ u32 frames = (u16)(sBerryBlender->gameFrameTime);
+ u16 maxRPM = sBerryBlender->maxRPM;
+ s16 stage = 0;
if (frames < 900)
- var = 5;
+ stage = 5;
else if ((u16)(frames - 900) < 600)
- var = 4;
+ stage = 4;
else if ((u16)(frames - 1500) < 600)
- var = 3;
+ stage = 3;
else if ((u16)(frames - 2100) < 900)
- var = 2;
+ stage = 2;
else if ((u16)(frames - 3300) < 300)
- var = 1;
-
- sub_8081BC8(var);
-
- var = 0;
- if (max_RPM <= 64)
- {
- if (max_RPM >= 50 && max_RPM < 100)
- var = -1;
- else if (max_RPM >= 100 && max_RPM < 150)
- var = -2;
- else if (max_RPM >= 150 && max_RPM < 200)
- var = -3;
- else if (max_RPM >= 200 && max_RPM < 250)
- var = -4;
- else if (max_RPM >= 250 && max_RPM < 300)
- var = -5;
- else if (max_RPM >= 350 && max_RPM < 400)
- var = -6;
- else if (max_RPM >= 400 && max_RPM < 450)
- var = -7;
- else if (max_RPM >= 500 && max_RPM < 550)
- var = -8;
- else if (max_RPM >= 550 && max_RPM < 600)
- var = -9;
- else if (max_RPM >= 600)
- var = -10;
- }
-
- sub_8081BB0(var);
-}
-
-static void sub_8081F94(u16 *a0)
-{
- if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
- *a0 = 0x2F00;
+ stage = 1;
+
+ Debug_SetGameTimeStage(stage);
+
+ stage = 0;
+ if (maxRPM <= 64)
+ {
+ if (maxRPM >= 50 && maxRPM < 100)
+ stage = -1;
+ else if (maxRPM >= 100 && maxRPM < 150)
+ stage = -2;
+ else if (maxRPM >= 150 && maxRPM < 200)
+ stage = -3;
+ else if (maxRPM >= 200 && maxRPM < 250)
+ stage = -4;
+ else if (maxRPM >= 250 && maxRPM < 300)
+ stage = -5;
+ else if (maxRPM >= 350 && maxRPM < 400)
+ stage = -6;
+ else if (maxRPM >= 400 && maxRPM < 450)
+ stage = -7;
+ else if (maxRPM >= 500 && maxRPM < 550)
+ stage = -8;
+ else if (maxRPM >= 550 && maxRPM < 600)
+ stage = -9;
+ else if (maxRPM >= 600)
+ stage = -10;
+ }
+
+ Debug_SetMaxRPMStage(stage);
+}
+
+static void SendContinuePromptResponse(u16 *cmd)
+{
+ if (gReceivedRemoteLinkPlayers && gWirelessCommType)
+ *cmd = RFUCMD_SEND_PACKET;
else
- *a0 = 0x2FFF;
+ *cmd = LINKCMD_SEND_PACKET;
}
-static void CB2_HandleBlenderEndGame(void)
+static void CB2_EndBlenderGame(void)
{
u8 i, j;
- if (sBerryBlenderData->gameEndState < 3)
- sub_8082D28();
+ if (sBerryBlender->gameEndState < 3)
+ UpdateBlenderCenter();
GetMultiplayerId(); // unused return value
- switch (sBerryBlenderData->gameEndState)
+ switch (sBerryBlender->gameEndState)
{
case 1:
m4aMPlayTempoControl(&gMPlayInfo_BGM, 256);
for (i = 0; i < gSpecialVar_0x8004; i++)
{
- DestroyTask(sBerryBlenderData->field_120[i]);
+ DestroyTask(sBerryBlender->opponentTaskIds[i]);
}
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->gameEndState++;
break;
case 2:
- sBerryBlenderData->field_4C -= 32;
- if (sBerryBlenderData->field_4C <= 0)
+ sBerryBlender->speed -= 32;
+ if (sBerryBlender->speed <= 0)
{
ClearLinkCallback();
- sBerryBlenderData->field_4C = 0;
+ sBerryBlender->speed = 0;
- if (gReceivedRemoteLinkPlayers != 0)
- sBerryBlenderData->gameEndState++;
+ if (gReceivedRemoteLinkPlayers)
+ sBerryBlender->gameEndState++;
else
- sBerryBlenderData->gameEndState = 5;
+ sBerryBlender->gameEndState = 5;
- sBerryBlenderData->mainState = 0;
+ sBerryBlender->mainState = 0;
m4aMPlayStop(&gMPlayInfo_SE2);
}
- Blender_ControlHitPitch();
+ UpdateHitPitch();
break;
case 3:
if (GetMultiplayerId() != 0)
{
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->gameEndState++;
}
else if (IsLinkTaskFinished())
{
- if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
+ if (gReceivedRemoteLinkPlayers && gWirelessCommType)
{
- sBerryBlenderData->gameBlock.timeRPM.time = sBerryBlenderData->gameFrameTime;
- sBerryBlenderData->gameBlock.timeRPM.max_RPM = sBerryBlenderData->max_RPM;
+ sBerryBlender->gameBlock.timeRPM.time = sBerryBlender->gameFrameTime;
+ sBerryBlender->gameBlock.timeRPM.maxRPM = sBerryBlender->maxRPM;
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
- for (j = 0; j < BLENDER_SCORES_NO; j++)
- sBerryBlenderData->gameBlock.scores[i][j] = sBerryBlenderData->scores[i][j];
+ for (j = 0; j < NUM_SCORE_TYPES; j++)
+ sBerryBlender->gameBlock.scores[i][j] = sBerryBlender->scores[i][j];
}
- if (SendBlock(0, &sBerryBlenderData->gameBlock, sizeof(sBerryBlenderData->gameBlock)))
- sBerryBlenderData->gameEndState++;
+ if (SendBlock(0, &sBerryBlender->gameBlock, sizeof(sBerryBlender->gameBlock)))
+ sBerryBlender->gameEndState++;
}
else
{
- sBerryBlenderData->smallBlock.time = sBerryBlenderData->gameFrameTime;
- sBerryBlenderData->smallBlock.max_RPM = sBerryBlenderData->max_RPM;
- if (SendBlock(0, &sBerryBlenderData->smallBlock, sizeof(sBerryBlenderData->smallBlock) + 32))
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->smallBlock.time = sBerryBlender->gameFrameTime;
+ sBerryBlender->smallBlock.maxRPM = sBerryBlender->maxRPM;
+ if (SendBlock(0, &sBerryBlender->smallBlock, sizeof(sBerryBlender->smallBlock) + 32))
+ sBerryBlender->gameEndState++;
}
}
break;
@@ -2440,64 +2617,64 @@ static void CB2_HandleBlenderEndGame(void)
if (GetBlockReceivedStatus())
{
ResetBlockReceivedFlags();
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->gameEndState++;
- if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
+ if (gReceivedRemoteLinkPlayers && gWirelessCommType)
{
struct BlenderGameBlock *receivedBlock = (struct BlenderGameBlock*)(&gBlockRecvBuffer);
- sBerryBlenderData->max_RPM = receivedBlock->timeRPM.max_RPM;
- sBerryBlenderData->gameFrameTime = receivedBlock->timeRPM.time;
+ sBerryBlender->maxRPM = receivedBlock->timeRPM.maxRPM;
+ sBerryBlender->gameFrameTime = receivedBlock->timeRPM.time;
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
- for (j = 0; j < BLENDER_SCORES_NO; j++)
- sBerryBlenderData->scores[i][j] = receivedBlock->scores[i][j];
+ for (j = 0; j < NUM_SCORE_TYPES; j++)
+ sBerryBlender->scores[i][j] = receivedBlock->scores[i][j];
}
}
else
{
struct TimeAndRPM *receivedBlock = (struct TimeAndRPM*)(&gBlockRecvBuffer);
- sBerryBlenderData->max_RPM = receivedBlock->max_RPM;
- sBerryBlenderData->gameFrameTime = receivedBlock->time;
+ sBerryBlender->maxRPM = receivedBlock->maxRPM;
+ sBerryBlender->gameFrameTime = receivedBlock->time;
}
}
break;
case 5:
- if (Blender_PrintBlendingRanking())
- sBerryBlenderData->gameEndState++;
+ if (PrintBlendingRanking())
+ sBerryBlender->gameEndState++;
break;
case 6:
- if (Blender_PrintBlendingResults())
+ if (PrintBlendingResults())
{
if (gInGameOpponentsNo == 0)
IncrementGameStat(GAME_STAT_POKEBLOCKS_WITH_FRIENDS);
else
IncrementGameStat(GAME_STAT_POKEBLOCKS);
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->gameEndState++;
}
break;
case 7:
- if (Blender_PrintText(&sBerryBlenderData->textState, sText_WouldLikeToBlendAnotherBerry, GetPlayerTextSpeedDelay()))
- sBerryBlenderData->gameEndState++;
+ if (Blender_PrintText(&sBerryBlender->textState, sText_WouldLikeToBlendAnotherBerry, GetPlayerTextSpeedDelay()))
+ sBerryBlender->gameEndState++;
break;
case 9:
- sBerryBlenderData->yesNoAnswer = 0;
- CreateYesNoMenu(&sBlender_YesNoWindowTemplate, 1, 0xD, 0);
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->yesNoAnswer = 0;
+ CreateYesNoMenu(&sYesNoWindowTemplate_ContinuePlaying, 1, 0xD, 0);
+ sBerryBlender->gameEndState++;
break;
case 10:
switch (Menu_ProcessInputNoWrapClearOnChoose())
{
case 1:
case -1:
- sBerryBlenderData->yesNoAnswer = 1;
- sBerryBlenderData->gameEndState++;
- for (i = 0; i <BLENDER_MAX_PLAYERS; i++)
+ sBerryBlender->yesNoAnswer = 1;
+ sBerryBlender->gameEndState++;
+ for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
- if (sBerryBlenderData->field_8E[i] != 0xFF)
+ if (sBerryBlender->arrowIdToPlayerId[i] != NO_PLAYER)
{
PutWindowTilemap(i);
CopyWindowToVram(i, 3);
@@ -2505,11 +2682,11 @@ static void CB2_HandleBlenderEndGame(void)
}
break;
case 0:
- sBerryBlenderData->yesNoAnswer = 0;
- sBerryBlenderData->gameEndState++;
- for (i = 0; i <BLENDER_MAX_PLAYERS; i++)
+ sBerryBlender->yesNoAnswer = 0;
+ sBerryBlender->gameEndState++;
+ for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
- if (sBerryBlenderData->field_8E[i] != 0xFF)
+ if (sBerryBlender->arrowIdToPlayerId[i] != NO_PLAYER)
{
PutWindowTilemap(i);
CopyWindowToVram(i, 3);
@@ -2519,62 +2696,64 @@ static void CB2_HandleBlenderEndGame(void)
}
break;
case 11:
- sub_8081F94(&gSendCmd[0]);
- if (sBerryBlenderData->yesNoAnswer == 0)
+ SendContinuePromptResponse(&gSendCmd[BLENDER_COMM_INPUT_STATE]);
+ if (sBerryBlender->yesNoAnswer == 0)
{
- if (IsBagPocketNonEmpty(POCKET_BERRIES) == FALSE) // no berries
+ if (IsBagPocketNonEmpty(POCKET_BERRIES) == FALSE)
{
- sBerryBlenderData->playAgainState = CANT_PLAY_NO_BERRIES;
- gSendCmd[1] = 0x9999;
+ // No berries
+ sBerryBlender->playAgainState = CANT_PLAY_NO_BERRIES;
+ gSendCmd[BLENDER_COMM_RESP] = LINKCMD_BLENDER_NO_BERRIES;
}
- else if (GetFirstFreePokeblockSlot() == -1) // no space for pokeblocks
+ else if (GetFirstFreePokeblockSlot() == -1)
{
- sBerryBlenderData->playAgainState = CANT_PLAY_NO_PKBLCK_SPACE;
- gSendCmd[1] = 0xAAAA;
+ // No space for pokeblocks
+ sBerryBlender->playAgainState = CANT_PLAY_NO_PKBLCK_SPACE;
+ gSendCmd[BLENDER_COMM_RESP] = LINKCMD_BLENDER_NO_PBLOCK_SPACE;
}
else
{
- sBerryBlenderData->playAgainState = PLAY_AGAIN_OK;
- gSendCmd[1] = 0x7779;
+ sBerryBlender->playAgainState = PLAY_AGAIN_YES;
+ gSendCmd[BLENDER_COMM_RESP] = LINKCMD_BLENDER_PLAY_AGAIN;
}
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->gameEndState++;
}
else
{
- sBerryBlenderData->playAgainState = DONT_PLAY_AGAIN;
- gSendCmd[1] = 0x8888;
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->playAgainState = PLAY_AGAIN_NO;
+ gSendCmd[BLENDER_COMM_RESP] = LINKCMD_CONT_BLOCK;
+ sBerryBlender->gameEndState++;
}
break;
case 12:
if (gInGameOpponentsNo)
{
- SetMainCallback2(CB2_HandlePlayerPlayAgainChoice);
- sBerryBlenderData->gameEndState = 0;
- sBerryBlenderData->mainState = 0;
+ SetMainCallback2(CB2_CheckPlayAgainLocal);
+ sBerryBlender->gameEndState = 0;
+ sBerryBlender->mainState = 0;
}
else
{
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->gameEndState++;
}
break;
case 8:
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->gameEndState++;
break;
case 13:
- if (Blender_PrintText(&sBerryBlenderData->textState, sText_CommunicationStandby, GetPlayerTextSpeedDelay()))
+ if (Blender_PrintText(&sBerryBlender->textState, sText_CommunicationStandby, GetPlayerTextSpeedDelay()))
{
- SetMainCallback2(CB2_HandlePlayerLinkPlayAgainChoice);
- sBerryBlenderData->gameEndState = 0;
- sBerryBlenderData->mainState = 0;
+ SetMainCallback2(CB2_CheckPlayAgainLink);
+ sBerryBlender->gameEndState = 0;
+ sBerryBlender->mainState = 0;
}
break;
}
- sub_808330C();
- sub_8083230(sBerryBlenderData->field_4C);
- sub_8082AD4();
- Blender_DummiedOutFunc(sBerryBlenderData->bg_X, sBerryBlenderData->bg_Y);
+ RestoreBgCoords();
+ UpdateRPM(sBerryBlender->speed);
+ ProcessLinkPlayerCmds();
+ Blender_DummiedOutFunc(sBerryBlender->bg_X, sBerryBlender->bg_Y);
RunTasks();
AnimateSprites();
BuildOamBuffer();
@@ -2584,30 +2763,30 @@ static void CB2_HandleBlenderEndGame(void)
static bool8 LinkPlayAgainHandleSaving(void)
{
- switch (sBerryBlenderData->field_1A0)
+ switch (sBerryBlender->linkPlayAgainState)
{
case 0:
SetLinkStandbyCallback();
- sBerryBlenderData->field_1A0 = 1;
- sBerryBlenderData->framesToWait = 0;
+ sBerryBlender->linkPlayAgainState = 1;
+ sBerryBlender->framesToWait = 0;
break;
case 1:
if (IsLinkTaskFinished())
{
- sBerryBlenderData->field_1A0++;
+ sBerryBlender->linkPlayAgainState++;
gSoftResetDisabled = TRUE;
}
break;
case 2:
FullSaveGame();
- sBerryBlenderData->field_1A0++;
- sBerryBlenderData->framesToWait = 0;
+ sBerryBlender->linkPlayAgainState++;
+ sBerryBlender->framesToWait = 0;
break;
case 3:
- if (++sBerryBlenderData->framesToWait == 10)
+ if (++sBerryBlender->framesToWait == 10)
{
SetLinkStandbyCallback();
- sBerryBlenderData->field_1A0++;
+ sBerryBlender->linkPlayAgainState++;
}
break;
case 4:
@@ -2615,21 +2794,21 @@ static bool8 LinkPlayAgainHandleSaving(void)
{
if (CheckSaveFile())
{
- sBerryBlenderData->field_1A0 = 5;
+ sBerryBlender->linkPlayAgainState = 5;
}
else
{
- sBerryBlenderData->framesToWait = 0;
- sBerryBlenderData->field_1A0 = 3;
+ sBerryBlender->framesToWait = 0;
+ sBerryBlender->linkPlayAgainState = 3;
}
}
break;
case 5:
- sBerryBlenderData->field_1A0++;
- sBerryBlenderData->framesToWait = 0;
+ sBerryBlender->linkPlayAgainState++;
+ sBerryBlender->framesToWait = 0;
break;
case 6:
- if (++sBerryBlenderData->framesToWait > 5)
+ if (++sBerryBlender->framesToWait > 5)
{
gSoftResetDisabled = FALSE;
return TRUE;
@@ -2640,113 +2819,115 @@ static bool8 LinkPlayAgainHandleSaving(void)
return FALSE;
}
-static void CB2_HandlePlayerLinkPlayAgainChoice(void)
+static void CB2_CheckPlayAgainLink(void)
{
- switch (sBerryBlenderData->gameEndState)
+ switch (sBerryBlender->gameEndState)
{
case 0:
- if (sBerryBlenderData->field_64[0] == 0x2222)
+ if (sBerryBlender->playerContinueResponses[0] == LINKCMD_SEND_LINK_TYPE)
{
- sBerryBlenderData->gameEndState = 5;
+ // Link leader says game will continue
+ sBerryBlender->gameEndState = 5;
}
- else if (sBerryBlenderData->field_64[0] == 0x1111)
+ else if (sBerryBlender->playerContinueResponses[0] == LINKCMD_BLENDER_STOP)
{
- if (sBerryBlenderData->field_6C == 0x9999)
- sBerryBlenderData->gameEndState = 2;
- else if (sBerryBlenderData->field_6C == 0xAAAA)
- sBerryBlenderData->gameEndState = 1;
+ // Link leader says game will stop, if necessary print why
+ if (sBerryBlender->canceledPlayerCmd == LINKCMD_BLENDER_NO_BERRIES)
+ sBerryBlender->gameEndState = 2;
+ else if (sBerryBlender->canceledPlayerCmd == LINKCMD_BLENDER_NO_PBLOCK_SPACE)
+ sBerryBlender->gameEndState = 1;
else
- sBerryBlenderData->gameEndState = 5;
+ sBerryBlender->gameEndState = 5;
}
break;
case 1:
- sBerryBlenderData->gameEndState = 3;
- StringCopy(gStringVar4, gLinkPlayers[sBerryBlenderData->field_6E].name);
+ sBerryBlender->gameEndState = 3;
+ StringCopy(gStringVar4, gLinkPlayers[sBerryBlender->canceledPlayerId].name);
StringAppend(gStringVar4, sText_ApostropheSPokeblockCaseIsFull);
break;
case 2:
- sBerryBlenderData->gameEndState++;
- StringCopy(gStringVar4, gLinkPlayers[sBerryBlenderData->field_6E].name);
+ sBerryBlender->gameEndState++;
+ StringCopy(gStringVar4, gLinkPlayers[sBerryBlender->canceledPlayerId].name);
StringAppend(gStringVar4, sText_HasNoBerriesToPut);
break;
case 3:
- if (Blender_PrintText(&sBerryBlenderData->textState, gStringVar4, GetPlayerTextSpeedDelay()))
+ if (Blender_PrintText(&sBerryBlender->textState, gStringVar4, GetPlayerTextSpeedDelay()))
{
- sBerryBlenderData->framesToWait = 0;
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->framesToWait = 0;
+ sBerryBlender->gameEndState++;
}
break;
case 4:
- if (++sBerryBlenderData->framesToWait > 60)
- sBerryBlenderData->gameEndState = 5;
+ if (++sBerryBlender->framesToWait > 60)
+ sBerryBlender->gameEndState = 5;
break;
case 5:
- Blender_PrintText(&sBerryBlenderData->textState, gText_SavingDontTurnOff2, 0);
+ Blender_PrintText(&sBerryBlender->textState, gText_SavingDontTurnOff2, 0);
SetLinkStandbyCallback();
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->gameEndState++;
break;
case 6:
if (IsLinkTaskFinished())
{
- sBerryBlenderData->framesToWait = 0;
- sBerryBlenderData->gameEndState++;
- sBerryBlenderData->field_1A0 = 0;
+ sBerryBlender->framesToWait = 0;
+ sBerryBlender->gameEndState++;
+ sBerryBlender->linkPlayAgainState = 0;
}
break;
case 7:
if (LinkPlayAgainHandleSaving())
{
PlaySE(SE_SAVE);
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->gameEndState++;
}
break;
case 8:
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->gameEndState++;
SetLinkStandbyCallback();
break;
case 9:
if (IsLinkTaskFinished())
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->gameEndState++;
}
break;
case 10:
if (!gPaletteFade.active)
{
- if (sBerryBlenderData->field_64[0] == 0x2222)
+ if (sBerryBlender->playerContinueResponses[0] == LINKCMD_SEND_LINK_TYPE)
{
FreeAllWindowBuffers();
UnsetBgTilemapBuffer(2);
UnsetBgTilemapBuffer(1);
- FREE_AND_SET_NULL(sBerryBlenderData);
+ FREE_AND_SET_NULL(sBerryBlender);
SetMainCallback2(DoBerryBlending);
}
else
{
- sBerryBlenderData->framesToWait = 0;
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->framesToWait = 0;
+ sBerryBlender->gameEndState++;
}
}
break;
case 11:
- if (++sBerryBlenderData->framesToWait > 30)
+ if (++sBerryBlender->framesToWait > 30)
{
SetCloseLinkCallback();
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->gameEndState++;
}
break;
case 12:
- if (gReceivedRemoteLinkPlayers == 0)
+ if (!gReceivedRemoteLinkPlayers)
{
- FREE_AND_SET_NULL(sBerryBlenderData);
+ FREE_AND_SET_NULL(sBerryBlender);
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
break;
}
- sub_8082AD4();
- Blender_DummiedOutFunc(sBerryBlenderData->bg_X, sBerryBlenderData->bg_Y);
+ ProcessLinkPlayerCmds();
+ Blender_DummiedOutFunc(sBerryBlender->bg_X, sBerryBlender->bg_Y);
RunTasks();
AnimateSprites();
BuildOamBuffer();
@@ -2754,40 +2935,40 @@ static void CB2_HandlePlayerLinkPlayAgainChoice(void)
UpdatePaletteFade();
}
-static void CB2_HandlePlayerPlayAgainChoice(void)
+static void CB2_CheckPlayAgainLocal(void)
{
- switch (sBerryBlenderData->gameEndState)
+ switch (sBerryBlender->gameEndState)
{
case 0:
- if (sBerryBlenderData->playAgainState == PLAY_AGAIN_OK || sBerryBlenderData->playAgainState == DONT_PLAY_AGAIN)
- sBerryBlenderData->gameEndState = 9;
- if (sBerryBlenderData->playAgainState == CANT_PLAY_NO_BERRIES)
- sBerryBlenderData->gameEndState = 2;
- if (sBerryBlenderData->playAgainState == CANT_PLAY_NO_PKBLCK_SPACE)
- sBerryBlenderData->gameEndState = 1;
+ if (sBerryBlender->playAgainState == PLAY_AGAIN_YES || sBerryBlender->playAgainState == PLAY_AGAIN_NO)
+ sBerryBlender->gameEndState = 9;
+ if (sBerryBlender->playAgainState == CANT_PLAY_NO_BERRIES)
+ sBerryBlender->gameEndState = 2;
+ if (sBerryBlender->playAgainState == CANT_PLAY_NO_PKBLCK_SPACE)
+ sBerryBlender->gameEndState = 1;
break;
case 1:
- sBerryBlenderData->gameEndState = 3;
- sBerryBlenderData->textState = 0;
+ sBerryBlender->gameEndState = 3;
+ sBerryBlender->textState = 0;
StringCopy(gStringVar4, sText_YourPokeblockCaseIsFull);
break;
case 2:
- sBerryBlenderData->gameEndState++;
- sBerryBlenderData->textState = 0;
+ sBerryBlender->gameEndState++;
+ sBerryBlender->textState = 0;
StringCopy(gStringVar4, sText_RunOutOfBerriesForBlending);
break;
case 3:
- if (Blender_PrintText(&sBerryBlenderData->textState, gStringVar4, GetPlayerTextSpeedDelay()))
- sBerryBlenderData->gameEndState = 9;
+ if (Blender_PrintText(&sBerryBlender->textState, gStringVar4, GetPlayerTextSpeedDelay()))
+ sBerryBlender->gameEndState = 9;
break;
case 9:
BeginFastPaletteFade(3);
- sBerryBlenderData->gameEndState++;
+ sBerryBlender->gameEndState++;
break;
case 10:
if (!gPaletteFade.active)
{
- if (sBerryBlenderData->playAgainState == PLAY_AGAIN_OK)
+ if (sBerryBlender->playAgainState == PLAY_AGAIN_YES)
SetMainCallback2(DoBerryBlending);
else
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
@@ -2795,13 +2976,13 @@ static void CB2_HandlePlayerPlayAgainChoice(void)
FreeAllWindowBuffers();
UnsetBgTilemapBuffer(2);
UnsetBgTilemapBuffer(1);
- FREE_AND_SET_NULL(sBerryBlenderData);
+ FREE_AND_SET_NULL(sBerryBlender);
}
break;
}
- sub_8082AD4();
- Blender_DummiedOutFunc(sBerryBlenderData->bg_X, sBerryBlenderData->bg_Y);
+ ProcessLinkPlayerCmds();
+ Blender_DummiedOutFunc(sBerryBlender->bg_X, sBerryBlender->bg_Y);
RunTasks();
AnimateSprites();
BuildOamBuffer();
@@ -2809,152 +2990,169 @@ static void CB2_HandlePlayerPlayAgainChoice(void)
UpdatePaletteFade();
}
-static void sub_8082AD4(void)
+static void ProcessLinkPlayerCmds(void)
{
if (gReceivedRemoteLinkPlayers)
{
- if (sub_80814B0(gRecvCmds[0][0], 0x2FFF, 0x2F00))
+ if (CheckRecvCmdMatches(gRecvCmds[0][BLENDER_COMM_INPUT_STATE], LINKCMD_SEND_PACKET, RFUCMD_SEND_PACKET))
{
- if (gRecvCmds[0][1] == 0x1111)
+ if (gRecvCmds[0][BLENDER_COMM_RESP] == LINKCMD_BLENDER_STOP)
{
- switch (gRecvCmds[0][2])
+ // Link leader has indicated play is stopping, read signal to determine why
+ switch (gRecvCmds[0][BLENDER_COMM_STOP_TYPE])
{
- case 0x8888:
- sBerryBlenderData->field_6C = 0x8888;
- sBerryBlenderData->field_6E = gRecvCmds[0][3];
+ case LINKCMD_CONT_BLOCK: // Someone selected "No" to continue playing
+ sBerryBlender->canceledPlayerCmd = LINKCMD_CONT_BLOCK;
+ sBerryBlender->canceledPlayerId = gRecvCmds[0][BLENDER_COMM_PLAYER_ID];
break;
- case 0x9999:
- sBerryBlenderData->field_6C = 0x9999;
- sBerryBlenderData->field_6E = gRecvCmds[0][3];
+ case LINKCMD_BLENDER_NO_BERRIES:
+ sBerryBlender->canceledPlayerCmd = LINKCMD_BLENDER_NO_BERRIES;
+ sBerryBlender->canceledPlayerId = gRecvCmds[0][BLENDER_COMM_PLAYER_ID];
break;
- case 0xAAAA:
- sBerryBlenderData->field_6C = 0xAAAA;
- sBerryBlenderData->field_6E = gRecvCmds[0][3];
+ case LINKCMD_BLENDER_NO_PBLOCK_SPACE:
+ sBerryBlender->canceledPlayerCmd = LINKCMD_BLENDER_NO_PBLOCK_SPACE;
+ sBerryBlender->canceledPlayerId = gRecvCmds[0][BLENDER_COMM_PLAYER_ID];
break;
}
- sBerryBlenderData->field_64[0] = 0x1111;
+ sBerryBlender->playerContinueResponses[0] = LINKCMD_BLENDER_STOP;
}
- else if (gRecvCmds[0][1] == 0x2222)
+ else if (gRecvCmds[0][BLENDER_COMM_RESP] == LINKCMD_SEND_LINK_TYPE)
{
- sBerryBlenderData->field_64[0] = 0x2222;
+ // Link leader has indicated play will continue
+ sBerryBlender->playerContinueResponses[0] = LINKCMD_SEND_LINK_TYPE;
}
}
- if (GetMultiplayerId() == 0 && sBerryBlenderData->field_64[0] != 0x1111 && sBerryBlenderData->field_64[0] != 0x2222)
+
+ // If player is link leader, check for responses to the "Continue playing" prompt (even if it's not up yet)
+ if (GetMultiplayerId() == 0
+ && sBerryBlender->playerContinueResponses[0] != LINKCMD_BLENDER_STOP
+ && sBerryBlender->playerContinueResponses[0] != LINKCMD_SEND_LINK_TYPE)
{
u8 i;
+
+ // Try to gather responses
for (i = 0; i < GetLinkPlayerCount(); i++)
{
- if (sub_80814B0(gRecvCmds[i][0], 0x2FFF, 0x2F00))
+ if (CheckRecvCmdMatches(gRecvCmds[i][BLENDER_COMM_INPUT_STATE], LINKCMD_SEND_PACKET, RFUCMD_SEND_PACKET))
{
- switch (gRecvCmds[i][1])
+ switch (gRecvCmds[i][BLENDER_COMM_RESP])
{
- case 0x8888:
- sBerryBlenderData->field_64[i] = 0x8888;
+ case LINKCMD_CONT_BLOCK: // Selected "No"
+ sBerryBlender->playerContinueResponses[i] = LINKCMD_CONT_BLOCK;
break;
- case 0x7779:
- sBerryBlenderData->field_64[i] = 0x7779;
+ case LINKCMD_BLENDER_PLAY_AGAIN: // Selected "Yes"
+ sBerryBlender->playerContinueResponses[i] = LINKCMD_BLENDER_PLAY_AGAIN;
break;
- case 0x9999:
- sBerryBlenderData->field_64[i] = 0x9999;
+ case LINKCMD_BLENDER_NO_BERRIES:
+ sBerryBlender->playerContinueResponses[i] = LINKCMD_BLENDER_NO_BERRIES;
break;
- case 0xAAAA:
- sBerryBlenderData->field_64[i] = 0xAAAA;
+ case LINKCMD_BLENDER_NO_PBLOCK_SPACE:
+ sBerryBlender->playerContinueResponses[i] = LINKCMD_BLENDER_NO_PBLOCK_SPACE;
break;
}
}
}
+
+ // Count players that have responded, stopping at first non-response
for (i = 0; i < GetLinkPlayerCount(); i++)
{
- if (sBerryBlenderData->field_64[i] == 0)
+ if (sBerryBlender->playerContinueResponses[i] == 0)
break;
}
+
+ // If all players responded, handle response
if (i == GetLinkPlayerCount())
{
+ // Count players that decided to play again, stopping at first negative response
for (i = 0; i < GetLinkPlayerCount(); i++)
{
- if (sBerryBlenderData->field_64[i] != 0x7779)
+ if (sBerryBlender->playerContinueResponses[i] != LINKCMD_BLENDER_PLAY_AGAIN)
break;
}
- sub_8081F94(&gSendCmd[0]);
+
+ // Schedule signal to other players about whether or not play will continue
+ SendContinuePromptResponse(&gSendCmd[BLENDER_COMM_INPUT_STATE]);
if (i == GetLinkPlayerCount())
{
- gSendCmd[1] = 0x2222;
+ // All players chose to continue playing
+ gSendCmd[BLENDER_COMM_RESP] = LINKCMD_SEND_LINK_TYPE;
}
else
{
- gSendCmd[1] = 0x1111;
- gSendCmd[2] = sBerryBlenderData->field_64[i];
- gSendCmd[3] = i;
+ // At least 1 player decided to stop playing, or can't continue playing
+ gSendCmd[BLENDER_COMM_RESP] = LINKCMD_BLENDER_STOP;
+ gSendCmd[BLENDER_COMM_STOP_TYPE] = sBerryBlender->playerContinueResponses[i];
+ gSendCmd[BLENDER_COMM_PLAYER_ID] = i;
}
}
}
}
}
-static void sub_8082CB4(struct BgAffineSrcData *dest)
+static void DrawBlenderCenter(struct BgAffineSrcData *dest)
{
struct BgAffineSrcData affineSrc;
affineSrc.texX = 0x7800;
affineSrc.texY = 0x5000;
- affineSrc.scrX = 0x78 - sBerryBlenderData->bg_X;
- affineSrc.scrY = 0x50 - sBerryBlenderData->bg_Y;
- affineSrc.sx = sBerryBlenderData->field_11A;
- affineSrc.sy = sBerryBlenderData->field_11A;
- affineSrc.alpha = sBerryBlenderData->arrowPos;
+ affineSrc.scrX = 0x78 - sBerryBlender->bg_X;
+ affineSrc.scrY = 0x50 - sBerryBlender->bg_Y;
+ affineSrc.sx = sBerryBlender->centerScale;
+ affineSrc.sy = sBerryBlender->centerScale;
+ affineSrc.alpha = sBerryBlender->arrowPos;
*dest = affineSrc;
}
u16 GetBlenderArrowPosition(void)
{
- return sBerryBlenderData->arrowPos;
+ return sBerryBlender->arrowPos;
}
-static void sub_8082D28(void)
+static void UpdateBlenderCenter(void)
{
u8 playerId = 0;
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
playerId = GetMultiplayerId();
- if (gWirelessCommType && gReceivedRemoteLinkPlayers != 0)
+ if (gWirelessCommType && gReceivedRemoteLinkPlayers)
{
if (playerId == 0)
{
- sBerryBlenderData->arrowPos += sBerryBlenderData->field_4C;
- gSendCmd[5] = sBerryBlenderData->field_116;
- gSendCmd[6] = sBerryBlenderData->arrowPos;
- sub_8082CB4(&sBerryBlenderData->bgAffineSrc);
+ sBerryBlender->arrowPos += sBerryBlender->speed;
+ gSendCmd[BLENDER_COMM_PROGRESS_BAR] = sBerryBlender->progressBarValue;
+ gSendCmd[BLENDER_COMM_ARROW_POS] = sBerryBlender->arrowPos;
+ DrawBlenderCenter(&sBerryBlender->bgAffineSrc);
}
else
{
- if ((gRecvCmds[0][0] & 0xFF00) == 0x4400)
+ if ((gRecvCmds[0][BLENDER_COMM_INPUT_STATE] & 0xFF00) == RFUCMD_BLENDER_SEND_KEYS)
{
- sBerryBlenderData->field_116 = gRecvCmds[0][5];
- sBerryBlenderData->arrowPos = gRecvCmds[0][6];
- sub_8082CB4(&sBerryBlenderData->bgAffineSrc);
+ sBerryBlender->progressBarValue = gRecvCmds[0][BLENDER_COMM_PROGRESS_BAR];
+ sBerryBlender->arrowPos = gRecvCmds[0][BLENDER_COMM_ARROW_POS];
+ DrawBlenderCenter(&sBerryBlender->bgAffineSrc);
}
}
}
else
{
- sBerryBlenderData->arrowPos += sBerryBlenderData->field_4C;
- sub_8082CB4(&sBerryBlenderData->bgAffineSrc);
+ sBerryBlender->arrowPos += sBerryBlender->speed;
+ DrawBlenderCenter(&sBerryBlender->bgAffineSrc);
}
}
-static void BerryBlender_SetBackgroundsPos(void)
+static void SetBgPos(void)
{
- SetGpuReg(REG_OFFSET_BG1HOFS, sBerryBlenderData->bg_X);
- SetGpuReg(REG_OFFSET_BG1VOFS, sBerryBlenderData->bg_Y);
+ SetGpuReg(REG_OFFSET_BG1HOFS, sBerryBlender->bg_X);
+ SetGpuReg(REG_OFFSET_BG1VOFS, sBerryBlender->bg_Y);
- SetGpuReg(REG_OFFSET_BG0HOFS, sBerryBlenderData->bg_X);
- SetGpuReg(REG_OFFSET_BG0VOFS, sBerryBlenderData->bg_Y);
+ SetGpuReg(REG_OFFSET_BG0HOFS, sBerryBlender->bg_X);
+ SetGpuReg(REG_OFFSET_BG0VOFS, sBerryBlender->bg_Y);
}
-static void sub_8082E3C(struct Sprite* sprite)
+static void SpriteCB_Particle(struct Sprite* sprite)
{
sprite->data[2] += sprite->data[0];
sprite->data[3] += sprite->data[1];
@@ -2965,7 +3163,7 @@ static void sub_8082E3C(struct Sprite* sprite)
DestroySprite(sprite);
}
-static void sub_8082E84(void)
+static void CreateParticleSprites(void)
{
s32 limit = (Random() % 2) + 1;
s32 i;
@@ -2976,20 +3174,20 @@ static void sub_8082E84(void)
s32 x, y;
u8 spriteId;
- rand = sBerryBlenderData->arrowPos + (Random() % 20);
+ rand = sBerryBlender->arrowPos + (Random() % 20);
x = gSineTable[(rand & 0xFF) + 64] / 4;
y = gSineTable[(rand & 0xFF)] / 4;
- spriteId = CreateSprite(&sUnknown_08339BE0, x + 120, y + 80, 1);
+ spriteId = CreateSprite(&sSpriteTemplate_Particles, x + 120, y + 80, 1);
gSprites[spriteId].data[0] = 16 - (Random() % 32);
gSprites[spriteId].data[1] = 16 - (Random() % 32);
- gSprites[spriteId].callback = sub_8082E3C;
+ gSprites[spriteId].callback = SpriteCB_Particle;
}
}
-static void sub_8082F68(struct Sprite* sprite)
+static void SpriteCB_ScoreSymbol(struct Sprite* sprite)
{
sprite->data[0]++;
sprite->pos2.y = -(sprite->data[0] / 3);
@@ -2998,7 +3196,7 @@ static void sub_8082F68(struct Sprite* sprite)
DestroySprite(sprite);
}
-static void sub_8082F9C(struct Sprite* sprite)
+static void SpriteCB_ScoreSymbolBest(struct Sprite* sprite)
{
sprite->data[0]++;
sprite->pos2.y = -(sprite->data[0] * 2);
@@ -3009,56 +3207,65 @@ static void sub_8082F9C(struct Sprite* sprite)
DestroySprite(sprite);
}
-static void Blender_SetParticipantBerryData(u8 participantId, u16 itemId)
+static void SetPlayerBerryData(u8 playerId, u16 itemId)
{
- sBerryBlenderData->chosenItemId[participantId] = itemId;
- Blender_CopyBerryData(&sBerryBlenderData->blendedBerries[participantId], itemId);
+ sBerryBlender->chosenItemId[playerId] = itemId;
+ ConvertItemToBlenderBerry(&sBerryBlender->blendedBerries[playerId], itemId);
}
-static void sub_8083010(struct Sprite* sprite)
+#define sState data[0]
+#define sYPos data[1]
+#define sDelay data[2]
+#define sAnimId data[3]
+
+static void SpriteCB_CountdownNumber(struct Sprite* sprite)
{
- switch (sprite->data[0])
+ switch (sprite->sState)
{
case 0:
- sprite->data[1] += 8;
- if (sprite->data[1] > 88)
+ sprite->sYPos += 8;
+ if (sprite->sYPos > DISPLAY_HEIGHT / 2 + 8)
{
- sprite->data[1] = 88;
- sprite->data[0]++;
- PlaySE(SE_KON);
+ sprite->sYPos = DISPLAY_HEIGHT / 2 + 8;
+ sprite->sState++;
+ PlaySE(SE_BALL_BOUNCE_1);
}
break;
case 1:
- sprite->data[2] += 1;
- if (sprite->data[2] > 20)
+ if (++sprite->sDelay > 20)
{
- sprite->data[0]++;
- sprite->data[2] = 0;
+ sprite->sState++;
+ sprite->sDelay = 0;
}
break;
case 2:
- sprite->data[1] += 4;
- if (sprite->data[1] > 176)
+ sprite->sYPos += 4;
+ if (sprite->sYPos > DISPLAY_HEIGHT + 16)
{
- if (++sprite->data[3] == 3)
+ if (++sprite->sAnimId == 3)
{
DestroySprite(sprite);
- CreateSprite(&sUnknown_08339C60, 120, -20, 2);
+ CreateSprite(&sSpriteTemplate_Start, 120, -20, 2);
}
else
{
- sprite->data[0] = 0;
- sprite->data[1] = -16;
- StartSpriteAnim(sprite, sprite->data[3]);
+ sprite->sState = 0;
+ sprite->sYPos = -16;
+ StartSpriteAnim(sprite, sprite->sAnimId);
}
}
break;
}
- sprite->pos2.y = sprite->data[1];
+ sprite->pos2.y = sprite->sYPos;
}
-static void sub_80830C0(struct Sprite* sprite)
+#undef sState
+#undef sYPos
+#undef sDelay
+#undef sAnimId
+
+static void SpriteCB_Start(struct Sprite* sprite)
{
switch (sprite->data[0])
{
@@ -3078,9 +3285,9 @@ static void sub_80830C0(struct Sprite* sprite)
break;
case 2:
sprite->data[1] += 4;
- if (sprite->data[1] > 176)
+ if (sprite->data[1] > DISPLAY_HEIGHT + 16)
{
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
DestroySprite(sprite);
}
break;
@@ -3089,175 +3296,190 @@ static void sub_80830C0(struct Sprite* sprite)
sprite->pos2.y = sprite->data[1];
}
-static void sub_8083140(u16 a0, u16 a1)
+static void TryUpdateProgressBar(u16 current, u16 limit)
{
- if (sBerryBlenderData->field_118 < a0)
+ // Progress bar doesn't move unless it's going up
+ if (sBerryBlender->maxProgressBarValue < current)
{
- sBerryBlenderData->field_118 += 2;
- sub_8083170(sBerryBlenderData->field_118, a1);
+ sBerryBlender->maxProgressBarValue += 2;
+ UpdateProgressBar(sBerryBlender->maxProgressBarValue, limit);
}
}
-static void sub_8083170(u16 a0, u16 a1)
+static void UpdateProgressBar(u16 value, u16 limit)
{
- s32 var1, var2, var3, var4;
+ s32 amountFilled, maxFilledSegment, subSegmentsFilled, i;
u16 *vram;
vram = (u16*)(BG_SCREEN_ADDR(12));
- var1 = (a0 * 64) / a1;
- var2 = var1 / 8;
- for (var4 = 0; var4 < var2; var4++)
+ amountFilled = (value * 64) / limit;
+ maxFilledSegment = amountFilled / 8;
+
+ // Set filled progress bar tiles in full segments
+ for (i = 0; i < maxFilledSegment; i++)
{
- vram[11 + var4] = 0x80E9;
- vram[43 + var4] = 0x80F9;
+ vram[11 + i] = PROGRESS_BAR_FILLED_TOP;
+ vram[43 + i] = PROGRESS_BAR_FILLED_BOTTOM;
}
- var3 = var1 % 8;
- if (var3 != 0)
+
+ // If progress bar between segments, fill with the corresponding partial segment tiles
+ subSegmentsFilled = amountFilled % 8;
+ if (subSegmentsFilled != 0)
{
- vram[11 + var4] = var3 + 0x80E1;
- vram[43 + var4] = var3 + 0x80F1;
- var4++;
+ vram[11 + i] = subSegmentsFilled + PROGRESS_BAR_EMPTY_TOP;
+ vram[43 + i] = subSegmentsFilled + PROGRESS_BAR_EMPTY_BOTTOM;
+ i++;
}
- for (; var4 < 8; var4++)
+
+ // Fill the remaining full segments with empty progress tiles
+ // Essentially unnecessary, given that it starts empty and progress only goes up
+ for (; i < 8; i++)
{
- vram[11 + var4] = 0x80E1;
- vram[43 + var4] = 0x80F1;
+ vram[11 + i] = PROGRESS_BAR_EMPTY_TOP;
+ vram[43 + i] = PROGRESS_BAR_EMPTY_BOTTOM;
}
}
-static u32 sub_8083210(u16 a0)
+static u32 ArrowSpeedToRPM(u16 speed)
{
- return 0x57E40 * a0 / 0x10000;
+ return 60 * 60 * 100 * speed / MAX_ARROW_POS;
}
-static void sub_8083230(u16 a0)
+static void UpdateRPM(u16 speed)
{
u8 i;
- u8 palAdders[5];
+ u8 digits[5];
- u32 var = sub_8083210(a0);
- if (sBerryBlenderData->max_RPM < var)
- sBerryBlenderData->max_RPM = var;
+ // Check if new max RPM has been reached
+ u32 currentRPM = ArrowSpeedToRPM(speed);
+ if (sBerryBlender->maxRPM < currentRPM)
+ sBerryBlender->maxRPM = currentRPM;
+
+ // Draw the current RPM number at the bottom of the screen
for (i = 0; i < 5; i++)
{
- palAdders[i] = var % 10;
- var /= 10;
+ digits[i] = currentRPM % 10;
+ currentRPM /= 10;
}
- *((u16*)(VRAM + 0x6458)) = palAdders[4] + 0x8072;
- *((u16*)(VRAM + 0x645A)) = palAdders[3] + 0x8072;
- *((u16*)(VRAM + 0x645C)) = palAdders[2] + 0x8072;
- *((u16*)(VRAM + 0x6460)) = palAdders[1] + 0x8072;
- *((u16*)(VRAM + 0x6462)) = palAdders[0] + 0x8072;
+ *((u16*)(BG_SCREEN_ADDR(12) + 0x458)) = digits[4] + RPM_DIGIT;
+ *((u16*)(BG_SCREEN_ADDR(12) + 0x45A)) = digits[3] + RPM_DIGIT;
+ *((u16*)(BG_SCREEN_ADDR(12) + 0x45C)) = digits[2] + RPM_DIGIT;
+ *((u16*)(BG_SCREEN_ADDR(12) + 0x460)) = digits[1] + RPM_DIGIT;
+ *((u16*)(BG_SCREEN_ADDR(12) + 0x462)) = digits[0] + RPM_DIGIT;
}
-static void sub_80832BC(s16* a0, u16 a1)
+// Passed a pointer to the bg x/y
+// Used when hitting a Best at high RPM
+static void ShakeBgCoordForHit(s16* coord, u16 speed)
{
- if (*a0 == 0)
- *a0 = (Random() % a1) - (a1 / 2);
+ if (*coord == 0)
+ *coord = (Random() % speed) - (speed / 2);
}
-static void sub_80832E8(s16* a0)
+static void RestoreBgCoord(s16* coord)
{
- if (*a0 < 0)
- (*a0)++;
- if (*a0 > 0)
- (*a0)--;
+ if (*coord < 0)
+ (*coord)++;
+ if (*coord > 0)
+ (*coord)--;
}
-static void sub_808330C(void)
+// For "unshaking" the screen after ShakeBgCoordForHit is called
+static void RestoreBgCoords(void)
{
- sub_80832E8((s16 *)&sBerryBlenderData->bg_X);
- sub_80832E8((s16 *)&sBerryBlenderData->bg_Y);
+ RestoreBgCoord((s16 *)&sBerryBlender->bg_X);
+ RestoreBgCoord((s16 *)&sBerryBlender->bg_Y);
}
-static void sub_8083334(s16* a0, u16 a1)
+static void BlenderLandShakeBgCoord(s16* coord, u16 timer)
{
- u8 var;
+ u8 strength;
- if (a1 < 10)
- var = 16;
+ if (timer < 10)
+ strength = 16;
else
- var = 8;
+ strength = 8;
- if (*a0 == 0)
+ if (*coord == 0)
{
- *a0 = (Random() % var) - (var / 2);
+ *coord = (Random() % strength) - (strength / 2);
}
else
{
- if (*a0 < 0)
- (*a0)++;
- if (*a0 > 0)
- (*a0)--;
+ if (*coord < 0)
+ (*coord)++;
+ if (*coord > 0)
+ (*coord)--;
}
}
-static bool8 sub_8083380(void)
+// For shaking the screen when the blender lands after falling in at the start
+static bool8 UpdateBlenderLandScreenShake(void)
{
- if (sBerryBlenderData->framesToWait == 0)
+ if (sBerryBlender->framesToWait == 0)
{
- sBerryBlenderData->bg_X = 0;
- sBerryBlenderData->bg_Y = 0;
+ sBerryBlender->bg_X = 0;
+ sBerryBlender->bg_Y = 0;
}
- sBerryBlenderData->framesToWait++;
- sub_8083334(&sBerryBlenderData->bg_X, sBerryBlenderData->framesToWait);
- sub_8083334(&sBerryBlenderData->bg_Y, sBerryBlenderData->framesToWait);
+ sBerryBlender->framesToWait++;
+ BlenderLandShakeBgCoord(&sBerryBlender->bg_X, sBerryBlender->framesToWait);
+ BlenderLandShakeBgCoord(&sBerryBlender->bg_Y, sBerryBlender->framesToWait);
- if (sBerryBlenderData->framesToWait == 20)
+ if (sBerryBlender->framesToWait == 20)
{
- sBerryBlenderData->bg_X = 0;
- sBerryBlenderData->bg_Y = 0;
+ sBerryBlender->bg_X = 0;
+ sBerryBlender->bg_Y = 0;
return TRUE;
}
return FALSE;
}
-static void sub_80833F8(struct Sprite* sprite)
+static void SpriteCB_PlayerArrow(struct Sprite* sprite)
{
- sprite->pos2.x = -(sBerryBlenderData->bg_X);
- sprite->pos2.y = -(sBerryBlenderData->bg_Y);
+ sprite->pos2.x = -(sBerryBlender->bg_X);
+ sprite->pos2.y = -(sBerryBlender->bg_Y);
}
static void TryUpdateBerryBlenderRecord(void)
{
- if (gSaveBlock1Ptr->berryBlenderRecords[sBerryBlenderData->playersNo - 2] < sBerryBlenderData->max_RPM)
- gSaveBlock1Ptr->berryBlenderRecords[sBerryBlenderData->playersNo - 2] = sBerryBlenderData->max_RPM;
+ if (gSaveBlock1Ptr->berryBlenderRecords[sBerryBlender->numPlayers - 2] < sBerryBlender->maxRPM)
+ gSaveBlock1Ptr->berryBlenderRecords[sBerryBlender->numPlayers - 2] = sBerryBlender->maxRPM;
}
-static bool8 Blender_PrintBlendingResults(void)
+static bool8 PrintBlendingResults(void)
{
u16 i;
s32 xPos, yPos;
struct Pokeblock pokeblock;
- u8 flavors[6];
+ u8 flavors[FLAVOR_COUNT + 1];
u8 text[40];
u16 berryIds[4]; // unused
- switch (sBerryBlenderData->mainState)
+ switch (sBerryBlender->mainState)
{
case 0:
- sBerryBlenderData->mainState++;
- sBerryBlenderData->framesToWait = 17;
+ sBerryBlender->mainState++;
+ sBerryBlender->framesToWait = 17;
break;
case 1:
- sBerryBlenderData->framesToWait -= 10;
- if (sBerryBlenderData->framesToWait < 0)
+ sBerryBlender->framesToWait -= 10;
+ if (sBerryBlender->framesToWait < 0)
{
- sBerryBlenderData->framesToWait = 0;
- sBerryBlenderData->mainState++;
+ sBerryBlender->framesToWait = 0;
+ sBerryBlender->mainState++;
}
break;
case 2:
- if (++sBerryBlenderData->framesToWait > 20)
+ if (++sBerryBlender->framesToWait > 20)
{
- for (i = 0; i < BLENDER_SCORES_NO; i++)
- DestroySprite(&gSprites[sBerryBlenderData->scoreIconIds[i]]);
+ for (i = 0; i < NUM_SCORE_TYPES; i++)
+ DestroySprite(&gSprites[sBerryBlender->scoreIconIds[i]]);
- sBerryBlenderData->framesToWait = 0;
- sBerryBlenderData->mainState++;
+ sBerryBlender->framesToWait = 0;
+ sBerryBlender->mainState++;
}
break;
case 3:
@@ -3268,92 +3490,91 @@ static bool8 Blender_PrintBlendingResults(void)
xPos = GetStringCenterAlignXOffset(1, sText_BlendingResults, 0xA8);
Blender_AddTextPrinter(5, sText_BlendingResults, xPos, 1, TEXT_SPEED_FF, 0);
- if (sBerryBlenderData->playersNo == 4)
+ if (sBerryBlender->numPlayers == BLENDER_MAX_PLAYERS)
yPos = 17;
else
yPos = 21;
- for (i = 0; i < sBerryBlenderData->playersNo; yPos += 16, i++)
+ for (i = 0; i < sBerryBlender->numPlayers; yPos += 16, i++)
{
- u8 place = sBerryBlenderData->playerPlaces[i];
-
- ConvertIntToDecimalStringN(sBerryBlenderData->stringVar, i + 1, STR_CONV_MODE_LEFT_ALIGN, 1);
- StringAppend(sBerryBlenderData->stringVar, sText_Dot);
- StringAppend(sBerryBlenderData->stringVar, gText_Space);
- StringAppend(sBerryBlenderData->stringVar, gLinkPlayers[place].name);
- Blender_AddTextPrinter(5, sBerryBlenderData->stringVar, 8, yPos, TEXT_SPEED_FF, 3);
-
- StringCopy(sBerryBlenderData->stringVar, sBerryBlenderData->blendedBerries[place].name);
- ConvertInternationalString(sBerryBlenderData->stringVar, gLinkPlayers[place].language);
- StringAppend(sBerryBlenderData->stringVar, sText_SpaceBerry);
- Blender_AddTextPrinter(5, sBerryBlenderData->stringVar, 0x54, yPos, TEXT_SPEED_FF, 3);
+ u8 place = sBerryBlender->playerPlaces[i];
+
+ ConvertIntToDecimalStringN(sBerryBlender->stringVar, i + 1, STR_CONV_MODE_LEFT_ALIGN, 1);
+ StringAppend(sBerryBlender->stringVar, sText_Dot);
+ StringAppend(sBerryBlender->stringVar, gText_Space);
+ StringAppend(sBerryBlender->stringVar, gLinkPlayers[place].name);
+ Blender_AddTextPrinter(5, sBerryBlender->stringVar, 8, yPos, TEXT_SPEED_FF, 3);
+
+ StringCopy(sBerryBlender->stringVar, sBerryBlender->blendedBerries[place].name);
+ ConvertInternationalString(sBerryBlender->stringVar, gLinkPlayers[place].language);
+ StringAppend(sBerryBlender->stringVar, sText_SpaceBerry);
+ Blender_AddTextPrinter(5, sBerryBlender->stringVar, 0x54, yPos, TEXT_SPEED_FF, 3);
}
Blender_AddTextPrinter(5, sText_MaximumSpeed, 0, 0x51, TEXT_SPEED_FF, 3);
- ConvertIntToDecimalStringN(sBerryBlenderData->stringVar, sBerryBlenderData->max_RPM / 100, STR_CONV_MODE_RIGHT_ALIGN, 3);
- StringAppend(sBerryBlenderData->stringVar, sText_Dot);
+ ConvertIntToDecimalStringN(sBerryBlender->stringVar, sBerryBlender->maxRPM / 100, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ StringAppend(sBerryBlender->stringVar, sText_Dot);
- ConvertIntToDecimalStringN(text, sBerryBlenderData->max_RPM % 100, STR_CONV_MODE_LEADING_ZEROS, 2);
- StringAppend(sBerryBlenderData->stringVar, text);
- StringAppend(sBerryBlenderData->stringVar, sText_RPM);
+ ConvertIntToDecimalStringN(text, sBerryBlender->maxRPM % 100, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringAppend(sBerryBlender->stringVar, text);
+ StringAppend(sBerryBlender->stringVar, sText_RPM);
- xPos = GetStringRightAlignXOffset(1, sBerryBlenderData->stringVar, 0xA8);
- Blender_AddTextPrinter(5, sBerryBlenderData->stringVar, xPos, 0x51, TEXT_SPEED_FF, 3);
+ xPos = GetStringRightAlignXOffset(1, sBerryBlender->stringVar, 0xA8);
+ Blender_AddTextPrinter(5, sBerryBlender->stringVar, xPos, 0x51, TEXT_SPEED_FF, 3);
Blender_AddTextPrinter(5, sText_Time, 0, 0x61, TEXT_SPEED_FF, 3);
- seconds = (sBerryBlenderData->gameFrameTime / 60) % 60;
- minutes = (sBerryBlenderData->gameFrameTime / (60 * 60));
+ seconds = (sBerryBlender->gameFrameTime / 60) % 60;
+ minutes = (sBerryBlender->gameFrameTime / (60 * 60));
- ConvertIntToDecimalStringN(sBerryBlenderData->stringVar, minutes, STR_CONV_MODE_LEADING_ZEROS, 2);
- txtPtr = StringAppend(sBerryBlenderData->stringVar, sText_Min);
+ ConvertIntToDecimalStringN(sBerryBlender->stringVar, minutes, STR_CONV_MODE_LEADING_ZEROS, 2);
+ txtPtr = StringAppend(sBerryBlender->stringVar, sText_Min);
ConvertIntToDecimalStringN(txtPtr, seconds, STR_CONV_MODE_LEADING_ZEROS, 2);
- StringAppend(sBerryBlenderData->stringVar, sText_Sec);
+ StringAppend(sBerryBlender->stringVar, sText_Sec);
- xPos = GetStringRightAlignXOffset(1, sBerryBlenderData->stringVar, 0xA8);
- Blender_AddTextPrinter(5, sBerryBlenderData->stringVar, xPos, 0x61, TEXT_SPEED_FF, 3);
+ xPos = GetStringRightAlignXOffset(1, sBerryBlender->stringVar, 0xA8);
+ Blender_AddTextPrinter(5, sBerryBlender->stringVar, xPos, 0x61, TEXT_SPEED_FF, 3);
- sBerryBlenderData->framesToWait = 0;
- sBerryBlenderData->mainState++;
+ sBerryBlender->framesToWait = 0;
+ sBerryBlender->mainState++;
CopyWindowToVram(5, 2);
}
break;
case 4:
- if (gMain.newKeys & A_BUTTON)
- sBerryBlenderData->mainState++;
+ if (JOY_NEW(A_BUTTON))
+ sBerryBlender->mainState++;
break;
case 5:
ClearStdWindowAndFrameToTransparent(5, 1);
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
- if (sBerryBlenderData->chosenItemId[i] != 0)
- berryIds[i] = sBerryBlenderData->chosenItemId[i] - FIRST_BERRY_INDEX;
- if (sBerryBlenderData->field_8E[i] != 0xFF)
+ if (sBerryBlender->chosenItemId[i] != 0)
+ berryIds[i] = sBerryBlender->chosenItemId[i] - FIRST_BERRY_INDEX;
+ if (sBerryBlender->arrowIdToPlayerId[i] != NO_PLAYER)
{
PutWindowTilemap(i);
CopyWindowToVram(i, 3);
}
}
- sub_8081E20();
-
- Blender_CalculatePokeblock(sBerryBlenderData->blendedBerries, &pokeblock, sBerryBlenderData->playersNo, flavors, sBerryBlenderData->max_RPM);
- Blender_PrintMadePokeblockString(&pokeblock, sBerryBlenderData->stringVar);
- TryAddContestLinkTvShow(&pokeblock, &sBerryBlenderData->tvBlender);
+ Debug_SetStageVars();
+ CalculatePokeblock(sBerryBlender->blendedBerries, &pokeblock, sBerryBlender->numPlayers, flavors, sBerryBlender->maxRPM);
+ PrintMadePokeblockString(&pokeblock, sBerryBlender->stringVar);
+ TryAddContestLinkTvShow(&pokeblock, &sBerryBlender->tvBlender);
- CreateTask(sub_8083F3C, 6);
+ CreateTask(Task_PlayPokeblockFanfare, 6);
IncrementDailyBerryBlender();
RemoveBagItem(gSpecialVar_ItemId, 1);
AddPokeblock(&pokeblock);
- sBerryBlenderData->textState = 0;
- sBerryBlenderData->mainState++;
+ sBerryBlender->textState = 0;
+ sBerryBlender->mainState++;
break;
case 6:
- if (Blender_PrintText(&sBerryBlenderData->textState, sBerryBlenderData->stringVar, GetPlayerTextSpeedDelay()))
+ if (Blender_PrintText(&sBerryBlender->textState, sBerryBlender->stringVar, GetPlayerTextSpeedDelay()))
{
TryUpdateBerryBlenderRecord();
return TRUE;
@@ -3364,7 +3585,7 @@ static bool8 Blender_PrintBlendingResults(void)
return FALSE;
}
-static void Blender_PrintMadePokeblockString(struct Pokeblock *pokeblock, u8 *dst)
+static void PrintMadePokeblockString(struct Pokeblock *pokeblock, u8 *dst)
{
u8 text[12];
u8 flavorLvl, feel;
@@ -3389,7 +3610,7 @@ static void Blender_PrintMadePokeblockString(struct Pokeblock *pokeblock, u8 *ds
StringAppend(dst, sText_NewParagraph);
}
-static void Blender_SortBasedOnPoints(u8 *places, u8 playersNum, u32 *scores)
+static void SortBasedOnPoints(u8 *places, u8 playersNum, u32 *scores)
{
s32 i, j;
@@ -3399,128 +3620,128 @@ static void Blender_SortBasedOnPoints(u8 *places, u8 playersNum, u32 *scores)
{
if (scores[places[i]] > scores[places[j]])
{
- u8 temp = places[i];
- places[i] = places[j];
- places[j] = temp;
+ u8 temp;
+ SWAP(places[i], places[j], temp);
}
}
}
}
-static void Blender_SortScores(void)
+static void SortScores(void)
{
u8 playerId;
u8 i;
u8 places[BLENDER_MAX_PLAYERS];
u32 points[BLENDER_MAX_PLAYERS];
- for (i = 0; i < sBerryBlenderData->playersNo; i++)
+ for (i = 0; i < sBerryBlender->numPlayers; i++)
places[i] = i;
- for (i = 0; i < sBerryBlenderData->playersNo; i++)
+ for (i = 0; i < sBerryBlender->numPlayers; i++)
{
- points[i] = 1000000 * sBerryBlenderData->scores[i][BLENDER_SCORE_BEST];
- points[i] += 1000 * sBerryBlenderData->scores[i][BLENDER_SCORE_GOOD];
- points[i] += 1000 - sBerryBlenderData->scores[i][BLENDER_SCORE_MISS];
+ points[i] = 1000000 * sBerryBlender->scores[i][SCORE_BEST];
+ points[i] += 1000 * sBerryBlender->scores[i][SCORE_GOOD];
+ points[i] += 1000 - sBerryBlender->scores[i][SCORE_MISS];
}
- Blender_SortBasedOnPoints(places, sBerryBlenderData->playersNo, points);
- for (i = 0; i < sBerryBlenderData->playersNo; i++)
- sBerryBlenderData->playerPlaces[i] = places[i];
+ SortBasedOnPoints(places, sBerryBlender->numPlayers, points);
+ for (i = 0; i < sBerryBlender->numPlayers; i++)
+ sBerryBlender->playerPlaces[i] = places[i];
- if (gReceivedRemoteLinkPlayers == 0)
+ if (!gReceivedRemoteLinkPlayers)
playerId = 0;
else
playerId = GetMultiplayerId();
- for (i = 0; i < sBerryBlenderData->playersNo; i++)
+ for (i = 0; i < sBerryBlender->numPlayers; i++)
{
- if (sBerryBlenderData->playerPlaces[i] == playerId)
- sBerryBlenderData->field_1A4 = i;
+ if (sBerryBlender->playerPlaces[i] == playerId)
+ sBerryBlender->ownRanking = i;
}
}
-static bool8 Blender_PrintBlendingRanking(void)
+static bool8 PrintBlendingRanking(void)
{
u16 i;
s32 xPos, yPos;
- switch (sBerryBlenderData->mainState)
+ switch (sBerryBlender->mainState)
{
case 0:
- sBerryBlenderData->mainState++;
- sBerryBlenderData->framesToWait = 255;
+ sBerryBlender->mainState++;
+ sBerryBlender->framesToWait = 255;
break;
case 1:
- sBerryBlenderData->framesToWait -= 10;
- if (sBerryBlenderData->framesToWait < 0)
+ sBerryBlender->framesToWait -= 10;
+ if (sBerryBlender->framesToWait < 0)
{
- sBerryBlenderData->framesToWait = 0;
- sBerryBlenderData->mainState++;
+ sBerryBlender->framesToWait = 0;
+ sBerryBlender->mainState++;
}
break;
case 2:
- if (++sBerryBlenderData->framesToWait > 20)
+ if (++sBerryBlender->framesToWait > 20)
{
- sBerryBlenderData->framesToWait = 0;
- sBerryBlenderData->mainState++;
+ sBerryBlender->framesToWait = 0;
+ sBerryBlender->mainState++;
}
break;
case 3:
DrawStdFrameWithCustomTileAndPalette(5, 0, 1, 0xD);
- xPos = GetStringCenterAlignXOffset(1, sText_Ranking, 0xA8);
+ xPos = GetStringCenterAlignXOffset(1, sText_Ranking, 168);
Blender_AddTextPrinter(5, sText_Ranking, xPos, 1, TEXT_SPEED_FF, 0);
- sBerryBlenderData->scoreIconIds[BLENDER_SCORE_BEST] = CreateSprite(&sUnknown_08339B40, 128, 52, 0);
- StartSpriteAnim(&gSprites[sBerryBlenderData->scoreIconIds[BLENDER_SCORE_BEST]], 3);
- gSprites[sBerryBlenderData->scoreIconIds[BLENDER_SCORE_BEST]].callback = SpriteCallbackDummy;
+ sBerryBlender->scoreIconIds[SCORE_BEST] = CreateSprite(&sSpriteTemplate_ScoreSymbols, 128, 52, 0);
+ StartSpriteAnim(&gSprites[sBerryBlender->scoreIconIds[SCORE_BEST]], SCOREANIM_BEST_STATIC);
+ gSprites[sBerryBlender->scoreIconIds[SCORE_BEST]].callback = SpriteCallbackDummy;
- sBerryBlenderData->scoreIconIds[BLENDER_SCORE_GOOD] = CreateSprite(&sUnknown_08339B40, 160, 52, 0);
- gSprites[sBerryBlenderData->scoreIconIds[BLENDER_SCORE_GOOD]].callback = SpriteCallbackDummy;
+ sBerryBlender->scoreIconIds[SCORE_GOOD] = CreateSprite(&sSpriteTemplate_ScoreSymbols, 160, 52, 0);
+ // implicitly uses SCOREANIM_GOOD, no need to assign
+ gSprites[sBerryBlender->scoreIconIds[SCORE_GOOD]].callback = SpriteCallbackDummy;
- sBerryBlenderData->scoreIconIds[BLENDER_SCORE_MISS] = CreateSprite(&sUnknown_08339B40, 192, 52, 0);
- StartSpriteAnim(&gSprites[sBerryBlenderData->scoreIconIds[BLENDER_SCORE_MISS]], 1);
- gSprites[sBerryBlenderData->scoreIconIds[BLENDER_SCORE_MISS]].callback = SpriteCallbackDummy;
+ sBerryBlender->scoreIconIds[SCORE_MISS] = CreateSprite(&sSpriteTemplate_ScoreSymbols, 192, 52, 0);
+ StartSpriteAnim(&gSprites[sBerryBlender->scoreIconIds[SCORE_MISS]], SCOREANIM_MISS);
+ gSprites[sBerryBlender->scoreIconIds[SCORE_MISS]].callback = SpriteCallbackDummy;
- Blender_SortScores();
+ SortScores();
- for (yPos = 0x29, i = 0; i < sBerryBlenderData->playersNo; yPos += 0x10, i++)
+ for (yPos = 41, i = 0; i < sBerryBlender->numPlayers; yPos += 16, i++)
{
- u8 place = sBerryBlenderData->playerPlaces[i];
+ u8 place = sBerryBlender->playerPlaces[i];
- ConvertIntToDecimalStringN(sBerryBlenderData->stringVar, i + 1, STR_CONV_MODE_LEFT_ALIGN, 1);
- StringAppend(sBerryBlenderData->stringVar, sText_Dot);
- StringAppend(sBerryBlenderData->stringVar, gText_Space);
- StringAppend(sBerryBlenderData->stringVar, gLinkPlayers[place].name);
- Blender_AddTextPrinter(5, sBerryBlenderData->stringVar, 0, yPos, TEXT_SPEED_FF, 3);
+ ConvertIntToDecimalStringN(sBerryBlender->stringVar, i + 1, STR_CONV_MODE_LEFT_ALIGN, 1);
+ StringAppend(sBerryBlender->stringVar, sText_Dot);
+ StringAppend(sBerryBlender->stringVar, gText_Space);
+ StringAppend(sBerryBlender->stringVar, gLinkPlayers[place].name);
+ Blender_AddTextPrinter(5, sBerryBlender->stringVar, 0, yPos, TEXT_SPEED_FF, 3);
- ConvertIntToDecimalStringN(sBerryBlenderData->stringVar, sBerryBlenderData->scores[place][BLENDER_SCORE_BEST], STR_CONV_MODE_RIGHT_ALIGN, 3);
- Blender_AddTextPrinter(5, sBerryBlenderData->stringVar, 0x4E, yPos, TEXT_SPEED_FF, 3);
+ ConvertIntToDecimalStringN(sBerryBlender->stringVar, sBerryBlender->scores[place][SCORE_BEST], STR_CONV_MODE_RIGHT_ALIGN, 3);
+ Blender_AddTextPrinter(5, sBerryBlender->stringVar, 78, yPos, TEXT_SPEED_FF, 3);
- ConvertIntToDecimalStringN(sBerryBlenderData->stringVar, sBerryBlenderData->scores[place][BLENDER_SCORE_GOOD], STR_CONV_MODE_RIGHT_ALIGN, 3);
- Blender_AddTextPrinter(5, sBerryBlenderData->stringVar, 0x6E, yPos, TEXT_SPEED_FF, 3);
+ ConvertIntToDecimalStringN(sBerryBlender->stringVar, sBerryBlender->scores[place][SCORE_GOOD], STR_CONV_MODE_RIGHT_ALIGN, 3);
+ Blender_AddTextPrinter(5, sBerryBlender->stringVar, 78 + 32, yPos, TEXT_SPEED_FF, 3);
- ConvertIntToDecimalStringN(sBerryBlenderData->stringVar, sBerryBlenderData->scores[place][BLENDER_SCORE_MISS], STR_CONV_MODE_RIGHT_ALIGN, 3);
- Blender_AddTextPrinter(5, sBerryBlenderData->stringVar, 0x8E, yPos, TEXT_SPEED_FF, 3);
+ ConvertIntToDecimalStringN(sBerryBlender->stringVar, sBerryBlender->scores[place][SCORE_MISS], STR_CONV_MODE_RIGHT_ALIGN, 3);
+ Blender_AddTextPrinter(5, sBerryBlender->stringVar, 78 + 64, yPos, TEXT_SPEED_FF, 3);
}
PutWindowTilemap(5);
CopyWindowToVram(5, 3);
- sBerryBlenderData->framesToWait = 0;
- sBerryBlenderData->mainState++;
+ sBerryBlender->framesToWait = 0;
+ sBerryBlender->mainState++;
break;
case 4:
- if (++sBerryBlenderData->framesToWait > 20)
- sBerryBlenderData->mainState++;
+ if (++sBerryBlender->framesToWait > 20)
+ sBerryBlender->mainState++;
break;
case 5:
- if (gMain.newKeys & A_BUTTON)
+ if (JOY_NEW(A_BUTTON))
{
PlaySE(SE_SELECT);
- sBerryBlenderData->mainState++;
+ sBerryBlender->mainState++;
}
break;
case 6:
- sBerryBlenderData->mainState = 0;
+ sBerryBlender->mainState = 0;
return TRUE;
}
@@ -3539,11 +3760,11 @@ void ShowBerryBlenderRecordWindow(void)
DrawStdWindowFrame(gRecordsWindowId, 0);
FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1));
- xPos = GetStringCenterAlignXOffset(1, gText_BlenderMaxSpeedRecord, 0x90);
+ xPos = GetStringCenterAlignXOffset(1, gText_BlenderMaxSpeedRecord, 144);
AddTextPrinterParameterized(gRecordsWindowId, 1, gText_BlenderMaxSpeedRecord, xPos, 1, 0, NULL);
- AddTextPrinterParameterized(gRecordsWindowId, 1, gText_234Players, 4, 0x29, 0, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_234Players, 4, 41, 0, NULL);
- for (i = 0, yPos = 0x29; i < BLENDER_SCORES_NO; i++)
+ for (i = 0, yPos = 41; i < NUM_SCORE_TYPES; i++)
{
u8 *txtPtr;
u32 record;
@@ -3555,7 +3776,7 @@ void ShowBerryBlenderRecordWindow(void)
txtPtr = ConvertIntToDecimalStringN(txtPtr, record % 100, STR_CONV_MODE_LEADING_ZEROS, 2);
txtPtr = StringAppend(txtPtr, sText_RPM);
- xPos = GetStringRightAlignXOffset(1, text, 0x8C);
+ xPos = GetStringRightAlignXOffset(1, text, 140);
AddTextPrinterParameterized(gRecordsWindowId, 1, text, xPos, yPos + (i * 16), 0, NULL);
}
@@ -3563,16 +3784,16 @@ void ShowBerryBlenderRecordWindow(void)
CopyWindowToVram(gRecordsWindowId, 3);
}
-static void sub_8083F3C(u8 taskId)
+static void Task_PlayPokeblockFanfare(u8 taskId)
{
if (gTasks[taskId].data[0] == 0)
{
- PlayFanfare(MUS_FANFA1);
+ PlayFanfare(MUS_LEVEL_UP);
gTasks[taskId].data[0]++;
}
if (IsFanfareTaskInactive())
{
- PlayBGM(sBerryBlenderData->field_154);
+ PlayBGM(sBerryBlender->savedMusic);
DestroyTask(taskId);
}
}
@@ -3586,28 +3807,30 @@ static bool32 TryAddContestLinkTvShow(struct Pokeblock *pokeblock, struct TvBlen
tvBlender->pokeblockColor = pokeblock->color;
tvBlender->name[0] = EOS;
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
{
- if (sBerryBlenderData->field_1A4 == 0 && sheen > 20)
+ if (sBerryBlender->ownRanking == 0 && sheen > 20)
{
- StringCopy(tvBlender->name, gLinkPlayers[sBerryBlenderData->playerPlaces[sBerryBlenderData->playersNo - 1]].name);
+ // Player came first, try to put on air
+ StringCopy(tvBlender->name, gLinkPlayers[sBerryBlender->playerPlaces[sBerryBlender->numPlayers - 1]].name);
tvBlender->pokeblockFlavor = GetPokeblocksFlavor(pokeblock);
if (Put3CheersForPokeblocksOnTheAir(tvBlender->name, tvBlender->pokeblockFlavor,
tvBlender->pokeblockColor, tvBlender->pokeblockSheen,
- gLinkPlayers[sBerryBlenderData->playerPlaces[sBerryBlenderData->playersNo - 1]].language))
+ gLinkPlayers[sBerryBlender->playerPlaces[sBerryBlender->numPlayers - 1]].language))
{
return TRUE;
}
return FALSE;
}
- else if (sBerryBlenderData->field_1A4 == sBerryBlenderData->playersNo - 1 && sheen <= 20)
+ else if (sBerryBlender->ownRanking == sBerryBlender->numPlayers - 1 && sheen <= 20)
{
- StringCopy(tvBlender->name, gLinkPlayers[sBerryBlenderData->playerPlaces[0]].name);
+ // Player came last, try to put on air
+ StringCopy(tvBlender->name, gLinkPlayers[sBerryBlender->playerPlaces[0]].name);
tvBlender->pokeblockFlavor = GetPokeblocksFlavor(pokeblock);
if (Put3CheersForPokeblocksOnTheAir(tvBlender->name, tvBlender->pokeblockFlavor,
tvBlender->pokeblockColor, tvBlender->pokeblockSheen,
- gLinkPlayers[sBerryBlenderData->playerPlaces[0]].language))
+ gLinkPlayers[sBerryBlender->playerPlaces[0]].language))
{
return TRUE;
}
@@ -3628,19 +3851,19 @@ static void Blender_AddTextPrinter(u8 windowId, const u8 *string, u8 x, u8 y, s3
{
case 0:
case 3:
- txtColor[0] = 1;
- txtColor[1] = 2;
- txtColor[2] = 3;
+ txtColor[0] = TEXT_COLOR_WHITE;
+ txtColor[1] = TEXT_COLOR_DARK_GREY;
+ txtColor[2] = TEXT_COLOR_LIGHT_GREY;
break;
case 1:
- txtColor[0] = 0;
- txtColor[1] = 2;
- txtColor[2] = 3;
+ txtColor[0] = TEXT_COLOR_TRANSPARENT;
+ txtColor[1] = TEXT_COLOR_DARK_GREY;
+ txtColor[2] = TEXT_COLOR_LIGHT_GREY;
break;
case 2:
- txtColor[0] = 0;
- txtColor[1] = 4;
- txtColor[2] = 5;
+ txtColor[0] = TEXT_COLOR_TRANSPARENT;
+ txtColor[1] = TEXT_COLOR_RED;
+ txtColor[2] = TEXT_COLOR_LIGHT_RED;
break;
}
diff --git a/src/berry_crush.c b/src/berry_crush.c
index 654a3b4e3..d753e603c 100755
--- a/src/berry_crush.c
+++ b/src/berry_crush.c
@@ -825,7 +825,7 @@ u32 sub_8020C0C(MainCallback callback)
if (callback == CB2_ReturnToField)
{
gTextFlags.autoScroll = TRUE;
- PlayNewMapMusic(MUS_POKECEN);
+ PlayNewMapMusic(MUS_POKE_CENTER);
SetMainCallback1(CB1_Overworld);
}
@@ -900,7 +900,7 @@ static void sub_8020D8C(void)
void sub_8020E1C(void)
{
DestroyTask(gUnknown_02022C90->unkA);
- ChooseBerrySetCallback(sub_8020D8C);
+ ChooseBerryForMachine(sub_8020D8C);
}
static void sub_8020E3C(void)
@@ -1344,9 +1344,9 @@ void sub_80216E0(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1)
else
{
if (sp4 == 1)
- PlaySE(SE_TOY_DANGO);
+ PlaySE(SE_MUD_BALL);
else
- PlaySE(SE_TOY_KABE);
+ PlaySE(SE_BREAKABLE_DOOR);
arg0->unk25_2 = 1;
}
@@ -2115,7 +2115,7 @@ static u32 sub_8022E5C(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1
case 1:
if (IsLinkTaskFinished())
{
- PlayNewMapMusic(MUS_RG_SLOT);
+ PlayNewMapMusic(MUS_RG_GAME_CORNER);
sub_8022BEC(7, 1, NULL);
r4->unk12 = 3;
r4->unkC = 0;
@@ -2226,7 +2226,7 @@ static u32 sub_8023070(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r
case 2:
r4->unk138.unk38[r4->unk138.unk0]->callback = sub_8021608;
r4->unk138.unk38[r4->unk138.unk0]->affineAnimPaused = FALSE;
- PlaySE(SE_NAGERU);
+ PlaySE(SE_BALL_THROW);
break;
case 3:
if (r4->unk138.unk38[r4->unk138.unk0]->callback == sub_8021608)
@@ -2252,7 +2252,7 @@ static u32 sub_8023070(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r
case 6:
if (!IsLinkTaskFinished())
return 0;
- PlaySE(SE_RU_HYUU);
+ PlaySE(SE_FALL);
sub_8022BEC(11, 1, NULL);
r4->unk12 = 5;
r4->unkC = 0;
@@ -2274,7 +2274,7 @@ static u32 sub_80231B8(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r
r4->unk138.unk1 = 4;
r4->unk138.unk0 = 0;
r4->unk138.unk2 = gUnknown_082F326C[r4->unk138.unk1][0];
- PlaySE(SE_W070);
+ PlaySE(SE_M_STRENGTH);
break;
case 1:
r4->unk2C = gUnknown_082F326C[r4->unk138.unk1][r4->unk138.unk0];
@@ -2357,7 +2357,7 @@ void sub_802339C(struct BerryCrushGame *r4)
for (r7 = 0; r7 < r4->unk9; ++r7)
{
r2 = gRecvCmds[r7];
- if ((r2[0] & 0xFF00) == 0x2F00
+ if ((r2[0] & 0xFF00) == RFUCMD_SEND_PACKET
&& r2[1] == 2)
{
if ((u8)r2[2] & 4)
@@ -2559,7 +2559,7 @@ void sub_80236B8(struct BerryCrushGame *r5)
r5->unk5C.unk02_1 = r5->unk25_4;
r5->unk5C.unk0A = r5->unk25_5;
memcpy(r5->unk40.unk2, &r5->unk5C, sizeof(r5->unk40.unk2));
- sub_800FE50(r5->unk40.unk2);
+ Rfu_SendPacket(r5->unk40.unk2);
}
void sub_802385C(struct BerryCrushGame *r5)
@@ -2580,7 +2580,7 @@ void sub_802385C(struct BerryCrushGame *r5)
for (r4 = 0; r4 < r5->unk9; ++r4)
r5->unk68.as_four_players.others[r4].unk4.as_2d_bytes[1][5] = 0;
#endif
- if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00
+ if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET
|| gRecvCmds[0][1] != 2)
{
r5->unk25_2 = 0;
@@ -2667,7 +2667,7 @@ static u32 sub_8023A30(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1
{
case 0:
r4->unk12 = 8;
- PlaySE(SE_W070);
+ PlaySE(SE_M_STRENGTH);
BlendPalettes(0xFFFFFFFF, 8, RGB(31, 31, 0));
r4->unk138.unk0 = 2;
break;
@@ -2724,7 +2724,7 @@ static u32 sub_8023BC0(struct BerryCrushGame *r5, u8 *r6)
{
case 0:
r5->unk12 = 9;
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
BlendPalettes(0xFFFFFFFF, 8, RGB(31, 0, 0));
r5->unk138.unk0 = 4;
break;
diff --git a/src/bike.c b/src/bike.c
index 5cdf066a9..c4964b627 100644
--- a/src/bike.c
+++ b/src/bike.c
@@ -659,7 +659,7 @@ static void AcroBikeTransition_SideJump(u8 direction)
}
}
playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
- PlaySE(SE_JITE_PYOKO);
+ PlaySE(SE_BIKE_HOP);
playerObjEvent->facingDirectionLocked = 1;
PlayerSetAnimId(GetJumpMovementAction(direction), 2);
}
diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c
index 5dee9dd4b..a1ea44e26 100644
--- a/src/braille_puzzles.c
+++ b/src/braille_puzzles.c
@@ -93,7 +93,7 @@ void DoBrailleDigEffect(void)
MapGridSetMetatileIdAt(17, 9, METATILE_Cave_SealedChamberEntrance_BottomMid);
MapGridSetMetatileIdAt(18, 9, METATILE_Cave_SealedChamberEntrance_BottomRight | METATILE_COLLISION_MASK);
DrawWholeMapView();
- PlaySE(SE_BAN);
+ PlaySE(SE_BANG);
FlagSet(FLAG_SYS_BRAILLE_DIG);
ScriptContext2_Disable();
}
@@ -140,7 +140,7 @@ void DoBrailleRegirockEffect(void)
MapGridSetMetatileIdAt(15, 27, 563);
MapGridSetMetatileIdAt(16, 27, 3636);
DrawWholeMapView();
- PlaySE(SE_BAN);
+ PlaySE(SE_BANG);
FlagSet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETED);
ScriptContext2_Disable();
}
@@ -186,7 +186,7 @@ void UseFlyAncientTomb_Finish(void)
MapGridSetMetatileIdAt(15, 27, 563);
MapGridSetMetatileIdAt(16, 27, 3636);
DrawWholeMapView();
- PlaySE(SE_BAN);
+ PlaySE(SE_BANG);
FlagSet(FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED);
ScriptContext2_Disable();
}
@@ -286,7 +286,7 @@ void DoBrailleRegirockEffect(void)
MapGridSetMetatileIdAt(15, 27, METATILE_Cave_SealedChamberEntrance_BottomMid);
MapGridSetMetatileIdAt(16, 27, METATILE_Cave_SealedChamberEntrance_BottomRight | METATILE_COLLISION_MASK);
DrawWholeMapView();
- PlaySE(SE_BAN);
+ PlaySE(SE_BANG);
FlagSet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETED);
ScriptContext2_Disable();
}
@@ -325,7 +325,7 @@ void DoBrailleRegisteelEffect(void)
MapGridSetMetatileIdAt(15, 27, METATILE_Cave_SealedChamberEntrance_BottomMid);
MapGridSetMetatileIdAt(16, 27, METATILE_Cave_SealedChamberEntrance_BottomRight | METATILE_COLLISION_MASK);
DrawWholeMapView();
- PlaySE(SE_BAN);
+ PlaySE(SE_BANG);
FlagSet(FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED);
ScriptContext2_Disable();
}
diff --git a/src/cable_car.c b/src/cable_car.c
index 94d9d0c66..fc161284f 100644
--- a/src/cable_car.c
+++ b/src/cable_car.c
@@ -343,7 +343,7 @@ static void CableCarMainCallback_Setup(void)
break;
case 8:
BeginNormalPaletteFade(0xFFFFFFFF, 3, 16, 0, RGB(0, 0, 0));
- FadeInNewBGM(MUS_ROPEWAY, 1);
+ FadeInNewBGM(MUS_CABLE_CAR, 1);
sub_8150B6C(1);
gMain.state++;
break;
diff --git a/src/cable_club.c b/src/cable_club.c
index 982bd9fd3..93f87ec9b 100644
--- a/src/cable_club.c
+++ b/src/cable_club.c
@@ -865,9 +865,9 @@ static void Task_StartWiredCableClubBattle(u8 taskId)
break;
case 5:
if (gLinkPlayers[0].trainerId & 1)
- PlayMapChosenOrBattleBGM(MUS_BATTLE32);
+ PlayMapChosenOrBattleBGM(MUS_VS_GYM_LEADER);
else
- PlayMapChosenOrBattleBGM(MUS_BATTLE20);
+ PlayMapChosenOrBattleBGM(MUS_VS_TRAINER);
SetLinkBattleTypeFlags(gSpecialVar_0x8004);
CleanupOverworldWindowsAndTilemaps();
@@ -930,9 +930,9 @@ static void Task_StartWirelessCableClubBattle(u8 taskId)
break;
case 7:
if (gLinkPlayers[0].trainerId & 1)
- PlayMapChosenOrBattleBGM(MUS_BATTLE32);
+ PlayMapChosenOrBattleBGM(MUS_VS_GYM_LEADER);
else
- PlayMapChosenOrBattleBGM(MUS_BATTLE20);
+ PlayMapChosenOrBattleBGM(MUS_VS_TRAINER);
gLinkPlayers[0].linkType = LINKTYPE_BATTLE;
SetLinkBattleTypeFlags(gSpecialVar_0x8004);
diff --git a/src/contest.c b/src/contest.c
index 129bd7794..a84d72aa9 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -1389,7 +1389,7 @@ static void Task_RaiseCurtainAtStart(u8 taskId)
if (gTasks[taskId].data[1]++ <= 60)
break;
gTasks[taskId].data[1] = 0;
- PlaySE12WithPanning(SE_C_MAKU_U, 0);
+ PlaySE12WithPanning(SE_CONTEST_CURTAIN_RISE, 0);
gTasks[taskId].data[0]++;
break;
case 1:
@@ -1961,7 +1961,7 @@ static void Task_DoAppeals(u8 taskId)
return;
case APPEALSTATE_UPDATE_MOVE_USERS_STATUS:
if (DrawStatusSymbol(contestant))
- PlaySE(SE_C_PASI);
+ PlaySE(SE_CONTEST_ICON_CHANGE);
gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENTS;
return;
case APPEALSTATE_UPDATE_OPPONENTS:
@@ -2052,9 +2052,9 @@ static void Task_DoAppeals(u8 taskId)
break;
}
if (DrawStatusSymbol(i))
- PlaySE(SE_C_PASI);
+ PlaySE(SE_CONTEST_ICON_CHANGE);
else
- PlaySE(SE_C_SYU);
+ PlaySE(SE_CONTEST_ICON_CLEAR);
if (eContestantStatus[i].judgesAttentionWasRemoved)
{
StopFlashJudgeAttentionEye(i);
@@ -2243,7 +2243,7 @@ static void Task_DoAppeals(u8 taskId)
{
case 0:
BlendAudienceBackground(-1, 1);
- PlayFanfare(MUS_ME_ZANNEN);
+ PlayFanfare(MUS_TOO_BAD);
gTasks[taskId].tCounter++;
break;
case 1:
@@ -2288,7 +2288,7 @@ static void Task_DoAppeals(u8 taskId)
if (!eContest.waitForAudienceBlend)
{
AnimateAudience();
- PlaySE(SE_W227B);
+ PlaySE(SE_M_ENCORE2);
ShowAndUpdateApplauseMeter(1);
gTasks[taskId].tCounter++;
}
@@ -2683,7 +2683,7 @@ static void Task_WaitForOutOfTimeMsg(u8 taskId)
SetBgForCurtainDrop();
gBattle_BG1_X = 0;
gBattle_BG1_Y = 160;
- PlaySE12WithPanning(SE_C_MAKU_D, 0);
+ PlaySE12WithPanning(SE_CONTEST_CURTAIN_FALL, 0);
gTasks[taskId].data[0] = 0;
gTasks[taskId].func = Task_DropCurtainAtAppealsEnd;
}
@@ -3277,7 +3277,7 @@ static bool8 UpdateConditionStars(u8 contestantIdx, bool8 resetMod)
ContestBG_FillBoxWithTile(0, GetStarTileOffset(), 19, contestantOffset, 1, numStars, 17);
if (resetMod)
{
- PlaySE(SE_EXPMAX);
+ PlaySE(SE_EXP_MAX);
eContestantStatus[contestantIdx].conditionMod = CONDITION_NO_CHANGE;
}
}
@@ -3286,7 +3286,7 @@ static bool8 UpdateConditionStars(u8 contestantIdx, bool8 resetMod)
ContestBG_FillBoxWithTile(0, 0, 19, contestantOffset + numStars, 1, 3 - numStars, 17);
if (resetMod)
{
- PlaySE(SE_FU_ZAKU2);
+ PlaySE(SE_CONTEST_CONDITION_LOSE);
eContestantStatus[contestantIdx].conditionMod = CONDITION_NO_CHANGE;
}
}
@@ -3814,7 +3814,7 @@ static void Task_UpdateAppealHearts(u8 taskId)
ContestBG_FillBoxWithTile(0, heartOffset, newNumHearts + 22, gContestantTurnOrder[contestant] * 5 + 2 + onSecondLine, 1, 1, 17);
if (heartsDelta > 0)
{
- PlaySE(SE_C_GAJI);
+ PlaySE(SE_CONTEST_HEART);
m4aMPlayImmInit(&gMPlayInfo_SE1);
m4aMPlayPitchControl(&gMPlayInfo_SE1, 0xFFFF, pitchMod * 256);
}
@@ -4189,7 +4189,7 @@ static void BlinkContestantBox(u8 spriteId, bool8 b)
gSprites[spriteId].callback = SpriteCB_BlinkContestantBox;
gSprites[spriteId2].callback = SpriteCallbackDummy;
if (b == FALSE)
- PlaySE(SE_C_PIKON);
+ PlaySE(SE_CONTEST_MONS_TURN);
else
PlaySE(SE_PC_LOGIN);
}
@@ -4678,36 +4678,36 @@ static void DoJudgeSpeechBubble(u8 symbolId)
case JUDGE_SYMBOL_SWIRL:
case JUDGE_SYMBOL_SWIRL_UNUSED:
gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0];
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
break;
case JUDGE_SYMBOL_ONE_EXCLAMATION:
gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 4;
- PlaySE(SE_SEIKAI);
+ PlaySE(SE_SUCCESS);
break;
case JUDGE_SYMBOL_TWO_EXCLAMATIONS:
gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 8;
- PlaySE(SE_SEIKAI);
+ PlaySE(SE_SUCCESS);
break;
case JUDGE_SYMBOL_NUMBER_ONE_UNUSED: // Identical to JUDGE_SYMBOL_NUMBER_ONE
gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 12;
- PlaySE(SE_TK_WARPIN);
+ PlaySE(SE_WARP_IN);
break;
case JUDGE_SYMBOL_NUMBER_ONE:
gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 12;
- PlaySE(SE_TK_WARPIN);
+ PlaySE(SE_WARP_IN);
break;
case JUDGE_SYMBOL_NUMBER_FOUR:
gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 16;
- PlaySE(SE_TK_WARPIN);
+ PlaySE(SE_WARP_IN);
break;
case JUDGE_SYMBOL_STAR:
gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 24;
- PlaySE(SE_W215);
+ PlaySE(SE_M_HEAL_BELL);
break;
case JUDGE_SYMBOL_QUESTION_MARK:
default:
gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 20;
- PlaySE(SE_TK_WARPIN);
+ PlaySE(SE_WARP_IN);
break;
}
gSprites[spriteId].data[1] = 0;
@@ -5042,7 +5042,7 @@ static void DrawUnnervedSymbols(void)
ContestBG_FillBoxWithIncrementingTile(0, symbolOffset, 20, contestantOffset, 2, 1, 17, 1);
symbolOffset += 16;
ContestBG_FillBoxWithIncrementingTile(0, symbolOffset, 20, contestantOffset + 1, 2, 1, 17, 1);
- PlaySE(SE_C_PASI);
+ PlaySE(SE_CONTEST_ICON_CHANGE);
}
}
}
@@ -5123,7 +5123,7 @@ static void Task_StartDropCurtainAtRoundEnd(u8 taskId)
{
gBattle_BG1_X = 0;
gBattle_BG1_Y = DISPLAY_HEIGHT;
- PlaySE12WithPanning(SE_C_MAKU_D, 0);
+ PlaySE12WithPanning(SE_CONTEST_CURTAIN_FALL, 0);
gTasks[taskId].func = Task_UpdateCurtainDropAtRoundEnd;
}
@@ -5235,7 +5235,7 @@ static void Task_StartRaiseCurtainAtRoundEnd(u8 taskId)
else
{
gTasks[taskId].data[2] = 0;
- PlaySE12WithPanning(SE_C_MAKU_U, 0);
+ PlaySE12WithPanning(SE_CONTEST_CURTAIN_RISE, 0);
gTasks[taskId].func = Task_UpdateRaiseCurtainAtRoundEnd;
}
}
diff --git a/src/contest_painting.c b/src/contest_painting.c
index 5dd4a70a5..a0c39dfc7 100644
--- a/src/contest_painting.c
+++ b/src/contest_painting.c
@@ -384,8 +384,6 @@ static void InitContestMonPixels(u16 species, u8 whichSprite)
}
}
-#ifdef NONMATCHING
-// functionally equivalent.
static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels)[64][64])
{
u16 tileY, tileX, pixelY, pixelX;
@@ -399,125 +397,21 @@ static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels)
{
for (pixelX = 0; pixelX < 8; pixelX++)
{
- int offset = 32 * (8 * tileY + tileX) + (pixelY * 4 + pixelX / 2);
- colorIndex = spriteGfx[offset];
+ colorIndex = spriteGfx[((tileY * 8) + tileX) * 32 + (pixelY << 2) + (pixelX >> 1)];
if (pixelX & 1)
colorIndex >>= 4;
else
- colorIndex &= 0xF;
+ colorIndex &= 0xF; // %=16 works here too. Both match
- if (colorIndex == 0) // transparent pixel
- (*destPixels)[8 * tileY + pixelY][tileX * 8 + pixelX] = 0x8000;
+ if (colorIndex == 0) // transparent pixel
+ (*destPixels)[tileY * 8 + pixelY][tileX * 8 + pixelX] = 0x8000;
else
- (*destPixels)[8 * tileY + pixelY][tileX * 8 + pixelX] = palette[colorIndex];
+ (*destPixels)[tileY * 8 + pixelY][tileX * 8 + pixelX] = palette[colorIndex];
}
}
}
}
}
-#else
-NAKED
-static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels)[64][64])
-{
- asm_unified("\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0xC\n\
- mov r10, r0\n\
- mov r9, r1\n\
- str r2, [sp]\n\
- movs r0, 0\n\
-_08130394:\n\
- movs r3, 0\n\
- adds r1, r0, 0x1\n\
- str r1, [sp, 0x4]\n\
- lsls r0, 3\n\
- str r0, [sp, 0x8]\n\
-_0813039E:\n\
- movs r1, 0\n\
- adds r2, r3, 0x1\n\
- mov r8, r2\n\
- ldr r7, [sp, 0x8]\n\
- adds r0, r7, r3\n\
- lsls r0, 5\n\
- mov r12, r0\n\
- lsls r4, r3, 3\n\
-_081303AE:\n\
- movs r3, 0\n\
- lsls r0, r1, 2\n\
- adds r6, r1, 0x1\n\
- mov r2, r12\n\
- adds r5, r2, r0\n\
- ldr r7, [sp, 0x8]\n\
- adds r0, r7, r1\n\
- lsls r0, 7\n\
- ldr r1, [sp]\n\
- adds r2, r0, r1\n\
-_081303C2:\n\
- lsrs r0, r3, 1\n\
- adds r0, r5, r0\n\
- add r0, r10\n\
- ldrb r1, [r0]\n\
- movs r0, 0x1\n\
- ands r0, r3\n\
- cmp r0, 0\n\
- beq _081303D6\n\
- lsrs r1, 4\n\
- b _081303DA\n\
-_081303D6:\n\
- movs r0, 0xF\n\
- ands r1, r0\n\
-_081303DA:\n\
- cmp r1, 0\n\
- bne _081303EC\n\
- adds r0, r4, r3\n\
- lsls r0, 1\n\
- adds r0, r2\n\
- movs r7, 0x80\n\
- lsls r7, 8\n\
- adds r1, r7, 0\n\
- b _081303F8\n\
-_081303EC:\n\
- adds r0, r4, r3\n\
- lsls r0, 1\n\
- adds r0, r2\n\
- lsls r1, 1\n\
- add r1, r9\n\
- ldrh r1, [r1]\n\
-_081303F8:\n\
- strh r1, [r0]\n\
- adds r0, r3, 0x1\n\
- lsls r0, 16\n\
- lsrs r3, r0, 16\n\
- cmp r3, 0x7\n\
- bls _081303C2\n\
- lsls r0, r6, 16\n\
- lsrs r1, r0, 16\n\
- cmp r1, 0x7\n\
- bls _081303AE\n\
- mov r1, r8\n\
- lsls r0, r1, 16\n\
- lsrs r3, r0, 16\n\
- cmp r3, 0x7\n\
- bls _0813039E\n\
- ldr r2, [sp, 0x4]\n\
- lsls r0, r2, 16\n\
- lsrs r0, 16\n\
- cmp r0, 0x7\n\
- bls _08130394\n\
- add sp, 0xC\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0");
-}
-#endif
#define VRAM_PICTURE_DATA(x, y) (((u16 *)(BG_SCREEN_ADDR(12)))[(y) * 32 + (x)])
diff --git a/src/contest_util.c b/src/contest_util.c
index cfcb7ca3c..f0edc53dc 100644
--- a/src/contest_util.c
+++ b/src/contest_util.c
@@ -533,7 +533,7 @@ static void CB2_StartShowContestResults(void)
if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS)
gPaletteFade.bufferTransferDisabled = TRUE;
else
- PlayBGM(MUS_CON_K);
+ PlayBGM(MUS_CONTEST_RESULTS);
SetVBlankCallback(VBlankCB_ShowContestResults);
}
@@ -619,7 +619,7 @@ static void Task_ShowContestResults(u8 taskId)
case 3:
if (IsLinkTaskFinished() == TRUE)
{
- PlayBGM(MUS_CON_K);
+ PlayBGM(MUS_CONTEST_RESULTS);
gPaletteFade.bufferTransferDisabled = FALSE;
gTasks[taskId].tState++;
break;
@@ -1796,7 +1796,7 @@ static void Task_DrawFinalStandingNumber(u8 taskId)
WriteSequenceToBgTilemapBuffer(2, firstTileNum + 0x10, 1, gTasks[taskId].tMonIndex * 3 + 6, 2, 1, 17, 1);
sContestResults->data->numStandingsPrinted++;
DestroyTask(taskId);
- PlaySE(SE_JYUNI);
+ PlaySE(SE_CONTEST_PLACE);
}
}
}
diff --git a/src/credits.c b/src/credits.c
index 11e3a0222..5f331097b 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -1239,7 +1239,7 @@ void CB2_StartCreditsSequence(void)
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
EnableInterrupts(INTR_FLAG_VBLANK);
SetVBlankCallback(CreditsVBlankCallback);
- m4aSongNumStart(MUS_THANKFOR);
+ m4aSongNumStart(MUS_CREDITS);
SetMainCallback2(CB2_RunCreditsSequence);
gUnknown_0203BCE5 = 0;
sCreditsData = AllocZeroed(sizeof(struct CreditsData));
diff --git a/src/decoration.c b/src/decoration.c
index f566cc7c9..40cccbe5e 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -1623,7 +1623,7 @@ static void AttemptPlaceDecoration_(u8 taskId)
}
else
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
StringExpandPlaceholders(gStringVar4, gText_CantBePlacedHere);
DisplayItemMessageOnField(taskId, gStringVar4, CantPlaceDecorationPrompt);
}
diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c
index 41d8aa419..34f73126b 100644
--- a/src/dodrio_berry_picking.c
+++ b/src/dodrio_berry_picking.c
@@ -467,7 +467,7 @@ void StartDodrioBerryPicking(u16 a0, void (*callback)(void))
sub_80273F0();
sub_8026B5C(gUnknown_02022C98->unk24, &gUnknown_02022C98->unk44, &gUnknown_02022C98->unk48);
StopMapMusic();
- PlayNewMapMusic(MUS_RG_KINOMIKUI);
+ PlayNewMapMusic(MUS_RG_BERRY_PICK);
}
else
{
@@ -877,7 +877,7 @@ static void sub_8025198(void)
if (WaitFanfare(TRUE))
{
sub_8026240(6);
- FadeOutAndPlayNewMapMusic(MUS_RG_WIN_YASEI, 4);
+ FadeOutAndPlayNewMapMusic(MUS_RG_VICTORY_WILD, 4);
}
break;
}
@@ -916,7 +916,7 @@ static void sub_8025230(void)
if (WaitFanfare(TRUE)) {
gUnknown_02022C98->unk114 = gUnknown_02022C98->unk4A[gUnknown_02022C98->multiplayerId][5];
sub_8026240(6);
- FadeOutAndPlayNewMapMusic(MUS_RG_WIN_YASEI, 4);
+ FadeOutAndPlayNewMapMusic(MUS_RG_VICTORY_WILD, 4);
}
break;
}
@@ -1174,7 +1174,7 @@ static void sub_8025758(void)
gUnknown_02022C98->unk10++;
break;
case 4:
- PlayNewMapMusic(MUS_RG_KINOMIKUI);
+ PlayNewMapMusic(MUS_RG_BERRY_PICK);
sub_8028E4C();
gUnknown_02022C98->unk10++;
break;
@@ -1458,8 +1458,8 @@ static void sub_8025F48(void)
{
if (gUnknown_02022C98->unk144 == 0)
{
- m4aSongNumStop(SE_SEIKAI);
- PlaySE(SE_SEIKAI);
+ m4aSongNumStop(SE_SUCCESS);
+ PlaySE(SE_SUCCESS);
gUnknown_02022C98->unk144 = 1;
}
}
@@ -1480,7 +1480,7 @@ static void sub_8025F48(void)
}
else if (gUnknown_02022C98->unk154 == 1)
{
- PlayFanfareByFanfareNum(11); // MUS_ME_ZANNEN
+ PlayFanfareByFanfareNum(11); // MUS_TOO_BAD
gUnknown_02022C98->unk154 = 2;
}
}
@@ -1501,8 +1501,8 @@ static void sub_8026044(void)
{
if (gUnknown_02022C98->unk144 == 0)
{
- m4aSongNumStop(SE_SEIKAI);
- PlaySE(SE_SEIKAI);
+ m4aSongNumStop(SE_SUCCESS);
+ PlaySE(SE_SUCCESS);
gUnknown_02022C98->unk144 = 1;
}
}
@@ -1522,7 +1522,7 @@ static void sub_8026044(void)
{
if (gUnknown_02022C98->unk148[r4] == 0)
{
- PlaySE(SE_FUUSEN1 + ptr->unk0[r4]);
+ PlaySE(SE_BALLOON_RED + ptr->unk0[r4]);
gUnknown_02022C98->unk148[r4] = 1;
}
}
@@ -1538,7 +1538,7 @@ static void sub_8026044(void)
}
else if (gUnknown_02022C98->unk154 == 1)
{
- PlayFanfareByFanfareNum(11); // MUS_ME_ZANNEN
+ PlayFanfareByFanfareNum(11); // MUS_TOO_BAD
gUnknown_02022C98->unk154 = 2;
}
}
@@ -1792,7 +1792,7 @@ static void sub_802671C(void)
if (gUnknown_02022C98->unk148[i] == 0)
{
gUnknown_02022C98->unk148[i] = 1;
- PlaySE(SE_FUUSEN1 + ptr->unk32CC.unk14.unk0[i]);
+ PlaySE(SE_BALLOON_RED + ptr->unk32CC.unk14.unk0[i]);
}
if (gUnknown_02022C98->unk40 < 10 || r10 == 1)
{
@@ -2359,19 +2359,19 @@ static void sub_8027554(void)
{
gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 2;
gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] = 6;
- PlaySE(SE_W204);
+ PlaySE(SE_M_CHARM);
}
else if (gMain.newKeys & DPAD_LEFT)
{
gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 3;
gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] = 6;
- PlaySE(SE_W204);
+ PlaySE(SE_M_CHARM);
}
else if (gMain.newKeys & DPAD_RIGHT)
{
gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 1;
gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] = 6;
- PlaySE(SE_W204);
+ PlaySE(SE_M_CHARM);
}
else
{
@@ -2748,14 +2748,14 @@ static void sub_8027DD0(u32 arg0)
struct UnkPacket1 packet;
packet.id = 1;
packet.unk4 = arg0;
- sub_800FE50(&packet);
+ Rfu_SendPacket(&packet);
}
static u32 sub_8027DFC(u32 arg0)
{
struct UnkPacket1 *packet;
- if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00)
+ if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET)
return 0;
packet = (void *)&gRecvCmds[arg0][1];
@@ -2857,7 +2857,7 @@ static void sub_8027E30(struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruc
packet.unkA_3 = arg6;
packet.unkB_1 = arg7;
packet.unkB_0 = arg8;
- sub_800FE50(&packet);
+ Rfu_SendPacket(&packet);
}
static u32 sub_8028164(u32 unused, struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 *arg6, u32 *arg7, u32 *arg8)
@@ -2865,7 +2865,7 @@ static u32 sub_8028164(u32 unused, struct DodrioSubstruct_31A0 *arg0, struct Dod
struct UnkPacket2 *packet;
struct DodrioSubstruct_31A0_14 *ptr = &arg0->unk14;
- if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00)
+ if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET)
return 0;
packet = (void *)&gRecvCmds[0][1];
@@ -2935,14 +2935,14 @@ static void sub_80282EC(u8 arg0)
struct UnkPacket3 packet;
packet.id = 3;
packet.unk4 = arg0;
- sub_800FE50(&packet);
+ Rfu_SendPacket(&packet);
}
static u32 sub_8028318(u32 arg0, u8 *arg1)
{
struct UnkPacket3 *packet;
- if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00)
+ if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET)
return 0;
packet = (void *)&gRecvCmds[arg0][1];
@@ -2966,14 +2966,14 @@ static void sub_8028350(u32 arg0)
struct UnkPacket4 packet;
packet.id = 4;
packet.unk4 = arg0;
- sub_800FE50(&packet);
+ Rfu_SendPacket(&packet);
}
static u32 sub_8028374(u32 arg0)
{
struct UnkPacket4 *packet;
- if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00)
+ if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET)
return 0;
packet = (void *)&gRecvCmds[arg0][1];
@@ -3450,7 +3450,7 @@ static u32 sub_80285AC(struct Sprite *sprite)
u8 mod = (++sprite->data[1] / 13) % 4;
if (sprite->data[1] % 13 == 0 && mod != 0)
- PlaySE(SE_W204);
+ PlaySE(SE_M_CHARM);
if (sprite->data[1] >= 104)
{
sprite->data[0] = 0;
@@ -3567,7 +3567,7 @@ static bool32 sub_8028828(void)
continue;
gUnknown_02022CF4->unkC[i] = 1;
gUnknown_02022CF4->unk16[i] = -16;
- PlaySE(SE_TK_KASYA);
+ PlaySE(SE_CLICK);
}
sprite->pos1.y += gUnknown_02022CF4->unk16[i];
}
@@ -4320,7 +4320,7 @@ static void sub_802988C(void)
}
break;
case 9:
- PlayNewMapMusic(MUS_FANFA1);
+ PlayNewMapMusic(MUS_LEVEL_UP);
FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[0], PIXEL_FILL(1));
FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[1], PIXEL_FILL(1));
strWidth = GetStringWidth(1, gText_AnnouncingPrizes, -1);
@@ -4354,7 +4354,7 @@ static void sub_802988C(void)
PutWindowTilemap(gUnknown_02022CF8->unk3008[1]);
}
CopyBgTilemapBufferToVram(0);
- FadeOutAndFadeInNewMapMusic(MUS_RG_WIN_YASEI, 20, 10);
+ FadeOutAndFadeInNewMapMusic(MUS_RG_VICTORY_WILD, 20, 10);
gUnknown_02022CF8->state++;
break;
case 11:
diff --git a/src/easy_chat.c b/src/easy_chat.c
index c839c0070..8e1044591 100644
--- a/src/easy_chat.c
+++ b/src/easy_chat.c
@@ -2023,7 +2023,7 @@ static int sub_811B368(void)
{
if (sEasyChatScreen->type == EASY_CHAT_TYPE_BARD_SONG)
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
return 0;
}
else
@@ -2038,7 +2038,7 @@ static int sub_811B394(void)
u16 easyChatWord = sub_811F578(sub_811B940());
if (sub_811BF88(easyChatWord))
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
return 0;
}
else
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index 3ccc7ebf8..87f0a13fd 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -578,10 +578,10 @@ static void Task_EggHatchPlayBGM(u8 taskID)
PlayRainStoppingSoundEffect();
}
if (gTasks[taskID].data[0] == 1)
- PlayBGM(MUS_ME_SHINKA);
+ PlayBGM(MUS_EVOLUTION_INTRO);
if (gTasks[taskID].data[0] > 60)
{
- PlayBGM(MUS_SHINKA);
+ PlayBGM(MUS_EVOLUTION);
DestroyTask(taskID);
// UB: task is destroyed, yet the value is incremented
}
@@ -637,7 +637,7 @@ static void CB2_EggHatch_1(void)
GetMonNickname2(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_HatchedFromEgg);
EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 3, 0xFF);
- PlayFanfare(MUS_FANFA5);
+ PlayFanfare(MUS_EVOLVED);
sEggHatchData->CB2_state++;
PutWindowTilemap(sEggHatchData->windowId);
CopyWindowToVram(sEggHatchData->windowId, 3);
@@ -716,7 +716,7 @@ static void SpriteCB_Egg_0(struct Sprite* sprite)
sprite->pos2.x = Sin(sprite->data[1], 1);
if (sprite->data[0] == 15)
{
- PlaySE(SE_BOWA);
+ PlaySE(SE_BALL);
StartSpriteAnim(sprite, 1);
CreateRandomEggShardSprite();
}
@@ -739,7 +739,7 @@ static void SpriteCB_Egg_1(struct Sprite* sprite)
sprite->pos2.x = Sin(sprite->data[1], 2);
if (sprite->data[0] == 15)
{
- PlaySE(SE_BOWA);
+ PlaySE(SE_BALL);
StartSpriteAnim(sprite, 2);
}
}
@@ -766,13 +766,13 @@ static void SpriteCB_Egg_2(struct Sprite* sprite)
sprite->pos2.x = Sin(sprite->data[1], 2);
if (sprite->data[0] == 15)
{
- PlaySE(SE_BOWA);
+ PlaySE(SE_BALL);
StartSpriteAnim(sprite, 2);
CreateRandomEggShardSprite();
CreateRandomEggShardSprite();
}
if (sprite->data[0] == 30)
- PlaySE(SE_BOWA);
+ PlaySE(SE_BALL);
}
}
}
@@ -799,7 +799,7 @@ static void SpriteCB_Egg_4(struct Sprite* sprite)
sprite->data[0]++;
if (!gPaletteFade.active)
{
- PlaySE(SE_TAMAGO);
+ PlaySE(SE_EGG_HATCH);
sprite->invisible = TRUE;
sprite->callback = SpriteCB_Egg_5;
sprite->data[0] = 0;
diff --git a/src/ereader_screen.c b/src/ereader_screen.c
index 823e03dd4..b4a9164b3 100755
--- a/src/ereader_screen.c
+++ b/src/ereader_screen.c
@@ -153,7 +153,7 @@ static u32 sub_81D4EE4(u8 *arg0, u16 *arg1)
case 2:
if (GetLinkPlayerCount_2() == 2)
{
- PlaySE(SE_PINPON);
+ PlaySE(SE_DING_DONG);
CheckShouldAdvanceLinkState();
*arg1 = 0;
*arg0 = 3;
@@ -431,7 +431,7 @@ static void sub_81D5084(u8 taskId)
if (sub_81D5064(&data->unk0, 120))
{
AddTextPrinterToWindow1(gJPText_NewTrainerHasComeToHoenn);
- PlayFanfare(MUS_FANFA4);
+ PlayFanfare(MUS_OBTAIN_ITEM);
data->unk8 = 19;
}
break;
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index a076a2a22..72de880c8 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -8216,15 +8216,13 @@ bool8 FreezeObjectEvent(struct ObjectEvent *objectEvent)
{
return TRUE;
}
- else
- {
- objectEvent->frozen = 1;
- objectEvent->spriteAnimPausedBackup = gSprites[objectEvent->spriteId].animPaused;
- objectEvent->spriteAffineAnimPausedBackup = gSprites[objectEvent->spriteId].affineAnimPaused;
- gSprites[objectEvent->spriteId].animPaused = 1;
- gSprites[objectEvent->spriteId].affineAnimPaused = 1;
- return FALSE;
- }
+
+ objectEvent->frozen = 1;
+ objectEvent->spriteAnimPausedBackup = gSprites[objectEvent->spriteId].animPaused;
+ objectEvent->spriteAffineAnimPausedBackup = gSprites[objectEvent->spriteId].affineAnimPaused;
+ gSprites[objectEvent->spriteId].animPaused = 1;
+ gSprites[objectEvent->spriteId].affineAnimPaused = 1;
+ return FALSE;
}
void FreezeObjectEvents(void)
@@ -8397,8 +8395,8 @@ bool8 sub_80976EC(struct Sprite *sprite)
if (sprite->data[5] > 15)
return TRUE;
- else
- return FALSE;
+
+ return FALSE;
}
static const s8 sFigure8XOffsets[FIGURE_8_LENGTH] = {
@@ -8478,15 +8476,15 @@ static bool8 AnimateSpriteInFigure8(struct Sprite *sprite)
return finished;
}
-static const s8 gUnknown_0850E802[] = {
+static const s8 gUnknown_0850E802[16] = {
-4, -6, -8, -10, -11, -12, -12, -12, -11, -10, -9, -8, -6, -4, 0, 0
};
-static const s8 gUnknown_0850E812[] = {
+static const s8 gUnknown_0850E812[16] = {
0, -2, -3, -4, -5, -6, -6, -6, -5, -5, -4, -3, -2, 0, 0, 0
};
-static const s8 gUnknown_0850E822[] = {
+static const s8 gUnknown_0850E822[16] = {
-2, -4, -6, -8, -9, -10, -10, -10, -9, -8, -6, -5, -3, -2, 0, 0
};
@@ -8509,23 +8507,11 @@ void sub_809783C(struct Sprite *sprite, u8 a2, u8 a3, u8 a4)
sprite->data[6] = 0;
}
-static const s16 gUnknown_0850E840[] = {
- 16, 16, 32,
-};
-
-static const u8 gUnknown_0850E846[] = {
- 0, 0, 1,
-};
-
u8 sub_809785C(struct Sprite *sprite)
{
- s16 v5[3];
- u8 v6[3];
- u8 v2;
-
- memcpy(v5, gUnknown_0850E840, 6); // TODO: get rid of memcpy
- memcpy(v6, gUnknown_0850E846, 3);
- v2 = 0;
+ s16 v5[] = {16, 16, 32};
+ u8 v6[] = {0, 0, 1};
+ u8 v2 = 0;
if (sprite->data[4])
Step1(sprite, sprite->data[3]);
@@ -8546,23 +8532,11 @@ u8 sub_809785C(struct Sprite *sprite)
return v2;
}
-static const s16 gUnknown_0850E84A[] = {
- 32, 32, 64,
-};
-
-static const u8 gUnknown_0850E850[] = {
- 1, 1, 2,
-};
-
u8 sub_80978E4(struct Sprite *sprite)
{
- s16 v5[3];
- u8 v6[3];
- u8 v2;
-
- memcpy(v5, gUnknown_0850E84A, 6);
- memcpy(v6, gUnknown_0850E850, 3);
- v2 = 0;
+ s16 v5[] = {32, 32, 64};
+ u8 v6[] = {1, 1, 2};
+ u8 v2 = 0;
if (sprite->data[4] && !(sprite->data[6] & 1))
Step1(sprite, sprite->data[3]);
@@ -8590,12 +8564,9 @@ static void SetMovementDelay(struct Sprite *sprite, s16 timer)
static bool8 WaitForMovementDelay(struct Sprite *sprite)
{
- sprite->data[3]--;
-
- if (sprite->data[3] == 0)
+ if (--sprite->data[3] == 0)
return TRUE;
- else
- return FALSE;
+ return FALSE;
}
void SetAndStartSpriteAnim(struct Sprite *sprite, u8 animNum, u8 animCmdIndex)
@@ -8609,8 +8580,7 @@ bool8 SpriteAnimEnded(struct Sprite *sprite)
{
if (sprite->animEnded)
return TRUE;
- else
- return FALSE;
+ return FALSE;
}
void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible)
@@ -8789,14 +8759,14 @@ static void UpdateObjectEventSpritePosition(struct Sprite *sprite)
{
switch(sprite->tAnimNum)
{
+ case 0:
+ break;
case UNION_ROOM_SPAWN_IN:
MoveUnionRoomObjectDown(sprite);
break;
case UNION_ROOM_SPAWN_OUT:
MoveUnionRoomObjectUp(sprite);
break;
- case 0:
- break;
default:
sprite->tAnimNum = 0;
break;
@@ -8877,8 +8847,7 @@ u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct
}
else
{
- u8 i;
- u8 firstFreeSlot;
+ u8 i, firstFreeSlot;
bool32 found;
for (firstFreeSlot = 16, found = FALSE, i = 0; i < 16; i++)
{
diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c
index 849c676b3..28bbd4ef7 100644
--- a/src/evolution_graphics.c
+++ b/src/evolution_graphics.c
@@ -271,7 +271,7 @@ static void EvoTask_BeginPreSet1_FadeAndPlaySE(u8 taskID)
gTasks[taskID].tFrameCounter = 0;
BeginNormalPaletteFade(3 << gTasks[taskID].data[1], 0xA, 0, 0x10, RGB_WHITE);
gTasks[taskID].func = EvoTask_CreatePreEvoSparkleSet1;
- PlaySE(SE_W025);
+ PlaySE(SE_M_MEGA_KICK);
}
static void EvoTask_CreatePreEvoSparkleSet1(u8 taskID)
@@ -311,7 +311,7 @@ static void EvoTask_BeginPreSparklesSet2(u8 taskID)
SetEvoSparklesMatrices();
gTasks[taskID].tFrameCounter = 0;
gTasks[taskID].func = EvoTask_CreatePreEvoSparklesSet2;
- PlaySE(SE_W062B);
+ PlaySE(SE_M_BUBBLE_BEAM2);
}
static void EvoTask_CreatePreEvoSparklesSet2(u8 taskID)
@@ -345,7 +345,7 @@ static void EvoTask_BeginPostSparklesSet1(u8 taskID)
SetEvoSparklesMatrices();
gTasks[taskID].tFrameCounter = 0;
gTasks[taskID].func = EvoTask_CreatePostEvoSparklesSet1;
- PlaySE(SE_REAPOKE);
+ PlaySE(SE_SHINY);
}
static void EvoTask_CreatePostEvoSparklesSet1(u8 taskID)
@@ -389,7 +389,7 @@ static void EvoTask_BeginPostSparklesSet2_AndFlash(u8 taskID)
CpuSet(&gPlttBufferFaded[0x20], &gPlttBufferUnfaded[0x20], 0x30);
BeginNormalPaletteFade(0xFFF9041C, 0, 0, 0x10, RGB_WHITE); // was 0xFFF9001C in R/S
gTasks[taskID].func = EvoTask_CreatePostEvoSparklesSet2_AndFlash;
- PlaySE(SE_W080);
+ PlaySE(SE_M_PETAL_DANCE);
}
static void EvoTask_CreatePostEvoSparklesSet2_AndFlash(u8 taskID)
@@ -437,7 +437,7 @@ static void EvoTask_BeginPostSparklesSet2_AndFlash_Trade(u8 taskID)
CpuSet(&gPlttBufferFaded[0x20], &gPlttBufferUnfaded[0x20], 0x30);
BeginNormalPaletteFade(0xFFF90400, 0, 0, 0x10, RGB_WHITE); // was 0xFFFF0001 in R/S
gTasks[taskID].func = EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade;
- PlaySE(SE_W080);
+ PlaySE(SE_M_PETAL_DANCE);
}
static void EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade(u8 taskID)
diff --git a/src/evolution_scene.c b/src/evolution_scene.c
index 019d48416..41d4900f7 100644
--- a/src/evolution_scene.c
+++ b/src/evolution_scene.c
@@ -630,14 +630,14 @@ static void Task_EvolutionScene(u8 taskID)
case 3:
if (EvoScene_IsMonAnimFinished(sEvoStructPtr->preEvoSpriteID)) // wait for animation, play tu du SE
{
- PlaySE(MUS_ME_SHINKA);
+ PlaySE(MUS_EVOLUTION_INTRO);
gTasks[taskID].tState++;
}
break;
case 4: // play evolution music and fade screen black
if (!IsSEPlaying())
{
- PlayNewMapMusic(MUS_SHINKA);
+ PlayNewMapMusic(MUS_EVOLUTION);
gTasks[taskID].tState++;
BeginNormalPaletteFade(0x1C, 4, 0, 0x10, RGB_BLACK);
}
@@ -713,7 +713,7 @@ static void Task_EvolutionScene(u8 taskID)
{
StringExpandPlaceholders(gStringVar4, gText_CongratsPkmnEvolved);
BattlePutTextOnWindow(gStringVar4, 0);
- PlayBGM(MUS_FANFA5);
+ PlayBGM(MUS_EVOLVED);
gTasks[taskID].tState++;
SetMonData(mon, MON_DATA_SPECIES, (void*)(&gTasks[taskID].tPostEvoSpecies));
CalculateMonStats(mon);
@@ -808,7 +808,7 @@ static void Task_EvolutionScene(u8 taskID)
if (!IsTextPrinterActive(0) && !IsSEPlaying())
{
BufferMoveToLearnIntoBattleTextBuff2();
- PlayFanfare(MUS_FANFA1);
+ PlayFanfare(MUS_LEVEL_UP);
BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_ID_ADDER]);
BattlePutTextOnWindow(gDisplayedStringBattle, 0);
gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter
@@ -998,15 +998,15 @@ static void Task_TradeEvolutionScene(u8 taskID)
case 2:
if (IsCryFinished())
{
- m4aSongNumStop(MUS_SHINKA);
- PlaySE(MUS_ME_SHINKA);
+ m4aSongNumStop(MUS_EVOLUTION);
+ PlaySE(MUS_EVOLUTION_INTRO);
gTasks[taskID].tState++;
}
break;
case 3:
if (!IsSEPlaying())
{
- PlayBGM(MUS_SHINKA);
+ PlayBGM(MUS_EVOLUTION);
gTasks[taskID].tState++;
BeginNormalPaletteFade(0x1C, 4, 0, 0x10, RGB_BLACK);
}
@@ -1076,7 +1076,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
{
StringExpandPlaceholders(gStringVar4, gText_CongratsPkmnEvolved);
DrawTextOnTradeWindow(0, gStringVar4, 1);
- PlayFanfare(MUS_FANFA5);
+ PlayFanfare(MUS_EVOLVED);
gTasks[taskID].tState++;
SetMonData(mon, MON_DATA_SPECIES, (&gTasks[taskID].tPostEvoSpecies));
CalculateMonStats(mon);
@@ -1109,7 +1109,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
}
else
{
- PlayBGM(MUS_SHINKA);
+ PlayBGM(MUS_EVOLUTION);
DrawTextOnTradeWindow(0, gText_CommunicationStandby5, 1);
gTasks[taskID].tState++;
}
@@ -1153,7 +1153,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
if (!IsTextPrinterActive(0) && !IsSEPlaying())
{
BufferMoveToLearnIntoBattleTextBuff2();
- PlayFanfare(MUS_FANFA1);
+ PlayFanfare(MUS_LEVEL_UP);
BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_ID_ADDER]);
DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1);
gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index 3684b53e6..fab14c577 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -946,7 +946,7 @@ bool8 TryDoDiveWarp(struct MapPosition *position, u16 metatileBehavior)
{
StoreInitialPlayerAvatarState();
DoDiveWarp();
- PlaySE(SE_W291);
+ PlaySE(SE_M_DIVE);
return TRUE;
}
}
@@ -956,7 +956,7 @@ bool8 TryDoDiveWarp(struct MapPosition *position, u16 metatileBehavior)
{
StoreInitialPlayerAvatarState();
DoDiveWarp();
- PlaySE(SE_W291);
+ PlaySE(SE_M_DIVE);
return TRUE;
}
}
diff --git a/src/field_door.c b/src/field_door.c
index e81c3dc4b..4dcb07cca 100644
--- a/src/field_door.c
+++ b/src/field_door.c
@@ -526,9 +526,9 @@ u32 GetDoorSoundEffect(u32 x, u32 y)
if (sound == DOOR_SOUND_NORMAL)
return SE_DOOR;
else if (sound == DOOR_SOUND_SLIDING)
- return SE_JIDO_DOA;
+ return SE_SLIDING_DOOR;
else if (sound == DOOR_SOUND_ARENA)
- return SE_TU_SAA;
+ return SE_REPEL;
else
return SE_DOOR;
}
diff --git a/src/field_effect.c b/src/field_effect.c
index 582551a7e..b64902c0e 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -1141,7 +1141,7 @@ static void PokeballGlowEffect_PlaceBalls(struct Sprite *sprite)
gSprites[spriteId].sEffectSpriteId = sprite->sSpriteId;
sprite->sCounter++;
sprite->sNumMons--;
- PlaySE(SE_BOWA);
+ PlaySE(SE_BALL);
}
if (sprite->sNumMons == 0)
{
@@ -1160,7 +1160,7 @@ static void PokeballGlowEffect_TryPlaySe(struct Sprite *sprite)
sprite->data[3] = 0;
if (sprite->sPlayHealSe)
{
- PlayFanfare(MUS_ME_ASA);
+ PlayFanfare(MUS_HEAL);
}
}
}
@@ -1464,7 +1464,7 @@ static bool8 FallWarpEffect_StartFall(struct Task *task)
task->tFallOffset = 1;
task->tTotalFall = 0;
gObjectEvents[gPlayerAvatar.objectEventId].invisible = FALSE;
- PlaySE(SE_RU_HYUU);
+ PlaySE(SE_FALL);
task->tState++;
return FALSE;
}
@@ -1493,7 +1493,7 @@ static bool8 FallWarpEffect_Fall(struct Task *task)
}
if (sprite->pos2.y >= 0)
{
- PlaySE(SE_W070);
+ PlaySE(SE_M_STRENGTH);
objectEvent->triggerGroundEffectsOnStop = 1;
objectEvent->landingJump = 1;
sprite->pos2.y = 0;
@@ -1589,7 +1589,7 @@ static bool8 EscalatorWarpOut_WaitForPlayer(struct Task *task)
{
task->tState = 4; // jump to EscalatorWarpOut_Down_Ride
}
- PlaySE(SE_ESUKA);
+ PlaySE(SE_ESCALATOR);
}
return FALSE;
}
@@ -1978,7 +1978,7 @@ static bool8 LavaridgeGymB1FWarpEffect_Launch(struct Task *task, struct ObjectEv
gFieldEffectArguments[2] = sprite->subpriority - 1;
gFieldEffectArguments[3] = sprite->oam.priority;
FieldEffectStart(FLDEFF_ASH_LAUNCH);
- PlaySE(SE_W153);
+ PlaySE(SE_M_EXPLOSION);
task->data[0]++;
return TRUE;
}
@@ -2092,7 +2092,7 @@ static bool8 LavaridgeGymB1FWarpExitEffect_PopOut(struct Task *task, struct Obje
task->data[0]++;
objectEvent->invisible = FALSE;
CameraObjectReset1();
- PlaySE(SE_W091);
+ PlaySE(SE_M_DIG);
ObjectEventSetHeldMovement(objectEvent, GetJumpMovementAction(DIR_EAST));
}
return FALSE;
@@ -2163,7 +2163,7 @@ static bool8 LavaridgeGym1FWarpEffect_AshPuff(struct Task *task, struct ObjectEv
{
task->data[1]++;
ObjectEventSetHeldMovement(objectEvent, GetWalkInPlaceFastestMovementAction(objectEvent->facingDirection));
- PlaySE(SE_FU_ZUZUZU);
+ PlaySE(SE_LAVARIDGE_FALL_WARP);
}
}
return FALSE;
@@ -2381,7 +2381,7 @@ static void TeleportWarpOutFieldEffect_SpinGround(struct Task *task)
task->data[1] = 4;
task->data[2] = 8;
task->data[3] = 1;
- PlaySE(SE_TK_WARPIN);
+ PlaySE(SE_WARP_IN);
}
}
@@ -2472,7 +2472,7 @@ static void TeleportWarpInFieldEffect_Init(struct Task *task)
task->data[2] = 1;
task->data[14] = sprite->subspriteMode;
task->data[15] = GetPlayerFacingDirection();
- PlaySE(SE_TK_WARPIN);
+ PlaySE(SE_WARP_IN);
}
}
@@ -2974,7 +2974,7 @@ u8 FldEff_UseSurf(void)
u8 taskId = CreateTask(Task_SurfFieldEffect, 0xff);
gTasks[taskId].tMonId = gFieldEffectArguments[0];
Overworld_ClearSavedMusic();
- Overworld_ChangeMusicTo(MUS_NAMINORI);
+ Overworld_ChangeMusicTo(MUS_SURF);
return FALSE;
}
@@ -3111,7 +3111,7 @@ u8 FldEff_NPCFlyOut(void)
sprite->oam.priority = 1;
sprite->callback = SpriteCB_NPCFlyOut;
sprite->data[1] = gFieldEffectArguments[0];
- PlaySE(SE_W019);
+ PlaySE(SE_M_FLY);
return spriteId;
}
@@ -3228,7 +3228,7 @@ static void FlyOutFieldEffect_BirdSwoopDown(struct Task *task)
if ((task->tTimer == 0 || (--task->tTimer) == 0) && ObjectEventClearHeldMovementIfFinished(objectEvent))
{
task->tState++;
- PlaySE(SE_W019);
+ PlaySE(SE_M_FLY);
StartFlyBirdSwoopDown(task->tBirdSpriteId);
}
}
@@ -3692,7 +3692,7 @@ static void Task_DestroyDeoxysRock(u8 taskId)
static void DestroyDeoxysRockEffect_CameraShake(s16* data, u8 taskId)
{
u8 newTaskId = CreateTask(Task_DeoxysRockCameraShake, 90);
- PlaySE(SE_T_KAMI2);
+ PlaySE(SE_THUNDER2);
tCameraTaskId = newTaskId;
tState++;
}
@@ -3706,7 +3706,7 @@ static void DestroyDeoxysRockEffect_RockFragments(s16* data, u8 taskId)
BlendPalettes(0x0000FFFF, 0x10, RGB_WHITE);
BeginNormalPaletteFade(0x0000FFFF, 0, 0x10, 0, RGB_WHITE);
CreateDeoxysRockFragments(sprite);
- PlaySE(SE_T_KAMI);
+ PlaySE(SE_THUNDER);
StartEndingDeoxysRockCameraShake(tCameraTaskId);
tTimer = 0;
tState++;
diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c
index 6929485c4..886e023d1 100755
--- a/src/field_effect_helpers.c
+++ b/src/field_effect_helpers.c
@@ -623,7 +623,7 @@ u32 FldEff_Splash(void)
sprite->data[1] = gFieldEffectArguments[1];
sprite->data[2] = gFieldEffectArguments[2];
sprite->pos2.y = (graphicsInfo->height >> 1) - 4;
- PlaySE(SE_MIZU);
+ PlaySE(SE_PUDDLE);
}
return 0;
}
@@ -733,7 +733,7 @@ static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *sprite)
sprite->data[4] = objectEvent->currentCoords.y;
if (!sprite->invisible)
{
- PlaySE(SE_MIZU);
+ PlaySE(SE_PUDDLE);
}
}
}
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c
index 6ad92c2fb..5fab2489b 100644
--- a/src/field_player_avatar.c
+++ b/src/field_player_avatar.c
@@ -1021,7 +1021,7 @@ void PlayerTurnInPlace(u8 direction)
void PlayerJumpLedge(u8 direction)
{
- PlaySE(SE_DANSA);
+ PlaySE(SE_LEDGE);
PlayerSetAnimId(GetJump2MovementAction(direction), 8);
}
@@ -1055,28 +1055,28 @@ void PlayerEndWheelie(u8 direction)
// wheelie hopping standing
void PlayerStandingHoppingWheelie(u8 a)
{
- PlaySE(SE_JITE_PYOKO);
+ PlaySE(SE_BIKE_HOP);
PlayerSetAnimId(GetAcroWheelieHopFaceDirectionMovementAction(a), 1);
}
// wheelie hopping moving
void PlayerMovingHoppingWheelie(u8 a)
{
- PlaySE(SE_JITE_PYOKO);
+ PlaySE(SE_BIKE_HOP);
PlayerSetAnimId(GetAcroWheelieHopDirectionMovementAction(a), 2);
}
// wheelie hopping ledge
void PlayerLedgeHoppingWheelie(u8 a)
{
- PlaySE(SE_JITE_PYOKO);
+ PlaySE(SE_BIKE_HOP);
PlayerSetAnimId(GetAcroWheelieJumpDirectionMovementAction(a), 8);
}
// acro turn jump
void PlayerAcroTurnJump(u8 direction)
{
- PlaySE(SE_JITE_PYOKO);
+ PlaySE(SE_BIKE_HOP);
PlayerSetAnimId(GetJumpInPlaceTurnAroundMovementAction(direction), 1);
}
@@ -1501,7 +1501,7 @@ static bool8 PushBoulder_Move(struct Task *task, struct ObjectEvent *playerObjec
gFieldEffectArguments[2] = strengthObject->previousElevation;
gFieldEffectArguments[3] = gSprites[strengthObject->spriteId].oam.priority;
FieldEffectStart(FLDEFF_DUST);
- PlaySE(SE_W070);
+ PlaySE(SE_M_STRENGTH);
task->data[0]++;
}
return FALSE;
@@ -1540,7 +1540,7 @@ static u8 PlayerAvatar_DoSecretBaseMatJump(struct Task *task, struct ObjectEvent
gPlayerAvatar.preventStep = TRUE;
if (ObjectEventClearHeldMovementIfFinished(objectEvent))
{
- PlaySE(SE_DANSA);
+ PlaySE(SE_LEDGE);
ObjectEventSetHeldMovement(objectEvent, GetJumpInPlaceMovementAction(objectEvent->facingDirection));
task->data[1]++;
if (task->data[1] > 1)
@@ -1574,7 +1574,7 @@ static bool8 PlayerAvatar_SecretBaseMatSpinStep0(struct Task *task, struct Objec
task->data[1] = objectEvent->movementDirection;
gPlayerAvatar.preventStep = TRUE;
ScriptContext2_Enable();
- PlaySE(SE_TK_WARPIN);
+ PlaySE(SE_WARP_IN);
return TRUE;
}
diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c
index 92ee8cad3..9becd2166 100644
--- a/src/field_screen_effect.c
+++ b/src/field_screen_effect.c
@@ -299,7 +299,7 @@ static void FieldCB_TeleportTileWarpExit(void)
{
Overworld_PlaySpecialMapMusic();
WarpFadeInScreen();
- PlaySE(SE_TK_WARPOUT);
+ PlaySE(SE_WARP_OUT);
CreateTask(Task_TeleportTileWarpExit, 10);
ScriptContext2_Enable();
}
@@ -308,7 +308,7 @@ static void FieldCB_MossdeepGymWarpExit(void)
{
Overworld_PlaySpecialMapMusic();
WarpFadeInScreen();
- PlaySE(SE_TK_WARPOUT);
+ PlaySE(SE_WARP_OUT);
CreateTask(Task_ExitNonDoor, 10);
ScriptContext2_Enable();
SetObjectEventLoadFlag((~SKIP_OBJECT_EVENT_LOAD) & 0xF);
@@ -487,7 +487,7 @@ void DoWarp(void)
TryFadeOutOldMapMusic();
WarpFadeOutScreen();
PlayRainStoppingSoundEffect();
- PlaySE(SE_KAIDAN);
+ PlaySE(SE_EXIT);
gFieldCallback = FieldCB_DefaultWarpExit;
CreateTask(Task_WarpAndLoadMap, 10);
}
@@ -549,7 +549,7 @@ void DoTeleportTileWarp(void)
ScriptContext2_Enable();
TryFadeOutOldMapMusic();
WarpFadeOutScreen();
- PlaySE(SE_TK_WARPIN);
+ PlaySE(SE_WARP_IN);
CreateTask(Task_WarpAndLoadMap, 10);
gFieldCallback = FieldCB_TeleportTileWarpExit;
}
@@ -561,7 +561,7 @@ void DoMossdeepGymWarp(void)
SaveObjectEvents();
TryFadeOutOldMapMusic();
WarpFadeOutScreen();
- PlaySE(SE_TK_WARPIN);
+ PlaySE(SE_WARP_IN);
CreateTask(Task_WarpAndLoadMap, 10);
gFieldCallback = FieldCB_MossdeepGymWarpExit;
}
@@ -605,7 +605,7 @@ void DoCableClubWarp(void)
ScriptContext2_Enable();
TryFadeOutOldMapMusic();
WarpFadeOutScreen();
- PlaySE(SE_KAIDAN);
+ PlaySE(SE_EXIT);
CreateTask(Task_DoCableClubWarp, 10);
}
@@ -619,7 +619,7 @@ static void Task_ReturnToWorldFromLinkRoom(u8 taskId)
ClearLinkCallback_2();
FadeScreen(FADE_TO_BLACK, 0);
TryFadeOutOldMapMusic();
- PlaySE(SE_KAIDAN);
+ PlaySE(SE_EXIT);
data[0]++;
break;
case 1:
@@ -760,7 +760,7 @@ void DoContestHallWarp(void)
TryFadeOutOldMapMusic();
WarpFadeOutScreen();
PlayRainStoppingSoundEffect();
- PlaySE(SE_KAIDAN);
+ PlaySE(SE_EXIT);
gFieldCallback = FieldCB_WarpExitFadeFromBlack;
CreateTask(Task_DoContestHallWarp, 10);
}
@@ -1028,7 +1028,7 @@ static void sub_80B01BC(u8 taskId)
case 0:
FreezeObjectEvents();
ScriptContext2_Enable();
- PlaySE(SE_TK_WARPIN);
+ PlaySE(SE_WARP_IN);
sub_808D1C8();
task->data[0]++;
break;
diff --git a/src/field_special_scene.c b/src/field_special_scene.c
index bb8e8b1d9..bd6c833af 100644
--- a/src/field_special_scene.c
+++ b/src/field_special_scene.c
@@ -171,7 +171,7 @@ void Task_HandleTruckSequence(u8 taskId)
data[1] = 0; // reset the timer.
data[2] = CreateTask(Task_Truck1, 0xA);
data[0] = 1; // run the next case.
- PlaySE(SE_TRACK_MOVE);
+ PlaySE(SE_TRUCK_MOVE);
}
break;
case 1:
@@ -191,7 +191,7 @@ void Task_HandleTruckSequence(u8 taskId)
DestroyTask(data[2]);
data[3] = CreateTask(Task_Truck2, 0xA);
data[0] = 3;
- PlaySE(SE_TRACK_STOP);
+ PlaySE(SE_TRUCK_STOP);
}
break;
case 3:
@@ -206,7 +206,7 @@ void Task_HandleTruckSequence(u8 taskId)
data[1]++;
if (data[1] == 90)
{
- PlaySE(SE_TRACK_HAIKI);
+ PlaySE(SE_TRUCK_UNLOAD);
data[1] = 0;
data[0] = 5;
}
@@ -219,7 +219,7 @@ void Task_HandleTruckSequence(u8 taskId)
MapGridSetMetatileIdAt(11, 9, METATILE_InsideOfTruck_ExitLight_Mid);
MapGridSetMetatileIdAt(11, 10, METATILE_InsideOfTruck_ExitLight_Bottom);
DrawWholeMapView();
- PlaySE(SE_TRACK_DOOR);
+ PlaySE(SE_TRUCK_DOOR);
DestroyTask(taskId);
ScriptContext2_Disable();
}
diff --git a/src/field_specials.c b/src/field_specials.c
index 7c6ef37d7..c1fc92dbe 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -827,7 +827,7 @@ void PetalburgGymSlideOpenRoomDoors(void)
{
sSlidingDoorNextFrameCounter = 0;
sSlidingDoorFrame = 0;
- PlaySE(SE_KI_GASYAN);
+ PlaySE(SE_UNLOCK);
CreateTask(Task_PetalburgGymSlideOpenRoomDoors, 8);
}
@@ -1509,7 +1509,7 @@ void ShakeCamera(void)
gTasks[taskId].delay = gSpecialVar_0x8007;
gTasks[taskId].verticalPan = gSpecialVar_0x8004;
SetCameraPanningCallback(NULL);
- PlaySE(SE_W070);
+ PlaySE(SE_M_STRENGTH);
}
static void Task_ShakeCamera(u8 taskId)
@@ -1880,7 +1880,7 @@ void MoveElevator(void)
SetCameraPanningCallback(NULL);
MoveElevatorWindowLights(floorDelta, data[6]);
- PlaySE(SE_ELEBETA);
+ PlaySE(SE_ELEVATOR);
}
static void Task_MoveElevator(u8 taskId)
@@ -1897,7 +1897,7 @@ static void Task_MoveElevator(u8 taskId)
// arrived at floor
if (data[2] == data[5])
{
- PlaySE(SE_PINPON);
+ PlaySE(SE_DING_DONG);
DestroyTask(taskId);
EnableBothScriptContexts();
InstallCameraPanAheadCallback();
@@ -3438,9 +3438,9 @@ static void ChangeDeoxysRockLevel(u8 rockLevel)
TryGetObjectEventIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectEventId);
if (rockLevel == 0)
- PlaySE(SE_W109);
+ PlaySE(SE_M_CONFUSE_RAY);
else
- PlaySE(SE_RG_DEOMOV);
+ PlaySE(SE_RG_DEOXYS_MOVE);
CreateTask(WaitForDeoxysRockMovement, 8);
gFieldEffectArguments[0] = 1;
@@ -3904,7 +3904,7 @@ void Script_DoRayquazaScene(void)
void LoopWingFlapSE(void)
{
CreateTask(Task_LoopWingFlapSE, 8);
- PlaySE(SE_W017);
+ PlaySE(SE_M_WING_ATTACK);
}
static void Task_LoopWingFlapSE(u8 taskId)
@@ -3916,7 +3916,7 @@ static void Task_LoopWingFlapSE(u8 taskId)
{
playCount++;
delay = 0;
- PlaySE(SE_W017);
+ PlaySE(SE_M_WING_ATTACK);
}
if (playCount == gSpecialVar_0x8004 - 1)
diff --git a/src/field_tasks.c b/src/field_tasks.c
index 49b6fbdd8..91b4558d5 100644
--- a/src/field_tasks.c
+++ b/src/field_tasks.c
@@ -357,7 +357,7 @@ static void PacifidlogBridgePerStepCallback(u8 taskId)
data[2] = x;
data[3] = y;
if (MetatileBehavior_IsPacifidlogLog(MapGridGetMetatileBehaviorAt(x, y)))
- PlaySE(SE_MIZU);
+ PlaySE(SE_PUDDLE);
}
break;
case 2:
@@ -443,7 +443,7 @@ static void FortreeBridgePerStepCallback(u8 taskId)
flag = 1;
if (flag && (isFortreeBridgeCur == 1 || isFortreeBridgePrev == 1))
- PlaySE(SE_HASHI);
+ PlaySE(SE_BRIDGE_WALK);
if (isFortreeBridgePrev)
{
@@ -583,7 +583,7 @@ static void SootopolisGymIcePerStepCallback(u8 taskId)
{
x = data[4];
y = data[5];
- PlaySE(SE_RU_BARI);
+ PlaySE(SE_ICE_CRACK);
MapGridSetMetatileIdAt(x, y, METATILE_SootopolisGym_Ice_Cracked);
CurrentMapDrawMetatileAt(x, y);
MarkIcePuzzleCoordVisited(x - 7, y - 7);
@@ -599,7 +599,7 @@ static void SootopolisGymIcePerStepCallback(u8 taskId)
{
x = data[4];
y = data[5];
- PlaySE(SE_RU_GASYAN);
+ PlaySE(SE_ICE_BREAK);
MapGridSetMetatileIdAt(x, y, METATILE_SootopolisGym_Ice_Broken);
CurrentMapDrawMetatileAt(x, y);
data[1] = 1;
diff --git a/src/field_weather.c b/src/field_weather.c
index 684a86479..25ee0582a 100644
--- a/src/field_weather.c
+++ b/src/field_weather.c
@@ -1038,13 +1038,13 @@ void SetRainStrengthFromSoundEffect(u16 soundEffect)
{
switch (soundEffect)
{
- case SE_T_KOAME:
+ case SE_RAIN:
gWeatherPtr->rainStrength = 0;
break;
- case SE_T_OOAME:
+ case SE_DOWNPOUR:
gWeatherPtr->rainStrength = 1;
break;
- case SE_T_AME:
+ case SE_THUNDERSTORM:
gWeatherPtr->rainStrength = 2;
break;
default:
@@ -1062,14 +1062,14 @@ void PlayRainStoppingSoundEffect(void)
switch (gWeatherPtr->rainStrength)
{
case 0:
- PlaySE(SE_T_KOAME_E);
+ PlaySE(SE_RAIN_STOP);
break;
case 1:
- PlaySE(SE_T_OOAME_E);
+ PlaySE(SE_DOWNPOUR_STOP);
break;
case 2:
default:
- PlaySE(SE_T_AME_E);
+ PlaySE(SE_THUNDERSTORM_STOP);
break;
}
}
diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c
index 26a7adf27..320a10670 100644
--- a/src/field_weather_effect.c
+++ b/src/field_weather_effect.c
@@ -479,7 +479,7 @@ void Rain_InitVars(void)
gWeatherPtr->targetRainSpriteCount = 10;
gWeatherPtr->gammaTargetIndex = 3;
gWeatherPtr->gammaStepDelay = 20;
- SetRainStrengthFromSoundEffect(SE_T_KOAME);
+ SetRainStrengthFromSoundEffect(SE_RAIN);
}
void Rain_InitAll(void)
@@ -1023,7 +1023,7 @@ void Thunderstorm_InitVars(void)
gWeatherPtr->gammaStepDelay = 20;
gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment
gWeatherPtr->thunderTriggered = 0;
- SetRainStrengthFromSoundEffect(SE_T_AME);
+ SetRainStrengthFromSoundEffect(SE_THUNDERSTORM);
}
void Thunderstorm_InitAll(void)
@@ -1051,7 +1051,7 @@ void Downpour_InitVars(void)
gWeatherPtr->gammaTargetIndex = 3;
gWeatherPtr->gammaStepDelay = 20;
gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment
- SetRainStrengthFromSoundEffect(SE_T_OOAME);
+ SetRainStrengthFromSoundEffect(SE_DOWNPOUR);
}
void Downpour_InitAll(void)
@@ -1220,9 +1220,9 @@ static void UpdateThunderSound(void)
return;
if (Random() & 1)
- PlaySE(SE_T_KAMI);
+ PlaySE(SE_THUNDER);
else
- PlaySE(SE_T_KAMI2);
+ PlaySE(SE_THUNDER2);
gWeatherPtr->thunderTriggered = 0;
}
diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c
index 939c15dbf..991617713 100644
--- a/src/fldeff_cut.c
+++ b/src/fldeff_cut.c
@@ -311,7 +311,7 @@ bool8 FldEff_CutGrass(void)
s16 x, y;
u8 i = 0;
- PlaySE(SE_W015);
+ PlaySE(SE_M_CUT);
PlayerGetDestCoords(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y);
for (i = 0; i < CUT_HYPER_AREA; i++)
{
@@ -634,7 +634,7 @@ void FixLongGrassMetatilesWindowBottom(s16 x, s16 y)
static void StartCutTreeFieldEffect(void)
{
- PlaySE(SE_W015);
+ PlaySE(SE_M_CUT);
FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_TREE);
EnableBothScriptContexts();
}
diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c
index 2d25928b8..b2ddf3180 100644
--- a/src/fldeff_flash.c
+++ b/src/fldeff_flash.c
@@ -104,7 +104,7 @@ static void FieldCallback_Flash(void)
static void FldEff_UseFlash(void)
{
- PlaySE(SE_W115);
+ PlaySE(SE_M_REFLECT);
FlagSet(FLAG_SYS_USE_FLASH);
ScriptContext1_SetupScript(EventScript_UseFlash);
}
diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c
index 6db44d752..7eae8cfd1 100644
--- a/src/fldeff_misc.c
+++ b/src/fldeff_misc.c
@@ -618,7 +618,7 @@ bool8 FldEff_SecretPowerCave(void)
static void SpriteCB_CaveEntranceInit(struct Sprite *sprite)
{
- PlaySE(SE_W088);
+ PlaySE(SE_M_ROCK_THROW);
sprite->data[0] = 0;
sprite->callback = SpriteCB_CaveEntranceOpen;
@@ -691,7 +691,7 @@ bool8 FldEff_SecretPowerTree(void)
static void SpriteCB_TreeEntranceInit(struct Sprite *sprite)
{
- PlaySE(SE_W010);
+ PlaySE(SE_M_SCRATCH);
sprite->animNum = gFieldEffectArguments[7];
sprite->data[0] = 0;
@@ -754,7 +754,7 @@ bool8 FldEff_SecretPowerShrub(void)
static void SpriteCB_ShrubEntranceInit(struct Sprite *sprite)
{
- PlaySE(SE_W077);
+ PlaySE(SE_M_POISON_POWDER);
sprite->data[0] = 0;
sprite->callback = SpriteCB_ShrubEntranceOpen;
@@ -888,16 +888,16 @@ static void DoBalloonSoundEffect(s16 metatileId)
switch (metatileId)
{
case METATILE_SecretBase_RedBalloon:
- PlaySE(SE_FUUSEN1);
+ PlaySE(SE_BALLOON_RED);
break;
case METATILE_SecretBase_BlueBalloon:
- PlaySE(SE_FUUSEN2);
+ PlaySE(SE_BALLOON_BLUE);
break;
case METATILE_SecretBase_YellowBalloon:
- PlaySE(SE_FUUSEN3);
+ PlaySE(SE_BALLOON_YELLOW);
break;
case METATILE_SecretBase_MudBall:
- PlaySE(SE_TOY_DANGO);
+ PlaySE(SE_MUD_BALL);
break;
}
}
@@ -914,7 +914,7 @@ bool8 FldEff_Nop48(void)
static void DoSecretBaseBreakableDoorEffect(s16 x, s16 y)
{
- PlaySE(SE_TOY_KABE);
+ PlaySE(SE_BREAKABLE_DOOR);
MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_BreakableDoor_BottomOpen);
MapGridSetMetatileIdAt(x, y - 1, METATILE_SecretBase_BreakableDoor_TopOpen);
CurrentMapDrawMetatileAt(x, y);
@@ -959,28 +959,28 @@ static void Task_SecretBaseMusicNoteMatSound(u8 taskId)
switch (gTasks[taskId].tMetatileID)
{
case METATILE_SecretBase_NoteMat_C_Low:
- PlaySE(SE_TOY_C);
+ PlaySE(SE_NOTE_C);
break;
case METATILE_SecretBase_NoteMat_D:
- PlaySE(SE_TOY_D);
+ PlaySE(SE_NOTE_D);
break;
case METATILE_SecretBase_NoteMat_E:
- PlaySE(SE_TOY_E);
+ PlaySE(SE_NOTE_E);
break;
case METATILE_SecretBase_NoteMat_F:
- PlaySE(SE_TOY_F);
+ PlaySE(SE_NOTE_F);
break;
case METATILE_SecretBase_NoteMat_G:
- PlaySE(SE_TOY_G);
+ PlaySE(SE_NOTE_G);
break;
case METATILE_SecretBase_NoteMat_A:
- PlaySE(SE_TOY_A);
+ PlaySE(SE_NOTE_A);
break;
case METATILE_SecretBase_NoteMat_B:
- PlaySE(SE_TOY_B);
+ PlaySE(SE_NOTE_B);
break;
case METATILE_SecretBase_NoteMat_C_High:
- PlaySE(SE_TOY_C1);
+ PlaySE(SE_NOTE_C_HIGH);
break;
}
@@ -1006,7 +1006,7 @@ static void SpriteCB_GlitterMatSparkle(struct Sprite *sprite)
sprite->data[0]++;
if (sprite->data[0] == 8)
- PlaySE(SE_W215);
+ PlaySE(SE_M_HEAL_BELL);
if (sprite->data[0] >= 32)
DestroySprite(sprite);
@@ -1081,7 +1081,7 @@ bool8 FldEff_SandPillar(void)
static void SpriteCB_SandPillar_BreakTop(struct Sprite *sprite)
{
- PlaySE(SE_W088);
+ PlaySE(SE_M_ROCK_THROW);
if (MapGridGetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1) == METATILE_SecretBase_SandOrnament_TopWall)
MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, METATILE_SecretBase_Wall_TopMid | METATILE_COLLISION_MASK);
@@ -1226,7 +1226,7 @@ static void Task_FieldPoisonEffect(u8 taskId)
void FldEffPoison_Start(void)
{
- PlaySE(SE_DOKU);
+ PlaySE(SE_FIELD_POISON);
CreateTask(Task_FieldPoisonEffect, 80);
}
diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c
index 0c35ec74e..6f4ce8002 100644
--- a/src/fldeff_rocksmash.c
+++ b/src/fldeff_rocksmash.c
@@ -162,7 +162,7 @@ bool8 FldEff_UseRockSmash(void)
// The actual rock smashing is handled by EventScript_SmashRock, so this function does very little
static void FieldMove_RockSmash(void)
{
- PlaySE(SE_W088);
+ PlaySE(SE_M_ROCK_THROW);
FieldEffectActiveListRemove(FLDEFF_USE_ROCK_SMASH);
EnableBothScriptContexts();
}
diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c
index bfa20cdbc..3a38f67f0 100644
--- a/src/fldeff_softboiled.c
+++ b/src/fldeff_softboiled.c
@@ -61,13 +61,13 @@ void Task_TryUseSoftboiledOnPartyMon(u8 taskId)
}
// Take away Softboiled user's health first (-1)
- PlaySE(SE_KAIFUKU);
+ PlaySE(SE_USE_ITEM);
PartyMenuModifyHP(taskId, userPartyId, -1, GetMonData(&gPlayerParty[userPartyId], MON_DATA_MAX_HP)/5, Task_SoftboiledRestoreHealth);
}
static void Task_SoftboiledRestoreHealth(u8 taskId)
{
- PlaySE(SE_KAIFUKU);
+ PlaySE(SE_USE_ITEM);
PartyMenuModifyHP(taskId, gPartyMenu.slotId2, 1, GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_MAX_HP)/5, Task_DisplayHPRestoredMessage);
}
diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c
index 1ee82674e..a9d81501f 100644
--- a/src/fldeff_sweetscent.c
+++ b/src/fldeff_sweetscent.c
@@ -51,7 +51,7 @@ static void StartSweetScentFieldEffect(void)
{
u8 taskId;
- PlaySE(SE_W230);
+ PlaySE(SE_M_SWEET_SCENT);
CpuFastSet(gPlttBufferUnfaded, gPaletteDecompressionBuffer, 0x100);
CpuFastSet(gPlttBufferFaded, gPlttBufferUnfaded, 0x100);
BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 0, 8, RGB_RED);
diff --git a/src/frontier_pass.c b/src/frontier_pass.c
index adc02f90b..702f6c098 100644
--- a/src/frontier_pass.c
+++ b/src/frontier_pass.c
@@ -871,10 +871,10 @@ static void CB2_ReturnFromRecord(void)
switch (InBattlePyramid())
{
case 1:
- PlayBGM(MUS_PYRAMID);
+ PlayBGM(MUS_B_PYRAMID);
break;
case 2:
- PlayBGM(MUS_PYRAMID_TOP);
+ PlayBGM(MUS_B_PYRAMID_TOP);
break;
default:
Overworld_PlaySpecialMapMusic();
@@ -1707,5 +1707,5 @@ static void HandleFrontierMapCursorMove(u8 direction)
CopyWindowToVram(i, 3);
CopyBgTilemapBufferToVram(0);
- PlaySE(SE_Z_SCROLL);
+ PlaySE(SE_DEX_SCROLL);
}
diff --git a/src/graphics.c b/src/graphics.c
index 9a8d9f845..21aa7b50f 100644
--- a/src/graphics.c
+++ b/src/graphics.c
@@ -1067,10 +1067,9 @@ const u32 gBattleAnimBgPalette_Solarbeam[] = INCBIN_U32("graphics/battle_anims/b
const u32 gUnknown_E6BC04[] = INCBIN_U32("graphics/unknown/unknown_E6BC04.bin.lz");
-const u32 sBlenderCenterGfx[] = INCBIN_U32("graphics/berry_blender/center.8bpp.lz");
-
-const u32 gUnknown_08D91DB8[] = INCBIN_U32("graphics/berry_blender/outer.4bpp.lz");
-const u32 gUnknown_08D927EC[] = INCBIN_U32("graphics/berry_blender/outer_map.bin.lz");
+const u32 gBerryBlenderCenter_Gfx[] = INCBIN_U32("graphics/berry_blender/center.8bpp.lz");
+const u32 gBerryBlenderOuter_Gfx[] = INCBIN_U32("graphics/berry_blender/outer.4bpp.lz");
+const u32 gBerryBlenderOuter_Tilemap[] = INCBIN_U32("graphics/berry_blender/outer_map.bin.lz");
const u32 gBattleAnimBgPalette_Cosmic[] = INCBIN_U32("graphics/battle_anims/backgrounds/cosmic.gbapal.lz");
const u32 gBattleAnimBgImage_Cosmic[] = INCBIN_U32("graphics/battle_anims/backgrounds/cosmic.4bpp.lz");
@@ -1352,25 +1351,15 @@ const u16 gPokenavConditionMarker_Pal[] = INCBIN_U16("graphics/pokenav/condition
const u8 gPokenavConditionMarker_Gfx[] = INCBIN_U8("graphics/pokenav/condition/marker.4bpp");
const u16 gBerryBlenderMiscPalette[] = INCBIN_U16("graphics/berry_blender/misc.gbapal");
-
const u16 gBerryBlenderArrowPalette[] = INCBIN_U16("graphics/berry_blender/arrow.gbapal");
-
const u8 gBerryBlenderBetaArrow_Gfx[] = INCBIN_U8("graphics/berry_blender/arrow_old.4bpp"); //unused
-
-const u8 gBerryBlenderMarubatsuTiles[] = INCBIN_U8("graphics/berry_blender/marubatsu.4bpp");
-
-const u8 gBerryBlenderParticlesTiles[] = INCBIN_U8("graphics/berry_blender/particles.4bpp");
-
+const u8 gBerryBlenderScoreSymbols_Gfx[] = INCBIN_U8("graphics/berry_blender/score_symbols.4bpp");
+const u8 gBerryBlenderParticles_Gfx[] = INCBIN_U8("graphics/berry_blender/particles.4bpp");
static const u8 sEmpty0[0x120] = {0};
-
-const u8 gBerryBlenderCountdownNumbersTiles[] = INCBIN_U8("graphics/berry_blender/countdown_numbers.4bpp");
-
-const u8 gBerryBlenderStartTiles[] = INCBIN_U8("graphics/berry_blender/start.4bpp");
-
+const u8 gBerryBlenderCountdownNumbers_Gfx[] = INCBIN_U8("graphics/berry_blender/countdown_numbers.4bpp");
+const u8 gBerryBlenderStart_Gfx[] = INCBIN_U8("graphics/berry_blender/start.4bpp");
static const u8 sEmpty1[0x200] = {0};
-
-const u8 gBerryBlenderArrowTiles[] = INCBIN_U8("graphics/berry_blender/arrow.4bpp");
-
+const u8 gBerryBlenderPlayerArrow_Gfx[] = INCBIN_U8("graphics/berry_blender/arrow.4bpp");
static const u8 sEmpty2[0x2C0] = {0};
const u16 gEasyChatCursor_Pal[] = INCBIN_U16("graphics/easy_chat/cursor.gbapal");
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index 19217ae85..2b548dea2 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -396,7 +396,7 @@ static bool8 InitHallOfFameScreen(void)
if (!gPaletteFade.active)
{
SetMainCallback2(CB2_HallOfFame);
- PlayBGM(MUS_DENDOU);
+ PlayBGM(MUS_HALL_OF_FAME);
return FALSE;
}
break;
@@ -648,7 +648,7 @@ static void Task_Hof_PaletteFadeAndPrintWelcomeText(u8 taskId)
}
HallOfFame_PrintWelcomeText(0, 15);
- PlaySE(SE_DENDOU);
+ PlaySE(SE_APPLAUSE);
gTasks[taskId].tFrameCount = 400;
gTasks[taskId].func = Task_Hof_DoConfetti;
}
diff --git a/src/intro.c b/src/intro.c
index 72aefd737..eca8b84b1 100644
--- a/src/intro.c
+++ b/src/intro.c
@@ -1129,7 +1129,7 @@ static void Task_IntroFadeIn(u8 taskId)
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON);
gTasks[taskId].func = Task_IntroWaterDrops;
gIntroFrameCounter = 0;
- m4aSongNumStart(MUS_DEMO1);
+ m4aSongNumStart(MUS_INTRO);
ResetSerial();
}
@@ -1563,7 +1563,7 @@ static void Task_IntroLoadPart3Graphics(u8 taskId)
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_OBJ_ON);
gTasks[taskId].func = Task_IntroSpinAndZoomPokeball;
gIntroFrameCounter = 0;
- m4aSongNumStart(MUS_T_BATTLE);
+ m4aSongNumStart(MUS_INTRO_BATTLE);
}
static void Task_IntroSpinAndZoomPokeball(u8 taskId)
@@ -2355,7 +2355,7 @@ static void Task_IntroRayquazaGlowScene_1(u8 taskId)
if (data[1] == 6)
{
spriteId = CreateSprite(&gIntroRayquazaHyperbeamSprite, 120, 88, 15);
- PlaySE(SE_OP_BASYU);
+ PlaySE(SE_INTRO_BLAST);
gSprites[spriteId].invisible = TRUE;
gSprites[spriteId].data[3] = data[4];
data[0]++;
diff --git a/src/item_menu.c b/src/item_menu.c
index ae09ec7ed..ace2fd11e 100755
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -52,6 +52,13 @@
#include "battle_pike.h"
#include "constants/rgb.h"
+enum
+{
+ SWITCH_POCKET_NONE,
+ SWITCH_POCKET_LEFT,
+ SWITCH_POCKET_RIGHT
+};
+
void GoToBagMenu(u8 bagMenuType, u8 pocketId, void (*postExitMenuMainCallback2)());
void CB2_Bag(void);
bool8 SetupBagMenu(void);
@@ -62,7 +69,7 @@ void AllocateBagItemListBuffers(void);
void LoadBagItemListBuffers(u8);
void BagMenu_PrintPocketNames(const u8*, const u8*);
void BagMenu_CopyPocketNameToWindow(u32);
-void BagMenu_DrawPocketIndicatorSquare(u8, u8);
+static void DrawPocketIndicatorSquare(u8 x, bool8 isCurrentPocket);
void CreatePocketScrollArrowPair(void);
void CreatePocketSwitchArrowPair(void);
void BagMenu_PrepareTMHMMoveWindow(void);
@@ -80,16 +87,16 @@ u16 BagGetQuantityByPocketPosition(u8, u16);
void BagDestroyPocketSwitchArrowPair(void);
void TaskCloseBagMenu_2(u8);
u8 AddItemMessageWindow(u8);
-void bag_menu_RemoveBagItem_message_window(u8);
+void BagMenu_RemoveBagItemMessageindow(u8);
void set_callback3_to_bag(u8);
void PrintItemDepositAmount(u8, s16);
-u8 BagMenu_AddWindow(u8);
-u8 GetSwitchBagPocketDirection(void);
-void SwitchBagPocket(u8, s16, u16);
-bool8 sub_81AC2C0(void);
-void BagMenu_SwapItems(u8);
-void sub_81AC10C(u8);
-void sub_81AC3C0(u8);
+static u8 BagMenu_AddWindow(u8);
+static u8 GetSwitchBagPocketDirection(void);
+static void SwitchBagPocket(u8, s16, u16);
+static bool8 CanSwapItems(void);
+static void BagMenu_SwapItems(u8 taskId);
+static void sub_81AC10C(u8);
+static void Task_HandleSwappingItemsInput(u8);
void sub_81AC498(u8);
void sub_81AC590(u8);
void PrintTMHMMoveData(u16);
@@ -106,19 +113,18 @@ void BagMenu_YesNo(u8, u8, const struct YesNoFuncTable*);
void Task_ActuallyToss(u8);
void ItemMenu_Cancel(u8);
void sub_81AD350(u8);
-void BagMenu_PrintItemCantBeHeld(u8);
-void DisplayCurrentMoneyWindow(void);
-void DisplaySellItemPriceAndConfirm(u8);
+static void BagMenu_PrintItemCantBeHeld(u8);
+static void DisplayCurrentMoneyWindow(void);
+static void DisplaySellItemPriceAndConfirm(u8);
void sub_81AD730(u8);
void sub_81AD6E4(u8);
-void bag_menu_remove_money_window(void);
-void bag_menu_RemoveBagItem_message_window(u8);
-void Task_BuyHowManyDialogueHandleInput(u8);
-void sub_81AD8C8(u8);
-void sub_81AD9C0(u8);
-void sub_81ADB14(u8);
-void sub_81ADA7C(u8);
-void sub_81ADC0C(u8);
+static void RemoveMoneyWindow(void);
+static void Task_SellHowManyDialogueHandleInput(u8);
+static void BagMenu_Sell_UpdateItemListAndMoney(u8);
+static void BagMenu_Sell_WaitForABPress(u8);
+static void BagMenu_TryDepositItem(u8);
+static void Task_ChooseHowManyToDeposit(u8 taskId);
+static void BagMenu_Deposit_WaitForABPress(u8);
void CB2_ApprenticeExitBagMenu(void);
void CB2_FavorLadyExitBagMenu(void);
void CB2_QuizLadyExitBagMenu(void);
@@ -528,14 +534,16 @@ void CB2_BagMenuFromBattle(void)
GoToBattlePyramidBagMenu(1, CB2_SetUpReshowBattleScreenAfterMenu2);
}
+// Choosing berry to plant
void CB2_ChooseBerry(void)
{
GoToBagMenu(ITEMMENULOCATION_BERRY_TREE, BERRIES_POCKET, CB2_ReturnToFieldContinueScript);
}
-void ChooseBerrySetCallback(void (*callback)(void))
+// Choosing berry for Berry Blender or Berry Crush
+void ChooseBerryForMachine(void (*exitCallback)(void))
{
- GoToBagMenu(ITEMMENULOCATION_BERRY_BLENDER_CRUSH, BERRIES_POCKET, callback);
+ GoToBagMenu(ITEMMENULOCATION_BERRY_BLENDER_CRUSH, BERRIES_POCKET, exitCallback);
}
void CB2_GoToSellMenu(void)
@@ -686,7 +694,7 @@ bool8 SetupBagMenu(void)
case 13:
BagMenu_PrintPocketNames(gPocketNamesStringsTable[gBagPositionStruct.pocket], 0);
BagMenu_CopyPocketNameToWindow(0);
- BagMenu_DrawPocketIndicatorSquare(gBagPositionStruct.pocket, 1);
+ DrawPocketIndicatorSquare(gBagPositionStruct.pocket, TRUE);
gMain.state++;
break;
case 14:
@@ -1109,7 +1117,7 @@ void BagMenu_InitListsMenu(u8 taskId)
s16* data = gTasks[taskId].data;
u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket];
u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket];
- bag_menu_RemoveBagItem_message_window(4);
+ BagMenu_RemoveBagItemMessageindow(4);
DestroyListMenuTask(data[0], scrollPos, cursorPos);
UpdatePocketItemList(gBagPositionStruct.pocket);
SetInitialScrollAndCursorPositions(gBagPositionStruct.pocket);
@@ -1152,16 +1160,16 @@ void Task_BagMenu_HandleInput(u8 taskId)
{
switch (GetSwitchBagPocketDirection())
{
- case 1:
- SwitchBagPocket(taskId, -1, 0);
+ case SWITCH_POCKET_LEFT:
+ SwitchBagPocket(taskId, MENU_CURSOR_DELTA_LEFT, 0);
return;
- case 2:
- SwitchBagPocket(taskId, 1, 0);
+ case SWITCH_POCKET_RIGHT:
+ SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, 0);
return;
default:
if (gMain.newKeys & SELECT_BUTTON)
{
- if (sub_81AC2C0() == 1)
+ if (CanSwapItems() == TRUE)
{
ListMenuGetScrollAndRow(data[0], scrollPos, cursorPos);
if ((*scrollPos + *cursorPos) != gBagMenu->numItemStacks[gBagPositionStruct.pocket] - 1)
@@ -1184,7 +1192,7 @@ void Task_BagMenu_HandleInput(u8 taskId)
case LIST_CANCEL:
if (gBagPositionStruct.location == ITEMMENULOCATION_BERRY_BLENDER_CRUSH)
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
break;
}
PlaySE(SE_SELECT);
@@ -1215,26 +1223,26 @@ void set_callback3_to_bag(u8 taskId)
gTasks[taskId].func = Task_BagMenu_HandleInput;
}
-u8 GetSwitchBagPocketDirection(void)
+static u8 GetSwitchBagPocketDirection(void)
{
u8 LRKeys;
if (gBagMenu->pocketSwitchDisabled)
- return 0;
+ return SWITCH_POCKET_NONE;
LRKeys = GetLRKeysPressed();
if ((gMain.newKeys & DPAD_LEFT) || LRKeys == MENU_L_PRESSED)
{
PlaySE(SE_SELECT);
- return 1;
+ return SWITCH_POCKET_LEFT;
}
if ((gMain.newKeys & DPAD_RIGHT) || LRKeys == MENU_R_PRESSED)
{
PlaySE(SE_SELECT);
- return 2;
+ return SWITCH_POCKET_RIGHT;
}
- return 0;
+ return SWITCH_POCKET_NONE;
}
-void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId)
+static void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId)
{
if (deltaBagPocketId == 1 && *bagPocketId == POCKETS_COUNT - 1)
*bagPocketId = 0;
@@ -1244,7 +1252,7 @@ void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId)
*bagPocketId += deltaBagPocketId;
}
-void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3)
+static void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3)
{
s16* data = gTasks[taskId].data;
u8 pocketId;
@@ -1263,7 +1271,7 @@ void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3)
}
pocketId = gBagPositionStruct.pocket;
ChangeBagPocketId(&pocketId, deltaBagPocketId);
- if (deltaBagPocketId == 1)
+ if (deltaBagPocketId == MENU_CURSOR_DELTA_RIGHT)
{
BagMenu_PrintPocketNames(gPocketNamesStringsTable[gBagPositionStruct.pocket], gPocketNamesStringsTable[pocketId]);
BagMenu_CopyPocketNameToWindow(0);
@@ -1273,8 +1281,8 @@ void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3)
BagMenu_PrintPocketNames(gPocketNamesStringsTable[pocketId], gPocketNamesStringsTable[gBagPositionStruct.pocket]);
BagMenu_CopyPocketNameToWindow(8);
}
- BagMenu_DrawPocketIndicatorSquare(gBagPositionStruct.pocket, 0);
- BagMenu_DrawPocketIndicatorSquare(pocketId, 1);
+ DrawPocketIndicatorSquare(gBagPositionStruct.pocket, FALSE);
+ DrawPocketIndicatorSquare(pocketId, TRUE);
FillBgTilemapBufferRect_Palette0(2, 11, 14, 2, 15, 16);
ScheduleBgCopyTilemapToVram(2);
SetBagVisualPocketId(pocketId, 1);
@@ -1291,15 +1299,15 @@ void sub_81AC10C(u8 taskId)
{
switch (GetSwitchBagPocketDirection())
{
- case 1:
+ case SWITCH_POCKET_LEFT:
ChangeBagPocketId(&gBagPositionStruct.pocket, data[11]);
SwitchTaskToFollowupFunc(taskId);
- SwitchBagPocket(taskId, -1, 1);
+ SwitchBagPocket(taskId, MENU_CURSOR_DELTA_LEFT, 1);
return;
- case 2:
+ case SWITCH_POCKET_RIGHT:
ChangeBagPocketId(&gBagPositionStruct.pocket, data[11]);
SwitchTaskToFollowupFunc(taskId);
- SwitchBagPocket(taskId, 1, 1);
+ SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, 1);
return;
}
}
@@ -1336,16 +1344,16 @@ void sub_81AC23C(u8 a)
ScheduleBgCopyTilemapToVram(2);
}
-void BagMenu_DrawPocketIndicatorSquare(u8 x, u8 is_current_bag)
+static void DrawPocketIndicatorSquare(u8 x, bool8 isCurrentPocket)
{
- if (is_current_bag == 0)
+ if (!isCurrentPocket)
FillBgTilemapBufferRect_Palette0(2, 0x1017, x + 5, 3, 1, 1);
else
FillBgTilemapBufferRect_Palette0(2, 0x102B, x + 5, 3, 1, 1);
ScheduleBgCopyTilemapToVram(2);
}
-bool8 sub_81AC2C0(void)
+static bool8 CanSwapItems(void)
{
if (gBagPositionStruct.location <= ITEMMENULOCATION_BATTLE)
{
@@ -1370,10 +1378,10 @@ void BagMenu_SwapItems(u8 taskId)
sub_80D4FEC(data[1]);
BagDestroyPocketSwitchArrowPair();
BagMenu_PrintCursor_(data[0], 2);
- gTasks[taskId].func = sub_81AC3C0;
+ gTasks[taskId].func = Task_HandleSwappingItemsInput;
}
-void sub_81AC3C0(u8 taskId)
+static void Task_HandleSwappingItemsInput(u8 taskId)
{
s16* data = gTasks[taskId].data;
int input;
@@ -1642,7 +1650,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId)
if (cursorPos > 0 && sub_81ACDFC(cursorPos - 2))
{
PlaySE(SE_SELECT);
- sub_8199134(0, -1);
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP);
}
}
else if (gMain.newKeys & DPAD_DOWN)
@@ -1650,7 +1658,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId)
if (cursorPos < (gBagMenu->contextMenuNumItems - 2) && sub_81ACDFC(cursorPos + 2))
{
PlaySE(SE_SELECT);
- sub_8199134(0, 1);
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN);
}
}
else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysPressed() == MENU_L_PRESSED)
@@ -1658,7 +1666,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId)
if ((cursorPos & 1) && sub_81ACDFC(cursorPos - 1))
{
PlaySE(SE_SELECT);
- sub_8199134(-1, 0);
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE);
}
}
else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysPressed() == MENU_R_PRESSED)
@@ -1666,7 +1674,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId)
if (!(cursorPos & 1) && sub_81ACDFC(cursorPos + 1))
{
PlaySE(SE_SELECT);
- sub_8199134(1, 0);
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE);
}
}
else if (gMain.newKeys & A_BUTTON)
@@ -1869,7 +1877,7 @@ void BagMenu_PrintThereIsNoPokemon(u8 taskId)
DisplayItemMessage(taskId, 1, gText_NoPokemon, sub_81AD350);
}
-void BagMenu_PrintItemCantBeHeld(u8 taskId)
+static void BagMenu_PrintItemCantBeHeld(u8 taskId)
{
CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_Var1CantBeHeld);
@@ -2010,7 +2018,7 @@ void Task_ItemContext_Sell(u8 taskId)
}
}
-void DisplaySellItemPriceAndConfirm(u8 taskId)
+static void DisplaySellItemPriceAndConfirm(u8 taskId)
{
s16* data = gTasks[taskId].data;
@@ -2028,8 +2036,8 @@ void BagMenu_CancelSell(u8 taskId)
{
s16* data = gTasks[taskId].data;
- bag_menu_remove_money_window();
- bag_menu_RemoveBagItem_message_window(4);
+ RemoveMoneyWindow();
+ BagMenu_RemoveBagItemMessageindow(4);
BagMenu_PrintCursor_(data[0], 0);
set_callback3_to_bag(taskId);
}
@@ -2041,10 +2049,10 @@ void sub_81AD730(u8 taskId)
PrintItemSoldAmount(windowId, 1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount);
DisplayCurrentMoneyWindow();
- gTasks[taskId].func = Task_BuyHowManyDialogueHandleInput;
+ gTasks[taskId].func = Task_SellHowManyDialogueHandleInput;
}
-void Task_BuyHowManyDialogueHandleInput(u8 taskId)
+static void Task_SellHowManyDialogueHandleInput(u8 taskId)
{
s16* data = gTasks[taskId].data;
@@ -2062,9 +2070,9 @@ void Task_BuyHowManyDialogueHandleInput(u8 taskId)
{
PlaySE(SE_SELECT);
BagMenu_PrintCursor_(data[0], 0);
- bag_menu_remove_money_window();
+ RemoveMoneyWindow();
BagMenu_RemoveWindow(8);
- bag_menu_RemoveBagItem_message_window(4);
+ BagMenu_RemoveBagItemMessageindow(4);
set_callback3_to_bag(taskId);
}
}
@@ -2076,16 +2084,16 @@ void BagMenu_ConfirmSell(u8 taskId)
CopyItemName(gSpecialVar_ItemId, gStringVar2);
ConvertIntToDecimalStringN(gStringVar1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount, STR_CONV_MODE_LEFT_ALIGN, 6);
StringExpandPlaceholders(gStringVar4, gText_TurnedOverVar1ForVar2);
- DisplayItemMessage(taskId, 1, gStringVar4, sub_81AD8C8);
+ DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_Sell_UpdateItemListAndMoney);
}
-void sub_81AD8C8(u8 taskId)
+static void BagMenu_Sell_UpdateItemListAndMoney(u8 taskId)
{
s16* data = gTasks[taskId].data;
u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket];
u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket];
- PlaySE(SE_REGI);
+ PlaySE(SE_SHOP);
RemoveBagItem(gSpecialVar_ItemId, tItemCount);
AddMoney(&gSaveBlock1Ptr->money, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount);
DestroyListMenuTask(data[0], scrollPos, cursorPos);
@@ -2095,15 +2103,15 @@ void sub_81AD8C8(u8 taskId)
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos);
BagMenu_PrintCursor_(data[0], 2);
PrintMoneyAmountInMoneyBox(gBagMenu->windowPointers[9], GetMoney(&gSaveBlock1Ptr->money), 0);
- gTasks[taskId].func = sub_81AD9C0;
+ gTasks[taskId].func = BagMenu_Sell_WaitForABPress;
}
-void sub_81AD9C0(u8 taskId)
+static void BagMenu_Sell_WaitForABPress(u8 taskId)
{
if (gMain.newKeys & (A_BUTTON | B_BUTTON))
{
PlaySE(SE_SELECT);
- bag_menu_remove_money_window();
+ RemoveMoneyWindow();
BagMenu_InitListsMenu(taskId);
}
}
@@ -2115,7 +2123,7 @@ void Task_ItemContext_Deposit(u8 taskId)
tItemCount = 1;
if (data[2] == 1)
{
- sub_81ADB14(taskId);
+ BagMenu_TryDepositItem(taskId);
}
else
{
@@ -2124,11 +2132,11 @@ void Task_ItemContext_Deposit(u8 taskId)
FillWindowPixelBuffer(1, PIXEL_FILL(0));
BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0);
sub_81ABC3C(7);
- gTasks[taskId].func = sub_81ADA7C;
+ gTasks[taskId].func = Task_ChooseHowManyToDeposit;
}
}
-void sub_81ADA7C(u8 taskId)
+static void Task_ChooseHowManyToDeposit(u8 taskId)
{
s16* data = gTasks[taskId].data;
@@ -2140,7 +2148,7 @@ void sub_81ADA7C(u8 taskId)
{
PlaySE(SE_SELECT);
BagMenu_RemoveWindow(7);
- sub_81ADB14(taskId);
+ BagMenu_TryDepositItem(taskId);
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -2152,7 +2160,7 @@ void sub_81ADA7C(u8 taskId)
}
}
-void sub_81ADB14(u8 taskId)
+static void BagMenu_TryDepositItem(u8 taskId)
{
s16* data = gTasks[taskId].data;
@@ -2160,7 +2168,7 @@ void sub_81ADB14(u8 taskId)
if (ItemId_GetImportance(gSpecialVar_ItemId))
{
BagMenu_Print(1, 1, gText_CantStoreImportantItems, 3, 1, 0, 0, 0, 0);
- gTasks[taskId].func = sub_81ADC0C;
+ gTasks[taskId].func = BagMenu_Deposit_WaitForABPress;
}
else if (AddPCItem(gSpecialVar_ItemId, tItemCount) == TRUE)
{
@@ -2173,11 +2181,11 @@ void sub_81ADB14(u8 taskId)
else
{
BagMenu_Print(1, 1, gText_NoRoomForItems, 3, 1, 0, 0, 0, 0);
- gTasks[taskId].func = sub_81ADC0C;
+ gTasks[taskId].func = BagMenu_Deposit_WaitForABPress;
}
}
-void sub_81ADC0C(u8 taskId)
+static void BagMenu_Deposit_WaitForABPress(u8 taskId)
{
s16* data = gTasks[taskId].data;
@@ -2248,7 +2256,7 @@ void Task_WallyTutorialBagMenu(u8 taskId)
{
case 0x66:
PlaySE(SE_SELECT);
- SwitchBagPocket(taskId, 1, 0);
+ SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, 0);
data[8]++;
break;
case 0xCC:
@@ -2414,7 +2422,7 @@ u8 AddItemMessageWindow(u8 which)
return *ptr;
}
-void bag_menu_RemoveBagItem_message_window(u8 which)
+void BagMenu_RemoveBagItemMessageindow(u8 which)
{
u8 *ptr = &gBagMenu->windowPointers[which];
if (*ptr != 0xFF)
@@ -2433,14 +2441,14 @@ void BagMenu_YesNo(u8 a, u8 b, const struct YesNoFuncTable *funcTable)
CreateYesNoMenuWithCallbacks(a, &sContextMenuWindowTemplates[b], 1, 0, 2, 1, 14, funcTable);
}
-void DisplayCurrentMoneyWindow(void)
+static void DisplayCurrentMoneyWindow(void)
{
u8 windowId = BagMenu_AddWindow(9);
PrintMoneyAmountInMoneyBoxWithBorder(windowId, 1, 14, GetMoney(&gSaveBlock1Ptr->money));
AddMoneyLabelObject(19, 11);
}
-void bag_menu_remove_money_window(void)
+static void RemoveMoneyWindow(void)
{
BagMenu_RemoveWindow(9);
RemoveMoneyLabelObject();
diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c
index cfafcbb75..cc51236c8 100644
--- a/src/item_menu_icons.c
+++ b/src/item_menu_icons.c
@@ -310,51 +310,51 @@ static const struct SpriteTemplate gBerryPicRotatingSpriteTemplate =
.callback = SpriteCallbackDummy,
};
-static const struct CompressedTilesPal gBerryPicTable[] =
-{
- {gBerryPic_Cheri, gBerryPalette_Cheri},
- {gBerryPic_Chesto, gBerryPalette_Chesto},
- {gBerryPic_Pecha, gBerryPalette_Pecha},
- {gBerryPic_Rawst, gBerryPalette_Rawst},
- {gBerryPic_Aspear, gBerryPalette_Aspear},
- {gBerryPic_Leppa, gBerryPalette_Leppa},
- {gBerryPic_Oran, gBerryPalette_Oran},
- {gBerryPic_Persim, gBerryPalette_Persim},
- {gBerryPic_Lum, gBerryPalette_Lum},
- {gBerryPic_Sitrus, gBerryPalette_Sitrus},
- {gBerryPic_Figy, gBerryPalette_Figy},
- {gBerryPic_Wiki, gBerryPalette_Wiki},
- {gBerryPic_Mago, gBerryPalette_Mago},
- {gBerryPic_Aguav, gBerryPalette_Aguav},
- {gBerryPic_Iapapa, gBerryPalette_Iapapa},
- {gBerryPic_Razz, gBerryPalette_Razz},
- {gBerryPic_Bluk, gBerryPalette_Bluk},
- {gBerryPic_Nanab, gBerryPalette_Nanab},
- {gBerryPic_Wepear, gBerryPalette_Wepear},
- {gBerryPic_Pinap, gBerryPalette_Pinap},
- {gBerryPic_Pomeg, gBerryPalette_Pomeg},
- {gBerryPic_Kelpsy, gBerryPalette_Kelpsy},
- {gBerryPic_Qualot, gBerryPalette_Qualot},
- {gBerryPic_Hondew, gBerryPalette_Hondew},
- {gBerryPic_Grepa, gBerryPalette_Grepa},
- {gBerryPic_Tamato, gBerryPalette_Tamato},
- {gBerryPic_Cornn, gBerryPalette_Cornn},
- {gBerryPic_Magost, gBerryPalette_Magost},
- {gBerryPic_Rabuta, gBerryPalette_Rabuta},
- {gBerryPic_Nomel, gBerryPalette_Nomel},
- {gBerryPic_Spelon, gBerryPalette_Spelon},
- {gBerryPic_Pamtre, gBerryPalette_Pamtre},
- {gBerryPic_Watmel, gBerryPalette_Watmel},
- {gBerryPic_Durin, gBerryPalette_Durin},
- {gBerryPic_Belue, gBerryPalette_Belue},
- {gBerryPic_Liechi, gBerryPalette_Liechi},
- {gBerryPic_Ganlon, gBerryPalette_Ganlon},
- {gBerryPic_Salac, gBerryPalette_Salac},
- {gBerryPic_Petaya, gBerryPalette_Petaya},
- {gBerryPic_Apicot, gBerryPalette_Apicot},
- {gBerryPic_Lansat, gBerryPalette_Lansat},
- {gBerryPic_Starf, gBerryPalette_Starf},
- {gBerryPic_Enigma, gBerryPalette_Enigma},
+static const struct CompressedTilesPal sBerryPicTable[] =
+{
+ [ITEM_TO_BERRY(ITEM_CHERI_BERRY) - 1] = {gBerryPic_Cheri, gBerryPalette_Cheri},
+ [ITEM_TO_BERRY(ITEM_CHESTO_BERRY) - 1] = {gBerryPic_Chesto, gBerryPalette_Chesto},
+ [ITEM_TO_BERRY(ITEM_PECHA_BERRY) - 1] = {gBerryPic_Pecha, gBerryPalette_Pecha},
+ [ITEM_TO_BERRY(ITEM_RAWST_BERRY) - 1] = {gBerryPic_Rawst, gBerryPalette_Rawst},
+ [ITEM_TO_BERRY(ITEM_ASPEAR_BERRY) - 1] = {gBerryPic_Aspear, gBerryPalette_Aspear},
+ [ITEM_TO_BERRY(ITEM_LEPPA_BERRY) - 1] = {gBerryPic_Leppa, gBerryPalette_Leppa},
+ [ITEM_TO_BERRY(ITEM_ORAN_BERRY) - 1] = {gBerryPic_Oran, gBerryPalette_Oran},
+ [ITEM_TO_BERRY(ITEM_PERSIM_BERRY) - 1] = {gBerryPic_Persim, gBerryPalette_Persim},
+ [ITEM_TO_BERRY(ITEM_LUM_BERRY) - 1] = {gBerryPic_Lum, gBerryPalette_Lum},
+ [ITEM_TO_BERRY(ITEM_SITRUS_BERRY) - 1] = {gBerryPic_Sitrus, gBerryPalette_Sitrus},
+ [ITEM_TO_BERRY(ITEM_FIGY_BERRY) - 1] = {gBerryPic_Figy, gBerryPalette_Figy},
+ [ITEM_TO_BERRY(ITEM_WIKI_BERRY) - 1] = {gBerryPic_Wiki, gBerryPalette_Wiki},
+ [ITEM_TO_BERRY(ITEM_MAGO_BERRY) - 1] = {gBerryPic_Mago, gBerryPalette_Mago},
+ [ITEM_TO_BERRY(ITEM_AGUAV_BERRY) - 1] = {gBerryPic_Aguav, gBerryPalette_Aguav},
+ [ITEM_TO_BERRY(ITEM_IAPAPA_BERRY) - 1] = {gBerryPic_Iapapa, gBerryPalette_Iapapa},
+ [ITEM_TO_BERRY(ITEM_RAZZ_BERRY) - 1] = {gBerryPic_Razz, gBerryPalette_Razz},
+ [ITEM_TO_BERRY(ITEM_BLUK_BERRY) - 1] = {gBerryPic_Bluk, gBerryPalette_Bluk},
+ [ITEM_TO_BERRY(ITEM_NANAB_BERRY) - 1] = {gBerryPic_Nanab, gBerryPalette_Nanab},
+ [ITEM_TO_BERRY(ITEM_WEPEAR_BERRY) - 1] = {gBerryPic_Wepear, gBerryPalette_Wepear},
+ [ITEM_TO_BERRY(ITEM_PINAP_BERRY) - 1] = {gBerryPic_Pinap, gBerryPalette_Pinap},
+ [ITEM_TO_BERRY(ITEM_POMEG_BERRY) - 1] = {gBerryPic_Pomeg, gBerryPalette_Pomeg},
+ [ITEM_TO_BERRY(ITEM_KELPSY_BERRY) - 1] = {gBerryPic_Kelpsy, gBerryPalette_Kelpsy},
+ [ITEM_TO_BERRY(ITEM_QUALOT_BERRY) - 1] = {gBerryPic_Qualot, gBerryPalette_Qualot},
+ [ITEM_TO_BERRY(ITEM_HONDEW_BERRY) - 1] = {gBerryPic_Hondew, gBerryPalette_Hondew},
+ [ITEM_TO_BERRY(ITEM_GREPA_BERRY) - 1] = {gBerryPic_Grepa, gBerryPalette_Grepa},
+ [ITEM_TO_BERRY(ITEM_TAMATO_BERRY) - 1] = {gBerryPic_Tamato, gBerryPalette_Tamato},
+ [ITEM_TO_BERRY(ITEM_CORNN_BERRY) - 1] = {gBerryPic_Cornn, gBerryPalette_Cornn},
+ [ITEM_TO_BERRY(ITEM_MAGOST_BERRY) - 1] = {gBerryPic_Magost, gBerryPalette_Magost},
+ [ITEM_TO_BERRY(ITEM_RABUTA_BERRY) - 1] = {gBerryPic_Rabuta, gBerryPalette_Rabuta},
+ [ITEM_TO_BERRY(ITEM_NOMEL_BERRY) - 1] = {gBerryPic_Nomel, gBerryPalette_Nomel},
+ [ITEM_TO_BERRY(ITEM_SPELON_BERRY) - 1] = {gBerryPic_Spelon, gBerryPalette_Spelon},
+ [ITEM_TO_BERRY(ITEM_PAMTRE_BERRY) - 1] = {gBerryPic_Pamtre, gBerryPalette_Pamtre},
+ [ITEM_TO_BERRY(ITEM_WATMEL_BERRY) - 1] = {gBerryPic_Watmel, gBerryPalette_Watmel},
+ [ITEM_TO_BERRY(ITEM_DURIN_BERRY) - 1] = {gBerryPic_Durin, gBerryPalette_Durin},
+ [ITEM_TO_BERRY(ITEM_BELUE_BERRY) - 1] = {gBerryPic_Belue, gBerryPalette_Belue},
+ [ITEM_TO_BERRY(ITEM_LIECHI_BERRY) - 1] = {gBerryPic_Liechi, gBerryPalette_Liechi},
+ [ITEM_TO_BERRY(ITEM_GANLON_BERRY) - 1] = {gBerryPic_Ganlon, gBerryPalette_Ganlon},
+ [ITEM_TO_BERRY(ITEM_SALAC_BERRY) - 1] = {gBerryPic_Salac, gBerryPalette_Salac},
+ [ITEM_TO_BERRY(ITEM_PETAYA_BERRY) - 1] = {gBerryPic_Petaya, gBerryPalette_Petaya},
+ [ITEM_TO_BERRY(ITEM_APICOT_BERRY) - 1] = {gBerryPic_Apicot, gBerryPalette_Apicot},
+ [ITEM_TO_BERRY(ITEM_LANSAT_BERRY) - 1] = {gBerryPic_Lansat, gBerryPalette_Lansat},
+ [ITEM_TO_BERRY(ITEM_STARF_BERRY) - 1] = {gBerryPic_Starf, gBerryPalette_Starf},
+ [ITEM_TO_BERRY(ITEM_ENIGMA_BERRY) - 1] = {gBerryPic_Enigma, gBerryPalette_Enigma},
};
const struct CompressedSpriteSheet gBerryCheckCircleSpriteSheet =
@@ -581,10 +581,10 @@ static void LoadBerryGfx(u8 berryId)
// unknown empty if statement
}
- pal.data = gBerryPicTable[berryId].pal;
+ pal.data = sBerryPicTable[berryId].pal;
pal.tag = TAG_BERRY_PIC_PAL;
LoadCompressedSpritePalette(&pal);
- LZDecompressWram(gBerryPicTable[berryId].tiles, &gDecompressionBuffer[0x1000]);
+ LZDecompressWram(sBerryPicTable[berryId].tiles, &gDecompressionBuffer[0x1000]);
sub_80D5018(&gDecompressionBuffer[0x1000], &gDecompressionBuffer[0]);
}
@@ -599,7 +599,8 @@ void FreeBerryTagSpritePalette(void)
FreeSpritePaletteByTag(TAG_BERRY_PIC_PAL);
}
-u8 LoadSpinningBerryPicGfx(u8 berryId, u8 x, u8 y, bool8 startAffine)
+// For throwing berries into the Berry Blender
+u8 CreateSpinningBerrySprite(u8 berryId, u8 x, u8 y, bool8 startAffine)
{
u8 spriteId;
diff --git a/src/item_use.c b/src/item_use.c
index 2c9ffaf32..a9132ae5e 100755
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -328,7 +328,7 @@ static void Task_UseItemfinder(u8 taskId)
}
return;
}
- PlaySE(SE_DAUGI);
+ PlaySE(SE_ITEMFINDER);
tItemfinderBeeps++;
}
tCounter = (tCounter + 1) & 0x1F;
@@ -845,7 +845,7 @@ static void Task_StartUseRepel(u8 taskId)
if (++data[8] > 7)
{
data[8] = 0;
- PlaySE(SE_TU_SAA);
+ PlaySE(SE_REPEL);
gTasks[taskId].func = Task_UseRepel;
}
}
@@ -867,7 +867,7 @@ static void Task_UsedBlackWhiteFlute(u8 taskId)
{
if(++gTasks[taskId].data[8] > 7)
{
- PlaySE(SE_BIDORO);
+ PlaySE(SE_GLASS_FLUTE);
if (!InBattlePyramid())
DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_InitListsMenu);
else
@@ -969,7 +969,7 @@ static void Task_UseStatIncreaseItem(u8 taskId)
{
if(++gTasks[taskId].data[8] > 7)
{
- PlaySE(SE_KAIFUKU);
+ PlaySE(SE_USE_ITEM);
RemoveBagItem(gSpecialVar_ItemId, 1);
if (!InBattlePyramid())
DisplayItemMessage(taskId, 1, UseStatIncreaseItem(gSpecialVar_ItemId), Task_CloseStatIncreaseMessage);
diff --git a/src/link.c b/src/link.c
index 62a9e4151..cdaf58469 100644
--- a/src/link.c
+++ b/src/link.c
@@ -99,7 +99,7 @@ u16 gLinkSavedIme;
EWRAM_DATA u8 gLinkTestDebugValuesEnabled = 0;
EWRAM_DATA u8 gUnknown_020223BD = 0;
-EWRAM_DATA u32 gUnknown_020223C0 = 0;
+EWRAM_DATA u32 gBerryBlenderKeySendAttempts = 0;
EWRAM_DATA u16 gBlockRecvBuffer[MAX_RFU_PLAYERS][BLOCK_BUFFER_SIZE / 2] = {};
EWRAM_DATA u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE] = {};
EWRAM_DATA bool8 gLinkOpen = FALSE;
@@ -552,7 +552,7 @@ static void ProcessRecvCmds(u8 unused)
InitBlockSend(block, sizeof(*block));
break;
}
- case LINKCMD_SEND_HELD_KEYS:
+ case LINKCMD_BLENDER_SEND_KEYS:
gLinkPartnersHeldKeys[i] = gRecvCmds[i][1];
break;
case LINKCMD_0x5555:
@@ -636,13 +636,13 @@ static void ProcessRecvCmds(u8 unused)
case LINKCMD_READY_EXIT_STANDBY:
gReadyToExitStandby[i] = TRUE;
break;
- case LINKCMD_0xAAAA:
- sub_800A418();
+ case LINKCMD_BLENDER_NO_PBLOCK_SPACE:
+ SetBerryBlenderLinkCallback();
break;
case LINKCMD_SEND_BLOCK_REQ:
SendBlock(0, sBlockRequests[gRecvCmds[i][1]].address, sBlockRequests[gRecvCmds[i][1]].size);
break;
- case LINKCMD_SEND_HELD_KEYS_2:
+ case LINKCMD_SEND_HELD_KEYS:
gLinkPartnersHeldKeys[i] = gRecvCmds[i][1];
break;
}
@@ -660,8 +660,8 @@ static void BuildSendCmd(u16 command)
case LINKCMD_READY_EXIT_STANDBY:
gSendCmd[0] = LINKCMD_READY_EXIT_STANDBY;
break;
- case LINKCMD_SEND_HELD_KEYS:
- gSendCmd[0] = LINKCMD_SEND_HELD_KEYS;
+ case LINKCMD_BLENDER_SEND_KEYS:
+ gSendCmd[0] = LINKCMD_BLENDER_SEND_KEYS;
gSendCmd[1] = gMain.heldKeys;
break;
case LINKCMD_0x5555:
@@ -687,8 +687,8 @@ static void BuildSendCmd(u16 command)
gSendCmd[1] = sBlockSend.size;
gSendCmd[2] = sBlockSend.multiplayerId + 0x80;
break;
- case LINKCMD_0xAAAA:
- gSendCmd[0] = LINKCMD_0xAAAA;
+ case LINKCMD_BLENDER_NO_PBLOCK_SPACE:
+ gSendCmd[0] = LINKCMD_BLENDER_NO_PBLOCK_SPACE;
break;
case LINKCMD_0xAAAB:
gSendCmd[0] = LINKCMD_0xAAAB;
@@ -705,12 +705,12 @@ static void BuildSendCmd(u16 command)
case LINKCMD_0x5566:
gSendCmd[0] = LINKCMD_0x5566;
break;
- case LINKCMD_SEND_HELD_KEYS_2:
+ case LINKCMD_SEND_HELD_KEYS:
if (gHeldKeyCodeToSend == 0 || gLinkTransferringData)
{
break;
}
- gSendCmd[0] = LINKCMD_SEND_HELD_KEYS_2;
+ gSendCmd[0] = LINKCMD_SEND_HELD_KEYS;
gSendCmd[1] = gHeldKeyCodeToSend;
break;
}
@@ -738,7 +738,7 @@ bool32 IsSendingKeysToLink(void)
static void LinkCB_SendHeldKeys(void)
{
if (gReceivedRemoteLinkPlayers == TRUE)
- BuildSendCmd(LINKCMD_SEND_HELD_KEYS_2);
+ BuildSendCmd(LINKCMD_SEND_HELD_KEYS);
}
void ClearLinkCallback(void)
@@ -1009,34 +1009,36 @@ static void LinkCB_BlockSendEnd(void)
gLinkCallback = NULL;
}
-static void sub_800A3F8(void)
+static void LinkCB_BerryBlenderSendHeldKeys(void)
{
GetMultiplayerId();
- BuildSendCmd(LINKCMD_SEND_HELD_KEYS);
- gUnknown_020223C0++;
+ BuildSendCmd(LINKCMD_BLENDER_SEND_KEYS);
+ gBerryBlenderKeySendAttempts++;
}
-void sub_800A418(void)
+void SetBerryBlenderLinkCallback(void)
{
- gUnknown_020223C0 = 0;
+ gBerryBlenderKeySendAttempts = 0;
if (gWirelessCommType)
{
- sub_800F850();
+ Rfu_SetBerryBlenderLinkCallback();
}
else
{
- gLinkCallback = sub_800A3F8;
+ gLinkCallback = LinkCB_BerryBlenderSendHeldKeys;
}
}
-u32 sub_800A44C(void)
+// Unused
+static u32 GetBerryBlenderKeySendAttempts(void)
{
- return gUnknown_020223C0;
+ return gBerryBlenderKeySendAttempts;
}
-void sub_800A458(void)
+// Unused
+static void SendBerryBlenderNoSpaceForPokeblocks(void)
{
- BuildSendCmd(LINKCMD_0xAAAA);
+ BuildSendCmd(LINKCMD_BLENDER_NO_PBLOCK_SPACE);
}
u8 GetMultiplayerId(void)
diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c
index 3372aa766..1ea6f4fce 100644
--- a/src/link_rfu_2.c
+++ b/src/link_rfu_2.c
@@ -876,8 +876,7 @@ static void sub_800F498(u16 *a0, u8 *a1)
static bool32 RfuProcessEnqueuedRecvBlock(void)
{
- u8 i;
- u8 j;
+ u8 i, j;
u8 sp00[MAX_RFU_PLAYERS * (2 * (CMD_LENGTH - 1))];
u8 sp48[2 * (CMD_LENGTH - 1)];
u8 status;
@@ -923,24 +922,25 @@ static bool32 RfuProcessEnqueuedRecvBlock(void)
static void HandleSendFailure(u8 unused, u32 flags)
{
- s32 i, j;
+ s32 i, j, temp;
const u8 *r10 = Rfu.sendBlock.payload;
for (i = 0; i < Rfu.sendBlock.count; i++)
{
if (!(flags & 1))
{
- sResendBlock16[0] = RFU_COMMAND_0x8900 | i;
+ sResendBlock16[0] = RFUCMD_0x8900 | i;
for (j = 0; j < 7; j++)
{
- sResendBlock16[j + 1] = (r10[12 * i + (j << 1) + 1] << 8) | r10[12 * i + (j << 1) + 0];
+ temp = j << 1;
+ sResendBlock16[j + 1] = (r10[i * 12 + temp + 1] << 8) | r10[i * 12 + temp];
}
+
for (j = 0; j < 7; j++)
{
- sResendBlock8[2 * j + 1] = sResendBlock16[j] >> 8;
- sResendBlock8[2 * j + 0] = sResendBlock16[j];
-
- j++;j--; // Needed to match;
+ temp = j << 1;
+ sResendBlock8[temp + 1] = sResendBlock16[j] >> 8;
+ sResendBlock8[temp + 0] = sResendBlock16[j] & 0xff;
}
RfuSendQueue_Enqueue(&Rfu.sendQueue, sResendBlock8);
Rfu.sendBlock.failedFlags |= (1 << i);
@@ -984,7 +984,7 @@ static void RfuFunc_SendKeysToRfu(void)
{
sHeldKeyCount++;
gHeldKeyCodeToSend |= (sHeldKeyCount << 8);
- RfuPrepareSendBuffer(RFU_COMMAND_0xBE00);
+ RfuPrepareSendBuffer(RFUCMD_SEND_HELD_KEYS);
}
}
@@ -1008,41 +1008,40 @@ void ClearLinkRfuCallback(void)
Rfu.callback = NULL;
}
-void sub_800F820(void)
+static void Rfu_BerryBlenderSendHeldKeys(void)
{
- RfuPrepareSendBuffer(RFU_COMMAND_0x4400);
+ RfuPrepareSendBuffer(RFUCMD_BLENDER_SEND_KEYS);
if (GetMultiplayerId() == 0)
- gSendCmd[6] = GetBlenderArrowPosition();
- gUnknown_020223C0++;
+ gSendCmd[BLENDER_COMM_ARROW_POS] = GetBlenderArrowPosition();
+ gBerryBlenderKeySendAttempts++;
}
-void sub_800F850(void)
+void Rfu_SetBerryBlenderLinkCallback(void)
{
if (Rfu.callback == NULL)
- Rfu.callback = sub_800F820;
+ Rfu.callback = Rfu_BerryBlenderSendHeldKeys;
}
static void RfuHandleReceiveCommand(u8 unused)
{
- u16 i;
- u16 j;
+ u16 i, j;
for (i = 0; i < MAX_RFU_PLAYERS; i++)
{
switch (gRecvCmds[i][0] & 0xff00)
{
- case RFU_COMMAND_0x7800:
+ case RFUCMD_0x7800:
if (Rfu.parentChild == MODE_CHILD && gReceivedRemoteLinkPlayers)
return;
// fallthrough
- case RFU_COMMAND_0x7700:
+ case RFUCMD_0x7700:
if (gRfuLinkStatus->parentChild == MODE_CHILD)
{
Rfu.playerCount = gRecvCmds[i][1];
- Rfu.multiplayerId = sub_800F74C((u8 *)(gRecvCmds[i] + 2));
+ Rfu.multiplayerId = sub_800F74C((u8 *)(&gRecvCmds[i][2]));
}
break;
- case RFU_COMMAND_0x8800:
+ case RFUCMD_0x8800:
if (Rfu.recvBlock[i].receiving == 0)
{
Rfu.recvBlock[i].next = 0;
@@ -1053,7 +1052,7 @@ static void RfuHandleReceiveCommand(u8 unused)
Rfu.blockReceived[i] = FALSE;
}
break;
- case RFU_COMMAND_0x8900:
+ case RFUCMD_0x8900:
if (Rfu.recvBlock[i].receiving == 1)
{
Rfu.recvBlock[i].next = gRecvCmds[i][0] & 0xff;
@@ -1069,17 +1068,17 @@ static void RfuHandleReceiveCommand(u8 unused)
}
}
break;
- case RFU_COMMAND_SEND_BLOCK_REQ:
+ case RFUCMD_SEND_BLOCK_REQ:
Rfu_InitBlockSend(sBlockRequests[gRecvCmds[i][1]].address, (u16)sBlockRequests[gRecvCmds[i][1]].size);
break;
- case RFU_COMMAND_READY_CLOSE_LINK:
+ case RFUCMD_READY_CLOSE_LINK:
Rfu.readyCloseLink[i] = TRUE;
break;
- case RFU_COMMAND_READY_EXIT_STANDBY:
+ case RFUCMD_READY_EXIT_STANDBY:
if (Rfu.unk_100 == gRecvCmds[i][1])
Rfu.readyExitStandby[i] = TRUE;
break;
- case RFU_COMMAND_0xED00:
+ case RFUCMD_0xED00:
if (Rfu.parentChild == MODE_CHILD)
{
if (gReceivedRemoteLinkPlayers)
@@ -1096,13 +1095,13 @@ static void RfuHandleReceiveCommand(u8 unused)
}
else
{
- RfuPrepareSendBuffer(RFU_COMMAND_0xEE00);
+ RfuPrepareSendBuffer(RFUCMD_0xEE00);
gSendCmd[1] = gRecvCmds[i][1];
gSendCmd[2] = gRecvCmds[i][2];
gSendCmd[3] = gRecvCmds[i][3];
}
break;
- case RFU_COMMAND_0xEE00:
+ case RFUCMD_0xEE00:
if (Rfu.parentChild == MODE_PARENT)
{
Rfu.unk_ce3 |= gRecvCmds[i][1];
@@ -1110,8 +1109,8 @@ static void RfuHandleReceiveCommand(u8 unused)
ClearSelectedLinkPlayerIds(gRecvCmds[i][1]);
}
break;
- case RFU_COMMAND_0x4400:
- case RFU_COMMAND_0xBE00:
+ case RFUCMD_BLENDER_SEND_KEYS:
+ case RFUCMD_SEND_HELD_KEYS:
gLinkPartnersHeldKeys[i] = gRecvCmds[i][1];
break;
}
@@ -1187,16 +1186,16 @@ static void RfuPrepareSendBuffer(u16 command)
gSendCmd[0] = command;
switch (command)
{
- case RFU_COMMAND_0x8800:
+ case RFUCMD_0x8800:
gSendCmd[1] = Rfu.sendBlock.count;
gSendCmd[2] = Rfu.sendBlock.owner + 0x80;
break;
- case RFU_COMMAND_SEND_BLOCK_REQ:
+ case RFUCMD_SEND_BLOCK_REQ:
if (AreNoPlayersReceiving())
gSendCmd[1] = Rfu.blockRequestType;
break;
- case RFU_COMMAND_0x7700:
- case RFU_COMMAND_0x7800:
+ case RFUCMD_0x7700:
+ case RFUCMD_0x7800:
tmp = Rfu.unk_ce2 ^ Rfu.unk_ce3;
Rfu.playerCount = sUnknown_082ED695[tmp] + 1;
gSendCmd[1] = Rfu.playerCount;
@@ -1204,44 +1203,43 @@ static void RfuPrepareSendBuffer(u16 command)
for (i = 0; i < RFU_CHILD_MAX; i++)
buff[i] = Rfu.linkPlayerIdx[i];
break;
- case RFU_COMMAND_READY_EXIT_STANDBY:
- case RFU_COMMAND_READY_CLOSE_LINK:
+ case RFUCMD_READY_EXIT_STANDBY:
+ case RFUCMD_READY_CLOSE_LINK:
gSendCmd[1] = Rfu.unk_100;
break;
- case RFU_COMMAND_0x4400:
+ case RFUCMD_BLENDER_SEND_KEYS:
gSendCmd[0] = command;
gSendCmd[1] = gMain.heldKeys;
break;
- case RFU_COMMAND_0x2F00:
- for (i = 0; i < 6; i++)
- gSendCmd[1 + i] = Rfu.unk_f2[i];
+ case RFUCMD_SEND_PACKET:
+ for (i = 0; i < RFU_PACKET_SIZE; i++)
+ gSendCmd[1 + i] = Rfu.packet[i];
break;
- case RFU_COMMAND_0xBE00:
+ case RFUCMD_SEND_HELD_KEYS:
gSendCmd[1] = gHeldKeyCodeToSend;
break;
- case RFU_COMMAND_0xEE00:
+ case RFUCMD_0xEE00:
break;
- case RFU_COMMAND_0xED00:
+ case RFUCMD_0xED00:
break;
}
}
-void sub_800FE50(void *a0)
+void Rfu_SendPacket(void *data)
{
if (gSendCmd[0] == 0 && !RfuHasErrored())
{
- memcpy(Rfu.unk_f2, a0, sizeof(Rfu.unk_f2));
- RfuPrepareSendBuffer(RFU_COMMAND_0x2F00);
+ memcpy(Rfu.packet, data, sizeof(Rfu.packet));
+ RfuPrepareSendBuffer(RFUCMD_SEND_PACKET);
}
}
bool32 Rfu_InitBlockSend(const u8 *src, size_t size)
{
bool8 r4;
- if (Rfu.callback != NULL)
- return FALSE;
- if (gSendCmd[0] != 0)
+ if (Rfu.callback != NULL || gSendCmd[0] != 0)
return FALSE;
+
if (Rfu.sendBlock.sending)
{
sRfuDebug.unk_83++;
@@ -1260,7 +1258,7 @@ bool32 Rfu_InitBlockSend(const u8 *src, size_t size)
memcpy(gBlockSendBuffer, src, size);
Rfu.sendBlock.payload = gBlockSendBuffer;
}
- RfuPrepareSendBuffer(RFU_COMMAND_0x8800);
+ RfuPrepareSendBuffer(RFUCMD_0x8800);
Rfu.callback = HandleBlockSend;
Rfu.unk_5b = 0;
return TRUE;
@@ -1270,7 +1268,7 @@ static void HandleBlockSend(void)
{
if (gSendCmd[0] == 0)
{
- RfuPrepareSendBuffer(RFU_COMMAND_0x8800);
+ RfuPrepareSendBuffer(RFUCMD_0x8800);
if (Rfu.parentChild == MODE_PARENT)
{
if (++Rfu.unk_5b > 2)
@@ -1278,7 +1276,7 @@ static void HandleBlockSend(void)
}
else
{
- if ((gRecvCmds[GetMultiplayerId()][0] & 0xff00) == RFU_COMMAND_0x8800)
+ if ((gRecvCmds[GetMultiplayerId()][0] & 0xff00) == RFUCMD_0x8800)
Rfu.callback = SendNextBlock;
}
}
@@ -1288,7 +1286,7 @@ static void SendNextBlock(void)
{
s32 i;
const u8 *src = Rfu.sendBlock.payload;
- gSendCmd[0] = RFU_COMMAND_0x8900 | Rfu.sendBlock.next;
+ gSendCmd[0] = RFUCMD_0x8900 | Rfu.sendBlock.next;
for (i = 0; i < CMD_LENGTH - 1; i++)
gSendCmd[i + 1] = (src[(i << 1) + Rfu.sendBlock.next * 12 + 1] << 8) | src[(i << 1) + Rfu.sendBlock.next * 12 + 0];
Rfu.sendBlock.next++;
@@ -1306,7 +1304,7 @@ static void SendLastBlock(void)
s32 i;
if (Rfu.parentChild == MODE_CHILD)
{
- gSendCmd[0] = RFU_COMMAND_0x8900 | (Rfu.sendBlock.count - 1);
+ gSendCmd[0] = RFUCMD_0x8900 | (Rfu.sendBlock.count - 1);
for (i = 0; i < CMD_LENGTH - 1; i++)
gSendCmd[i + 1] = (src[(i << 1) + (Rfu.sendBlock.count - 1) * 12 + 1] << 8) | src[(i << 1) + (Rfu.sendBlock.count - 1) * 12 + 0];
if ((u8)gRecvCmds[mpId][0] == Rfu.sendBlock.count - 1)
@@ -1327,7 +1325,7 @@ static void SendLastBlock(void)
bool8 Rfu_SendBlockRequest(u8 type)
{
Rfu.blockRequestType = type;
- RfuPrepareSendBuffer(RFU_COMMAND_SEND_BLOCK_REQ);
+ RfuPrepareSendBuffer(RFUCMD_SEND_BLOCK_REQ);
return TRUE;
}
@@ -1396,7 +1394,7 @@ static void SendReadyCloseLink(void)
{
if (gSendCmd[0] == 0 && Rfu.unk_ce8 == 0)
{
- RfuPrepareSendBuffer(RFU_COMMAND_READY_CLOSE_LINK);
+ RfuPrepareSendBuffer(RFUCMD_READY_CLOSE_LINK);
Rfu.callback = WaitAllReadyToCloseLink;
}
}
@@ -1419,16 +1417,12 @@ void Rfu_SetCloseLinkCallback(void)
static void SendReadyExitStandbyUntilAllReady(void)
{
- u8 playerCount;
- u8 i;
+ u8 i, playerCount;
- if (GetMultiplayerId() != 0)
+ if (GetMultiplayerId() != 0 && Rfu.recvQueue.count == 0 && Rfu.resendExitStandbyTimer > 60)
{
- if (Rfu.recvQueue.count == 0 && Rfu.resendExitStandbyTimer > 60)
- {
- RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY);
- Rfu.resendExitStandbyTimer = 0;
- }
+ RfuPrepareSendBuffer(RFUCMD_READY_EXIT_STANDBY);
+ Rfu.resendExitStandbyTimer = 0;
}
playerCount = GetLinkPlayerCount();
for (i = 0; i < playerCount; i++)
@@ -1450,7 +1444,7 @@ static void LinkLeaderReadyToExitStandby(void)
{
if (Rfu.recvQueue.count == 0 && gSendCmd[0] == 0)
{
- RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY);
+ RfuPrepareSendBuffer(RFUCMD_READY_EXIT_STANDBY);
Rfu.callback = SendReadyExitStandbyUntilAllReady;
}
}
@@ -1458,15 +1452,14 @@ static void LinkLeaderReadyToExitStandby(void)
// RFU equivalent of LinkCB_Standby and LinkCB_StandbyForAll
static void Rfu_LinkStandby(void)
{
- u8 i;
- u8 playerCount;
+ u8 i, playerCount;
if (GetMultiplayerId() != 0)
{
// Not link leader, send exit standby when ready
if (Rfu.recvQueue.count == 0 && gSendCmd[0] == 0)
{
- RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY);
+ RfuPrepareSendBuffer(RFUCMD_READY_EXIT_STANDBY);
Rfu.callback = SendReadyExitStandbyUntilAllReady;
}
}
@@ -1483,7 +1476,7 @@ static void Rfu_LinkStandby(void)
{
if (Rfu.recvQueue.count == 0 && gSendCmd[0] == 0)
{
- RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY);
+ RfuPrepareSendBuffer(RFUCMD_READY_EXIT_STANDBY);
Rfu.callback = LinkLeaderReadyToExitStandby;
}
}
@@ -1555,28 +1548,28 @@ static bool8 CheckForLeavingGroupMembers(void)
bool8 memberLeft = FALSE;
for (i = 0; i < RFU_CHILD_MAX; i++)
{
- if (Rfu.partnerSendStatuses[i] < RFU_STATUS_JOIN_GROUP_OK
- || Rfu.partnerSendStatuses[i] > RFU_STATUS_JOIN_GROUP_NO)
+ if (Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_OK
+ || Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_NO)
{
- if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS
- || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN)
- {
- if (Rfu.partnerRecvStatuses[i] == RFU_STATUS_LEAVE_GROUP_NOTICE)
- {
- Rfu.partnerSendStatuses[i] = RFU_STATUS_LEAVE_GROUP;
- Rfu.partnerRecvStatuses[i] = RFU_STATUS_10;
- rfu_clearSlot(TYPE_NI_RECV, i);
- rfu_NI_setSendData(1 << i, 8, &Rfu.partnerSendStatuses[i], 1);
- memberLeft = TRUE;
- }
+ continue;
+ }
- }
- else if (gRfuSlotStatusNI[Rfu.childSlot]->recv.state == SLOT_STATE_RECV_FAILED)
- rfu_clearSlot(TYPE_NI_RECV, i);
+ if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS
+ || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN)
+ {
+ if (Rfu.partnerRecvStatuses[i] == RFU_STATUS_LEAVE_GROUP_NOTICE)
{
-
+ Rfu.partnerSendStatuses[i] = RFU_STATUS_LEAVE_GROUP;
+ Rfu.partnerRecvStatuses[i] = RFU_STATUS_10;
+ rfu_clearSlot(TYPE_NI_RECV, i);
+ rfu_NI_setSendData(1 << i, 8, &Rfu.partnerSendStatuses[i], 1);
+ memberLeft = TRUE;
}
}
+ else if (gRfuSlotStatusNI[Rfu.childSlot]->recv.state == SLOT_STATE_RECV_FAILED)
+ {
+ rfu_clearSlot(TYPE_NI_RECV, i);
+ }
}
return memberLeft;
}
@@ -1706,9 +1699,9 @@ static void sub_801084C(u8 taskId)
if (Rfu.parentChild == MODE_PARENT)
{
if (gReceivedRemoteLinkPlayers)
- RfuPrepareSendBuffer(RFU_COMMAND_0x7800);
+ RfuPrepareSendBuffer(RFUCMD_0x7800);
else
- RfuPrepareSendBuffer(RFU_COMMAND_0x7700);
+ RfuPrepareSendBuffer(RFUCMD_0x7700);
gTasks[taskId].data[0] = 101;
}
else
@@ -1728,7 +1721,7 @@ static void sub_801084C(u8 taskId)
if (AreNoPlayersReceiving())
{
Rfu.blockRequestType = 0;
- RfuPrepareSendBuffer(RFU_COMMAND_SEND_BLOCK_REQ);
+ RfuPrepareSendBuffer(RFUCMD_SEND_BLOCK_REQ);
gTasks[taskId].data[0]++;
}
}
@@ -1818,7 +1811,7 @@ static void Task_ExchangeLinkPlayers(u8 taskId)
if (gSendCmd[0] == 0)
{
ResetBlockReceivedFlag(r4);
- RfuPrepareSendBuffer(RFU_COMMAND_0x7800);
+ RfuPrepareSendBuffer(RFUCMD_0x7800);
gTasks[taskId].data[0]++;
}
break;
@@ -2097,8 +2090,7 @@ static void sub_80111FC(void)
static void sub_801120C(u8 msg, u8 paramCount)
{
- u8 i;
- u8 disconnectFlag = 0;
+ u8 i, disconnectFlag = 0;
switch (msg)
{
case LMAN_MSG_INITIALIZE_COMPLETED:
@@ -2632,7 +2624,7 @@ static void sub_8011E2C(u8 taskId)
{
if (gSendCmd[0] == 0 && Rfu.unk_ce8 == 0)
{
- RfuPrepareSendBuffer(RFU_COMMAND_0xED00);
+ RfuPrepareSendBuffer(RFUCMD_0xED00);
gSendCmd[1] = gTasks[taskId].data[0];
gSendCmd[2] = gTasks[taskId].data[1];
Rfu.playerCount -= sUnknown_082ED695[gTasks[taskId].data[0]];
diff --git a/src/list_menu.c b/src/list_menu.c
index 73fdba63e..1e549a34a 100644
--- a/src/list_menu.c
+++ b/src/list_menu.c
@@ -1282,7 +1282,7 @@ void ListMenuSetUpRedOutlineCursorSpriteOamTable(u16 rowWidth, u16 rowHeight, st
{
subsprites[id] = sSubsprite_RedOutline3;
subsprites[id].x = i - 120;
- subsprites[id].y = 136;
+ subsprites[id].y = -120;
id++;
subsprites[id] = sSubsprite_RedOutline6;
diff --git a/src/m4a.c b/src/m4a.c
index 11a4525ea..b8f9e21c1 100644
--- a/src/m4a.c
+++ b/src/m4a.c
@@ -22,8 +22,7 @@ u8 gMPlayMemAccArea[0x10];
u32 MidiKeyToFreq(struct WaveData *wav, u8 key, u8 fineAdjust)
{
- u32 val1;
- u32 val2;
+ u32 val1, val2;
u32 fineAdjustShifted = fineAdjust << 24;
if (key > 178)
@@ -315,7 +314,7 @@ void MPlayExtender(struct CgbChannel *cgbChans)
void MusicPlayerJumpTableCopy(void)
{
- asm("swi 0x2A");
+ asm("svc 0x2A");
}
void ClearChain(void *x)
@@ -352,25 +351,25 @@ void SoundInit(struct SoundInfo *soundInfo)
| SOUND_ALL_MIX_FULL;
REG_SOUNDBIAS_H = (REG_SOUNDBIAS_H & 0x3F) | 0x40;
- REG_DMA1SAD = (s32)soundInfo->pcmBuffer;
- REG_DMA1DAD = (s32)&REG_FIFO_A;
- REG_DMA2SAD = (s32)soundInfo->pcmBuffer + PCM_DMA_BUF_SIZE;
- REG_DMA2DAD = (s32)&REG_FIFO_B;
+ REG_DMA1SAD = (u32)soundInfo->pcmBuffer;
+ REG_DMA1DAD = (u32)&REG_FIFO_A;
+ REG_DMA2SAD = (u32)soundInfo->pcmBuffer + PCM_DMA_BUF_SIZE;
+ REG_DMA2DAD = (u32)&REG_FIFO_B;
SOUND_INFO_PTR = soundInfo;
CpuFill32(0, soundInfo, sizeof(struct SoundInfo));
soundInfo->maxChans = 8;
soundInfo->masterVolume = 15;
- soundInfo->plynote = (u32)ply_note;
+ soundInfo->plynote = ply_note;
soundInfo->CgbSound = DummyFunc;
soundInfo->CgbOscOff = (void (*)(u8))DummyFunc;
soundInfo->MidiKeyToCgbFreq = (u32 (*)(u8, u8, u8))DummyFunc;
- soundInfo->ExtVolPit = (u32)DummyFunc;
+ soundInfo->ExtVolPit = (void (*)(struct MusicPlayerInfo *, struct MusicPlayerTrack *))DummyFunc;
MPlayJumpTableCopy(gMPlayJumpTable);
- soundInfo->MPlayJumpTable = (u32)gMPlayJumpTable;
+ soundInfo->MPlayJumpTable = (void (**)())gMPlayJumpTable;
SampleFreqSet(SOUND_MODE_FREQ_13379);
@@ -381,7 +380,7 @@ void SampleFreqSet(u32 freq)
{
struct SoundInfo *soundInfo = SOUND_INFO_PTR;
- freq = (freq & 0xF0000) >> 16;
+ freq = (freq & SOUND_MODE_FREQ) >> SOUND_MODE_FREQ_SHIFT;
soundInfo->freq = freq;
soundInfo->pcmSamplesPerVBlank = gPcmSamplesPerVBlankTable[freq - 1];
soundInfo->pcmDmaPeriod = PCM_DMA_BUF_SIZE / soundInfo->pcmSamplesPerVBlank;
@@ -432,14 +431,9 @@ void m4aSoundMode(u32 mode)
soundInfo->maxChans = temp >> SOUND_MODE_MAXCHN_SHIFT;
- temp = MAX_DIRECTSOUND_CHANNELS;
- chan = &soundInfo->chans[0];
-
- while (temp != 0)
+ for (temp = MAX_DIRECTSOUND_CHANNELS, chan = soundInfo->chans; temp != 0; temp--,chan++)
{
chan->status = 0;
- temp--;
- chan++;
}
}
@@ -469,37 +463,28 @@ void m4aSoundMode(u32 mode)
void SoundClear(void)
{
- struct SoundInfo *soundInfo = SOUND_INFO_PTR;
s32 i;
- void *chan;
+ struct SoundInfo *soundInfo = SOUND_INFO_PTR;
+ struct SoundChannel *chan;
if (soundInfo->ident != ID_NUMBER)
return;
soundInfo->ident++;
- i = MAX_DIRECTSOUND_CHANNELS;
- chan = &soundInfo->chans[0];
-
- while (i > 0)
+ for (i = MAX_DIRECTSOUND_CHANNELS, chan = soundInfo->chans; i > 0; i--,chan++)
{
- ((struct SoundChannel *)chan)->status = 0;
- i--;
- chan = (void *)((s32)chan + sizeof(struct SoundChannel));
+ chan->status = 0;
}
- chan = soundInfo->cgbChans;
+ chan = (struct SoundChannel *)soundInfo->cgbChans;
if (chan)
{
- i = 1;
-
- while (i <= 4)
+ for (i=1; i<=4; i++,chan++)
{
soundInfo->CgbOscOff(i);
- ((struct CgbChannel *)chan)->sf = 0;
- i++;
- chan = (void *)((s32)chan + sizeof(struct CgbChannel));
+ chan->status = 0;
}
}
@@ -510,21 +495,20 @@ void m4aSoundVSyncOff(void)
{
struct SoundInfo *soundInfo = SOUND_INFO_PTR;
- if (soundInfo->ident >= ID_NUMBER && soundInfo->ident <= ID_NUMBER + 1)
- {
- soundInfo->ident += 10;
+ if (soundInfo->ident < ID_NUMBER || soundInfo->ident > ID_NUMBER + 1)
+ return;
+ soundInfo->ident += 10;
- if (REG_DMA1CNT & (DMA_REPEAT << 16))
- REG_DMA1CNT = ((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4;
+ if (REG_DMA1CNT & (DMA_REPEAT << 16))
+ REG_DMA1CNT = ((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4;
- if (REG_DMA2CNT & (DMA_REPEAT << 16))
- REG_DMA2CNT = ((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4;
+ if (REG_DMA2CNT & (DMA_REPEAT << 16))
+ REG_DMA2CNT = ((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4;
- REG_DMA1CNT_H = DMA_32BIT;
- REG_DMA2CNT_H = DMA_32BIT;
+ REG_DMA1CNT_H = DMA_32BIT;
+ REG_DMA2CNT_H = DMA_32BIT;
- CpuFill32(0, soundInfo->pcmBuffer, sizeof(soundInfo->pcmBuffer));
- }
+ CpuFill32(0, soundInfo->pcmBuffer, sizeof(soundInfo->pcmBuffer));
}
void m4aSoundVSyncOn(void)
@@ -580,7 +564,7 @@ void MPlayOpen(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track
}
soundInfo->intp = (u32)mplayInfo;
- soundInfo->func = (u32)MPlayMain;
+ soundInfo->func = MPlayMain;
soundInfo->ident = ID_NUMBER;
mplayInfo->ident = ID_NUMBER;
}
@@ -614,28 +598,21 @@ void MPlayStart(struct MusicPlayerInfo *mplayInfo, struct SongHeader *songHeader
mplayInfo->tempoC = 0;
mplayInfo->fadeOI = 0;
- i = 0;
- track = mplayInfo->tracks;
-
- while (i < songHeader->trackCount && i < mplayInfo->trackCount)
+ for (i = 0, track = mplayInfo->tracks; i < songHeader->trackCount && i < mplayInfo->trackCount; i++, track++)
{
TrackStop(mplayInfo, track);
track->flags = MPT_FLG_EXIST | MPT_FLG_START;
track->chan = 0;
track->cmdPtr = songHeader->part[i];
- i++;
- track++;
}
- while (i < mplayInfo->trackCount)
+ for (; i < mplayInfo->trackCount; i++, track++)
{
TrackStop(mplayInfo, track);
track->flags = 0;
- i++;
- track++;
}
- if (songHeader->reverb & 0x80)
+ if (songHeader->reverb & SOUND_MODE_REVERB_SET)
m4aSoundMode(songHeader->reverb);
mplayInfo->ident = ID_NUMBER;
@@ -653,14 +630,9 @@ void m4aMPlayStop(struct MusicPlayerInfo *mplayInfo)
mplayInfo->ident++;
mplayInfo->status |= MUSICPLAYER_STATUS_PAUSE;
- i = mplayInfo->trackCount;
- track = mplayInfo->tracks;
-
- while (i > 0)
+ for (i = mplayInfo->trackCount, track = mplayInfo->tracks; i > 0; i--, track++)
{
TrackStop(mplayInfo, track);
- i--;
- track++;
}
mplayInfo->ident = ID_NUMBER;
@@ -704,10 +676,8 @@ void FadeOutBody(struct MusicPlayerInfo *mplayInfo)
if ((s16)(mplayInfo->fadeOV & mask) <= 0)
{
- i = mplayInfo->trackCount;
- track = mplayInfo->tracks;
- while (i > 0)
+ for (i = mplayInfo->trackCount, track = mplayInfo->tracks; i > 0; i--, track++)
{
u32 val;
@@ -719,9 +689,6 @@ void FadeOutBody(struct MusicPlayerInfo *mplayInfo)
if (!val)
track->flags = 0;
-
- i--;
- track++;
}
if (mplayInfo->fadeOV & TEMPORARY_FADE)
@@ -734,10 +701,7 @@ void FadeOutBody(struct MusicPlayerInfo *mplayInfo)
}
}
- i = mplayInfo->trackCount;
- track = mplayInfo->tracks;
-
- while (i > 0)
+ for (i = mplayInfo->trackCount, track = mplayInfo->tracks; i > 0; i--, track++)
{
if (track->flags & MPT_FLG_EXIST)
{
@@ -746,9 +710,6 @@ void FadeOutBody(struct MusicPlayerInfo *mplayInfo)
track->volX = (fadeOV >> FADE_VOL_SHIFT);
track->flags |= MPT_FLG_VOLCHG;
}
-
- i--;
- track++;
}
}
@@ -756,7 +717,7 @@ void TrkVolPitSet(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *tr
{
if (track->flags & MPT_FLG_VOLSET)
{
- s32 x;
+ u32 x;
s32 y;
x = (u32)(track->vol * track->volX) >> 5;
diff --git a/src/m4a_1.s b/src/m4a_1.s
index cab4ed174..eace09b05 100644
--- a/src/m4a_1.s
+++ b/src/m4a_1.s
@@ -22,13 +22,13 @@ SoundMain:
ldr r0, lt_SOUND_INFO_PTR
ldr r0, [r0]
ldr r2, lt_ID_NUMBER
- ldr r3, [r0, o_SoundInfo_ident]
+ ldr r3, [r0, #o_SoundInfo_ident]
cmp r2, r3
beq SoundMain_1
bx lr @ Exit the function if ident doesn't match ID_NUMBER.
SoundMain_1:
adds r3, 1
- str r3, [r0, o_SoundInfo_ident]
+ str r3, [r0, #o_SoundInfo_ident]
push {r4-r7,lr}
mov r1, r8
mov r2, r9
@@ -36,7 +36,7 @@ SoundMain_1:
mov r4, r11
push {r0-r4}
sub sp, 0x18
- ldrb r1, [r0, o_SoundInfo_maxLines]
+ ldrb r1, [r0, #o_SoundInfo_maxLines]
cmp r1, 0 @ if maxLines is 0, there is no maximum
beq SoundMain_3
ldr r2, lt_REG_VCOUNT
@@ -48,24 +48,24 @@ SoundMain_2:
adds r1, r2
SoundMain_3:
str r1, [sp, 0x14]
- ldr r3, [r0, o_SoundInfo_func]
+ ldr r3, [r0, #o_SoundInfo_func]
cmp r3, 0
beq SoundMain_4
- ldr r0, [r0, o_SoundInfo_intp]
+ ldr r0, [r0, #o_SoundInfo_intp]
bl _081DD25E
ldr r0, [sp, 0x18]
SoundMain_4:
- ldr r3, [r0, o_SoundInfo_CgbSound]
+ ldr r3, [r0, #o_SoundInfo_CgbSound]
bl _081DD25E
ldr r0, [sp, 0x18]
- ldr r3, [r0, o_SoundInfo_pcmSamplesPerVBlank]
+ ldr r3, [r0, #o_SoundInfo_pcmSamplesPerVBlank]
mov r8, r3
ldr r5, lt_o_SoundInfo_pcmBuffer
adds r5, r0
- ldrb r4, [r0, o_SoundInfo_pcmDmaCounter]
+ ldrb r4, [r0, #o_SoundInfo_pcmDmaCounter]
subs r7, r4, 1
bls SoundMain_5
- ldrb r1, [r0, o_SoundInfo_pcmDmaPeriod]
+ ldrb r1, [r0, #o_SoundInfo_pcmDmaPeriod]
subs r1, r7
mov r2, r8
muls r2, r1
@@ -87,7 +87,7 @@ lt_PCM_DMA_BUF_SIZE: .word PCM_DMA_BUF_SIZE
thumb_func_start SoundMainRAM
SoundMainRAM:
- ldrb r3, [r0, o_SoundInfo_reverb]
+ ldrb r3, [r0, #o_SoundInfo_reverb]
cmp r3, 0
beq SoundMainRAM_NoReverb
adr r1, SoundMainRAM_Reverb
@@ -95,7 +95,7 @@ SoundMainRAM:
.arm
SoundMainRAM_Reverb:
cmp r4, 0x2
- addeq r7, r0, o_SoundInfo_pcmBuffer
+ addeq r7, r0, #o_SoundInfo_pcmBuffer
addne r7, r5, r8
mov r4, r8
_081DCEC4:
@@ -145,14 +145,14 @@ SoundMainRAM_NoReverb_Loop:
bgt SoundMainRAM_NoReverb_Loop
_081DCF36:
ldr r4, [sp, 0x18]
- ldr r0, [r4, o_SoundInfo_divFreq]
+ ldr r0, [r4, #o_SoundInfo_divFreq]
mov r12, r0
- ldrb r0, [r4, o_SoundInfo_maxChans]
- adds r4, o_SoundInfo_chans
+ ldrb r0, [r4, #o_SoundInfo_maxChans]
+ adds r4, #o_SoundInfo_chans
SoundMainRAM_ChanLoop:
str r0, [sp, 0x4]
- ldr r3, [r4, o_SoundChannel_wav]
+ ldr r3, [r4, #o_SoundChannel_wav]
ldr r0, [sp, 0x14]
cmp r0, 0
beq _081DCF60
@@ -169,7 +169,7 @@ _081DCF54:
.pool
_081DCF60:
- ldrb r6, [r4, o_SoundChannel_status]
+ ldrb r6, [r4, #o_SoundChannel_status]
movs r0, 0xC7
tst r0, r6
bne _081DCF6A
@@ -182,99 +182,99 @@ _081DCF6A:
tst r0, r6
bne _081DCFB0
movs r6, 0x3
- strb r6, [r4, o_SoundChannel_status]
+ strb r6, [r4, #o_SoundChannel_status]
adds r0, r3, 0
adds r0, 0x10
- ldr r1, [r4, o_SoundChannel_ct]
+ ldr r1, [r4, #o_SoundChannel_ct]
adds r0, r1
- str r0, [r4, o_SoundChannel_cp]
+ str r0, [r4, #o_SoundChannel_cp]
ldr r0, [r3, 0xC]
subs r0, r1
- str r0, [r4, o_SoundChannel_ct]
+ str r0, [r4, #o_SoundChannel_ct]
movs r5, 0
- strb r5, [r4, o_SoundChannel_ev]
- str r5, [r4, o_SoundChannel_fw]
+ strb r5, [r4, #o_SoundChannel_ev]
+ str r5, [r4, #o_SoundChannel_fw]
ldrb r2, [r3, 0x3]
movs r0, 0xC0
tst r0, r2
beq _081DCFF8
movs r0, 0x10
orrs r6, r0
- strb r6, [r4, o_SoundChannel_status]
+ strb r6, [r4, #o_SoundChannel_status]
b _081DCFF8
_081DCFA0:
- ldrb r5, [r4, o_SoundChannel_ev]
+ ldrb r5, [r4, #o_SoundChannel_ev]
movs r0, 0x4
tst r0, r6
beq _081DCFB6
- ldrb r0, [r4, o_SoundChannel_iel]
+ ldrb r0, [r4, #o_SoundChannel_iel]
subs r0, 1
- strb r0, [r4, o_SoundChannel_iel]
+ strb r0, [r4, #o_SoundChannel_iel]
bhi _081DD006
_081DCFB0:
movs r0, 0
- strb r0, [r4, o_SoundChannel_status]
+ strb r0, [r4, #o_SoundChannel_status]
b _081DD240
_081DCFB6:
movs r0, 0x40
tst r0, r6
beq _081DCFD6
- ldrb r0, [r4, o_SoundChannel_release]
+ ldrb r0, [r4, #o_SoundChannel_release]
muls r5, r0
lsrs r5, 8
- ldrb r0, [r4, o_SoundChannel_iev]
+ ldrb r0, [r4, #o_SoundChannel_iev]
cmp r5, r0
bhi _081DD006
_081DCFC8:
- ldrb r5, [r4, o_SoundChannel_iev]
+ ldrb r5, [r4, #o_SoundChannel_iev]
cmp r5, 0
beq _081DCFB0
movs r0, 0x4
orrs r6, r0
- strb r6, [r4, o_SoundChannel_status]
+ strb r6, [r4, #o_SoundChannel_status]
b _081DD006
_081DCFD6:
movs r2, 0x3
ands r2, r6
cmp r2, 0x2
bne _081DCFF4
- ldrb r0, [r4, o_SoundChannel_decay]
+ ldrb r0, [r4, #o_SoundChannel_decay]
muls r5, r0
lsrs r5, 8
- ldrb r0, [r4, o_SoundChannel_sustain]
+ ldrb r0, [r4, #o_SoundChannel_sustain]
cmp r5, r0
bhi _081DD006
adds r5, r0, 0
beq _081DCFC8
subs r6, 0x1
- strb r6, [r4, o_SoundChannel_status]
+ strb r6, [r4, #o_SoundChannel_status]
b _081DD006
_081DCFF4:
cmp r2, 0x3
bne _081DD006
_081DCFF8:
- ldrb r0, [r4, o_SoundChannel_attack]
+ ldrb r0, [r4, #o_SoundChannel_attack]
adds r5, r0
cmp r5, 0xFF
bcc _081DD006
movs r5, 0xFF
subs r6, 0x1
- strb r6, [r4, o_SoundChannel_status]
+ strb r6, [r4, #o_SoundChannel_status]
_081DD006:
- strb r5, [r4, o_SoundChannel_ev]
+ strb r5, [r4, #o_SoundChannel_ev]
ldr r0, [sp, 0x18]
- ldrb r0, [r0, o_SoundChannel_release]
+ ldrb r0, [r0, #o_SoundChannel_release]
adds r0, 0x1
muls r0, r5
lsrs r5, r0, 4
- ldrb r0, [r4, o_SoundChannel_rightVolume]
+ ldrb r0, [r4, #o_SoundChannel_rightVolume]
muls r0, r5
lsrs r0, 8
- strb r0, [r4, o_SoundChannel_er]
- ldrb r0, [r4, o_SoundChannel_leftVolume]
+ strb r0, [r4, #o_SoundChannel_er]
+ ldrb r0, [r4, #o_SoundChannel_leftVolume]
muls r0, r5
lsrs r0, 8
- strb r0, [r4, o_SoundChannel_el]
+ strb r0, [r4, #o_SoundChannel_el]
movs r0, 0x10
ands r0, r6
str r0, [sp, 0x10]
@@ -289,17 +289,17 @@ _081DD006:
str r0, [sp, 0x10]
_081DD03A:
ldr r5, [sp, 0x8]
- ldr r2, [r4, o_SoundChannel_ct]
- ldr r3, [r4, o_SoundChannel_cp]
+ ldr r2, [r4, #o_SoundChannel_ct]
+ ldr r3, [r4, #o_SoundChannel_cp]
adr r0, _081DD044
bx r0
.arm
_081DD044:
str r8, [sp]
- ldr r9, [r4, o_SoundChannel_fw]
- ldrb r10, [r4, o_SoundChannel_er]
- ldrb r11, [r4, o_SoundChannel_el]
- ldrb r0, [r4, o_SoundChannel_type]
+ ldr r9, [r4, #o_SoundChannel_fw]
+ ldrb r10, [r4, #o_SoundChannel_er]
+ ldrb r11, [r4, #o_SoundChannel_el]
+ ldrb r0, [r4, #o_SoundChannel_type]
tst r0, 0x30
beq _081DD068
bl sub_82DF49C
@@ -307,7 +307,7 @@ _081DD044:
_081DD068:
mov r10, r10, lsl 16
mov r11, r11, lsl 16
- ldrb r0, [r4, o_SoundChannel_type]
+ ldrb r0, [r4, #o_SoundChannel_type]
tst r0, 0x8
beq _081DD19C
_081DD07C:
@@ -383,7 +383,7 @@ _081DD164:
ldrne r3, [sp, 0xC]
bne _081DD118
_081DD174:
- strb r2, [r4, o_SoundChannel_status]
+ strb r2, [r4, #o_SoundChannel_status]
mov r0, r5, lsr 30
bic r5, r5, 0xC0000000
rsb r0, r0, 0x3
@@ -395,7 +395,7 @@ _081DD174:
b _081DD234
_081DD19C:
push {r4,r12}
- ldr r1, [r4, o_SoundChannel_freq]
+ ldr r1, [r4, #o_SoundChannel_freq]
mul r4, r12, r1
ldrsb r0, [r3]
ldrsb r1, [r3, 0x1]!
@@ -434,10 +434,10 @@ _081DD208:
sub r3, r3, 0x1
pop {r4,r12}
_081DD228:
- str r9, [r4, o_SoundChannel_fw]
+ str r9, [r4, #o_SoundChannel_fw]
_081DD22C:
- str r2, [r4, o_SoundChannel_ct]
- str r3, [r4, o_SoundChannel_cp]
+ str r2, [r4, #o_SoundChannel_ct]
+ str r3, [r4, #o_SoundChannel_cp]
_081DD234:
ldr r8, [sp]
add r0, pc, 0x1
@@ -467,33 +467,33 @@ _081DD25E:
arm_func_start sub_82DF49C
sub_82DF49C:
- ldr r6, [r4, o_SoundChannel_wav]
- ldrb r0, [r4, o_SoundChannel_status]
+ ldr r6, [r4, #o_SoundChannel_wav]
+ ldrb r0, [r4, #o_SoundChannel_status]
tst r0, 0x20
bne _081DD2B4
orr r0, r0, 0x20
- strb r0, [r4, o_SoundChannel_status]
- ldrb r0, [r4, o_SoundChannel_type]
+ strb r0, [r4, #o_SoundChannel_status]
+ ldrb r0, [r4, #o_SoundChannel_type]
tst r0, 0x10
beq _081DD29C
ldr r1, [r6, 0xC]
add r1, r1, r6, lsl 1
add r1, r1, 0x20
sub r3, r1, r3
- str r3, [r4, o_SoundChannel_cp]
+ str r3, [r4, #o_SoundChannel_cp]
_081DD29C:
ldrh r0, [r6]
cmp r0, 0
beq _081DD2B4
sub r3, r3, r6
sub r3, r3, 0x10
- str r3, [r4, o_SoundChannel_cp]
+ str r3, [r4, #o_SoundChannel_cp]
_081DD2B4:
push {r8,r12,lr}
mov r10, r10, lsl 16
mov r11, r11, lsl 16
- ldr r1, [r4, o_SoundChannel_freq]
- ldrb r0, [r4, o_SoundChannel_type]
+ ldr r1, [r4, #o_SoundChannel_freq]
+ ldrb r0, [r4, #o_SoundChannel_type]
tst r0, 0x8
movne r8, 0x800000
muleq r8, r12, r1
@@ -501,8 +501,8 @@ _081DD2B4:
cmp r0, 0
beq _081DD468
mov r0, 0xFF000000
- str r0, [r4, o_SoundChannel_xpi]
- ldrb r0, [r4, o_SoundChannel_type]
+ str r0, [r4, #o_SoundChannel_xpi]
+ ldrb r0, [r4, #o_SoundChannel_type]
tst r0, 0x10
bne _081DD3C0
bl sub_82DF758
@@ -555,7 +555,7 @@ _081DD398:
ldr r0, [sp, 0x1C]
cmp r0, 0
beq _081DD4F4
- ldr r3, [r4, o_SoundChannel_wav]
+ ldr r3, [r4, #o_SoundChannel_wav]
ldr r3, [r3, 0x8]
rsb lr, r2, 0
_081DD3B0:
@@ -612,7 +612,7 @@ _081DD440:
add r3, r3, 0x2
b _081DD4F0
_081DD468:
- ldrb r0, [r4, o_SoundChannel_type]
+ ldrb r0, [r4, #o_SoundChannel_type]
tst r0, 0x10
beq _081DD4F0
ldrsb r0, [r3, -0x1]!
@@ -653,7 +653,7 @@ _081DD4F0:
pop {r8,r12,pc}
_081DD4F4:
mov r2, 0
- strb r2, [r4, o_SoundChannel_status]
+ strb r2, [r4, #o_SoundChannel_status]
mov r0, r5, lsr 30
bic r5, r5, 0xC0000000
rsb r0, r0, 0x3
@@ -669,13 +669,13 @@ _081DD4F4:
sub_82DF758:
push {r0,r2,r5-r7,lr}
mov r0, r3, lsr 6
- ldr r1, [r4, o_SoundChannel_xpi]
+ ldr r1, [r4, #o_SoundChannel_xpi]
cmp r0, r1
beq _081DD594
- str r0, [r4, o_SoundChannel_xpi]
+ str r0, [r4, #o_SoundChannel_xpi]
mov r1, 0x21
mul r2, r1, r0
- ldr r1, [r4, o_SoundChannel_wav]
+ ldr r1, [r4, #o_SoundChannel_wav]
add r2, r2, r1
add r2, r2, 0x10
ldr r5, =gUnknown_03001300
@@ -749,7 +749,7 @@ _081DD5E2:
ply_fine:
push {r4,r5,lr}
adds r5, r1, 0
- ldr r4, [r5, o_MusicPlayerTrack_chan]
+ ldr r4, [r5, #o_MusicPlayerTrack_chan]
cmp r4, 0
beq ply_fine_done
ply_fine_loop:
@@ -830,7 +830,7 @@ _081DD64A:
ply_goto:
push {lr}
ply_goto_1:
- ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r1, #o_MusicPlayerTrack_cmdPtr]
ldrb r0, [r2, 0x3]
lsls r0, 8
ldrb r3, [r2, 0x2]
@@ -841,24 +841,24 @@ ply_goto_1:
lsls r0, 8
bl ldrb_r3_r2
orrs r0, r3
- str r0, [r1, o_MusicPlayerTrack_cmdPtr]
+ str r0, [r1, #o_MusicPlayerTrack_cmdPtr]
pop {r0}
bx r0
thumb_func_end ply_goto
thumb_func_start ply_patt
ply_patt:
- ldrb r2, [r1, o_MusicPlayerTrack_patternLevel]
+ ldrb r2, [r1, #o_MusicPlayerTrack_patternLevel]
cmp r2, 3
bhs ply_patt_done
lsls r2, 2
adds r3, r1, r2
- ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r1, #o_MusicPlayerTrack_cmdPtr]
adds r2, 0x4
- str r2, [r3, o_MusicPlayerTrack_patternStack]
- ldrb r2, [r1, o_MusicPlayerTrack_patternLevel]
+ str r2, [r3, #o_MusicPlayerTrack_patternStack]
+ ldrb r2, [r1, #o_MusicPlayerTrack_patternLevel]
adds r2, 1
- strb r2, [r1, o_MusicPlayerTrack_patternLevel]
+ strb r2, [r1, #o_MusicPlayerTrack_patternLevel]
b ply_goto
ply_patt_done:
b ply_fine
@@ -866,15 +866,15 @@ ply_patt_done:
thumb_func_start ply_pend
ply_pend:
- ldrb r2, [r1, o_MusicPlayerTrack_patternLevel]
+ ldrb r2, [r1, #o_MusicPlayerTrack_patternLevel]
cmp r2, 0
beq ply_pend_done
subs r2, 1
- strb r2, [r1, o_MusicPlayerTrack_patternLevel]
+ strb r2, [r1, #o_MusicPlayerTrack_patternLevel]
lsls r2, 2
adds r3, r1, r2
- ldr r2, [r3, o_MusicPlayerTrack_patternStack]
- str r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r3, #o_MusicPlayerTrack_patternStack]
+ str r2, [r1, #o_MusicPlayerTrack_cmdPtr]
ply_pend_done:
bx lr
thumb_func_end ply_pend
@@ -882,17 +882,17 @@ ply_pend_done:
thumb_func_start ply_rept
ply_rept:
push {lr}
- ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r1, #o_MusicPlayerTrack_cmdPtr]
ldrb r3, [r2]
cmp r3, 0
bne ply_rept_1
adds r2, 1
- str r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ str r2, [r1, #o_MusicPlayerTrack_cmdPtr]
b ply_goto_1
ply_rept_1:
- ldrb r3, [r1, o_MusicPlayerTrack_repN]
+ ldrb r3, [r1, #o_MusicPlayerTrack_repN]
adds r3, 1
- strb r3, [r1, o_MusicPlayerTrack_repN]
+ strb r3, [r1, #o_MusicPlayerTrack_repN]
mov r12, r3
bl ld_r3_tp_adr_i
cmp r12, r3
@@ -900,9 +900,9 @@ ply_rept_1:
b ply_goto_1
ply_rept_2:
movs r3, 0
- strb r3, [r1, o_MusicPlayerTrack_repN]
+ strb r3, [r1, #o_MusicPlayerTrack_repN]
adds r2, 5
- str r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ str r2, [r1, #o_MusicPlayerTrack_cmdPtr]
pop {r0}
bx r0
thumb_func_end ply_rept
@@ -911,7 +911,7 @@ ply_rept_2:
ply_prio:
mov r12, lr
bl ld_r3_tp_adr_i
- strb r3, [r1, o_MusicPlayerTrack_priority]
+ strb r3, [r1, #o_MusicPlayerTrack_priority]
bx r12
thumb_func_end ply_prio
@@ -920,11 +920,11 @@ ply_tempo:
mov r12, lr
bl ld_r3_tp_adr_i
lsls r3, 1
- strh r3, [r0, o_MusicPlayerInfo_tempoD]
- ldrh r2, [r0, o_MusicPlayerInfo_tempoU]
+ strh r3, [r0, #o_MusicPlayerInfo_tempoD]
+ ldrh r2, [r0, #o_MusicPlayerInfo_tempoU]
muls r3, r2
lsrs r3, 8
- strh r3, [r0, o_MusicPlayerInfo_tempoI]
+ strh r3, [r0, #o_MusicPlayerInfo_tempoI]
bx r12
thumb_func_end ply_tempo
@@ -932,35 +932,35 @@ ply_tempo:
ply_keysh:
mov r12, lr
bl ld_r3_tp_adr_i
- strb r3, [r1, o_MusicPlayerTrack_keyShift]
- ldrb r3, [r1, o_MusicPlayerTrack_flags]
+ strb r3, [r1, #o_MusicPlayerTrack_keyShift]
+ ldrb r3, [r1, #o_MusicPlayerTrack_flags]
movs r2, 0xC
orrs r3, r2
- strb r3, [r1, o_MusicPlayerTrack_flags]
+ strb r3, [r1, #o_MusicPlayerTrack_flags]
bx r12
thumb_func_end ply_keysh
thumb_func_start ply_voice
ply_voice:
mov r12, lr
- ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r1, #o_MusicPlayerTrack_cmdPtr]
ldrb r3, [r2]
adds r2, 1
- str r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ str r2, [r1, #o_MusicPlayerTrack_cmdPtr]
lsls r2, r3, 1
adds r2, r3
lsls r2, 2
- ldr r3, [r0, o_MusicPlayerInfo_tone]
+ ldr r3, [r0, #o_MusicPlayerInfo_tone]
adds r2, r3
ldr r3, [r2]
bl chk_adr_r2
- str r3, [r1, o_MusicPlayerTrack_ToneData_type]
+ str r3, [r1, #o_MusicPlayerTrack_ToneData_type]
ldr r3, [r2, 0x4]
bl chk_adr_r2
- str r3, [r1, o_MusicPlayerTrack_ToneData_wav]
+ str r3, [r1, #o_MusicPlayerTrack_ToneData_wav]
ldr r3, [r2, 0x8]
bl chk_adr_r2
- str r3, [r1, o_MusicPlayerTrack_ToneData_attack]
+ str r3, [r1, #o_MusicPlayerTrack_ToneData_attack]
bx r12
thumb_func_end ply_voice
@@ -968,11 +968,11 @@ ply_voice:
ply_vol:
mov r12, lr
bl ld_r3_tp_adr_i
- strb r3, [r1, o_MusicPlayerTrack_vol]
- ldrb r3, [r1, o_MusicPlayerTrack_flags]
+ strb r3, [r1, #o_MusicPlayerTrack_vol]
+ ldrb r3, [r1, #o_MusicPlayerTrack_flags]
movs r2, 0x3
orrs r3, r2
- strb r3, [r1, o_MusicPlayerTrack_flags]
+ strb r3, [r1, #o_MusicPlayerTrack_flags]
bx r12
thumb_func_end ply_vol
@@ -981,11 +981,11 @@ ply_pan:
mov r12, lr
bl ld_r3_tp_adr_i
subs r3, 0x40
- strb r3, [r1, o_MusicPlayerTrack_pan]
- ldrb r3, [r1, o_MusicPlayerTrack_flags]
+ strb r3, [r1, #o_MusicPlayerTrack_pan]
+ ldrb r3, [r1, #o_MusicPlayerTrack_flags]
movs r2, 0x3
orrs r3, r2
- strb r3, [r1, o_MusicPlayerTrack_flags]
+ strb r3, [r1, #o_MusicPlayerTrack_flags]
bx r12
thumb_func_end ply_pan
@@ -994,11 +994,11 @@ ply_bend:
mov r12, lr
bl ld_r3_tp_adr_i
subs r3, 0x40
- strb r3, [r1, o_MusicPlayerTrack_bend]
- ldrb r3, [r1, o_MusicPlayerTrack_flags]
+ strb r3, [r1, #o_MusicPlayerTrack_bend]
+ ldrb r3, [r1, #o_MusicPlayerTrack_flags]
movs r2, 0xC
orrs r3, r2
- strb r3, [r1, o_MusicPlayerTrack_flags]
+ strb r3, [r1, #o_MusicPlayerTrack_flags]
bx r12
thumb_func_end ply_bend
@@ -1006,11 +1006,11 @@ ply_bend:
ply_bendr:
mov r12, lr
bl ld_r3_tp_adr_i
- strb r3, [r1, o_MusicPlayerTrack_bendRange]
- ldrb r3, [r1, o_MusicPlayerTrack_flags]
+ strb r3, [r1, #o_MusicPlayerTrack_bendRange]
+ ldrb r3, [r1, #o_MusicPlayerTrack_flags]
movs r2, 0xC
orrs r3, r2
- strb r3, [r1, o_MusicPlayerTrack_flags]
+ strb r3, [r1, #o_MusicPlayerTrack_flags]
bx r12
thumb_func_end ply_bendr
@@ -1018,7 +1018,7 @@ ply_bendr:
ply_lfodl:
mov r12, lr
bl ld_r3_tp_adr_i
- strb r3, [r1, o_MusicPlayerTrack_lfoDelay]
+ strb r3, [r1, #o_MusicPlayerTrack_lfoDelay]
bx r12
thumb_func_end ply_lfodl
@@ -1026,14 +1026,14 @@ ply_lfodl:
ply_modt:
mov r12, lr
bl ld_r3_tp_adr_i
- ldrb r0, [r1, o_MusicPlayerTrack_modT]
+ ldrb r0, [r1, #o_MusicPlayerTrack_modT]
cmp r0, r3
beq _081DD7AA
- strb r3, [r1, o_MusicPlayerTrack_modT]
- ldrb r3, [r1, o_MusicPlayerTrack_flags]
+ strb r3, [r1, #o_MusicPlayerTrack_modT]
+ ldrb r3, [r1, #o_MusicPlayerTrack_flags]
movs r2, 0xF
orrs r3, r2
- strb r3, [r1, o_MusicPlayerTrack_flags]
+ strb r3, [r1, #o_MusicPlayerTrack_flags]
_081DD7AA:
bx r12
thumb_func_end ply_modt
@@ -1043,18 +1043,18 @@ ply_tune:
mov r12, lr
bl ld_r3_tp_adr_i
subs r3, 0x40
- strb r3, [r1, o_MusicPlayerTrack_tune]
- ldrb r3, [r1, o_MusicPlayerTrack_flags]
+ strb r3, [r1, #o_MusicPlayerTrack_tune]
+ ldrb r3, [r1, #o_MusicPlayerTrack_flags]
movs r2, 0xC
orrs r3, r2
- strb r3, [r1, o_MusicPlayerTrack_flags]
+ strb r3, [r1, #o_MusicPlayerTrack_flags]
bx r12
thumb_func_end ply_tune
thumb_func_start ply_port
ply_port:
mov r12, lr
- ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r1, #o_MusicPlayerTrack_cmdPtr]
ldrb r3, [r2]
adds r2, 1
ldr r0, =REG_SOUND1CNT_L @ sound register base address
@@ -1072,20 +1072,20 @@ m4aSoundVSync:
@ Exit the function if ident is not ID_NUMBER or ID_NUMBER+1.
ldr r2, lt2_ID_NUMBER
- ldr r3, [r0, o_SoundInfo_ident]
+ ldr r3, [r0, #o_SoundInfo_ident]
subs r3, r2
cmp r3, 1
bhi m4aSoundVSync_Done
@ Decrement the PCM DMA counter. If it reaches 0, we need to do a DMA.
- ldrb r1, [r0, o_SoundInfo_pcmDmaCounter]
+ ldrb r1, [r0, #o_SoundInfo_pcmDmaCounter]
subs r1, 1
- strb r1, [r0, o_SoundInfo_pcmDmaCounter]
+ strb r1, [r0, #o_SoundInfo_pcmDmaCounter]
bgt m4aSoundVSync_Done
@ Reload the PCM DMA counter.
- ldrb r1, [r0, o_SoundInfo_pcmDmaPeriod]
- strb r1, [r0, o_SoundInfo_pcmDmaCounter]
+ ldrb r1, [r0, #o_SoundInfo_pcmDmaPeriod]
+ strb r1, [r0, #o_SoundInfo_pcmDmaCounter]
ldr r2, =REG_DMA1
@@ -1127,18 +1127,18 @@ m4aSoundVSync_Done:
thumb_func_start MPlayMain
MPlayMain:
ldr r2, lt2_ID_NUMBER
- ldr r3, [r0, o_MusicPlayerInfo_ident]
+ ldr r3, [r0, #o_MusicPlayerInfo_ident]
cmp r2, r3
beq _081DD82E
bx lr
_081DD82E:
adds r3, 0x1
- str r3, [r0, o_MusicPlayerInfo_ident]
+ str r3, [r0, #o_MusicPlayerInfo_ident]
push {r0,lr}
- ldr r3, [r0, o_MusicPlayerInfo_func]
+ ldr r3, [r0, #o_MusicPlayerInfo_func]
cmp r3, 0
beq _081DD840
- ldr r0, [r0, o_MusicPlayerInfo_intp]
+ ldr r0, [r0, #o_MusicPlayerInfo_intp]
bl call_r3
_081DD840:
pop {r0}
@@ -1149,7 +1149,7 @@ _081DD840:
mov r7, r11
push {r4-r7}
adds r7, r0, 0
- ldr r0, [r7, o_MusicPlayerInfo_status]
+ ldr r0, [r7, #o_MusicPlayerInfo_status]
cmp r0, 0
bge _081DD858
b _081DDA6C
@@ -1159,18 +1159,18 @@ _081DD858:
mov r8, r0
adds r0, r7, 0
bl FadeOutBody
- ldr r0, [r7, o_MusicPlayerInfo_status]
+ ldr r0, [r7, #o_MusicPlayerInfo_status]
cmp r0, 0
bge _081DD86C
b _081DDA6C
_081DD86C:
- ldrh r0, [r7, o_MusicPlayerInfo_tempoC]
- ldrh r1, [r7, o_MusicPlayerInfo_tempoI]
+ ldrh r0, [r7, #o_MusicPlayerInfo_tempoC]
+ ldrh r1, [r7, #o_MusicPlayerInfo_tempoI]
adds r0, r1
b _081DD9BC
_081DD874:
- ldrb r6, [r7, o_MusicPlayerInfo_trackCount]
- ldr r5, [r7, o_MusicPlayerInfo_tracks]
+ ldrb r6, [r7, #o_MusicPlayerInfo_trackCount]
+ ldr r5, [r7, #o_MusicPlayerInfo_tracks]
movs r3, 0x1
movs r4, 0
_081DD87C:
@@ -1183,7 +1183,7 @@ _081DD886:
mov r10, r3
orrs r4, r3
mov r11, r4
- ldr r4, [r5, o_MusicPlayerTrack_chan]
+ ldr r4, [r5, #o_MusicPlayerTrack_chan]
cmp r4, 0
beq _081DD8BA
_081DD892:
@@ -1209,7 +1209,7 @@ _081DD8B4:
cmp r4, 0
bne _081DD892
_081DD8BA:
- ldrb r3, [r5, o_MusicPlayerTrack_flags]
+ ldrb r3, [r5, #o_MusicPlayerTrack_flags]
movs r0, 0x40
tst r0, r3
beq _081DD938
@@ -1218,33 +1218,33 @@ _081DD8BA:
movs r0, 0x80
strb r0, [r5]
movs r0, 0x2
- strb r0, [r5, o_MusicPlayerTrack_bendRange]
+ strb r0, [r5, #o_MusicPlayerTrack_bendRange]
movs r0, 0x40
- strb r0, [r5, o_MusicPlayerTrack_volX]
+ strb r0, [r5, #o_MusicPlayerTrack_volX]
movs r0, 0x16
- strb r0, [r5, o_MusicPlayerTrack_lfoSpeed]
+ strb r0, [r5, #o_MusicPlayerTrack_lfoSpeed]
movs r0, 0x1
adds r1, r5, 0x6
- strb r0, [r1, o_MusicPlayerTrack_ToneData_type - 0x6]
+ strb r0, [r1, #o_MusicPlayerTrack_ToneData_type - 0x6]
b _081DD938
_081DD8E0:
- ldr r2, [r5, o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r5, #o_MusicPlayerTrack_cmdPtr]
ldrb r1, [r2]
cmp r1, 0x80
bhs _081DD8EC
- ldrb r1, [r5, o_MusicPlayerTrack_runningStatus]
+ ldrb r1, [r5, #o_MusicPlayerTrack_runningStatus]
b _081DD8F6
_081DD8EC:
adds r2, 0x1
- str r2, [r5, o_MusicPlayerTrack_cmdPtr]
+ str r2, [r5, #o_MusicPlayerTrack_cmdPtr]
cmp r1, 0xBD
bcc _081DD8F6
- strb r1, [r5, o_MusicPlayerTrack_runningStatus]
+ strb r1, [r5, #o_MusicPlayerTrack_runningStatus]
_081DD8F6:
cmp r1, 0xCF
bcc _081DD90C
mov r0, r8
- ldr r3, [r0, o_SoundInfo_plynote]
+ ldr r3, [r0, #o_SoundInfo_plynote]
adds r0, r1, 0
subs r0, 0xCF
adds r1, r7, 0
@@ -1256,15 +1256,15 @@ _081DD90C:
bls _081DD92E
adds r0, r1, 0
subs r0, 0xB1
- strb r0, [r7, o_MusicPlayerInfo_cmd]
+ strb r0, [r7, #o_MusicPlayerInfo_cmd]
mov r3, r8
- ldr r3, [r3, o_SoundInfo_MPlayJumpTable]
+ ldr r3, [r3, #o_SoundInfo_MPlayJumpTable]
lsls r0, 2
ldr r3, [r3, r0]
adds r0, r7, 0
adds r1, r5, 0
bl call_r3
- ldrb r0, [r5, o_MusicPlayerTrack_flags]
+ ldrb r0, [r5, #o_MusicPlayerTrack_flags]
cmp r0, 0
beq _081DD994
b _081DD938
@@ -1273,29 +1273,29 @@ _081DD92E:
subs r1, 0x80
adds r1, r0
ldrb r0, [r1]
- strb r0, [r5, o_MusicPlayerTrack_wait]
+ strb r0, [r5, #o_MusicPlayerTrack_wait]
_081DD938:
- ldrb r0, [r5, o_MusicPlayerTrack_wait]
+ ldrb r0, [r5, #o_MusicPlayerTrack_wait]
cmp r0, 0
beq _081DD8E0
subs r0, 0x1
- strb r0, [r5, o_MusicPlayerTrack_wait]
- ldrb r1, [r5, o_MusicPlayerTrack_lfoSpeed]
+ strb r0, [r5, #o_MusicPlayerTrack_wait]
+ ldrb r1, [r5, #o_MusicPlayerTrack_lfoSpeed]
cmp r1, 0
beq _081DD994
- ldrb r0, [r5, o_MusicPlayerTrack_mod]
+ ldrb r0, [r5, #o_MusicPlayerTrack_mod]
cmp r0, 0
beq _081DD994
- ldrb r0, [r5, o_MusicPlayerTrack_lfoDelayC]
+ ldrb r0, [r5, #o_MusicPlayerTrack_lfoDelayC]
cmp r0, 0
beq _081DD95A
subs r0, 0x1
- strb r0, [r5, o_MusicPlayerTrack_lfoDelayC]
+ strb r0, [r5, #o_MusicPlayerTrack_lfoDelayC]
b _081DD994
_081DD95A:
- ldrb r0, [r5, o_MusicPlayerTrack_lfoSpeedC]
+ ldrb r0, [r5, #o_MusicPlayerTrack_lfoSpeedC]
adds r0, r1
- strb r0, [r5, o_MusicPlayerTrack_lfoSpeedC]
+ strb r0, [r5, #o_MusicPlayerTrack_lfoSpeedC]
adds r1, r0, 0
subs r0, 0x40
lsls r0, 24
@@ -1307,16 +1307,16 @@ _081DD96E:
movs r0, 0x80
subs r2, r0, r1
_081DD972:
- ldrb r0, [r5, o_MusicPlayerTrack_mod]
+ ldrb r0, [r5, #o_MusicPlayerTrack_mod]
muls r0, r2
asrs r2, r0, 6
- ldrb r0, [r5, o_MusicPlayerTrack_modM]
+ ldrb r0, [r5, #o_MusicPlayerTrack_modM]
eors r0, r2
lsls r0, 24
beq _081DD994
- strb r2, [r5, o_MusicPlayerTrack_modM]
+ strb r2, [r5, #o_MusicPlayerTrack_modM]
ldrb r0, [r5]
- ldrb r1, [r5, o_MusicPlayerTrack_modT]
+ ldrb r1, [r5, #o_MusicPlayerTrack_modT]
cmp r1, 0
bne _081DD98E
movs r1, 0xC
@@ -1325,7 +1325,7 @@ _081DD98E:
movs r1, 0x3
_081DD990:
orrs r0, r1
- strb r0, [r5, o_MusicPlayerTrack_flags]
+ strb r0, [r5, #o_MusicPlayerTrack_flags]
_081DD994:
mov r3, r10
mov r4, r11
@@ -1337,29 +1337,29 @@ _081DD998:
lsls r3, 1
b _081DD87C
_081DD9A4:
- ldr r0, [r7, o_MusicPlayerInfo_clock]
+ ldr r0, [r7, #o_MusicPlayerInfo_clock]
adds r0, 0x1
- str r0, [r7, o_MusicPlayerInfo_clock]
+ str r0, [r7, #o_MusicPlayerInfo_clock]
cmp r4, 0
bne _081DD9B6
movs r0, 0x80
lsls r0, 24
- str r0, [r7, o_MusicPlayerInfo_status]
+ str r0, [r7, #o_MusicPlayerInfo_status]
b _081DDA6C
_081DD9B6:
- str r4, [r7, o_MusicPlayerInfo_status]
- ldrh r0, [r7, o_MusicPlayerInfo_tempoC]
+ str r4, [r7, #o_MusicPlayerInfo_status]
+ ldrh r0, [r7, #o_MusicPlayerInfo_tempoC]
subs r0, 0x96
_081DD9BC:
- strh r0, [r7, o_MusicPlayerInfo_tempoC]
+ strh r0, [r7, #o_MusicPlayerInfo_tempoC]
cmp r0, 0x96
bcc _081DD9C4
b _081DD874
_081DD9C4:
- ldrb r2, [r7, o_MusicPlayerInfo_trackCount]
- ldr r5, [r7, o_MusicPlayerInfo_tracks]
+ ldrb r2, [r7, #o_MusicPlayerInfo_trackCount]
+ ldr r5, [r7, #o_MusicPlayerInfo_tracks]
_081DD9C8:
- ldrb r0, [r5, o_MusicPlayerTrack_flags]
+ ldrb r0, [r5, #o_MusicPlayerTrack_flags]
movs r1, 0x80
tst r1, r0
beq _081DDA62
@@ -1370,11 +1370,11 @@ _081DD9C8:
adds r0, r7, 0
adds r1, r5, 0
bl TrkVolPitSet
- ldr r4, [r5, o_MusicPlayerTrack_chan]
+ ldr r4, [r5, #o_MusicPlayerTrack_chan]
cmp r4, 0
beq _081DDA58
_081DD9E6:
- ldrb r1, [r4, o_SoundChannel_status]
+ ldrb r1, [r4, #o_SoundChannel_status]
movs r0, 0xC7
tst r0, r1
bne _081DD9F6
@@ -1382,10 +1382,10 @@ _081DD9E6:
bl ClearChain
b _081DDA52
_081DD9F6:
- ldrb r0, [r4, o_SoundChannel_type]
+ ldrb r0, [r4, #o_SoundChannel_type]
movs r6, 0x7
ands r6, r0
- ldrb r3, [r5, o_MusicPlayerTrack_flags]
+ ldrb r3, [r5, #o_MusicPlayerTrack_flags]
movs r0, 0x3
tst r0, r3
beq _081DDA14
@@ -1397,11 +1397,11 @@ _081DD9F6:
orrs r0, r1
strb r0, [r4, o_CgbChannel_mo]
_081DDA14:
- ldrb r3, [r5, o_MusicPlayerTrack_flags]
+ ldrb r3, [r5, #o_MusicPlayerTrack_flags]
movs r0, 0xC
tst r0, r3
beq _081DDA52
- ldrb r1, [r4, o_SoundChannel_ky]
+ ldrb r1, [r4, #o_SoundChannel_ky]
movs r0, 0x8
ldrsb r0, [r5, r0]
adds r2, r1, r0
@@ -1411,9 +1411,9 @@ _081DDA28:
cmp r6, 0
beq _081DDA46
mov r0, r8
- ldr r3, [r0, o_SoundInfo_MidiKeyToCgbFreq]
+ ldr r3, [r0, #o_SoundInfo_MidiKeyToCgbFreq]
adds r1, r2, 0
- ldrb r2, [r5, o_MusicPlayerTrack_pitM]
+ ldrb r2, [r5, #o_MusicPlayerTrack_pitM]
adds r0, r6, 0
bl call_r3
str r0, [r4, o_CgbChannel_fr]
@@ -1424,19 +1424,19 @@ _081DDA28:
b _081DDA52
_081DDA46:
adds r1, r2, 0
- ldrb r2, [r5, o_MusicPlayerTrack_pitM]
- ldr r0, [r4, o_SoundChannel_wav]
+ ldrb r2, [r5, #o_MusicPlayerTrack_pitM]
+ ldr r0, [r4, #o_SoundChannel_wav]
bl MidiKeyToFreq
- str r0, [r4, o_SoundChannel_freq]
+ str r0, [r4, #o_SoundChannel_freq]
_081DDA52:
- ldr r4, [r4, o_SoundChannel_np]
+ ldr r4, [r4, #o_SoundChannel_np]
cmp r4, 0
bne _081DD9E6
_081DDA58:
- ldrb r0, [r5, o_MusicPlayerTrack_flags]
+ ldrb r0, [r5, #o_MusicPlayerTrack_flags]
movs r1, 0xF0
ands r0, r1
- strb r0, [r5, o_MusicPlayerTrack_flags]
+ strb r0, [r5, #o_MusicPlayerTrack_flags]
mov r2, r9
_081DDA62:
subs r2, 0x1
@@ -1446,7 +1446,7 @@ _081DDA62:
bgt _081DD9C8
_081DDA6C:
ldr r0, lt2_ID_NUMBER
- str r0, [r7, o_MusicPlayerInfo_ident]
+ str r0, [r7, #o_MusicPlayerInfo_ident]
pop {r0-r7}
mov r8, r0
mov r9, r1
@@ -1467,35 +1467,35 @@ lt2_ID_NUMBER: .word ID_NUMBER
TrackStop:
push {r4-r6,lr}
adds r5, r1, 0
- ldrb r1, [r5, o_MusicPlayerTrack_flags]
+ ldrb r1, [r5, #o_MusicPlayerTrack_flags]
movs r0, 0x80
tst r0, r1
beq TrackStop_Done
- ldr r4, [r5, o_MusicPlayerTrack_chan]
+ ldr r4, [r5, #o_MusicPlayerTrack_chan]
cmp r4, 0
beq TrackStop_3
movs r6, 0
TrackStop_Loop:
- ldrb r0, [r4, o_SoundChannel_status]
+ ldrb r0, [r4, #o_SoundChannel_status]
cmp r0, 0
beq TrackStop_2
- ldrb r0, [r4, o_SoundChannel_type]
+ ldrb r0, [r4, #o_SoundChannel_type]
movs r3, 0x7
ands r0, r3
beq TrackStop_1
ldr r3, =SOUND_INFO_PTR
ldr r3, [r3]
- ldr r3, [r3, o_SoundInfo_CgbOscOff]
+ ldr r3, [r3, #o_SoundInfo_CgbOscOff]
bl call_r3
TrackStop_1:
- strb r6, [r4, o_SoundChannel_status]
+ strb r6, [r4, #o_SoundChannel_status]
TrackStop_2:
- str r6, [r4, o_SoundChannel_track]
- ldr r4, [r4, o_SoundChannel_np]
+ str r6, [r4, #o_SoundChannel_track]
+ ldr r4, [r4, #o_SoundChannel_np]
cmp r4, 0
bne TrackStop_Loop
TrackStop_3:
- str r4, [r5, o_MusicPlayerTrack_chan]
+ str r4, [r5, #o_MusicPlayerTrack_chan]
TrackStop_Done:
pop {r4-r6}
pop {r0}
@@ -1550,41 +1550,41 @@ ply_note:
ldr r1, =gClockTable
adds r0, r1
ldrb r0, [r0]
- strb r0, [r5, o_MusicPlayerTrack_gateTime]
- ldr r3, [r5, o_MusicPlayerTrack_cmdPtr]
+ strb r0, [r5, #o_MusicPlayerTrack_gateTime]
+ ldr r3, [r5, #o_MusicPlayerTrack_cmdPtr]
ldrb r0, [r3]
cmp r0, 0x80
bhs _081DDB46
- strb r0, [r5, o_MusicPlayerTrack_key]
+ strb r0, [r5, #o_MusicPlayerTrack_key]
adds r3, 0x1
ldrb r0, [r3]
cmp r0, 0x80
bhs _081DDB44
- strb r0, [r5, o_MusicPlayerTrack_velocity]
+ strb r0, [r5, #o_MusicPlayerTrack_velocity]
adds r3, 0x1
ldrb r0, [r3]
cmp r0, 0x80
bhs _081DDB44
- ldrb r1, [r5, o_MusicPlayerTrack_gateTime]
+ ldrb r1, [r5, #o_MusicPlayerTrack_gateTime]
adds r1, r0
- strb r1, [r5, o_MusicPlayerTrack_gateTime]
+ strb r1, [r5, #o_MusicPlayerTrack_gateTime]
adds r3, 0x1
_081DDB44:
- str r3, [r5, o_MusicPlayerTrack_cmdPtr]
+ str r3, [r5, #o_MusicPlayerTrack_cmdPtr]
_081DDB46:
movs r0, 0
str r0, [sp, 0x14]
adds r4, r5, 0
- adds r4, o_MusicPlayerTrack_ToneData_type
+ adds r4, #o_MusicPlayerTrack_ToneData_type
ldrb r2, [r4]
movs r0, TONEDATA_TYPE_RHY | TONEDATA_TYPE_SPL
tst r0, r2
beq _081DDB98
- ldrb r3, [r5, o_MusicPlayerTrack_key]
+ ldrb r3, [r5, #o_MusicPlayerTrack_key]
movs r0, TONEDATA_TYPE_SPL
tst r0, r2
beq _081DDB66
- ldr r1, [r5, o_MusicPlayerTrack_ToneData_keySplitTable]
+ ldr r1, [r5, #o_MusicPlayerTrack_ToneData_keySplitTable]
adds r1, r3
ldrb r0, [r1]
b _081DDB68
@@ -1594,7 +1594,7 @@ _081DDB68:
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
- ldr r0, [r5, o_MusicPlayerTrack_ToneData_wav]
+ ldr r0, [r5, #o_MusicPlayerTrack_ToneData_wav]
adds r1, r0
mov r9, r1
mov r6, r9
@@ -1787,7 +1787,7 @@ _081DDCBC:
bl call_r3
b _081DDCDC
_081DDCCE:
- ldr r0, [r5, o_MusicPlayerTrack_unk_3C]
+ ldr r0, [r5, #o_MusicPlayerTrack_unk_3C]
str r0, [r4, 0x18]
ldrb r2, [r5, 0x9]
adds r1, r3, 0
@@ -1816,37 +1816,37 @@ _081DDCEA:
thumb_func_start ply_endtie
ply_endtie:
push {r4,r5}
- ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r1, #o_MusicPlayerTrack_cmdPtr]
ldrb r3, [r2]
cmp r3, 0x80
bhs _081DDD16
- strb r3, [r1, o_MusicPlayerTrack_key]
+ strb r3, [r1, #o_MusicPlayerTrack_key]
adds r2, 0x1
- str r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ str r2, [r1, #o_MusicPlayerTrack_cmdPtr]
b _081DDD18
_081DDD16:
- ldrb r3, [r1, o_MusicPlayerTrack_key]
+ ldrb r3, [r1, #o_MusicPlayerTrack_key]
_081DDD18:
- ldr r1, [r1, o_MusicPlayerTrack_chan]
+ ldr r1, [r1, #o_MusicPlayerTrack_chan]
cmp r1, 0
beq _081DDD40
movs r4, 0x83
movs r5, 0x40
_081DDD22:
- ldrb r2, [r1, o_SoundChannel_status]
+ ldrb r2, [r1, #o_SoundChannel_status]
tst r2, r4
beq _081DDD3A
tst r2, r5
bne _081DDD3A
- ldrb r0, [r1, o_SoundChannel_mk]
+ ldrb r0, [r1, #o_SoundChannel_mk]
cmp r0, r3
bne _081DDD3A
movs r0, 0x40
orrs r2, r0
- strb r2, [r1, o_SoundChannel_status]
+ strb r2, [r1, #o_SoundChannel_status]
b _081DDD40
_081DDD3A:
- ldr r1, [r1, o_SoundChannel_np]
+ ldr r1, [r1, #o_SoundChannel_np]
cmp r1, 0
bne _081DDD22
_081DDD40:
@@ -1857,9 +1857,9 @@ _081DDD40:
thumb_func_start clear_modM
clear_modM:
movs r2, 0
- strb r2, [r1, o_MusicPlayerTrack_modM]
- strb r2, [r1, o_MusicPlayerTrack_lfoSpeedC]
- ldrb r2, [r1, o_MusicPlayerTrack_modT]
+ strb r2, [r1, #o_MusicPlayerTrack_modM]
+ strb r2, [r1, #o_MusicPlayerTrack_lfoSpeedC]
+ ldrb r2, [r1, #o_MusicPlayerTrack_modT]
cmp r2, 0
bne _081DDD54
movs r2, 0xC
@@ -1867,17 +1867,17 @@ clear_modM:
_081DDD54:
movs r2, 0x3
_081DDD56:
- ldrb r3, [r1, o_MusicPlayerTrack_flags]
+ ldrb r3, [r1, #o_MusicPlayerTrack_flags]
orrs r3, r2
- strb r3, [r1, o_MusicPlayerTrack_flags]
+ strb r3, [r1, #o_MusicPlayerTrack_flags]
bx lr
thumb_func_end clear_modM
thumb_func_start ld_r3_tp_adr_i
ld_r3_tp_adr_i_unchecked:
- ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r1, #o_MusicPlayerTrack_cmdPtr]
adds r3, r2, 1
- str r3, [r1, o_MusicPlayerTrack_cmdPtr]
+ str r3, [r1, #o_MusicPlayerTrack_cmdPtr]
ldrb r3, [r2]
bx lr
thumb_func_end ld_r3_tp_adr_i
@@ -1886,7 +1886,7 @@ ld_r3_tp_adr_i_unchecked:
ply_lfos:
mov r12, lr
bl ld_r3_tp_adr_i_unchecked
- strb r3, [r1, o_MusicPlayerTrack_lfoSpeed]
+ strb r3, [r1, #o_MusicPlayerTrack_lfoSpeed]
cmp r3, 0
bne _081DDD7C
bl clear_modM
@@ -1898,7 +1898,7 @@ _081DDD7C:
ply_mod:
mov r12, lr
bl ld_r3_tp_adr_i_unchecked
- strb r3, [r1, o_MusicPlayerTrack_mod]
+ strb r3, [r1, #o_MusicPlayerTrack_mod]
cmp r3, 0
bne _081DDD90
bl clear_modM
diff --git a/src/main_menu.c b/src/main_menu.c
index a4de99207..f4bf37ce1 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -1292,7 +1292,7 @@ static void Task_NewGameBirchSpeech_Init(u8 taskId)
gTasks[taskId].tPlayerSpriteId = 0xFF;
gTasks[taskId].data[3] = 0xFF;
gTasks[taskId].tTimer = 0xD8;
- PlayBGM(MUS_DOORO_X4);
+ PlayBGM(MUS_ROUTE122);
ShowBg(0);
ShowBg(1);
}
diff --git a/src/match_call.c b/src/match_call.c
index 21edb1b77..aaf6f29d2 100644
--- a/src/match_call.c
+++ b/src/match_call.c
@@ -1119,7 +1119,7 @@ static void StartMatchCall(void)
sub_808BCF4();
}
- PlaySE(SE_TOREEYE);
+ PlaySE(SE_POKENAV_CALL);
CreateTask(ExecuteMatchCall, 1);
}
@@ -1257,7 +1257,7 @@ static bool32 sub_8196330(u8 taskId)
{
FillWindowPixelBuffer(taskData[2], PIXEL_FILL(8));
CopyWindowToVram(taskData[2], 2);
- PlaySE(SE_TOREOFF);
+ PlaySE(SE_POKENAV_HANG_UP);
return TRUE;
}
diff --git a/src/menu.c b/src/menu.c
index eb980ed2e..85275b6bc 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -1299,10 +1299,12 @@ u8 sub_8198F58(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 cursorHeight,
else
sMenu.cursorPos = pos;
- sub_8199134(0, 0);
+ // Why call this when it's not gonna move?
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_NONE);
return sMenu.cursorPos;
}
+// Unused
u8 sub_8198FD4(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8 a7)
{
u8 cursorHeight = GetMenuCursorDimensionByFont(fontId, 1);
@@ -1333,40 +1335,28 @@ void sub_8199060(u8 oldCursorPos, u8 newCursorPos)
0);
}
-u8 sub_8199134(s8 deltaX, s8 deltaY)
+u8 ChangeListMenuCursorPosition(s8 deltaX, s8 deltaY)
{
u8 oldPos = sMenu.cursorPos;
if (deltaX != 0)
{
if ((sMenu.cursorPos % sMenu.columns) + deltaX < 0)
- {
sMenu.cursorPos += sMenu.columns - 1;
- }
else if ((sMenu.cursorPos % sMenu.columns) + deltaX >= sMenu.columns)
- {
sMenu.cursorPos = (sMenu.cursorPos / sMenu.columns) * sMenu.columns;
- }
else
- {
sMenu.cursorPos += deltaX;
- }
}
if (deltaY != 0)
{
if ((sMenu.cursorPos / sMenu.columns) + deltaY < 0)
- {
sMenu.cursorPos += sMenu.columns * (sMenu.rows - 1);
- }
else if ((sMenu.cursorPos / sMenu.columns) + deltaY >= sMenu.rows)
- {
sMenu.cursorPos -= sMenu.columns * (sMenu.rows - 1);
- }
else
- {
sMenu.cursorPos += (sMenu.columns * deltaY);
- }
}
if (sMenu.cursorPos > sMenu.maxCursorPos)
@@ -1381,7 +1371,7 @@ u8 sub_8199134(s8 deltaX, s8 deltaY)
}
}
-u8 sub_81991F8(s8 deltaX, s8 deltaY)
+u8 ChangeGridMenuCursorPosition(s8 deltaX, s8 deltaY)
{
u8 oldPos = sMenu.cursorPos;
@@ -1429,25 +1419,25 @@ s8 sub_8199284(void)
else if (gMain.newKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
- sub_8199134(0, -1);
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP);
return MENU_NOTHING_CHOSEN;
}
else if (gMain.newKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
- sub_8199134(0, 1);
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN);
return MENU_NOTHING_CHOSEN;
}
else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED)
{
PlaySE(SE_SELECT);
- sub_8199134(-1, 0);
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE);
return MENU_NOTHING_CHOSEN;
}
else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED)
{
PlaySE(SE_SELECT);
- sub_8199134(1, 0);
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE);
return MENU_NOTHING_CHOSEN;
}
@@ -1469,25 +1459,25 @@ s8 Menu_ProcessInputGridLayout(void)
}
else if (gMain.newKeys & DPAD_UP)
{
- if (oldPos != sub_81991F8(0, -1))
+ if (oldPos != ChangeGridMenuCursorPosition(0, -1))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
else if (gMain.newKeys & DPAD_DOWN)
{
- if (oldPos != sub_81991F8(0, 1))
+ if (oldPos != ChangeGridMenuCursorPosition(0, 1))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED)
{
- if (oldPos != sub_81991F8(-1, 0))
+ if (oldPos != ChangeGridMenuCursorPosition(-1, 0))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED)
{
- if (oldPos != sub_81991F8(1, 0))
+ if (oldPos != ChangeGridMenuCursorPosition(1, 0))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
@@ -1509,31 +1499,32 @@ s8 sub_81993D8(void)
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP)
{
PlaySE(SE_SELECT);
- sub_8199134(0, -1);
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP);
return MENU_NOTHING_CHOSEN;
}
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN)
{
PlaySE(SE_SELECT);
- sub_8199134(0, 1);
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN);
return MENU_NOTHING_CHOSEN;
}
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED)
{
PlaySE(SE_SELECT);
- sub_8199134(-1, 0);
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE);
return MENU_NOTHING_CHOSEN;
}
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED)
{
PlaySE(SE_SELECT);
- sub_8199134(1, 0);
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE);
return MENU_NOTHING_CHOSEN;
}
return MENU_NOTHING_CHOSEN;
}
+//Unused
s8 sub_8199484(void)
{
u8 oldPos = sMenu.cursorPos;
@@ -1549,25 +1540,25 @@ s8 sub_8199484(void)
}
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP)
{
- if (oldPos != sub_81991F8(0, -1))
+ if (oldPos != ChangeGridMenuCursorPosition(0, -1))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN)
{
- if (oldPos != sub_81991F8(0, 1))
+ if (oldPos != ChangeGridMenuCursorPosition(0, 1))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED)
{
- if (oldPos != sub_81991F8(-1, 0))
+ if (oldPos != ChangeGridMenuCursorPosition(-1, 0))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED)
{
- if (oldPos != sub_81991F8(1, 0))
+ if (oldPos != ChangeGridMenuCursorPosition(1, 0))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
@@ -1732,7 +1723,8 @@ u8 sub_8199944(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCurso
else
sMenu.cursorPos = pos;
- sub_8199134(0, 0);
+ // Why call this when it's not gonna move?
+ ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_NONE);
return sMenu.cursorPos;
}
diff --git a/src/menu_specialized.c b/src/menu_specialized.c
index a99c5c9d0..d402ecb51 100644
--- a/src/menu_specialized.c
+++ b/src/menu_specialized.c
@@ -894,76 +894,73 @@ static u8 *GetConditionMenuMonString(u8 *dst, u16 boxId, u16 monId)
{
return StringCopyPadded(dst, gText_EggNickname, 0, 12);
}
+ GetBoxOrPartyMonData(boxId, monId, MON_DATA_NICKNAME, dst);
+ StringGetEnd10(dst);
+ species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL);
+ if (boxId == TOTAL_BOXES_COUNT) // Party mon.
+ {
+ level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
+ gender = GetMonGender(&gPlayerParty[monId]);
+ }
else
{
- GetBoxOrPartyMonData(boxId, monId, MON_DATA_NICKNAME, dst);
- StringGetEnd10(dst);
- species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL);
- if (boxId == TOTAL_BOXES_COUNT) // Party mon.
- {
- level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
- gender = GetMonGender(&gPlayerParty[monId]);
- }
- else
- {
- // Needed to match, feel free to remove.
- boxId++;boxId--;
- monId++;monId--;
-
- boxMon = GetBoxedMonPtr(boxId, monId);
- gender = GetBoxMonGender(boxMon);
- level = GetLevelFromBoxMonExp(boxMon);
- }
+ // Needed to match, feel free to remove.
+ boxId++, boxId--;
+ monId++, monId--;
- if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && !StringCompare(dst, gSpeciesNames[species]))
- gender = MON_GENDERLESS;
+ boxMon = GetBoxedMonPtr(boxId, monId);
+ gender = GetBoxMonGender(boxMon);
+ level = GetLevelFromBoxMonExp(boxMon);
+ }
- for (str = dst; *str != EOS; str++)
- ;
+ if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && !StringCompare(dst, gSpeciesNames[species]))
+ gender = MON_GENDERLESS;
- *(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_SKIP;
- *(str++) = 60;
+ for (str = dst; *str != EOS; str++)
+ ;
- switch (gender)
- {
- default:
- *(str++) = CHAR_SPACE;
- break;
- case MON_MALE:
- *(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_COLOR;
- *(str++) = TEXT_COLOR_RED;
- *(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_SHADOW;
- *(str++) = TEXT_COLOR_LIGHT_RED;
- *(str++) = CHAR_MALE;
- break;
- case MON_FEMALE:
- *(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_COLOR;
- *(str++) = TEXT_COLOR_GREEN;
- *(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_SHADOW;
- *(str++) = TEXT_COLOR_LIGHT_GREEN;
- *(str++) = CHAR_FEMALE;
- break;
- }
+ *(str++) = EXT_CTRL_CODE_BEGIN;
+ *(str++) = EXT_CTRL_CODE_SKIP;
+ *(str++) = 60;
- *(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW;
- *(str++) = TEXT_COLOR_BLUE;
- *(str++) = TEXT_COLOR_TRANSPARENT;
- *(str++) = TEXT_COLOR_LIGHT_BLUE;
- *(str++) = CHAR_SLASH;
- *(str++) = CHAR_EXTRA_SYMBOL;
- *(str++) = CHAR_LV_2;
- str = ConvertIntToDecimalStringN(str, level, STR_CONV_MODE_LEFT_ALIGN, 3);
+ switch (gender)
+ {
+ default:
*(str++) = CHAR_SPACE;
- *str = EOS;
-
- return str;
+ break;
+ case MON_MALE:
+ *(str++) = EXT_CTRL_CODE_BEGIN;
+ *(str++) = EXT_CTRL_CODE_COLOR;
+ *(str++) = TEXT_COLOR_RED;
+ *(str++) = EXT_CTRL_CODE_BEGIN;
+ *(str++) = EXT_CTRL_CODE_SHADOW;
+ *(str++) = TEXT_COLOR_LIGHT_RED;
+ *(str++) = CHAR_MALE;
+ break;
+ case MON_FEMALE:
+ *(str++) = EXT_CTRL_CODE_BEGIN;
+ *(str++) = EXT_CTRL_CODE_COLOR;
+ *(str++) = TEXT_COLOR_GREEN;
+ *(str++) = EXT_CTRL_CODE_BEGIN;
+ *(str++) = EXT_CTRL_CODE_SHADOW;
+ *(str++) = TEXT_COLOR_LIGHT_GREEN;
+ *(str++) = CHAR_FEMALE;
+ break;
}
+
+ *(str++) = EXT_CTRL_CODE_BEGIN;
+ *(str++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW;
+ *(str++) = TEXT_COLOR_BLUE;
+ *(str++) = TEXT_COLOR_TRANSPARENT;
+ *(str++) = TEXT_COLOR_LIGHT_BLUE;
+ *(str++) = CHAR_SLASH;
+ *(str++) = CHAR_EXTRA_SYMBOL;
+ *(str++) = CHAR_LV_2;
+ str = ConvertIntToDecimalStringN(str, level, STR_CONV_MODE_LEFT_ALIGN, 3);
+ *(str++) = CHAR_SPACE;
+ *str = EOS;
+
+ return str;
}
// Buffers the string in src to dest up to n chars. If src is less than n chars, fill with spaces
diff --git a/src/minigame_countdown.c b/src/minigame_countdown.c
index be1c42e29..cd5710d44 100644
--- a/src/minigame_countdown.c
+++ b/src/minigame_countdown.c
@@ -227,7 +227,7 @@ static void sub_802E938(struct Sprite *sprite)
sprite->invisible = FALSE;
case 1:
case 2:
- PlaySE(SE_KON);
+ PlaySE(SE_BALL_BOUNCE_1);
StartSpriteAnim(sprite, sprite->data[2]);
break;
case 3:
@@ -249,7 +249,7 @@ static void sub_802E938(struct Sprite *sprite)
static void sub_802EA50(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- PlaySE(SE_KON);
+ PlaySE(SE_BALL_BOUNCE_1);
gSprites[data[13]].callback = sub_802E938;
gSprites[data[13]].invisible = FALSE;
gTasks[taskId].data[0] = 3;
@@ -262,15 +262,15 @@ static void sub_802EAB0(u8 taskId)
if (gReceivedRemoteLinkPlayers != 0)
{
- if (gRecvCmds[0][1] == 0x7FFF)
+ if (gRecvCmds[0][1] == LINKCMD_0x7FFF)
data[11] = gRecvCmds[0][2];
if (GetMultiplayerId() == 0)
{
data[12]++;
memset(packet, 0, sizeof(packet));
- packet[0] = 0x7FFF;
+ packet[0] = LINKCMD_0x7FFF;
packet[1] = data[12];
- sub_800FE50(packet);
+ Rfu_SendPacket(packet);
}
}
else
@@ -350,7 +350,7 @@ static bool32 RunMinigameCountdownDigitsAnim(u8 spriteId)
// fallthrough
case 1:
if (sprite->data[2] == 0)
- PlaySE(SE_KON2);
+ PlaySE(SE_BALL_BOUNCE_2);
if (++sprite->data[2] >= 20)
{
sprite->data[2] = 0;
@@ -443,7 +443,7 @@ static void SpriteCB_Start(struct Sprite *sprite)
sprite->pos2.y = data[5] >> 4;
if (sprite->pos2.y >= 0)
{
- PlaySE(SE_KON2);
+ PlaySE(SE_BALL_BOUNCE_2);
sprite->pos2.y = 0;
data[0]++;
}
@@ -452,7 +452,7 @@ static void SpriteCB_Start(struct Sprite *sprite)
data[1] += 12;
if (data[1] >= 128)
{
- PlaySE(SE_KON2);
+ PlaySE(SE_BALL_BOUNCE_2);
data[1] = 0;
data[0]++;
}
@@ -463,7 +463,7 @@ static void SpriteCB_Start(struct Sprite *sprite)
data[1] += 16;
if (data[1] >= 128)
{
- PlaySE(SE_KON2);
+ PlaySE(SE_BALL_BOUNCE_2);
data[1] = 0;
data[0]++;
}
diff --git a/src/mirage_tower.c b/src/mirage_tower.c
index 02cccf2a5..fb3a0a374 100644
--- a/src/mirage_tower.c
+++ b/src/mirage_tower.c
@@ -370,7 +370,7 @@ static void StartScreenShake(u8 yShakeOffset, u8 xShakeOffset, u8 numShakes, u8
gTasks[taskId].data[3] = shakeDelay;
gTasks[taskId].data[4] = yShakeOffset;
SetCameraPanningCallback(NULL);
- PlaySE(SE_W070);
+ PlaySE(SE_M_STRENGTH);
}
static void DoScreenShake(u8 taskId)
diff --git a/src/move_relearner.c b/src/move_relearner.c
index 1c863804b..3e7caf133 100644
--- a/src/move_relearner.c
+++ b/src/move_relearner.c
@@ -150,20 +150,22 @@
#define JAM_HEART_EMPTY 2
#define JAM_HEART_FULL 3
+#define MAX_RELEARNER_MOVES (MAX_LEVEL_UP_MOVES > 25 ? MAX_LEVEL_UP_MOVES : 25)
+
static EWRAM_DATA struct
{
u8 state;
- u8 heartSpriteIds[16]; /*0x001*/
- u16 movesToLearn[25]; /*0x01A*/
- u8 partyMon; /*0x044*/
- u8 moveSlot; /*0x045*/
- struct ListMenuItem menuItems[25]; /*0x0E8*/
- u8 numMenuChoices; /*0x110*/
- u8 numToShowAtOnce; /*0x111*/
- u8 moveListMenuTask; /*0x112*/
- u8 moveListScrollArrowTask; /*0x113*/
- u8 moveDisplayArrowTask; /*0x114*/
- u16 scrollOffset; /*0x116*/
+ u8 heartSpriteIds[16]; /*0x001*/
+ u16 movesToLearn[MAX_RELEARNER_MOVES]; /*0x01A*/
+ u8 partyMon; /*0x044*/
+ u8 moveSlot; /*0x045*/
+ struct ListMenuItem menuItems[MAX_RELEARNER_MOVES]; /*0x0E8*/
+ u8 numMenuChoices; /*0x110*/
+ u8 numToShowAtOnce; /*0x111*/
+ u8 moveListMenuTask; /*0x112*/
+ u8 moveListScrollArrowTask; /*0x113*/
+ u8 moveDisplayArrowTask; /*0x114*/
+ u16 scrollOffset; /*0x116*/
} *sMoveRelearnerStruct = {0};
static EWRAM_DATA struct {
@@ -713,13 +715,13 @@ static void DoMoveRelearnerMain(void)
{
FormatAndPrintText(gText_MoveRelearnerPkmnForgotMoveAndLearnedNew);
sMoveRelearnerStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE;
- PlayFanfare(MUS_FANFA1);
+ PlayFanfare(MUS_LEVEL_UP);
}
break;
case MENU_STATE_PRINT_TEXT_THEN_FANFARE:
if (!MoveRelearnerRunTextPrinters())
{
- PlayFanfare(MUS_FANFA1);
+ PlayFanfare(MUS_LEVEL_UP);
sMoveRelearnerStruct->state = MENU_STATE_WAIT_FOR_FANFARE;
}
break;
diff --git a/src/mystery_gift.c b/src/mystery_gift.c
index 7f1370a5e..ca5ab1baf 100644
--- a/src/mystery_gift.c
+++ b/src/mystery_gift.c
@@ -431,7 +431,7 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader)
case 3:
ShowBg(0);
ShowBg(3);
- PlayBGM(MUS_RG_OKURIMONO);
+ PlayBGM(MUS_RG_MYSTERY_GIFT);
SetVBlankCallback(vblankcb_mystery_gift_e_reader_run);
EnableInterrupts(INTR_FLAG_VBLANK | INTR_FLAG_VCOUNT | INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL);
return TRUE;
@@ -1023,7 +1023,7 @@ static bool32 PrintMGSuccessMessage(u8 * state, const u8 * arg1, u16 * arg2)
{
AddTextPrinterToWindow1(arg1);
}
- PlayFanfare(MUS_FANFA4);
+ PlayFanfare(MUS_OBTAIN_ITEM);
*arg2 = 0;
(*state)++;
break;
diff --git a/src/naming_screen.c b/src/naming_screen.c
index 4ed9d78d0..be921078e 100644
--- a/src/naming_screen.c
+++ b/src/naming_screen.c
@@ -1823,7 +1823,7 @@ static void DeleteTextCharacter(void)
// It incorrectly leaves the Back key 1 shade lighter than its default
if (keyRole == KEY_ROLE_CHAR || keyRole == KEY_ROLE_BACKSPACE)
TryStartButtonFlash(BUTTON_BACK, FALSE, TRUE);
- PlaySE(SE_BOWA);
+ PlaySE(SE_BALL);
}
// Returns TRUE if the text entry is now full
diff --git a/src/overworld.c b/src/overworld.c
index 2d838fc4d..d18e3d3bc 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -1076,11 +1076,11 @@ u16 GetLocationMusic(struct WarpData *warp)
if (NoMusicInSotopolisWithLegendaries(warp) == TRUE)
return 0xFFFF;
else if (ShouldLegendaryMusicPlayAtLocation(warp) == TRUE)
- return MUS_OOAME;
+ return MUS_ABNORMAL_WEATHER;
else if (IsInflitratedSpaceCenter(warp) == TRUE)
- return MUS_MGM0;
+ return MUS_ENCOUNTER_MAGMA;
else if (IsInfiltratedWeatherInstitute(warp) == TRUE)
- return MUS_TOZAN;
+ return MUS_MT_CHIMNEY;
else
return Overworld_GetMapHeaderByGroupAndId(warp->mapGroup, warp->mapNum)->music;
}
@@ -1093,26 +1093,26 @@ u16 GetCurrLocationDefaultMusic(void)
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE111)
&& gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE111)
&& GetSav1Weather() == WEATHER_SANDSTORM)
- return MUS_ASHROAD;
+ return MUS_ROUTE111;
music = GetLocationMusic(&gSaveBlock1Ptr->location);
- if (music != MUS_ROUTE_118)
+ if (music != MUS_ROUTE118)
{
return music;
}
else
{
if (gSaveBlock1Ptr->pos.x < 24)
- return MUS_DOORO_X1;
+ return MUS_ROUTE110;
else
- return MUS_GRANROAD;
+ return MUS_ROUTE119;
}
}
u16 GetWarpDestinationMusic(void)
{
u16 music = GetLocationMusic(&sWarpDestination);
- if (music != MUS_ROUTE_118)
+ if (music != MUS_ROUTE118)
{
return music;
}
@@ -1120,9 +1120,9 @@ u16 GetWarpDestinationMusic(void)
{
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(MAUVILLE_CITY)
&& gSaveBlock1Ptr->location.mapNum == MAP_NUM(MAUVILLE_CITY))
- return MUS_DOORO_X1;
+ return MUS_ROUTE110;
else
- return MUS_GRANROAD;
+ return MUS_ROUTE119;
}
}
@@ -1135,14 +1135,14 @@ void Overworld_PlaySpecialMapMusic(void)
{
u16 music = GetCurrLocationDefaultMusic();
- if (music != MUS_OOAME && music != 0xFFFF)
+ if (music != MUS_ABNORMAL_WEATHER && music != 0xFFFF)
{
if (gSaveBlock1Ptr->savedMusic)
music = gSaveBlock1Ptr->savedMusic;
else if (GetCurrentMapType() == MAP_TYPE_UNDERWATER)
- music = MUS_DEEPDEEP;
+ music = MUS_UNDERWATER;
else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
- music = MUS_NAMINORI;
+ music = MUS_SURF;
}
if (music != GetCurrentMapMusic())
@@ -1165,12 +1165,12 @@ static void TransitionMapMusic(void)
{
u16 newMusic = GetWarpDestinationMusic();
u16 currentMusic = GetCurrentMapMusic();
- if (newMusic != MUS_OOAME && newMusic != 0xFFFF)
+ if (newMusic != MUS_ABNORMAL_WEATHER && newMusic != 0xFFFF)
{
- if (currentMusic == MUS_DEEPDEEP || currentMusic == MUS_NAMINORI)
+ if (currentMusic == MUS_UNDERWATER || currentMusic == MUS_SURF)
return;
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
- newMusic = MUS_NAMINORI;
+ newMusic = MUS_SURF;
}
if (newMusic != currentMusic)
{
@@ -1192,7 +1192,7 @@ void Overworld_ChangeMusicToDefault(void)
void Overworld_ChangeMusicTo(u16 newMusic)
{
u16 currentMusic = GetCurrentMapMusic();
- if (currentMusic != newMusic && currentMusic != MUS_OOAME)
+ if (currentMusic != newMusic && currentMusic != MUS_ABNORMAL_WEATHER)
FadeOutAndPlayNewMapMusic(newMusic, 8);
}
@@ -1211,7 +1211,7 @@ void TryFadeOutOldMapMusic(void)
u16 warpMusic = GetWarpDestinationMusic();
if (FlagGet(FLAG_DONT_TRANSITION_MUSIC) != TRUE && warpMusic != GetCurrentMapMusic())
{
- if (currentMusic == MUS_NAMINORI
+ if (currentMusic == MUS_SURF
&& VarGet(VAR_SKY_PILLAR_STATE) == 2
&& gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SOOTOPOLIS_CITY)
&& gSaveBlock1Ptr->location.mapNum == MAP_NUM(SOOTOPOLIS_CITY)
diff --git a/src/party_menu.c b/src/party_menu.c
index f61cbc5e6..7514cf545 100755
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -1294,7 +1294,7 @@ static bool8 IsSelectedMonNotEgg(u8 *slotPtr)
{
if (GetMonData(&gPlayerParty[*slotPtr], MON_DATA_IS_EGG) == TRUE)
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
return FALSE;
}
return TRUE;
@@ -1305,7 +1305,7 @@ static void HandleChooseMonCancel(u8 taskId, s8 *slotPtr)
switch (gPartyMenu.action)
{
case PARTY_ACTION_SEND_OUT:
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
break;
case PARTY_ACTION_SWITCH:
case PARTY_ACTION_SOFTBOILED:
@@ -1915,7 +1915,7 @@ static void TryEnterMonForMinigame(u8 taskId, u8 slot)
}
else
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
DisplayPartyMenuMessage(gText_PkmnCantParticipate, FALSE);
ScheduleBgCopyTilemapToVram(2);
gTasks[taskId].func = Task_ReturnToChooseMonAfterText;
@@ -3471,7 +3471,7 @@ static void CursorCb_Enter(u8 taskId)
}
ConvertIntToDecimalStringN(gStringVar1, maxBattlers, STR_CONV_MODE_LEFT_ALIGN, 1);
StringExpandPlaceholders(gStringVar4, gText_NoMoreThanVar1Pkmn);
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
DisplayPartyMenuMessage(gStringVar4, TRUE);
gTasks[taskId].func = Task_ReturnToChooseMonAfterText;
}
@@ -3538,7 +3538,7 @@ static void CursorCb_Register(u8 taskId)
Task_ClosePartyMenu(taskId);
return;
}
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]);
PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]);
StringAppend(gStringVar4, gText_PauseUntilPress);
@@ -3556,7 +3556,7 @@ static void CursorCb_Trade1(u8 taskId)
if (stringId != UR_TRADE_MSG_NONE)
{
StringExpandPlaceholders(gStringVar4, sUnionRoomTradeMessages[stringId - 1]);
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]);
PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]);
StringAppend(gStringVar4, gText_PauseUntilPress);
@@ -3595,7 +3595,7 @@ static void CursorCb_Trade2(u8 taskId)
gTasks[taskId].func = Task_SpinTradeYesNo;
return;
}
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
StringAppend(gStringVar4, gText_PauseUntilPress);
DisplayPartyMenuMessage(gStringVar4, TRUE);
gTasks[taskId].func = Task_ReturnToChooseMonAfterText;
@@ -4355,13 +4355,13 @@ void ItemUseCB_Medicine(u8 taskId, TaskFunc task)
gPartyMenuUseExitCallback = TRUE;
if (!IsItemFlute(item))
{
- PlaySE(SE_KAIFUKU);
+ PlaySE(SE_USE_ITEM);
if (gPartyMenu.action != PARTY_ACTION_REUSABLE_ITEM)
RemoveBagItem(item, 1);
}
else
{
- PlaySE(SE_BIDORO);
+ PlaySE(SE_GLASS_FLUTE);
}
SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]);
if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible)
@@ -4426,7 +4426,7 @@ void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task)
else
{
gPartyMenuUseExitCallback = TRUE;
- PlaySE(SE_KAIFUKU);
+ PlaySE(SE_USE_ITEM);
RemoveBagItem(item, 1);
GetMonNickname(mon, gStringVar1);
ItemEffectToStatString(effectType, gStringVar2);
@@ -4591,7 +4591,7 @@ static void TryUsePPItem(u8 taskId)
{
gPartyMenuUseExitCallback = TRUE;
mon = &gPlayerParty[ptr->slotId];
- PlaySE(SE_KAIFUKU);
+ PlaySE(SE_USE_ITEM);
RemoveBagItem(item, 1);
move = GetMonData(mon, MON_DATA_MOVE1 + *moveSlot);
StringCopy(gStringVar1, gMoveNames[move]);
@@ -4715,7 +4715,7 @@ static void Task_DoLearnedMoveFanfareAfterText(u8 taskId)
{
if (IsPartyMenuTextPrinterActive() != TRUE)
{
- PlayFanfare(MUS_FANFA1);
+ PlayFanfare(MUS_LEVEL_UP);
gTasks[taskId].func = Task_LearnNextMoveOrClosePartyMenu;
}
}
@@ -5095,7 +5095,7 @@ static void UseSacredAsh(u8 taskId)
return;
}
- PlaySE(SE_KAIFUKU);
+ PlaySE(SE_USE_ITEM);
SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]);
if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible)
DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], 1);
@@ -5596,7 +5596,7 @@ static void Task_ValidateChosenHalfParty(u8 taskId)
if (msgId != 0xFF)
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
DisplayPartyMenuStdMessage(msgId);
gTasks[taskId].func = Task_ContinueChoosingHalfParty;
}
@@ -6077,7 +6077,7 @@ static void Task_MultiPartnerPartySlideIn(u8 taskId)
if (gMultiPartnerParty[i - MULTI_PARTY_SIZE].species != SPECIES_NONE)
AnimateSelectedPartyIcon(sPartyMenuBoxes[i].monSpriteId, 0);
}
- PlaySE(SE_W231); // The Harden SE plays once the partners party mons have slid on screen
+ PlaySE(SE_M_HARDEN); // The Harden SE plays once the partners party mons have slid on screen
gTasks[taskId].func = Task_WaitAfterMultiPartnerPartySlideIn;
}
}
diff --git a/src/pokeball.c b/src/pokeball.c
index 1a0561c33..b176677bd 100644
--- a/src/pokeball.c
+++ b/src/pokeball.c
@@ -166,43 +166,43 @@ static const union AnimCmd *const sBallAnimSequences[] =
sBallAnimSeq6,
};
-static const union AffineAnimCmd sBallAffineAnimSeq0[] =
+static const union AffineAnimCmd sAffineAnim_BallRotate_0[] =
{
AFFINEANIMCMD_FRAME(0, 0, 0, 1),
AFFINEANIMCMD_JUMP(0),
};
-static const union AffineAnimCmd sBallAffineAnimSeq1[] =
+static const union AffineAnimCmd sAffineAnim_BallRotate_Right[] =
{
AFFINEANIMCMD_FRAME(0, 0, -3, 1),
AFFINEANIMCMD_JUMP(0),
};
-static const union AffineAnimCmd sBallAffineAnimSeq2[] =
+static const union AffineAnimCmd sAffineAnim_BallRotate_Left[] =
{
AFFINEANIMCMD_FRAME(0, 0, 3, 1),
AFFINEANIMCMD_JUMP(0),
};
-static const union AffineAnimCmd sBallAffineAnimSeq3[] =
+static const union AffineAnimCmd sAffineAnim_BallRotate_3[] =
{
AFFINEANIMCMD_FRAME(256, 256, 0, 0),
AFFINEANIMCMD_END,
};
-static const union AffineAnimCmd sBallAffineAnimSeq4[] =
+static const union AffineAnimCmd sAffineAnim_BallRotate_4[] =
{
AFFINEANIMCMD_FRAME(0, 0, 25, 1),
AFFINEANIMCMD_JUMP(0),
};
-static const union AffineAnimCmd *const sBallAffineAnimSequences[] =
+static const union AffineAnimCmd *const sAffineAnim_BallRotate[] =
{
- sBallAffineAnimSeq0,
- sBallAffineAnimSeq1,
- sBallAffineAnimSeq2,
- sBallAffineAnimSeq3,
- sBallAffineAnimSeq4,
+ [BALL_AFFINE_ANIM_0] = sAffineAnim_BallRotate_0,
+ [BALL_ROTATE_RIGHT] = sAffineAnim_BallRotate_Right,
+ [BALL_ROTATE_LEFT] = sAffineAnim_BallRotate_Left,
+ [BALL_AFFINE_ANIM_3] = sAffineAnim_BallRotate_3,
+ [BALL_AFFINE_ANIM_4] = sAffineAnim_BallRotate_4,
};
const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
@@ -213,7 +213,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
- .affineAnims = sBallAffineAnimSequences,
+ .affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_TestBallThrow,
},
{
@@ -222,7 +222,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
- .affineAnims = sBallAffineAnimSequences,
+ .affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_TestBallThrow,
},
{
@@ -231,7 +231,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
- .affineAnims = sBallAffineAnimSequences,
+ .affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_TestBallThrow,
},
{
@@ -240,7 +240,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
- .affineAnims = sBallAffineAnimSequences,
+ .affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_TestBallThrow,
},
{
@@ -249,7 +249,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
- .affineAnims = sBallAffineAnimSequences,
+ .affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_TestBallThrow,
},
{
@@ -258,7 +258,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
- .affineAnims = sBallAffineAnimSequences,
+ .affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_TestBallThrow,
},
{
@@ -267,7 +267,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
- .affineAnims = sBallAffineAnimSequences,
+ .affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_TestBallThrow,
},
{
@@ -276,7 +276,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
- .affineAnims = sBallAffineAnimSequences,
+ .affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_TestBallThrow,
},
{
@@ -285,7 +285,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
- .affineAnims = sBallAffineAnimSequences,
+ .affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_TestBallThrow,
},
{
@@ -294,7 +294,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
- .affineAnims = sBallAffineAnimSequences,
+ .affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_TestBallThrow,
},
{
@@ -303,7 +303,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
- .affineAnims = sBallAffineAnimSequences,
+ .affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_TestBallThrow,
},
{
@@ -312,7 +312,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
- .affineAnims = sBallAffineAnimSequences,
+ .affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_TestBallThrow,
},
};
@@ -406,7 +406,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
gSprites[ballSpriteId].oam.affineParam = taskId;
gTasks[taskId].tOpponentBattler = gBattlerTarget;
gTasks[taskId].func = TaskDummy;
- PlaySE(SE_NAGERU);
+ PlaySE(SE_BALL_THROW);
}
static void SpriteCB_TestBallThrow(struct Sprite *sprite)
@@ -446,6 +446,7 @@ static void sub_80756D4(struct Sprite *sprite)
sprite->callback = sub_80756E0;
}
+// Start something for battler
static void sub_80756E0(struct Sprite *sprite)
{
if (++sprite->data[5] == 10)
@@ -458,11 +459,12 @@ static void sub_80756E0(struct Sprite *sprite)
}
}
+// Shrink player
static void sub_807574C(struct Sprite *sprite)
{
sprite->data[5]++;
if (sprite->data[5] == 11)
- PlaySE(SE_SUIKOMU);
+ PlaySE(SE_BALL_TRADE);
if (gSprites[gBattlerSpriteIds[sprite->sBattler]].affineAnimEnded)
{
StartSpriteAnim(sprite, 2);
@@ -512,16 +514,16 @@ static void sub_8075838(struct Sprite *sprite)
switch (sprite->data[3] >> 8)
{
case 1:
- PlaySE(SE_KON);
+ PlaySE(SE_BALL_BOUNCE_1);
break;
case 2:
- PlaySE(SE_KON2);
+ PlaySE(SE_BALL_BOUNCE_2);
break;
case 3:
- PlaySE(SE_KON3);
+ PlaySE(SE_BALL_BOUNCE_3);
break;
default:
- PlaySE(SE_KON4);
+ PlaySE(SE_BALL_BOUNCE_4);
break;
}
}
@@ -563,7 +565,7 @@ static void sub_8075930(struct Sprite *sprite)
sprite->affineAnimPaused = TRUE;
StartSpriteAffineAnim(sprite, 1);
sprite->callback = sub_8075970;
- PlaySE(SE_BOWA);
+ PlaySE(SE_BALL);
}
}
@@ -632,7 +634,7 @@ static void sub_8075970(struct Sprite *sprite)
StartSpriteAffineAnim(sprite, 2);
else
StartSpriteAffineAnim(sprite, 1);
- PlaySE(SE_BOWA);
+ PlaySE(SE_BALL);
}
break;
}
@@ -738,7 +740,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
StartSpriteAnim(sprite, 1);
ballId = ItemIdToBallId(GetBattlerPokeballItemId(battlerId));
AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, ballId);
- sprite->data[0] = LaunchBallFadeMonTask(1, sprite->sBattler, 14, ballId);
+ sprite->data[0] = LaunchBallFadeMonTask(TRUE, sprite->sBattler, 14, ballId);
sprite->callback = HandleBallAnimEnd;
if (gMain.inBattle)
@@ -879,7 +881,7 @@ static void sub_80760F8(struct Sprite *sprite)
{
gDoingBattleAnim = FALSE;
m4aMPlayAllStop();
- PlaySE(MUS_FANFA5);
+ PlaySE(MUS_EVOLVED);
}
else if (sprite->data[4] == 315)
{
@@ -1148,7 +1150,7 @@ static void sub_807687C(struct Sprite *sprite)
sprite->data[5]++;
if (sprite->data[5] == 11)
- PlaySE(SE_SUIKOMU);
+ PlaySE(SE_BALL_TRADE);
r1 = sprite->data[0];
if (gSprites[r1].affineAnimEnded)
{
diff --git a/src/pokeblock.c b/src/pokeblock.c
index 1020f700f..fc5451b0a 100644
--- a/src/pokeblock.c
+++ b/src/pokeblock.c
@@ -180,21 +180,21 @@ static const struct BgTemplate sBgTemplatesForPokeblockMenu[] =
const u8 *const gPokeblockNames[] =
{
- NULL,
- gText_RedPokeblock,
- gText_BluePokeblock,
- gText_PinkPokeblock,
- gText_GreenPokeblock,
- gText_YellowPokeblock,
- gText_PurplePokeblock,
- gText_IndigoPokeblock,
- gText_BrownPokeblock,
- gText_LiteBluePokeblock,
- gText_OlivePokeblock,
- gText_GrayPokeblock,
- gText_BlackPokeblock,
- gText_WhitePokeblock,
- gText_GoldPokeblock
+ [PBLOCK_CLR_NONE] = NULL,
+ [PBLOCK_CLR_RED] = gText_RedPokeblock,
+ [PBLOCK_CLR_BLUE] = gText_BluePokeblock,
+ [PBLOCK_CLR_PINK] = gText_PinkPokeblock,
+ [PBLOCK_CLR_GREEN] = gText_GreenPokeblock,
+ [PBLOCK_CLR_YELLOW] = gText_YellowPokeblock,
+ [PBLOCK_CLR_PURPLE] = gText_PurplePokeblock,
+ [PBLOCK_CLR_INDIGO] = gText_IndigoPokeblock,
+ [PBLOCK_CLR_BROWN] = gText_BrownPokeblock,
+ [PBLOCK_CLR_LITE_BLUE] = gText_LiteBluePokeblock,
+ [PBLOCK_CLR_OLIVE] = gText_OlivePokeblock,
+ [PBLOCK_CLR_GRAY] = gText_GrayPokeblock,
+ [PBLOCK_CLR_BLACK] = gText_BlackPokeblock,
+ [PBLOCK_CLR_WHITE] = gText_WhitePokeblock,
+ [PBLOCK_CLR_GOLD] = gText_GoldPokeblock
};
static const struct MenuAction sPokeblockMenuActions[] =
@@ -726,7 +726,7 @@ static void PutPokeblockListMenuString(u8 *dst, u16 pkblId)
*(txtPtr++) = EXT_CTRL_CODE_BEGIN;
*(txtPtr++) = EXT_CTRL_CODE_SKIP;
- *(txtPtr++) = 87;
+ *(txtPtr++) = CHAR_BLOCK_1;
ConvertIntToDecimalStringN(gStringVar1, GetHighestPokeblocksFlavorLevel(pkblock), STR_CONV_MODE_LEFT_ALIGN, 3);
StringExpandPlaceholders(txtPtr, gText_LvVar1);
@@ -804,7 +804,7 @@ static void CompactPokeblockSlots(void)
{
for (j = i + 1; j < POKEBLOCKS_COUNT; j++)
{
- if (gSaveBlock1Ptr->pokeblocks[i].color == 0)
+ if (gSaveBlock1Ptr->pokeblocks[i].color == PBLOCK_CLR_NONE)
{
struct Pokeblock temp = gSaveBlock1Ptr->pokeblocks[i];
gSaveBlock1Ptr->pokeblocks[i] = gSaveBlock1Ptr->pokeblocks[j];
@@ -856,7 +856,7 @@ static void SetMenuItemsCountAndMaxShowed(void)
for (sPokeblockMenu->itemsNo = 0, i = 0; i < POKEBLOCKS_COUNT; i++)
{
- if (gSaveBlock1Ptr->pokeblocks[i].color != 0)
+ if (gSaveBlock1Ptr->pokeblocks[i].color != PBLOCK_CLR_NONE)
sPokeblockMenu->itemsNo++;
}
@@ -1322,7 +1322,7 @@ s8 GetFirstFreePokeblockSlot(void)
for (i = 0; i < POKEBLOCKS_COUNT; i++)
{
- if (gSaveBlock1Ptr->pokeblocks[i].color == 0)
+ if (gSaveBlock1Ptr->pokeblocks[i].color == PBLOCK_CLR_NONE)
return i;
}
@@ -1346,7 +1346,7 @@ bool32 AddPokeblock(const struct Pokeblock *pokeblock)
bool32 TryClearPokeblock(u8 pkblId)
{
- if (gSaveBlock1Ptr->pokeblocks[pkblId].color == 0)
+ if (gSaveBlock1Ptr->pokeblocks[pkblId].color == PBLOCK_CLR_NONE)
{
return FALSE;
}
diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c
index e15a005e6..797771f80 100644
--- a/src/pokeblock_feed.c
+++ b/src/pokeblock_feed.c
@@ -382,22 +382,23 @@ static const struct WindowTemplate sWindowTemplates[] =
DUMMY_WIN_TEMPLATE
};
+// - 1 excludes PBLOCK_CLR_NONE
static const u32* const sPokeblocksPals[] =
{
- gPokeblockRed_Pal,
- gPokeblockBlue_Pal,
- gPokeblockPink_Pal,
- gPokeblockGreen_Pal,
- gPokeblockYellow_Pal,
- gPokeblockPurple_Pal,
- gPokeblockIndigo_Pal,
- gPokeblockBrown_Pal,
- gPokeblockLiteBlue_Pal,
- gPokeblockOlive_Pal,
- gPokeblockGray_Pal,
- gPokeblockBlack_Pal,
- gPokeblockWhite_Pal,
- gPokeblockGold_Pal
+ [PBLOCK_CLR_RED - 1] = gPokeblockRed_Pal,
+ [PBLOCK_CLR_BLUE - 1] = gPokeblockBlue_Pal,
+ [PBLOCK_CLR_PINK - 1] = gPokeblockPink_Pal,
+ [PBLOCK_CLR_GREEN - 1] = gPokeblockGreen_Pal,
+ [PBLOCK_CLR_YELLOW - 1] = gPokeblockYellow_Pal,
+ [PBLOCK_CLR_PURPLE - 1] = gPokeblockPurple_Pal,
+ [PBLOCK_CLR_INDIGO - 1] = gPokeblockIndigo_Pal,
+ [PBLOCK_CLR_BROWN - 1] = gPokeblockBrown_Pal,
+ [PBLOCK_CLR_LITE_BLUE - 1] = gPokeblockLiteBlue_Pal,
+ [PBLOCK_CLR_OLIVE - 1] = gPokeblockOlive_Pal,
+ [PBLOCK_CLR_GRAY - 1] = gPokeblockGray_Pal,
+ [PBLOCK_CLR_BLACK - 1] = gPokeblockBlack_Pal,
+ [PBLOCK_CLR_WHITE - 1] = gPokeblockWhite_Pal,
+ [PBLOCK_CLR_GOLD - 1] = gPokeblockGold_Pal
};
static const union AffineAnimCmd sSpriteAffineAnim_84120DC[] =
diff --git a/src/pokedex.c b/src/pokedex.c
index c40cae9dc..458d6c94b 100644
--- a/src/pokedex.c
+++ b/src/pokedex.c
@@ -1959,7 +1959,7 @@ static void Task_HandleSearchResultsStartMenuInput(u8 taskId)
case 3: //BACK TO POKEDEX
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
gTasks[taskId].func = Task_ReturnToPokedexFromSearchResults;
- PlaySE(SE_TRACK_DOOR);
+ PlaySE(SE_TRUCK_DOOR);
break;
case 4: //CLOSE POKEDEX
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
@@ -2596,7 +2596,7 @@ static u16 TryDoPokedexScroll(u16 selectedMon, u16 ignored)
selectedMon = GetNextPosition(1, selectedMon, 0, sPokedexView->pokemonListCount - 1);
CreateScrollingPokemonSprite(1, selectedMon);
CreateMonListEntry(1, selectedMon, ignored);
- PlaySE(SE_Z_SCROLL);
+ PlaySE(SE_DEX_SCROLL);
}
else if ((gMain.heldKeys & DPAD_DOWN) && (selectedMon < sPokedexView->pokemonListCount - 1))
{
@@ -2604,7 +2604,7 @@ static u16 TryDoPokedexScroll(u16 selectedMon, u16 ignored)
selectedMon = GetNextPosition(0, selectedMon, 0, sPokedexView->pokemonListCount - 1);
CreateScrollingPokemonSprite(2, selectedMon);
CreateMonListEntry(2, selectedMon, ignored);
- PlaySE(SE_Z_SCROLL);
+ PlaySE(SE_DEX_SCROLL);
}
else if ((gMain.newKeys & DPAD_LEFT) && (selectedMon > 0))
{
@@ -2615,7 +2615,7 @@ static u16 TryDoPokedexScroll(u16 selectedMon, u16 ignored)
sPokedexView->pokeBallRotation += 16 * (selectedMon - startingPos);
ClearMonSprites();
CreateMonSpritesAtPos(selectedMon, 0xE);
- PlaySE(SE_Z_PAGE);
+ PlaySE(SE_DEX_PAGE);
}
else if ((gMain.newKeys & DPAD_RIGHT) && (selectedMon < sPokedexView->pokemonListCount - 1))
{
@@ -2625,7 +2625,7 @@ static u16 TryDoPokedexScroll(u16 selectedMon, u16 ignored)
sPokedexView->pokeBallRotation += 16 * (selectedMon - startingPos);
ClearMonSprites();
CreateMonSpritesAtPos(selectedMon, 0xE);
- PlaySE(SE_Z_PAGE);
+ PlaySE(SE_DEX_PAGE);
}
if (scrollDir == 0)
@@ -3353,7 +3353,7 @@ static void Task_HandleInfoScreenInput(u8 taskId)
// Scroll up/down
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
gTasks[taskId].func = Task_LoadInfoScreenWaitForFade;
- PlaySE(SE_Z_SCROLL);
+ PlaySE(SE_DEX_SCROLL);
return;
}
if (gMain.newKeys & B_BUTTON)
@@ -3382,7 +3382,7 @@ static void Task_HandleInfoScreenInput(u8 taskId)
case SIZE_SCREEN:
if (!sPokedexListItem->owned)
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
}
else
{
@@ -3406,7 +3406,7 @@ static void Task_HandleInfoScreenInput(u8 taskId)
{
sPokedexView->selectedScreen--;
HighlightScreenSelectBarItem(sPokedexView->selectedScreen, 0xD);
- PlaySE(SE_Z_PAGE);
+ PlaySE(SE_DEX_PAGE);
return;
}
if (((gMain.newKeys & DPAD_RIGHT)
@@ -3415,7 +3415,7 @@ static void Task_HandleInfoScreenInput(u8 taskId)
{
sPokedexView->selectedScreen++;
HighlightScreenSelectBarItem(sPokedexView->selectedScreen, 0xD);
- PlaySE(SE_Z_PAGE);
+ PlaySE(SE_DEX_PAGE);
return;
}
}
@@ -3654,7 +3654,7 @@ static void Task_HandleCryScreenInput(u8 taskId)
m4aMPlayContinue(&gMPlayInfo_BGM);
sPokedexView->screenSwitchState = 2;
gTasks[taskId].func = Task_SwitchScreensFromCryScreen;
- PlaySE(SE_Z_PAGE);
+ PlaySE(SE_DEX_PAGE);
return;
}
if ((gMain.newKeys & DPAD_RIGHT)
@@ -3662,7 +3662,7 @@ static void Task_HandleCryScreenInput(u8 taskId)
{
if (!sPokedexListItem->owned)
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
}
else
{
@@ -3670,7 +3670,7 @@ static void Task_HandleCryScreenInput(u8 taskId)
m4aMPlayContinue(&gMPlayInfo_BGM);
sPokedexView->screenSwitchState = 3;
gTasks[taskId].func = Task_SwitchScreensFromCryScreen;
- PlaySE(SE_Z_PAGE);
+ PlaySE(SE_DEX_PAGE);
}
return;
}
@@ -3823,7 +3823,7 @@ static void Task_HandleSizeScreenInput(u8 taskId)
BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK);
sPokedexView->screenSwitchState = 2;
gTasks[taskId].func = Task_SwitchScreensFromSizeScreen;
- PlaySE(SE_Z_PAGE);
+ PlaySE(SE_DEX_PAGE);
}
}
@@ -4936,7 +4936,7 @@ static void Task_HandleSearchTopBarInput(u8 taskId)
}
if ((gMain.newKeys & DPAD_LEFT) && gTasks[taskId].tTopBarItem > SEARCH_TOPBAR_SEARCH)
{
- PlaySE(SE_Z_PAGE);
+ PlaySE(SE_DEX_PAGE);
gTasks[taskId].tTopBarItem--;
HighlightSelectedSearchTopBarItem(gTasks[taskId].tTopBarItem);
CopyWindowToVram(0, 2);
@@ -4944,7 +4944,7 @@ static void Task_HandleSearchTopBarInput(u8 taskId)
}
if ((gMain.newKeys & DPAD_RIGHT) && gTasks[taskId].tTopBarItem < SEARCH_TOPBAR_CANCEL)
{
- PlaySE(SE_Z_PAGE);
+ PlaySE(SE_DEX_PAGE);
gTasks[taskId].tTopBarItem++;
HighlightSelectedSearchTopBarItem(gTasks[taskId].tTopBarItem);
CopyWindowToVram(0, 2);
@@ -4983,7 +4983,7 @@ static void Task_HandleSearchMenuInput(u8 taskId)
if (gMain.newKeys & B_BUTTON)
{
- PlaySE(SE_BOWA);
+ PlaySE(SE_BALL);
SetDefaultSearchModeAndOrder(taskId);
gTasks[taskId].func = Task_SwitchToSearchMenuTopBar;
return;
@@ -5011,7 +5011,7 @@ static void Task_HandleSearchMenuInput(u8 taskId)
{
EraseAndPrintSearchTextBox(gText_SearchingPleaseWait);
gTasks[taskId].func = Task_StartPokedexSearch;
- PlaySE(SE_Z_SEARCH);
+ PlaySE(SE_DEX_SEARCH);
CopyWindowToVram(0, 2);
}
}
@@ -5076,12 +5076,12 @@ static void Task_WaitAndCompleteSearch(u8 taskId)
{
if (sPokedexView->pokemonListCount != 0)
{
- PlaySE(SE_SEIKAI);
+ PlaySE(SE_SUCCESS);
EraseAndPrintSearchTextBox(gText_SearchCompleted);
}
else
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
EraseAndPrintSearchTextBox(gText_NoMatchingPkmnWereFound);
}
gTasks[taskId].func = Task_SearchCompleteWaitForInput;
@@ -5105,7 +5105,7 @@ static void Task_SearchCompleteWaitForInput(u8 taskId)
else
{
gTasks[taskId].func = Task_SwitchToSearchMenu;
- PlaySE(SE_BOWA);
+ PlaySE(SE_BALL);
}
}
}
@@ -5156,7 +5156,7 @@ static void Task_HandleSearchParameterInput(u8 taskId)
}
if (gMain.newKeys & B_BUTTON)
{
- PlaySE(SE_BOWA);
+ PlaySE(SE_BALL);
ClearSearchParameterBoxText();
DrawOrEraseSearchParameterBox(TRUE);
*cursorPos = gTasks[taskId].tCursorPos;
diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c
index 0232d4fc4..8450f8530 100755
--- a/src/pokedex_area_screen.c
+++ b/src/pokedex_area_screen.c
@@ -732,7 +732,7 @@ static void Task_HandlePokedexAreaScreenInput(u8 taskId)
else if (gMain.newKeys & DPAD_RIGHT || (gMain.newKeys & R_BUTTON && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
{
gTasks[taskId].data[1] = 2;
- PlaySE(SE_Z_PAGE);
+ PlaySE(SE_DEX_PAGE);
}
else
return;
diff --git a/src/pokemon.c b/src/pokemon.c
index 690f83bb1..188624d6a 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -1898,22 +1898,22 @@ static const u16 sDeoxysBaseStats[] =
const u16 gLinkPlayerFacilityClasses[NUM_MALE_LINK_FACILITY_CLASSES + NUM_FEMALE_LINK_FACILITY_CLASSES] =
{
// Male classes
- FACILITY_CLASS_COOLTRAINER_M,
- FACILITY_CLASS_BLACK_BELT,
+ FACILITY_CLASS_COOLTRAINER_M,
+ FACILITY_CLASS_BLACK_BELT,
FACILITY_CLASS_CAMPER,
- FACILITY_CLASS_YOUNGSTER,
- FACILITY_CLASS_PSYCHIC_M,
+ FACILITY_CLASS_YOUNGSTER,
+ FACILITY_CLASS_PSYCHIC_M,
FACILITY_CLASS_BUG_CATCHER,
- FACILITY_CLASS_PKMN_BREEDER_M,
+ FACILITY_CLASS_PKMN_BREEDER_M,
FACILITY_CLASS_GUITARIST,
// Female Classes
- FACILITY_CLASS_COOLTRAINER_F,
- FACILITY_CLASS_HEX_MANIAC,
+ FACILITY_CLASS_COOLTRAINER_F,
+ FACILITY_CLASS_HEX_MANIAC,
FACILITY_CLASS_PICNICKER,
- FACILITY_CLASS_LASS,
- FACILITY_CLASS_PSYCHIC_F,
+ FACILITY_CLASS_LASS,
+ FACILITY_CLASS_PSYCHIC_F,
FACILITY_CLASS_BATTLE_GIRL,
- FACILITY_CLASS_PKMN_BREEDER_F,
+ FACILITY_CLASS_PKMN_BREEDER_F,
FACILITY_CLASS_BEAUTY
};
@@ -5806,7 +5806,7 @@ void AdjustFriendship(struct Pokemon *mon, u8 event)
if (friendship > 199)
friendshipLevel++;
- if ((event != FRIENDSHIP_EVENT_WALKING || !(Random() & 1))
+ if ((event != FRIENDSHIP_EVENT_WALKING || !(Random() & 1))
&& (event != FRIENDSHIP_EVENT_LEAGUE_BATTLE || IS_LEAGUE_BATTLE))
{
s8 mod = sFriendshipEventModifiers[event][friendshipLevel];
@@ -5848,7 +5848,7 @@ void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies)
{
if (totalEVs >= MAX_TOTAL_EVS)
break;
-
+
if (CheckPartyHasHadPokerus(mon, 0))
multiplier = 2;
else
@@ -5895,9 +5895,9 @@ void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies)
if (totalEVs + (s16)evIncrease > MAX_TOTAL_EVS)
evIncrease = ((s16)evIncrease + MAX_TOTAL_EVS) - (totalEVs + evIncrease);
- if (evs[i] + (s16)evIncrease > 255)
+ if (evs[i] + (s16)evIncrease > MAX_PER_STAT_EVS)
{
- int val1 = (s16)evIncrease + 255;
+ int val1 = (s16)evIncrease + MAX_PER_STAT_EVS;
int val2 = evs[i] + evIncrease;
evIncrease = val1 - val2;
}
@@ -6138,7 +6138,7 @@ u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves)
for (i = 0; i < MAX_MON_MOVES; i++)
learnedMoves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, 0);
- for (i = 0; i < 20; i++)
+ for (i = 0; i < MAX_LEVEL_UP_MOVES; i++)
{
u16 moveLevel;
@@ -6171,7 +6171,7 @@ u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves)
u8 numMoves = 0;
int i;
- for (i = 0; i < 20 && gLevelUpLearnsets[species][i] != LEVEL_UP_END; i++)
+ for (i = 0; i < MAX_LEVEL_UP_MOVES && gLevelUpLearnsets[species][i] != LEVEL_UP_END; i++)
moves[numMoves++] = gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID;
return numMoves;
@@ -6180,7 +6180,7 @@ u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves)
u8 GetNumberOfRelearnableMoves(struct Pokemon *mon)
{
u16 learnedMoves[MAX_MON_MOVES];
- u16 moves[20];
+ u16 moves[MAX_LEVEL_UP_MOVES];
u8 numMoves = 0;
u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
u8 level = GetMonData(mon, MON_DATA_LEVEL, 0);
@@ -6192,7 +6192,7 @@ u8 GetNumberOfRelearnableMoves(struct Pokemon *mon)
for (i = 0; i < MAX_MON_MOVES; i++)
learnedMoves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, 0);
- for (i = 0; i < 20; i++)
+ for (i = 0; i < MAX_LEVEL_UP_MOVES; i++)
{
u16 moveLevel;
@@ -6253,11 +6253,11 @@ void ClearBattleMonForms(void)
u16 GetBattleBGM(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON)
- return MUS_BATTLE34;
+ return MUS_VS_KYOGRE_GROUDON;
else if (gBattleTypeFlags & BATTLE_TYPE_REGI)
- return MUS_BATTLE36;
+ return MUS_VS_REGI;
else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))
- return MUS_BATTLE20;
+ return MUS_VS_TRAINER;
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
{
u8 trainerClass;
@@ -6273,24 +6273,24 @@ u16 GetBattleBGM(void)
{
case TRAINER_CLASS_AQUA_LEADER:
case TRAINER_CLASS_MAGMA_LEADER:
- return MUS_BATTLE30;
+ return MUS_VS_AQUA_MAGMA_LEADER;
case TRAINER_CLASS_TEAM_AQUA:
case TRAINER_CLASS_TEAM_MAGMA:
case TRAINER_CLASS_AQUA_ADMIN:
case TRAINER_CLASS_MAGMA_ADMIN:
- return MUS_BATTLE31;
+ return MUS_VS_AQUA_MAGMA;
case TRAINER_CLASS_LEADER:
- return MUS_BATTLE32;
+ return MUS_VS_GYM_LEADER;
case TRAINER_CLASS_CHAMPION:
- return MUS_BATTLE33;
+ return MUS_VS_CHAMPION;
case TRAINER_CLASS_PKMN_TRAINER_3:
if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER)
- return MUS_BATTLE35;
+ return MUS_VS_RIVAL;
if (!StringCompare(gTrainers[gTrainerBattleOpponent_A].trainerName, gText_BattleWallyName))
- return MUS_BATTLE20;
- return MUS_BATTLE35;
+ return MUS_VS_TRAINER;
+ return MUS_VS_RIVAL;
case TRAINER_CLASS_ELITE_FOUR:
- return MUS_BATTLE38;
+ return MUS_VS_ELITE_FOUR;
case TRAINER_CLASS_SALON_MAIDEN:
case TRAINER_CLASS_DOME_ACE:
case TRAINER_CLASS_PALACE_MAVEN:
@@ -6298,13 +6298,13 @@ u16 GetBattleBGM(void)
case TRAINER_CLASS_FACTORY_HEAD:
case TRAINER_CLASS_PIKE_QUEEN:
case TRAINER_CLASS_PYRAMID_KING:
- return MUS_VS_FRONT;
+ return MUS_VS_FRONTIER_BRAIN;
default:
- return MUS_BATTLE20;
+ return MUS_VS_TRAINER;
}
}
else
- return MUS_BATTLE27;
+ return MUS_VS_WILD;
}
void PlayBattleBGM(void)
diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c
index e86b937a2..07f6bc54b 100755
--- a/src/pokemon_jump.c
+++ b/src/pokemon_jump.c
@@ -576,7 +576,7 @@ static void sub_802ACA0(u8 taskId)
case 2:
if (!sub_802D0F0() && IsNotWaitingForBGMStop() == TRUE)
{
- FadeOutAndPlayNewMapMusic(MUS_RG_JUMP, 8);
+ FadeOutAndPlayNewMapMusic(MUS_RG_POKE_JUMP, 8);
gUnknown_02022CFC->unk8++;
}
break;
@@ -1721,7 +1721,7 @@ static void sub_802C1BC(void)
gUnknown_02022CFC->unk83AC->unk10 = 0;
}
-static const u16 gUnknown_082FB654[] = {SE_REGI, SE_REAPOKE, SE_W234, SE_RG_EXCELLENT};
+static const u16 gUnknown_082FB654[] = {SE_SHOP, SE_SHINY, SE_M_MORNING_SUN, SE_RG_POKE_JUMP_SUCCESS};
static void sub_802C1DC(void)
{
@@ -1798,9 +1798,9 @@ static void sub_802C280(void)
}
if (whichSound & 0x2)
- PlaySE(SE_RG_NAWAMISS);
+ PlaySE(SE_RG_POKE_JUMP_FAILURE);
else if (whichSound & 0x1)
- PlaySE(SE_DANSA);
+ PlaySE(SE_LEDGE);
}
static const s8 gUnknown_082FB65C[][48] =
@@ -2702,7 +2702,7 @@ static void sub_802CDD4(struct Sprite *sprite)
switch (sprite->data[0])
{
case 0:
- PlaySE(SE_JITE_PYOKO);
+ PlaySE(SE_BIKE_HOP);
sprite->data[1] = 0;
sprite->data[0]++;
// fall through
@@ -3275,7 +3275,7 @@ static void sub_802D7E8(u16 itemId, u16 quantity)
gUnknown_02022D00->unk12 = sub_802DA9C(4, 8, 22, 4);
AddTextPrinterParameterized(gUnknown_02022D00->unk12, 1, gUnknown_02022D00->strBuff, 0, 1, TEXT_SPEED_FF, NULL);
CopyWindowToVram(gUnknown_02022D00->unk12, 2);
- gUnknown_02022D00->unk14 = MUS_FANFA1;
+ gUnknown_02022D00->unk14 = MUS_LEVEL_UP;
gUnknown_02022D00->unkD = 0;
}
@@ -3684,14 +3684,14 @@ static void sub_802E0AC(struct PokemonJump1_MonInfo *arg0)
packet.species = arg0->species,
packet.otId = arg0->otId,
packet.personality = arg0->personality,
- sub_800FE50(&packet);
+ Rfu_SendPacket(&packet);
}
static bool32 sub_802E0D0(int multiplayerId, struct PokemonJump1_MonInfo *arg0)
{
struct MonInfoPacket packet;
- if ((gRecvCmds[multiplayerId][0] & 0xFF00) != 0x2F00)
+ if ((gRecvCmds[multiplayerId][0] & 0xFF00) != RFUCMD_SEND_PACKET)
return FALSE;
memcpy(&packet, &gRecvCmds[multiplayerId][1], sizeof(packet));
@@ -3718,7 +3718,7 @@ static void sub_802E120(u32 arg0)
struct UnkPacket2 packet;
packet.id = 2;
packet.unk4 = arg0;
- sub_800FE50(&packet);
+ Rfu_SendPacket(&packet);
}
struct UnkPacket3
@@ -3746,14 +3746,14 @@ static void sub_802E138(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *
packet.unk2 = arg0->unk10;
packet.unk3_1 = arg0->unk14;
packet.unk4 = arg0->unkE;
- sub_800FE50(&packet);
+ Rfu_SendPacket(&packet);
}
static bool32 sub_802E1BC(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1)
{
struct UnkPacket3 packet;
- if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00)
+ if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET)
return FALSE;
memcpy(&packet, &gRecvCmds[0][1], sizeof(packet));
@@ -3792,14 +3792,14 @@ static void sub_802E234(struct PokemonJump1_82E4 *arg0, u8 arg1, u16 arg2)
packet.unk4 = arg0->unkE;
packet.unk6 = arg1;
packet.unk8 = arg2;
- sub_800FE50(&packet);
+ Rfu_SendPacket(&packet);
}
static bool32 sub_802E264(struct PokemonJump1_82E4 *arg0, int multiplayerId, u8 *arg2, u16 *arg3)
{
struct UnkPacket4 packet;
- if ((gRecvCmds[multiplayerId][0] & 0xFF00) != 0x2F00)
+ if ((gRecvCmds[multiplayerId][0] & 0xFF00) != RFUCMD_SEND_PACKET)
return FALSE;
memcpy(&packet, &gRecvCmds[multiplayerId][1], sizeof(packet));
@@ -3819,7 +3819,7 @@ static bool32 sub_802E2D0(struct PokemonJump1_82E4 *arg0, int multiplayerId)
{
struct UnkPacket4 packet;
- if ((gRecvCmds[multiplayerId][0] & 0xFF00) != 0x2F00)
+ if ((gRecvCmds[multiplayerId][0] & 0xFF00) != RFUCMD_SEND_PACKET)
return FALSE;
memcpy(&packet, &gRecvCmds[multiplayerId][1], sizeof(packet));
diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c
index 905bbca9a..fcca744c2 100644
--- a/src/pokemon_storage_system.c
+++ b/src/pokemon_storage_system.c
@@ -2576,7 +2576,7 @@ static void Cb_MainPSS(u8 taskId)
sPSSData->state = 7;
break;
case 24:
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
break;
}
break;
@@ -2622,12 +2622,12 @@ static void Cb_MainPSS(u8 taskId)
}
break;
case 4:
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
PrintStorageActionText(PC_TEXT_LAST_POKE);
sPSSData->state = 6;
break;
case 5:
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
PrintStorageActionText(PC_TEXT_PLEASE_REMOVE_MAIL);
sPSSData->state = 6;
break;
@@ -2843,17 +2843,17 @@ static void Cb_OnSelectedMon(u8 taskId)
}
break;
case 3:
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
PrintStorageActionText(PC_TEXT_LAST_POKE);
sPSSData->state = 6;
break;
case 5:
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
PrintStorageActionText(PC_TEXT_CANT_RELEASE_EGG);
sPSSData->state = 6;
break;
case 4:
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
PrintStorageActionText(PC_TEXT_PLEASE_REMOVE_MAIL);
sPSSData->state = 6;
break;
@@ -3277,7 +3277,7 @@ static void Cb_ItemToBag(u8 taskId)
case 0:
if (!AddBagItem(sPSSData->cursorMonItem, 1))
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
PrintStorageActionText(PC_TEXT_BAG_FULL);
sPSSData->state = 3;
}
@@ -3742,7 +3742,7 @@ static void Cb_OnCloseBoxPressed(u8 taskId)
case 0:
if (IsMonBeingMoved())
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
PrintStorageActionText(PC_TEXT_HOLDING_POKE);
sPSSData->state = 1;
}
@@ -3803,7 +3803,7 @@ static void Cb_OnBPressed(u8 taskId)
case 0:
if (IsMonBeingMoved())
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
PrintStorageActionText(PC_TEXT_HOLDING_POKE);
sPSSData->state = 1;
}
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 2e7995222..d016c455c 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -1903,7 +1903,7 @@ static void Task_HandleInput_MoveSelect(u8 taskId)
}
else
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
}
}
else if (gMain.newKeys & B_BUTTON)
@@ -2191,7 +2191,7 @@ static void Task_HandleReplaceMoveInput(u8 taskId)
}
else
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
ShowCantForgetHMsWindow(taskId);
}
}
diff --git a/src/pokenav_main_menu.c b/src/pokenav_main_menu.c
index d9aae7e4e..155e30939 100644
--- a/src/pokenav_main_menu.c
+++ b/src/pokenav_main_menu.c
@@ -312,7 +312,7 @@ u32 PokenavMainMenuLoopedTaskIsActive(void)
void ShutdownPokenav(void)
{
- PlaySE(SE_PN_OFF);
+ PlaySE(SE_POKENAV_OFF);
sub_81CAADC();
BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK);
}
diff --git a/src/pokenav_match_call_1.c b/src/pokenav_match_call_1.c
index 1e4239bbc..265259394 100755
--- a/src/pokenav_match_call_1.c
+++ b/src/pokenav_match_call_1.c
@@ -118,7 +118,7 @@ static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *state)
else
{
// Cant exit Match Call menu before calling Mr Stone during tutorial
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
}
}
diff --git a/src/pokenav_match_call_2.c b/src/pokenav_match_call_2.c
index d03bad88b..60091577e 100755
--- a/src/pokenav_match_call_2.c
+++ b/src/pokenav_match_call_2.c
@@ -601,7 +601,7 @@ u32 DoMatchCallMessage(s32 taskState)
return LT_PAUSE;
PrintCallingDots(state);
- PlaySE(SE_TOREEYE);
+ PlaySE(SE_POKENAV_CALL);
state->unkE = 0;
return LT_INC_AND_PAUSE;
case 2:
@@ -654,7 +654,7 @@ u32 sub_81CB888(s32 taskState)
{
case 0:
if (!state->unkE)
- PlaySE(SE_TOREOFF);
+ PlaySE(SE_POKENAV_HANG_UP);
PlaySE(SE_SELECT);
break;
diff --git a/src/pokenav_menu_handler_1.c b/src/pokenav_menu_handler_1.c
index bd33a21af..d8d8e1509 100644
--- a/src/pokenav_menu_handler_1.c
+++ b/src/pokenav_menu_handler_1.c
@@ -273,14 +273,14 @@ static u32 HandleMainMenuInputTutorial(struct Pokenav1Struct *state)
}
else
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
return POKENAV_MENU_FUNC_NONE;
}
}
if (gMain.newKeys & B_BUTTON)
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
return POKENAV_MENU_FUNC_NONE;
}
@@ -298,7 +298,7 @@ static u32 HandleMainMenuInputEndTutorial(struct Pokenav1Struct *state)
u32 menuItem = sMenuItems[state->menuType][state->cursorPos];
if (menuItem != POKENAV_MENUITEM_MATCH_CALL && menuItem != POKENAV_MENUITEM_SWITCH_OFF)
{
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
return POKENAV_MENU_FUNC_NONE;
}
else if (menuItem == POKENAV_MENUITEM_MATCH_CALL)
diff --git a/src/pokenav_menu_handler_2.c b/src/pokenav_menu_handler_2.c
index 86ad8c744..2be92013f 100644
--- a/src/pokenav_menu_handler_2.c
+++ b/src/pokenav_menu_handler_2.c
@@ -465,7 +465,7 @@ static u32 LoopedTask_OpenMenu(s32 state)
PokenavFadeScreen(1);
else
{
- PlaySE(SE_PN_ON);
+ PlaySE(SE_POKENAV_ON);
PokenavFadeScreen(3);
}
switch (GetPokenavMenuType())
@@ -675,7 +675,7 @@ static u32 LoopedTask_SelectRibbonsNoWinners(s32 state)
switch (state)
{
case 0:
- PlaySE(SE_HAZURE);
+ PlaySE(SE_FAILURE);
PrintNoRibbonWinners();
return LT_INC_AND_PAUSE;
case 1:
diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c
index 986a2d3a2..f47ab5e89 100644
--- a/src/rayquaza_scene.c
+++ b/src/rayquaza_scene.c
@@ -1565,7 +1565,7 @@ static void Task_DuoFightAnim(u8 taskId)
BlendPalettes(-1, 0x10, 0);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
SetVBlankCallback(VBlankCB_DuoFight);
- PlaySE(SE_T_OOAME);
+ PlaySE(SE_DOWNPOUR);
}
static void sub_81D7228(u8 taskId)
@@ -1670,14 +1670,14 @@ static void Task_HandleDuoFight(u8 taskId)
static void sub_81D7438(void)
{
- PlaySE(SE_T_KAMI);
+ PlaySE(SE_THUNDER);
sub_80A2C44(0x7FFF, 0, 0x10, 0, -1, 0, 0);
sub_80A2C44(0xFFFF0000, 0, 0x10, 0, 0, 0, 1);
}
static void sub_81D7480(void)
{
- PlaySE(SE_T_KAMI);
+ PlaySE(SE_THUNDER);
sub_80A2C44(0x7FFF, 0, 0x10, 0x10, -1, 0, 0);
sub_80A2C44(0xFFFF0000, 0, 0x10, 0x10, 0, 0, 1);
}
@@ -1714,7 +1714,7 @@ static void sub_81D752C(u8 taskId)
static void DuoFightEnd(u8 taskId, s8 palDelay)
{
- PlaySE(SE_T_OOAME_E);
+ PlaySE(SE_DOWNPOUR_STOP);
BeginNormalPaletteFade(0xFFFFFFFF, palDelay, 0, 0x10, RGB_BLACK);
gTasks[taskId].func = Task_DuoFightEnd;
}
@@ -1950,7 +1950,7 @@ static void sub_81D7E9C(void)
static void Task_RayTakesFlightAnim(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- PlayNewMapMusic(MUS_REKKUU_KOURIN);
+ PlayNewMapMusic(MUS_RAYQUAZA_APPEARS);
sub_81D7E10();
sub_81D7E9C();
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND);
@@ -2358,7 +2358,7 @@ static void Task_HandleRayCharges(u8 taskId)
s16 *data = gTasks[taskId].data;
sub_81D8BB4();
if ((data[3] & 7) == 0 && data[0] <= 1 && data[1] <= 89)
- PlaySE(SE_OP_BASYU);
+ PlaySE(SE_INTRO_BLAST);
data[3]++;
switch (data[0])
@@ -2777,7 +2777,7 @@ static void sub_81D9528(struct Sprite *sprite)
}
if (sprite->data[4] % 64 == 0)
- PlaySE(SE_W250);
+ PlaySE(SE_M_WHIRLPOOL);
sprite->data[4]++;
}
@@ -2802,7 +2802,7 @@ static void sub_81D961C(struct Sprite *sprite)
{
sub_81D97E0(sprite);
if (sprite->data[4] == 0)
- PlaySE(SE_BT_START);
+ PlaySE(SE_MUGSHOT);
if (sprite->data[4] == -3)
sub_81D9868(sprite, 2, 48, 16);
}
@@ -2900,7 +2900,7 @@ static void sub_81D98B4(u8 taskId)
break;
case 1:
if (data[5] == 8)
- PlaySE(SE_JIDO_DOA);
+ PlaySE(SE_SLIDING_DOOR);
if (data[2] == 2)
{
data[0]++;
diff --git a/src/record_mixing.c b/src/record_mixing.c
index 128e40163..6c0a02d8c 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -302,7 +302,7 @@ static void Task_RecordMixing_SoundEffect(u8 taskId)
{
if (++gTasks[taskId].tCounter == 50)
{
- PlaySE(SE_W213);
+ PlaySE(SE_M_ATTRACT);
gTasks[taskId].tCounter = 0;
}
}
@@ -343,7 +343,7 @@ static void Task_RecordMixing_Main(u8 taskId)
case 2:
data[10] = CreateTask(Task_DoRecordMixing, 10);
tState = 3;
- PlaySE(SE_W226);
+ PlaySE(SE_M_BATON_PASS);
break;
case 3: // wait for Task_DoRecordMixing
if (!gTasks[data[10]].isActive)
diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c
index c948cde4c..204eb6733 100644
--- a/src/reset_rtc_screen.c
+++ b/src/reset_rtc_screen.c
@@ -611,7 +611,7 @@ static void Task_ResetRtcScreen(u8 taskId)
if (TrySavingData(SAVE_NORMAL) == SAVE_STATUS_OK)
{
ShowMessage(gText_SaveCompleted);
- PlaySE(SE_PINPON);
+ PlaySE(SE_DING_DONG);
}
else
{
diff --git a/src/rotating_gate.c b/src/rotating_gate.c
index 340fc58dd..162eb3e6d 100644
--- a/src/rotating_gate.c
+++ b/src/rotating_gate.c
@@ -776,7 +776,7 @@ static void SpriteCallback_RotatingGate(struct Sprite *sprite)
if (GetPlayerSpeed() != 1)
affineAnimation += 8;
- PlaySE(SE_HI_TURUN);
+ PlaySE(SE_ROTATING_GATE);
StartSpriteAffineAnim(sprite, affineAnimation);
}
else if (rotationDirection == ROTATE_CLOCKWISE)
@@ -786,7 +786,7 @@ static void SpriteCallback_RotatingGate(struct Sprite *sprite)
if (GetPlayerSpeed() != 1)
affineAnimation += 8;
- PlaySE(SE_HI_TURUN);
+ PlaySE(SE_ROTATING_GATE);
StartSpriteAffineAnim(sprite, affineAnimation);
}
diff --git a/src/roulette.c b/src/roulette.c
index 4ca892912..a0d1a7dc0 100644
--- a/src/roulette.c
+++ b/src/roulette.c
@@ -1522,7 +1522,7 @@ static void Task_HandleBetGridInput(u8 taskId)
}
else
{
- m4aSongNumStart(SE_REGI);
+ m4aSongNumStart(SE_SHOP);
gTasks[taskId].func = Task_PlaceBet;
}
}
@@ -1679,7 +1679,7 @@ static void Task_RollBall(u8 taskId)
gTasks[taskId].tBallNum++;
gTasks[taskId].tTotalBallNum++;
SetBallCounterNumLeft(BALLS_PER_ROUND - gTasks[taskId].tBallNum);
- m4aSongNumStart(SE_TAMAKORO);
+ m4aSongNumStart(SE_ROULETTE_BALL);
gTasks[taskId].func = Task_RecordBallHit;
}
@@ -1804,14 +1804,14 @@ static void Task_PrintSpinResult(u8 taskId)
case 2: // never happens
if (gTasks[taskId].tMultiplier == MAX_MULTIPLIER)
{
- PlayFanfare(MUS_ME_B_BIG);
+ PlayFanfare(MUS_SLOTS_JACKPOT);
DrawStdWindowFrame(sTextWindowId, FALSE);
AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_Jackpot, 0, 1, TEXT_SPEED_FF, NULL);
CopyWindowToVram(sTextWindowId, 3);
}
else
{
- PlayFanfare(MUS_ME_B_SMALL);
+ PlayFanfare(MUS_SLOTS_WIN);
DrawStdWindowFrame(sTextWindowId, FALSE);
AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_ItsAHit, 0, 1, TEXT_SPEED_FF, NULL);
CopyWindowToVram(sTextWindowId, 3);
@@ -1819,7 +1819,7 @@ static void Task_PrintSpinResult(u8 taskId)
break;
case FALSE:
default:
- m4aSongNumStart(SE_HAZURE);
+ m4aSongNumStart(SE_FAILURE);
DrawStdWindowFrame(sTextWindowId, FALSE);
AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_NothingDoing, 0, 1, TEXT_SPEED_FF, NULL);
CopyWindowToVram(sTextWindowId, 3);
@@ -3924,7 +3924,7 @@ static void HideWheelBalls(void)
UpdateBallRelativeWheelAngle(sprite); \
sprite->sBallWheelAngle = (sprite->sBallWheelAngle / DEGREES_PER_SLOT) * DEGREES_PER_SLOT + 15; \
sprite->callback = SpriteCB_BallLandInSlot; \
- m4aSongNumStartOrChange(SE_HASHI); \
+ m4aSongNumStartOrChange(SE_BRIDGE_WALK); \
}
// "wheelAngle" and "sBallAngle" are relative to the screen (e.g. 180 degrees for either is always screen bottom)
@@ -4136,7 +4136,7 @@ static void SpriteCB_UnstickBall_TaillowPickUp(struct Sprite *sprite)
sprite->animEnded = FALSE;
sprite->data[2] = 0;
sprite->callback = SpriteCB_UnstickBall_TaillowDrop;
- m4aSongNumStart(SE_NAGERU);
+ m4aSongNumStart(SE_BALL_THROW);
}
}
}
@@ -4203,7 +4203,7 @@ static void SpriteCB_RollBall_TryLandAdjacent(struct Sprite *sprite)
{
// Ball is stuck, need Shroomish/Taillow to clear ball
sprite->animPaused = TRUE;
- m4aSongNumStart(SE_KON);
+ m4aSongNumStart(SE_BALL_BOUNCE_1);
SetBallStuck(sprite);
}
}
@@ -4224,7 +4224,7 @@ static void SpriteCB_RollBall_TryLand(struct Sprite *sprite)
// Space has already been landed on, try to fall into adjacent space
u8 slotId;
u32 fallRight;
- m4aSongNumStart(SE_KON);
+ m4aSongNumStart(SE_BALL_BOUNCE_1);
fallRight = Random() & 1;
if (fallRight)
{
@@ -4319,7 +4319,7 @@ static void SpriteCB_RollBall_Fast(struct Sprite *sprite)
if (sRoulette->ballDistToCenter > 60.0f)
return;
- m4aSongNumStartOrChange(SE_TAMAKORO_E);
+ m4aSongNumStartOrChange(SE_ROULETTE_BALL2);
sRoulette->ballFallSpeed = -(20.0f / (float)(sRoulette->ballTravelDistMed));
sRoulette->ballAngleAccel = ((1.0f - sRoulette->ballAngleSpeed) / (float)(sRoulette->ballTravelDistMed));
sprite->animNum = 1;
@@ -4573,7 +4573,7 @@ static void SpriteCB_ShroomishFall(struct Sprite *sprite)
gSprites[sprite->sMonShadowSpriteId].data[1] = -2;
gSprites[sprite->sBallShadowSpriteId].invisible = FALSE;
gSprites[sprite->sBallShadowSpriteId].callback = SpriteCB_ShroomishShakeScreen;
- m4aSongNumStart(SE_W070);
+ m4aSongNumStart(SE_M_STRENGTH);
}
}
@@ -4596,7 +4596,7 @@ static void SpriteCB_Shroomish(struct Sprite *sprite)
sprite->invisible = FALSE;
sprite->data[7]++;
- m4aSongNumStart(SE_RU_HYUU);
+ m4aSongNumStart(SE_FALL);
sRoulette->shroomishShadowTimer = 1;
sRoulette->shroomishShadowAlpha = sShroomishShadowAlphas[0];
}
@@ -4643,7 +4643,7 @@ static void SpriteCB_Taillow_FlyAway(struct Sprite *sprite)
sprite->callback = SpriteCallbackDummy;
sprite->invisible = TRUE;
sprite->animPaused = TRUE;
- m4aSongNumStop(SE_BASABASA);
+ m4aSongNumStop(SE_TAILLOW_WING_FLAP);
DestroySprite(sprite);
FreeOamMatrix(gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]].oam.matrixNum);
DestroySprite(&gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]]);
@@ -4674,7 +4674,7 @@ static void SpriteCB_Taillow_PickUpBall(struct Sprite *sprite)
}
else
{
- m4aSongNumStart(SE_RU_HYUU);
+ m4aSongNumStart(SE_FALL);
StartSpriteAnim(sprite, sRoulette->ball->sStuckOnWheelLeft + 4);
sprite->callback = SpriteCB_Taillow_FlyAway;
gSprites[sprite->sMonShadowSpriteId].affineAnimPaused = FALSE;
@@ -4715,7 +4715,7 @@ static void SpriteCB_Taillow_FlyIn(struct Sprite *sprite)
}
else
{
- m4aSongNumStartOrChange(SE_BASABASA);
+ m4aSongNumStartOrChange(SE_TAILLOW_WING_FLAP);
if (sRoulette->ball->sStuckOnWheelLeft == 0)
PlayCry1(SPECIES_TAILLOW, 63);
else
@@ -4770,5 +4770,5 @@ static void SpriteCB_Taillow(struct Sprite *sprite)
}
gSprites[sprite->sMonShadowSpriteId].callback = SpriteCB_TaillowShadow_FlyIn;
gSprites[sprite->sMonSpriteId].callback = SpriteCB_Taillow_FlyIn;
- m4aSongNumStart(SE_RU_HYUU);
+ m4aSongNumStart(SE_FALL);
}
diff --git a/src/script.c b/src/script.c
index 9ba1a7429..889c25765 100644
--- a/src/script.c
+++ b/src/script.c
@@ -26,9 +26,9 @@ void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTable
s32 i;
ctx->mode = 0;
- ctx->scriptPtr = 0;
+ ctx->scriptPtr = NULL;
ctx->stackDepth = 0;
- ctx->nativePtr = 0;
+ ctx->nativePtr = NULL;
ctx->cmdTable = cmdTable;
ctx->cmdTableEnd = cmdTableEnd;
@@ -55,7 +55,7 @@ void SetupNativeScript(struct ScriptContext *ctx, bool8 (*ptr)(void))
void StopScript(struct ScriptContext *ctx)
{
ctx->mode = 0;
- ctx->scriptPtr = 0;
+ ctx->scriptPtr = NULL;
}
bool8 RunScriptCommand(struct ScriptContext *ctx)
diff --git a/src/shop.c b/src/shop.c
index 4fc44beee..5cba2767d 100755
--- a/src/shop.c
+++ b/src/shop.c
@@ -1089,7 +1089,7 @@ static void BuyMenuSubtractMoney(u8 taskId)
{
IncrementGameStat(GAME_STAT_SHOPPED);
RemoveMoney(&gSaveBlock1Ptr->money, gShopDataPtr->totalCost);
- PlaySE(SE_REGI);
+ PlaySE(SE_SHOP);
PrintMoneyAmountInMoneyBox(0, GetMoney(&gSaveBlock1Ptr->money), 0);
if (gMartInfo.martType == MART_TYPE_NORMAL)
diff --git a/src/slot_machine.c b/src/slot_machine.c
index 8669b543b..9d19fc9a7 100644
--- a/src/slot_machine.c
+++ b/src/slot_machine.c
@@ -1220,7 +1220,7 @@ static bool8 SlotAction_HandleBetInput(struct Task *task)
sSlotMachine->coins -= (MAX_BET - sSlotMachine->bet);
sSlotMachine->bet = MAX_BET;
sSlotMachine->state = SLOT_ACTION_START_SPIN;
- PlaySE(SE_REGI);
+ PlaySE(SE_SHOP);
}
else // you didn't have enough coins to bet the max
{
@@ -1232,7 +1232,7 @@ static bool8 SlotAction_HandleBetInput(struct Task *task)
// Increase bet
if (JOY_NEW(DPAD_DOWN) && sSlotMachine->coins != 0)
{
- PlaySE(SE_REGI);
+ PlaySE(SE_SHOP);
LightenBetTiles(sSlotMachine->bet);
sSlotMachine->coins--;
sSlotMachine->bet++;
@@ -1335,7 +1335,7 @@ static bool8 SlotAction_AwaitReelStop(struct Task *task)
{
if (JOY_NEW(A_BUTTON))
{
- PlaySE(SE_JYUNI);
+ PlaySE(SE_CONTEST_PLACE);
StopSlotReel(sSlotMachine->currReel);
PressStopReelButton(sSlotMachine->currReel);
sSlotMachine->state = SLOT_ACTION_AWAIT_ALL_REELS_STOP;
@@ -1381,17 +1381,17 @@ static bool8 SlotAction_CheckMatches(struct Task *task)
}
if (sSlotMachine->matchedSymbols & ((1 << MATCHED_777_BLUE) | (1 << MATCHED_777_RED)))
{
- PlayFanfare(MUS_ME_B_BIG);
+ PlayFanfare(MUS_SLOTS_JACKPOT);
CreateDigitalDisplayScene(DIG_DISPLAY_BONUS_BIG);
}
else if (sSlotMachine->matchedSymbols & (1 << MATCHED_777_MIXED))
{
- PlayFanfare(MUS_ME_B_BIG);
+ PlayFanfare(MUS_SLOTS_JACKPOT);
CreateDigitalDisplayScene(DIG_DISPLAY_BONUS_REG);
}
else
{
- PlayFanfare(MUS_ME_B_SMALL);
+ PlayFanfare(MUS_SLOTS_WIN);
CreateDigitalDisplayScene(DIG_DISPLAY_WIN);
}
// if you matched 777...
@@ -3098,7 +3098,7 @@ static void ReelTime_Init(struct Task *task)
CreateReelTimeNumberGapSprite();
GetReeltimeDraw();
StopMapMusic();
- PlayNewMapMusic(MUS_BD_TIME);
+ PlayNewMapMusic(MUS_ROULETTE);
}
static void ReelTime_WindowEnter(struct Task *task)
@@ -3240,7 +3240,7 @@ static void ReelTime_PikachuReact(struct Task *task)
{
task->data[4] = 0xa0;
StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], 5);
- PlayFanfare(MUS_ME_ZANNEN);
+ PlayFanfare(MUS_TOO_BAD);
}
else
{
@@ -3252,7 +3252,7 @@ static void ReelTime_PikachuReact(struct Task *task)
ResetPikaPowerBolts();
sSlotMachine->pikaPower = 0;
}
- PlayFanfare(MUS_ME_B_SMALL);
+ PlayFanfare(MUS_SLOTS_WIN);
}
}
}
@@ -3328,8 +3328,8 @@ static void ReelTime_ExplodeMachine(struct Task *task)
task->data[4] = 4;
task->data[5] = 0;
StopMapMusic();
- PlayFanfare(MUS_ME_ZANNEN);
- PlaySE(SE_W153);
+ PlayFanfare(MUS_TOO_BAD);
+ PlaySE(SE_M_EXPLOSION);
}
static void ReelTime_WaitExplode(struct Task *task)
diff --git a/src/sound.c b/src/sound.c
index dba4354df..ee1753bb3 100644
--- a/src/sound.c
+++ b/src/sound.c
@@ -41,24 +41,24 @@ static void Task_DuckBGMForPokemonCry(u8 taskId);
static void RestoreBGMVolumeAfterPokemonCry(void);
static const struct Fanfare sFanfares[] = {
- { MUS_FANFA1, 80 },
- { MUS_FANFA4, 160 },
- { MUS_FANFA5, 220 },
- { MUS_ME_WAZA, 220 },
- { MUS_ME_ASA, 160 },
- { MUS_ME_BACHI, 340 },
- { MUS_ME_WASURE, 180 },
- { MUS_ME_KINOMI, 120 },
- { MUS_ME_TAMA, 710 },
- { MUS_ME_B_BIG, 250 },
- { MUS_ME_B_SMALL, 150 },
- { MUS_ME_ZANNEN, 160 },
- { MUS_RG_POKEFUE, 450 },
- { MUS_RG_FAN5, 170 },
- { MUS_RG_FAN2, 196 },
- { MUS_ME_POINTGET, 313 },
- { MUS_ME_SYMBOLGET, 318 },
- { MUS_ME_TORE_EYE, 135 },
+ { MUS_LEVEL_UP, 80 },
+ { MUS_OBTAIN_ITEM, 160 },
+ { MUS_EVOLVED, 220 },
+ { MUS_OBTAIN_TMHM, 220 },
+ { MUS_HEAL, 160 },
+ { MUS_OBTAIN_BADGE, 340 },
+ { MUS_MOVE_DELETED, 180 },
+ { MUS_OBTAIN_BERRY, 120 },
+ { MUS_AWAKEN_LEGEND, 710 },
+ { MUS_SLOTS_JACKPOT, 250 },
+ { MUS_SLOTS_WIN, 150 },
+ { MUS_TOO_BAD, 160 },
+ { MUS_RG_POKE_FLUTE, 450 },
+ { MUS_RG_OBTAIN_KEY_ITEM, 170 },
+ { MUS_RG_DEX_RATING, 196 },
+ { MUS_OBTAIN_B_POINTS, 313 },
+ { MUS_OBTAIN_SYMBOL, 318 },
+ { MUS_REGISTER_MATCH_CALL, 135 },
};
#define CRY_VOLUME 120 // was 125 in R/S
diff --git a/src/strings.c b/src/strings.c
index 07361ba60..fe5051d71 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -402,7 +402,7 @@ const u8 gText_PkmnNeedsToReplaceMove[] = _("{STR_VAR_1} wants to learn the\nmov
const u8 gText_StopLearningMove2[] = _("Stop trying to teach\n{STR_VAR_2}?");
const u8 gText_MoveNotLearned[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}.{PAUSE_UNTIL_PRESS}");
const u8 gText_WhichMoveToForget[] = _("Which move should be forgotten?{PAUSE_UNTIL_PRESS}");
-const u8 gText_12PoofForgotMove[] = _("1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_KON}Poof!\p{STR_VAR_1} forgot how to\nuse {STR_VAR_2}.\pAnd…{PAUSE_UNTIL_PRESS}");
+const u8 gText_12PoofForgotMove[] = _("1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_BALL_BOUNCE_1}Poof!\p{STR_VAR_1} forgot how to\nuse {STR_VAR_2}.\pAnd…{PAUSE_UNTIL_PRESS}");
const u8 gText_PkmnAlreadyKnows[] = _("{STR_VAR_1} already knows\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}");
const u8 gText_PkmnHPRestoredByVar2[] = _("{STR_VAR_1}'s HP was restored\nby {STR_VAR_2} point(s).{PAUSE_UNTIL_PRESS}");
const u8 gText_PkmnCuredOfPoison[] = _("{STR_VAR_1} was cured of its\npoisoning.{PAUSE_UNTIL_PRESS}");
@@ -1294,7 +1294,7 @@ const u8 gText_HatchedFromEgg[] = _("{STR_VAR_1} hatched from the EGG!");
const u8 gText_NicknameHatchPrompt[] = _("Would you like to nickname the newly\nhatched {STR_VAR_1}?");
ALIGNED(4) const u8 gText_ReadyToBerryCrush[] = _("Are you ready to BERRY-CRUSH?\nPlease pick a BERRY for use.\p");
ALIGNED(4) const u8 gText_WaitForAllChooseBerry[] = _("Please wait while each member\nchooses a BERRY.");
-ALIGNED(4) const u8 gText_EndedWithXUnitsPowder[] = _("{PAUSE_MUSIC}{PLAY_BGM MUS_FANFA1}You ended up with {STR_VAR_1} units of\nsilky-smooth BERRY POWDER.{RESUME_MUSIC}\pYour total amount of BERRY POWDER\nis {STR_VAR_2}.\p");
+ALIGNED(4) const u8 gText_EndedWithXUnitsPowder[] = _("{PAUSE_MUSIC}{PLAY_BGM MUS_LEVEL_UP}You ended up with {STR_VAR_1} units of\nsilky-smooth BERRY POWDER.{RESUME_MUSIC}\pYour total amount of BERRY POWDER\nis {STR_VAR_2}.\p");
ALIGNED(4) const u8 gText_RecordingGameResults[] = _("Recording your game results in the\nsave file.\lPlease wait.");
ALIGNED(4) const u8 gText_PlayBerryCrushAgain[] = _("Want to play BERRY CRUSH again?");
ALIGNED(4) const u8 gText_YouHaveNoBerries[] = _("You have no BERRIES.\nThe game will be canceled.");
@@ -1745,7 +1745,7 @@ const u8 gText_MoveRelearnerTeachMoveConfirm[] = _("Teach {STR_VAR_2}?");
const u8 gText_MoveRelearnerPkmnLearnedMove[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!");
const u8 gText_MoveRelearnerPkmnTryingToLearnMove[] = _("{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can't learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?");
const u8 gText_MoveRelearnerStopTryingToTeachMove[] = _("Stop trying to teach\n{STR_VAR_2}?");
-const u8 gText_MoveRelearnerAndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_KON}Poof!\p");
+const u8 gText_MoveRelearnerAndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_BALL_BOUNCE_1}Poof!\p");
const u8 gText_MoveRelearnerPkmnForgotMoveAndLearnedNew[] = _("{STR_VAR_1} forgot {STR_VAR_3}.\pAnd…\p{STR_VAR_1} learned {STR_VAR_2}.");
const u8 gText_MoveRelearnedPkmnDidNotLearnMove[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}."); // Unused
const u8 gText_MoveRelearnerGiveUp[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?");
diff --git a/src/title_screen.c b/src/title_screen.c
index aa91351df..108601685 100644
--- a/src/title_screen.c
+++ b/src/title_screen.c
@@ -609,7 +609,7 @@ void CB2_InitTitleScreen(void)
| DISPCNT_OBJ_ON
| DISPCNT_WIN0_ON
| DISPCNT_OBJWIN_ON);
- m4aSongNumStart(MUS_TITLE3);
+ m4aSongNumStart(MUS_TITLE);
gMain.state = 5;
break;
case 5:
diff --git a/src/trade.c b/src/trade.c
index 17967733a..6480f3594 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -570,7 +570,7 @@ static void CB2_CreateTradeMenu(void)
sTradeMenuData->bg3hofs = 0;
SetTradePartyMonsVisible();
gMain.state++;
- PlayBGM(MUS_P_SCHOOL);
+ PlayBGM(MUS_SCHOOL);
break;
case 15:
SetTradePartyLiveStatuses(TRADE_PARTNER);
@@ -2573,7 +2573,7 @@ static void sub_807AA28(struct Sprite *sprite)
{
if (++sprite->data[0] == 10)
{
- PlaySE(SE_BOWA);
+ PlaySE(SE_BALL);
sprite->data[0] = 0;
}
}
@@ -2582,7 +2582,7 @@ static void sub_807AA4C(struct Sprite *sprite)
{
if (!sprite->invisible && ++sprite->data[0] == 10)
{
- PlaySE(SE_W207B);
+ PlaySE(SE_M_SWAGGER2);
sprite->data[0] = 0;
}
}
@@ -2620,7 +2620,7 @@ static void sub_807AB04(struct Sprite *sprite)
{
if (++sprite->data[0] == 15)
{
- PlaySE(SE_W107);
+ PlaySE(SE_M_MINIMIZE);
sprite->data[0] = 0;
}
}
@@ -3289,7 +3289,7 @@ static bool8 AnimateTradeSequenceCable(void)
gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PLAYER]].y_offset;
sTradeData->state++;
sTradeData->cachedMapMusic = GetCurrentMapMusic();
- PlayNewMapMusic(MUS_SHINKA);
+ PlayNewMapMusic(MUS_EVOLUTION);
break;
case 1:
if (sTradeData->bg2hofs > 0)
@@ -3449,7 +3449,7 @@ static bool8 AnimateTradeSequenceCable(void)
case 32:
if (!gPaletteFade.active)
{
- PlaySE(SE_TK_WARPOUT);
+ PlaySE(SE_WARP_OUT);
sTradeData->state++;
}
gSprites[sTradeData->unk_90].pos2.y -= 3;
@@ -3503,7 +3503,7 @@ static bool8 AnimateTradeSequenceCable(void)
gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos2.y += 3;
if (gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y < -160 && gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y >= -163)
{
- PlaySE(SE_TK_WARPIN);
+ PlaySE(SE_WARP_IN);
}
if (gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y < -222)
{
@@ -3600,7 +3600,7 @@ static bool8 AnimateTradeSequenceCable(void)
DestroySprite(&gSprites[sTradeData->unk_91]);
SetTradeSequenceBgGpuRegs(6);
sTradeData->state++;
- PlaySE(SE_W028);
+ PlaySE(SE_M_SAND_ATTACK);
}
break;
case 51:
@@ -3704,7 +3704,7 @@ static bool8 AnimateTradeSequenceCable(void)
case 68:
if (++sTradeData->timer == 10)
{
- PlayFanfare(MUS_FANFA5);
+ PlayFanfare(MUS_EVOLVED);
}
if (sTradeData->timer == 250)
{
@@ -3781,7 +3781,7 @@ static bool8 AnimateTradeSequenceWireless(void)
gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PLAYER]].y_offset;
sTradeData->state++;
sTradeData->cachedMapMusic = GetCurrentMapMusic();
- PlayNewMapMusic(MUS_SHINKA);
+ PlayNewMapMusic(MUS_EVOLUTION);
break;
case 1:
if (sTradeData->bg2hofs > 0)
@@ -3946,7 +3946,7 @@ static bool8 AnimateTradeSequenceWireless(void)
case 32:
if (!gPaletteFade.active)
{
- PlaySE(SE_TK_WARPOUT);
+ PlaySE(SE_WARP_OUT);
sTradeData->state++;
}
gSprites[sTradeData->unk_90].pos2.y -= 3;
@@ -4001,7 +4001,7 @@ static bool8 AnimateTradeSequenceWireless(void)
gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos2.y += 3;
if (gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y < -160 && gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y >= -163)
{
- PlaySE(SE_TK_WARPIN);
+ PlaySE(SE_WARP_IN);
}
if (gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y < -222)
{
@@ -4116,7 +4116,7 @@ static bool8 AnimateTradeSequenceWireless(void)
DestroySprite(&gSprites[sTradeData->unk_91]);
SetTradeSequenceBgGpuRegs(6);
sTradeData->state++;
- PlaySE(SE_W028);
+ PlaySE(SE_M_SAND_ATTACK);
}
break;
case 51:
@@ -4219,7 +4219,7 @@ static bool8 AnimateTradeSequenceWireless(void)
case 68:
if (++sTradeData->timer == 10)
{
- PlayFanfare(MUS_FANFA5);
+ PlayFanfare(MUS_EVOLVED);
}
if (sTradeData->timer == 250)
{
@@ -4361,10 +4361,10 @@ static void sub_807E5D8(struct Sprite *sprite)
{
sprite->pos2.y += sTradeBallVerticalVelocityTable[sprite->data[0]];
if (sprite->data[0] == 22)
- PlaySE(SE_KON);
+ PlaySE(SE_BALL_BOUNCE_1);
if (++ sprite->data[0] == 44)
{
- PlaySE(SE_W025);
+ PlaySE(SE_M_MEGA_KICK);
sprite->callback = sub_807E64C;
sprite->data[0] = 0;
BeginNormalPaletteFade(1 << (16 + sprite->oam.paletteNum), -1, 0, 16, RGB_WHITEALPHA);
@@ -4394,17 +4394,17 @@ static void sub_807E6AC(struct Sprite *sprite)
{
sprite->data[2] ++;
sprite->data[0] = 0x16;
- PlaySE(SE_KON);
+ PlaySE(SE_BALL_BOUNCE_1);
}
}
else
{
if (sprite->data[0] == 0x42)
- PlaySE(SE_KON2);
+ PlaySE(SE_BALL_BOUNCE_2);
if (sprite->data[0] == 0x5c)
- PlaySE(SE_KON3);
+ PlaySE(SE_BALL_BOUNCE_3);
if (sprite->data[0] == 0x6b)
- PlaySE(SE_KON4);
+ PlaySE(SE_BALL_BOUNCE_4);
sprite->pos2.y += sTradeBallVerticalVelocityTable[sprite->data[0]];
if (++sprite->data[0] == 0x6c)
sprite->callback = SpriteCallbackDummy;
@@ -4809,7 +4809,7 @@ static void Task_AnimateWirelessSignal(u8 taskId)
}
if (sWirelessSignalTiming[idx][0] == 0 && counter == 0)
- PlaySE(SE_W215);
+ PlaySE(SE_M_HEAL_BELL);
if (counter == sWirelessSignalTiming[idx][1])
{
diff --git a/src/trainer_card.c b/src/trainer_card.c
index c374fad07..9d6838176 100755
--- a/src/trainer_card.c
+++ b/src/trainer_card.c
@@ -422,7 +422,7 @@ static void Task_TrainerCard(u8 taskId)
case 8:
if (!UpdatePaletteFade() && !IsDma3ManagerBusyWithBgCopy())
{
- PlaySE(SE_RG_CARD3);
+ PlaySE(SE_RG_CARD_OPEN);
sData->mainState = STATE_HANDLE_INPUT_FRONT;
}
break;
@@ -441,7 +441,7 @@ static void Task_TrainerCard(u8 taskId)
if (gMain.newKeys & A_BUTTON)
{
FlipTrainerCard();
- PlaySE(SE_RG_CARD1);
+ PlaySE(SE_RG_CARD_FLIP);
sData->mainState = STATE_WAIT_FLIP_TO_BACK;
}
else if (gMain.newKeys & B_BUTTON)
@@ -460,7 +460,7 @@ static void Task_TrainerCard(u8 taskId)
case STATE_WAIT_FLIP_TO_BACK:
if (IsCardFlipTaskActive() && sub_8087598() != TRUE)
{
- PlaySE(SE_RG_CARD3);
+ PlaySE(SE_RG_CARD_OPEN);
sData->mainState = STATE_HANDLE_INPUT_BACK;
}
break;
@@ -480,7 +480,7 @@ static void Task_TrainerCard(u8 taskId)
{
FlipTrainerCard();
sData->mainState = STATE_WAIT_FLIP_TO_FRONT;
- PlaySE(SE_RG_CARD1);
+ PlaySE(SE_RG_CARD_FLIP);
}
}
else if (gMain.newKeys & A_BUTTON)
@@ -518,7 +518,7 @@ static void Task_TrainerCard(u8 taskId)
if (IsCardFlipTaskActive() && sub_8087598() != TRUE)
{
sData->mainState = STATE_HANDLE_INPUT_FRONT;
- PlaySE(SE_RG_CARD3);
+ PlaySE(SE_RG_CARD_OPEN);
}
break;
}
@@ -1730,7 +1730,7 @@ static bool8 Task_SetCardFlipped(struct Task* task)
sData->onBack ^= 1;
task->tFlipState++;
sData->allowDMACopy = TRUE;
- PlaySE(SE_RG_CARD2);
+ PlaySE(SE_RG_CARD_FLIPPING);
return FALSE;
}
diff --git a/src/trainer_hill.c b/src/trainer_hill.c
index c5aea14d9..bed8df2e0 100644
--- a/src/trainer_hill.c
+++ b/src/trainer_hill.c
@@ -356,7 +356,7 @@ static void SetUpDataStruct(void)
{
if (sHillData == NULL)
{
- sHillData = AllocZeroed(sizeof(*sHillData));
+ sHillData = AllocZeroed(sizeof(struct TrHillStruct2));
sHillData->floorId = gMapHeader.mapLayoutId - LAYOUT_TRAINER_HILL_1F;
CpuCopy32(sDataPerTag[gSaveBlock1Ptr->trainerHill.tag], &sHillData->tag, sizeof(sHillData->tag) + 4 * sizeof(struct TrHillFloor));
nullsub_2();
@@ -672,70 +672,23 @@ bool32 LoadTrainerHillFloorObjectEventScripts(void)
return TRUE;
}
-// Functionally equivalent.
-#ifdef NONMATCHING
static u32 sub_81D5F58(u8 floorId, u32 bit, u32 arg2, u32 arg3)
{
- u32 var0, var1, var2, var3;
+ u16 var0, var1;
+ #ifndef NONMATCHING
+ register u16 var2 asm("r3"); //compiler keeps wanting to "mov r3, 0x80" instead of "mov r2 0x80" and then later "add r3, r2, 0"
+ #else
+ u16 var2;
+ #endif
+ u16 var3;
- var0 = (sHillData->floors[floorId].display.unk3A0[arg2] >> (15 - bit)) & 1;
- var1 = sHillData->floors[floorId].display.data[arg2 * arg3 + bit];
- var3 = 0x200;
- var2 = 0x3000;
+ var0 = (sHillData->floors[floorId].display.unk3A0[arg2] >> (15 - bit) & 1);
+ var1 = sHillData->floors[floorId].display.data[arg3 * arg2 + bit];
+ var2 = 0x200;
+ var3 = 0x3000;
- return ((var0 << 10) | var2) | (var1 | var3);
+ return ((var0 << 10) | var3) | (var1 | var2);
}
-#else
-NAKED
-static u32 sub_81D5F58(u8 floorId, u32 bit, u32 arg2, u32 arg3)
-{
- asm_unified("\n\
- push {r4,r5,lr}\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- ldr r4, =sHillData\n\
- ldr r4, [r4]\n\
- mov r12, r4\n\
- lsls r4, r2, 1\n\
- lsls r5, r0, 4\n\
- subs r5, r0\n\
- lsls r5, 3\n\
- subs r5, r0\n\
- lsls r5, 3\n\
- adds r4, r5\n\
- movs r0, 0xE8\n\
- lsls r0, 2\n\
- add r0, r12\n\
- adds r0, r4\n\
- ldrh r0, [r0]\n\
- movs r4, 0xF\n\
- subs r4, r1\n\
- asrs r0, r4\n\
- movs r4, 0x1\n\
- ands r0, r4\n\
- muls r2, r3\n\
- adds r2, r1\n\
- adds r2, r5\n\
- movs r1, 0xA8\n\
- lsls r1, 2\n\
- add r1, r12\n\
- adds r1, r2\n\
- ldrb r1, [r1]\n\
- movs r2, 0x80\n\
- lsls r2, 2\n\
- adds r3, r2, 0\n\
- movs r2, 0xC0\n\
- lsls r2, 6\n\
- lsls r0, 10\n\
- orrs r0, r2\n\
- orrs r1, r3\n\
- orrs r0, r1\n\
- pop {r4,r5}\n\
- pop {r1}\n\
- bx r1\n\
- .pool");
-}
-#endif // NONMATCHING
void GenerateTrainerHillFloorLayout(u16 *mapArg)
{
diff --git a/src/tv.c b/src/tv.c
index 37c29ed2e..3a0e78fd4 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -1332,7 +1332,7 @@ void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, u16 move, u16 speciesPlaye
}
}
-bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language)
+bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 color, u8 sheen, u8 language)
{
TVShow *show;
u8 name[32];
@@ -1355,7 +1355,7 @@ bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unus
StripExtCtrlCodes(name);
StringCopy(show->threeCheers.worstBlenderName, name);
show->threeCheers.flavor = flavor;
- show->threeCheers.unk_03_3 = unused;
+ show->threeCheers.color = color;
show->threeCheers.sheen = sheen;
tv_store_id_2x(show);
show->threeCheers.language = gGameLanguage;
diff --git a/src/union_room.c b/src/union_room.c
index 96c16deba..f886d0383 100644
--- a/src/union_room.c
+++ b/src/union_room.c
@@ -1018,13 +1018,13 @@ static void Task_TryJoinLinkGroup(u8 taskId)
// Trading is allowed, or not trading at all
AskToJoinRfuGroup(data, id);
data->state = LG_STATE_ASK_JOIN_GROUP;
- PlaySE(SE_PN_ON);
+ PlaySE(SE_POKENAV_ON);
}
else
{
StringCopy(gStringVar4, sCantTransmitToTrainerTexts[readyStatus - 1]);
data->state = LG_STATE_TRADE_NOT_READY;
- PlaySE(SE_PN_ON);
+ PlaySE(SE_POKENAV_ON);
}
}
else
@@ -2118,7 +2118,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId)
RedrawListMenu(data->listTaskId);
IntlConvPartnerUname7(gStringVar1, &data->field_0->arr[data->leaderId]);
CreateTask_RfuReconnectWithParent(data->field_0->arr[data->leaderId].gname_uname.playerName, ReadAsU16(data->field_0->arr[data->leaderId].gname_uname.gname.unk_00.playerTrainerId));
- PlaySE(SE_PN_ON);
+ PlaySE(SE_POKENAV_ON);
data->state = 4;
}
else
@@ -2279,7 +2279,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId)
LoadWirelessStatusIndicatorSpriteGfx();
CreateWirelessStatusIndicatorSprite(0, 0);
CreateTask_RfuReconnectWithParent(data->field_0->arr[0].gname_uname.playerName, ReadAsU16(data->field_0->arr[0].gname_uname.gname.unk_00.playerTrainerId));
- PlaySE(SE_PN_ON);
+ PlaySE(SE_POKENAV_ON);
data->state = 4;
}
else
@@ -2677,7 +2677,7 @@ static void Task_RunUnionRoom(u8 taskId)
if (input == -2 || input == IN_UNION_ROOM)
{
uroom->playerSendBuffer[0] = IN_UNION_ROOM;
- sub_800FE50(uroom->playerSendBuffer);
+ Rfu_SendPacket(uroom->playerSendBuffer);
StringCopy(gStringVar4, sIfYouWantToDoSomethingTexts[gLinkPlayers[0].gender]);
uroom->state = UR_STATE_REQUEST_DECLINED;
}
@@ -2692,7 +2692,7 @@ static void Task_RunUnionRoom(u8 taskId)
else
{
uroom->playerSendBuffer[0] = gPlayerCurrActivity | IN_UNION_ROOM;
- sub_800FE50(uroom->playerSendBuffer);
+ Rfu_SendPacket(uroom->playerSendBuffer);
uroom->state = UR_STATE_SEND_ACTIVITY_REQUEST;
}
}
@@ -2721,7 +2721,7 @@ static void Task_RunUnionRoom(u8 taskId)
uroom->playerSendBuffer[0] = ACTIVITY_TRADE | IN_UNION_ROOM;
uroom->playerSendBuffer[1] = sUnionRoomTrade.species;
uroom->playerSendBuffer[2] = sUnionRoomTrade.level;
- sub_800FE50(uroom->playerSendBuffer);
+ Rfu_SendPacket(uroom->playerSendBuffer);
uroom->state = UR_STATE_WAIT_FOR_RESPONSE_TO_REQUEST;
break;
case UR_STATE_WAIT_FOR_RESPONSE_TO_REQUEST:
@@ -2846,7 +2846,7 @@ static void Task_RunUnionRoom(u8 taskId)
uroom->state = UR_STATE_START_ACTIVITY_FREE_UROOM;
break;
case UR_STATE_PLAYER_CONTACTED_YOU:
- PlaySE(SE_PINPON);
+ PlaySE(SE_DING_DONG);
sub_800EF7C();
uroom->state = UR_STATE_RECV_CONTACT_DATA;
uroom->recvActivityRequest[0] = 0;
@@ -2908,32 +2908,32 @@ static void Task_RunUnionRoom(u8 taskId)
if (!HasAtLeastTwoMonsOfLevel30OrLower())
{
uroom->playerSendBuffer[0] = ACTIVITY_DECLINE | IN_UNION_ROOM;
- sub_800FE50(uroom->playerSendBuffer);
+ Rfu_SendPacket(uroom->playerSendBuffer);
uroom->state = UR_STATE_DECLINE_ACTIVITY_REQUEST;
StringCopy(gStringVar4, sText_NeedTwoMonsOfLevel30OrLower2);
}
else
{
- sub_800FE50(uroom->playerSendBuffer);
+ Rfu_SendPacket(uroom->playerSendBuffer);
uroom->state = UR_STATE_PRINT_START_ACTIVITY_MSG;
}
}
else if (gPlayerCurrActivity == (ACTIVITY_CARD | IN_UNION_ROOM))
{
- sub_800FE50(uroom->playerSendBuffer);
+ Rfu_SendPacket(uroom->playerSendBuffer);
ViewURoomPartnerTrainerCard(gStringVar4, uroom, TRUE);
uroom->state = UR_STATE_PRINT_CARD_INFO;
}
else
{
- sub_800FE50(uroom->playerSendBuffer);
+ Rfu_SendPacket(uroom->playerSendBuffer);
uroom->state = UR_STATE_PRINT_START_ACTIVITY_MSG;
}
break;
case 1: // DECLINE
case -1:
uroom->playerSendBuffer[0] = ACTIVITY_DECLINE | IN_UNION_ROOM;
- sub_800FE50(uroom->playerSendBuffer);
+ Rfu_SendPacket(uroom->playerSendBuffer);
uroom->state = UR_STATE_DECLINE_ACTIVITY_REQUEST;
GetYouDeclinedTheOfferMessage(gStringVar4, gPlayerCurrActivity);
break;