summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authoroctorock <79596758+octorock@users.noreply.github.com>2023-07-05 18:30:27 +0200
committeroctorock <79596758+octorock@users.noreply.github.com>2023-07-05 18:30:27 +0200
commitb6a94d5062076ce53a00609e1e661b9da9e7ee5b (patch)
treef7763ad1a085a53f33a8616898c9436374f5d6ef /include
parentf89bb66911372a067041b66d50ac8462b7e0bd97 (diff)
Use metatile enum
Diffstat (limited to 'include')
-rw-r--r--include/asm.h2
-rw-r--r--include/collision.h22
-rw-r--r--include/entity.h2
-rw-r--r--include/gba/gba.h6
-rw-r--r--include/manager/flameManager.h4
-rw-r--r--include/manager/railIntersectionManager.h4
-rw-r--r--include/map.h1
-rw-r--r--include/player.h7
-rw-r--r--include/room.h6
-rw-r--r--include/tilemap.h4
-rw-r--r--include/tiles.h399
11 files changed, 272 insertions, 185 deletions
diff --git a/include/asm.h b/include/asm.h
index 846c1783..7208b375 100644
--- a/include/asm.h
+++ b/include/asm.h
@@ -40,7 +40,7 @@ extern u32 sub_0800132C(struct Entity_*, struct Entity_*);
extern u32 sub_080B1A48(u32, u32, u32);
extern u32 sub_0800445C(struct Entity_*);
-extern bool32 sub_080B1B54(u32);
+extern bool32 GetVvvForMetaTileType(u32);
extern u32 CheckRectOnScreen(s32, s32, u32, u32);
extern u32 GetVvvRelativeToEntity(struct Entity_* entity, s32 xOffset, s32 yOffset);
diff --git a/include/collision.h b/include/collision.h
index be338ff7..76974a25 100644
--- a/include/collision.h
+++ b/include/collision.h
@@ -32,13 +32,29 @@ typedef enum {
RESULT_COLLISION_WITHOUT_SET = 2,
} CollisionResult;
-bool32 IsTileCollision(const u8*, s32, s32, u32);
+/**
+ * @brief
+ *
+ * @param collisionData
+ * @param x x world coordinate
+ * @param y y world coordinate
+ * @param collisionType @see CollisionType
+ * @return bool32
+ */
+bool32 IsTileCollision(const u8* collisionData, s32 x, s32 y, u32 collisionType);
bool32 IsColliding(Entity*, Entity*);
bool32 IsCollidingPlayer(Entity*);
-void CalculateEntityTileCollisions(Entity*, u32, u32);
+/**
+ * @brief Calculates the collisions with the tiles around the entity and stores the result in Entity.collisions.
+ *
+ * @param this
+ * @param direction
+ * @param collisionType @see CollisionType
+ */
+void CalculateEntityTileCollisions(Entity* this, u32 direction, u32 collisionType);
bool32 ProcessMovementInternal(Entity*, s32, s32, u32);
u32 sub_080176E4(Entity*);
-extern const u8 gUnk_080B37A0[]; // vvv for tileType?
+extern const u8 gMapMetaTileTypeToVvv[]; // vvv for tileType?
#endif // COLLISION_H
diff --git a/include/entity.h b/include/entity.h
index dda579a0..8ecd0f95 100644
--- a/include/entity.h
+++ b/include/entity.h
@@ -184,7 +184,7 @@ typedef struct Entity_ {
/*0x24*/ s16 speed; /**< Magnitude of speed. */
/*0x26*/ u8 spriteAnimation[3];
/*0x29*/ SpritePriority spritePriority;
- /*0x2a*/ u16 collisions; /**< Collision flags for each direction. */
+ /*0x2a*/ u16 collisions; /**< Collision flags for each direction. @see Collisions*/
/*0x2c*/ union SplitWord x; /**< X position, fixed point Q16.16. */
/*0x30*/ union SplitWord y; /**< Y position, fixed point Q16.16. */
/*0x34*/ union SplitWord z; /**< Z position, fixed point Q16.16. */
diff --git a/include/gba/gba.h b/include/gba/gba.h
index 259bb9c8..dc3c3f87 100644
--- a/include/gba/gba.h
+++ b/include/gba/gba.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_GBA_GBA_H
-#define GUARD_GBA_GBA_H
+#ifndef GBA_H
+#define GBA_H
#include <string.h>
#include "defines.h"
@@ -10,4 +10,4 @@
#include "macro.h"
#include "isagbprint.h"
-#endif // GUARD_GBA_GBA_H
+#endif // GBA_H
diff --git a/include/manager/flameManager.h b/include/manager/flameManager.h
index 2c5ebe7c..0b6f7ef0 100644
--- a/include/manager/flameManager.h
+++ b/include/manager/flameManager.h
@@ -6,8 +6,8 @@
typedef struct {
struct Manager base;
u8 field_0x20[0x18];
- s16 field_0x38;
- s16 field_0x3a;
+ s16 metaTilePos; // x
+ s16 field_0x3a; // y
} FlameManager;
#endif // FLAMEMANAGER_H
diff --git a/include/manager/railIntersectionManager.h b/include/manager/railIntersectionManager.h
index 9de3c0ad..f5bff429 100644
--- a/include/manager/railIntersectionManager.h
+++ b/include/manager/railIntersectionManager.h
@@ -6,9 +6,9 @@
typedef struct {
Manager base;
u8 field_0x20[0x16];
- u8 field_0x36;
+ u8 layer;
u8 field_0x37;
- s16 field_0x38;
+ s16 metaTilePos;
u16 field_0x3a;
u8 field_0x3c;
u8 field_0x3d;
diff --git a/include/map.h b/include/map.h
index e603bb42..170555e9 100644
--- a/include/map.h
+++ b/include/map.h
@@ -53,7 +53,6 @@ typedef struct {
extern MapLayer gMapTop;
extern MapLayer gMapBottom;
-
extern MapLayer* GetLayerByIndex(u32 layer);
/*
diff --git a/include/player.h b/include/player.h
index 75e6d80a..eabc6cac 100644
--- a/include/player.h
+++ b/include/player.h
@@ -506,14 +506,13 @@ void sub_08078D60(void);
void PlayerSetNormalAndCollide(void);
bool32 PlayerTryDropObject(ItemBehavior* arg0, u32 unk);
void InitItemGetSequence(u32, u32, u32);
-void sub_0807B7D8(u32, u32, u32);
+void sub_0807B7D8(u32 metaTileType, u32 metaTilePos, u32 layer);
void SetInteractableObjectCollision(Entity*, u32, u32, const void*);
void sub_08079D84(void);
u32 sub_0807953C(void);
void sub_0807BB68(const s16*, u32, u32);
-void SetMetaTileByIndex(u32 tileIndex, u32 position, u32 layer);
-void sub_0807B7D8(u32, u32, u32);
-void RestorePrevTileEntity(u32, u32);
+void SetMetaTileByIndex(u32 tileIndex, u32 metaTilePos, u32 layer);
+void RestorePrevTileEntity(u32 metaTilePos, u32 layer);
void UpdateItemAnim(ItemBehavior*);
void PlayerCancelHoldItem(ItemBehavior*, u32);
void RegisterCarryEntity(Entity*);
diff --git a/include/room.h b/include/room.h
index 3c11c750..388adeab 100644
--- a/include/room.h
+++ b/include/room.h
@@ -34,8 +34,8 @@ typedef struct {
/*0x0A*/ s16 scroll_x;
/*0x0C*/ s16 scroll_y;
/*0x0E*/ u8 scrollSpeed; /**< Pixels per frame that the camera can scroll. */
- /*0x0F*/ u8 scroll_flags; // 0x2 = ?? (apply collision value on bottom map no matter the layer SetMetaTileType is called
- // for), 0x4 = camera scrolling
+ /*0x0F*/ u8 scroll_flags; // 0x2 = ?? (apply collision value on bottom map no matter the layer SetMetaTileType is
+ // called for), 0x4 = camera scrolling
/*0x10*/ u8 scroll_direction;
/*0x11*/ s8 oam_offset_x;
/*0x12*/ s8 oam_offset_y;
@@ -154,7 +154,7 @@ typedef struct {
/* 0x06 */ u16 field_0x6;
/* 0x08 */ bool8 transitioningOut;
/* 0x09 */ u8 type; // transition when changing areas
- /* 0x0a */ u16 stairs_idx; // seems to be a tile type
+ /* 0x0a */ u16 stairs_idx; // seems to be a tile type @see MetaTileType, set in UpdateDoorTransition()
/* 0x0c */ PlayerRoomStatus player_status;
/* 0x2c */ u8 entity_update_type; // differentiates entity priority on kinstone menu?
/* 0x2d */ u8 field_0x2c[0x8];
diff --git a/include/tilemap.h b/include/tilemap.h
index 57242a97..6017f9bd 100644
--- a/include/tilemap.h
+++ b/include/tilemap.h
@@ -3,8 +3,8 @@
#include "global.h"
-// gMapDataTopSpecial and gMapDataBottomSpecial are tilemaps of 8x8 pixels. But they are also reused for other data in other parts of the game.
-
+// gMapDataTopSpecial and gMapDataBottomSpecial are tilemaps of 8x8 pixels. But they are also reused for other data in
+// other parts of the game.
// Rendered tilemaps https://www.coranac.com/tonc/text/regbg.htm#sec-map
extern u16 gMapDataTopSpecial[0x4000];
diff --git a/include/tiles.h b/include/tiles.h
index 3db98b1b..8898fe07 100644
--- a/include/tiles.h
+++ b/include/tiles.h
@@ -2,20 +2,6 @@
#define TILES_H
typedef enum {
- CUT_BUSH = 0x1C,
- CUT_GRASS = 0x1D,
- CUT_SIGNPOST = 0x1E,
- CUT_TREE = 0x1F,
- ROCK = 0x55,
- CHEST = 0x73,
- SIGNPOST = 0x176,
- PERMA_ROCK = 0x1D3,
- PERMA_ROCK2 = 0x1D4,
- PERMA_ROCK3 = 0x1D5,
- PERMA_ROCK4 = 0x1D6,
-} Tile;
-
-typedef enum {
META_TILE_TYPE_0, // 0x0
META_TILE_TYPE_1, // 0x1
META_TILE_TYPE_2, // 0x2
@@ -44,10 +30,10 @@ typedef enum {
META_TILE_TYPE_25, // 0x19
META_TILE_TYPE_26, // 0x1a
META_TILE_TYPE_27, // 0x1b
- META_TILE_TYPE_28, // 0x1c
- META_TILE_TYPE_29, // 0x1d
- META_TILE_TYPE_30, // 0x1e
- META_TILE_TYPE_31, // 0x1f
+ META_TILE_TYPE_28, // 0x1c CUT_BUSH
+ META_TILE_TYPE_29, // 0x1d CUT_GRASS
+ META_TILE_TYPE_30, // 0x1e CUT_SIGNPOST
+ META_TILE_TYPE_31, // 0x1f CUT_TREE
META_TILE_TYPE_32, // 0x20
META_TILE_TYPE_33, // 0x21
META_TILE_TYPE_34, // 0x22
@@ -101,7 +87,7 @@ typedef enum {
META_TILE_TYPE_82, // 0x52
META_TILE_TYPE_83, // 0x53
META_TILE_TYPE_84, // 0x54
- META_TILE_TYPE_85, // 0x55
+ META_TILE_TYPE_85, // 0x55 ROCK
META_TILE_TYPE_86, // 0x56
META_TILE_TYPE_87, // 0x57
META_TILE_TYPE_88, // 0x58
@@ -131,7 +117,7 @@ typedef enum {
META_TILE_TYPE_112, // 0x70
META_TILE_TYPE_113, // 0x71
META_TILE_TYPE_114, // 0x72
- META_TILE_TYPE_115, // 0x73
+ META_TILE_TYPE_115, // 0x73 CHEST
META_TILE_TYPE_116, // 0x74
META_TILE_TYPE_117, // 0x75
META_TILE_TYPE_118, // 0x76
@@ -390,7 +376,7 @@ typedef enum {
META_TILE_TYPE_371, // 0x173
META_TILE_TYPE_372, // 0x174
META_TILE_TYPE_373, // 0x175
- META_TILE_TYPE_374, // 0x176
+ META_TILE_TYPE_374, // 0x176 SIGNPOST
META_TILE_TYPE_375, // 0x177
META_TILE_TYPE_376, // 0x178
META_TILE_TYPE_377, // 0x179
@@ -483,10 +469,10 @@ typedef enum {
META_TILE_TYPE_464, // 0x1d0
META_TILE_TYPE_465, // 0x1d1
META_TILE_TYPE_466, // 0x1d2
- META_TILE_TYPE_467, // 0x1d3
- META_TILE_TYPE_468, // 0x1d4
- META_TILE_TYPE_469, // 0x1d5
- META_TILE_TYPE_470, // 0x1d6
+ META_TILE_TYPE_467, // 0x1d3 PERMA_ROCK
+ META_TILE_TYPE_468, // 0x1d4 PERMA_ROCK2
+ META_TILE_TYPE_469, // 0x1d5 PERMA_ROCK3
+ META_TILE_TYPE_470, // 0x1d6 PERMA_ROCK4
META_TILE_TYPE_471, // 0x1d7
META_TILE_TYPE_472, // 0x1d8
META_TILE_TYPE_473, // 0x1d9
@@ -807,8 +793,8 @@ typedef enum {
META_TILE_TYPE_788, // 0x314
META_TILE_TYPE_789, // 0x315
META_TILE_TYPE_790, // 0x316
- META_TILE_TYPE_791, // 0x317
- META_TILE_TYPE_792, // 0x318
+ META_TILE_TYPE_791, // 0x317 RED_TILE
+ META_TILE_TYPE_792, // 0x318 BLUE_TILE
META_TILE_TYPE_793, // 0x319
META_TILE_TYPE_794, // 0x31a
META_TILE_TYPE_795, // 0x31b
@@ -1412,163 +1398,165 @@ typedef enum {
META_TILE_TYPE_1393, // 0x571
META_TILE_TYPE_1394, // 0x572
META_TILE_TYPE_1395, // 0x573
-} MetaTile;
+} MetaTileType;
typedef enum {
- SPECIAL_META_TILE_0 = 0x4000,
- SPECIAL_META_TILE_1, // 0x4001
- SPECIAL_META_TILE_2, // 0x4002
- SPECIAL_META_TILE_3, // 0x4003
- SPECIAL_META_TILE_4, // 0x4004
- SPECIAL_META_TILE_5, // 0x4005
- SPECIAL_META_TILE_6, // 0x4006
- SPECIAL_META_TILE_7, // 0x4007
- SPECIAL_META_TILE_8, // 0x4008
- SPECIAL_META_TILE_9, // 0x4009
- SPECIAL_META_TILE_10, // 0x400a
- SPECIAL_META_TILE_11, // 0x400b
- SPECIAL_META_TILE_12, // 0x400c
- SPECIAL_META_TILE_13, // 0x400d
- SPECIAL_META_TILE_14, // 0x400e
- SPECIAL_META_TILE_15, // 0x400f
- SPECIAL_META_TILE_16, // 0x4010
- SPECIAL_META_TILE_17, // 0x4011
- SPECIAL_META_TILE_18, // 0x4012
- SPECIAL_META_TILE_19, // 0x4013
- SPECIAL_META_TILE_20, // 0x4014
- SPECIAL_META_TILE_21, // 0x4015
- SPECIAL_META_TILE_22, // 0x4016
- SPECIAL_META_TILE_23, // 0x4017
- SPECIAL_META_TILE_24, // 0x4018
- SPECIAL_META_TILE_25, // 0x4019
- SPECIAL_META_TILE_26, // 0x401a
- SPECIAL_META_TILE_27, // 0x401b
- SPECIAL_META_TILE_28, // 0x401c
- SPECIAL_META_TILE_29, // 0x401d
- SPECIAL_META_TILE_30, // 0x401e
- SPECIAL_META_TILE_31, // 0x401f
- SPECIAL_META_TILE_32, // 0x4020
- SPECIAL_META_TILE_33, // 0x4021
- SPECIAL_META_TILE_34, // 0x4022
- SPECIAL_META_TILE_35, // 0x4023
- SPECIAL_META_TILE_36, // 0x4024
- SPECIAL_META_TILE_37, // 0x4025
- SPECIAL_META_TILE_38, // 0x4026
- SPECIAL_META_TILE_39, // 0x4027
- SPECIAL_META_TILE_40, // 0x4028
- SPECIAL_META_TILE_41, // 0x4029
- SPECIAL_META_TILE_42, // 0x402a
- SPECIAL_META_TILE_43, // 0x402b
- SPECIAL_META_TILE_44, // 0x402c
- SPECIAL_META_TILE_45, // 0x402d
- SPECIAL_META_TILE_46, // 0x402e
+ SPECIAL_META_TILE_0 = 0x4000, // Pots
+ SPECIAL_META_TILE_1, // 0x4001 // Move Pot Up
+ SPECIAL_META_TILE_2, // 0x4002 // Move Pot Right
+ SPECIAL_META_TILE_3, // 0x4003 // Move Pot Down
+ SPECIAL_META_TILE_4, // 0x4004 // Move Pot Left
+ SPECIAL_META_TILE_5, // 0x4005
+ SPECIAL_META_TILE_6, // 0x4006
+ SPECIAL_META_TILE_7, // 0x4007
+ SPECIAL_META_TILE_8, // 0x4008
+ SPECIAL_META_TILE_9, // 0x4009
+ SPECIAL_META_TILE_10, // 0x400a
+ SPECIAL_META_TILE_11, // 0x400b // Statues/ Pillar Gates
+ SPECIAL_META_TILE_12, // 0x400c // Move Statue Up
+ SPECIAL_META_TILE_13, // 0x400d // Move Statue Right
+ SPECIAL_META_TILE_14, // 0x400e // Move Statue Down
+ SPECIAL_META_TILE_15, // 0x400f // Move Statue Left
+ SPECIAL_META_TILE_16, // 0x4010
+ SPECIAL_META_TILE_17, // 0x4011
+ SPECIAL_META_TILE_18, // 0x4012
+ SPECIAL_META_TILE_19, // 0x4013
+ SPECIAL_META_TILE_20, // 0x4014 // Beanstalk/Ladder Top (Transition)
+ SPECIAL_META_TILE_21, // 0x4015 // Boulder in Hole
+ SPECIAL_META_TILE_22, // 0x4016
+ SPECIAL_META_TILE_23, // 0x4017 // Beanstalk/Ladder
+ SPECIAL_META_TILE_24, // 0x4018
+ SPECIAL_META_TILE_25, // 0x4019
+ SPECIAL_META_TILE_26, // 0x401a
+ SPECIAL_META_TILE_27, // 0x401b // Boulder
+ SPECIAL_META_TILE_28, // 0x401c // Move Bolder Up
+ SPECIAL_META_TILE_29, // 0x401d // Move Bolder Right
+ SPECIAL_META_TILE_30, // 0x401e // Move Bolder Down
+ SPECIAL_META_TILE_31, // 0x401f // Move Bolder Left
+ SPECIAL_META_TILE_32, // 0x4020 // Spring hole (Cane shot hole)
+ SPECIAL_META_TILE_33, // 0x4021
+ SPECIAL_META_TILE_34, // 0x4022 // Furniture Center Locked Door/Frozen Element/Octo/O Shaped Ice (ToD) Big Chest
+ // Closed (ToD) Gust Jar Mushrooms (ToD) Perhaps this is just tiles that change on
+ // interaction?
+ SPECIAL_META_TILE_35, // 0x4023 // Object Top
+ SPECIAL_META_TILE_36, // 0x4024 // Object Left
+ SPECIAL_META_TILE_37, // 0x4025 // Object Right
+ SPECIAL_META_TILE_38, // 0x4026 // Object Bottom
+ SPECIAL_META_TILE_39, // 0x4027 // Object Top Left Corner
+ SPECIAL_META_TILE_40, // 0x4028 // Object Top Right Corner
+ SPECIAL_META_TILE_41, // 0x4029 // Object Bottom Left Corner
+ SPECIAL_META_TILE_42, // 0x402a // Object Bottom Right Corner
+ SPECIAL_META_TILE_43, // 0x402b // Push Object Either (1 off)
+ SPECIAL_META_TILE_44, // 0x402c // Push Object Left (1 off)
+ SPECIAL_META_TILE_45, // 0x402d // Push Object Right (1 off)
+ SPECIAL_META_TILE_46, // 0x402e // Push Object Either
SPECIAL_META_TILE_47, // 0x402f
SPECIAL_META_TILE_48, // 0x4030
- SPECIAL_META_TILE_49, // 0x4031
- SPECIAL_META_TILE_50, // 0x4032
+ SPECIAL_META_TILE_49, // 0x4031 // Pushed Object
+ SPECIAL_META_TILE_50, // 0x4032 // Blue Bean in Hole
SPECIAL_META_TILE_51, // 0x4033
SPECIAL_META_TILE_52, // 0x4034
SPECIAL_META_TILE_53, // 0x4035
- SPECIAL_META_TILE_54, // 0x4036
- SPECIAL_META_TILE_55, // 0x4037
- SPECIAL_META_TILE_56, // 0x4038
- SPECIAL_META_TILE_57, // 0x4039
- SPECIAL_META_TILE_58, // 0x403a
- SPECIAL_META_TILE_59, // 0x403b
+ SPECIAL_META_TILE_54, // 0x4036 // Pillar w/ Object
+ SPECIAL_META_TILE_55, // 0x4037 // Move pillar Up
+ SPECIAL_META_TILE_56, // 0x4038 // Move pillar Right
+ SPECIAL_META_TILE_57, // 0x4039 // Move pillar Down
+ SPECIAL_META_TILE_58, // 0x403a // Move pillar Left
+ SPECIAL_META_TILE_59, // 0x403b // Green Bean in Hole
SPECIAL_META_TILE_60, // 0x403c
- SPECIAL_META_TILE_61, // 0x403d
- SPECIAL_META_TILE_62, // 0x403e
+ SPECIAL_META_TILE_61, // 0x403d // Minish Path Under Stick, Stone over hole in light rooms (ToD), Object Blocking
+ // Town doors
+ SPECIAL_META_TILE_62, // 0x403e // Grave
SPECIAL_META_TILE_63, // 0x403f
- SPECIAL_META_TILE_64, // 0x4040
- SPECIAL_META_TILE_65, // 0x4041
- SPECIAL_META_TILE_66, // 0x4042
- SPECIAL_META_TILE_67, // 0x4043
- SPECIAL_META_TILE_68, // 0x4044
- SPECIAL_META_TILE_69, // 0x4045
- SPECIAL_META_TILE_70, // 0x4046
- SPECIAL_META_TILE_71, // 0x4047
- SPECIAL_META_TILE_72, // 0x4048
+ SPECIAL_META_TILE_64, // 0x4040 // Portal Top Left
+ SPECIAL_META_TILE_65, // 0x4041 // Portal Top
+ SPECIAL_META_TILE_66, // 0x4042 // Portal Top Right
+ SPECIAL_META_TILE_67, // 0x4043 // Portal Left
+ SPECIAL_META_TILE_68, // 0x4044 // Portal Center
+ SPECIAL_META_TILE_69, // 0x4045 // Portal Right
+ SPECIAL_META_TILE_70, // 0x4046 // Portal Bottom Left
+ SPECIAL_META_TILE_71, // 0x4047 // Portal Bottom
+ SPECIAL_META_TILE_72, // 0x4048 // Portal Bottom Right
SPECIAL_META_TILE_73, // 0x4049
- SPECIAL_META_TILE_74, // 0x404a
- SPECIAL_META_TILE_75, // 0x404b
- SPECIAL_META_TILE_76, // 0x404c
- SPECIAL_META_TILE_77, // 0x404d
- SPECIAL_META_TILE_78, // 0x404e
+ SPECIAL_META_TILE_74, // 0x404a // Push Box
+ SPECIAL_META_TILE_75, // 0x404b // Move Block Up
+ SPECIAL_META_TILE_76, // 0x404c // Move Block Right
+ SPECIAL_META_TILE_77, // 0x404d // Move Block Down
+ SPECIAL_META_TILE_78, // 0x404e // Push Box Locked
SPECIAL_META_TILE_79, // 0x404f
- SPECIAL_META_TILE_80, // 0x4050
+ SPECIAL_META_TILE_80, // 0x4050 // Impact Switch
SPECIAL_META_TILE_81, // 0x4051
- SPECIAL_META_TILE_82, // 0x4052
- SPECIAL_META_TILE_83, // 0x4053
- SPECIAL_META_TILE_84, // 0x4054
- SPECIAL_META_TILE_85, // 0x4055
- SPECIAL_META_TILE_86, // 0x4056
- SPECIAL_META_TILE_87, // 0x4057
- SPECIAL_META_TILE_88, // 0x4058
+ SPECIAL_META_TILE_82, // 0x4052 // Lever (facing left)
+ SPECIAL_META_TILE_83, // 0x4053 // Lever (facing up)
+ SPECIAL_META_TILE_84, // 0x4054 // After Lever push (facing left)
+ SPECIAL_META_TILE_85, // 0x4055 // Big lever (facing left inside)
+ SPECIAL_META_TILE_86, // 0x4056 // Big lever (facing left outside)
+ SPECIAL_META_TILE_87, // 0x4057 // Big lever (facing up inside)
+ SPECIAL_META_TILE_88, // 0x4058 // Big lever (facing up outside)
SPECIAL_META_TILE_89, // 0x4059
- SPECIAL_META_TILE_90, // 0x405a
- SPECIAL_META_TILE_91, // 0x405b
- SPECIAL_META_TILE_92, // 0x405c
- SPECIAL_META_TILE_93, // 0x405d
- SPECIAL_META_TILE_94, // 0x405e
+ SPECIAL_META_TILE_90, // 0x405a // Ice Blocks
+ SPECIAL_META_TILE_91, // 0x405b // Move Block Up
+ SPECIAL_META_TILE_92, // 0x405c // Move Block Right
+ SPECIAL_META_TILE_93, // 0x405d // Move Block Down
+ SPECIAL_META_TILE_94, // 0x405e // Move Block Left
SPECIAL_META_TILE_95, // 0x405f
- SPECIAL_META_TILE_96, // 0x4060
- SPECIAL_META_TILE_97, // 0x4061
+ SPECIAL_META_TILE_96, // 0x4060 // Skull
+ SPECIAL_META_TILE_97, // 0x4061 // Lit Fireplace
SPECIAL_META_TILE_98, // 0x4062
SPECIAL_META_TILE_99, // 0x4063
SPECIAL_META_TILE_100, // 0x4064
- SPECIAL_META_TILE_101, // 0x4065
- SPECIAL_META_TILE_102, // 0x4066
+ SPECIAL_META_TILE_101, // 0x4065 // Tree Thorns Right
+ SPECIAL_META_TILE_102, // 0x4066 // Tree Thorns Left
SPECIAL_META_TILE_103, // 0x4067
- SPECIAL_META_TILE_104, // 0x4068
- SPECIAL_META_TILE_105, // 0x4069
+ SPECIAL_META_TILE_104, // 0x4068 // Hot Ash Covering Objects
+ SPECIAL_META_TILE_105, // 0x4069 // Loading Zone
SPECIAL_META_TILE_106, // 0x406a
SPECIAL_META_TILE_107, // 0x406b
- SPECIAL_META_TILE_108, // 0x406c
- SPECIAL_META_TILE_109, // 0x406d
- SPECIAL_META_TILE_110, // 0x406e
- SPECIAL_META_TILE_111, // 0x406f
- SPECIAL_META_TILE_112, // 0x4070
+ SPECIAL_META_TILE_108, // 0x406c // Acorn Top Left
+ SPECIAL_META_TILE_109, // 0x406d // Acorn Top Right
+ SPECIAL_META_TILE_110, // 0x406e // Acorn Bottom Left
+ SPECIAL_META_TILE_111, // 0x406f // Acorn Bottom Right
+ SPECIAL_META_TILE_112, // 0x4070 // Link in a hole
SPECIAL_META_TILE_113, // 0x4071
- SPECIAL_META_TILE_114, // 0x4072
+ SPECIAL_META_TILE_114, // 0x4072 // Blocking Library, all kinds of objects?
SPECIAL_META_TILE_115, // 0x4073
- SPECIAL_META_TILE_116, // 0x4074
- SPECIAL_META_TILE_117, // 0x4075
- SPECIAL_META_TILE_118, // 0x4076
- SPECIAL_META_TILE_119, // 0x4077
- SPECIAL_META_TILE_120, // 0x4078
- SPECIAL_META_TILE_121, // 0x4079
- SPECIAL_META_TILE_122, // 0x407a
- SPECIAL_META_TILE_123, // 0x407b
- SPECIAL_META_TILE_124, // 0x407c
- SPECIAL_META_TILE_125, // 0x407d
+ SPECIAL_META_TILE_116, // 0x4074 // Leaf
+ SPECIAL_META_TILE_117, // 0x4075 // Chest Ice Block Top Left
+ SPECIAL_META_TILE_118, // 0x4076 // Chest Ice Block Top Right
+ SPECIAL_META_TILE_119, // 0x4077 // Chest Ice Block Top
+ SPECIAL_META_TILE_120, // 0x4078 // Chest Ice Block Bottom Left
+ SPECIAL_META_TILE_121, // 0x4079 // Chest Ice Block Left
+ SPECIAL_META_TILE_122, // 0x407a // Chest Ice Block Bottom Right
+ SPECIAL_META_TILE_123, // 0x407b // Chest Ice Block Right
+ SPECIAL_META_TILE_124, // 0x407c // Chest Ice Block Bottom
+ SPECIAL_META_TILE_125, // 0x407d // Town Well
SPECIAL_META_TILE_126, // 0x407e
SPECIAL_META_TILE_127, // 0x407f
- SPECIAL_META_TILE_128, // 0x4080
+ SPECIAL_META_TILE_128, // 0x4080 // Dig Cave Outside
SPECIAL_META_TILE_129, // 0x4081
- SPECIAL_META_TILE_130, // 0x4082
- SPECIAL_META_TILE_131, // 0x4083
+ SPECIAL_META_TILE_130, // 0x4082 // Bookshelf slider
+ SPECIAL_META_TILE_131, // 0x4083 // Minish House doorways
SPECIAL_META_TILE_132, // 0x4084
SPECIAL_META_TILE_133, // 0x4085
SPECIAL_META_TILE_134, // 0x4086
SPECIAL_META_TILE_135, // 0x4087
SPECIAL_META_TILE_136, // 0x4088
- SPECIAL_META_TILE_137, // 0x4089
- SPECIAL_META_TILE_138, // 0x408a
- SPECIAL_META_TILE_139, // 0x408b
- SPECIAL_META_TILE_140, // 0x408c
+ SPECIAL_META_TILE_137, // 0x4089 // Shallow Water Outside ToD
+ SPECIAL_META_TILE_138, // 0x408a // Shallow Water Outside ToD
+ SPECIAL_META_TILE_139, // 0x408b // Shallow Water Outside ToD
+ SPECIAL_META_TILE_140, // 0x408c // Shallow Water Outside ToD
SPECIAL_META_TILE_141, // 0x408d
- SPECIAL_META_TILE_142, // 0x408e
- SPECIAL_META_TILE_143, // 0x408f
+ SPECIAL_META_TILE_142, // 0x408e // Climb Wall Down, Library book ladder, Rock Boost
+ SPECIAL_META_TILE_143, // 0x408f // Climb Wall Up, Rock Boost
SPECIAL_META_TILE_144, // 0x4090
- SPECIAL_META_TILE_145, // 0x4091
- SPECIAL_META_TILE_146, // 0x4092
- SPECIAL_META_TILE_147, // 0x4093
- SPECIAL_META_TILE_148, // 0x4094
- SPECIAL_META_TILE_149, // 0x4095
+ SPECIAL_META_TILE_145, // 0x4091 // Shallow Water Outside ToD
+ SPECIAL_META_TILE_146, // 0x4092 // Minish Pot Top Left Flipping
+ SPECIAL_META_TILE_147, // 0x4093 // Minish Pot Top Right Flipping
+ SPECIAL_META_TILE_148, // 0x4094 // Minish Pot Bottom Left Flipping
+ SPECIAL_META_TILE_149, // 0x4095 // Minish Pot Botom Right Flipping
SPECIAL_META_TILE_150, // 0x4096
} SpecialMetaTile;
-
typedef enum {
VVV_0 = 0,
VVV_1 = 1,
@@ -1584,14 +1572,14 @@ typedef enum {
VVV_11 = 11, // sub_0801FDE4(leever)
VVV_12 = 12, // sub_0801FDE4(leever)
VVV_13 = 13, // -> SURFACE_PIT, sub_08094E30(cutsceneMiscObject), sub_08085B40(lilypadLarge), Pot_Action1,
- // sub_080AD040(playerItemHeldObject), UpdatePlayerCollision, sub_0807B434(playerUtils)
+ // sub_080AD040(playerItemHeldObject), UpdatePlayerCollision, sub_0807B434(playerUtils), FX_FALL_DOWN
VVV_14 = 14, // -> SURFACE_SLOPE_GNDWATER
VVV_15 = 15, // -> SURFACE_SHALLOW_WATER, SPECIAL_META_TILE_145
VVV_16 = 16, // -> SURFACE_WATER, sub_0801FBD0(chuchu), PlayerItemBottle_UseEmptyBottle, SPECIAL_META_TILE_137 -
- // 140, sub_080AD040(playerItemHeldObject)
- VVV_17 = 17, // -> SURFACE_14, sub_08085A44(lilypadLarge), sub_080AD040(playerItemHeldObject)
+ // 140, sub_080AD040(playerItemHeldObject), FX_WATER_SPLASH
+ VVV_17 = 17, // -> SURFACE_14, sub_08085A44(lilypadLarge), sub_080AD040(playerItemHeldObject), FX_WATER_SPLASH
VVV_18 = 18, // -> SURFACE_ICE, SPECIAL_META_TILE_117 - 124
- VVV_19 = 19, // -> SURFACE_SWAMP, sub_0803163C(rope), sub_080AD040(playerItemHeldObject)
+ VVV_19 = 19, // -> SURFACE_SWAMP, sub_0803163C(rope), sub_080AD040(playerItemHeldObject), FX_GREEN_SPLASH
VVV_20 = 20,
VVV_21 = 21,
VVV_22 = 22, // -> SURFACE_DUST
@@ -1615,7 +1603,8 @@ typedef enum {
VVV_39 = 39, // -> SURFACE_SLOPE_GNDGND_H
VVV_40 = 40, // -> SURFACE_DOOR_13, SPECIAL_META_TILE_105, sub_080732D0(player), UpdateDoorTransition
VVV_41 = 41, // -> SURFACE_DOOR, sub_08076DF4(itemGustJar), Minecart_Action3, sub_080896B0(pushableStatue),
- // SPECIAL_META_TILE_128, SPECIAL_META_TILE_131 - 136, SPECIAL_META_TILE_141, sub_080724DC(player), UpdateDoorTransition
+ // SPECIAL_META_TILE_128, SPECIAL_META_TILE_131 - 136, SPECIAL_META_TILE_141, sub_080724DC(player),
+ // UpdateDoorTransition
VVV_42 = 42, // -> SURFACE_E, sub_080611D4(npc5)
VVV_43 = 43, // -> SURFACE_D, sub_080611D4(npc5)
VVV_44 = 44, // -> SURFACE_10, sub_080611D4(npc5)
@@ -1664,16 +1653,16 @@ typedef enum {
VVV_87 = 87, // -> SURFACE_CLONE_TILE, sub_0806B0E0(townMinish)
VVV_88 = 88,
VVV_89 = 89,
- VVV_90 = 90, // -> SURFACE_1C, sub_080AD040(playerItemHeldObject)
+ VVV_90 = 90, // -> SURFACE_1C, sub_080AD040(playerItemHeldObject), FX_LAVA_SPLASH
VVV_91 = 91,
VVV_92 = 92,
VVV_93 = 93,
VVV_94 = 94,
VVV_95 = 95,
VVV_96 = 96,
- VVV_97 = 97, // -> SURFACE_1B
- VVV_98 = 98, // -> SURFACE_21
- VVV_99 = 99, // -> SURFACE_24
+ VVV_97 = 97, // -> SURFACE_1B
+ VVV_98 = 98, // -> SURFACE_21
+ VVV_99 = 99, // -> SURFACE_24
VVV_100 = 100, // Minecart_Action3
VVV_101 = 101, // -> SURFACE_6, Minecart_Action3
VVV_102 = 102, // -> SURFACE_6, Minecart_Action3
@@ -1700,10 +1689,94 @@ typedef enum {
// up to VVV_255 -> sub_0802F300(tektite)
} Vvv;
-
typedef enum {
- COLLISION_TYPE_0,
-
-
-} CollisionType;
+ COLLISION_DATA_0 = 0,
+ COLLISION_DATA_1 = 1,
+ COLLISION_DATA_2 = 2,
+ COLLISION_DATA_3 = 3,
+ COLLISION_DATA_4 = 4,
+ COLLISION_DATA_5 = 5,
+ COLLISION_DATA_6 = 6,
+ COLLISION_DATA_7 = 7,
+ COLLISION_DATA_8 = 8,
+ COLLISION_DATA_9 = 9,
+ COLLISION_DATA_10 = 10,
+ COLLISION_DATA_11 = 11,
+ COLLISION_DATA_12 = 12,
+ COLLISION_DATA_13 = 13,
+ COLLISION_DATA_14 = 14,
+ COLLISION_DATA_15 = 15,
+ COLLISION_DATA_16 = 16,
+ COLLISION_DATA_17 = 17,
+ COLLISION_DATA_18 = 18,
+ COLLISION_DATA_19 = 19,
+ COLLISION_DATA_20 = 20,
+ COLLISION_DATA_21 = 21,
+ COLLISION_DATA_23 = 23,
+ COLLISION_DATA_24 = 24,
+ COLLISION_DATA_25 = 25,
+ COLLISION_DATA_26 = 26,
+ COLLISION_DATA_27 = 27,
+ COLLISION_DATA_28 = 28,
+ COLLISION_DATA_29 = 29,
+ COLLISION_DATA_32 = 32,
+ COLLISION_DATA_33 = 33, // FX_FALL_DOWN
+ COLLISION_DATA_34 = 34,
+ COLLISION_DATA_35 = 35,
+ COLLISION_DATA_36 = 36, // FX_WATER_SPLASH
+ COLLISION_DATA_37 = 37, // FX_LAVA_SPLASH
+ COLLISION_DATA_38 = 38,
+ COLLISION_DATA_39 = 39,
+ COLLISION_DATA_40 = 40,
+ COLLISION_DATA_41 = 41,
+ COLLISION_DATA_42 = 42,
+ COLLISION_DATA_43 = 43,
+ COLLISION_DATA_44 = 44,
+ COLLISION_DATA_45 = 45,
+ COLLISION_DATA_46 = 46,
+ COLLISION_DATA_47 = 47,
+ COLLISION_DATA_48 = 48, // FX_WATER_SPLASH
+ COLLISION_DATA_49 = 49,
+ COLLISION_DATA_50 = 50,
+ COLLISION_DATA_58 = 58,
+ COLLISION_DATA_60 = 60,
+ COLLISION_DATA_63 = 63,
+ COLLISION_DATA_66 = 66,
+ COLLISION_DATA_67 = 67,
+ COLLISION_DATA_68 = 68,
+ COLLISION_DATA_69 = 69,
+ COLLISION_DATA_70 = 70,
+ COLLISION_DATA_71 = 71,
+ COLLISION_DATA_72 = 72,
+ COLLISION_DATA_74 = 74,
+ COLLISION_DATA_75 = 75,
+ COLLISION_DATA_80 = 80,
+ COLLISION_DATA_81 = 81,
+ COLLISION_DATA_82 = 82,
+ COLLISION_DATA_83 = 83,
+ COLLISION_DATA_84 = 84,
+ COLLISION_DATA_85 = 85,
+ COLLISION_DATA_87 = 87,
+ COLLISION_DATA_88 = 88,
+ COLLISION_DATA_89 = 89,
+ COLLISION_DATA_90 = 90,
+ COLLISION_DATA_91 = 91,
+ COLLISION_DATA_92 = 92,
+ COLLISION_DATA_93 = 93,
+ COLLISION_DATA_94 = 94,
+ COLLISION_DATA_95 = 95,
+ COLLISION_DATA_96 = 96,
+ COLLISION_DATA_97 = 97,
+ COLLISION_DATA_98 = 98,
+ COLLISION_DATA_99 = 99,
+ COLLISION_DATA_100 = 100,
+ COLLISION_DATA_101 = 101,
+ COLLISION_DATA_102 = 102,
+ COLLISION_DATA_103 = 103,
+ COLLISION_DATA_104 = 104,
+ COLLISION_DATA_105 = 105,
+ COLLISION_DATA_106 = 106,
+ COLLISION_DATA_107 = 107,
+ COLLISION_DATA_255 = 255,
+} CollisionData;
#endif // TILES_H