Use metatile enum

This commit is contained in:
octorock
2023-07-05 18:30:27 +02:00
parent f89bb66911
commit b6a94d5062
155 changed files with 5374 additions and 3749 deletions
+1 -1
View File
@@ -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);
+19 -3
View File
@@ -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
+1 -1
View File
@@ -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. */
+3 -3
View File
@@ -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
+2 -2
View File
@@ -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
+2 -2
View File
@@ -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;
-1
View File
@@ -53,7 +53,6 @@ typedef struct {
extern MapLayer gMapTop;
extern MapLayer gMapBottom;
extern MapLayer* GetLayerByIndex(u32 layer);
/*
+3 -4
View File
@@ -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*);
+3 -3
View File
@@ -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];
+2 -2
View File
@@ -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];
+236 -163
View File
@@ -1,20 +1,6 @@
#ifndef TILES_H
#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
@@ -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