diff options
author | GriffinR <griffin.g.richards@gmail.com> | 2020-02-12 13:05:57 -0500 |
---|---|---|
committer | GriffinR <griffin.g.richards@gmail.com> | 2020-02-12 13:05:57 -0500 |
commit | 956090b05f678db9f43d567131d6d43ce11806ec (patch) | |
tree | 0f8318bf22c1e6f049772fd0846af6db14e86349 /src/rotating_tile_puzzle.c | |
parent | 9c934c966400813e8ed6c8a5c0f93fb8cdc12546 (diff) | |
parent | 66c6b7a38b2a071ce7029978dd0d02fe6ec05952 (diff) |
Merge branch 'master' of https://github.com/pret/pokeemerald into fix-eventobj
Diffstat (limited to 'src/rotating_tile_puzzle.c')
-rw-r--r-- | src/rotating_tile_puzzle.c | 89 |
1 files changed, 68 insertions, 21 deletions
diff --git a/src/rotating_tile_puzzle.c b/src/rotating_tile_puzzle.c index 408aa7fef..fd26361dd 100644 --- a/src/rotating_tile_puzzle.c +++ b/src/rotating_tile_puzzle.c @@ -8,15 +8,6 @@ #include "constants/event_objects.h" #include "constants/metatile_labels.h" -extern const u8 RotatingTilePuzzle_Movement_ShiftRight[]; -extern const u8 RotatingTilePuzzle_Movement_ShiftDown[]; -extern const u8 RotatingTilePuzzle_Movement_ShiftLeft[]; -extern const u8 RotatingTilePuzzle_Movement_ShiftUp[]; -extern const u8 RotatingTilePuzzle_Movement_FaceRight[]; -extern const u8 RotatingTilePuzzle_Movement_FaceDown[]; -extern const u8 RotatingTilePuzzle_Movement_FaceLeft[]; -extern const u8 RotatingTilePuzzle_Movement_FaceUp[]; - #define ROTATE_COUNTERCLOCKWISE 0 #define ROTATE_CLOCKWISE 1 #define ROTATE_NONE 2 @@ -34,6 +25,62 @@ struct RotatingTilePuzzle bool8 isTrickHouse; }; +static const u8 sMovement_ShiftRight[] = +{ + MOVEMENT_ACTION_STORE_AND_LOCK_ANIM, + MOVEMENT_ACTION_WALK_NORMAL_RIGHT, + MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM, + MOVEMENT_ACTION_STEP_END +}; + +static const u8 sMovement_ShiftDown[] = +{ + MOVEMENT_ACTION_STORE_AND_LOCK_ANIM, + MOVEMENT_ACTION_WALK_NORMAL_DOWN, + MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM, + MOVEMENT_ACTION_STEP_END +}; + +static const u8 sMovement_ShiftLeft[] = +{ + MOVEMENT_ACTION_STORE_AND_LOCK_ANIM, + MOVEMENT_ACTION_WALK_NORMAL_LEFT, + MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM, + MOVEMENT_ACTION_STEP_END +}; + +static const u8 sMovement_ShiftUp[] = +{ + MOVEMENT_ACTION_STORE_AND_LOCK_ANIM, + MOVEMENT_ACTION_WALK_NORMAL_UP, + MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM, + MOVEMENT_ACTION_STEP_END +}; + +static const u8 sMovement_FaceRight[] = +{ + MOVEMENT_ACTION_FACE_RIGHT, + MOVEMENT_ACTION_STEP_END +}; + +static const u8 sMovement_FaceDown[] = +{ + MOVEMENT_ACTION_FACE_DOWN, + MOVEMENT_ACTION_STEP_END +}; + +static const u8 sMovement_FaceLeft[] = +{ + MOVEMENT_ACTION_FACE_LEFT, + MOVEMENT_ACTION_STEP_END +}; + +static const u8 sMovement_FaceUp[] = +{ + MOVEMENT_ACTION_FACE_UP, + MOVEMENT_ACTION_STEP_END +}; + // This file's functions. static void SaveRotatingTileObject(u8 eventTemplateId, u8 arg1); static void TurnUnsavedRotatingTileObject(u8 eventTemplateId, u8 arg1); @@ -106,19 +153,19 @@ u16 MoveRotatingTileObjects(u8 puzzleNumber) switch (puzzleTileNum) { case 0: // Right Arrow - movementScript = RotatingTilePuzzle_Movement_ShiftRight; + movementScript = sMovement_ShiftRight; x = 1; break; case 1: // Down Arrow - movementScript = RotatingTilePuzzle_Movement_ShiftDown; + movementScript = sMovement_ShiftDown; y = 1; break; case 2: // Left Arrow - movementScript = RotatingTilePuzzle_Movement_ShiftLeft; + movementScript = sMovement_ShiftLeft; x = -1; break; case 3: // Up Arrow - movementScript = RotatingTilePuzzle_Movement_ShiftUp; + movementScript = sMovement_ShiftUp; y = -1; break; default: @@ -204,19 +251,19 @@ void TurnRotatingTileObjects(void) switch (direction) { case DIR_EAST: - movementScript = RotatingTilePuzzle_Movement_FaceUp; + movementScript = sMovement_FaceUp; objectEvents[sRotatingTilePuzzle->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_UP; break; case DIR_SOUTH: - movementScript = RotatingTilePuzzle_Movement_FaceRight; + movementScript = sMovement_FaceRight; objectEvents[sRotatingTilePuzzle->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_RIGHT; break; case DIR_WEST: - movementScript = RotatingTilePuzzle_Movement_FaceDown; + movementScript = sMovement_FaceDown; objectEvents[sRotatingTilePuzzle->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_DOWN; break; case DIR_NORTH: - movementScript = RotatingTilePuzzle_Movement_FaceLeft; + movementScript = sMovement_FaceLeft; objectEvents[sRotatingTilePuzzle->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_LEFT; break; default: @@ -233,19 +280,19 @@ void TurnRotatingTileObjects(void) switch (direction) { case DIR_EAST: - movementScript = RotatingTilePuzzle_Movement_FaceDown; + movementScript = sMovement_FaceDown; objectEvents[sRotatingTilePuzzle->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_DOWN; break; case DIR_SOUTH: - movementScript = RotatingTilePuzzle_Movement_FaceLeft; + movementScript = sMovement_FaceLeft; objectEvents[sRotatingTilePuzzle->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_LEFT; break; case DIR_WEST: - movementScript = RotatingTilePuzzle_Movement_FaceUp; + movementScript = sMovement_FaceUp; objectEvents[sRotatingTilePuzzle->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_UP; break; case DIR_NORTH: - movementScript = RotatingTilePuzzle_Movement_FaceRight; + movementScript = sMovement_FaceRight; objectEvents[sRotatingTilePuzzle->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_RIGHT; break; default: |