diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2021-03-30 20:33:31 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2021-03-30 20:33:31 -0400 |
commit | f00b44699c49550ae2a56bf64e10e7f2d841e839 (patch) | |
tree | 605daea56a0e6d98628bdec329da986e845c2131 /src | |
parent | 35b68c68ee565b9b232252e4f37ea082e9310560 (diff) |
Fix movement types; fix some math ops
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_anim_effects_2.c | 12 | ||||
-rw-r--r-- | src/data/object_events/movement_action_func_tables.h | 340 | ||||
-rw-r--r-- | src/data/object_events/movement_type_func_tables.h | 38 | ||||
-rw-r--r-- | src/event_object_movement.c | 264 | ||||
-rw-r--r-- | src/vs_seeker.c | 128 |
5 files changed, 393 insertions, 389 deletions
diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index dcffedb0e..ff9e64cb9 100644 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -3013,10 +3013,7 @@ void AnimTask_FreeMusicNotesPals(u8 taskId) static void SetMusicNotePalette(struct Sprite *sprite, u8 a, u8 b) { - u8 tile; - - tile = (b & 1); - tile = ((-tile | tile) >> 31) & 32; + u8 tile = (b & 1) ? 32 : 0; sprite->oam.tileNum += tile + (a << 2); sprite->oam.paletteNum = IndexOfSpritePaletteTag(gMusicNotePaletteTagsTable[b >> 1]); } @@ -3715,7 +3712,7 @@ void AnimPerishSongMusicNote(struct Sprite *sprite) if (!sprite->data[0]) { sprite->pos1.x = 120; - sprite->pos1.y = (gBattleAnimArgs[0] + (((u16)gBattleAnimArgs[0]) >> 31)) / 2 - 15; + sprite->pos1.y = gBattleAnimArgs[0] / 2 - 15; StartSpriteAnim(sprite, gBattleAnimArgs[1]); @@ -3725,7 +3722,7 @@ void AnimPerishSongMusicNote(struct Sprite *sprite) sprite->data[0]++; - sprite->data[1] = (sprite->data[0] + ((u16)sprite->data[0] >> 31)) / 2; + sprite->data[1] = sprite->data[0] / 2; index = ((sprite->data[0] * 3) + (u16)sprite->data[3]); var2 = 0xFF; sprite->data[6] = (sprite->data[6] + 10) & 0xFF; @@ -3773,8 +3770,7 @@ static void AnimPerishSongMusicNote_Step2(struct Sprite *sprite) if (sprite->data[4] > 3) { - int var1 = sprite->data[2]; - sprite->invisible = var1 - (((s32)(var1 + ((u32)var1 >> 31)) >> 1) << 1); + sprite->invisible = sprite->data[2] % 2; DestroyAnimSprite(sprite); } diff --git a/src/data/object_events/movement_action_func_tables.h b/src/data/object_events/movement_action_func_tables.h index 701167500..b91cd8284 100644 --- a/src/data/object_events/movement_action_func_tables.h +++ b/src/data/object_events/movement_action_func_tables.h @@ -463,176 +463,176 @@ static u8 GetMoveDirectionFasterAnimNum(u8 direction); static u8 GetMoveDirectionFastestAnimNum(u8 direction); bool8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite *) = { - sMovementActionFuncs_x00, - sMovementActionFuncs_x01, - sMovementActionFuncs_x02, - sMovementActionFuncs_x03, - sMovementActionFuncs_x04, - sMovementActionFuncs_x05, - sMovementActionFuncs_x06, - sMovementActionFuncs_x07, - sMovementActionFuncs_x08, - sMovementActionFuncs_x09, - sMovementActionFuncs_x0A, - sMovementActionFuncs_x0B, - sMovementActionFuncs_x0C, - sMovementActionFuncs_x0D, - sMovementActionFuncs_x0E, - sMovementActionFuncs_x0F, - sMovementActionFuncs_x10, - sMovementActionFuncs_x11, - sMovementActionFuncs_x12, - sMovementActionFuncs_x13, - sMovementActionFuncs_x14, - sMovementActionFuncs_x15, - sMovementActionFuncs_x16, - sMovementActionFuncs_x17, - sMovementActionFuncs_x18, - sMovementActionFuncs_x19, - sMovementActionFuncs_x1A, - sMovementActionFuncs_x1B, - sMovementActionFuncs_x1C, - sMovementActionFuncs_x1D, - sMovementActionFuncs_x1E, - sMovementActionFuncs_x1F, - sMovementActionFuncs_x20, - sMovementActionFuncs_x21, - sMovementActionFuncs_x22, - sMovementActionFuncs_x23, - sMovementActionFuncs_x24, - sMovementActionFuncs_x25, - sMovementActionFuncs_x26, - sMovementActionFuncs_x27, - sMovementActionFuncs_x28, - sMovementActionFuncs_x29, - sMovementActionFuncs_x2A, - sMovementActionFuncs_x2B, - sMovementActionFuncs_x2C, - sMovementActionFuncs_x2D, - sMovementActionFuncs_x2E, - sMovementActionFuncs_x2F, - sMovementActionFuncs_x30, - sMovementActionFuncs_x31, - sMovementActionFuncs_x32, - sMovementActionFuncs_x33, - sMovementActionFuncs_x34, - sMovementActionFuncs_x35, - sMovementActionFuncs_x36, - sMovementActionFuncs_x37, - sMovementActionFuncs_x38, - sMovementActionFuncs_x39, - sMovementActionFuncs_x3A, - sMovementActionFuncs_x3B, - sMovementActionFuncs_x3C, - sMovementActionFuncs_x3D, - sMovementActionFuncs_x3E, - sMovementActionFuncs_x3F, - sMovementActionFuncs_x40, - sMovementActionFuncs_x41, - sMovementActionFuncs_x42, - sMovementActionFuncs_x43, - sMovementActionFuncs_x44, - sMovementActionFuncs_x45, - sMovementActionFuncs_x46, - sMovementActionFuncs_x47, - sMovementActionFuncs_x48, - sMovementActionFuncs_x49, - sMovementActionFuncs_x4A, - sMovementActionFuncs_x4B, - sMovementActionFuncs_x4C, - sMovementActionFuncs_x4D, - sMovementActionFuncs_x4E, - sMovementActionFuncs_x4F, - sMovementActionFuncs_x50, - sMovementActionFuncs_x51, - sMovementActionFuncs_x52, - sMovementActionFuncs_x53, - sMovementActionFuncs_x54, - sMovementActionFuncs_x55, - sMovementActionFuncs_x56, - sMovementActionFuncs_x57, - sMovementActionFuncs_x58, - sMovementActionFuncs_x59, - sMovementActionFuncs_x5A, - sMovementActionFuncs_x5B, - sMovementActionFuncs_x5C, - sMovementActionFuncs_x5D, - sMovementActionFuncs_x5E, - sMovementActionFuncs_x5F, - sMovementActionFuncs_x60, - sMovementActionFuncs_x61, - sMovementActionFuncs_x62, - sMovementActionFuncs_x63, - sMovementActionFuncs_x64, - sMovementActionFuncs_x65, - sMovementActionFuncs_x66, - sMovementActionFuncs_x67, - sMovementActionFuncs_x68, - sMovementActionFuncs_x69, - sMovementActionFuncs_x6A, - sMovementActionFuncs_x6B, - sMovementActionFuncs_x6C, - sMovementActionFuncs_x6D, - sMovementActionFuncs_x6E, - sMovementActionFuncs_x6F, - sMovementActionFuncs_x70, - sMovementActionFuncs_x71, - sMovementActionFuncs_x72, - sMovementActionFuncs_x73, - sMovementActionFuncs_x74, - sMovementActionFuncs_x75, - sMovementActionFuncs_x76, - sMovementActionFuncs_x77, - sMovementActionFuncs_x78, - sMovementActionFuncs_x79, - sMovementActionFuncs_x7A, - sMovementActionFuncs_x7B, - sMovementActionFuncs_x7C, - sMovementActionFuncs_x7D, - sMovementActionFuncs_x7E, - sMovementActionFuncs_x7F, - sMovementActionFuncs_x80, - sMovementActionFuncs_x81, - sMovementActionFuncs_x82, - sMovementActionFuncs_x83, - sMovementActionFuncs_x84, - sMovementActionFuncs_x85, - sMovementActionFuncs_x86, - sMovementActionFuncs_x87, - sMovementActionFuncs_x88, - sMovementActionFuncs_x89, - sMovementActionFuncs_x8A, - sMovementActionFuncs_x8B, - sMovementActionFuncs_x8C, - sMovementActionFuncs_x8D, - sMovementActionFuncs_x8E, - sMovementActionFuncs_x8F, - sMovementActionFuncs_x90, - sMovementActionFuncs_x91, - sMovementActionFuncs_x92, - sMovementActionFuncs_x93, - sMovementActionFuncs_x94, - sMovementActionFuncs_x95, - sMovementActionFuncs_x96, - sMovementActionFuncs_x97, - sMovementActionFuncs_x98, - sMovementActionFuncs_x99, - sMovementActionFuncs_x9A, - sMovementActionFuncs_x9B, - sMovementActionFuncs_x9C, - sMovementActionFuncs_x9D, - sMovementActionFuncs_x9E, - sMovementActionFuncs_x9F, - sMovementActionFuncs_xA0, - sMovementActionFuncs_xA1, - sMovementActionFuncs_xA2, - sMovementActionFuncs_xA3, - sMovementActionFuncs_xA4, - sMovementActionFuncs_xA5, - sMovementActionFuncs_xA6, - sMovementActionFuncs_xA7, - sMovementActionFuncs_xA8, - sMovementActionFuncs_xA9, + [MOVEMENT_ACTION_FACE_DOWN] = sMovementActionFuncs_x00, + [MOVEMENT_ACTION_FACE_UP] = sMovementActionFuncs_x01, + [MOVEMENT_ACTION_FACE_LEFT] = sMovementActionFuncs_x02, + [MOVEMENT_ACTION_FACE_RIGHT] = sMovementActionFuncs_x03, + [MOVEMENT_ACTION_FACE_DOWN_FAST] = sMovementActionFuncs_x04, + [MOVEMENT_ACTION_FACE_UP_FAST] = sMovementActionFuncs_x05, + [MOVEMENT_ACTION_FACE_LEFT_FAST] = sMovementActionFuncs_x06, + [MOVEMENT_ACTION_FACE_RIGHT_FAST] = sMovementActionFuncs_x07, + [MOVEMENT_ACTION_WALK_SLOWEST_DOWN] = sMovementActionFuncs_x08, + [MOVEMENT_ACTION_WALK_SLOWEST_UP] = sMovementActionFuncs_x09, + [MOVEMENT_ACTION_WALK_SLOWEST_LEFT] = sMovementActionFuncs_x0A, + [MOVEMENT_ACTION_WALK_SLOWEST_RIGHT] = sMovementActionFuncs_x0B, + [MOVEMENT_ACTION_WALK_SLOW_DOWN] = sMovementActionFuncs_x0C, + [MOVEMENT_ACTION_WALK_SLOW_UP] = sMovementActionFuncs_x0D, + [MOVEMENT_ACTION_WALK_SLOW_LEFT] = sMovementActionFuncs_x0E, + [MOVEMENT_ACTION_WALK_SLOW_RIGHT] = sMovementActionFuncs_x0F, + [MOVEMENT_ACTION_WALK_NORMAL_DOWN] = sMovementActionFuncs_x10, + [MOVEMENT_ACTION_WALK_NORMAL_UP] = sMovementActionFuncs_x11, + [MOVEMENT_ACTION_WALK_NORMAL_LEFT] = sMovementActionFuncs_x12, + [MOVEMENT_ACTION_WALK_NORMAL_RIGHT] = sMovementActionFuncs_x13, + [MOVEMENT_ACTION_JUMP_2_DOWN] = sMovementActionFuncs_x14, + [MOVEMENT_ACTION_JUMP_2_UP] = sMovementActionFuncs_x15, + [MOVEMENT_ACTION_JUMP_2_LEFT] = sMovementActionFuncs_x16, + [MOVEMENT_ACTION_JUMP_2_RIGHT] = sMovementActionFuncs_x17, + [MOVEMENT_ACTION_DELAY_1] = sMovementActionFuncs_x18, + [MOVEMENT_ACTION_DELAY_2] = sMovementActionFuncs_x19, + [MOVEMENT_ACTION_DELAY_4] = sMovementActionFuncs_x1A, + [MOVEMENT_ACTION_DELAY_8] = sMovementActionFuncs_x1B, + [MOVEMENT_ACTION_DELAY_16] = sMovementActionFuncs_x1C, + [MOVEMENT_ACTION_WALK_FAST_DOWN] = sMovementActionFuncs_x1D, + [MOVEMENT_ACTION_WALK_FAST_UP] = sMovementActionFuncs_x1E, + [MOVEMENT_ACTION_WALK_FAST_LEFT] = sMovementActionFuncs_x1F, + [MOVEMENT_ACTION_WALK_FAST_RIGHT] = sMovementActionFuncs_x20, + [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN] = sMovementActionFuncs_x21, + [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP] = sMovementActionFuncs_x22, + [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT] = sMovementActionFuncs_x23, + [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT] = sMovementActionFuncs_x24, + [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN] = sMovementActionFuncs_x25, + [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP] = sMovementActionFuncs_x26, + [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT] = sMovementActionFuncs_x27, + [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT] = sMovementActionFuncs_x28, + [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN] = sMovementActionFuncs_x29, + [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP] = sMovementActionFuncs_x2A, + [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT] = sMovementActionFuncs_x2B, + [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT] = sMovementActionFuncs_x2C, + [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN] = sMovementActionFuncs_x2D, + [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP] = sMovementActionFuncs_x2E, + [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT] = sMovementActionFuncs_x2F, + [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT] = sMovementActionFuncs_x30, + [MOVEMENT_ACTION_FACE_DOWN_SLOW] = sMovementActionFuncs_x31, + [MOVEMENT_ACTION_FACE_UP_SLOW] = sMovementActionFuncs_x32, + [MOVEMENT_ACTION_FACE_LEFT_SLOW] = sMovementActionFuncs_x33, + [MOVEMENT_ACTION_FACE_RIGHT_SLOW] = sMovementActionFuncs_x34, + [MOVEMENT_ACTION_WALK_FASTEST_DOWN] = sMovementActionFuncs_x35, + [MOVEMENT_ACTION_WALK_FASTEST_UP] = sMovementActionFuncs_x36, + [MOVEMENT_ACTION_WALK_FASTEST_LEFT] = sMovementActionFuncs_x37, + [MOVEMENT_ACTION_WALK_FASTEST_RIGHT] = sMovementActionFuncs_x38, + [MOVEMENT_ACTION_SLIDE_DOWN] = sMovementActionFuncs_x39, + [MOVEMENT_ACTION_SLIDE_UP] = sMovementActionFuncs_x3A, + [MOVEMENT_ACTION_SLIDE_LEFT] = sMovementActionFuncs_x3B, + [MOVEMENT_ACTION_SLIDE_RIGHT] = sMovementActionFuncs_x3C, + [MOVEMENT_ACTION_PLAYER_RUN_DOWN] = sMovementActionFuncs_x3D, + [MOVEMENT_ACTION_PLAYER_RUN_UP] = sMovementActionFuncs_x3E, + [MOVEMENT_ACTION_PLAYER_RUN_LEFT] = sMovementActionFuncs_x3F, + [MOVEMENT_ACTION_PLAYER_RUN_RIGHT] = sMovementActionFuncs_x40, + [MOVEMENT_ACTION_PLAYER_RUN_DOWN_SLOW] = sMovementActionFuncs_x41, + [MOVEMENT_ACTION_PLAYER_RUN_UP_SLOW] = sMovementActionFuncs_x42, + [MOVEMENT_ACTION_PLAYER_RUN_LEFT_SLOW] = sMovementActionFuncs_x43, + [MOVEMENT_ACTION_PLAYER_RUN_RIGHT_SLOW] = sMovementActionFuncs_x44, + [MOVEMENT_ACTION_START_ANIM_IN_DIRECTION] = sMovementActionFuncs_x45, + [MOVEMENT_ACTION_JUMP_SPECIAL_DOWN] = sMovementActionFuncs_x46, + [MOVEMENT_ACTION_JUMP_SPECIAL_UP] = sMovementActionFuncs_x47, + [MOVEMENT_ACTION_JUMP_SPECIAL_LEFT] = sMovementActionFuncs_x48, + [MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT] = sMovementActionFuncs_x49, + [MOVEMENT_ACTION_FACE_PLAYER] = sMovementActionFuncs_x4A, + [MOVEMENT_ACTION_FACE_AWAY_PLAYER] = sMovementActionFuncs_x4B, + [MOVEMENT_ACTION_LOCK_FACING_DIRECTION] = sMovementActionFuncs_x4C, + [MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION] = sMovementActionFuncs_x4D, + [MOVEMENT_ACTION_JUMP_DOWN] = sMovementActionFuncs_x4E, + [MOVEMENT_ACTION_JUMP_UP] = sMovementActionFuncs_x4F, + [MOVEMENT_ACTION_JUMP_LEFT] = sMovementActionFuncs_x50, + [MOVEMENT_ACTION_JUMP_RIGHT] = sMovementActionFuncs_x51, + [MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN] = sMovementActionFuncs_x52, + [MOVEMENT_ACTION_JUMP_IN_PLACE_UP] = sMovementActionFuncs_x53, + [MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT] = sMovementActionFuncs_x54, + [MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT] = sMovementActionFuncs_x55, + [MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP] = sMovementActionFuncs_x56, + [MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN] = sMovementActionFuncs_x57, + [MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT] = sMovementActionFuncs_x58, + [MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT] = sMovementActionFuncs_x59, + [MOVEMENT_ACTION_FACE_ORIGINAL_DIRECTION] = sMovementActionFuncs_x5A, + [MOVEMENT_ACTION_NURSE_JOY_BOW_DOWN] = sMovementActionFuncs_x5B, + [MOVEMENT_ACTION_ENABLE_JUMP_LANDING_GROUND_EFFECT] = sMovementActionFuncs_x5C, + [MOVEMENT_ACTION_DISABLE_JUMP_LANDING_GROUND_EFFECT] = sMovementActionFuncs_x5D, + [MOVEMENT_ACTION_DISABLE_ANIMATION] = sMovementActionFuncs_x5E, + [MOVEMENT_ACTION_RESTORE_ANIMATION] = sMovementActionFuncs_x5F, + [MOVEMENT_ACTION_SET_INVISIBLE] = sMovementActionFuncs_x60, + [MOVEMENT_ACTION_SET_VISIBLE] = sMovementActionFuncs_x61, + [MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK] = sMovementActionFuncs_x62, + [MOVEMENT_ACTION_EMOTE_QUESTION_MARK] = sMovementActionFuncs_x63, + [MOVEMENT_ACTION_EMOTE_X] = sMovementActionFuncs_x64, + [MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK] = sMovementActionFuncs_x65, + [MOVEMENT_ACTION_EMOTE_SMILE] = sMovementActionFuncs_x66, + [MOVEMENT_ACTION_REVEAL_TRAINER] = sMovementActionFuncs_x67, + [MOVEMENT_ACTION_ROCK_SMASH_BREAK] = sMovementActionFuncs_x68, + [MOVEMENT_ACTION_CUT_TREE] = sMovementActionFuncs_x69, + [MOVEMENT_ACTION_SET_FIXED_PRIORITY] = sMovementActionFuncs_x6A, + [MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY] = sMovementActionFuncs_x6B, + [MOVEMENT_ACTION_INIT_AFFINE_ANIM] = sMovementActionFuncs_x6C, + [MOVEMENT_ACTION_CLEAR_AFFINE_ANIM] = sMovementActionFuncs_x6D, + [MOVEMENT_ACTION_WALK_DOWN_START_AFFINE] = sMovementActionFuncs_x6E, + [MOVEMENT_ACTION_WALK_DOWN_AFFINE] = sMovementActionFuncs_x6F, + [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN] = sMovementActionFuncs_x70, + [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP] = sMovementActionFuncs_x71, + [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_LEFT] = sMovementActionFuncs_x72, + [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT] = sMovementActionFuncs_x73, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN] = sMovementActionFuncs_x74, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP] = sMovementActionFuncs_x75, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_LEFT] = sMovementActionFuncs_x76, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT] = sMovementActionFuncs_x77, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN] = sMovementActionFuncs_x78, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP] = sMovementActionFuncs_x79, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_LEFT] = sMovementActionFuncs_x7A, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT] = sMovementActionFuncs_x7B, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN] = sMovementActionFuncs_x7C, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP] = sMovementActionFuncs_x7D, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_LEFT] = sMovementActionFuncs_x7E, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT] = sMovementActionFuncs_x7F, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN] = sMovementActionFuncs_x80, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP] = sMovementActionFuncs_x81, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_LEFT] = sMovementActionFuncs_x82, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT] = sMovementActionFuncs_x83, + [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN] = sMovementActionFuncs_x84, + [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP] = sMovementActionFuncs_x85, + [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_LEFT] = sMovementActionFuncs_x86, + [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT] = sMovementActionFuncs_x87, + [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN] = sMovementActionFuncs_x88, + [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP] = sMovementActionFuncs_x89, + [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_LEFT] = sMovementActionFuncs_x8A, + [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT] = sMovementActionFuncs_x8B, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN] = sMovementActionFuncs_x8C, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP] = sMovementActionFuncs_x8D, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_LEFT] = sMovementActionFuncs_x8E, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT] = sMovementActionFuncs_x8F, + [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN] = sMovementActionFuncs_x90, + [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP] = sMovementActionFuncs_x91, + [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT] = sMovementActionFuncs_x92, + [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT] = sMovementActionFuncs_x93, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN] = sMovementActionFuncs_x94, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_UP] = sMovementActionFuncs_x95, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_LEFT] = sMovementActionFuncs_x96, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT] = sMovementActionFuncs_x97, + [MOVEMENT_ACTION_0x98] = sMovementActionFuncs_x98, + [MOVEMENT_ACTION_0x99] = sMovementActionFuncs_x99, + [MOVEMENT_ACTION_0x9A] = sMovementActionFuncs_x9A, + [MOVEMENT_ACTION_0x9B] = sMovementActionFuncs_x9B, + [MOVEMENT_ACTION_0x9C] = sMovementActionFuncs_x9C, + [MOVEMENT_ACTION_0x9D] = sMovementActionFuncs_x9D, + [MOVEMENT_ACTION_0x9E] = sMovementActionFuncs_x9E, + [MOVEMENT_ACTION_0x9F] = sMovementActionFuncs_x9F, + [MOVEMENT_ACTION_0xA0] = sMovementActionFuncs_xA0, + [MOVEMENT_ACTION_0xA1] = sMovementActionFuncs_xA1, + [MOVEMENT_ACTION_0xA2] = sMovementActionFuncs_xA2, + [MOVEMENT_ACTION_0xA3] = sMovementActionFuncs_xA3, + [MOVEMENT_ACTION_FLY_UP] = sMovementActionFuncs_xA4, + [MOVEMENT_ACTION_FLY_DOWN] = sMovementActionFuncs_xA5, + [MOVEMENT_ACTION_0xA6] = sMovementActionFuncs_xA6, + [MOVEMENT_ACTION_0xA7] = sMovementActionFuncs_xA7, + [MOVEMENT_ACTION_0xA8] = sMovementActionFuncs_xA8, + [MOVEMENT_ACTION_0xA9] = sMovementActionFuncs_xA9, }; static bool8 (*const sMovementActionFuncs_x00[])(struct ObjectEvent *, struct Sprite *) = { diff --git a/src/data/object_events/movement_type_func_tables.h b/src/data/object_events/movement_type_func_tables.h index a18c0e974..572a9b390 100644 --- a/src/data/object_events/movement_type_func_tables.h +++ b/src/data/object_events/movement_type_func_tables.h @@ -4,7 +4,7 @@ static bool8 MovementType_WanderAround_Step2(struct ObjectEvent *objectEvent, st static bool8 MovementType_WanderAround_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_WanderAround_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_WanderAround_Step5(struct ObjectEvent *objectEvent, struct Sprite *sprite); -static bool8 MovementType_WanderAround_Step5Duplicate(struct ObjectEvent *objectEvent, struct Sprite *sprite); +static bool8 MovementType_WanderAround_Step5Slowest(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_WanderAround_Step6(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_LookAround_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_LookAround_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); @@ -141,12 +141,12 @@ static bool8 MovementType_MoveInPlace_Step1(struct ObjectEvent *objectEvent, str static bool8 MovementType_Invisible_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_Invisible_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_Invisible_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); -static bool8 sub_8063364(struct ObjectEvent *objectEvent, struct Sprite *sprite); -static bool8 sub_8063384(struct ObjectEvent *objectEvent, struct Sprite *sprite); -static bool8 sub_80633A4(struct ObjectEvent *objectEvent, struct Sprite *sprite); -static bool8 sub_80633B4(struct ObjectEvent *objectEvent, struct Sprite *sprite); -static bool8 sub_80633D4(struct ObjectEvent *objectEvent, struct Sprite *sprite); -static bool8 sub_80633F4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +static bool8 MovementType_VsSeeker4D_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +static bool8 MovementType_VsSeeker4D_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +static bool8 MovementType_VsSeeker4D_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +static bool8 MovementType_VsSeeker4E_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +static bool8 MovementType_VsSeeker4F_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +static bool8 MovementType_VsSeeker4E_VsSeeker4F_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); static u8 GetVectorDirection(s16 dx, s16 dy, s16 absdx, s16 absdy); static u8 GetLimitedVectorDirection_SouthNorth(s16 dx, s16 dy, s16 absdx, s16 absdy); @@ -170,13 +170,13 @@ u8 (*const gMovementTypeFuncs_WanderAround[])(struct ObjectEvent *, struct Sprit MovementType_WanderAround_Step6, }; -u8 (*const gMovementTypeFuncs_WanderAroundDuplicate[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementTypeFuncs_WanderAroundSlowest[])(struct ObjectEvent *, struct Sprite *) = { MovementType_WanderAround_Step0, MovementType_WanderAround_Step1, MovementType_WanderAround_Step2, MovementType_WanderAround_Step3, MovementType_WanderAround_Step4, - MovementType_WanderAround_Step5Duplicate, + MovementType_WanderAround_Step5Slowest, MovementType_WanderAround_Step6, }; @@ -596,18 +596,18 @@ u8 (*const gMovementTypeFuncs_Invisible[])(struct ObjectEvent *, struct Sprite * MovementType_Invisible_Step2, }; -u8 (*const gUnknown_83A63F0[])(struct ObjectEvent *, struct Sprite *) = { - sub_8063364, - sub_8063384, - sub_80633A4, +u8 (*const gMovementTypeFuncs_VsSeeker4D[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_VsSeeker4D_Step0, + MovementType_VsSeeker4D_Step1, + MovementType_VsSeeker4D_Step2, }; -u8 (*const gUnknown_83A63FC[])(struct ObjectEvent *, struct Sprite *) = { - sub_80633B4, - sub_80633F4, +u8 (*const gMovementTypeFuncs_VsSeeker4E[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_VsSeeker4E_Step0, + MovementType_VsSeeker4E_VsSeeker4F_Step1, }; -u8 (*const gUnknown_83A6404[])(struct ObjectEvent *, struct Sprite *) = { - sub_80633D4, - sub_80633F4, +u8 (*const gMovementTypeFuncs_VsSeeker4F[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_VsSeeker4F_Step0, + MovementType_VsSeeker4E_VsSeeker4F_Step1, }; diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 8b1dffa51..3839e75f6 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -30,7 +30,7 @@ static void UpdateObjectEventSpriteAnimPause(struct ObjectEvent *, struct Sprite static bool8 IsCoordOutsideObjectEventMovementRange(struct ObjectEvent *, s16, s16); static bool8 IsMetatileDirectionallyImpassable(struct ObjectEvent *, s16, s16, u8); static bool8 DoesObjectCollideWithObjectAt(struct ObjectEvent *, s16, s16); -static void sub_8067A10(struct ObjectEvent *, struct Sprite *); +static void CalcWhetherObjectIsOffscreen(struct ObjectEvent *, struct Sprite *); static void UpdateObjEventSpriteVisibility(struct ObjectEvent *, struct Sprite *); static void ObjectEventUpdateMetatileBehaviors(struct ObjectEvent*); static void GetGroundEffectFlags_Reflection(struct ObjectEvent*, u32*); @@ -90,9 +90,9 @@ static bool8 sub_805E2E8(struct ObjectEventTemplate *, s16, s16); static void sub_805E384(struct ObjectEventTemplate *); static bool8 MovementType_Disguise_Callback(struct ObjectEvent *, struct Sprite *); static bool8 MovementType_Buried_Callback(struct ObjectEvent *, struct Sprite *); -static u8 sub_8063304(struct ObjectEvent *, struct Sprite *); -static u8 sub_8063324(struct ObjectEvent *, struct Sprite *); -static u8 sub_8063344(struct ObjectEvent *, struct Sprite *); +static u8 MovementType_VsSeeker4D_Callback(struct ObjectEvent *, struct Sprite *); +static u8 MovementType_VsSeeker4E_Callback(struct ObjectEvent *, struct Sprite *); +static u8 MovementType_VsSeeker4F_Callback(struct ObjectEvent *, struct Sprite *); static void sub_8064544(struct ObjectEvent *, struct Sprite *); static void DoObjectUnionRoomWarpYDisplacement(struct Sprite * sprite); static void MovementType_None(struct Sprite *); @@ -147,10 +147,10 @@ static void MovementType_WalkInPlace(struct Sprite *); static void MovementType_WalkSlowlyInPlace(struct Sprite *); static void MovementType_JogInPlace(struct Sprite *); static void MovementType_Invisible(struct Sprite *); -static void sub_8063298(struct Sprite *); -static void sub_80632BC(struct Sprite *); -static void sub_80632E0(struct Sprite *); -static void MovementType_WanderAroundDuplicate(struct Sprite *); +static void MovementType_VsSeeker4D(struct Sprite *); +static void MovementType_VsSeeker4E(struct Sprite *); +static void MovementType_VsSeeker4F(struct Sprite *); +static void MovementType_WanderAroundSlowest(struct Sprite *); #define movement_type_def(setup, table) \ static u8 setup##_callback(struct ObjectEvent *, struct Sprite *); \ @@ -198,87 +198,87 @@ void (*const gCameraObjectFuncs[])(struct Sprite *) = { #include "data/object_events/object_event_graphics.h" static void (*const sMovementTypeCallbacks[])(struct Sprite *) = { - MovementType_None, - MovementType_LookAround, - MovementType_WanderAround, - MovementType_WanderUpAndDown, - MovementType_WanderUpAndDown, - MovementType_WanderLeftAndRight, - MovementType_WanderLeftAndRight, - MovementType_FaceDirection, - MovementType_FaceDirection, - MovementType_FaceDirection, - MovementType_FaceDirection, - MovementType_Player, - NULL, - MovementType_FaceDownAndUp, - MovementType_FaceLeftAndRight, - MovementType_FaceUpAndLeft, - MovementType_FaceUpAndRight, - MovementType_FaceDownAndLeft, - MovementType_FaceDownAndRight, - MovementType_FaceDownUpAndLeft, - MovementType_FaceDownUpAndRight, - MovementType_FaceUpRightAndLeft, - MovementType_FaceDownRightAndLeft, - MovementType_RotateCounterclockwise, - MovementType_RotateClockwise, - MovementType_WalkBackAndForth, - MovementType_WalkBackAndForth, - MovementType_WalkBackAndForth, - MovementType_WalkBackAndForth, - MovementType_WalkSequenceUpRightLeftDown, - MovementType_WalkSequenceRightLeftDownUp, - MovementType_WalkSequenceDownUpRightLeft, - MovementType_WalkSequenceLeftDownUpRight, - MovementType_WalkSequenceUpLeftRightDown, - MovementType_WalkSequenceLeftRightDownUp, - MovementType_WalkSequenceDownUpLeftRight, - MovementType_WalkSequenceRightDownUpLeft, - MovementType_WalkSequenceLeftUpDownRight, - MovementType_WalkSequenceUpDownRightLeft, - MovementType_WalkSequenceRightLeftUpDown, - MovementType_WalkSequenceDownRightLeftUp, - MovementType_WalkSequenceRightUpDownLeft, - MovementType_WalkSequenceUpDownLeftRight, - MovementType_WalkSequenceLeftRightUpDown, - MovementType_WalkSequenceDownLeftRightUp, - MovementType_WalkSequenceUpLeftDownRight, - MovementType_WalkSequenceDownRightUpLeft, - MovementType_WalkSequenceLeftDownRightUp, - MovementType_WalkSequenceRightUpLeftDown, - MovementType_WalkSequenceUpRightDownLeft, - MovementType_WalkSequenceDownLeftUpRight, - MovementType_WalkSequenceLeftUpRightDown, - MovementType_WalkSequenceRightDownLeftUp, - MovementType_CopyPlayer, - MovementType_CopyPlayer, - MovementType_CopyPlayer, - MovementType_CopyPlayer, - MovementType_TreeDisguise, - MovementType_MountainDisguise, - MovementType_CopyPlayerInGrass, - MovementType_CopyPlayerInGrass, - MovementType_CopyPlayerInGrass, - MovementType_CopyPlayerInGrass, - MovementType_Buried, - MovementType_WalkInPlace, - MovementType_WalkInPlace, - MovementType_WalkInPlace, - MovementType_WalkInPlace, - MovementType_WalkSlowlyInPlace, - MovementType_WalkSlowlyInPlace, - MovementType_WalkSlowlyInPlace, - MovementType_WalkSlowlyInPlace, - MovementType_JogInPlace, - MovementType_JogInPlace, - MovementType_JogInPlace, - MovementType_JogInPlace, - MovementType_Invisible, - sub_8063298, - sub_80632BC, - sub_80632E0, - MovementType_WanderAroundDuplicate, + [MOVEMENT_TYPE_NONE] = MovementType_None, + [MOVEMENT_TYPE_LOOK_AROUND] = MovementType_LookAround, + [MOVEMENT_TYPE_WANDER_AROUND] = MovementType_WanderAround, + [MOVEMENT_TYPE_WANDER_UP_AND_DOWN] = MovementType_WanderUpAndDown, + [MOVEMENT_TYPE_WANDER_DOWN_AND_UP] = MovementType_WanderUpAndDown, + [MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT] = MovementType_WanderLeftAndRight, + [MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT] = MovementType_WanderLeftAndRight, + [MOVEMENT_TYPE_FACE_UP] = MovementType_FaceDirection, + [MOVEMENT_TYPE_FACE_DOWN] = MovementType_FaceDirection, + [MOVEMENT_TYPE_FACE_LEFT] = MovementType_FaceDirection, + [MOVEMENT_TYPE_FACE_RIGHT] = MovementType_FaceDirection, + [MOVEMENT_TYPE_PLAYER] = MovementType_Player, + [MOVEMENT_TYPE_BERRY_TREE_GROWTH] = NULL, + [MOVEMENT_TYPE_FACE_DOWN_AND_UP] = MovementType_FaceDownAndUp, + [MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT] = MovementType_FaceLeftAndRight, + [MOVEMENT_TYPE_FACE_UP_AND_LEFT] = MovementType_FaceUpAndLeft, + [MOVEMENT_TYPE_FACE_UP_AND_RIGHT] = MovementType_FaceUpAndRight, + [MOVEMENT_TYPE_FACE_DOWN_AND_LEFT] = MovementType_FaceDownAndLeft, + [MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT] = MovementType_FaceDownAndRight, + [MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT] = MovementType_FaceDownUpAndLeft, + [MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT] = MovementType_FaceDownUpAndRight, + [MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT] = MovementType_FaceUpRightAndLeft, + [MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT] = MovementType_FaceDownRightAndLeft, + [MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE] = MovementType_RotateCounterclockwise, + [MOVEMENT_TYPE_ROTATE_CLOCKWISE] = MovementType_RotateClockwise, + [MOVEMENT_TYPE_WALK_UP_AND_DOWN] = MovementType_WalkBackAndForth, + [MOVEMENT_TYPE_WALK_DOWN_AND_UP] = MovementType_WalkBackAndForth, + [MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT] = MovementType_WalkBackAndForth, + [MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT] = MovementType_WalkBackAndForth, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN] = MovementType_WalkSequenceUpRightLeftDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP] = MovementType_WalkSequenceRightLeftDownUp, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT] = MovementType_WalkSequenceDownUpRightLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT] = MovementType_WalkSequenceLeftDownUpRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN] = MovementType_WalkSequenceUpLeftRightDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP] = MovementType_WalkSequenceLeftRightDownUp, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT] = MovementType_WalkSequenceDownUpLeftRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT] = MovementType_WalkSequenceRightDownUpLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT] = MovementType_WalkSequenceLeftUpDownRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT] = MovementType_WalkSequenceUpDownRightLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN] = MovementType_WalkSequenceRightLeftUpDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP] = MovementType_WalkSequenceDownRightLeftUp, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT] = MovementType_WalkSequenceRightUpDownLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT] = MovementType_WalkSequenceUpDownLeftRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN] = MovementType_WalkSequenceLeftRightUpDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP] = MovementType_WalkSequenceDownLeftRightUp, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT] = MovementType_WalkSequenceUpLeftDownRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT] = MovementType_WalkSequenceDownRightUpLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP] = MovementType_WalkSequenceLeftDownRightUp, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN] = MovementType_WalkSequenceRightUpLeftDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT] = MovementType_WalkSequenceUpRightDownLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT] = MovementType_WalkSequenceDownLeftUpRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN] = MovementType_WalkSequenceLeftUpRightDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP] = MovementType_WalkSequenceRightDownLeftUp, + [MOVEMENT_TYPE_COPY_PLAYER] = MovementType_CopyPlayer, + [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE] = MovementType_CopyPlayer, + [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE] = MovementType_CopyPlayer, + [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE] = MovementType_CopyPlayer, + [MOVEMENT_TYPE_TREE_DISGUISE] = MovementType_TreeDisguise, + [MOVEMENT_TYPE_MOUNTAIN_DISGUISE] = MovementType_MountainDisguise, + [MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS] = MovementType_CopyPlayerInGrass, + [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = MovementType_CopyPlayerInGrass, + [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass, + [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass, + [MOVEMENT_TYPE_BURIED] = MovementType_Buried, + [MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = MovementType_WalkInPlace, + [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = MovementType_WalkInPlace, + [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = MovementType_WalkInPlace, + [MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = MovementType_WalkInPlace, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = MovementType_WalkSlowlyInPlace, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = MovementType_WalkSlowlyInPlace, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = MovementType_WalkSlowlyInPlace, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = MovementType_WalkSlowlyInPlace, + [MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = MovementType_JogInPlace, + [MOVEMENT_TYPE_JOG_IN_PLACE_UP] = MovementType_JogInPlace, + [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = MovementType_JogInPlace, + [MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = MovementType_JogInPlace, + [MOVEMENT_TYPE_INVISIBLE] = MovementType_Invisible, + [MOVEMENT_TYPE_VS_SEEKER_4D] = MovementType_VsSeeker4D, + [MOVEMENT_TYPE_VS_SEEKER_4E] = MovementType_VsSeeker4E, + [MOVEMENT_TYPE_VS_SEEKER_4F] = MovementType_VsSeeker4F, + [MOVEMENT_TYPE_WANDER_AROUND_SLOWEST] = MovementType_WanderAroundSlowest, }; const bool8 gRangedMovementTypes[NUM_FIELD_MAP_OBJECT_TEMPLATES] = { @@ -350,19 +350,19 @@ const bool8 gRangedMovementTypes[NUM_FIELD_MAP_OBJECT_TEMPLATES] = { [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = FALSE, [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = FALSE, [MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = FALSE, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = FALSE, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = FALSE, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = FALSE, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = FALSE, [MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = FALSE, [MOVEMENT_TYPE_JOG_IN_PLACE_UP] = FALSE, [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = FALSE, [MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = FALSE, - [MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = FALSE, - [MOVEMENT_TYPE_RUN_IN_PLACE_UP] = FALSE, - [MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = FALSE, - [MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = FALSE, [MOVEMENT_TYPE_INVISIBLE] = FALSE, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = FALSE, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = FALSE, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = FALSE, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = TRUE, + [MOVEMENT_TYPE_VS_SEEKER_4D] = FALSE, + [MOVEMENT_TYPE_VS_SEEKER_4E] = FALSE, + [MOVEMENT_TYPE_VS_SEEKER_4F] = FALSE, + [MOVEMENT_TYPE_WANDER_AROUND_SLOWEST] = TRUE, }; const u8 gInitialMovementTypeFacingDirections[NUM_FIELD_MAP_OBJECT_TEMPLATES] = { @@ -434,19 +434,19 @@ const u8 gInitialMovementTypeFacingDirections[NUM_FIELD_MAP_OBJECT_TEMPLATES] = [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = DIR_NORTH, [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = DIR_WEST, [MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = DIR_EAST, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = DIR_WEST, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = DIR_EAST, [MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = DIR_SOUTH, [MOVEMENT_TYPE_JOG_IN_PLACE_UP] = DIR_NORTH, [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = DIR_WEST, [MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = DIR_EAST, - [MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = DIR_SOUTH, - [MOVEMENT_TYPE_RUN_IN_PLACE_UP] = DIR_NORTH, - [MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = DIR_WEST, - [MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = DIR_EAST, [MOVEMENT_TYPE_INVISIBLE] = DIR_SOUTH, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = DIR_SOUTH, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = DIR_SOUTH, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = DIR_SOUTH, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = DIR_SOUTH, + [MOVEMENT_TYPE_VS_SEEKER_4D] = DIR_SOUTH, + [MOVEMENT_TYPE_VS_SEEKER_4E] = DIR_SOUTH, + [MOVEMENT_TYPE_VS_SEEKER_4F] = DIR_SOUTH, + [MOVEMENT_TYPE_WANDER_AROUND_SLOWEST] = DIR_SOUTH, }; #define OBJ_EVENT_PAL_TAG_0 0x1103 @@ -2725,7 +2725,7 @@ u16 GetObjectPaletteTag(u8 palSlot) movement_type_empty_callback(MovementType_None) movement_type_def(MovementType_WanderAround, gMovementTypeFuncs_WanderAround) -movement_type_def(MovementType_WanderAroundDuplicate, gMovementTypeFuncs_WanderAroundDuplicate) +movement_type_def(MovementType_WanderAroundSlowest, gMovementTypeFuncs_WanderAroundSlowest) static bool8 MovementType_WanderAround_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { @@ -2785,7 +2785,7 @@ static bool8 MovementType_WanderAround_Step5(struct ObjectEvent *objectEvent, st return TRUE; } -static bool8 MovementType_WanderAround_Step5Duplicate(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_WanderAround_Step5Slowest(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkSlowestMovementAction(objectEvent->movementDirection)); objectEvent->singleMovementActive = TRUE; @@ -4603,45 +4603,45 @@ static bool8 MovementType_Invisible_Step2(struct ObjectEvent *objectEvent, struc return FALSE; } -void sub_8063298(struct Sprite *sprite) +void MovementType_VsSeeker4D(struct Sprite *sprite) { - UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, sub_8063304); + UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_VsSeeker4D_Callback); } -void sub_80632BC(struct Sprite *sprite) +void MovementType_VsSeeker4E(struct Sprite *sprite) { - UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, sub_8063324); + UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_VsSeeker4E_Callback); } -void sub_80632E0(struct Sprite *sprite) +void MovementType_VsSeeker4F(struct Sprite *sprite) { - UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, sub_8063344); + UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_VsSeeker4F_Callback); } -static u8 sub_8063304(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static u8 MovementType_VsSeeker4D_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - return gUnknown_83A63F0[sprite->data[1]](objectEvent, sprite); + return gMovementTypeFuncs_VsSeeker4D[sprite->data[1]](objectEvent, sprite); } -static u8 sub_8063324(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static u8 MovementType_VsSeeker4E_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - return gUnknown_83A63FC[sprite->data[1]](objectEvent, sprite); + return gMovementTypeFuncs_VsSeeker4E[sprite->data[1]](objectEvent, sprite); } -static u8 sub_8063344(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static u8 MovementType_VsSeeker4F_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - return gUnknown_83A6404[sprite->data[1]](objectEvent, sprite); + return gMovementTypeFuncs_VsSeeker4F[sprite->data[1]](objectEvent, sprite); } -static bool8 sub_8063364(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_VsSeeker4D_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - ObjectEventSetSingleMovement(objectEvent, sprite, 0x98); + ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_0x98); sprite->data[1] = 1; return TRUE; } -static bool8 sub_8063384(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_VsSeeker4D_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { @@ -4651,29 +4651,29 @@ static bool8 sub_8063384(struct ObjectEvent *objectEvent, struct Sprite *sprite) return FALSE; } -static bool8 sub_80633A4(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_VsSeeker4D_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->singleMovementActive = FALSE; return FALSE; } -static bool8 sub_80633B4(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_VsSeeker4E_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - ObjectEventSetSingleMovement(objectEvent, sprite, 0x99); + ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_0x99); sprite->data[1] = 1; return FALSE; } -static bool8 sub_80633D4(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_VsSeeker4F_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - ObjectEventSetSingleMovement(objectEvent, sprite, 0x9A); + ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_0x9A); sprite->data[1] = 1; return FALSE; } -static bool8 sub_80633F4(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_VsSeeker4E_VsSeeker4F_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { @@ -7892,8 +7892,8 @@ static bool8 MovementActionFunc_x99_1(struct ObjectEvent *objectEvent, struct Sp sprite->animPaused = FALSE; objectEvent->disableAnim = FALSE; } - y = -(3 * gSineTable[sprite->data[6]] >> 7); - objectEvent->singleMovementActive = (-(sprite->pos2.y = y) | y) >> 31; + sprite->pos2.y = -(3 * gSineTable[sprite->data[6]] >> 7); + objectEvent->singleMovementActive = sprite->pos2.y != 0; return FALSE; case 1: if (++sprite->data[4] > 16) @@ -8016,11 +8016,11 @@ static void TryEnableObjectEventAnim(struct ObjectEvent *objectEvent, struct Spr static void UpdateObjectEventVisibility(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8067A10(objectEvent, sprite); + CalcWhetherObjectIsOffscreen(objectEvent, sprite); UpdateObjEventSpriteVisibility(objectEvent, sprite); } -static void sub_8067A10(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static void CalcWhetherObjectIsOffscreen(struct ObjectEvent *objectEvent, struct Sprite *sprite) { u16 x, y; u16 x2, y2; diff --git a/src/vs_seeker.c b/src/vs_seeker.c index af8bda8be..3432911e2 100644 --- a/src/vs_seeker.c +++ b/src/vs_seeker.c @@ -35,6 +35,13 @@ enum typedef enum { + VSSEEKER_SINGLE_RESP_RAND, + VSSEEKER_SINGLE_RESP_NO, + VSSEEKER_SINGLE_RESP_YES +} VsSeekerSingleRespCode; + +typedef enum +{ VSSEEKER_RESPONSE_NO_RESPONSE, VSSEEKER_RESPONSE_UNFOUGHT_TRAINERS, VSSEEKER_RESPONSE_FOUND_REMATCHES @@ -44,8 +51,8 @@ typedef enum typedef struct VsSeekerData { u16 trainerIdxs[6]; - u16 unk_c; // unused - u16 unk_e; // unused + u16 mapGroup; // unused + u16 mapNum; // unused } VsSeekerData; struct VsSeekerTrainerInfo @@ -72,10 +79,6 @@ struct VsSeekerStruct u8 responseCode:5; }; -extern u16 gSpecialVar_LastTalked; -extern struct ObjectEvent gObjectEvents[OBJECT_EVENTS_COUNT]; -extern u8 gSelectedObjectEvent; - // static declarations static EWRAM_DATA struct VsSeekerStruct *sVsSeeker = NULL; @@ -88,24 +91,24 @@ static void Task_VsSeeker_2(u8 taskId); static void GatherNearbyTrainerInfo(void); static void Task_VsSeeker_3(u8 taskId); static bool8 CanUseVsSeeker(void); -static u8 GetVsSeekerResponseInArea(const VsSeekerData *); +static u8 GetVsSeekerResponseInArea(const VsSeekerData * vsSeekerData); static u8 GetRematchTrainerIdGivenGameState(const u16 *trainerIdxs, u8 rematchIdx); -static u8 ShouldTryRematchBattleInternal(const VsSeekerData *, u16); -static u8 HasRematchTrainerAlreadyBeenFought(const VsSeekerData *, u16); +static u8 ShouldTryRematchBattleInternal(const VsSeekerData * vsSeekerData, u16 trainerBattleOpponent); +static u8 HasRematchTrainerAlreadyBeenFought(const VsSeekerData * vsSeekerData, u16 trainerBattleOpponent); static int LookupVsSeekerOpponentInArray(const VsSeekerData * array, u16 trainerId); -static bool8 IsTrainerReadyForRematchInternal(const VsSeekerData *, u16); -static u8 GetRunningBehaviorFromGraphicsId(u8); -static u16 GetTrainerFlagFromScript(const u8 *); -static int GetRematchIdx(const VsSeekerData *, u16); -static bool32 IsThisTrainerRematchable(u32); +static bool8 IsTrainerReadyForRematchInternal(const VsSeekerData * array, u16 trainerIdx); +static u8 GetRunningBehaviorFromGraphicsId(u8 graphicsId); +static u16 GetTrainerFlagFromScript(const u8 * script); +static int GetRematchIdx(const VsSeekerData * vsSeekerData, u16 trainerFlagIdx); +static bool32 IsThisTrainerRematchable(u32 localId); static void ClearAllTrainerRematchStates(void); -static bool8 IsTrainerVisibleOnScreen(struct VsSeekerTrainerInfo *); -static u8 GetNextAvailableRematchTrainer(const VsSeekerData *, u16, u8 *); +static bool8 IsTrainerVisibleOnScreen(struct VsSeekerTrainerInfo * trainerInfo); +static u8 GetNextAvailableRematchTrainer(const VsSeekerData * vsSeekerData, u16 trainerFlagNo, u8 * idxPtr); static u8 GetRematchableTrainerLocalId(void); -static void StartTrainerObjectMovementScript(struct VsSeekerTrainerInfo *, const u8 *); -static u8 GetCurVsSeekerResponse(s32, u16); +static void StartTrainerObjectMovementScript(struct VsSeekerTrainerInfo * trainerInfo, const u8 * script); +static u8 GetCurVsSeekerResponse(s32 vsSeekerIdx, u16 trainerIdx); static void StartAllRespondantIdleMovements(void); -static bool8 ObjectEventIdIsSane(u8 a0); +static bool8 ObjectEventIdIsSane(u8 objectEventId); static u8 GetRandomFaceDirectionMovementType(); // rodata @@ -635,7 +638,14 @@ void VsSeekerResetObjectMovementAfterChargeComplete(void) for (i = 0; i < gMapHeader.events->objectEventCount; i++) { - if ((templates[i].trainerType == 1 || templates[i].trainerType == 3) && (templates[i].movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN || templates[i].movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP || templates[i].movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT)) + if (( + templates[i].trainerType == TRAINER_TYPE_NORMAL + || templates[i].trainerType == TRAINER_TYPE_BURIED + ) && ( + templates[i].movementType == MOVEMENT_TYPE_VS_SEEKER_4D + || templates[i].movementType == MOVEMENT_TYPE_VS_SEEKER_4E + || templates[i].movementType == MOVEMENT_TYPE_VS_SEEKER_4F + )) { movementType = GetRandomFaceDirectionMovementType(); TryGetObjectEventIdByLocalIdAndMap(templates[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objEventId); @@ -651,8 +661,7 @@ void VsSeekerResetObjectMovementAfterChargeComplete(void) bool8 UpdateVsSeekerStepCounter(void) { - u8 x; - x = 0; + u8 x = 0; if (CheckBagHasItem(ITEM_VS_SEEKER, 1) == TRUE) { @@ -694,7 +703,7 @@ static void ResetMovementOfRematchableTrainers(void) for (i = 0; i < OBJECT_EVENTS_COUNT; i++) { struct ObjectEvent * objectEvent = &gObjectEvents[i]; - if (objectEvent->movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN || objectEvent->movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP || objectEvent->movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT) + if (objectEvent->movementType == MOVEMENT_TYPE_VS_SEEKER_4D || objectEvent->movementType == MOVEMENT_TYPE_VS_SEEKER_4E || objectEvent->movementType == MOVEMENT_TYPE_VS_SEEKER_4F) { u8 movementType = GetRandomFaceDirectionMovementType(); if (objectEvent->active && gSprites[objectEvent->spriteId].data[0] == i) @@ -853,43 +862,42 @@ static u8 CanUseVsSeeker(void) } } -static u8 GetVsSeekerResponseInArea(const VsSeekerData * a0) +static u8 GetVsSeekerResponseInArea(const VsSeekerData * vsSeekerData) { - u16 r8 = 0; + u16 trainerIdx = 0; u16 rval = 0; - u8 r7; - u8 sp0 = 0; - u8 r0 = 0; - s32 vsSeekerIdx; - u8 *r2; - vsSeekerIdx = 0; + u8 rematchTrainerIdx; + u8 unusedIdx = 0; + u8 response = 0; + s32 vsSeekerIdx = 0; while (sVsSeeker->trainerInfo[vsSeekerIdx].localId != 0xFF) { - if (IsTrainerVisibleOnScreen(&sVsSeeker->trainerInfo[vsSeekerIdx]) == 1) + if (IsTrainerVisibleOnScreen(&sVsSeeker->trainerInfo[vsSeekerIdx]) == TRUE) { - r8 = sVsSeeker->trainerInfo[vsSeekerIdx].trainerIdx; - if (!HasTrainerBeenFought(r8)) + trainerIdx = sVsSeeker->trainerInfo[vsSeekerIdx].trainerIdx; + if (!HasTrainerBeenFought(trainerIdx)) { StartTrainerObjectMovementScript(&sVsSeeker->trainerInfo[vsSeekerIdx], sMovementScript_TrainerUnfought); sVsSeeker->trainerHasNotYetBeenFought = 1; vsSeekerIdx++; continue; } - r7 = GetNextAvailableRematchTrainer(a0, r8, &sp0); - if (r7 == 0) + rematchTrainerIdx = GetNextAvailableRematchTrainer(vsSeekerData, trainerIdx, &unusedIdx); + if (rematchTrainerIdx == 0) { StartTrainerObjectMovementScript(&sVsSeeker->trainerInfo[vsSeekerIdx], sMovementScript_TrainerNoRematch); sVsSeeker->trainerDoesNotWantRematch = 1; } else { - rval = Random() % 100; - r0 = GetCurVsSeekerResponse(vsSeekerIdx, r8); - if (r0 == 2) - rval = 100; - else if (r0 == 1) - rval = 0; + rval = Random() % 100; // Even if it's overwritten below, it progresses the RNG. + response = GetCurVsSeekerResponse(vsSeekerIdx, trainerIdx); + if (response == VSSEEKER_SINGLE_RESP_YES) + rval = 100; // Definitely yes + else if (response == VSSEEKER_SINGLE_RESP_NO) + rval = 0; // Definitely no + // Otherwise it's a 70% chance to want a rematch if (rval < 30) { StartTrainerObjectMovementScript(&sVsSeeker->trainerInfo[vsSeekerIdx], sMovementScript_TrainerNoRematch); @@ -897,10 +905,10 @@ static u8 GetVsSeekerResponseInArea(const VsSeekerData * a0) } else { - gSaveBlock1Ptr->trainerRematches[sVsSeeker->trainerInfo[vsSeekerIdx].localId] = r7; + gSaveBlock1Ptr->trainerRematches[sVsSeeker->trainerInfo[vsSeekerIdx].localId] = rematchTrainerIdx; ShiftStillObjectEventCoords(&gObjectEvents[sVsSeeker->trainerInfo[vsSeekerIdx].objectEventId]); StartTrainerObjectMovementScript(&sVsSeeker->trainerInfo[vsSeekerIdx], sMovementScript_TrainerRematch); - sVsSeeker->trainerIdxArray[sVsSeeker->numRematchableTrainers] = r8; + sVsSeeker->trainerIdxArray[sVsSeeker->numRematchableTrainers] = trainerIdx; sVsSeeker->runningBehaviourEtcArray[sVsSeeker->numRematchableTrainers] = GetRunningBehaviorFromGraphicsId(sVsSeeker->trainerInfo[vsSeekerIdx].graphicsId); sVsSeeker->numRematchableTrainers++; sVsSeeker->trainerWantsRematch = 1; @@ -992,11 +1000,11 @@ static u8 GetRematchTrainerIdGivenGameState(const u16 *trainerIdxs, u8 rematchId return 0; } -u8 ShouldTryRematchBattle(void) +bool8 ShouldTryRematchBattle(void) { if (ShouldTryRematchBattleInternal(sVsSeekerData, gTrainerBattleOpponent_A)) { - return 1; + return TRUE; } return HasRematchTrainerAlreadyBeenFought(sVsSeekerData, gTrainerBattleOpponent_A); } @@ -1137,13 +1145,13 @@ static u8 GetRunningBehaviorFromGraphicsId(u8 graphicsId) case OBJ_EVENT_GFX_BLACKBELT: case OBJ_EVENT_GFX_HIKER: case OBJ_EVENT_GFX_SAILOR: - return 0x4e; + return MOVEMENT_TYPE_VS_SEEKER_4E; case OBJ_EVENT_GFX_TUBER_M_WATER: case OBJ_EVENT_GFX_SWIMMER_M_WATER: case OBJ_EVENT_GFX_SWIMMER_F_WATER: - return 0x4f; + return MOVEMENT_TYPE_VS_SEEKER_4F; default: - return 0x4d; + return MOVEMENT_TYPE_VS_SEEKER_4D; } } @@ -1181,9 +1189,9 @@ static int GetRematchIdx(const VsSeekerData * vsSeekerData, u16 trainerFlagIdx) return -1; } -static bool32 IsThisTrainerRematchable(u32 a0) +static bool32 IsThisTrainerRematchable(u32 localId) { - if (!gSaveBlock1Ptr->trainerRematches[a0]) + if (!gSaveBlock1Ptr->trainerRematches[localId]) return FALSE; return TRUE; } @@ -1264,24 +1272,24 @@ static void StartTrainerObjectMovementScript(struct VsSeekerTrainerInfo * traine ScriptMovement_StartObjectMovementScript(trainerInfo->localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, script); } -static u8 GetCurVsSeekerResponse(s32 a0, u16 a1) +static u8 GetCurVsSeekerResponse(s32 vsSeekerIdx, u16 trainerIdx) { s32 i; s32 j; - for (i = 0; i < a0; i++) + for (i = 0; i < vsSeekerIdx; i++) { - if (IsTrainerVisibleOnScreen(&sVsSeeker->trainerInfo[i]) == 1 && sVsSeeker->trainerInfo[i].trainerIdx == a1) + if (IsTrainerVisibleOnScreen(&sVsSeeker->trainerInfo[i]) == 1 && sVsSeeker->trainerInfo[i].trainerIdx == trainerIdx) { for (j = 0; j < sVsSeeker->numRematchableTrainers; j++) { if (sVsSeeker->trainerIdxArray[j] == sVsSeeker->trainerInfo[i].trainerIdx) - return 2; + return VSSEEKER_SINGLE_RESP_YES; } - return 1; + return VSSEEKER_SINGLE_RESP_NO; } } - return 0; + return VSSEEKER_SINGLE_RESP_RAND; } static void StartAllRespondantIdleMovements(void) @@ -1296,11 +1304,11 @@ static void StartAllRespondantIdleMovements(void) { if (sVsSeeker->trainerInfo[j].trainerIdx == sVsSeeker->trainerIdxArray[i]) { - struct ObjectEvent *r4 = &gObjectEvents[sVsSeeker->trainerInfo[j].objectEventId]; + struct ObjectEvent *objectEvent = &gObjectEvents[sVsSeeker->trainerInfo[j].objectEventId]; if (ObjectEventIdIsSane(sVsSeeker->trainerInfo[j].objectEventId) == 1) - SetTrainerMovementType(r4, sVsSeeker->runningBehaviourEtcArray[i]); - OverrideMovementTypeForObjectEvent(r4, sVsSeeker->runningBehaviourEtcArray[i]); + SetTrainerMovementType(objectEvent, sVsSeeker->runningBehaviourEtcArray[i]); + OverrideMovementTypeForObjectEvent(objectEvent, sVsSeeker->runningBehaviourEtcArray[i]); gSaveBlock1Ptr->trainerRematches[sVsSeeker->trainerInfo[j].localId] = GetNextAvailableRematchTrainer(sVsSeekerData, sVsSeeker->trainerInfo[j].trainerIdx, &dummy); } } |