Merge pull request #408 from PikalaxALT/fix_mvmt_types
Doc VS Seeker; fix misnamed movement types
This commit is contained in:
@@ -49,7 +49,7 @@
|
||||
"x": 36,
|
||||
"y": 15,
|
||||
"elevation": 3,
|
||||
"movement_type": "MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT",
|
||||
"movement_type": "MOVEMENT_TYPE_WANDER_AROUND_SLOWEST",
|
||||
"movement_range_x": 4,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
|
||||
@@ -70,19 +70,19 @@
|
||||
#define MOVEMENT_TYPE_WALK_IN_PLACE_UP 0x41
|
||||
#define MOVEMENT_TYPE_WALK_IN_PLACE_LEFT 0x42
|
||||
#define MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT 0x43
|
||||
#define MOVEMENT_TYPE_JOG_IN_PLACE_DOWN 0x44
|
||||
#define MOVEMENT_TYPE_JOG_IN_PLACE_UP 0x45
|
||||
#define MOVEMENT_TYPE_JOG_IN_PLACE_LEFT 0x46
|
||||
#define MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT 0x47
|
||||
#define MOVEMENT_TYPE_RUN_IN_PLACE_DOWN 0x48
|
||||
#define MOVEMENT_TYPE_RUN_IN_PLACE_UP 0x49
|
||||
#define MOVEMENT_TYPE_RUN_IN_PLACE_LEFT 0x4A
|
||||
#define MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT 0x4B
|
||||
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN 0x44
|
||||
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP 0x45
|
||||
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT 0x46
|
||||
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT 0x47
|
||||
#define MOVEMENT_TYPE_JOG_IN_PLACE_DOWN 0x48
|
||||
#define MOVEMENT_TYPE_JOG_IN_PLACE_UP 0x49
|
||||
#define MOVEMENT_TYPE_JOG_IN_PLACE_LEFT 0x4A
|
||||
#define MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT 0x4B
|
||||
#define MOVEMENT_TYPE_INVISIBLE 0x4C
|
||||
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN 0x4D
|
||||
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP 0x4E
|
||||
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT 0x4F
|
||||
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT 0x50
|
||||
#define MOVEMENT_TYPE_VS_SEEKER_4D 0x4D
|
||||
#define MOVEMENT_TYPE_VS_SEEKER_4E 0x4E
|
||||
#define MOVEMENT_TYPE_VS_SEEKER_4F 0x4F
|
||||
#define MOVEMENT_TYPE_WANDER_AROUND_SLOWEST 0x50
|
||||
|
||||
#define MOVEMENT_ACTION_FACE_DOWN 0x0
|
||||
#define MOVEMENT_ACTION_FACE_UP 0x1
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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 *) = {
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
+132
-133
@@ -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))
|
||||
{
|
||||
@@ -7879,7 +7879,6 @@ static bool8 MovementActionFunc_x98_1(struct ObjectEvent *objectEvent, struct Sp
|
||||
|
||||
static bool8 MovementActionFunc_x99_1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
s32 y;
|
||||
switch (sprite->data[7])
|
||||
{
|
||||
case 0:
|
||||
@@ -7892,8 +7891,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 +8015,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;
|
||||
|
||||
+1
-1
@@ -487,7 +487,7 @@ void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter)
|
||||
BlitBitmapRectToWindow(
|
||||
textPrinter->printerTemplate.windowId,
|
||||
arrowTiles,
|
||||
sDownArrowYCoords[*(u32*)subStruct << 17 >> 30], // subStruct->downArrowYPosIdx but again, stupidly retrieved
|
||||
sDownArrowYCoords[subStruct->downArrowYPosIdx],
|
||||
0,
|
||||
0x80,
|
||||
0x10,
|
||||
|
||||
+68
-60
@@ -33,6 +33,13 @@ enum
|
||||
VSSEEKER_CAN_USE,
|
||||
};
|
||||
|
||||
typedef enum
|
||||
{
|
||||
VSSEEKER_SINGLE_RESP_RAND,
|
||||
VSSEEKER_SINGLE_RESP_NO,
|
||||
VSSEEKER_SINGLE_RESP_YES
|
||||
} VsSeekerSingleRespCode;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
VSSEEKER_RESPONSE_NO_RESPONSE,
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user