summaryrefslogtreecommitdiff
path: root/src/mossdeep_gym.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mossdeep_gym.c')
-rw-r--r--src/mossdeep_gym.c314
1 files changed, 0 insertions, 314 deletions
diff --git a/src/mossdeep_gym.c b/src/mossdeep_gym.c
deleted file mode 100644
index bc279334b..000000000
--- a/src/mossdeep_gym.c
+++ /dev/null
@@ -1,314 +0,0 @@
-#include "global.h"
-#include "event_object_movement.h"
-#include "fieldmap.h"
-#include "malloc.h"
-#include "mossdeep_gym.h"
-#include "script_movement.h"
-#include "constants/event_object_movement_constants.h"
-#include "constants/event_objects.h"
-
-// Movement scripts.
-extern const u8 gUnknown_08612698[];
-extern const u8 gUnknown_0861269C[];
-extern const u8 gUnknown_086126A0[];
-extern const u8 gUnknown_086126A4[];
-extern const u8 gUnknown_086126A8[];
-extern const u8 gUnknown_086126AA[];
-extern const u8 gUnknown_086126AC[];
-extern const u8 gUnknown_086126AE[];
-
-struct MossdeepSubStruct
-{
- u8 unk0;
- u8 eventTemplateId;
-};
-
-struct MossdeepStruct
-{
- struct MossdeepSubStruct objects[EVENT_OBJECTS_COUNT];
- u8 count;
- bool8 unk41;
-};
-
-// This file's functions.
-static void AddEventObject(u8 eventTemplateId, u8 arg1);
-static void sub_81A8D94(u8 eventTemplateId, u8 arg1);
-
-// EWRAM vars
-EWRAM_DATA static struct MossdeepStruct *gUnknown_0203CE50 = NULL;
-
-// code
-void InitMossdeepGymTiles(bool8 arg0)
-{
- if (gUnknown_0203CE50 == NULL)
- gUnknown_0203CE50 = AllocZeroed(sizeof(*gUnknown_0203CE50));
-
- gUnknown_0203CE50->unk41 = arg0;
-}
-
-void FinishMossdeepGymTiles(void)
-{
- u8 id;
-
- if (gUnknown_0203CE50 != NULL)
- FREE_AND_SET_NULL(gUnknown_0203CE50);
-
- id = GetEventObjectIdByLocalIdAndMap(EVENT_OBJ_ID_PLAYER, 0, 0);
- EventObjectClearHeldMovementIfFinished(&gEventObjects[id]);
- ScriptMovement_UnfreezeEventObjects();
-}
-
-u16 MossdeepGym_MoveEvents(u8 arg0)
-{
- u8 i;
- struct EventObjectTemplate *events = gSaveBlock1Ptr->eventObjectTemplates;
- u16 localId = 0;
-
- for (i = 0; i < EVENT_OBJECT_TEMPLATES_COUNT; i++)
- {
- s32 var;
- u8 r5;
- s16 x = events[i].x + 7;
- s16 y = events[i].y + 7;
- u16 metatile = MapGridGetMetatileIdAt(x, y);
-
- if (!gUnknown_0203CE50->unk41)
- var = 0x250;
- else
- var = 0x298;
-
- if (metatile < 0x250)
- continue;
-
- if ((u8)((metatile - var) / 8) >= 5)
- continue;
- if ((u8)((metatile - var) / 8) != arg0)
- continue;
-
- r5 = (u8)((metatile - var) % 8);
- if (r5 < 4)
- {
- s8 x = 0;
- s8 y = 0;
- const u8 *movementScript;
-
- switch (r5)
- {
- case 0:
- movementScript = gUnknown_08612698;
- x = 1;
- break;
- case 1:
- movementScript = gUnknown_0861269C;
- y = 1;
- break;
- case 2:
- movementScript = gUnknown_086126A0;
- x = -1;
- break;
- case 3:
- movementScript = gUnknown_086126A4;
- y = -1;
- break;
- default:
- continue;
- }
-
- events[i].x += x;
- events[i].y += y;
- if (GetEventObjectIdByLocalIdAndMap(events[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup) != EVENT_OBJECTS_COUNT)
- {
- AddEventObject(i, r5);
- localId = events[i].localId;
- ScriptMovement_StartObjectMovementScript(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, movementScript);
- }
- else
- {
- sub_81A8D94(i, r5);
- }
- }
- }
-
- return localId;
-}
-
-void MossdeepGym_TurnEvents(void)
-{
- u8 i;
- s32 var;
- struct EventObjectTemplate *events;
-
- if (gUnknown_0203CE50 == NULL)
- return;
-
- if (!gUnknown_0203CE50->unk41)
- var = 0x250;
- else
- var = 0x298;
-
- events = gSaveBlock1Ptr->eventObjectTemplates;
- for (i = 0; i < gUnknown_0203CE50->count; i++)
- {
- s32 r6;
- s8 r0;
- u8 eventObjectId;
- s16 x = events[gUnknown_0203CE50->objects[i].eventTemplateId].x + 7;
- s16 y = events[gUnknown_0203CE50->objects[i].eventTemplateId].y + 7;
- u16 metatile = MapGridGetMetatileIdAt(x, y);
-
- r0 = (u8)((metatile - var) % 8);
- r0 -= (gUnknown_0203CE50->objects[i].unk0);
- if (r0 < 0 || r0 == 3)
- {
- if (r0 == -3)
- r6 = 1;
- else
- r6 = 0;
- }
- else
- {
- if (r0 > 0)
- r6 = 1;
- else
- r6 = 2;
- }
-
- eventObjectId = GetEventObjectIdByLocalIdAndMap(events[gUnknown_0203CE50->objects[i].eventTemplateId].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
- if (eventObjectId != EVENT_OBJECTS_COUNT)
- {
- const u8 *movementScript;
- u8 direction = gEventObjects[eventObjectId].facingDirection;
- if (r6 == 0)
- {
- switch (direction)
- {
- case DIR_EAST:
- movementScript = gUnknown_086126AE;
- events[gUnknown_0203CE50->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_UP;
- break;
- case DIR_SOUTH:
- movementScript = gUnknown_086126A8;
- events[gUnknown_0203CE50->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_RIGHT;
- break;
- case DIR_WEST:
- movementScript = gUnknown_086126AA;
- events[gUnknown_0203CE50->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_DOWN;
- break;
- case DIR_NORTH:
- movementScript = gUnknown_086126AC;
- events[gUnknown_0203CE50->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_LEFT;
- break;
- default:
- continue;
- }
- ScriptMovement_StartObjectMovementScript(events[gUnknown_0203CE50->objects[i].eventTemplateId].localId,
- gSaveBlock1Ptr->location.mapNum,
- gSaveBlock1Ptr->location.mapGroup,
- movementScript);
- }
- else if (r6 == 1)
- {
- switch (direction)
- {
- case DIR_EAST:
- movementScript = gUnknown_086126AA;
- events[gUnknown_0203CE50->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_DOWN;
- break;
- case DIR_SOUTH:
- movementScript = gUnknown_086126AC;
- events[gUnknown_0203CE50->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_LEFT;
- break;
- case DIR_WEST:
- movementScript = gUnknown_086126AE;
- events[gUnknown_0203CE50->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_UP;
- break;
- case DIR_NORTH:
- movementScript = gUnknown_086126A8;
- events[gUnknown_0203CE50->objects[i].eventTemplateId].movementType = MOVEMENT_TYPE_FACE_RIGHT;
- break;
- default:
- continue;
- }
- ScriptMovement_StartObjectMovementScript(events[gUnknown_0203CE50->objects[i].eventTemplateId].localId,
- gSaveBlock1Ptr->location.mapNum,
- gSaveBlock1Ptr->location.mapGroup,
- movementScript);
- }
- }
- }
-}
-
-static void AddEventObject(u8 eventTemplateId, u8 arg1)
-{
- gUnknown_0203CE50->objects[gUnknown_0203CE50->count].eventTemplateId = eventTemplateId;
- gUnknown_0203CE50->objects[gUnknown_0203CE50->count].unk0 = arg1;
- gUnknown_0203CE50->count++;
-}
-
-static void sub_81A8D94(u8 eventTemplateId, u8 arg1)
-{
- s8 r0;
- s32 r6;
- s32 var;
- u16 movementType;
- struct EventObjectTemplate *events = gSaveBlock1Ptr->eventObjectTemplates;
- s16 x = events[eventTemplateId].x + 7;
- s16 y = events[eventTemplateId].y + 7;
- u16 metatile = MapGridGetMetatileIdAt(x, y);
-
- if (!gUnknown_0203CE50->unk41)
- var = 0x250;
- else
- var = 0x298;
-
- r0 = (u8)((metatile - var) % 8);
- r0 -= arg1;
- if (r0 < 0 || r0 == 3)
- r6 = 0;
- else if (r0 > 0 || r0 == -3)
- r6 = 1;
- else
- r6 = 2;
-
- movementType = events[eventTemplateId].movementType;
- if (r6 == 0)
- {
- switch (movementType)
- {
- case MOVEMENT_TYPE_FACE_RIGHT:
- events[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_UP;
- break;
- case MOVEMENT_TYPE_FACE_DOWN:
- events[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_RIGHT;
- break;
- case MOVEMENT_TYPE_FACE_LEFT:
- events[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_DOWN;
- break;
- case MOVEMENT_TYPE_FACE_UP:
- events[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_LEFT;
- break;
- default:
- break;
- }
- }
- else if (r6 == 1)
- {
- switch (movementType)
- {
- case MOVEMENT_TYPE_FACE_RIGHT:
- events[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_DOWN;
- break;
- case MOVEMENT_TYPE_FACE_DOWN:
- events[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_LEFT;
- break;
- case MOVEMENT_TYPE_FACE_LEFT:
- events[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_UP;
- break;
- case MOVEMENT_TYPE_FACE_UP:
- events[eventTemplateId].movementType = MOVEMENT_TYPE_FACE_RIGHT;
- break;
- default:
- break;
- }
- }
-}