diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2020-03-16 07:59:31 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-16 07:59:31 -0400 |
commit | 2c7387951ba78349712d891ca71b55db4d0ec96e (patch) | |
tree | bebb3b6ca857a67cfa53602dc81bdda7cf93b962 | |
parent | 77c133e6a1165d256f97a94fcad34063b6c3025d (diff) | |
parent | 090591b71d627a39ef387ee9520e7a70bf05c129 (diff) |
Merge pull request #301 from GriffinRichards/doc-borderdim
Label border dimension fields
-rw-r--r-- | include/global.fieldmap.h | 4 | ||||
-rw-r--r-- | src/fieldmap.c | 55 |
2 files changed, 19 insertions, 40 deletions
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 514bebb95..6e92ddd06 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -43,8 +43,8 @@ struct MapLayout /*0x0c*/ u16 *map; /*0x10*/ struct Tileset *primaryTileset; /*0x14*/ struct Tileset *secondaryTileset; - /*0x18*/ u8 unk18; - /*0x19*/ u8 unk19; + /*0x18*/ u8 borderWidth; + /*0x19*/ u8 borderHeight; }; struct BackupMapLayout diff --git a/src/fieldmap.c b/src/fieldmap.c index 3d308f165..8b0beef34 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -365,48 +365,27 @@ union Block u16 value; }; -#define MapGridGetBorderTileAt(x, y) ({ \ - u16 block; \ - s32 xprime; \ - s32 yprime; \ - \ - struct MapLayout *mapLayout = gMapHeader.mapLayout; \ - \ - xprime = x - 7; \ - xprime += 8 * mapLayout->unk18; \ - xprime %= mapLayout->unk18; \ - \ - yprime = y - 7; \ - yprime += 8 * mapLayout->unk19; \ - yprime %= mapLayout->unk19; \ - \ - block = mapLayout->border[xprime + yprime * mapLayout->unk18]; \ - block |= 0xC00; \ - block; \ -}) - -#define MapGridGetBorderTileAt2(x, y) ({ \ - u16 block; \ - s32 xprime; \ - s32 yprime; \ - \ - struct MapLayout *mapLayout = gMapHeader.mapLayout; \ - \ - xprime = x - 7; \ - xprime += 8 * mapLayout->unk18; \ - xprime %= mapLayout->unk18; \ - \ - yprime = y - 7; \ - yprime += 8 * mapLayout->unk19; \ - yprime %= mapLayout->unk19; \ - \ - block = mapLayout->border[xprime + yprime * mapLayout->unk18] | 0xC00; \ - block; \ +#define MapGridGetBorderTileAt(x, y) ({ \ + u16 block; \ + s32 xprime; \ + s32 yprime; \ + \ + struct MapLayout *mapLayout = gMapHeader.mapLayout; \ + \ + xprime = x - 7; \ + xprime += 8 * mapLayout->borderWidth; \ + xprime %= mapLayout->borderWidth; \ + \ + yprime = y - 7; \ + yprime += 8 * mapLayout->borderHeight; \ + yprime %= mapLayout->borderHeight; \ + \ + block = mapLayout->border[xprime + yprime * mapLayout->borderWidth] | METATILE_COLLISION_MASK; \ }) #define AreCoordsWithinMapGridBounds(x, y) (x >= 0 && x < VMap.Xsize && y >= 0 && y < VMap.Ysize) -#define MapGridGetTileAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? VMap.map[x + VMap.Xsize * y] : MapGridGetBorderTileAt2(x, y)) +#define MapGridGetTileAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? VMap.map[x + VMap.Xsize * y] : MapGridGetBorderTileAt(x, y)) u8 MapGridGetZCoordAt(s32 x, s32 y) { |