diff options
| author | octorock <79596758+octorock@users.noreply.github.com> | 2023-07-05 18:30:27 +0200 |
|---|---|---|
| committer | octorock <79596758+octorock@users.noreply.github.com> | 2023-07-05 18:30:27 +0200 |
| commit | b6a94d5062076ce53a00609e1e661b9da9e7ee5b (patch) | |
| tree | f7763ad1a085a53f33a8616898c9436374f5d6ef /include | |
| parent | f89bb66911372a067041b66d50ac8462b7e0bd97 (diff) | |
Use metatile enum
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm.h | 2 | ||||
| -rw-r--r-- | include/collision.h | 22 | ||||
| -rw-r--r-- | include/entity.h | 2 | ||||
| -rw-r--r-- | include/gba/gba.h | 6 | ||||
| -rw-r--r-- | include/manager/flameManager.h | 4 | ||||
| -rw-r--r-- | include/manager/railIntersectionManager.h | 4 | ||||
| -rw-r--r-- | include/map.h | 1 | ||||
| -rw-r--r-- | include/player.h | 7 | ||||
| -rw-r--r-- | include/room.h | 6 | ||||
| -rw-r--r-- | include/tilemap.h | 4 | ||||
| -rw-r--r-- | include/tiles.h | 399 |
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 |
