diff options
author | Marcus Huderle <huderlem@gmail.com> | 2019-10-12 15:39:17 -0500 |
---|---|---|
committer | Marcus Huderle <huderlem@gmail.com> | 2019-10-12 15:39:17 -0500 |
commit | 8df4982b3ff827ec0e7909484a67dc5923fac53d (patch) | |
tree | e9b98e2ce622ab500e13b784cab807e4b5b3e615 /src | |
parent | 3514f9dd6b48f1a0c42a4ea6cb1ab5317fa88c50 (diff) | |
parent | 4e2be7ff5e4e4f6b7f664bfee4f1d4433c7f238f (diff) |
Merge remote-tracking branch 'upstream/master' into document-trade
Diffstat (limited to 'src')
-rw-r--r-- | src/berry_blender.c | 4 | ||||
-rw-r--r-- | src/bike.c | 97 | ||||
-rw-r--r-- | src/cable_club.c | 106 | ||||
-rwxr-xr-x | src/data/field_event_obj/movement_action_func_tables.h | 20 | ||||
-rw-r--r-- | src/dodrio_berry_picking.c | 16 | ||||
-rwxr-xr-x | src/ereader_screen.c | 2 | ||||
-rw-r--r-- | src/event_obj_lock.c | 4 | ||||
-rw-r--r-- | src/event_object_movement.c | 66 | ||||
-rwxr-xr-x | src/field_effect_helpers.c | 2 | ||||
-rw-r--r-- | src/field_player_avatar.c | 121 | ||||
-rw-r--r-- | src/field_screen_effect.c | 2 | ||||
-rw-r--r-- | src/field_specials.c | 7 | ||||
-rw-r--r-- | src/flying.c | 833 | ||||
-rw-r--r-- | src/link.c | 4 | ||||
-rw-r--r-- | src/link_rfu.c | 2 | ||||
-rw-r--r-- | src/mystery_event_menu.c | 2 | ||||
-rw-r--r-- | src/overworld.c | 16 | ||||
-rwxr-xr-x | src/party_menu.c | 10 | ||||
-rw-r--r-- | src/pokemon.c | 4 | ||||
-rwxr-xr-x | src/pokemon_jump.c | 30 | ||||
-rw-r--r-- | src/scrcmd.c | 2 | ||||
-rwxr-xr-x | src/script_pokemon_util_80F87D8.c | 2 | ||||
-rw-r--r-- | src/trade.c | 4 | ||||
-rw-r--r-- | src/union_room.c | 39 |
24 files changed, 358 insertions, 1037 deletions
diff --git a/src/berry_blender.c b/src/berry_blender.c index 6c8d9c812..435e508f6 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -1174,7 +1174,7 @@ static void sub_8080018(void) { case 0: sub_8080588(); - gLinkType = 0x4422; + gLinkType = LINKTYPE_BERRY_BLENDER; sBerryBlenderData->field_72 = 0; for (i = 0; i < BLENDER_MAX_PLAYERS; i++) { @@ -1517,7 +1517,7 @@ static void sub_80808D4(void) sBerryBlenderData->playAgainState = 0; sBerryBlenderData->loadGfxState = 0; - gLinkType = 0x4422; + gLinkType = LINKTYPE_BERRY_BLENDER; sBerryBlenderData->mainState++; break; case 1: diff --git a/src/bike.c b/src/bike.c index 7f84f350b..fad61ffab 100644 --- a/src/bike.c +++ b/src/bike.c @@ -45,8 +45,8 @@ static u8 AcroBike_GetJumpDirection(void); static void Bike_UpdateDirTimerHistory(u8); static void Bike_UpdateABStartSelectHistory(u8); static u8 Bike_DPadToDirection(u16); -static u8 get_some_collision(u8); -static u8 Bike_CheckCollisionTryAdvanceCollisionCount(struct EventObject *, s16, s16, u8, u8); +static u8 GetBikeCollision(u8); +static u8 GetBikeCollisionAt(struct EventObject *, s16, s16, u8, u8); static bool8 IsRunningDisallowedByMetatile(u8); static void Bike_TryAdvanceCyclingRoadCollisions(); static u8 CanBikeFaceDirOnMetatile(u8, u8); @@ -214,8 +214,8 @@ static void MachBikeTransition_TrySpeedUp(u8 direction) } else { - collision = get_some_collision(direction); - if (collision > 0 && collision < 12) + collision = GetBikeCollision(direction); + if (collision > 0 && collision < COLLISION_VERTICAL_RAIL) { // we hit a solid object, but check to see if its a ledge and then jump. if (collision == COLLISION_LEDGE_JUMP) @@ -226,9 +226,9 @@ static void MachBikeTransition_TrySpeedUp(u8 direction) { // we hit a solid object that is not a ledge, so perform the collision. Bike_SetBikeStill(); - if (collision == 4 && IsPlayerCollidingWithFarawayIslandMew(direction)) + if (collision == COLLISION_EVENT_OBJECT && IsPlayerCollidingWithFarawayIslandMew(direction)) PlayerOnBikeCollideWithFarawayIslandMew(direction); - else if (collision < 5 || collision > 8) + else if (collision < COLLISION_STOP_SURFING || collision > COLLISION_ROTATING_GATE) PlayerOnBikeCollide(direction); } } @@ -250,9 +250,9 @@ static void MachBikeTransition_TrySlowDown(u8 direction) if (gPlayerAvatar.bikeSpeed != SPEED_STANDING) gPlayerAvatar.bikeFrameCounter = --gPlayerAvatar.bikeSpeed; - collision = get_some_collision(direction); + collision = GetBikeCollision(direction); - if (collision > 0 && collision < 12) + if (collision > 0 && collision < COLLISION_VERTICAL_RAIL) { if (collision == COLLISION_LEDGE_JUMP) { @@ -261,9 +261,9 @@ static void MachBikeTransition_TrySlowDown(u8 direction) else { Bike_SetBikeStill(); - if (collision == 4 && IsPlayerCollidingWithFarawayIslandMew(direction)) + if (collision == COLLISION_EVENT_OBJECT && IsPlayerCollidingWithFarawayIslandMew(direction)) PlayerOnBikeCollideWithFarawayIslandMew(direction); - else if (collision < 5 || collision > 8) + else if (collision < COLLISION_STOP_SURFING || collision > COLLISION_ROTATING_GATE) PlayerOnBikeCollide(direction); } } @@ -552,14 +552,14 @@ static void AcroBikeTransition_Moving(u8 direction) AcroBikeTransition_FaceDirection(playerEventObj->movementDirection); return; } - collision = get_some_collision(direction); - if (collision > 0 && collision < 12) + collision = GetBikeCollision(direction); + if (collision > 0 && collision < COLLISION_VERTICAL_RAIL) { if (collision == COLLISION_LEDGE_JUMP) PlayerJumpLedge(direction); - else if (collision == 4 && IsPlayerCollidingWithFarawayIslandMew(direction)) + else if (collision == COLLISION_EVENT_OBJECT && IsPlayerCollidingWithFarawayIslandMew(direction)) PlayerOnBikeCollideWithFarawayIslandMew(direction); - else if (collision < 5 || collision > 8) + else if (collision < COLLISION_STOP_SURFING || collision > COLLISION_ROTATING_GATE) PlayerOnBikeCollide(direction); } else @@ -614,19 +614,19 @@ static void AcroBikeTransition_WheelieHoppingMoving(u8 direction) AcroBikeTransition_WheelieHoppingStanding(playerEventObj->movementDirection); return; } - collision = get_some_collision(direction); + collision = GetBikeCollision(direction); // TODO: Try to get rid of this goto - if (collision == 0 || collision == 9) + if (collision == 0 || collision == COLLISION_WHEELIE_HOP) { goto derp; } - else if (collision == 6) + else if (collision == COLLISION_LEDGE_JUMP) { PlayerLedgeHoppingWheelie(direction); } - else if (collision < 5 || collision > 8) + else if (collision < COLLISION_STOP_SURFING || collision > COLLISION_ROTATING_GATE) { - if (collision <= 11) + if (collision < COLLISION_VERTICAL_RAIL) { AcroBikeTransition_WheelieHoppingStanding(direction); } @@ -643,12 +643,12 @@ static void AcroBikeTransition_SideJump(u8 direction) u8 collision; struct EventObject *playerEventObj; - collision = get_some_collision(direction); - if (collision != 0) + collision = GetBikeCollision(direction); + if (collision) { - if (collision == 7) + if (collision == COLLISION_PUSHED_BOULDER) return; - if (collision < 10) + if (collision < COLLISION_ISOLATED_VERTICAL_RAIL) { AcroBikeTransition_TurnDirection(direction); return; @@ -680,18 +680,18 @@ static void AcroBikeTransition_WheelieMoving(u8 direction) PlayerIdleWheelie(playerEventObj->movementDirection); return; } - collision = get_some_collision(direction); - if (collision > 0 && collision < 12) + collision = GetBikeCollision(direction); + if (collision > 0 && collision < COLLISION_VERTICAL_RAIL) { - if (collision == 6) + if (collision == COLLISION_LEDGE_JUMP) { PlayerLedgeHoppingWheelie(direction); } - else if (collision == 9) + else if (collision == COLLISION_WHEELIE_HOP) { PlayerIdleWheelie(direction); } - else if (collision <= 4) + else if (collision < COLLISION_STOP_SURFING) { if (MetatileBehavior_IsBumpySlope(playerEventObj->currentMetatileBehavior)) PlayerIdleWheelie(direction); @@ -714,18 +714,18 @@ static void AcroBikeTransition_WheelieRisingMoving(u8 direction) PlayerStartWheelie(playerEventObj->movementDirection); return; } - collision = get_some_collision(direction); - if (collision > 0 && collision < 12) + collision = GetBikeCollision(direction); + if (collision > 0 && collision < COLLISION_VERTICAL_RAIL) { - if (collision == 6) + if (collision == COLLISION_LEDGE_JUMP) { PlayerLedgeHoppingWheelie(direction); } - else if (collision == 9) + else if (collision == COLLISION_WHEELIE_HOP) { PlayerIdleWheelie(direction); } - else if (collision <= 4) + else if (collision < COLLISION_STOP_SURFING) { if (MetatileBehavior_IsBumpySlope(playerEventObj->currentMetatileBehavior)) PlayerIdleWheelie(direction); @@ -748,12 +748,12 @@ static void AcroBikeTransition_WheelieLoweringMoving(u8 direction) PlayerEndWheelie(playerEventObj->movementDirection); return; } - collision = get_some_collision(direction); - if (collision > 0 && collision < 12) + collision = GetBikeCollision(direction); + if (collision > 0 && collision < COLLISION_VERTICAL_RAIL) { - if (collision == 6) + if (collision == COLLISION_LEDGE_JUMP) PlayerJumpLedge(direction); - else if (collision < 5 || collision > 8) + else if (collision < COLLISION_STOP_SURFING || collision > COLLISION_ROTATING_GATE) PlayerEndWheelie(direction); return; } @@ -865,29 +865,26 @@ static u8 Bike_DPadToDirection(u16 heldKeys) return DIR_NONE; } -static u8 get_some_collision(u8 direction) +static u8 GetBikeCollision(u8 direction) { - s16 x; - s16 y; u8 metatitleBehavior; struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId]; - - x = playerEventObj->currentCoords.x; - y = playerEventObj->currentCoords.y; + s16 x = playerEventObj->currentCoords.x; + s16 y = playerEventObj->currentCoords.y; MoveCoords(direction, &x, &y); metatitleBehavior = MapGridGetMetatileBehaviorAt(x, y); - return Bike_CheckCollisionTryAdvanceCollisionCount(playerEventObj, x, y, direction, metatitleBehavior); + return GetBikeCollisionAt(playerEventObj, x, y, direction, metatitleBehavior); } -static u8 Bike_CheckCollisionTryAdvanceCollisionCount(struct EventObject *eventObject, s16 x, s16 y, u8 direction, u8 metatitleBehavior) +static u8 GetBikeCollisionAt(struct EventObject *eventObject, s16 x, s16 y, u8 direction, u8 metatitleBehavior) { u8 collision = CheckForEventObjectCollision(eventObject, x, y, direction, metatitleBehavior); - if (collision > 4) + if (collision > COLLISION_EVENT_OBJECT) return collision; - if (collision == 0 && IsRunningDisallowedByMetatile(metatitleBehavior)) - collision = 2; + if (collision == COLLISION_NONE && IsRunningDisallowedByMetatile(metatitleBehavior)) + collision = COLLISION_IMPASSABLE; if (collision) Bike_TryAdvanceCyclingRoadCollisions(); @@ -941,10 +938,10 @@ static bool8 WillPlayerCollideWithCollision(u8 newTileCollision, u8 direction) { if (direction == DIR_NORTH || direction == DIR_SOUTH) { - if (newTileCollision == 10 || newTileCollision == 12) + if (newTileCollision == COLLISION_ISOLATED_VERTICAL_RAIL || newTileCollision == COLLISION_VERTICAL_RAIL) return FALSE; } - else if (newTileCollision == 11 || newTileCollision == 13) + else if (newTileCollision == COLLISION_ISOLATED_HORIZONTAL_RAIL || newTileCollision == COLLISION_HORIZONTAL_RAIL) { return FALSE; } diff --git a/src/cable_club.c b/src/cable_club.c index 755e3575e..1375789c3 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -30,6 +30,8 @@ #include "trainer_card.h" #include "party_menu.h" #include "window.h" +#include "constants/battle_frontier.h" +#include "constants/cable_club.h" #include "constants/songs.h" static const struct WindowTemplate gUnknown_08550594 = { @@ -457,7 +459,7 @@ static void task_map_chg_seq_0807EC34(u16 *a0, u32 taskId) if (*a0 == 1) { - if (gLinkType == 0x2266 || gLinkType == 0x2277) + if (gLinkType == LINKTYPE_BATTLE_TOWER_50 || gLinkType == LINKTYPE_BATTLE_TOWER_OPEN) { if (sub_80B2AF4(trainerCards[0].monSpecies, trainerCards[1].monSpecies)) { @@ -550,45 +552,42 @@ static bool8 sub_80B2D6C(u8 taskId) return FALSE; } -void sub_80B2DA4(u8 arg0) +void TryBattleLinkup(u8 arg0) { u8 r3 = 2; u8 r2 = 2; switch (gSpecialVar_0x8004) { - case 1: + case USING_SINGLE_BATTLE: r3 = 2; - gLinkType = 0x2233; + gLinkType = LINKTYPE_SINGLE_BATTLE; break; - case 2: + case USING_DOUBLE_BATTLE: r3 = 2; - gLinkType = 0x2244; + gLinkType = LINKTYPE_DOUBLE_BATTLE; break; - case 5: + case USING_MULTI_BATTLE: r3 = 4; r2 = 4; - gLinkType = 0x2255; + gLinkType = LINKTYPE_MULTI_BATTLE; break; - case 9: + case USING_BATTLE_TOWER: r3 = 2; - if (gSaveBlock2Ptr->frontier.lvlMode == 0) - { - gLinkType = 0x2266; - } + if (gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_50) + gLinkType = LINKTYPE_BATTLE_TOWER_50; else - { - gLinkType = 0x2277; - } + gLinkType = LINKTYPE_BATTLE_TOWER_OPEN; + break; } sub_80B236C(r3, r2); } -void sub_80B2E4C(void) +void TryTradeLinkup(void) { - gLinkType = 0x1133; + gLinkType = LINKTYPE_0x1133; gBattleTypeFlags = 0; sub_80B236C(2, 2); } @@ -596,7 +595,7 @@ void sub_80B2E4C(void) void sub_80B2E74(void) { gSpecialVar_Result = 0; - gLinkType = 0x3311; + gLinkType = LINKTYPE_0x3311; gBattleTypeFlags = 0; sub_80B236C(2, 4); } @@ -681,21 +680,21 @@ static void sub_80B2EE4(u8 taskId) void sub_80B2FD8(void) { - gLinkType = 0x4411; + gLinkType = LINKTYPE_0x4411; gBattleTypeFlags = 0; sub_80B236C(2, 4); } void sub_80B3000(void) { - gLinkType = 0x6601; + gLinkType = LINKTYPE_0x6601; gBattleTypeFlags = 0; sub_80B236C(4, 4); } void sub_80B3028(void) { - gLinkType = 0x6602; + gLinkType = LINKTYPE_0x6602; gBattleTypeFlags = 0; sub_80B236C(2, 4); } @@ -707,30 +706,30 @@ u8 sub_80B3050(void) switch (gSpecialVar_0x8004) { - case 1: - gLinkType = 0x2233; + case USING_SINGLE_BATTLE: + gLinkType = LINKTYPE_SINGLE_BATTLE; break; - case 2: - gLinkType = 0x2244; + case USING_DOUBLE_BATTLE: + gLinkType = LINKTYPE_DOUBLE_BATTLE; break; - case 5: - gLinkType = 0x2255; + case USING_MULTI_BATTLE: + gLinkType = LINKTYPE_MULTI_BATTLE; break; - case 9: - if (gSaveBlock2Ptr->frontier.lvlMode == 0) + case USING_BATTLE_TOWER: + if (gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_50) { - gLinkType = 0x2266; + gLinkType = LINKTYPE_BATTLE_TOWER_50; } else { - gLinkType = 0x2277; + gLinkType = LINKTYPE_BATTLE_TOWER_OPEN; } break; - case 3: - gLinkType = 0x1111; + case USING_TRADE_CENTER: + gLinkType = LINKTYPE_0x1111; break; - case 4: - gLinkType = 0x3322; + case USING_RECORD_CORNER: + gLinkType = LINKTYPE_0x3322; break; } @@ -790,21 +789,21 @@ void sub_80B3254(void) SaveGame(); } -static void sub_80B3260(int a0) +static void SetLinkBattleTypeFlags(int linkService) { - switch (a0) + switch (linkService) { - case 1: + case USING_SINGLE_BATTLE: gBattleTypeFlags = BATTLE_TYPE_LINK | BATTLE_TYPE_TRAINER; break; - case 2: + case USING_DOUBLE_BATTLE: gBattleTypeFlags = BATTLE_TYPE_DOUBLE | BATTLE_TYPE_LINK | BATTLE_TYPE_TRAINER; break; - case 5: + case USING_MULTI_BATTLE: ReducePlayerPartyToSelectedMons(); gBattleTypeFlags = BATTLE_TYPE_DOUBLE | BATTLE_TYPE_LINK | BATTLE_TYPE_TRAINER | BATTLE_TYPE_MULTI; break; - case 9: + case USING_BATTLE_TOWER: gBattleTypeFlags = BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOUBLE | BATTLE_TYPE_LINK | BATTLE_TYPE_TRAINER | BATTLE_TYPE_MULTI; break; } @@ -818,7 +817,7 @@ static void sub_80B32B4(u8 taskId) { case 0: FadeScreen(1, 0); - gLinkType = 0x2211; + gLinkType = LINKTYPE_BATTLE; ClearLinkCallback_2(); task->data[0]++; break; @@ -845,7 +844,7 @@ static void sub_80B32B4(u8 taskId) else PlayMapChosenOrBattleBGM(MUS_BATTLE20); - sub_80B3260(gSpecialVar_0x8004); + SetLinkBattleTypeFlags(gSpecialVar_0x8004); CleanupOverworldWindowsAndTilemaps(); gTrainerBattleOpponent_A = 0x800; SetMainCallback2(CB2_InitBattle); @@ -864,7 +863,7 @@ static void sub_80B33BC(u8 taskId) { case 0: FadeScreen(1, 0); - gLinkType = 0x2211; + gLinkType = LINKTYPE_BATTLE; ClearLinkCallback_2(); data[0] = 1; break; @@ -910,8 +909,8 @@ static void sub_80B33BC(u8 taskId) else PlayMapChosenOrBattleBGM(MUS_BATTLE20); - gLinkPlayers[0].linkType = 0x2211; - sub_80B3260(gSpecialVar_0x8004); + gLinkPlayers[0].linkType = LINKTYPE_BATTLE; + SetLinkBattleTypeFlags(gSpecialVar_0x8004); CleanupOverworldWindowsAndTilemaps(); gTrainerBattleOpponent_A = 0x800; SetMainCallback2(CB2_InitBattle); @@ -973,7 +972,7 @@ void sub_80B360C(void) SavePlayerBag(); sub_813BF10(); - if (gSpecialVar_0x8004 == 1 || gSpecialVar_0x8004 == 2) + if (gSpecialVar_0x8004 == USING_SINGLE_BATTLE || gSpecialVar_0x8004 == USING_DOUBLE_BATTLE) { UpdatePlayerLinkBattleRecords(gLocalLinkPlayerId ^ 1); if (gWirelessCommType) @@ -1004,7 +1003,10 @@ void sub_80B360C(void) void CleanupLinkRoomState(void) { - if (gSpecialVar_0x8004 == 1 || gSpecialVar_0x8004 == 2 || gSpecialVar_0x8004 == 5 || gSpecialVar_0x8004 == 9) + if (gSpecialVar_0x8004 == USING_SINGLE_BATTLE + || gSpecialVar_0x8004 == USING_DOUBLE_BATTLE + || gSpecialVar_0x8004 == USING_MULTI_BATTLE + || gSpecialVar_0x8004 == USING_BATTLE_TOWER) { LoadPlayerParty(); SavePlayerBag(); @@ -1159,7 +1161,7 @@ void nullsub_37(void) // Note: VAR_0x8005 is set to the ID of the player spot. void ColosseumPlayerSpotTriggered(void) { - gLinkType = 0x2211; + gLinkType = LINKTYPE_BATTLE; if (gWirelessCommType != 0) { @@ -1178,7 +1180,7 @@ static void sub_80B39A4(void) ScriptContext1_Stop(); } -void sp02A_crash_sound(void) +void Script_ShowLinkTrainerCard(void) { ShowTrainerCardInLink(gSpecialVar_0x8006, CB2_ReturnToFieldContinueScriptPlayMapMusic); } @@ -1300,6 +1302,6 @@ void sub_80B3BC4(void) { if (gWirelessCommType == 0) { - gLinkType = 0x2288; + gLinkType = LINKTYPE_0x2288; } } diff --git a/src/data/field_event_obj/movement_action_func_tables.h b/src/data/field_event_obj/movement_action_func_tables.h index 712988f5e..8e136b58b 100755 --- a/src/data/field_event_obj/movement_action_func_tables.h +++ b/src/data/field_event_obj/movement_action_func_tables.h @@ -170,8 +170,8 @@ u8 MovementAction_SetFixedPriority_Step0(struct EventObject *, struct Sprite *); u8 MovementAction_ClearFixedPriority_Step0(struct EventObject *, struct Sprite *); u8 MovementAction_InitAffineAnim_Step0(struct EventObject *, struct Sprite *); u8 MovementAction_ClearAffineAnim_Step0(struct EventObject *, struct Sprite *); -u8 MovementAction_Unknown1_Step0(struct EventObject *, struct Sprite *); -u8 MovementAction_Unknown2_Step0(struct EventObject *, struct Sprite *); +u8 MovementAction_HideReflection_Step0(struct EventObject *, struct Sprite *); +u8 MovementAction_ShowReflection_Step0(struct EventObject *, struct Sprite *); u8 MovementAction_WalkDownStartAffine_Step0(struct EventObject *, struct Sprite *); u8 MovementAction_WalkDownStartAffine_Step1(struct EventObject *, struct Sprite *); u8 MovementAction_WalkDownAffine_Step0(struct EventObject *, struct Sprite *); @@ -358,8 +358,8 @@ u8 (*const gMovementActionFuncs_SetFixedPriority[])(struct EventObject *, struct u8 (*const gMovementActionFuncs_ClearFixedPriority[])(struct EventObject *, struct Sprite *); u8 (*const gMovementActionFuncs_InitAffineAnim[])(struct EventObject *, struct Sprite *); u8 (*const gMovementActionFuncs_ClearAffineAnim[])(struct EventObject *, struct Sprite *); -u8 (*const gMovementActionFuncs_Unknown1[])(struct EventObject *, struct Sprite *); -u8 (*const gMovementActionFuncs_Unknown2[])(struct EventObject *, struct Sprite *); +u8 (*const gMovementActionFuncs_HideReflection[])(struct EventObject *, struct Sprite *); +u8 (*const gMovementActionFuncs_ShowReflection[])(struct EventObject *, struct Sprite *); u8 (*const gMovementActionFuncs_WalkDownStartAffine[])(struct EventObject *, struct Sprite *); u8 (*const gMovementActionFuncs_WalkDownAffine[])(struct EventObject *, struct Sprite *); u8 (*const gMovementActionFuncs_AcroWheelieFaceDown[])(struct EventObject *, struct Sprite *); @@ -518,8 +518,8 @@ u8 (*const *const gMovementActionFuncs[])(struct EventObject *, struct Sprite *) [MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY] = gMovementActionFuncs_ClearFixedPriority, [MOVEMENT_ACTION_INIT_AFFINE_ANIM] = gMovementActionFuncs_InitAffineAnim, [MOVEMENT_ACTION_CLEAR_AFFINE_ANIM] = gMovementActionFuncs_ClearAffineAnim, - [MOVEMENT_ACTION_UNKNOWN1] = gMovementActionFuncs_Unknown1, - [MOVEMENT_ACTION_UNKNOWN2] = gMovementActionFuncs_Unknown2, + [MOVEMENT_ACTION_HIDE_REFLECTION] = gMovementActionFuncs_HideReflection, + [MOVEMENT_ACTION_SHOW_REFLECTION] = gMovementActionFuncs_ShowReflection, [MOVEMENT_ACTION_WALK_DOWN_START_AFFINE] = gMovementActionFuncs_WalkDownStartAffine, [MOVEMENT_ACTION_WALK_DOWN_AFFINE] = gMovementActionFuncs_WalkDownAffine, [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN] = gMovementActionFuncs_AcroWheelieFaceDown, @@ -1197,13 +1197,13 @@ u8 (*const gMovementActionFuncs_ClearAffineAnim[])(struct EventObject *, struct MovementAction_Finish, }; -u8 (*const gMovementActionFuncs_Unknown1[])(struct EventObject *, struct Sprite *) = { - MovementAction_Unknown1_Step0, +u8 (*const gMovementActionFuncs_HideReflection[])(struct EventObject *, struct Sprite *) = { + MovementAction_HideReflection_Step0, MovementAction_Finish, }; -u8 (*const gMovementActionFuncs_Unknown2[])(struct EventObject *, struct Sprite *) = { - MovementAction_Unknown2_Step0, +u8 (*const gMovementActionFuncs_ShowReflection[])(struct EventObject *, struct Sprite *) = { + MovementAction_ShowReflection_Step0, MovementAction_Finish, }; diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 4b636e2b9..2e0cfbc7e 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -245,7 +245,7 @@ static u32 sub_8027DFC(u32 arg0); static u32 IncrementWithLimit(u32 arg0, u32 arg1); static u32 Min(u32 arg0, u32 arg1); static u32 sub_80276C0(u8 arg0); -static void sub_8027ACC(u8 taskId); +static void Task_ShowDodrioBerryPickingRecords(u8 taskId); static void sub_8029314(u8 taskId); static void sub_8027BEC(u8 windowId, s32 width); static void nullsub_15(struct Sprite *sprite); @@ -2580,7 +2580,7 @@ static u8 sub_8027A48(u8 id) return gUnknown_02022C98->unk34[id]; } -void sub_8027A5C(void) +void IsDodrioInParty(void) { int i; for (i = 0; i < PARTY_SIZE; i++) @@ -2588,18 +2588,18 @@ void sub_8027A5C(void) if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES) && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_DODRIO) { - gSpecialVar_Result = 1; + gSpecialVar_Result = TRUE; return; } } - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; } -void sub_8027AAC(void) +void ShowDodrioBerryPickingRecords(void) { - u8 taskId = CreateTask(sub_8027ACC, 0); - sub_8027ACC(taskId); + u8 taskId = CreateTask(Task_ShowDodrioBerryPickingRecords, 0); + Task_ShowDodrioBerryPickingRecords(taskId); } // Data related to printing saved results. @@ -2621,7 +2621,7 @@ ALIGNED(4) static const u8 gUnknown_082F7B44[][2] = {{25}, {41}, {57}}; static const u8 gUnknown_082F7B4A[][2] = {{25}, {41}, {73}}; -static void sub_8027ACC(u8 taskId) +static void Task_ShowDodrioBerryPickingRecords(u8 taskId) { struct WindowTemplate window; s32 i, width, widthCurr; diff --git a/src/ereader_screen.c b/src/ereader_screen.c index 0e865558a..4497556ea 100755 --- a/src/ereader_screen.c +++ b/src/ereader_screen.c @@ -88,7 +88,7 @@ static u8 sub_81D4DE8(struct Unk03006370 *arg0) static void sub_81D4E30(void) { memset(gDecompressionBuffer, 0, 0x2000); - gLinkType = 0x5503; + gLinkType = LINKTYPE_0x5503; OpenLink(); SetSuppressLinkErrorMessage(TRUE); } diff --git a/src/event_obj_lock.c b/src/event_obj_lock.c index 22a29fd5d..c64a2ab22 100644 --- a/src/event_obj_lock.c +++ b/src/event_obj_lock.c @@ -108,12 +108,12 @@ void sub_8098524(void) UnfreezeEventObjects(); } -void sub_8098574(void) +void Script_FacePlayer(void) { EventObjectFaceOppositeDirection(&gEventObjects[gSelectedEventObject], gSpecialVar_Facing); } -void sub_809859C(void) +void Script_ClearHeldMovement(void) { EventObjectClearHeldMovementIfActive(&gEventObjects[gSelectedEventObject]); } diff --git a/src/event_object_movement.c b/src/event_object_movement.c index c493c6d87..b3daaad67 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -2723,9 +2723,8 @@ bool8 MovementType_WanderAround_Step4(struct EventObject *eventObject, struct Sp SetEventObjectDirection(eventObject, chosenDirection); sprite->data[1] = 5; if (GetCollisionInDirection(eventObject, chosenDirection)) - { sprite->data[1] = 1; - } + return TRUE; } @@ -3093,9 +3092,8 @@ bool8 MovementType_WanderUpAndDown_Step4(struct EventObject *eventObject, struct SetEventObjectDirection(eventObject, direction); sprite->data[1] = 5; if (GetCollisionInDirection(eventObject, direction)) - { sprite->data[1] = 1; - } + return TRUE; } @@ -3163,9 +3161,8 @@ bool8 MovementType_WanderLeftAndRight_Step4(struct EventObject *eventObject, str SetEventObjectDirection(eventObject, direction); sprite->data[1] = 5; if (GetCollisionInDirection(eventObject, direction)) - { sprite->data[1] = 1; - } + return TRUE; } @@ -3952,7 +3949,7 @@ bool8 MovementType_WalkBackAndForth_Step1(struct EventObject *eventObject, struc bool8 MovementType_WalkBackAndForth_Step2(struct EventObject *eventObject, struct Sprite *sprite) { - bool8 collisionState; + bool8 collision; u8 movementActionId; if (eventObject->directionSequenceIndex && eventObject->initialCoords.x == eventObject->currentCoords.x && eventObject->initialCoords.y == eventObject->currentCoords.y) @@ -3960,19 +3957,19 @@ bool8 MovementType_WalkBackAndForth_Step2(struct EventObject *eventObject, struc eventObject->directionSequenceIndex = 0; SetEventObjectDirection(eventObject, GetOppositeDirection(eventObject->movementDirection)); } - collisionState = GetCollisionInDirection(eventObject, eventObject->movementDirection); + collision = GetCollisionInDirection(eventObject, eventObject->movementDirection); movementActionId = GetWalkNormalMovementAction(eventObject->movementDirection); - if (collisionState == TRUE) + if (collision == COLLISION_OUTSIDE_RANGE) { eventObject->directionSequenceIndex++; SetEventObjectDirection(eventObject, GetOppositeDirection(eventObject->movementDirection)); movementActionId = GetWalkNormalMovementAction(eventObject->movementDirection); - collisionState = GetCollisionInDirection(eventObject, eventObject->movementDirection); + collision = GetCollisionInDirection(eventObject, eventObject->movementDirection); } - if (collisionState) - { + + if (collision) movementActionId = GetWalkInPlaceNormalMovementAction(eventObject->facingDirection); - } + EventObjectSetSingleMovement(eventObject, sprite, movementActionId); eventObject->singleMovementActive = 1; sprite->data[1] = 3; @@ -3998,27 +3995,26 @@ bool8 MovementType_WalkSequence_Step0(struct EventObject *eventObject, struct Sp bool8 MoveNextDirectionInSequence(struct EventObject *eventObject, struct Sprite *sprite, u8 *route) { - u8 collisionState; + u8 collision; u8 movementActionId; if (eventObject->directionSequenceIndex == 3 && eventObject->initialCoords.x == eventObject->currentCoords.x && eventObject->initialCoords.y == eventObject->currentCoords.y) - { eventObject->directionSequenceIndex = 0; - } + SetEventObjectDirection(eventObject, route[eventObject->directionSequenceIndex]); movementActionId = GetWalkNormalMovementAction(eventObject->movementDirection); - collisionState = GetCollisionInDirection(eventObject, eventObject->movementDirection); - if (collisionState == TRUE) + collision = GetCollisionInDirection(eventObject, eventObject->movementDirection); + if (collision == COLLISION_OUTSIDE_RANGE) { eventObject->directionSequenceIndex++; SetEventObjectDirection(eventObject, route[eventObject->directionSequenceIndex]); movementActionId = GetWalkNormalMovementAction(eventObject->movementDirection); - collisionState = GetCollisionInDirection(eventObject, eventObject->movementDirection); + collision = GetCollisionInDirection(eventObject, eventObject->movementDirection); } - if (collisionState) - { + + if (collision) movementActionId = GetWalkInPlaceNormalMovementAction(eventObject->facingDirection); - } + EventObjectSetSingleMovement(eventObject, sprite, movementActionId); eventObject->singleMovementActive = 1; sprite->data[1] = 2; @@ -4868,22 +4864,20 @@ static u8 GetCollisionInDirection(struct EventObject *eventObject, u8 direction) return GetCollisionAtCoords(eventObject, x, y, direction); } -u8 GetCollisionAtCoords(struct EventObject *eventObject, s16 x, s16 y, u32 dirn) +u8 GetCollisionAtCoords(struct EventObject *eventObject, s16 x, s16 y, u32 dir) { - u8 direction; - - direction = dirn; + u8 direction = dir; if (IsCoordOutsideEventObjectMovementRange(eventObject, x, y)) - return 1; + return COLLISION_OUTSIDE_RANGE; else if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == -1 || IsMetatileDirectionallyImpassable(eventObject, x, y, direction)) - return 2; + return COLLISION_IMPASSABLE; else if (eventObject->trackedByCamera && !CanCameraMoveInDirection(direction)) - return 2; + return COLLISION_IMPASSABLE; else if (IsZCoordMismatchAt(eventObject->currentElevation, x, y)) - return 3; + return COLLISION_ELEVATION_MISMATCH; else if (DoesObjectCollideWithObjectAt(eventObject, x, y)) - return 4; - return 0; + return COLLISION_EVENT_OBJECT; + return COLLISION_NONE; } u8 GetCollisionFlagsAtCoords(struct EventObject *eventObject, s16 x, s16 y, u8 direction) @@ -6831,15 +6825,15 @@ bool8 MovementAction_ClearAffineAnim_Step0(struct EventObject *eventObject, stru return TRUE; } -bool8 MovementAction_Unknown1_Step0(struct EventObject *eventObject, struct Sprite *sprite) +bool8 MovementAction_HideReflection_Step0(struct EventObject *eventObject, struct Sprite *sprite) { - eventObject->unk3_3 = TRUE; + eventObject->hideReflection = TRUE; return TRUE; } -bool8 MovementAction_Unknown2_Step0(struct EventObject *eventObject, struct Sprite *sprite) +bool8 MovementAction_ShowReflection_Step0(struct EventObject *eventObject, struct Sprite *sprite) { - eventObject->unk3_3 = FALSE; + eventObject->hideReflection = FALSE; return TRUE; } diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index fb883b105..8db58ad7a 100755 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -143,7 +143,7 @@ static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite) reflectionSprite->pos2.y = -mainSprite->pos2.y; reflectionSprite->coordOffsetEnabled = mainSprite->coordOffsetEnabled; - if (eventObject->unk3_3 == TRUE) + if (eventObject->hideReflection == TRUE) reflectionSprite->invisible = TRUE; // Check if the reflection is not still. diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 6d62cdc4a..229e5aedb 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -71,10 +71,10 @@ static void PlayerNotOnBikeMoving(u8, u16); static u8 CheckForPlayerAvatarCollision(u8); static u8 sub_808B028(u8); static u8 sub_808B164(struct EventObject *, s16, s16, u8, u8); -static bool8 sub_808B1BC(s16, s16, u8); +static bool8 CanStopSurfing(s16, s16, u8); static bool8 ShouldJumpLedge(s16, s16, u8); -static u8 sub_808B238(s16, s16, u8); -static void check_acro_bike_metatile(s16, s16, u8, u8 *); +static bool8 TryPushBoulder(s16, s16, u8); +static void CheckAcroBikeCollision(s16, s16, u8, u8 *); static void DoPlayerAvatarTransition(void); static void PlayerAvatarTransition_Dummy(struct EventObject *a); @@ -115,9 +115,9 @@ static bool8 PlayerAvatar_SecretBaseMatSpinStep1(struct Task *task, struct Event static bool8 PlayerAvatar_SecretBaseMatSpinStep2(struct Task *task, struct EventObject *eventObject); static bool8 PlayerAvatar_SecretBaseMatSpinStep3(struct Task *task, struct EventObject *eventObject); -static void sub_808C750(u8); -static void taskFF_0805D1D4(u8 taskId); -static void sub_808C814(u8 taskId); +static void CreateStopSurfingTask(u8); +static void Task_StopSurfingInit(u8 taskId); +static void Task_WaitStopSurfing(u8 taskId); static void Task_Fishing(u8 taskId); static u8 Fishing1(struct Task *task); @@ -194,7 +194,7 @@ static void (*const gUnknown_08497490[])(u8, u16) = PlayerNotOnBikeMoving, }; -static bool8 (*const gUnknown_0849749C[])(u8) = +static bool8 (*const sAcroBikeTrickMetatiles[])(u8) = { MetatileBehavior_IsBumpySlope, MetatileBehavior_IsIsolatedVerticalRail, @@ -203,7 +203,13 @@ static bool8 (*const gUnknown_0849749C[])(u8) = MetatileBehavior_IsHorizontalRail, }; -static const u8 gUnknown_084974B0[] = {9, 10, 11, 12, 13, 0, 0, 0}; +static const u8 sAcroBikeTrickCollisionTypes[] = { + COLLISION_WHEELIE_HOP, + COLLISION_ISOLATED_VERTICAL_RAIL, + COLLISION_ISOLATED_HORIZONTAL_RAIL, + COLLISION_VERTICAL_RAIL, + COLLISION_HORIZONTAL_RAIL, +}; static void (*const gUnknown_084974B8[])(struct EventObject *) = { @@ -432,19 +438,19 @@ static bool8 ForcedMovement_None(void) static u8 DoForcedMovement(u8 direction, void (*b)(u8)) { struct PlayerAvatar *playerAvatar = &gPlayerAvatar; - u8 collisionType = CheckForPlayerAvatarCollision(direction); + u8 collision = CheckForPlayerAvatarCollision(direction); playerAvatar->flags |= PLAYER_AVATAR_FLAG_6; - if (collisionType != 0) + if (collision) { ForcedMovement_None(); - if (collisionType <= 4) + if (collision < COLLISION_STOP_SURFING) { return 0; } else { - if (collisionType == COLLISION_LEDGE_JUMP) + if (collision == COLLISION_LEDGE_JUMP) PlayerJumpLedge(direction); playerAvatar->flags |= PLAYER_AVATAR_FLAG_6; playerAvatar->runningState = MOVING; @@ -605,33 +611,26 @@ static void PlayerNotOnBikeTurningInPlace(u8 direction, u16 heldKeys) static void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys) { - u8 r0 = CheckForPlayerAvatarCollision(direction); + u8 collision = CheckForPlayerAvatarCollision(direction); - if (r0 != 0) + if (collision) { - if (r0 == 6) + if (collision == COLLISION_LEDGE_JUMP) { PlayerJumpLedge(direction); return; } - else if (r0 == 4 && IsPlayerCollidingWithFarawayIslandMew(direction) != 0) + else if (collision == COLLISION_EVENT_OBJECT && IsPlayerCollidingWithFarawayIslandMew(direction)) { PlayerNotOnBikeCollideWithFarawayIslandMew(direction); return; } else { - u8 r4 = r0 - 5; - - if (r4 > 3) - { + u8 adjustedCollision = collision - COLLISION_STOP_SURFING; + if (adjustedCollision > 3) PlayerNotOnBikeCollide(direction); - return; - } - else - { - return; - } + return; } } @@ -677,50 +676,49 @@ static u8 sub_808B028(u8 direction) return sub_808B164(playerEventObj, x, y, direction, MapGridGetMetatileBehaviorAt(x, y)); } -u8 CheckForEventObjectCollision(struct EventObject *a, s16 x, s16 y, u8 direction, u8 e) +u8 CheckForEventObjectCollision(struct EventObject *eventObject, s16 x, s16 y, u8 direction, u8 metatileBehavior) { - u8 collision; + u8 collision = GetCollisionAtCoords(eventObject, x, y, direction); + if (collision == COLLISION_ELEVATION_MISMATCH && CanStopSurfing(x, y, direction)) + return COLLISION_STOP_SURFING; - collision = GetCollisionAtCoords(a, x, y, direction); - if (collision == 3 && sub_808B1BC(x, y, direction)) - return 5; if (ShouldJumpLedge(x, y, direction)) { IncrementGameStat(GAME_STAT_JUMPED_DOWN_LEDGES); return COLLISION_LEDGE_JUMP; } - if (collision == 4 && sub_808B238(x, y, direction)) - return 7; + if (collision == COLLISION_EVENT_OBJECT && TryPushBoulder(x, y, direction)) + return COLLISION_PUSHED_BOULDER; - if (collision == 0) + if (collision == COLLISION_NONE) { if (CheckForRotatingGatePuzzleCollision(direction, x, y)) - return 8; - check_acro_bike_metatile(x, y, e, &collision); + return COLLISION_ROTATING_GATE; + CheckAcroBikeCollision(x, y, metatileBehavior, &collision); } return collision; } -static u8 sub_808B164(struct EventObject *a, s16 x, s16 y, u8 direction, u8 e) +static u8 sub_808B164(struct EventObject *eventObject, s16 x, s16 y, u8 direction, u8 metatileBehavior) { - u8 collision = GetCollisionAtCoords(a, x, y, direction); + u8 collision = GetCollisionAtCoords(eventObject, x, y, direction); - if (collision == 0) + if (collision == COLLISION_NONE) { - if (CheckForRotatingGatePuzzleCollisionWithoutAnimation(direction, x, y) != 0) - return 8; - check_acro_bike_metatile(x, y, e, &collision); + if (CheckForRotatingGatePuzzleCollisionWithoutAnimation(direction, x, y)) + return COLLISION_ROTATING_GATE; + CheckAcroBikeCollision(x, y, metatileBehavior, &collision); } return collision; } -static bool8 sub_808B1BC(s16 x, s16 y, u8 direction) +static bool8 CanStopSurfing(s16 x, s16 y, u8 direction) { if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) && MapGridGetZCoordAt(x, y) == 3 && GetEventObjectIdByXYZ(x, y, 3) == EVENT_OBJECTS_COUNT) { - sub_808C750(direction); + CreateStopSurfingTask(direction); return TRUE; } else @@ -737,7 +735,7 @@ static bool8 ShouldJumpLedge(s16 x, s16 y, u8 z) return FALSE; } -static u8 sub_808B238(s16 x, s16 y, u8 direction) +static bool8 TryPushBoulder(s16 x, s16 y, u8 direction) { if (FlagGet(FLAG_SYS_USE_STRENGTH)) { @@ -748,26 +746,26 @@ static u8 sub_808B238(s16 x, s16 y, u8 direction) x = gEventObjects[eventObjectId].currentCoords.x; y = gEventObjects[eventObjectId].currentCoords.y; MoveCoords(direction, &x, &y); - if (GetCollisionAtCoords(&gEventObjects[eventObjectId], x, y, direction) == 0 + if (GetCollisionAtCoords(&gEventObjects[eventObjectId], x, y, direction) == COLLISION_NONE && MetatileBehavior_IsNonAnimDoor(MapGridGetMetatileBehaviorAt(x, y)) == 0) { StartStrengthAnim(eventObjectId, direction); - return 1; + return TRUE; } } } - return 0; + return FALSE; } -static void check_acro_bike_metatile(s16 unused1, s16 unused2, u8 c, u8 *d) +static void CheckAcroBikeCollision(s16 x, s16 y, u8 metatileBehavior, u8 *collision) { u8 i; - for (i = 0; i < 5; i++) + for (i = 0; i < ARRAY_COUNT(sAcroBikeTrickMetatiles); i++) { - if (gUnknown_0849749C[i](c)) + if (sAcroBikeTrickMetatiles[i](metatileBehavior)) { - *d = gUnknown_084974B0[i]; + *collision = sAcroBikeTrickCollisionTypes[i]; return; } } @@ -1314,7 +1312,8 @@ bool8 IsPlayerFacingSurfableFishableWater(void) s16 y = playerEventObj->currentCoords.y; MoveCoords(playerEventObj->facingDirection, &x, &y); - if (GetCollisionAtCoords(playerEventObj, x, y, playerEventObj->facingDirection) == 3 && PlayerGetZCoord() == 3 + if (GetCollisionAtCoords(playerEventObj, x, y, playerEventObj->facingDirection) == COLLISION_ELEVATION_MISMATCH + && PlayerGetZCoord() == 3 && MetatileBehavior_IsSurfableFishableWater(MapGridGetMetatileBehaviorAt(x, y))) return TRUE; else @@ -1626,9 +1625,7 @@ static bool8 PlayerAvatar_SecretBaseMatSpinStep3(struct Task *task, struct Event return FALSE; } -/* Some Field effect */ - -static void sub_808C750(u8 a) +static void CreateStopSurfingTask(u8 direction) { u8 taskId; @@ -1638,12 +1635,12 @@ static void sub_808C750(u8 a) gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_SURFING; gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_ON_FOOT; gPlayerAvatar.preventStep = TRUE; - taskId = CreateTask(taskFF_0805D1D4, 0xFF); - gTasks[taskId].data[0] = a; - taskFF_0805D1D4(taskId); + taskId = CreateTask(Task_StopSurfingInit, 0xFF); + gTasks[taskId].data[0] = direction; + Task_StopSurfingInit(taskId); } -static void taskFF_0805D1D4(u8 taskId) +static void Task_StopSurfingInit(u8 taskId) { struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId]; @@ -1654,10 +1651,10 @@ static void taskFF_0805D1D4(u8 taskId) } sub_81555AC(playerEventObj->fieldEffectSpriteId, 2); EventObjectSetHeldMovement(playerEventObj, GetJumpSpecialMovementAction((u8)gTasks[taskId].data[0])); - gTasks[taskId].func = sub_808C814; + gTasks[taskId].func = Task_WaitStopSurfing; } -static void sub_808C814(u8 taskId) +static void Task_WaitStopSurfing(u8 taskId) { struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId]; diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 9a5d47156..ff82f8c42 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -638,7 +638,7 @@ static void Task_ReturnToWorldFromLinkRoom(u8 taskId) } } -void sub_80AF9F8(void) +void ReturnFromLinkRoom(void) { CreateTask(Task_ReturnToWorldFromLinkRoom, 10); } diff --git a/src/field_specials.c b/src/field_specials.c index 7a43eca67..f7f134d01 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3737,12 +3737,11 @@ bool32 IsTrainerRegistered(void) } // Always returns FALSE -bool32 sub_813B514(void) +bool32 ShouldDistributeEonTicket(void) { - if (!VarGet(VAR_ALWAYS_ZERO_0x403F)) - { + if (!VarGet(VAR_DISTRIBUTE_EON_TICKET)) return FALSE; - } + return TRUE; } diff --git a/src/flying.c b/src/flying.c index 3d04a543c..698063400 100644 --- a/src/flying.c +++ b/src/flying.c @@ -550,12 +550,12 @@ void sub_810E2C8(struct Sprite *sprite) struct FeatherDanceData { - u8 unk0_0a:1; - u8 unk0_0b:1; - u8 unk0_0c:1; - u8 unk0_0d:1; - u8 unk0_1:4; - u8 unk1; + u16 unk0_0a:1; + u16 unk0_0b:1; + u16 unk0_0c:1; + u16 unk0_0d:1; + u16 unk0_1:4; + u16 unk1:8; u16 unk2; s16 unk4; u16 unk6; @@ -652,20 +652,11 @@ void sub_810E314(struct Sprite *sprite) sprite->callback = sub_810E520; } -#ifdef NONMATCHING -/* -Things I can't get to match: -1. data->unk0_1 bitfield behaviour. The way bits are read is different. -2. sprite->oam.priority--; sprite->oam.priority++; Nonmatching version tail-merges these, original does not. -3. sprite->pos2.x = (gSineTable[data->unk2] * var) >> 8; data->unk2 is very weirdly read at seemingly random moments inside the switch. -4. sinVal r6/r7 mismatch. -*/ void sub_810E520(struct Sprite *sprite) { - u8 matrixNum, sinIndex, var; + u8 matrixNum, sinIndex; s16 sinVal = 0; struct FeatherDanceData *data = (struct FeatherDanceData *)sprite->data; - if (data->unk0_0a) { if (data->unk1-- % 256 == 0) @@ -676,56 +667,69 @@ void sub_810E520(struct Sprite *sprite) } else { - switch (data->unk2 >> 6) + switch (data->unk2 / 64) { - case 0: - if (data->unk0_1 == 1) + case 0: + if (data->unk0_1 << 24 >> 24 == 1) // the shifts have to be here { data->unk0_0d = 1; data->unk0_0a = 1; data->unk1 = 0; } - else if (data->unk0_1 == 3) + else if (data->unk0_1 << 24 >> 24 == 3) { data->unk0_0b ^= 1; + data->unk0_0a = 1; data->unk1 = 0; } else if (data->unk0_0d) { sprite->hFlip ^= 1; sprite->animNum = sprite->hFlip; - sprite->animBeginning = 1; - sprite->animEnded = 0; + sprite->animBeginning = TRUE; + sprite->animEnded = FALSE; if (data->unk0_0c) { if (!IsContest()) { if (!data->unkE_0) + { sprite->oam.priority--; + data->unkE_0 ^= 1; + } else + { sprite->oam.priority++; + data->unkE_0 ^= 1; + } } else { if (!data->unkE_0) + { sprite->subpriority -= 12; + data->unkE_0 ^= 1; + } else + { sprite->subpriority += 12; + data->unkE_0 ^= 1; + } } - data->unkE_0 ^= 1; } data->unk0_0d = 0; + data->unk2; } data->unk0_1 = 0; break; case 1: - if (data->unk0_1 == 0) + if (data->unk0_1 << 24 >> 24 == 0) { data->unk0_0d = 1; data->unk0_0a = 1; data->unk1 = 0; } - else if (data->unk0_1 == 2) + else if (data->unk0_1 << 24 >> 24 == 2) { data->unk0_0a = 1; data->unk1 = 0; @@ -734,38 +738,49 @@ void sub_810E520(struct Sprite *sprite) { sprite->hFlip ^= 1; sprite->animNum = sprite->hFlip; - sprite->animBeginning = 1; - sprite->animEnded = 0; + sprite->animBeginning = TRUE; + sprite->animEnded = FALSE; if (data->unk0_0c) { if (!IsContest()) { if (!data->unkE_0) + { sprite->oam.priority--; + data->unkE_0 ^= 1; + } else + { sprite->oam.priority++; + data->unkE_0 ^= 1; + } } else { if (!data->unkE_0) + { sprite->subpriority -= 12; + data->unkE_0 ^= 1; + } else + { sprite->subpriority += 12; + data->unkE_0 ^= 1; + } } - data->unkE_0 ^= 1; } data->unk0_0d = 0; } data->unk0_1 = 1; break; case 2: - if (data->unk0_1 == 0) + if (data->unk0_1 << 24 >> 24 == 3) { data->unk0_0d = 1; data->unk0_0a = 1; data->unk1 = 0; } - else if (data->unk0_1 == 2) + else if (data->unk0_1 << 24 >> 24 == 1) { data->unk0_0a = 1; data->unk1 = 0; @@ -774,72 +789,96 @@ void sub_810E520(struct Sprite *sprite) { sprite->hFlip ^= 1; sprite->animNum = sprite->hFlip; - sprite->animBeginning = 1; - sprite->animEnded = 0; + sprite->animBeginning = TRUE; + sprite->animEnded = FALSE; if (data->unk0_0c) { if (!IsContest()) { if (!data->unkE_0) + { sprite->oam.priority--; + data->unkE_0 ^= 1; + } else + { sprite->oam.priority++; + data->unkE_0 ^= 1; + } } else { if (!data->unkE_0) + { sprite->subpriority -= 12; + data->unkE_0 ^= 1; + } else + { sprite->subpriority += 12; + data->unkE_0 ^= 1; + } } - data->unkE_0 ^= 1; } data->unk0_0d = 0; } data->unk0_1 = 2; break; case 3: - if (data->unk0_1 == 2) + if (data->unk0_1 << 24 >> 24 == 2) { data->unk0_0d = 1; } - else if (data->unk0_1 == 0) + else if (data->unk0_1 << 24 >> 24 == 0) { data->unk0_0b ^= 1; + data->unk0_0a = 1; data->unk1 = 0; } else if (data->unk0_0d) { sprite->hFlip ^= 1; sprite->animNum = sprite->hFlip; - sprite->animBeginning = 1; - sprite->animEnded = 0; + sprite->animBeginning = TRUE; + sprite->animEnded = FALSE; if (data->unk0_0c) { if (!IsContest()) { if (!data->unkE_0) + { sprite->oam.priority--; + data->unkE_0 ^= 1; + } else + { sprite->oam.priority++; + data->unkE_0 ^= 1; + } } else { if (!data->unkE_0) + { sprite->subpriority -= 12; + data->unkE_0 ^= 1; + } else + { sprite->subpriority += 12; + data->unkE_0 ^= 1; + } } - data->unkE_0 ^= 1; } data->unk0_0d = 0; } data->unk0_1 = 3; break; } - - var = data->unkC[data->unk0_0b]; - sprite->pos2.x = (gSineTable[data->unk2] * var) >> 8; + #ifndef NONMATCHING + asm("":::"r8"); + #endif + sprite->pos2.x = (data->unkC[data->unk0_0b] * gSineTable[data->unk2]) >> 8; matrixNum = sprite->oam.matrixNum; sinIndex = (-sprite->pos2.x >> 1) + data->unkA; @@ -856,723 +895,13 @@ void sub_810E520(struct Sprite *sprite) else data->unk2 = (data->unk2 + (data->unk4 & 0x7FFF)) & 0xFF; - if (sprite->pos1.y + sprite->pos2.y > data->unkE_1) + if (sprite->pos1.y + sprite->pos2.y >= data->unkE_1) { sprite->data[0] = 0; sprite->callback = sub_810E2C8; } } } -#else -NAKED -void sub_810E520(struct Sprite *sprite) -{ - asm_unified("push {r4-r7,lr}\n\ - mov r7, r9\n\ - mov r6, r8\n\ - push {r6,r7}\n\ - adds r5, r0, 0\n\ - movs r6, 0\n\ - adds r4, r5, 0\n\ - adds r4, 0x2E\n\ - ldrb r2, [r4]\n\ - movs r7, 0x1\n\ - movs r0, 0x1\n\ - mov r9, r0\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _0810E55A\n\ - ldrb r0, [r4, 0x1]\n\ - adds r1, r0, 0\n\ - adds r1, 0xFF\n\ - strb r1, [r4, 0x1]\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _0810E54E\n\ - b _0810EA36\n\ -_0810E54E:\n\ - movs r0, 0x2\n\ - negs r0, r0\n\ - ands r0, r2\n\ - strb r0, [r4]\n\ - strb r6, [r4, 0x1]\n\ - b _0810EA36\n\ -_0810E55A:\n\ - ldrh r0, [r4, 0x2]\n\ - lsrs r1, r0, 6\n\ - mov r12, r0\n\ - cmp r1, 0x1\n\ - bne _0810E566\n\ - b _0810E68A\n\ -_0810E566:\n\ - cmp r1, 0x1\n\ - bgt _0810E570\n\ - cmp r1, 0\n\ - beq _0810E57E\n\ - b _0810E97C\n\ -_0810E570:\n\ - cmp r1, 0x2\n\ - bne _0810E576\n\ - b _0810E77E\n\ -_0810E576:\n\ - cmp r1, 0x3\n\ - bne _0810E57C\n\ - b _0810E872\n\ -_0810E57C:\n\ - b _0810E97C\n\ -_0810E57E:\n\ - lsls r1, r2, 24\n\ - lsrs r0, r1, 28\n\ - cmp r0, 0x1\n\ - bne _0810E592\n\ - movs r0, 0x8\n\ - orrs r0, r2\n\ - orrs r0, r7\n\ - strb r0, [r4]\n\ - strb r6, [r4, 0x1]\n\ - b _0810E680\n\ -_0810E592:\n\ - lsrs r0, r1, 28\n\ - cmp r0, 0x3\n\ - bne _0810E5B4\n\ - lsls r0, r2, 30\n\ - lsrs r0, 31\n\ - movs r1, 0x1\n\ - eors r0, r1\n\ - ands r0, r7\n\ - lsls r0, 1\n\ - movs r1, 0x3\n\ - negs r1, r1\n\ - ands r1, r2\n\ - orrs r1, r0\n\ - orrs r1, r7\n\ - strb r1, [r4]\n\ - strb r6, [r4, 0x1]\n\ - b _0810E680\n\ -_0810E5B4:\n\ - movs r0, 0x8\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _0810E680\n\ - adds r3, r5, 0\n\ - adds r3, 0x3F\n\ - ldrb r2, [r3]\n\ - lsls r1, r2, 31\n\ - lsrs r1, 31\n\ - movs r6, 0x1\n\ - eors r1, r6\n\ - ands r1, r7\n\ - movs r0, 0x2\n\ - negs r0, r0\n\ - mov r8, r0\n\ - ands r0, r2\n\ - orrs r0, r1\n\ - strb r0, [r3]\n\ - lsls r0, 31\n\ - lsrs r0, 31\n\ - adds r1, r5, 0\n\ - adds r1, 0x2A\n\ - strb r0, [r1]\n\ - ldrb r0, [r3]\n\ - movs r1, 0x4\n\ - orrs r0, r1\n\ - movs r1, 0x11\n\ - negs r1, r1\n\ - ands r0, r1\n\ - strb r0, [r3]\n\ - ldrb r1, [r4]\n\ - movs r0, 0x4\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0810E672\n\ - bl IsContest\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _0810E642\n\ - ldrb r1, [r4, 0xE]\n\ - mov r0, r9\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0810E628\n\ - ldrb r2, [r5, 0x5]\n\ - lsls r1, r2, 28\n\ - lsrs r1, 30\n\ - subs r1, 0x1\n\ - movs r0, 0x3\n\ - ands r1, r0\n\ - lsls r1, 2\n\ - movs r0, 0xD\n\ - negs r0, r0\n\ - ands r0, r2\n\ - orrs r0, r1\n\ - strb r0, [r5, 0x5]\n\ - b _0810E660\n\ -_0810E628:\n\ - ldrb r2, [r5, 0x5]\n\ - lsls r1, r2, 28\n\ - lsrs r1, 30\n\ - adds r1, 0x1\n\ - movs r0, 0x3\n\ - ands r1, r0\n\ - lsls r1, 2\n\ - movs r0, 0xD\n\ - negs r0, r0\n\ - ands r0, r2\n\ - orrs r0, r1\n\ - strb r0, [r5, 0x5]\n\ - b _0810E660\n\ -_0810E642:\n\ - ldrb r1, [r4, 0xE]\n\ - mov r0, r9\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0810E656\n\ - adds r1, r5, 0\n\ - adds r1, 0x43\n\ - ldrb r0, [r1]\n\ - subs r0, 0xC\n\ - b _0810E65E\n\ -_0810E656:\n\ - adds r1, r5, 0\n\ - adds r1, 0x43\n\ - ldrb r0, [r1]\n\ - adds r0, 0xC\n\ -_0810E65E:\n\ - strb r0, [r1]\n\ -_0810E660:\n\ - ldrb r2, [r4, 0xE]\n\ - lsls r0, r2, 31\n\ - lsrs r0, 31\n\ - eors r0, r6\n\ - ands r0, r7\n\ - mov r1, r8\n\ - ands r1, r2\n\ - orrs r1, r0\n\ - strb r1, [r4, 0xE]\n\ -_0810E672:\n\ - ldrb r1, [r4]\n\ - movs r0, 0x9\n\ - negs r0, r0\n\ - ands r0, r1\n\ - strb r0, [r4]\n\ - ldrh r1, [r4, 0x2]\n\ - mov r12, r1\n\ -_0810E680:\n\ - ldrb r1, [r4]\n\ - movs r0, 0xF\n\ - ands r0, r1\n\ - strb r0, [r4]\n\ - b _0810E97C\n\ -_0810E68A:\n\ - lsls r1, r2, 24\n\ - lsrs r0, r1, 28\n\ - cmp r0, 0\n\ - bne _0810E698\n\ - movs r0, 0x8\n\ - orrs r0, r2\n\ - b _0810E6A0\n\ -_0810E698:\n\ - lsrs r0, r1, 28\n\ - cmp r0, 0x2\n\ - bne _0810E6A8\n\ - adds r0, r2, 0\n\ -_0810E6A0:\n\ - orrs r0, r7\n\ - strb r0, [r4]\n\ - strb r6, [r4, 0x1]\n\ - b _0810E774\n\ -_0810E6A8:\n\ - movs r0, 0x8\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _0810E774\n\ - adds r3, r5, 0\n\ - adds r3, 0x3F\n\ - ldrb r2, [r3]\n\ - lsls r1, r2, 31\n\ - lsrs r1, 31\n\ - movs r6, 0x1\n\ - eors r1, r6\n\ - ands r1, r7\n\ - movs r0, 0x2\n\ - negs r0, r0\n\ - mov r8, r0\n\ - ands r0, r2\n\ - orrs r0, r1\n\ - strb r0, [r3]\n\ - lsls r0, 31\n\ - lsrs r0, 31\n\ - adds r1, r5, 0\n\ - adds r1, 0x2A\n\ - strb r0, [r1]\n\ - ldrb r0, [r3]\n\ - movs r1, 0x4\n\ - orrs r0, r1\n\ - movs r1, 0x11\n\ - negs r1, r1\n\ - ands r0, r1\n\ - strb r0, [r3]\n\ - ldrb r1, [r4]\n\ - movs r0, 0x4\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0810E766\n\ - bl IsContest\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _0810E736\n\ - ldrb r1, [r4, 0xE]\n\ - mov r0, r9\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0810E71C\n\ - ldrb r2, [r5, 0x5]\n\ - lsls r1, r2, 28\n\ - lsrs r1, 30\n\ - subs r1, 0x1\n\ - movs r0, 0x3\n\ - ands r1, r0\n\ - lsls r1, 2\n\ - movs r0, 0xD\n\ - negs r0, r0\n\ - ands r0, r2\n\ - orrs r0, r1\n\ - strb r0, [r5, 0x5]\n\ - b _0810E754\n\ -_0810E71C:\n\ - ldrb r2, [r5, 0x5]\n\ - lsls r1, r2, 28\n\ - lsrs r1, 30\n\ - adds r1, 0x1\n\ - movs r0, 0x3\n\ - ands r1, r0\n\ - lsls r1, 2\n\ - movs r0, 0xD\n\ - negs r0, r0\n\ - ands r0, r2\n\ - orrs r0, r1\n\ - strb r0, [r5, 0x5]\n\ - b _0810E754\n\ -_0810E736:\n\ - ldrb r1, [r4, 0xE]\n\ - mov r0, r9\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0810E74A\n\ - adds r1, r5, 0\n\ - adds r1, 0x43\n\ - ldrb r0, [r1]\n\ - subs r0, 0xC\n\ - b _0810E752\n\ -_0810E74A:\n\ - adds r1, r5, 0\n\ - adds r1, 0x43\n\ - ldrb r0, [r1]\n\ - adds r0, 0xC\n\ -_0810E752:\n\ - strb r0, [r1]\n\ -_0810E754:\n\ - ldrb r2, [r4, 0xE]\n\ - lsls r0, r2, 31\n\ - lsrs r0, 31\n\ - eors r0, r6\n\ - ands r0, r7\n\ - mov r1, r8\n\ - ands r1, r2\n\ - orrs r1, r0\n\ - strb r1, [r4, 0xE]\n\ -_0810E766:\n\ - ldrb r1, [r4]\n\ - movs r0, 0x9\n\ - negs r0, r0\n\ - ands r0, r1\n\ - strb r0, [r4]\n\ - ldrh r1, [r4, 0x2]\n\ - mov r12, r1\n\ -_0810E774:\n\ - ldrb r0, [r4]\n\ - movs r1, 0xF\n\ - ands r1, r0\n\ - movs r0, 0x10\n\ - b _0810E978\n\ -_0810E77E:\n\ - lsls r1, r2, 24\n\ - lsrs r0, r1, 28\n\ - cmp r0, 0x3\n\ - bne _0810E78C\n\ - movs r0, 0x8\n\ - orrs r0, r2\n\ - b _0810E794\n\ -_0810E78C:\n\ - lsrs r0, r1, 28\n\ - cmp r0, 0x1\n\ - bne _0810E79C\n\ - adds r0, r2, 0\n\ -_0810E794:\n\ - orrs r0, r7\n\ - strb r0, [r4]\n\ - strb r6, [r4, 0x1]\n\ - b _0810E868\n\ -_0810E79C:\n\ - movs r0, 0x8\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _0810E868\n\ - adds r3, r5, 0\n\ - adds r3, 0x3F\n\ - ldrb r2, [r3]\n\ - lsls r1, r2, 31\n\ - lsrs r1, 31\n\ - movs r6, 0x1\n\ - eors r1, r6\n\ - ands r1, r7\n\ - movs r0, 0x2\n\ - negs r0, r0\n\ - mov r8, r0\n\ - ands r0, r2\n\ - orrs r0, r1\n\ - strb r0, [r3]\n\ - lsls r0, 31\n\ - lsrs r0, 31\n\ - adds r1, r5, 0\n\ - adds r1, 0x2A\n\ - strb r0, [r1]\n\ - ldrb r0, [r3]\n\ - movs r1, 0x4\n\ - orrs r0, r1\n\ - movs r1, 0x11\n\ - negs r1, r1\n\ - ands r0, r1\n\ - strb r0, [r3]\n\ - ldrb r1, [r4]\n\ - movs r0, 0x4\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0810E85A\n\ - bl IsContest\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _0810E82A\n\ - ldrb r1, [r4, 0xE]\n\ - mov r0, r9\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0810E810\n\ - ldrb r2, [r5, 0x5]\n\ - lsls r1, r2, 28\n\ - lsrs r1, 30\n\ - subs r1, 0x1\n\ - movs r0, 0x3\n\ - ands r1, r0\n\ - lsls r1, 2\n\ - movs r0, 0xD\n\ - negs r0, r0\n\ - ands r0, r2\n\ - orrs r0, r1\n\ - strb r0, [r5, 0x5]\n\ - b _0810E848\n\ -_0810E810:\n\ - ldrb r2, [r5, 0x5]\n\ - lsls r1, r2, 28\n\ - lsrs r1, 30\n\ - adds r1, 0x1\n\ - movs r0, 0x3\n\ - ands r1, r0\n\ - lsls r1, 2\n\ - movs r0, 0xD\n\ - negs r0, r0\n\ - ands r0, r2\n\ - orrs r0, r1\n\ - strb r0, [r5, 0x5]\n\ - b _0810E848\n\ -_0810E82A:\n\ - ldrb r1, [r4, 0xE]\n\ - mov r0, r9\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0810E83E\n\ - adds r1, r5, 0\n\ - adds r1, 0x43\n\ - ldrb r0, [r1]\n\ - subs r0, 0xC\n\ - b _0810E846\n\ -_0810E83E:\n\ - adds r1, r5, 0\n\ - adds r1, 0x43\n\ - ldrb r0, [r1]\n\ - adds r0, 0xC\n\ -_0810E846:\n\ - strb r0, [r1]\n\ -_0810E848:\n\ - ldrb r2, [r4, 0xE]\n\ - lsls r0, r2, 31\n\ - lsrs r0, 31\n\ - eors r0, r6\n\ - ands r0, r7\n\ - mov r1, r8\n\ - ands r1, r2\n\ - orrs r1, r0\n\ - strb r1, [r4, 0xE]\n\ -_0810E85A:\n\ - ldrb r1, [r4]\n\ - movs r0, 0x9\n\ - negs r0, r0\n\ - ands r0, r1\n\ - strb r0, [r4]\n\ - ldrh r1, [r4, 0x2]\n\ - mov r12, r1\n\ -_0810E868:\n\ - ldrb r0, [r4]\n\ - movs r1, 0xF\n\ - ands r1, r0\n\ - movs r0, 0x20\n\ - b _0810E978\n\ -_0810E872:\n\ - lsls r1, r2, 24\n\ - lsrs r0, r1, 28\n\ - cmp r0, 0x2\n\ - bne _0810E882\n\ - movs r0, 0x8\n\ - orrs r0, r2\n\ - strb r0, [r4]\n\ - b _0810E970\n\ -_0810E882:\n\ - lsrs r0, r1, 28\n\ - cmp r0, 0\n\ - bne _0810E8A4\n\ - lsls r0, r2, 30\n\ - lsrs r0, 31\n\ - movs r1, 0x1\n\ - eors r0, r1\n\ - ands r0, r7\n\ - lsls r0, 1\n\ - movs r1, 0x3\n\ - negs r1, r1\n\ - ands r1, r2\n\ - orrs r1, r0\n\ - orrs r1, r7\n\ - strb r1, [r4]\n\ - strb r6, [r4, 0x1]\n\ - b _0810E970\n\ -_0810E8A4:\n\ - movs r0, 0x8\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _0810E970\n\ - adds r3, r5, 0\n\ - adds r3, 0x3F\n\ - ldrb r2, [r3]\n\ - lsls r1, r2, 31\n\ - lsrs r1, 31\n\ - movs r6, 0x1\n\ - eors r1, r6\n\ - ands r1, r7\n\ - movs r0, 0x2\n\ - negs r0, r0\n\ - mov r8, r0\n\ - ands r0, r2\n\ - orrs r0, r1\n\ - strb r0, [r3]\n\ - lsls r0, 31\n\ - lsrs r0, 31\n\ - adds r1, r5, 0\n\ - adds r1, 0x2A\n\ - strb r0, [r1]\n\ - ldrb r0, [r3]\n\ - movs r1, 0x4\n\ - orrs r0, r1\n\ - movs r1, 0x11\n\ - negs r1, r1\n\ - ands r0, r1\n\ - strb r0, [r3]\n\ - ldrb r1, [r4]\n\ - movs r0, 0x4\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0810E962\n\ - bl IsContest\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _0810E932\n\ - ldrb r1, [r4, 0xE]\n\ - mov r0, r9\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0810E918\n\ - ldrb r2, [r5, 0x5]\n\ - lsls r1, r2, 28\n\ - lsrs r1, 30\n\ - subs r1, 0x1\n\ - movs r0, 0x3\n\ - ands r1, r0\n\ - lsls r1, 2\n\ - movs r0, 0xD\n\ - negs r0, r0\n\ - ands r0, r2\n\ - orrs r0, r1\n\ - strb r0, [r5, 0x5]\n\ - b _0810E950\n\ -_0810E918:\n\ - ldrb r2, [r5, 0x5]\n\ - lsls r1, r2, 28\n\ - lsrs r1, 30\n\ - adds r1, 0x1\n\ - movs r0, 0x3\n\ - ands r1, r0\n\ - lsls r1, 2\n\ - movs r0, 0xD\n\ - negs r0, r0\n\ - ands r0, r2\n\ - orrs r0, r1\n\ - strb r0, [r5, 0x5]\n\ - b _0810E950\n\ -_0810E932:\n\ - ldrb r1, [r4, 0xE]\n\ - mov r0, r9\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0810E946\n\ - adds r1, r5, 0\n\ - adds r1, 0x43\n\ - ldrb r0, [r1]\n\ - subs r0, 0xC\n\ - b _0810E94E\n\ -_0810E946:\n\ - adds r1, r5, 0\n\ - adds r1, 0x43\n\ - ldrb r0, [r1]\n\ - adds r0, 0xC\n\ -_0810E94E:\n\ - strb r0, [r1]\n\ -_0810E950:\n\ - ldrb r2, [r4, 0xE]\n\ - lsls r0, r2, 31\n\ - lsrs r0, 31\n\ - eors r0, r6\n\ - ands r0, r7\n\ - mov r1, r8\n\ - ands r1, r2\n\ - orrs r1, r0\n\ - strb r1, [r4, 0xE]\n\ -_0810E962:\n\ - ldrb r1, [r4]\n\ - movs r0, 0x9\n\ - negs r0, r0\n\ - ands r0, r1\n\ - strb r0, [r4]\n\ - ldrh r1, [r4, 0x2]\n\ - mov r12, r1\n\ -_0810E970:\n\ - ldrb r0, [r4]\n\ - movs r1, 0xF\n\ - ands r1, r0\n\ - movs r0, 0x30\n\ -_0810E978:\n\ - orrs r1, r0\n\ - strb r1, [r4]\n\ -_0810E97C:\n\ - ldrb r1, [r4]\n\ - lsls r1, 30\n\ - lsrs r1, 31\n\ - adds r0, r4, 0\n\ - adds r0, 0xC\n\ - adds r0, r1\n\ - ldrb r1, [r0]\n\ - ldr r3, =gSineTable\n\ - mov r2, r12\n\ - lsls r0, r2, 1\n\ - adds r0, r3\n\ - movs r2, 0\n\ - ldrsh r0, [r0, r2]\n\ - muls r0, r1\n\ - asrs r0, 8\n\ - strh r0, [r5, 0x24]\n\ - ldrb r2, [r5, 0x3]\n\ - lsls r2, 26\n\ - lsrs r2, 27\n\ - movs r1, 0x24\n\ - ldrsh r0, [r5, r1]\n\ - negs r0, r0\n\ - asrs r0, 1\n\ - ldrb r1, [r4, 0xA]\n\ - adds r0, r1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - lsls r1, r0, 1\n\ - adds r1, r3\n\ - ldrh r6, [r1]\n\ - ldr r1, =gOamMatrices\n\ - lsls r2, 3\n\ - adds r2, r1\n\ - adds r0, 0x40\n\ - lsls r0, 1\n\ - adds r0, r3\n\ - ldrh r0, [r0]\n\ - strh r0, [r2, 0x6]\n\ - strh r0, [r2]\n\ - strh r6, [r2, 0x2]\n\ - lsls r0, r6, 16\n\ - asrs r0, 16\n\ - negs r0, r0\n\ - strh r0, [r2, 0x4]\n\ - ldrh r0, [r4, 0x6]\n\ - ldrh r2, [r4, 0x8]\n\ - adds r0, r2\n\ - strh r0, [r4, 0x8]\n\ - lsls r0, 16\n\ - lsrs r0, 24\n\ - strh r0, [r5, 0x22]\n\ - movs r1, 0x4\n\ - ldrsh r0, [r4, r1]\n\ - movs r1, 0x80\n\ - lsls r1, 8\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0810EA0C\n\ - ldrh r0, [r4, 0x4]\n\ - subs r1, 0x1\n\ - ands r1, r0\n\ - ldrh r0, [r4, 0x2]\n\ - subs r0, r1\n\ - movs r1, 0xFF\n\ - ands r0, r1\n\ - strh r0, [r4, 0x2]\n\ - b _0810EA1C\n\ - .pool\n\ -_0810EA0C:\n\ - ldrh r0, [r4, 0x4]\n\ - ldr r1, =0x00007fff\n\ - ands r1, r0\n\ - ldrh r2, [r4, 0x2]\n\ - adds r1, r2\n\ - movs r0, 0xFF\n\ - ands r1, r0\n\ - strh r1, [r4, 0x2]\n\ -_0810EA1C:\n\ - movs r0, 0x22\n\ - ldrsh r1, [r5, r0]\n\ - movs r2, 0x26\n\ - ldrsh r0, [r5, r2]\n\ - adds r1, r0\n\ - ldrh r0, [r4, 0xE]\n\ - lsrs r0, 1\n\ - cmp r1, r0\n\ - blt _0810EA36\n\ - movs r0, 0\n\ - strh r0, [r5, 0x2E]\n\ - ldr r0, =sub_810E2C8\n\ - str r0, [r5, 0x1C]\n\ -_0810EA36:\n\ - pop {r3,r4}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - "); -} -#endif void sub_810EA4C(struct Sprite *sprite) { diff --git a/src/link.c b/src/link.c index e88dcb861..3ca8236ed 100644 --- a/src/link.c +++ b/src/link.c @@ -283,7 +283,7 @@ void LinkTestScreen(void) ResetTasks(); SetVBlankCallback(sub_80096BC); ResetBlockSend(); - gLinkType = 0x1111; + gLinkType = LINKTYPE_0x1111; OpenLink(); SeedRng(gMain.vblankCounter2); for (i = 0; i < MAX_LINK_PLAYERS; i++) @@ -1350,7 +1350,7 @@ bool8 sub_800AA60(void) { if (gLinkPlayers[i].trainerId == gSavedLinkPlayers[i].trainerId) { - if (gLinkType == 0x2288) + if (gLinkType == LINKTYPE_0x2288) { if (gLinkType == gLinkPlayers[i].linkType) { diff --git a/src/link_rfu.c b/src/link_rfu.c index 71eb0e58d..cedc6b2fb 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -4741,7 +4741,7 @@ void sub_8011AFC(void) SetVBlankCallback(sub_8011AE8); if (IsWirelessAdapterConnected()) { - gLinkType = 0x1111; + gLinkType = LINKTYPE_0x1111; sub_800B488(); OpenLink(); SeedRng(gMain.vblankCounter2); diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index c77a48615..14c00fd96 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -152,7 +152,7 @@ static void CB2_MysteryEventMenu(void) if (!IsTextPrinterActive(0)) { gMain.state++; - gLinkType = 0x5501; + gLinkType = LINKTYPE_0x5501; OpenLink(); } break; diff --git a/src/overworld.c b/src/overworld.c index e32024c77..d796a670f 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -85,9 +85,9 @@ extern const u8 EventScript_WhiteOut[]; extern const u8 EventScript_ResetMrBriney[]; extern const u8 EventScript_DoLinkRoomExit[]; -extern const u8 gEventScript_TradeRoom_TooBusyToNotice[]; -extern const u8 gEventScript_TradeRoom_ReadTrainerCard_NoColor[]; -extern const u8 gEventScript_TradeRoom_ReadTrainerCard_Normal[]; +extern const u8 CableClub_EventScript_TooBusyToNotice[]; +extern const u8 CableClub_EventScript_ReadTrainerCard[]; +extern const u8 CableClub_EventScript_ReadTrainerCardColored[]; extern const u8 EventScript_DoubleBattleColosseum_PlayerSpot0[]; extern const u8 EventScript_DoubleBattleColosseum_PlayerSpot1[]; extern const u8 EventScript_DoubleBattleColosseum_PlayerSpot2[]; @@ -2742,7 +2742,7 @@ static bool32 PlayerIsAtSouthExit(struct TradeRoomPlayer *player) return FALSE; else if (!MetatileBehavior_IsSouthArrowWarp(player->field_C)) return FALSE; - else if (player->facing != 1) + else if (player->facing != DIR_SOUTH) return FALSE; else return TRUE; @@ -2765,13 +2765,13 @@ static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) if (linkPlayerId != 4) { if (!player->isLocalPlayer) - return gEventScript_TradeRoom_TooBusyToNotice; + return CableClub_EventScript_TooBusyToNotice; else if (sPlayerTradingStates[linkPlayerId] != PLAYER_TRADING_STATE_IDLE) - return gEventScript_TradeRoom_TooBusyToNotice; + return CableClub_EventScript_TooBusyToNotice; else if (!GetLinkTrainerCardColor(linkPlayerId)) - return gEventScript_TradeRoom_ReadTrainerCard_NoColor; + return CableClub_EventScript_ReadTrainerCard; else - return gEventScript_TradeRoom_ReadTrainerCard_Normal; + return CableClub_EventScript_ReadTrainerCardColored; } return GetInteractedLinkPlayerScript(&otherPlayerPos, player->field_C, player->facing); diff --git a/src/party_menu.c b/src/party_menu.c index aa6597532..7f250ca1f 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -240,7 +240,7 @@ static void PartyMenuPrintText(const u8*); static void sub_81B1B8C(u8); static void DisplayPartyPokemonHPCheck(struct Pokemon*, struct Struct203CEDC*, u8); static void DisplayPartyPokemonHPBarCheck(struct Pokemon*, struct Struct203CEDC*); -static bool16 sub_81B2134(struct Pokemon*); +static bool16 IsMonAllowedInPokemonJump(struct Pokemon*); static bool16 sub_81B2164(struct Pokemon*); static void sub_81B2248(u8); static void sub_81B227C(u8); @@ -3007,7 +3007,7 @@ static void sub_81B209C(void) if (gSpecialVar_0x8005 == 0) { for (i = 0; i < gPlayerPartyCount; i++) - *ptr += sub_81B2134(&gPlayerParty[i]) << i; + *ptr += IsMonAllowedInPokemonJump(&gPlayerParty[i]) << i; } else { @@ -3017,9 +3017,9 @@ static void sub_81B209C(void) } } -static bool16 sub_81B2134(struct Pokemon *mon) +static bool16 IsMonAllowedInPokemonJump(struct Pokemon *mon) { - if (GetMonData(mon, MON_DATA_IS_EGG) != TRUE && sub_802C908(GetMonData(mon, MON_DATA_SPECIES))) + if (GetMonData(mon, MON_DATA_IS_EGG) != TRUE && IsSpeciesAllowedInPokemonJump(GetMonData(mon, MON_DATA_SPECIES))) return TRUE; return FALSE; } @@ -6762,7 +6762,7 @@ void sub_81B892C(void) InitPartyMenu(0, 0, 12, 0, 4, sub_81B1370, CB2_ReturnToFieldContinueScriptPlayMapMusic); } -void sub_81B8958(void) +void ChooseMonForWirelessMinigame(void) { InitPartyMenu(11, 0, 13, 0, 1, sub_81B1370, CB2_ReturnToFieldContinueScriptPlayMapMusic); } diff --git a/src/pokemon.c b/src/pokemon.c index da659b10d..55f9a93f3 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -5724,9 +5724,9 @@ u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex) switch (gNatureStatTable[nature][statIndex - 1]) { case 1: - return (u16)(n * 110) / 100; + return (u16)(n * 110) / 100; // NOTE: will overflow for n > 595 because the intermediate value is cast to u16 before the division. Fix by removing (u16) cast case -1: - return (u16)(n * 90) / 100; + return (u16)(n * 90) / 100; // NOTE: will overflow for n > 728, see above } return n; diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index cc9c2f4ff..76363af37 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -158,7 +158,7 @@ static void sub_802AA60(struct PokemonJump1 *); static void sub_802AA94(struct PokemonJump1 *); static void sub_802AB20(void); static void sub_802AB98(void); -static s16 sub_802AC00(u16 species); +static s16 GetPokemonJumpSpeciesIdx(u16 species); static void sub_802AC2C(struct PokemonJump1_MonInfo *monInfo, struct Pokemon *mon); static void sub_802AC6C(void); static void sub_802ACA0(u8 taskId); @@ -288,7 +288,7 @@ static void sub_802D598(void); static void sub_802D5E4(void); static void sub_802D72C(void); static void sub_802D688(void); -static void sub_802E3E4(u8 taskId); +static void Task_ShowPokemonJumpRecords(u8 taskId); static void sub_802E6D0(u8 taskId); static void sub_802EB98(u8 taskId); static void sub_802E500(u16 windowId, int width); @@ -501,7 +501,7 @@ static void sub_802AB20(void) for (i = 0; i < MAX_RFU_PLAYERS; i++) { - index = sub_802AC00(gUnknown_02022CFC->unk82A8[i].species); + index = GetPokemonJumpSpeciesIdx(gUnknown_02022CFC->unk82A8[i].species); gUnknown_02022CFC->unk82E4[i].unkC = gPkmnJumpSpecies[index].unk2; } @@ -524,7 +524,7 @@ static void sub_802AB98(void) } } -static s16 sub_802AC00(u16 species) +static s16 GetPokemonJumpSpeciesIdx(u16 species) { u32 i; for (i = 0; i < ARRAY_COUNT(gPkmnJumpSpecies); i++) @@ -533,7 +533,7 @@ static s16 sub_802AC00(u16 species) return i; } - return -1; + return -1; // species isnt allowed } static void sub_802AC2C(struct PokemonJump1_MonInfo *monInfo, struct Pokemon *mon) @@ -2204,12 +2204,12 @@ static u8 *sub_802C8E8(u8 multiplayerId) return gUnknown_02022CFC->unk82E4[multiplayerId].unk1C; } -bool32 sub_802C908(u16 species) +bool32 IsSpeciesAllowedInPokemonJump(u16 species) { - return sub_802AC00(species) > -1; + return GetPokemonJumpSpeciesIdx(species) > -1; } -void sub_802C920(void) +void IsPokemonJumpSpeciesInParty(void) { int i; @@ -2218,15 +2218,15 @@ void sub_802C920(void) if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES)) { u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); - if (sub_802C908(species)) + if (IsSpeciesAllowedInPokemonJump(species)) { - gSpecialVar_Result = 1; + gSpecialVar_Result = TRUE; return; } } } - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; } // Large group of data. @@ -3922,10 +3922,10 @@ static void sub_802E3A8(void) pokeJump->field6++; } -void sub_802E3C4(void) +void ShowPokemonJumpRecords(void) { - u8 taskId = CreateTask(sub_802E3E4, 0); - sub_802E3E4(taskId); + u8 taskId = CreateTask(Task_ShowPokemonJumpRecords, 0); + Task_ShowPokemonJumpRecords(taskId); } static const struct WindowTemplate gUnknown_082FE270 = @@ -3941,7 +3941,7 @@ static const struct WindowTemplate gUnknown_082FE270 = static const u8 *const gUnknown_082FE278[] = {gText_JumpsInARow, gText_BestScore2, gText_ExcellentsInARow}; -static void sub_802E3E4(u8 taskId) +static void Task_ShowPokemonJumpRecords(u8 taskId) { struct WindowTemplate window; int i, width, widthCurr; diff --git a/src/scrcmd.c b/src/scrcmd.c index 9861f9dae..8ddd23d6d 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -2218,6 +2218,8 @@ bool8 ScrCmd_checkmonobedience(struct ScriptContext *ctx) return FALSE; } +// TODO: Should be renamed. Name implies general usage, but its specifically for Wonder Card +// See GetSavedRamScriptIfValid, which is NULL if ValidateReceivedWonderCard returns FALSE bool8 ScrCmd_gotoram(struct ScriptContext *ctx) { const u8* v1 = GetSavedRamScriptIfValid(); diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index a80fe49ff..f8206797b 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -610,7 +610,7 @@ static bool8 CheckPartyMonHasHeldItem(u16 item) return FALSE; } -bool8 sub_80F9370(void) +bool8 DoesPartyHaveEnigmaBerry(void) { bool8 hasItem = CheckPartyMonHasHeldItem(ITEM_ENIGMA_BERRY); if (hasItem == TRUE) diff --git a/src/trade.c b/src/trade.c index 4d3ce3756..bfbc24194 100644 --- a/src/trade.c +++ b/src/trade.c @@ -388,7 +388,7 @@ static void CB2_CreateTradeMenu(void) if (!gReceivedRemoteLinkPlayers) { - gLinkType = 0x1122; + gLinkType = LINKTYPE_0x1122; sTradeMenuData->timer = 0; if (gWirelessCommType) @@ -2939,7 +2939,7 @@ void CB2_LinkTrade(void) case 0: if (!gReceivedRemoteLinkPlayers) { - gLinkType = 0x1144; + gLinkType = LINKTYPE_0x1144; CloseLink(); } sTradeData = AllocZeroed(sizeof(*sTradeData)); diff --git a/src/union_room.c b/src/union_room.c index f2f8445c1..f259a38f0 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -44,6 +44,7 @@ #include "union_room_player_avatar.h" #include "window.h" #include "constants/battle_frontier.h" +#include "constants/cable_club.h" #include "constants/game_stat.h" #include "constants/maps.h" #include "constants/rgb.h" @@ -211,7 +212,7 @@ bool32 sub_80126CC(u32 caseId) } } -void BerryBlenderLinkBecomeLeader(void) +void TryBecomeLinkLeader(void) { u8 taskId; struct UnkStruct_Leader *dataPtr; @@ -793,7 +794,7 @@ u8 sub_8013398(struct UnkStruct_Main0 *arg0) return ret; } -void BerryBlenderLinkJoinGroup(void) +void TryJoinLinkGroup(void) { u8 taskId; struct UnkStruct_Group *dataPtr; @@ -1383,7 +1384,7 @@ void sub_8014210(u16 battleFlags) HealPlayerParty(); SavePlayerParty(); LoadPlayerBag(); - gLinkPlayers[0].linkType = 0x2211; + gLinkPlayers[0].linkType = LINKTYPE_BATTLE; gLinkPlayers[GetMultiplayerId()].id = GetMultiplayerId(); gLinkPlayers[GetMultiplayerId() ^ 1].id = GetMultiplayerId() ^ 1; gMain.savedCallback = sub_80B360C; @@ -1391,18 +1392,18 @@ void sub_8014210(u16 battleFlags) PlayBattleBGM(); } -void sub_8014290(u16 arg0, u16 x, u16 y) +static void sub_8014290(u16 linkService, u16 x, u16 y) { - VarSet(VAR_CABLE_CLUB_STATE, arg0); + VarSet(VAR_CABLE_CLUB_STATE, linkService); SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y); SetDynamicWarpWithCoords(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y); WarpIntoMap(); } -void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4) +void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 linkService) { - gSpecialVar_0x8004 = arg4; - VarSet(VAR_CABLE_CLUB_STATE, arg4); + gSpecialVar_0x8004 = linkService; + VarSet(VAR_CABLE_CLUB_STATE, linkService); gFieldLinkPlayerCount = GetLinkPlayerCount(); gLocalLinkPlayerId = GetMultiplayerId(); SetCableClubWarp(); @@ -1468,7 +1469,7 @@ void sub_801440C(u8 taskId) HealPlayerParty(); SavePlayerParty(); LoadPlayerBag(); - sub_8014304(MAP_GROUP(SINGLE_BATTLE_COLOSSEUM), MAP_NUM(SINGLE_BATTLE_COLOSSEUM), 6, 8, 1); + sub_8014304(MAP_GROUP(SINGLE_BATTLE_COLOSSEUM), MAP_NUM(SINGLE_BATTLE_COLOSSEUM), 6, 8, USING_SINGLE_BATTLE); SetMainCallback2(sub_8014384); break; case 2: @@ -1477,7 +1478,7 @@ void sub_801440C(u8 taskId) SavePlayerParty(); LoadPlayerBag(); sub_80143E4(gBlockSendBuffer, TRUE); - sub_8014304(MAP_GROUP(SINGLE_BATTLE_COLOSSEUM), MAP_NUM(SINGLE_BATTLE_COLOSSEUM), 6, 8, 2); + sub_8014304(MAP_GROUP(SINGLE_BATTLE_COLOSSEUM), MAP_NUM(SINGLE_BATTLE_COLOSSEUM), 6, 8, USING_DOUBLE_BATTLE); SetMainCallback2(sub_8014384); break; case 3: @@ -1486,19 +1487,19 @@ void sub_801440C(u8 taskId) SavePlayerParty(); LoadPlayerBag(); sub_80143E4(gBlockSendBuffer, TRUE); - sub_8014304(MAP_GROUP(DOUBLE_BATTLE_COLOSSEUM), MAP_NUM(DOUBLE_BATTLE_COLOSSEUM), 5, 8, 5); + sub_8014304(MAP_GROUP(DOUBLE_BATTLE_COLOSSEUM), MAP_NUM(DOUBLE_BATTLE_COLOSSEUM), 5, 8, USING_MULTI_BATTLE); SetMainCallback2(sub_8014384); break; case 4: sub_80143E4(gBlockSendBuffer, TRUE); CleanupOverworldWindowsAndTilemaps(); - sub_8014304(MAP_GROUP(TRADE_CENTER), MAP_NUM(TRADE_CENTER), 5, 8, 3); + sub_8014304(MAP_GROUP(TRADE_CENTER), MAP_NUM(TRADE_CENTER), 5, 8, USING_TRADE_CENTER); SetMainCallback2(sub_8014384); break; case 15: sub_80143E4(gBlockSendBuffer, TRUE); CleanupOverworldWindowsAndTilemaps(); - sub_8014304(MAP_GROUP(RECORD_CORNER), MAP_NUM(RECORD_CORNER), 8, 9, 4); + sub_8014304(MAP_GROUP(RECORD_CORNER), MAP_NUM(RECORD_CORNER), 8, 9, USING_RECORD_CORNER); SetMainCallback2(sub_8014384); break; case 68: @@ -1524,15 +1525,15 @@ void sub_801440C(u8 taskId) SetMainCallback2(sub_80141A4); break; case 9: - sub_8014290(8, 5, 1); + sub_8014290(USING_MINIGAME, 5, 1); sub_802A9A8(GetCursorSelectionMonId(), CB2_LoadMap); break; case 10: - sub_8014290(7, 9, 1); + sub_8014290(USING_BERRY_CRUSH, 9, 1); sub_8020C70(CB2_LoadMap); break; case 11: - sub_8014290(8, 5, 1); + sub_8014290(USING_MINIGAME, 5, 1); sub_802493C(GetCursorSelectionMonId(), CB2_LoadMap); break; } @@ -1556,7 +1557,7 @@ void sub_8014790(u8 taskId) { case 14: case 28: - gLinkPlayers[0].linkType = 0x2211; + gLinkPlayers[0].linkType = LINKTYPE_BATTLE; gLinkPlayers[0].id = 0; gLinkPlayers[1].id = 2; sendBuff[0] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[0] - 1], MON_DATA_SPECIES); @@ -3059,14 +3060,14 @@ bool32 sub_80168DC(struct UnkStruct_URoom *arg0) return TRUE; } -void sub_8016934(void) +void InitUnionRoom(void) { struct UnkStruct_URoom *ptr; sUnionRoomPlayerName[0] = EOS; CreateTask(sub_801697C, 0); gUnknown_02022C30.uRoom = gUnknown_02022C30.uRoom; // Needed to match. - gUnknown_02022C30.uRoom = ptr = AllocZeroed(0x26C); + gUnknown_02022C30.uRoom = ptr = AllocZeroed(sizeof(struct UnkStruct_URoom)); gUnknown_03000DA8 = gUnknown_02022C30.uRoom; ptr->state = 0; ptr->textState = 0; |