summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/field_control_avatar.c2
-rw-r--r--src/field_screen_effect.c2
-rw-r--r--src/rotating_tile_puzzle.c (renamed from src/mossdeep_gym.c)139
-rw-r--r--src/scrcmd.c14
4 files changed, 79 insertions, 78 deletions
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index f3f9be530..46e4840a4 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -738,7 +738,7 @@ static bool8 TryStartWarpEventScript(struct MapPosition *position, u16 metatileB
}
if (MetatileBehavior_IsMossdeepGymWarp(metatileBehavior) == TRUE)
{
- sub_80AF87C();
+ DoMossdeepGymWarp();
return TRUE;
}
DoWarp();
diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c
index 9a5d47156..872946ce5 100644
--- a/src/field_screen_effect.c
+++ b/src/field_screen_effect.c
@@ -556,7 +556,7 @@ void sub_80AF848(void)
gFieldCallback = sub_80AF3E8;
}
-void sub_80AF87C(void)
+void DoMossdeepGymWarp(void)
{
sub_8085540(1);
ScriptContext2_Enable();
diff --git a/src/mossdeep_gym.c b/src/rotating_tile_puzzle.c
index 2dc641705..acc1c11cc 100644
--- a/src/mossdeep_gym.c
+++ b/src/rotating_tile_puzzle.c
@@ -2,10 +2,11 @@
#include "event_object_movement.h"
#include "fieldmap.h"
#include "malloc.h"
-#include "mossdeep_gym.h"
+#include "rotating_tile_puzzle.h"
#include "script_movement.h"
#include "constants/event_object_movement_constants.h"
#include "constants/event_objects.h"
+#include "constants/metatile_labels.h"
// Movement scripts.
extern const u8 gUnknown_08612698[];
@@ -23,11 +24,11 @@ struct MossdeepSubStruct
u8 eventTemplateId;
};
-struct MossdeepStruct
+struct RotatingTilePuzzle
{
struct MossdeepSubStruct objects[EVENT_OBJECTS_COUNT];
u8 count;
- bool8 unk41;
+ bool8 isTrickHouse;
};
// This file's functions.
@@ -35,57 +36,57 @@ static void AddEventObject(u8 eventTemplateId, u8 arg1);
static void sub_81A8D94(u8 eventTemplateId, u8 arg1);
// EWRAM vars
-EWRAM_DATA static struct MossdeepStruct *sMossdeepGym = NULL;
+EWRAM_DATA static struct RotatingTilePuzzle *sRotatingTilePuzzle = NULL;
// code
-void InitMossdeepGymTiles(bool8 arg0)
+void InitRotatingTilePuzzle(bool8 isTrickHouse)
{
- if (sMossdeepGym == NULL)
- sMossdeepGym = AllocZeroed(sizeof(*sMossdeepGym));
+ if (sRotatingTilePuzzle == NULL)
+ sRotatingTilePuzzle = AllocZeroed(sizeof(*sRotatingTilePuzzle));
- sMossdeepGym->unk41 = arg0;
+ sRotatingTilePuzzle->isTrickHouse = isTrickHouse;
}
void FinishMossdeepGymTiles(void)
{
u8 id;
- if (sMossdeepGym != NULL)
- FREE_AND_SET_NULL(sMossdeepGym);
+ if (sRotatingTilePuzzle != NULL)
+ FREE_AND_SET_NULL(sRotatingTilePuzzle);
id = GetEventObjectIdByLocalIdAndMap(EVENT_OBJ_ID_PLAYER, 0, 0);
EventObjectClearHeldMovementIfFinished(&gEventObjects[id]);
ScriptMovement_UnfreezeEventObjects();
}
-u16 MossdeepGym_MoveEvents(u8 arg0)
+u16 MossdeepGym_MoveEvents(u8 puzzleNumber)
{
u8 i;
- struct EventObjectTemplate *events = gSaveBlock1Ptr->eventObjectTemplates;
+ struct EventObjectTemplate *eventObjects = gSaveBlock1Ptr->eventObjectTemplates;
u16 localId = 0;
for (i = 0; i < EVENT_OBJECT_TEMPLATES_COUNT; i++)
{
- s32 var;
+ s32 puzzleTileStart;
u8 r5;
- s16 x = events[i].x + 7;
- s16 y = events[i].y + 7;
+ s16 x = eventObjects[i].x + 7;
+ s16 y = eventObjects[i].y + 7;
u16 metatile = MapGridGetMetatileIdAt(x, y);
- if (!sMossdeepGym->unk41)
- var = 0x250;
+ if (!sRotatingTilePuzzle->isTrickHouse)
+ puzzleTileStart = METATILE_MossdeepGym_YellowRightArrow;
else
- var = 0x298;
+ puzzleTileStart = METATILE_TrickHousePuzzle_Arrow_YellowOnWhite_Right;
- if (metatile < 0x250)
+ if (metatile < METATILE_MossdeepGym_YellowRightArrow)
continue;
- if ((u8)((metatile - var) / 8) >= 5)
+ if ((u8)((metatile - puzzleTileStart) / 8) >= 5)
continue;
- if ((u8)((metatile - var) / 8) != arg0)
+ if ((u8)((metatile - puzzleTileStart) / 8) != puzzleNumber)
continue;
- r5 = (u8)((metatile - var) % 8);
+ r5 = (u8)((metatile - puzzleTileStart) % 8);
if (r5 < 4)
{
s8 x = 0;
@@ -114,12 +115,12 @@ u16 MossdeepGym_MoveEvents(u8 arg0)
continue;
}
- events[i].x += x;
- events[i].y += y;
- if (GetEventObjectIdByLocalIdAndMap(events[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup) != EVENT_OBJECTS_COUNT)
+ eventObjects[i].x += x;
+ eventObjects[i].y += y;
+ if (GetEventObjectIdByLocalIdAndMap(eventObjects[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup) != EVENT_OBJECTS_COUNT)
{
AddEventObject(i, r5);
- localId = events[i].localId;
+ localId = eventObjects[i].localId;
ScriptMovement_StartObjectMovementScript(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, movementScript);
}
else
@@ -135,29 +136,29 @@ u16 MossdeepGym_MoveEvents(u8 arg0)
void MossdeepGym_TurnEvents(void)
{
u8 i;
- s32 var;
- struct EventObjectTemplate *events;
+ s32 puzzleTileStart;
+ struct EventObjectTemplate *eventObjects;
- if (sMossdeepGym == NULL)
+ if (sRotatingTilePuzzle == NULL)
return;
- if (!sMossdeepGym->unk41)
- var = 0x250;
+ if (!sRotatingTilePuzzle->isTrickHouse)
+ puzzleTileStart = METATILE_MossdeepGym_YellowRightArrow;
else
- var = 0x298;
+ puzzleTileStart = METATILE_TrickHousePuzzle_Arrow_YellowOnWhite_Right;
- events = gSaveBlock1Ptr->eventObjectTemplates;
- for (i = 0; i < sMossdeepGym->count; i++)
+ eventObjects = gSaveBlock1Ptr->eventObjectTemplates;
+ for (i = 0; i < sRotatingTilePuzzle->count; i++)
{
s32 r6;
s8 r0;
u8 eventObjectId;
- s16 x = events[sMossdeepGym->objects[i].eventTemplateId].x + 7;
- s16 y = events[sMossdeepGym->objects[i].eventTemplateId].y + 7;
+ s16 x = eventObjects[sRotatingTilePuzzle->objects[i].eventTemplateId].x + 7;
+ s16 y = eventObjects[sRotatingTilePuzzle->objects[i].eventTemplateId].y + 7;
u16 metatile = MapGridGetMetatileIdAt(x, y);
- r0 = (u8)((metatile - var) % 8);
- r0 -= (sMossdeepGym->objects[i].unk0);
+ r0 = (u8)((metatile - puzzleTileStart) % 8);
+ r0 -= (sRotatingTilePuzzle->objects[i].unk0);
if (r0 < 0 || r0 == 3)
{
if (r0 == -3)
@@ -173,7 +174,7 @@ void MossdeepGym_TurnEvents(void)
r6 = 2;
}
- eventObjectId = GetEventObjectIdByLocalIdAndMap(events[sMossdeepGym->objects[i].eventTemplateId].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ eventObjectId = GetEventObjectIdByLocalIdAndMap(eventObjects[sRotatingTilePuzzle->objects[i].eventTemplateId].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
if (eventObjectId != EVENT_OBJECTS_COUNT)
{
const u8 *movementScript;
@@ -184,24 +185,24 @@ void MossdeepGym_TurnEvents(void)
{
case DIR_EAST:
movementScript = MossdeepGym_Movement_FaceUp;
- events[sMossdeepGym->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_UP;
+ eventObjects[sRotatingTilePuzzle->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_UP;
break;
case DIR_SOUTH:
movementScript = MossdeepGym_Movement_FaceRight;
- events[sMossdeepGym->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_RIGHT;
+ eventObjects[sRotatingTilePuzzle->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_RIGHT;
break;
case DIR_WEST:
movementScript = MossdeepGym_Movement_FaceDown;
- events[sMossdeepGym->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_DOWN;
+ eventObjects[sRotatingTilePuzzle->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_DOWN;
break;
case DIR_NORTH:
movementScript = MossdeepGym_Movement_FaceLeft;
- events[sMossdeepGym->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_LEFT;
+ eventObjects[sRotatingTilePuzzle->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_LEFT;
break;
default:
continue;
}
- ScriptMovement_StartObjectMovementScript(events[sMossdeepGym->objects[i].eventTemplateId].localId,
+ ScriptMovement_StartObjectMovementScript(eventObjects[sRotatingTilePuzzle->objects[i].eventTemplateId].localId,
gSaveBlock1Ptr->location.mapNum,
gSaveBlock1Ptr->location.mapGroup,
movementScript);
@@ -212,24 +213,24 @@ void MossdeepGym_TurnEvents(void)
{
case DIR_EAST:
movementScript = MossdeepGym_Movement_FaceDown;
- events[sMossdeepGym->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_DOWN;
+ eventObjects[sRotatingTilePuzzle->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_DOWN;
break;
case DIR_SOUTH:
movementScript = MossdeepGym_Movement_FaceLeft;
- events[sMossdeepGym->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_LEFT;
+ eventObjects[sRotatingTilePuzzle->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_LEFT;
break;
case DIR_WEST:
movementScript = MossdeepGym_Movement_FaceUp;
- events[sMossdeepGym->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_UP;
+ eventObjects[sRotatingTilePuzzle->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_UP;
break;
case DIR_NORTH:
movementScript = MossdeepGym_Movement_FaceRight;
- events[sMossdeepGym->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_RIGHT;
+ eventObjects[sRotatingTilePuzzle->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_RIGHT;
break;
default:
continue;
}
- ScriptMovement_StartObjectMovementScript(events[sMossdeepGym->objects[i].eventTemplateId].localId,
+ ScriptMovement_StartObjectMovementScript(eventObjects[sRotatingTilePuzzle->objects[i].eventTemplateId].localId,
gSaveBlock1Ptr->location.mapNum,
gSaveBlock1Ptr->location.mapGroup,
movementScript);
@@ -240,28 +241,28 @@ void MossdeepGym_TurnEvents(void)
static void AddEventObject(u8 eventTemplateId, u8 arg1)
{
- sMossdeepGym->objects[sMossdeepGym->count].eventTemplateId = eventTemplateId;
- sMossdeepGym->objects[sMossdeepGym->count].unk0 = arg1;
- sMossdeepGym->count++;
+ sRotatingTilePuzzle->objects[sRotatingTilePuzzle->count].eventTemplateId = eventTemplateId;
+ sRotatingTilePuzzle->objects[sRotatingTilePuzzle->count].unk0 = arg1;
+ sRotatingTilePuzzle->count++;
}
static void sub_81A8D94(u8 eventTemplateId, u8 arg1)
{
s8 r0;
s32 r6;
- s32 var;
+ s32 puzzleTileStart;
u16 movementType;
- struct EventObjectTemplate *events = gSaveBlock1Ptr->eventObjectTemplates;
- s16 x = events[eventTemplateId].x + 7;
- s16 y = events[eventTemplateId].y + 7;
+ struct EventObjectTemplate *eventObjects = gSaveBlock1Ptr->eventObjectTemplates;
+ s16 x = eventObjects[eventTemplateId].x + 7;
+ s16 y = eventObjects[eventTemplateId].y + 7;
u16 metatile = MapGridGetMetatileIdAt(x, y);
- if (!sMossdeepGym->unk41)
- var = 0x250;
+ if (!sRotatingTilePuzzle->isTrickHouse)
+ puzzleTileStart = METATILE_MossdeepGym_YellowRightArrow;
else
- var = 0x298;
+ puzzleTileStart = METATILE_TrickHousePuzzle_Arrow_YellowOnWhite_Right;
- r0 = (u8)((metatile - var) % 8);
+ r0 = (u8)((metatile - puzzleTileStart) % 8);
r0 -= arg1;
if (r0 < 0 || r0 == 3)
r6 = 0;
@@ -270,22 +271,22 @@ static void sub_81A8D94(u8 eventTemplateId, u8 arg1)
else
r6 = 2;
- movementType = events[eventTemplateId].movementType;
+ movementType = eventObjects[eventTemplateId].movementType;
if (r6 == 0)
{
switch (movementType)
{
case MOVEMENT_TYPE_FACE_RIGHT:
- events[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_UP;
+ eventObjects[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_UP;
break;
case MOVEMENT_TYPE_FACE_DOWN:
- events[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_RIGHT;
+ eventObjects[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_RIGHT;
break;
case MOVEMENT_TYPE_FACE_LEFT:
- events[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_DOWN;
+ eventObjects[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_DOWN;
break;
case MOVEMENT_TYPE_FACE_UP:
- events[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_LEFT;
+ eventObjects[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_LEFT;
break;
default:
break;
@@ -296,16 +297,16 @@ static void sub_81A8D94(u8 eventTemplateId, u8 arg1)
switch (movementType)
{
case MOVEMENT_TYPE_FACE_RIGHT:
- events[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_DOWN;
+ eventObjects[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_DOWN;
break;
case MOVEMENT_TYPE_FACE_DOWN:
- events[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_LEFT;
+ eventObjects[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_LEFT;
break;
case MOVEMENT_TYPE_FACE_LEFT:
- events[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_UP;
+ eventObjects[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_UP;
break;
case MOVEMENT_TYPE_FACE_UP:
- events[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_RIGHT;
+ eventObjects[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_RIGHT;
break;
default:
break;
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 9861f9dae..c1188f16a 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -815,7 +815,7 @@ bool8 ScrCmd_warpteleport(struct ScriptContext *ctx)
return TRUE;
}
-bool8 ScrCmd_warpD7(struct ScriptContext *ctx)
+bool8 ScrCmd_warpmossdeepgym(struct ScriptContext *ctx)
{
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
@@ -824,7 +824,7 @@ bool8 ScrCmd_warpD7(struct ScriptContext *ctx)
u16 y = VarGet(ScriptReadHalfword(ctx));
SetWarpDestination(mapGroup, mapNum, warpId, x, y);
- sub_80AF87C();
+ DoMossdeepGymWarp();
ResetInitialPlayerAvatarState();
return TRUE;
}
@@ -2151,9 +2151,9 @@ bool8 ScrCmd_takecoins(struct ScriptContext *ctx)
bool8 ScrCmd_mossdeepgym1(struct ScriptContext *ctx)
{
- u16 v1 = VarGet(ScriptReadHalfword(ctx));
+ u16 puzzleNumber = VarGet(ScriptReadHalfword(ctx));
- sMovingNpcId = MossdeepGym_MoveEvents(v1);
+ sMovingNpcId = MossdeepGym_MoveEvents(puzzleNumber);
return FALSE;
}
@@ -2163,11 +2163,11 @@ bool8 ScrCmd_mossdeepgym2(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_mossdeepgym3(struct ScriptContext *ctx)
+bool8 ScrCmd_initrotatingtilepuzzle(struct ScriptContext *ctx)
{
- u16 v1 = VarGet(ScriptReadHalfword(ctx));
+ u16 isTrickHouse = VarGet(ScriptReadHalfword(ctx));
- InitMossdeepGymTiles(v1);
+ InitRotatingTilePuzzle(isTrickHouse);
return FALSE;
}