summaryrefslogtreecommitdiff
path: root/src/trainer_hill.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/trainer_hill.c')
-rw-r--r--src/trainer_hill.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/trainer_hill.c b/src/trainer_hill.c
index 14af7372f..18d56723c 100644
--- a/src/trainer_hill.c
+++ b/src/trainer_hill.c
@@ -29,7 +29,6 @@
#include "constants/layouts.h"
#include "constants/moves.h"
#include "constants/maps.h"
-#include "constants/species.h"
#include "constants/trainers.h"
#include "constants/easy_chat.h"
#include "constants/trainer_hill.h"
@@ -356,7 +355,7 @@ static void SetUpDataStruct(void)
{
if (sHillData == NULL)
{
- sHillData = AllocZeroed(sizeof(struct TrHillStruct2));
+ sHillData = AllocZeroed(sizeof(*sHillData));
sHillData->floorId = gMapHeader.mapLayoutId - LAYOUT_TRAINER_HILL_1F;
CpuCopy32(sDataPerTag[gSaveBlock1Ptr->trainerHill.tag], &sHillData->tag, sizeof(sHillData->tag) + 4 * sizeof(struct TrHillFloor));
nullsub_2();
@@ -672,17 +671,17 @@ bool32 LoadTrainerHillFloorObjectEventScripts(void)
return TRUE;
}
-static u16 sub_81D5F58(u8 floorId, u32 bit, u32 arg2, u32 arg3)
+static u16 GetMetatileForFloor(u8 floorId, u32 x, u32 y, u32 stride) // stride is always 16
{
- u8 var0;
- u16 var1;
- u16 var2;
+ bool8 impassable;
+ u16 metatile;
+ u16 elevation;
- var0 = (sHillData->floors[floorId].display.unk3A0[arg2] >> (15 - bit) & 1);
- var1 = sHillData->floors[floorId].display.data[arg3 * arg2 + bit] + 0x200;
- var2 = 0x3000;
+ impassable = (sHillData->floors[floorId].display.collisionData[y] >> (15 - x) & 1);
+ metatile = sHillData->floors[floorId].display.metatileData[stride * y + x] + 0x200;
+ elevation = 0x3000;
- return (((var0 << 10) & 0xc00) | var2) | (var1 & 0x3ff);
+ return (((impassable << 10) & METATILE_COLLISION_MASK) | elevation) | (metatile & METATILE_ID_MASK);
}
void GenerateTrainerHillFloorLayout(u16 *mapArg)
@@ -722,7 +721,7 @@ void GenerateTrainerHillFloorLayout(u16 *mapArg)
for (i = 0; i < 16; i++)
{
for (j = 0; j < 16; j++)
- dst[j] = sub_81D5F58(mapId, j, i, 0x10);
+ dst[j] = GetMetatileForFloor(mapId, j, i, 0x10);
dst += 31;
}