diff --git a/asm/src/intr.s b/asm/src/intr.s index faa00538..b9fe9f6b 100644 --- a/asm/src/intr.s +++ b/asm/src/intr.s @@ -187,11 +187,11 @@ arm_GetCollisionDataAtMetaTilePos: ldrb r0, [r1, r0] bx lr - arm_func_start arm_sub_080B1B54 -arm_sub_080B1B54: @ 0x080B1B54 + arm_func_start arm_GetVvvForMetaTileType +arm_GetVvvForMetaTileType: @ 0x080B1B54 lsls r0, r0, #0x12 - ldrlo r1, _080B1C30 @ =gUnk_080B37A0 - ldrhs r1, _080B1C34 @ =gUnk_080B7910 + ldrlo r1, _080B1C30 @ =gMapMetaTileTypeToVvv + ldrhs r1, _080B1C34 @ =gMapSpecialMetaTileToVvv ldrb r0, [r1, r0, lsr #18] bx lr @@ -257,8 +257,8 @@ _080B1C20: .4byte gRoomControls _080B1C24: .4byte gVvvPtrs _080B1C28: .4byte gRoomControls _080B1C2C: .4byte gCollisionDataPtrs -_080B1C30: .4byte gUnk_080B37A0 -_080B1C34: .4byte gUnk_080B7910 +_080B1C30: .4byte gMapMetaTileTypeToVvv +_080B1C34: .4byte gMapSpecialMetaTileToVvv _080B1C38: .4byte gMetatileTypesPtrs _080B1C3C: .4byte gUnk_08000360 _080B1C40: .4byte gUnk_080B7A3E diff --git a/asm/src/script.s b/asm/src/script.s index bc78fd76..7fc2c36f 100644 --- a/asm/src/script.s +++ b/asm/src/script.s @@ -84,7 +84,7 @@ ResolveCollisionLayer: @ 0x08016A30 movs r3, #1 cmp r0, #0 beq _08016A62 - bl sub_080B1B54 + bl GetVvvForMetaTileType movs r3, #2 add r1, pc, #0x40 _08016A54: diff --git a/asm/src/veneer.s b/asm/src/veneer.s index f030c308..81ce4439 100644 --- a/asm/src/veneer.s +++ b/asm/src/veneer.s @@ -69,11 +69,11 @@ SetMetaTile: @ r0 = tile type, r1, = tile position, r2 = layer blo _0800019A @ jump if metaTile < 0x4000 push {r1, r2} subs r4, r0, r6 @ r4 = metaTile - 0x4000 - ldr r3, _08000210 @ =gUnk_080B7910 - ldrb r0, [r3, r4] @ r0 = gUnk_080B7910[metaTile - 0x4000] + ldr r3, _08000210 @ =gMapSpecialMetaTileToVvv + ldrb r0, [r3, r4] @ r0 = gMapSpecialMetaTileToVvv[metaTile - 0x4000] bl SetVvvAtMetaTilePos - ldr r3, _08000214 @ =gUnk_080B79A7 - ldrb r0, [r3, r4] @ r0 = gUnk_080B79A7[metaTile - 0x4000] + ldr r3, _08000214 @ =gMapSpecialMetaTileToCollisionData + ldrb r0, [r3, r4] @ r0 = gMapSpecialMetaTileToCollisionData[metaTile - 0x4000] lsrs r2, r2, #2 @ r2 = layer bl SetCollisionData pop {r0, r1} @ tilepos, layer @@ -89,11 +89,11 @@ _0800019A: lsls r0, r0, #1 @ r0 = metaTile * 2 ldrh r4, [r4, r0] @ r4 (metaTileType) = gMapBottom.metatileTypes[metaTile] push {r1, r2} - ldr r3, _08000218 @ =gUnk_080B37A0 - ldrb r0, [r3, r4] @ r0 = gUnk_080B37A0[metaTileType] + ldr r3, _08000218 @ =gMapMetaTileTypeToVvv + ldrb r0, [r3, r4] @ r0 = gMapMetaTileTypeToVvv[metaTileType] bl SetVvvAtMetaTilePos - ldr r3, _0800021C @ =gUnk_080B3E80 - ldrb r0, [r3, r4] @ r0 = gUnk_080B3E80[metaTileType] + ldr r3, _0800021C @ =gMapMetaTileTypeToCollisionData + ldrb r0, [r3, r4] @ r0 = gMapMetaTileTypeToCollisionData[metaTileType] lsrs r2, r2, #2 @ r2 = layer bl SetCollisionData pop {r0, r1} @@ -105,7 +105,7 @@ _080001C4: .4byte gMapBottom+0x6004 _080001C8: .4byte gMapTop+0x6004 _080001CC: .4byte gMapBottom+0x6004 -@ r0: @see gUnk_080B7910 r1: metaTilePos, r2: layer +@ r0: @see gMapSpecialMetaTileToVvv r1: metaTilePos, r2: layer thumb_func_start SetVvvAtMetaTilePos SetVvvAtMetaTilePos: @ 0x080001D0 lsls r2, r2, #2 @@ -133,10 +133,10 @@ _08000200: .4byte gBG2Buffer+0x40 _08000204: .4byte gCollisionDataPtrs _08000208: .4byte gMapDataPtrs _0800020C: .4byte 0x00004000 -_08000210: .4byte gUnk_080B7910 -_08000214: .4byte gUnk_080B79A7 -_08000218: .4byte gUnk_080B37A0 -_0800021C: .4byte gUnk_080B3E80 +_08000210: .4byte gMapSpecialMetaTileToVvv +_08000214: .4byte gMapSpecialMetaTileToCollisionData +_08000218: .4byte gMapMetaTileTypeToVvv +_0800021C: .4byte gMapMetaTileTypeToCollisionData _08000220: .4byte gVvvPtrs _08000224: .4byte gMapDataPtrs @@ -374,9 +374,9 @@ GetCollisionDataAtMetaTilePos: @ 0x080002E0 @ call 0x080B1B54 @ r0: u32 (tileIndex) - thumb_func_start sub_080B1B54 -sub_080B1B54: @ 0x080002E4 - ldr r3, _08000350 @ =ram_sub_080B1B54 + thumb_func_start GetVvvForMetaTileType +GetVvvForMetaTileType: @ 0x080002E4 + ldr r3, _08000350 @ =ram_GetVvvForMetaTileType bx r3 @ call 0x080B1B68 @@ -427,7 +427,7 @@ _08000340: .4byte ram_GetCollisionDataAtWorldCoords _08000344: .4byte ram_GetCollisionDataAtRoomCoords _08000348: .4byte ram_GetCollisionDataAtRoomTile _0800034C: .4byte ram_GetCollisionDataAtMetaTilePos -_08000350: .4byte ram_sub_080B1B54 +_08000350: .4byte ram_GetVvvForMetaTileType _08000354: .4byte ram_sub_080B1B68 _08000358: .4byte ram_sub_080B1B84 _0800035C: .4byte ram_sub_080B1BA4 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 #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 @@ -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 diff --git a/linker.ld b/linker.ld index 6f86a56e..f658c112 100644 --- a/linker.ld +++ b/linker.ld @@ -177,7 +177,7 @@ SECTIONS { . = 0x000058A0; ram_GetCollisionDataAtRoomCoords = .; . = 0x000058B0; ram_GetCollisionDataAtRoomTile = .; . = 0x000058B8; ram_GetCollisionDataAtMetaTilePos = .; - . = 0x000058C8; ram_sub_080B1B54 = .; + . = 0x000058C8; ram_GetVvvForMetaTileType = .; . = 0x000058DC; ram_sub_080B1B68 = .; . = 0x000058F8; ram_sub_080B1B84 = .; . = 0x00005918; ram_sub_080B1BA4 = .; diff --git a/src/beanstalkSubtask.c b/src/beanstalkSubtask.c index 4dba66e2..872ac7e6 100644 --- a/src/beanstalkSubtask.c +++ b/src/beanstalkSubtask.c @@ -203,7 +203,7 @@ u32 UpdatePlayerCollision(void) { if (index != 0xff && (gRoomControls.scroll_flags & 4) == 0) { ptr1 = &gUnk_080B4490[index * 2]; if (GetCollisionDataAtMetaTilePos(COORD_TO_TILE_OFFSET(&gPlayerEntity, -ptr1[0], -ptr1[1]), - gPlayerEntity.collisionLayer) == 0xff) { + gPlayerEntity.collisionLayer) == COLLISION_DATA_255) { if ((((gPlayerState.flags & (PL_FLAGS10000 | PL_FLAGS2)) != 0) || ((gPlayerState.sword_state & 0x10) != 0)) || ((sub_080806BC(gPlayerEntity.x.HALF.HI - gRoomControls.origin_x, @@ -222,7 +222,7 @@ u32 UpdatePlayerCollision(void) { position = COORD_TO_TILE_OFFSET(&gPlayerEntity, -ptr1[0], -ptr1[1]); tileType = GetMetaTileType(position, gPlayerEntity.collisionLayer); if (tileType < 0x4000) { - direction = sub_080B1B54(tileType); + direction = GetVvvForMetaTileType(tileType); } else { direction = tileType; } @@ -230,7 +230,7 @@ u32 UpdatePlayerCollision(void) { animationState2 = animationState1 & 0xff; switch (direction) { - case 0x4000: + case SPECIAL_META_TILE_0: if (sub_0801A458(mapLayer, position, 2) == 0) { return 0; } @@ -246,7 +246,7 @@ u32 UpdatePlayerCollision(void) { gPlayerEntity.y.HALF.LO = 0; gPlayerEntity.direction = Direction8FromAnimationState(gPlayerEntity.animationState); return 1; - case 0x28: + case VVV_40: if ((gPlayerState.flags & PL_MINISH) != 0) { return 0; } @@ -260,7 +260,7 @@ u32 UpdatePlayerCollision(void) { if ((gPlayerEntity.direction & 0x80) != 0) { return 0; } - if (GetCollisionDataAtMetaTilePos(position, gPlayerEntity.collisionLayer) != 0xf) { + if (GetCollisionDataAtMetaTilePos(position, gPlayerEntity.collisionLayer) != COLLISION_DATA_15) { return 0; } if (sub_08079778() == 0) { @@ -280,11 +280,12 @@ u32 UpdatePlayerCollision(void) { } sub_08078AC0(4, 0, 1); return 0; - case 0x401b: + case SPECIAL_META_TILE_27: if (sub_0801A2B0(mapLayer, position, 0xb) == 0) { return 0; } - mapLayer->mapData[position] = 0x401c + (gPlayerEntity.animationState >> 1); + // Start moving the boulder. + mapLayer->mapData[position] = SPECIAL_META_TILE_28 + (gPlayerEntity.animationState / 2); gPlayerState.pushedObject = 0xa0; gPlayerState.queued_action = PLAYER_PUSH; gPlayerState.flags |= PL_BUSY; @@ -293,7 +294,7 @@ u32 UpdatePlayerCollision(void) { gPlayerEntity.direction = Direction8FromAnimationState(gPlayerEntity.animationState); gPlayerEntity.type = 1; return 1; - case 0x70: + case VVV_112: if ((gPlayerState.field_0x35 & 0x80) == 0) { if ((gPlayerEntity.frame & 1) != 0) { if (sub_0801A9F0(gPlayerState.field_0x35 << 2, tileType, position) != 0) { @@ -302,9 +303,9 @@ u32 UpdatePlayerCollision(void) { } } return 0; - case 0x3a: - case 0x5b: - case 0x4051: + case VVV_58: + case VVV_91: + case SPECIAL_META_TILE_81: if ((gPlayerState.flags & PL_MINISH) != 0) { return 0; } @@ -318,7 +319,7 @@ u32 UpdatePlayerCollision(void) { gPlayerState.mobility = 1; sub_080A7CFC(position, gPlayerEntity.collisionLayer); return 1; - case 0x1a: + case VVV_26: if ((animationState1 & 0xff) != 0) { return 0; } @@ -332,7 +333,7 @@ u32 UpdatePlayerCollision(void) { gPlayerState.mobility = 1; OpenSmallChest(position, gPlayerEntity.collisionLayer); return 2; - case 0x71: + case VVV_113: if (HasDungeonSmallKey() == 0) { return 0; } @@ -343,8 +344,8 @@ u32 UpdatePlayerCollision(void) { gPlayerState.mobility = 1; sub_0804B388(position, gPlayerEntity.collisionLayer); return 2; - case 0x3d: - case 0x4040 ... 0x4048: + case VVV_61: + case SPECIAL_META_TILE_64 ... SPECIAL_META_TILE_72: if ((gPlayerState.flags & PL_DRUGGED) != 0) { return 0; } @@ -371,14 +372,14 @@ u32 UpdatePlayerCollision(void) { gPlayerEntity.zVelocity = 0x20000; COLLISION_OFF(&gPlayerEntity); return 1; - case 0x400b: + case SPECIAL_META_TILE_11: if (sub_0801A2B0(mapLayer, position, 8) == 0) { return 0; } - if ((gPlayerEntity.collisionLayer == 3) && (gMapTop.mapData[position] == 0x400b)) { - gMapTop.mapData[position] = 0x400c + (gPlayerEntity.animationState >> 1); + if ((gPlayerEntity.collisionLayer == 3) && (gMapTop.mapData[position] == SPECIAL_META_TILE_11)) { + gMapTop.mapData[position] = SPECIAL_META_TILE_12 + (gPlayerEntity.animationState >> 1); } else { - mapLayer->mapData[position] = 0x400c + (gPlayerEntity.animationState >> 1); + mapLayer->mapData[position] = SPECIAL_META_TILE_12 + (gPlayerEntity.animationState >> 1); } gPlayerState.pushedObject = 0xa0; gPlayerState.queued_action = PLAYER_PUSH; @@ -387,11 +388,12 @@ u32 UpdatePlayerCollision(void) { gPlayerEntity.y.HALF.LO = 0; gPlayerEntity.direction = Direction8FromAnimationState(gPlayerEntity.animationState); return 1; - case 0x405a: + case SPECIAL_META_TILE_90: if (sub_0801A2B0(mapLayer, position, 2) == 0) { return 0; } - mapLayer->mapData[position] = 0x405b + (gPlayerEntity.animationState >> 1); + // Move ice block. + mapLayer->mapData[position] = SPECIAL_META_TILE_91 + (gPlayerEntity.animationState >> 1); gPlayerState.pushedObject = 0x98; gPlayerState.queued_action = PLAYER_PUSH; gPlayerState.flags |= PL_BUSY; @@ -399,11 +401,11 @@ u32 UpdatePlayerCollision(void) { gPlayerEntity.y.HALF.LO = 0; gPlayerEntity.direction = Direction8FromAnimationState(gPlayerEntity.animationState); return 1; - case 0x4036: + case SPECIAL_META_TILE_54: if (sub_0801A2B0(mapLayer, position, 0xb) == 0) { return 0; } - mapLayer->mapData[position] = 0x4037 + (gPlayerEntity.animationState >> 1); + mapLayer->mapData[position] = SPECIAL_META_TILE_55 + (gPlayerEntity.animationState >> 1); gPlayerState.pushedObject = 0xa0; gPlayerState.queued_action = PLAYER_PUSH; gPlayerState.flags |= PL_BUSY; @@ -411,7 +413,7 @@ u32 UpdatePlayerCollision(void) { gPlayerEntity.y.HALF.LO = 0; gPlayerEntity.direction = Direction8FromAnimationState(gPlayerEntity.animationState); return 1; - case 0x403e: + case SPECIAL_META_TILE_62: if ((animationState1 & 0xff) != 0) { return 0; } @@ -421,7 +423,7 @@ u32 UpdatePlayerCollision(void) { if ((gPlayerEntity.frame & 2) == 0) { return 0; } - mapLayer->mapData[position] = 0x403f; + mapLayer->mapData[position] = SPECIAL_META_TILE_63; gPlayerState.pushedObject = 0x82; gPlayerState.queued_action = PLAYER_PUSH; gPlayerState.flags |= PL_BUSY; @@ -429,7 +431,7 @@ u32 UpdatePlayerCollision(void) { gPlayerEntity.y.HALF.LO = 0; gPlayerEntity.direction = Direction8FromAnimationState(gPlayerEntity.animationState); return 1; - case 0x72: + case VVV_114: if ((gPlayerState.field_0x35 & 0x80) != 0) { return 0; } @@ -470,9 +472,9 @@ u32 UpdatePlayerCollision(void) { gPlayerEntity.y.HALF.LO = 0; gPlayerEntity.direction = pushedBlock->direction; return 1; - case 0x402b ... 0x402d: + case SPECIAL_META_TILE_43 ... SPECIAL_META_TILE_45: if (sub_0801A370(mapLayer, position) != 0) { - mapLayer->mapData[position] = 0x4030 + ((gPlayerEntity.animationState & 4) >> 2); + mapLayer->mapData[position] = SPECIAL_META_TILE_48 + ((gPlayerEntity.animationState & 4) >> 2); if ((gPlayerState.flags & PL_MINISH) != 0) { gPlayerState.pushedObject = 0xa0; } else { @@ -487,11 +489,11 @@ u32 UpdatePlayerCollision(void) { } else { return 0; } - case 0x404a: + case SPECIAL_META_TILE_74: if (sub_0801A458(mapLayer, position, 8) == 0) { return 0; } - mapLayer->mapData[position] = 0x404b + (gPlayerEntity.animationState >> 1); + mapLayer->mapData[position] = SPECIAL_META_TILE_75 + (gPlayerEntity.animationState >> 1); if ((gPlayerState.flags & PL_MINISH) != 0) { gPlayerState.pushedObject = 0xc0; } else { @@ -503,22 +505,22 @@ u32 UpdatePlayerCollision(void) { gPlayerEntity.y.HALF.LO = 0; gPlayerEntity.direction = Direction8FromAnimationState(gPlayerEntity.animationState); return 1; - case 0x4052: + case SPECIAL_META_TILE_82: if (gPlayerState.field_0x35 != 0) { return 0; } - SetMetaTile(0x4054, position, gPlayerEntity.collisionLayer); + SetMetaTile(SPECIAL_META_TILE_84, position, gPlayerEntity.collisionLayer); return 4; - case 0x4053: + case SPECIAL_META_TILE_83: if (gPlayerState.field_0x35 != 6) { return 0; } - SetMetaTile(0x4054, position, gPlayerEntity.collisionLayer); + SetMetaTile(SPECIAL_META_TILE_84, position, gPlayerEntity.collisionLayer); return 4; - case 0x4055: + case SPECIAL_META_TILE_85: position--; // fallthrough - case 0x4056: + case SPECIAL_META_TILE_86: if (gPlayerState.field_0x35 != 0) { return 0; } @@ -527,15 +529,15 @@ u32 UpdatePlayerCollision(void) { } for (index = 0; index < 3; index++) { if (sub_0801A8D0(gPlayerClones[index], 0) == position) { - SetMetaTile(0x4059, position, gPlayerEntity.collisionLayer); + SetMetaTile(SPECIAL_META_TILE_89, position, gPlayerEntity.collisionLayer); return 4; } } return 0; - case 0x4057: + case SPECIAL_META_TILE_87: position -= 0x40; // fallthrough - case 0x4058: + case SPECIAL_META_TILE_88: if (gPlayerState.field_0x35 != 6) { return 0; } @@ -544,12 +546,12 @@ u32 UpdatePlayerCollision(void) { } for (index = 0; index < 3; index++) { if (sub_0801A8D0(gPlayerClones[index], 6) == position) { - SetMetaTile(0x4059, position, gPlayerEntity.collisionLayer); + SetMetaTile(SPECIAL_META_TILE_89, position, gPlayerEntity.collisionLayer); return 4; } } return 0; - case 0x405f: + case SPECIAL_META_TILE_95: animationState3 = 2; animationState3 &= animationState1; if (animationState3 == 0) { @@ -561,7 +563,7 @@ u32 UpdatePlayerCollision(void) { if ((gPlayerEntity.frame & 1) == 0) { return 0; } - SetMetaTile(0x4074, position, gPlayerEntity.collisionLayer); + SetMetaTile(SPECIAL_META_TILE_116, position, gPlayerEntity.collisionLayer); gPlayerState.pushedObject = 0xa0; gPlayerState.queued_action = PLAYER_PUSH; gPlayerState.flags |= PL_BUSY; @@ -569,7 +571,7 @@ u32 UpdatePlayerCollision(void) { gPlayerEntity.y.HALF.LO = 0; gPlayerEntity.direction = Direction8FromAnimationState(gPlayerEntity.animationState); return 1; - case 0x407d: + case SPECIAL_META_TILE_125: animationState3 = gPlayerEntity.animationState; if ((animationState2) != 4) { return 0; @@ -580,7 +582,7 @@ u32 UpdatePlayerCollision(void) { if ((gPlayerEntity.frame & 1) == 0) { return 0; } - SetMetaTile(0x4074, position, gPlayerEntity.collisionLayer); + SetMetaTile(SPECIAL_META_TILE_116, position, gPlayerEntity.collisionLayer); SetVvvAtMetaTilePos(VVV_13, position, gPlayerEntity.collisionLayer); return 1; default: @@ -597,7 +599,7 @@ bool32 sub_0801A2B0(MapLayer* mapLayer, u32 position, u32 collisionType) { uVar1 = gUnk_080B4488[gPlayerEntity.animationState >> 1]; if ((((gPlayerState.field_0x35 | gPlayerState.direction) & 0x80) == 0) && ((gPlayerEntity.frame & 1) != 0)) { position = (u16)(position - (-uVar1)); // necessary for match - temp4 = sub_080B1B54(GetMetaTileType(position, gPlayerEntity.collisionLayer)); + temp4 = GetVvvForMetaTileType(GetMetaTileType(position, gPlayerEntity.collisionLayer)); switch (temp4) { case 0x52: break; @@ -640,16 +642,16 @@ bool32 sub_0801A370(MapLayer* mapLayer, u32 position) { pos = position + offset; tileType = GetMetaTileType(pos, gPlayerEntity.collisionLayer); switch (tileType) { - case 0x402b: + case SPECIAL_META_TILE_43: pos += offset; break; - case 0x402c ... 0x402f: + case SPECIAL_META_TILE_44 ... SPECIAL_META_TILE_47: return TRUE; } if (topLayer->collisionData[pos - 0x80] == 0x46) { return FALSE; } - switch ((u16)sub_080B1B54(GetMetaTileType(pos, gPlayerEntity.collisionLayer))) { + switch ((u16)GetVvvForMetaTileType(GetMetaTileType(pos, gPlayerEntity.collisionLayer))) { case 0x52: return FALSE; case 0x26: @@ -686,7 +688,7 @@ bool32 sub_0801A458(MapLayer* mapLayer, u32 position, u32 collisionType) { if (sub_0801A4F8()) { pos = position + offset; tileType = GetMetaTileType(pos, gPlayerEntity.collisionLayer); - switch (sub_080B1B54(tileType)) { + switch (GetVvvForMetaTileType(tileType)) { case 0x52: case 0x26: case 0x27: @@ -747,19 +749,19 @@ u32 sub_0801A8D0(Entity* this, u32 param_2) { if (param_2 == 0) { position = COORD_TO_TILE_OFFSET(this, 0, 8); tile = mapData[position]; - if (tile == 0x4055) { + if (tile == SPECIAL_META_TILE_85) { return position - 1; } - if (tile == 0x4056) { + if (tile == SPECIAL_META_TILE_86) { return position; } } else { position = COORD_TO_TILE_OFFSET(this, 8, 0); tile = mapData[position]; - if (tile == 0x4057) { + if (tile == SPECIAL_META_TILE_87) { return position - 0x40; } - if (tile == 0x4058) { + if (tile == SPECIAL_META_TILE_88) { return position; } } @@ -773,7 +775,7 @@ bool32 sub_0801A980(void) { ptr = &gUnk_080B44A8[gPlayerEntity.animationState & 6]; tileType = GetMetaTileType(COORD_TO_TILE_OFFSET(&gPlayerEntity, -ptr[0], -ptr[1]), gPlayerEntity.collisionLayer); if (tileType < 0x4000) { - sub_080B1B54(tileType); + GetVvvForMetaTileType(tileType); } return FALSE; } @@ -1113,8 +1115,10 @@ void DeleteLoadedTileEntity(u32 metaTilePos, s32 layer) { } const struct_080B44D0 gUnk_080B44D0[] = { - { 0x67, 0x4084 }, { 0x68, 0x4085 }, { 0x69, 0x4086 }, { 0x6a, 0x4087 }, - { 0x6b, 0x4088 }, { 0x27, 0x4083 }, { 0x23, 0x408d }, { 0x0, 0x0 }, + { 0x67, SPECIAL_META_TILE_132 }, { 0x68, SPECIAL_META_TILE_133 }, + { 0x69, SPECIAL_META_TILE_134 }, { 0x6a, SPECIAL_META_TILE_135 }, + { 0x6b, SPECIAL_META_TILE_136 }, { 0x27, SPECIAL_META_TILE_131 }, + { 0x23, SPECIAL_META_TILE_141 }, { 0x0, 0x0 }, }; // used for minish houses, seems to overwrite all tiles with certain collision values on layer 1 for them? @@ -1127,13 +1131,13 @@ void sub_0801AFE4(void) { u32 height; collisionData = gMapBottom.collisionData; - width = gRoomControls.width >> 4; - height = gRoomControls.height >> 4; + width = gRoomControls.width / 16; + height = gRoomControls.height / 16; for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { for (ptr = gUnk_080B44D0; ptr->collision != 0; ptr++) { if (ptr->collision == *collisionData) { - SetMetaTile(ptr->tileIndex, y * 0x40 + x, 1); + SetMetaTile(ptr->tileIndex, y * 0x40 + x, LAYER_BOTTOM); break; } } diff --git a/src/code_0805EC04.c b/src/code_0805EC04.c index 82c2769f..37c56cd2 100644 --- a/src/code_0805EC04.c +++ b/src/code_0805EC04.c @@ -79,7 +79,7 @@ void UpdatePlayerInput(void) { PlayerMacroEntry* playerMacro; u32 zero; - if (gPlayerState.playerInput.playerMacro != NULL) { + if (gPlayerState.playerInput.playerMacro != NULL) { // Player is controlled by macro. playerInput = &gPlayerState.playerInput; playerMacro = playerInput->playerMacro; diff --git a/src/collision.c b/src/collision.c index 253f3f7c..908fe4c0 100644 --- a/src/collision.c +++ b/src/collision.c @@ -790,1463 +790,1463 @@ CollisionResult CollisionDefault(Entity* org, Entity* tgt, u32 direction, ColSet } // vvv for tileType? -const u8 gUnk_080B37A0[] = { -VVV_0, // META_TILE_TYPE_0 -VVV_1, // META_TILE_TYPE_1 -VVV_2, // META_TILE_TYPE_2 -VVV_3, // META_TILE_TYPE_3 -VVV_4, // META_TILE_TYPE_4 -VVV_5, // META_TILE_TYPE_5 -VVV_6, // META_TILE_TYPE_6 -VVV_7, // META_TILE_TYPE_7 -VVV_8, // META_TILE_TYPE_8 -VVV_9, // META_TILE_TYPE_9 -VVV_9, // META_TILE_TYPE_10 -VVV_10, // META_TILE_TYPE_11 -VVV_9, // META_TILE_TYPE_12 -VVV_9, // META_TILE_TYPE_13 -VVV_9, // META_TILE_TYPE_14 -VVV_9, // META_TILE_TYPE_15 -VVV_9, // META_TILE_TYPE_16 -VVV_9, // META_TILE_TYPE_17 -VVV_11, // META_TILE_TYPE_18 -VVV_12, // META_TILE_TYPE_19 -VVV_11, // META_TILE_TYPE_20 -VVV_11, // META_TILE_TYPE_21 -VVV_11, // META_TILE_TYPE_22 -VVV_11, // META_TILE_TYPE_23 -VVV_11, // META_TILE_TYPE_24 -VVV_11, // META_TILE_TYPE_25 -VVV_10, // META_TILE_TYPE_26 -VVV_10, // META_TILE_TYPE_27 -VVV_10, // META_TILE_TYPE_28 -VVV_10, // META_TILE_TYPE_29 -VVV_10, // META_TILE_TYPE_30 -VVV_10, // META_TILE_TYPE_31 -VVV_10, // META_TILE_TYPE_32 -VVV_10, // META_TILE_TYPE_33 -VVV_10, // META_TILE_TYPE_34 -VVV_10, // META_TILE_TYPE_35 -VVV_10, // META_TILE_TYPE_36 -VVV_10, // META_TILE_TYPE_37 -VVV_10, // META_TILE_TYPE_38 -VVV_10, // META_TILE_TYPE_39 -VVV_10, // META_TILE_TYPE_40 -VVV_12, // META_TILE_TYPE_41 -VVV_12, // META_TILE_TYPE_42 -VVV_12, // META_TILE_TYPE_43 -VVV_12, // META_TILE_TYPE_44 -VVV_12, // META_TILE_TYPE_45 -VVV_12, // META_TILE_TYPE_46 -VVV_12, // META_TILE_TYPE_47 -VVV_12, // META_TILE_TYPE_48 -VVV_12, // META_TILE_TYPE_49 -VVV_12, // META_TILE_TYPE_50 -VVV_12, // META_TILE_TYPE_51 -VVV_12, // META_TILE_TYPE_52 -VVV_13, // META_TILE_TYPE_53 -VVV_14, // META_TILE_TYPE_54 -VVV_14, // META_TILE_TYPE_55 -VVV_15, // META_TILE_TYPE_56 -VVV_16, // META_TILE_TYPE_57 -VVV_15, // META_TILE_TYPE_58 -VVV_14, // META_TILE_TYPE_59 -VVV_17, // META_TILE_TYPE_60 -VVV_18, // META_TILE_TYPE_61 -VVV_19, // META_TILE_TYPE_62 -VVV_20, // META_TILE_TYPE_63 -VVV_20, // META_TILE_TYPE_64 -VVV_20, // META_TILE_TYPE_65 -VVV_20, // META_TILE_TYPE_66 -VVV_20, // META_TILE_TYPE_67 -VVV_20, // META_TILE_TYPE_68 -VVV_20, // META_TILE_TYPE_69 -VVV_20, // META_TILE_TYPE_70 -VVV_20, // META_TILE_TYPE_71 -VVV_20, // META_TILE_TYPE_72 -VVV_20, // META_TILE_TYPE_73 -VVV_20, // META_TILE_TYPE_74 -VVV_20, // META_TILE_TYPE_75 -VVV_20, // META_TILE_TYPE_76 -VVV_20, // META_TILE_TYPE_77 -VVV_20, // META_TILE_TYPE_78 -VVV_20, // META_TILE_TYPE_79 -VVV_20, // META_TILE_TYPE_80 -VVV_20, // META_TILE_TYPE_81 -VVV_20, // META_TILE_TYPE_82 -VVV_20, // META_TILE_TYPE_83 -VVV_20, // META_TILE_TYPE_84 -VVV_21, // META_TILE_TYPE_85 -VVV_21, // META_TILE_TYPE_86 -VVV_21, // META_TILE_TYPE_87 -VVV_21, // META_TILE_TYPE_88 -VVV_21, // META_TILE_TYPE_89 -VVV_21, // META_TILE_TYPE_90 -VVV_21, // META_TILE_TYPE_91 -VVV_21, // META_TILE_TYPE_92 -VVV_21, // META_TILE_TYPE_93 -VVV_21, // META_TILE_TYPE_94 -VVV_21, // META_TILE_TYPE_95 -VVV_21, // META_TILE_TYPE_96 -VVV_22, // META_TILE_TYPE_97 -VVV_22, // META_TILE_TYPE_98 -VVV_22, // META_TILE_TYPE_99 -VVV_22, // META_TILE_TYPE_100 -VVV_22, // META_TILE_TYPE_101 -VVV_22, // META_TILE_TYPE_102 -VVV_22, // META_TILE_TYPE_103 -VVV_22, // META_TILE_TYPE_104 -VVV_23, // META_TILE_TYPE_105 -VVV_23, // META_TILE_TYPE_106 -VVV_24, // META_TILE_TYPE_107 -VVV_24, // META_TILE_TYPE_108 -VVV_24, // META_TILE_TYPE_109 -VVV_24, // META_TILE_TYPE_110 -VVV_0, // META_TILE_TYPE_111 -VVV_0, // META_TILE_TYPE_112 -VVV_25, // META_TILE_TYPE_113 -VVV_25, // META_TILE_TYPE_114 -VVV_26, // META_TILE_TYPE_115 -VVV_0, // META_TILE_TYPE_116 -VVV_0, // META_TILE_TYPE_117 -VVV_0, // META_TILE_TYPE_118 -VVV_27, // META_TILE_TYPE_119 -VVV_28, // META_TILE_TYPE_120 -VVV_29, // META_TILE_TYPE_121 -VVV_30, // META_TILE_TYPE_122 -VVV_31, // META_TILE_TYPE_123 -VVV_32, // META_TILE_TYPE_124 -VVV_33, // META_TILE_TYPE_125 -VVV_34, // META_TILE_TYPE_126 -VVV_35, // META_TILE_TYPE_127 -VVV_36, // META_TILE_TYPE_128 -VVV_0, // META_TILE_TYPE_129 -VVV_36, // META_TILE_TYPE_130 -VVV_36, // META_TILE_TYPE_131 -VVV_36, // META_TILE_TYPE_132 -VVV_36, // META_TILE_TYPE_133 -VVV_37, // META_TILE_TYPE_134 -VVV_38, // META_TILE_TYPE_135 -VVV_38, // META_TILE_TYPE_136 -VVV_39, // META_TILE_TYPE_137 -VVV_39, // META_TILE_TYPE_138 -VVV_40, // META_TILE_TYPE_139 -VVV_40, // META_TILE_TYPE_140 -VVV_40, // META_TILE_TYPE_141 -VVV_40, // META_TILE_TYPE_142 -VVV_40, // META_TILE_TYPE_143 -VVV_40, // META_TILE_TYPE_144 -VVV_40, // META_TILE_TYPE_145 -VVV_40, // META_TILE_TYPE_146 -VVV_40, // META_TILE_TYPE_147 -VVV_40, // META_TILE_TYPE_148 -VVV_40, // META_TILE_TYPE_149 -VVV_40, // META_TILE_TYPE_150 -VVV_40, // META_TILE_TYPE_151 -VVV_40, // META_TILE_TYPE_152 -VVV_40, // META_TILE_TYPE_153 -VVV_40, // META_TILE_TYPE_154 -VVV_40, // META_TILE_TYPE_155 -VVV_40, // META_TILE_TYPE_156 -VVV_41, // META_TILE_TYPE_157 -VVV_41, // META_TILE_TYPE_158 -VVV_40, // META_TILE_TYPE_159 -VVV_40, // META_TILE_TYPE_160 -VVV_42, // META_TILE_TYPE_161 -VVV_41, // META_TILE_TYPE_162 -VVV_40, // META_TILE_TYPE_163 -VVV_43, // META_TILE_TYPE_164 -VVV_41, // META_TILE_TYPE_165 -VVV_40, // META_TILE_TYPE_166 -VVV_44, // META_TILE_TYPE_167 -VVV_41, // META_TILE_TYPE_168 -VVV_40, // META_TILE_TYPE_169 -VVV_45, // META_TILE_TYPE_170 -VVV_0, // META_TILE_TYPE_171 -VVV_0, // META_TILE_TYPE_172 -VVV_0, // META_TILE_TYPE_173 -VVV_0, // META_TILE_TYPE_174 -VVV_46, // META_TILE_TYPE_175 -VVV_0, // META_TILE_TYPE_176 -VVV_0, // META_TILE_TYPE_177 +const u8 gMapMetaTileTypeToVvv[] = { + VVV_0, // META_TILE_TYPE_0 + VVV_1, // META_TILE_TYPE_1 + VVV_2, // META_TILE_TYPE_2 + VVV_3, // META_TILE_TYPE_3 + VVV_4, // META_TILE_TYPE_4 + VVV_5, // META_TILE_TYPE_5 + VVV_6, // META_TILE_TYPE_6 + VVV_7, // META_TILE_TYPE_7 + VVV_8, // META_TILE_TYPE_8 + VVV_9, // META_TILE_TYPE_9 + VVV_9, // META_TILE_TYPE_10 + VVV_10, // META_TILE_TYPE_11 + VVV_9, // META_TILE_TYPE_12 + VVV_9, // META_TILE_TYPE_13 + VVV_9, // META_TILE_TYPE_14 + VVV_9, // META_TILE_TYPE_15 + VVV_9, // META_TILE_TYPE_16 + VVV_9, // META_TILE_TYPE_17 + VVV_11, // META_TILE_TYPE_18 + VVV_12, // META_TILE_TYPE_19 + VVV_11, // META_TILE_TYPE_20 + VVV_11, // META_TILE_TYPE_21 + VVV_11, // META_TILE_TYPE_22 + VVV_11, // META_TILE_TYPE_23 + VVV_11, // META_TILE_TYPE_24 + VVV_11, // META_TILE_TYPE_25 + VVV_10, // META_TILE_TYPE_26 + VVV_10, // META_TILE_TYPE_27 + VVV_10, // META_TILE_TYPE_28 + VVV_10, // META_TILE_TYPE_29 + VVV_10, // META_TILE_TYPE_30 + VVV_10, // META_TILE_TYPE_31 + VVV_10, // META_TILE_TYPE_32 + VVV_10, // META_TILE_TYPE_33 + VVV_10, // META_TILE_TYPE_34 + VVV_10, // META_TILE_TYPE_35 + VVV_10, // META_TILE_TYPE_36 + VVV_10, // META_TILE_TYPE_37 + VVV_10, // META_TILE_TYPE_38 + VVV_10, // META_TILE_TYPE_39 + VVV_10, // META_TILE_TYPE_40 + VVV_12, // META_TILE_TYPE_41 + VVV_12, // META_TILE_TYPE_42 + VVV_12, // META_TILE_TYPE_43 + VVV_12, // META_TILE_TYPE_44 + VVV_12, // META_TILE_TYPE_45 + VVV_12, // META_TILE_TYPE_46 + VVV_12, // META_TILE_TYPE_47 + VVV_12, // META_TILE_TYPE_48 + VVV_12, // META_TILE_TYPE_49 + VVV_12, // META_TILE_TYPE_50 + VVV_12, // META_TILE_TYPE_51 + VVV_12, // META_TILE_TYPE_52 + VVV_13, // META_TILE_TYPE_53 + VVV_14, // META_TILE_TYPE_54 + VVV_14, // META_TILE_TYPE_55 + VVV_15, // META_TILE_TYPE_56 + VVV_16, // META_TILE_TYPE_57 + VVV_15, // META_TILE_TYPE_58 + VVV_14, // META_TILE_TYPE_59 + VVV_17, // META_TILE_TYPE_60 + VVV_18, // META_TILE_TYPE_61 + VVV_19, // META_TILE_TYPE_62 + VVV_20, // META_TILE_TYPE_63 + VVV_20, // META_TILE_TYPE_64 + VVV_20, // META_TILE_TYPE_65 + VVV_20, // META_TILE_TYPE_66 + VVV_20, // META_TILE_TYPE_67 + VVV_20, // META_TILE_TYPE_68 + VVV_20, // META_TILE_TYPE_69 + VVV_20, // META_TILE_TYPE_70 + VVV_20, // META_TILE_TYPE_71 + VVV_20, // META_TILE_TYPE_72 + VVV_20, // META_TILE_TYPE_73 + VVV_20, // META_TILE_TYPE_74 + VVV_20, // META_TILE_TYPE_75 + VVV_20, // META_TILE_TYPE_76 + VVV_20, // META_TILE_TYPE_77 + VVV_20, // META_TILE_TYPE_78 + VVV_20, // META_TILE_TYPE_79 + VVV_20, // META_TILE_TYPE_80 + VVV_20, // META_TILE_TYPE_81 + VVV_20, // META_TILE_TYPE_82 + VVV_20, // META_TILE_TYPE_83 + VVV_20, // META_TILE_TYPE_84 + VVV_21, // META_TILE_TYPE_85 + VVV_21, // META_TILE_TYPE_86 + VVV_21, // META_TILE_TYPE_87 + VVV_21, // META_TILE_TYPE_88 + VVV_21, // META_TILE_TYPE_89 + VVV_21, // META_TILE_TYPE_90 + VVV_21, // META_TILE_TYPE_91 + VVV_21, // META_TILE_TYPE_92 + VVV_21, // META_TILE_TYPE_93 + VVV_21, // META_TILE_TYPE_94 + VVV_21, // META_TILE_TYPE_95 + VVV_21, // META_TILE_TYPE_96 + VVV_22, // META_TILE_TYPE_97 + VVV_22, // META_TILE_TYPE_98 + VVV_22, // META_TILE_TYPE_99 + VVV_22, // META_TILE_TYPE_100 + VVV_22, // META_TILE_TYPE_101 + VVV_22, // META_TILE_TYPE_102 + VVV_22, // META_TILE_TYPE_103 + VVV_22, // META_TILE_TYPE_104 + VVV_23, // META_TILE_TYPE_105 + VVV_23, // META_TILE_TYPE_106 + VVV_24, // META_TILE_TYPE_107 + VVV_24, // META_TILE_TYPE_108 + VVV_24, // META_TILE_TYPE_109 + VVV_24, // META_TILE_TYPE_110 + VVV_0, // META_TILE_TYPE_111 + VVV_0, // META_TILE_TYPE_112 + VVV_25, // META_TILE_TYPE_113 + VVV_25, // META_TILE_TYPE_114 + VVV_26, // META_TILE_TYPE_115 + VVV_0, // META_TILE_TYPE_116 + VVV_0, // META_TILE_TYPE_117 + VVV_0, // META_TILE_TYPE_118 + VVV_27, // META_TILE_TYPE_119 + VVV_28, // META_TILE_TYPE_120 + VVV_29, // META_TILE_TYPE_121 + VVV_30, // META_TILE_TYPE_122 + VVV_31, // META_TILE_TYPE_123 + VVV_32, // META_TILE_TYPE_124 + VVV_33, // META_TILE_TYPE_125 + VVV_34, // META_TILE_TYPE_126 + VVV_35, // META_TILE_TYPE_127 + VVV_36, // META_TILE_TYPE_128 + VVV_0, // META_TILE_TYPE_129 + VVV_36, // META_TILE_TYPE_130 + VVV_36, // META_TILE_TYPE_131 + VVV_36, // META_TILE_TYPE_132 + VVV_36, // META_TILE_TYPE_133 + VVV_37, // META_TILE_TYPE_134 + VVV_38, // META_TILE_TYPE_135 + VVV_38, // META_TILE_TYPE_136 + VVV_39, // META_TILE_TYPE_137 + VVV_39, // META_TILE_TYPE_138 + VVV_40, // META_TILE_TYPE_139 + VVV_40, // META_TILE_TYPE_140 + VVV_40, // META_TILE_TYPE_141 + VVV_40, // META_TILE_TYPE_142 + VVV_40, // META_TILE_TYPE_143 + VVV_40, // META_TILE_TYPE_144 + VVV_40, // META_TILE_TYPE_145 + VVV_40, // META_TILE_TYPE_146 + VVV_40, // META_TILE_TYPE_147 + VVV_40, // META_TILE_TYPE_148 + VVV_40, // META_TILE_TYPE_149 + VVV_40, // META_TILE_TYPE_150 + VVV_40, // META_TILE_TYPE_151 + VVV_40, // META_TILE_TYPE_152 + VVV_40, // META_TILE_TYPE_153 + VVV_40, // META_TILE_TYPE_154 + VVV_40, // META_TILE_TYPE_155 + VVV_40, // META_TILE_TYPE_156 + VVV_41, // META_TILE_TYPE_157 + VVV_41, // META_TILE_TYPE_158 + VVV_40, // META_TILE_TYPE_159 + VVV_40, // META_TILE_TYPE_160 + VVV_42, // META_TILE_TYPE_161 + VVV_41, // META_TILE_TYPE_162 + VVV_40, // META_TILE_TYPE_163 + VVV_43, // META_TILE_TYPE_164 + VVV_41, // META_TILE_TYPE_165 + VVV_40, // META_TILE_TYPE_166 + VVV_44, // META_TILE_TYPE_167 + VVV_41, // META_TILE_TYPE_168 + VVV_40, // META_TILE_TYPE_169 + VVV_45, // META_TILE_TYPE_170 + VVV_0, // META_TILE_TYPE_171 + VVV_0, // META_TILE_TYPE_172 + VVV_0, // META_TILE_TYPE_173 + VVV_0, // META_TILE_TYPE_174 + VVV_46, // META_TILE_TYPE_175 + VVV_0, // META_TILE_TYPE_176 + VVV_0, // META_TILE_TYPE_177 #ifdef EU -VVV_0, // META_TILE_TYPE_178 + VVV_0, // META_TILE_TYPE_178 #else -VVV_41, // META_TILE_TYPE_178 + VVV_41, // META_TILE_TYPE_178 #endif -VVV_0, // META_TILE_TYPE_179 -VVV_0, // META_TILE_TYPE_180 + VVV_0, // META_TILE_TYPE_179 + VVV_0, // META_TILE_TYPE_180 #ifdef EU -VVV_0, // META_TILE_TYPE_181 + VVV_0, // META_TILE_TYPE_181 #else -VVV_41, // META_TILE_TYPE_181 + VVV_41, // META_TILE_TYPE_181 #endif -VVV_40, // META_TILE_TYPE_182 -VVV_0, // META_TILE_TYPE_183 -VVV_42, // META_TILE_TYPE_184 -VVV_42, // META_TILE_TYPE_185 -VVV_42, // META_TILE_TYPE_186 -VVV_0, // META_TILE_TYPE_187 -VVV_0, // META_TILE_TYPE_188 -VVV_0, // META_TILE_TYPE_189 -VVV_0, // META_TILE_TYPE_190 -VVV_46, // META_TILE_TYPE_191 -VVV_0, // META_TILE_TYPE_192 -VVV_0, // META_TILE_TYPE_193 + VVV_40, // META_TILE_TYPE_182 + VVV_0, // META_TILE_TYPE_183 + VVV_42, // META_TILE_TYPE_184 + VVV_42, // META_TILE_TYPE_185 + VVV_42, // META_TILE_TYPE_186 + VVV_0, // META_TILE_TYPE_187 + VVV_0, // META_TILE_TYPE_188 + VVV_0, // META_TILE_TYPE_189 + VVV_0, // META_TILE_TYPE_190 + VVV_46, // META_TILE_TYPE_191 + VVV_0, // META_TILE_TYPE_192 + VVV_0, // META_TILE_TYPE_193 #ifdef EU -VVV_0, // META_TILE_TYPE_194 + VVV_0, // META_TILE_TYPE_194 #else -VVV_41, // META_TILE_TYPE_194 + VVV_41, // META_TILE_TYPE_194 #endif -VVV_0, // META_TILE_TYPE_195 -VVV_0, // META_TILE_TYPE_196 + VVV_0, // META_TILE_TYPE_195 + VVV_0, // META_TILE_TYPE_196 #ifdef EU -VVV_0, // META_TILE_TYPE_197 + VVV_0, // META_TILE_TYPE_197 #else -VVV_41, // META_TILE_TYPE_197 + VVV_41, // META_TILE_TYPE_197 #endif -VVV_40, // META_TILE_TYPE_198 -VVV_0, // META_TILE_TYPE_199 -VVV_42, // META_TILE_TYPE_200 -VVV_42, // META_TILE_TYPE_201 -VVV_42, // META_TILE_TYPE_202 -VVV_0, // META_TILE_TYPE_203 -VVV_46, // META_TILE_TYPE_204 -VVV_0, // META_TILE_TYPE_205 -VVV_0, // META_TILE_TYPE_206 -VVV_0, // META_TILE_TYPE_207 -VVV_0, // META_TILE_TYPE_208 -VVV_0, // META_TILE_TYPE_209 + VVV_40, // META_TILE_TYPE_198 + VVV_0, // META_TILE_TYPE_199 + VVV_42, // META_TILE_TYPE_200 + VVV_42, // META_TILE_TYPE_201 + VVV_42, // META_TILE_TYPE_202 + VVV_0, // META_TILE_TYPE_203 + VVV_46, // META_TILE_TYPE_204 + VVV_0, // META_TILE_TYPE_205 + VVV_0, // META_TILE_TYPE_206 + VVV_0, // META_TILE_TYPE_207 + VVV_0, // META_TILE_TYPE_208 + VVV_0, // META_TILE_TYPE_209 #ifdef EU -VVV_0, // META_TILE_TYPE_210 + VVV_0, // META_TILE_TYPE_210 #else -VVV_41, // META_TILE_TYPE_210 + VVV_41, // META_TILE_TYPE_210 #endif -VVV_40, // META_TILE_TYPE_211 -VVV_0, // META_TILE_TYPE_212 -VVV_0, // META_TILE_TYPE_213 + VVV_40, // META_TILE_TYPE_211 + VVV_0, // META_TILE_TYPE_212 + VVV_0, // META_TILE_TYPE_213 #ifdef EU -VVV_0, // META_TILE_TYPE_214 + VVV_0, // META_TILE_TYPE_214 #else -VVV_41, // META_TILE_TYPE_214 + VVV_41, // META_TILE_TYPE_214 #endif -VVV_0, // META_TILE_TYPE_215 -VVV_43, // META_TILE_TYPE_216 -VVV_43, // META_TILE_TYPE_217 -VVV_43, // META_TILE_TYPE_218 -VVV_0, // META_TILE_TYPE_219 -VVV_0, // META_TILE_TYPE_220 -VVV_0, // META_TILE_TYPE_221 -VVV_0, // META_TILE_TYPE_222 -VVV_46, // META_TILE_TYPE_223 -VVV_0, // META_TILE_TYPE_224 -VVV_0, // META_TILE_TYPE_225 + VVV_0, // META_TILE_TYPE_215 + VVV_43, // META_TILE_TYPE_216 + VVV_43, // META_TILE_TYPE_217 + VVV_43, // META_TILE_TYPE_218 + VVV_0, // META_TILE_TYPE_219 + VVV_0, // META_TILE_TYPE_220 + VVV_0, // META_TILE_TYPE_221 + VVV_0, // META_TILE_TYPE_222 + VVV_46, // META_TILE_TYPE_223 + VVV_0, // META_TILE_TYPE_224 + VVV_0, // META_TILE_TYPE_225 #ifdef EU -VVV_0, // META_TILE_TYPE_226 + VVV_0, // META_TILE_TYPE_226 #else -VVV_41, // META_TILE_TYPE_226 + VVV_41, // META_TILE_TYPE_226 #endif -VVV_0, // META_TILE_TYPE_227 -VVV_0, // META_TILE_TYPE_228 + VVV_0, // META_TILE_TYPE_227 + VVV_0, // META_TILE_TYPE_228 #ifdef EU -VVV_0, // META_TILE_TYPE_229 + VVV_0, // META_TILE_TYPE_229 #else -VVV_41, // META_TILE_TYPE_229 + VVV_41, // META_TILE_TYPE_229 #endif -VVV_40, // META_TILE_TYPE_230 -VVV_0, // META_TILE_TYPE_231 -VVV_44, // META_TILE_TYPE_232 -VVV_44, // META_TILE_TYPE_233 -VVV_44, // META_TILE_TYPE_234 -VVV_0, // META_TILE_TYPE_235 -VVV_46, // META_TILE_TYPE_236 -VVV_0, // META_TILE_TYPE_237 -VVV_0, // META_TILE_TYPE_238 -VVV_0, // META_TILE_TYPE_239 -VVV_0, // META_TILE_TYPE_240 -VVV_0, // META_TILE_TYPE_241 + VVV_40, // META_TILE_TYPE_230 + VVV_0, // META_TILE_TYPE_231 + VVV_44, // META_TILE_TYPE_232 + VVV_44, // META_TILE_TYPE_233 + VVV_44, // META_TILE_TYPE_234 + VVV_0, // META_TILE_TYPE_235 + VVV_46, // META_TILE_TYPE_236 + VVV_0, // META_TILE_TYPE_237 + VVV_0, // META_TILE_TYPE_238 + VVV_0, // META_TILE_TYPE_239 + VVV_0, // META_TILE_TYPE_240 + VVV_0, // META_TILE_TYPE_241 #ifdef EU -VVV_0, // META_TILE_TYPE_242 + VVV_0, // META_TILE_TYPE_242 #else -VVV_41, // META_TILE_TYPE_242 + VVV_41, // META_TILE_TYPE_242 #endif -VVV_40, // META_TILE_TYPE_243 -VVV_0, // META_TILE_TYPE_244 -VVV_0, // META_TILE_TYPE_245 + VVV_40, // META_TILE_TYPE_243 + VVV_0, // META_TILE_TYPE_244 + VVV_0, // META_TILE_TYPE_245 #ifdef EU -VVV_0, // META_TILE_TYPE_246 + VVV_0, // META_TILE_TYPE_246 #else -VVV_41, // META_TILE_TYPE_246 + VVV_41, // META_TILE_TYPE_246 #endif -VVV_0, // META_TILE_TYPE_247 -VVV_45, // META_TILE_TYPE_248 -VVV_45, // META_TILE_TYPE_249 -VVV_45, // META_TILE_TYPE_250 -VVV_0, // META_TILE_TYPE_251 -VVV_0, // META_TILE_TYPE_252 -VVV_0, // META_TILE_TYPE_253 -VVV_0, // META_TILE_TYPE_254 -VVV_46, // META_TILE_TYPE_255 -VVV_0, // META_TILE_TYPE_256 -VVV_0, // META_TILE_TYPE_257 -VVV_0, // META_TILE_TYPE_258 -VVV_0, // META_TILE_TYPE_259 -VVV_0, // META_TILE_TYPE_260 -VVV_46, // META_TILE_TYPE_261 -VVV_0, // META_TILE_TYPE_262 -VVV_0, // META_TILE_TYPE_263 -VVV_46, // META_TILE_TYPE_264 -VVV_0, // META_TILE_TYPE_265 -VVV_0, // META_TILE_TYPE_266 -VVV_0, // META_TILE_TYPE_267 -VVV_0, // META_TILE_TYPE_268 -VVV_0, // META_TILE_TYPE_269 -VVV_0, // META_TILE_TYPE_270 -VVV_0, // META_TILE_TYPE_271 -VVV_46, // META_TILE_TYPE_272 -VVV_0, // META_TILE_TYPE_273 -VVV_0, // META_TILE_TYPE_274 -VVV_0, // META_TILE_TYPE_275 -VVV_0, // META_TILE_TYPE_276 -VVV_46, // META_TILE_TYPE_277 -VVV_0, // META_TILE_TYPE_278 -VVV_0, // META_TILE_TYPE_279 -VVV_0, // META_TILE_TYPE_280 -VVV_0, // META_TILE_TYPE_281 -VVV_0, // META_TILE_TYPE_282 -VVV_0, // META_TILE_TYPE_283 -VVV_0, // META_TILE_TYPE_284 -VVV_0, // META_TILE_TYPE_285 -VVV_0, // META_TILE_TYPE_286 -VVV_0, // META_TILE_TYPE_287 -VVV_0, // META_TILE_TYPE_288 -VVV_0, // META_TILE_TYPE_289 -VVV_0, // META_TILE_TYPE_290 -VVV_0, // META_TILE_TYPE_291 -VVV_0, // META_TILE_TYPE_292 -VVV_0, // META_TILE_TYPE_293 -VVV_0, // META_TILE_TYPE_294 -VVV_0, // META_TILE_TYPE_295 -VVV_0, // META_TILE_TYPE_296 -VVV_0, // META_TILE_TYPE_297 -VVV_0, // META_TILE_TYPE_298 -VVV_0, // META_TILE_TYPE_299 -VVV_0, // META_TILE_TYPE_300 -VVV_0, // META_TILE_TYPE_301 -VVV_0, // META_TILE_TYPE_302 -VVV_0, // META_TILE_TYPE_303 -VVV_0, // META_TILE_TYPE_304 -VVV_0, // META_TILE_TYPE_305 -VVV_0, // META_TILE_TYPE_306 -VVV_0, // META_TILE_TYPE_307 -VVV_0, // META_TILE_TYPE_308 -VVV_0, // META_TILE_TYPE_309 -VVV_0, // META_TILE_TYPE_310 -VVV_0, // META_TILE_TYPE_311 -VVV_0, // META_TILE_TYPE_312 -VVV_0, // META_TILE_TYPE_313 -VVV_0, // META_TILE_TYPE_314 -VVV_0, // META_TILE_TYPE_315 -VVV_0, // META_TILE_TYPE_316 -VVV_0, // META_TILE_TYPE_317 -VVV_0, // META_TILE_TYPE_318 -VVV_0, // META_TILE_TYPE_319 -VVV_0, // META_TILE_TYPE_320 -VVV_0, // META_TILE_TYPE_321 -VVV_0, // META_TILE_TYPE_322 -VVV_0, // META_TILE_TYPE_323 -VVV_0, // META_TILE_TYPE_324 -VVV_0, // META_TILE_TYPE_325 -VVV_0, // META_TILE_TYPE_326 -VVV_0, // META_TILE_TYPE_327 -VVV_0, // META_TILE_TYPE_328 -VVV_0, // META_TILE_TYPE_329 -VVV_0, // META_TILE_TYPE_330 -VVV_0, // META_TILE_TYPE_331 -VVV_0, // META_TILE_TYPE_332 -VVV_0, // META_TILE_TYPE_333 -VVV_0, // META_TILE_TYPE_334 -VVV_0, // META_TILE_TYPE_335 -VVV_0, // META_TILE_TYPE_336 -VVV_0, // META_TILE_TYPE_337 -VVV_0, // META_TILE_TYPE_338 -VVV_0, // META_TILE_TYPE_339 -VVV_0, // META_TILE_TYPE_340 -VVV_0, // META_TILE_TYPE_341 -VVV_0, // META_TILE_TYPE_342 -VVV_0, // META_TILE_TYPE_343 -VVV_0, // META_TILE_TYPE_344 -VVV_0, // META_TILE_TYPE_345 -VVV_0, // META_TILE_TYPE_346 -VVV_0, // META_TILE_TYPE_347 -VVV_0, // META_TILE_TYPE_348 -VVV_0, // META_TILE_TYPE_349 -VVV_0, // META_TILE_TYPE_350 -VVV_0, // META_TILE_TYPE_351 -VVV_0, // META_TILE_TYPE_352 -VVV_47, // META_TILE_TYPE_353 -VVV_47, // META_TILE_TYPE_354 -VVV_47, // META_TILE_TYPE_355 -VVV_0, // META_TILE_TYPE_356 -VVV_0, // META_TILE_TYPE_357 -VVV_40, // META_TILE_TYPE_358 -VVV_0, // META_TILE_TYPE_359 -VVV_40, // META_TILE_TYPE_360 -VVV_48, // META_TILE_TYPE_361 -VVV_49, // META_TILE_TYPE_362 -VVV_50, // META_TILE_TYPE_363 -VVV_51, // META_TILE_TYPE_364 -VVV_52, // META_TILE_TYPE_365 -VVV_52, // META_TILE_TYPE_366 -VVV_53, // META_TILE_TYPE_367 -VVV_53, // META_TILE_TYPE_368 -VVV_54, // META_TILE_TYPE_369 -VVV_55, // META_TILE_TYPE_370 -VVV_0, // META_TILE_TYPE_371 -VVV_56, // META_TILE_TYPE_372 -VVV_57, // META_TILE_TYPE_373 -VVV_58, // META_TILE_TYPE_374 -VVV_59, // META_TILE_TYPE_375 -VVV_0, // META_TILE_TYPE_376 -VVV_0, // META_TILE_TYPE_377 -VVV_60, // META_TILE_TYPE_378 -VVV_60, // META_TILE_TYPE_379 -VVV_60, // META_TILE_TYPE_380 -VVV_60, // META_TILE_TYPE_381 -VVV_0, // META_TILE_TYPE_382 -VVV_0, // META_TILE_TYPE_383 -VVV_0, // META_TILE_TYPE_384 -VVV_0, // META_TILE_TYPE_385 -VVV_61, // META_TILE_TYPE_386 -VVV_61, // META_TILE_TYPE_387 -VVV_62, // META_TILE_TYPE_388 -VVV_9, // META_TILE_TYPE_389 -VVV_9, // META_TILE_TYPE_390 -VVV_9, // META_TILE_TYPE_391 -VVV_9, // META_TILE_TYPE_392 -VVV_9, // META_TILE_TYPE_393 -VVV_9, // META_TILE_TYPE_394 -VVV_61, // META_TILE_TYPE_395 -VVV_61, // META_TILE_TYPE_396 -VVV_61, // META_TILE_TYPE_397 -VVV_9, // META_TILE_TYPE_398 -VVV_9, // META_TILE_TYPE_399 -VVV_61, // META_TILE_TYPE_400 -VVV_61, // META_TILE_TYPE_401 -VVV_61, // META_TILE_TYPE_402 -VVV_9, // META_TILE_TYPE_403 -VVV_9, // META_TILE_TYPE_404 -VVV_9, // META_TILE_TYPE_405 -VVV_9, // META_TILE_TYPE_406 -VVV_9, // META_TILE_TYPE_407 -VVV_9, // META_TILE_TYPE_408 -VVV_0, // META_TILE_TYPE_409 -VVV_0, // META_TILE_TYPE_410 -VVV_0, // META_TILE_TYPE_411 -VVV_0, // META_TILE_TYPE_412 -VVV_63, // META_TILE_TYPE_413 -VVV_0, // META_TILE_TYPE_414 -VVV_0, // META_TILE_TYPE_415 -VVV_0, // META_TILE_TYPE_416 -VVV_0, // META_TILE_TYPE_417 -VVV_0, // META_TILE_TYPE_418 -VVV_0, // META_TILE_TYPE_419 -VVV_0, // META_TILE_TYPE_420 -VVV_0, // META_TILE_TYPE_421 -VVV_63, // META_TILE_TYPE_422 -VVV_0, // META_TILE_TYPE_423 -VVV_0, // META_TILE_TYPE_424 -VVV_0, // META_TILE_TYPE_425 -VVV_0, // META_TILE_TYPE_426 -VVV_0, // META_TILE_TYPE_427 -VVV_42, // META_TILE_TYPE_428 -VVV_43, // META_TILE_TYPE_429 -VVV_44, // META_TILE_TYPE_430 -VVV_45, // META_TILE_TYPE_431 -VVV_0, // META_TILE_TYPE_432 -VVV_0, // META_TILE_TYPE_433 -VVV_0, // META_TILE_TYPE_434 -VVV_0, // META_TILE_TYPE_435 -VVV_64, // META_TILE_TYPE_436 -VVV_65, // META_TILE_TYPE_437 -VVV_66, // META_TILE_TYPE_438 -VVV_67, // META_TILE_TYPE_439 -VVV_68, // META_TILE_TYPE_440 -VVV_69, // META_TILE_TYPE_441 -VVV_70, // META_TILE_TYPE_442 -VVV_71, // META_TILE_TYPE_443 -VVV_72, // META_TILE_TYPE_444 -VVV_73, // META_TILE_TYPE_445 -VVV_74, // META_TILE_TYPE_446 -VVV_75, // META_TILE_TYPE_447 -VVV_76, // META_TILE_TYPE_448 -VVV_77, // META_TILE_TYPE_449 -VVV_78, // META_TILE_TYPE_450 -VVV_79, // META_TILE_TYPE_451 -VVV_80, // META_TILE_TYPE_452 -VVV_81, // META_TILE_TYPE_453 -VVV_82, // META_TILE_TYPE_454 -VVV_83, // META_TILE_TYPE_455 -VVV_63, // META_TILE_TYPE_456 -VVV_0, // META_TILE_TYPE_457 -VVV_63, // META_TILE_TYPE_458 -VVV_83, // META_TILE_TYPE_459 -VVV_83, // META_TILE_TYPE_460 -VVV_0, // META_TILE_TYPE_461 -VVV_0, // META_TILE_TYPE_462 -VVV_43, // META_TILE_TYPE_463 -VVV_43, // META_TILE_TYPE_464 -VVV_43, // META_TILE_TYPE_465 -VVV_0, // META_TILE_TYPE_466 -VVV_21, // META_TILE_TYPE_467 -VVV_21, // META_TILE_TYPE_468 -VVV_21, // META_TILE_TYPE_469 -VVV_21, // META_TILE_TYPE_470 -VVV_0, // META_TILE_TYPE_471 -VVV_0, // META_TILE_TYPE_472 -VVV_0, // META_TILE_TYPE_473 -VVV_0, // META_TILE_TYPE_474 -VVV_0, // META_TILE_TYPE_475 -VVV_0, // META_TILE_TYPE_476 -VVV_0, // META_TILE_TYPE_477 -VVV_0, // META_TILE_TYPE_478 -VVV_0, // META_TILE_TYPE_479 -VVV_0, // META_TILE_TYPE_480 -VVV_0, // META_TILE_TYPE_481 -VVV_0, // META_TILE_TYPE_482 -VVV_0, // META_TILE_TYPE_483 -VVV_0, // META_TILE_TYPE_484 -VVV_0, // META_TILE_TYPE_485 -VVV_0, // META_TILE_TYPE_486 -VVV_84, // META_TILE_TYPE_487 -VVV_0, // META_TILE_TYPE_488 -VVV_0, // META_TILE_TYPE_489 -VVV_0, // META_TILE_TYPE_490 -VVV_0, // META_TILE_TYPE_491 -VVV_0, // META_TILE_TYPE_492 -VVV_0, // META_TILE_TYPE_493 -VVV_0, // META_TILE_TYPE_494 -VVV_0, // META_TILE_TYPE_495 -VVV_0, // META_TILE_TYPE_496 -VVV_0, // META_TILE_TYPE_497 -VVV_0, // META_TILE_TYPE_498 -VVV_0, // META_TILE_TYPE_499 -VVV_0, // META_TILE_TYPE_500 -VVV_0, // META_TILE_TYPE_501 -VVV_0, // META_TILE_TYPE_502 -VVV_0, // META_TILE_TYPE_503 -VVV_0, // META_TILE_TYPE_504 -VVV_0, // META_TILE_TYPE_505 -VVV_0, // META_TILE_TYPE_506 -VVV_0, // META_TILE_TYPE_507 -VVV_0, // META_TILE_TYPE_508 -VVV_0, // META_TILE_TYPE_509 -VVV_0, // META_TILE_TYPE_510 -VVV_0, // META_TILE_TYPE_511 -VVV_0, // META_TILE_TYPE_512 -VVV_0, // META_TILE_TYPE_513 -VVV_0, // META_TILE_TYPE_514 -VVV_0, // META_TILE_TYPE_515 -VVV_0, // META_TILE_TYPE_516 -VVV_0, // META_TILE_TYPE_517 -VVV_0, // META_TILE_TYPE_518 -VVV_0, // META_TILE_TYPE_519 -VVV_0, // META_TILE_TYPE_520 -VVV_0, // META_TILE_TYPE_521 -VVV_0, // META_TILE_TYPE_522 -VVV_0, // META_TILE_TYPE_523 -VVV_40, // META_TILE_TYPE_524 -VVV_0, // META_TILE_TYPE_525 -VVV_0, // META_TILE_TYPE_526 -VVV_0, // META_TILE_TYPE_527 -VVV_0, // META_TILE_TYPE_528 -VVV_0, // META_TILE_TYPE_529 -VVV_0, // META_TILE_TYPE_530 -VVV_0, // META_TILE_TYPE_531 -VVV_0, // META_TILE_TYPE_532 -VVV_0, // META_TILE_TYPE_533 -VVV_0, // META_TILE_TYPE_534 -VVV_0, // META_TILE_TYPE_535 -VVV_0, // META_TILE_TYPE_536 -VVV_0, // META_TILE_TYPE_537 -VVV_0, // META_TILE_TYPE_538 -VVV_0, // META_TILE_TYPE_539 -VVV_0, // META_TILE_TYPE_540 -VVV_0, // META_TILE_TYPE_541 -VVV_0, // META_TILE_TYPE_542 -VVV_0, // META_TILE_TYPE_543 -VVV_0, // META_TILE_TYPE_544 -VVV_0, // META_TILE_TYPE_545 -VVV_0, // META_TILE_TYPE_546 -VVV_0, // META_TILE_TYPE_547 -VVV_0, // META_TILE_TYPE_548 -VVV_40, // META_TILE_TYPE_549 -VVV_0, // META_TILE_TYPE_550 -VVV_0, // META_TILE_TYPE_551 -VVV_0, // META_TILE_TYPE_552 -VVV_0, // META_TILE_TYPE_553 -VVV_0, // META_TILE_TYPE_554 -VVV_0, // META_TILE_TYPE_555 -VVV_0, // META_TILE_TYPE_556 -VVV_0, // META_TILE_TYPE_557 -VVV_0, // META_TILE_TYPE_558 -VVV_0, // META_TILE_TYPE_559 -VVV_0, // META_TILE_TYPE_560 -VVV_0, // META_TILE_TYPE_561 -VVV_16, // META_TILE_TYPE_562 -VVV_16, // META_TILE_TYPE_563 -VVV_16, // META_TILE_TYPE_564 -VVV_16, // META_TILE_TYPE_565 -VVV_16, // META_TILE_TYPE_566 -VVV_16, // META_TILE_TYPE_567 -VVV_16, // META_TILE_TYPE_568 -VVV_16, // META_TILE_TYPE_569 -VVV_16, // META_TILE_TYPE_570 -VVV_16, // META_TILE_TYPE_571 -VVV_16, // META_TILE_TYPE_572 -VVV_16, // META_TILE_TYPE_573 -VVV_16, // META_TILE_TYPE_574 -VVV_16, // META_TILE_TYPE_575 -VVV_16, // META_TILE_TYPE_576 -VVV_16, // META_TILE_TYPE_577 -VVV_16, // META_TILE_TYPE_578 -VVV_16, // META_TILE_TYPE_579 -VVV_16, // META_TILE_TYPE_580 -VVV_16, // META_TILE_TYPE_581 -VVV_16, // META_TILE_TYPE_582 -VVV_16, // META_TILE_TYPE_583 -VVV_16, // META_TILE_TYPE_584 -VVV_16, // META_TILE_TYPE_585 -VVV_16, // META_TILE_TYPE_586 -VVV_16, // META_TILE_TYPE_587 -VVV_16, // META_TILE_TYPE_588 -VVV_16, // META_TILE_TYPE_589 -VVV_85, // META_TILE_TYPE_590 -VVV_85, // META_TILE_TYPE_591 -VVV_85, // META_TILE_TYPE_592 -VVV_85, // META_TILE_TYPE_593 -VVV_85, // META_TILE_TYPE_594 -VVV_85, // META_TILE_TYPE_595 -VVV_85, // META_TILE_TYPE_596 -VVV_85, // META_TILE_TYPE_597 -VVV_85, // META_TILE_TYPE_598 -VVV_0, // META_TILE_TYPE_599 -VVV_0, // META_TILE_TYPE_600 -VVV_0, // META_TILE_TYPE_601 -VVV_0, // META_TILE_TYPE_602 -VVV_0, // META_TILE_TYPE_603 -VVV_0, // META_TILE_TYPE_604 -VVV_0, // META_TILE_TYPE_605 -VVV_0, // META_TILE_TYPE_606 -VVV_0, // META_TILE_TYPE_607 -VVV_0, // META_TILE_TYPE_608 -VVV_0, // META_TILE_TYPE_609 -VVV_9, // META_TILE_TYPE_610 -VVV_9, // META_TILE_TYPE_611 -VVV_0, // META_TILE_TYPE_612 -VVV_0, // META_TILE_TYPE_613 -VVV_0, // META_TILE_TYPE_614 -VVV_86, // META_TILE_TYPE_615 -VVV_0, // META_TILE_TYPE_616 -VVV_0, // META_TILE_TYPE_617 -VVV_86, // META_TILE_TYPE_618 -VVV_0, // META_TILE_TYPE_619 -VVV_0, // META_TILE_TYPE_620 -VVV_41, // META_TILE_TYPE_621 -VVV_0, // META_TILE_TYPE_622 -VVV_0, // META_TILE_TYPE_623 -VVV_41, // META_TILE_TYPE_624 -VVV_40, // META_TILE_TYPE_625 -VVV_0, // META_TILE_TYPE_626 -VVV_0, // META_TILE_TYPE_627 -VVV_0, // META_TILE_TYPE_628 -VVV_0, // META_TILE_TYPE_629 -VVV_0, // META_TILE_TYPE_630 -VVV_86, // META_TILE_TYPE_631 -VVV_0, // META_TILE_TYPE_632 -VVV_0, // META_TILE_TYPE_633 -VVV_86, // META_TILE_TYPE_634 -VVV_0, // META_TILE_TYPE_635 -VVV_0, // META_TILE_TYPE_636 -VVV_41, // META_TILE_TYPE_637 -VVV_0, // META_TILE_TYPE_638 -VVV_0, // META_TILE_TYPE_639 -VVV_41, // META_TILE_TYPE_640 -VVV_40, // META_TILE_TYPE_641 -VVV_0, // META_TILE_TYPE_642 -VVV_0, // META_TILE_TYPE_643 -VVV_0, // META_TILE_TYPE_644 -VVV_0, // META_TILE_TYPE_645 -VVV_0, // META_TILE_TYPE_646 -VVV_86, // META_TILE_TYPE_647 -VVV_0, // META_TILE_TYPE_648 -VVV_0, // META_TILE_TYPE_649 -VVV_86, // META_TILE_TYPE_650 -VVV_0, // META_TILE_TYPE_651 -VVV_0, // META_TILE_TYPE_652 + VVV_0, // META_TILE_TYPE_247 + VVV_45, // META_TILE_TYPE_248 + VVV_45, // META_TILE_TYPE_249 + VVV_45, // META_TILE_TYPE_250 + VVV_0, // META_TILE_TYPE_251 + VVV_0, // META_TILE_TYPE_252 + VVV_0, // META_TILE_TYPE_253 + VVV_0, // META_TILE_TYPE_254 + VVV_46, // META_TILE_TYPE_255 + VVV_0, // META_TILE_TYPE_256 + VVV_0, // META_TILE_TYPE_257 + VVV_0, // META_TILE_TYPE_258 + VVV_0, // META_TILE_TYPE_259 + VVV_0, // META_TILE_TYPE_260 + VVV_46, // META_TILE_TYPE_261 + VVV_0, // META_TILE_TYPE_262 + VVV_0, // META_TILE_TYPE_263 + VVV_46, // META_TILE_TYPE_264 + VVV_0, // META_TILE_TYPE_265 + VVV_0, // META_TILE_TYPE_266 + VVV_0, // META_TILE_TYPE_267 + VVV_0, // META_TILE_TYPE_268 + VVV_0, // META_TILE_TYPE_269 + VVV_0, // META_TILE_TYPE_270 + VVV_0, // META_TILE_TYPE_271 + VVV_46, // META_TILE_TYPE_272 + VVV_0, // META_TILE_TYPE_273 + VVV_0, // META_TILE_TYPE_274 + VVV_0, // META_TILE_TYPE_275 + VVV_0, // META_TILE_TYPE_276 + VVV_46, // META_TILE_TYPE_277 + VVV_0, // META_TILE_TYPE_278 + VVV_0, // META_TILE_TYPE_279 + VVV_0, // META_TILE_TYPE_280 + VVV_0, // META_TILE_TYPE_281 + VVV_0, // META_TILE_TYPE_282 + VVV_0, // META_TILE_TYPE_283 + VVV_0, // META_TILE_TYPE_284 + VVV_0, // META_TILE_TYPE_285 + VVV_0, // META_TILE_TYPE_286 + VVV_0, // META_TILE_TYPE_287 + VVV_0, // META_TILE_TYPE_288 + VVV_0, // META_TILE_TYPE_289 + VVV_0, // META_TILE_TYPE_290 + VVV_0, // META_TILE_TYPE_291 + VVV_0, // META_TILE_TYPE_292 + VVV_0, // META_TILE_TYPE_293 + VVV_0, // META_TILE_TYPE_294 + VVV_0, // META_TILE_TYPE_295 + VVV_0, // META_TILE_TYPE_296 + VVV_0, // META_TILE_TYPE_297 + VVV_0, // META_TILE_TYPE_298 + VVV_0, // META_TILE_TYPE_299 + VVV_0, // META_TILE_TYPE_300 + VVV_0, // META_TILE_TYPE_301 + VVV_0, // META_TILE_TYPE_302 + VVV_0, // META_TILE_TYPE_303 + VVV_0, // META_TILE_TYPE_304 + VVV_0, // META_TILE_TYPE_305 + VVV_0, // META_TILE_TYPE_306 + VVV_0, // META_TILE_TYPE_307 + VVV_0, // META_TILE_TYPE_308 + VVV_0, // META_TILE_TYPE_309 + VVV_0, // META_TILE_TYPE_310 + VVV_0, // META_TILE_TYPE_311 + VVV_0, // META_TILE_TYPE_312 + VVV_0, // META_TILE_TYPE_313 + VVV_0, // META_TILE_TYPE_314 + VVV_0, // META_TILE_TYPE_315 + VVV_0, // META_TILE_TYPE_316 + VVV_0, // META_TILE_TYPE_317 + VVV_0, // META_TILE_TYPE_318 + VVV_0, // META_TILE_TYPE_319 + VVV_0, // META_TILE_TYPE_320 + VVV_0, // META_TILE_TYPE_321 + VVV_0, // META_TILE_TYPE_322 + VVV_0, // META_TILE_TYPE_323 + VVV_0, // META_TILE_TYPE_324 + VVV_0, // META_TILE_TYPE_325 + VVV_0, // META_TILE_TYPE_326 + VVV_0, // META_TILE_TYPE_327 + VVV_0, // META_TILE_TYPE_328 + VVV_0, // META_TILE_TYPE_329 + VVV_0, // META_TILE_TYPE_330 + VVV_0, // META_TILE_TYPE_331 + VVV_0, // META_TILE_TYPE_332 + VVV_0, // META_TILE_TYPE_333 + VVV_0, // META_TILE_TYPE_334 + VVV_0, // META_TILE_TYPE_335 + VVV_0, // META_TILE_TYPE_336 + VVV_0, // META_TILE_TYPE_337 + VVV_0, // META_TILE_TYPE_338 + VVV_0, // META_TILE_TYPE_339 + VVV_0, // META_TILE_TYPE_340 + VVV_0, // META_TILE_TYPE_341 + VVV_0, // META_TILE_TYPE_342 + VVV_0, // META_TILE_TYPE_343 + VVV_0, // META_TILE_TYPE_344 + VVV_0, // META_TILE_TYPE_345 + VVV_0, // META_TILE_TYPE_346 + VVV_0, // META_TILE_TYPE_347 + VVV_0, // META_TILE_TYPE_348 + VVV_0, // META_TILE_TYPE_349 + VVV_0, // META_TILE_TYPE_350 + VVV_0, // META_TILE_TYPE_351 + VVV_0, // META_TILE_TYPE_352 + VVV_47, // META_TILE_TYPE_353 + VVV_47, // META_TILE_TYPE_354 + VVV_47, // META_TILE_TYPE_355 + VVV_0, // META_TILE_TYPE_356 + VVV_0, // META_TILE_TYPE_357 + VVV_40, // META_TILE_TYPE_358 + VVV_0, // META_TILE_TYPE_359 + VVV_40, // META_TILE_TYPE_360 + VVV_48, // META_TILE_TYPE_361 + VVV_49, // META_TILE_TYPE_362 + VVV_50, // META_TILE_TYPE_363 + VVV_51, // META_TILE_TYPE_364 + VVV_52, // META_TILE_TYPE_365 + VVV_52, // META_TILE_TYPE_366 + VVV_53, // META_TILE_TYPE_367 + VVV_53, // META_TILE_TYPE_368 + VVV_54, // META_TILE_TYPE_369 + VVV_55, // META_TILE_TYPE_370 + VVV_0, // META_TILE_TYPE_371 + VVV_56, // META_TILE_TYPE_372 + VVV_57, // META_TILE_TYPE_373 + VVV_58, // META_TILE_TYPE_374 + VVV_59, // META_TILE_TYPE_375 + VVV_0, // META_TILE_TYPE_376 + VVV_0, // META_TILE_TYPE_377 + VVV_60, // META_TILE_TYPE_378 + VVV_60, // META_TILE_TYPE_379 + VVV_60, // META_TILE_TYPE_380 + VVV_60, // META_TILE_TYPE_381 + VVV_0, // META_TILE_TYPE_382 + VVV_0, // META_TILE_TYPE_383 + VVV_0, // META_TILE_TYPE_384 + VVV_0, // META_TILE_TYPE_385 + VVV_61, // META_TILE_TYPE_386 + VVV_61, // META_TILE_TYPE_387 + VVV_62, // META_TILE_TYPE_388 + VVV_9, // META_TILE_TYPE_389 + VVV_9, // META_TILE_TYPE_390 + VVV_9, // META_TILE_TYPE_391 + VVV_9, // META_TILE_TYPE_392 + VVV_9, // META_TILE_TYPE_393 + VVV_9, // META_TILE_TYPE_394 + VVV_61, // META_TILE_TYPE_395 + VVV_61, // META_TILE_TYPE_396 + VVV_61, // META_TILE_TYPE_397 + VVV_9, // META_TILE_TYPE_398 + VVV_9, // META_TILE_TYPE_399 + VVV_61, // META_TILE_TYPE_400 + VVV_61, // META_TILE_TYPE_401 + VVV_61, // META_TILE_TYPE_402 + VVV_9, // META_TILE_TYPE_403 + VVV_9, // META_TILE_TYPE_404 + VVV_9, // META_TILE_TYPE_405 + VVV_9, // META_TILE_TYPE_406 + VVV_9, // META_TILE_TYPE_407 + VVV_9, // META_TILE_TYPE_408 + VVV_0, // META_TILE_TYPE_409 + VVV_0, // META_TILE_TYPE_410 + VVV_0, // META_TILE_TYPE_411 + VVV_0, // META_TILE_TYPE_412 + VVV_63, // META_TILE_TYPE_413 + VVV_0, // META_TILE_TYPE_414 + VVV_0, // META_TILE_TYPE_415 + VVV_0, // META_TILE_TYPE_416 + VVV_0, // META_TILE_TYPE_417 + VVV_0, // META_TILE_TYPE_418 + VVV_0, // META_TILE_TYPE_419 + VVV_0, // META_TILE_TYPE_420 + VVV_0, // META_TILE_TYPE_421 + VVV_63, // META_TILE_TYPE_422 + VVV_0, // META_TILE_TYPE_423 + VVV_0, // META_TILE_TYPE_424 + VVV_0, // META_TILE_TYPE_425 + VVV_0, // META_TILE_TYPE_426 + VVV_0, // META_TILE_TYPE_427 + VVV_42, // META_TILE_TYPE_428 + VVV_43, // META_TILE_TYPE_429 + VVV_44, // META_TILE_TYPE_430 + VVV_45, // META_TILE_TYPE_431 + VVV_0, // META_TILE_TYPE_432 + VVV_0, // META_TILE_TYPE_433 + VVV_0, // META_TILE_TYPE_434 + VVV_0, // META_TILE_TYPE_435 + VVV_64, // META_TILE_TYPE_436 + VVV_65, // META_TILE_TYPE_437 + VVV_66, // META_TILE_TYPE_438 + VVV_67, // META_TILE_TYPE_439 + VVV_68, // META_TILE_TYPE_440 + VVV_69, // META_TILE_TYPE_441 + VVV_70, // META_TILE_TYPE_442 + VVV_71, // META_TILE_TYPE_443 + VVV_72, // META_TILE_TYPE_444 + VVV_73, // META_TILE_TYPE_445 + VVV_74, // META_TILE_TYPE_446 + VVV_75, // META_TILE_TYPE_447 + VVV_76, // META_TILE_TYPE_448 + VVV_77, // META_TILE_TYPE_449 + VVV_78, // META_TILE_TYPE_450 + VVV_79, // META_TILE_TYPE_451 + VVV_80, // META_TILE_TYPE_452 + VVV_81, // META_TILE_TYPE_453 + VVV_82, // META_TILE_TYPE_454 + VVV_83, // META_TILE_TYPE_455 + VVV_63, // META_TILE_TYPE_456 + VVV_0, // META_TILE_TYPE_457 + VVV_63, // META_TILE_TYPE_458 + VVV_83, // META_TILE_TYPE_459 + VVV_83, // META_TILE_TYPE_460 + VVV_0, // META_TILE_TYPE_461 + VVV_0, // META_TILE_TYPE_462 + VVV_43, // META_TILE_TYPE_463 + VVV_43, // META_TILE_TYPE_464 + VVV_43, // META_TILE_TYPE_465 + VVV_0, // META_TILE_TYPE_466 + VVV_21, // META_TILE_TYPE_467 + VVV_21, // META_TILE_TYPE_468 + VVV_21, // META_TILE_TYPE_469 + VVV_21, // META_TILE_TYPE_470 + VVV_0, // META_TILE_TYPE_471 + VVV_0, // META_TILE_TYPE_472 + VVV_0, // META_TILE_TYPE_473 + VVV_0, // META_TILE_TYPE_474 + VVV_0, // META_TILE_TYPE_475 + VVV_0, // META_TILE_TYPE_476 + VVV_0, // META_TILE_TYPE_477 + VVV_0, // META_TILE_TYPE_478 + VVV_0, // META_TILE_TYPE_479 + VVV_0, // META_TILE_TYPE_480 + VVV_0, // META_TILE_TYPE_481 + VVV_0, // META_TILE_TYPE_482 + VVV_0, // META_TILE_TYPE_483 + VVV_0, // META_TILE_TYPE_484 + VVV_0, // META_TILE_TYPE_485 + VVV_0, // META_TILE_TYPE_486 + VVV_84, // META_TILE_TYPE_487 + VVV_0, // META_TILE_TYPE_488 + VVV_0, // META_TILE_TYPE_489 + VVV_0, // META_TILE_TYPE_490 + VVV_0, // META_TILE_TYPE_491 + VVV_0, // META_TILE_TYPE_492 + VVV_0, // META_TILE_TYPE_493 + VVV_0, // META_TILE_TYPE_494 + VVV_0, // META_TILE_TYPE_495 + VVV_0, // META_TILE_TYPE_496 + VVV_0, // META_TILE_TYPE_497 + VVV_0, // META_TILE_TYPE_498 + VVV_0, // META_TILE_TYPE_499 + VVV_0, // META_TILE_TYPE_500 + VVV_0, // META_TILE_TYPE_501 + VVV_0, // META_TILE_TYPE_502 + VVV_0, // META_TILE_TYPE_503 + VVV_0, // META_TILE_TYPE_504 + VVV_0, // META_TILE_TYPE_505 + VVV_0, // META_TILE_TYPE_506 + VVV_0, // META_TILE_TYPE_507 + VVV_0, // META_TILE_TYPE_508 + VVV_0, // META_TILE_TYPE_509 + VVV_0, // META_TILE_TYPE_510 + VVV_0, // META_TILE_TYPE_511 + VVV_0, // META_TILE_TYPE_512 + VVV_0, // META_TILE_TYPE_513 + VVV_0, // META_TILE_TYPE_514 + VVV_0, // META_TILE_TYPE_515 + VVV_0, // META_TILE_TYPE_516 + VVV_0, // META_TILE_TYPE_517 + VVV_0, // META_TILE_TYPE_518 + VVV_0, // META_TILE_TYPE_519 + VVV_0, // META_TILE_TYPE_520 + VVV_0, // META_TILE_TYPE_521 + VVV_0, // META_TILE_TYPE_522 + VVV_0, // META_TILE_TYPE_523 + VVV_40, // META_TILE_TYPE_524 + VVV_0, // META_TILE_TYPE_525 + VVV_0, // META_TILE_TYPE_526 + VVV_0, // META_TILE_TYPE_527 + VVV_0, // META_TILE_TYPE_528 + VVV_0, // META_TILE_TYPE_529 + VVV_0, // META_TILE_TYPE_530 + VVV_0, // META_TILE_TYPE_531 + VVV_0, // META_TILE_TYPE_532 + VVV_0, // META_TILE_TYPE_533 + VVV_0, // META_TILE_TYPE_534 + VVV_0, // META_TILE_TYPE_535 + VVV_0, // META_TILE_TYPE_536 + VVV_0, // META_TILE_TYPE_537 + VVV_0, // META_TILE_TYPE_538 + VVV_0, // META_TILE_TYPE_539 + VVV_0, // META_TILE_TYPE_540 + VVV_0, // META_TILE_TYPE_541 + VVV_0, // META_TILE_TYPE_542 + VVV_0, // META_TILE_TYPE_543 + VVV_0, // META_TILE_TYPE_544 + VVV_0, // META_TILE_TYPE_545 + VVV_0, // META_TILE_TYPE_546 + VVV_0, // META_TILE_TYPE_547 + VVV_0, // META_TILE_TYPE_548 + VVV_40, // META_TILE_TYPE_549 + VVV_0, // META_TILE_TYPE_550 + VVV_0, // META_TILE_TYPE_551 + VVV_0, // META_TILE_TYPE_552 + VVV_0, // META_TILE_TYPE_553 + VVV_0, // META_TILE_TYPE_554 + VVV_0, // META_TILE_TYPE_555 + VVV_0, // META_TILE_TYPE_556 + VVV_0, // META_TILE_TYPE_557 + VVV_0, // META_TILE_TYPE_558 + VVV_0, // META_TILE_TYPE_559 + VVV_0, // META_TILE_TYPE_560 + VVV_0, // META_TILE_TYPE_561 + VVV_16, // META_TILE_TYPE_562 + VVV_16, // META_TILE_TYPE_563 + VVV_16, // META_TILE_TYPE_564 + VVV_16, // META_TILE_TYPE_565 + VVV_16, // META_TILE_TYPE_566 + VVV_16, // META_TILE_TYPE_567 + VVV_16, // META_TILE_TYPE_568 + VVV_16, // META_TILE_TYPE_569 + VVV_16, // META_TILE_TYPE_570 + VVV_16, // META_TILE_TYPE_571 + VVV_16, // META_TILE_TYPE_572 + VVV_16, // META_TILE_TYPE_573 + VVV_16, // META_TILE_TYPE_574 + VVV_16, // META_TILE_TYPE_575 + VVV_16, // META_TILE_TYPE_576 + VVV_16, // META_TILE_TYPE_577 + VVV_16, // META_TILE_TYPE_578 + VVV_16, // META_TILE_TYPE_579 + VVV_16, // META_TILE_TYPE_580 + VVV_16, // META_TILE_TYPE_581 + VVV_16, // META_TILE_TYPE_582 + VVV_16, // META_TILE_TYPE_583 + VVV_16, // META_TILE_TYPE_584 + VVV_16, // META_TILE_TYPE_585 + VVV_16, // META_TILE_TYPE_586 + VVV_16, // META_TILE_TYPE_587 + VVV_16, // META_TILE_TYPE_588 + VVV_16, // META_TILE_TYPE_589 + VVV_85, // META_TILE_TYPE_590 + VVV_85, // META_TILE_TYPE_591 + VVV_85, // META_TILE_TYPE_592 + VVV_85, // META_TILE_TYPE_593 + VVV_85, // META_TILE_TYPE_594 + VVV_85, // META_TILE_TYPE_595 + VVV_85, // META_TILE_TYPE_596 + VVV_85, // META_TILE_TYPE_597 + VVV_85, // META_TILE_TYPE_598 + VVV_0, // META_TILE_TYPE_599 + VVV_0, // META_TILE_TYPE_600 + VVV_0, // META_TILE_TYPE_601 + VVV_0, // META_TILE_TYPE_602 + VVV_0, // META_TILE_TYPE_603 + VVV_0, // META_TILE_TYPE_604 + VVV_0, // META_TILE_TYPE_605 + VVV_0, // META_TILE_TYPE_606 + VVV_0, // META_TILE_TYPE_607 + VVV_0, // META_TILE_TYPE_608 + VVV_0, // META_TILE_TYPE_609 + VVV_9, // META_TILE_TYPE_610 + VVV_9, // META_TILE_TYPE_611 + VVV_0, // META_TILE_TYPE_612 + VVV_0, // META_TILE_TYPE_613 + VVV_0, // META_TILE_TYPE_614 + VVV_86, // META_TILE_TYPE_615 + VVV_0, // META_TILE_TYPE_616 + VVV_0, // META_TILE_TYPE_617 + VVV_86, // META_TILE_TYPE_618 + VVV_0, // META_TILE_TYPE_619 + VVV_0, // META_TILE_TYPE_620 + VVV_41, // META_TILE_TYPE_621 + VVV_0, // META_TILE_TYPE_622 + VVV_0, // META_TILE_TYPE_623 + VVV_41, // META_TILE_TYPE_624 + VVV_40, // META_TILE_TYPE_625 + VVV_0, // META_TILE_TYPE_626 + VVV_0, // META_TILE_TYPE_627 + VVV_0, // META_TILE_TYPE_628 + VVV_0, // META_TILE_TYPE_629 + VVV_0, // META_TILE_TYPE_630 + VVV_86, // META_TILE_TYPE_631 + VVV_0, // META_TILE_TYPE_632 + VVV_0, // META_TILE_TYPE_633 + VVV_86, // META_TILE_TYPE_634 + VVV_0, // META_TILE_TYPE_635 + VVV_0, // META_TILE_TYPE_636 + VVV_41, // META_TILE_TYPE_637 + VVV_0, // META_TILE_TYPE_638 + VVV_0, // META_TILE_TYPE_639 + VVV_41, // META_TILE_TYPE_640 + VVV_40, // META_TILE_TYPE_641 + VVV_0, // META_TILE_TYPE_642 + VVV_0, // META_TILE_TYPE_643 + VVV_0, // META_TILE_TYPE_644 + VVV_0, // META_TILE_TYPE_645 + VVV_0, // META_TILE_TYPE_646 + VVV_86, // META_TILE_TYPE_647 + VVV_0, // META_TILE_TYPE_648 + VVV_0, // META_TILE_TYPE_649 + VVV_86, // META_TILE_TYPE_650 + VVV_0, // META_TILE_TYPE_651 + VVV_0, // META_TILE_TYPE_652 #ifdef EU -VVV_0, // META_TILE_TYPE_653 + VVV_0, // META_TILE_TYPE_653 #else -VVV_41, // META_TILE_TYPE_653 + VVV_41, // META_TILE_TYPE_653 #endif -VVV_0, // META_TILE_TYPE_654 -VVV_0, // META_TILE_TYPE_655 + VVV_0, // META_TILE_TYPE_654 + VVV_0, // META_TILE_TYPE_655 #ifdef EU -VVV_0, // META_TILE_TYPE_656 + VVV_0, // META_TILE_TYPE_656 #else -VVV_41, // META_TILE_TYPE_656 + VVV_41, // META_TILE_TYPE_656 #endif -VVV_40, // META_TILE_TYPE_657 -VVV_0, // META_TILE_TYPE_658 -VVV_0, // META_TILE_TYPE_659 -VVV_0, // META_TILE_TYPE_660 -VVV_0, // META_TILE_TYPE_661 -VVV_86, // META_TILE_TYPE_662 -VVV_86, // META_TILE_TYPE_663 -VVV_86, // META_TILE_TYPE_664 -VVV_86, // META_TILE_TYPE_665 -VVV_86, // META_TILE_TYPE_666 -VVV_86, // META_TILE_TYPE_667 -VVV_86, // META_TILE_TYPE_668 -VVV_86, // META_TILE_TYPE_669 -VVV_86, // META_TILE_TYPE_670 -VVV_86, // META_TILE_TYPE_671 -VVV_86, // META_TILE_TYPE_672 -VVV_86, // META_TILE_TYPE_673 -VVV_86, // META_TILE_TYPE_674 -VVV_86, // META_TILE_TYPE_675 -VVV_86, // META_TILE_TYPE_676 -VVV_86, // META_TILE_TYPE_677 -VVV_86, // META_TILE_TYPE_678 -VVV_86, // META_TILE_TYPE_679 -VVV_86, // META_TILE_TYPE_680 -VVV_86, // META_TILE_TYPE_681 -VVV_86, // META_TILE_TYPE_682 -VVV_86, // META_TILE_TYPE_683 -VVV_86, // META_TILE_TYPE_684 -VVV_86, // META_TILE_TYPE_685 -VVV_86, // META_TILE_TYPE_686 -VVV_86, // META_TILE_TYPE_687 -VVV_86, // META_TILE_TYPE_688 -VVV_86, // META_TILE_TYPE_689 -VVV_86, // META_TILE_TYPE_690 -VVV_86, // META_TILE_TYPE_691 -VVV_86, // META_TILE_TYPE_692 -VVV_86, // META_TILE_TYPE_693 -VVV_86, // META_TILE_TYPE_694 -VVV_86, // META_TILE_TYPE_695 -VVV_86, // META_TILE_TYPE_696 -VVV_86, // META_TILE_TYPE_697 -VVV_86, // META_TILE_TYPE_698 -VVV_86, // META_TILE_TYPE_699 -VVV_86, // META_TILE_TYPE_700 -VVV_86, // META_TILE_TYPE_701 -VVV_86, // META_TILE_TYPE_702 -VVV_86, // META_TILE_TYPE_703 -VVV_86, // META_TILE_TYPE_704 -VVV_86, // META_TILE_TYPE_705 -VVV_86, // META_TILE_TYPE_706 -VVV_86, // META_TILE_TYPE_707 -VVV_86, // META_TILE_TYPE_708 -VVV_86, // META_TILE_TYPE_709 -VVV_86, // META_TILE_TYPE_710 -VVV_86, // META_TILE_TYPE_711 -VVV_86, // META_TILE_TYPE_712 -VVV_86, // META_TILE_TYPE_713 -VVV_86, // META_TILE_TYPE_714 -VVV_86, // META_TILE_TYPE_715 -VVV_86, // META_TILE_TYPE_716 -VVV_86, // META_TILE_TYPE_717 -VVV_86, // META_TILE_TYPE_718 -VVV_86, // META_TILE_TYPE_719 -VVV_86, // META_TILE_TYPE_720 -VVV_86, // META_TILE_TYPE_721 -VVV_86, // META_TILE_TYPE_722 -VVV_86, // META_TILE_TYPE_723 -VVV_86, // META_TILE_TYPE_724 -VVV_86, // META_TILE_TYPE_725 -VVV_86, // META_TILE_TYPE_726 -VVV_86, // META_TILE_TYPE_727 -VVV_86, // META_TILE_TYPE_728 -VVV_86, // META_TILE_TYPE_729 -VVV_86, // META_TILE_TYPE_730 -VVV_86, // META_TILE_TYPE_731 -VVV_86, // META_TILE_TYPE_732 -VVV_86, // META_TILE_TYPE_733 -VVV_86, // META_TILE_TYPE_734 -VVV_86, // META_TILE_TYPE_735 -VVV_86, // META_TILE_TYPE_736 -VVV_86, // META_TILE_TYPE_737 -VVV_86, // META_TILE_TYPE_738 -VVV_86, // META_TILE_TYPE_739 -VVV_86, // META_TILE_TYPE_740 -VVV_86, // META_TILE_TYPE_741 -VVV_86, // META_TILE_TYPE_742 -VVV_86, // META_TILE_TYPE_743 -VVV_86, // META_TILE_TYPE_744 -VVV_86, // META_TILE_TYPE_745 -VVV_86, // META_TILE_TYPE_746 -VVV_86, // META_TILE_TYPE_747 -VVV_86, // META_TILE_TYPE_748 -VVV_86, // META_TILE_TYPE_749 -VVV_86, // META_TILE_TYPE_750 -VVV_86, // META_TILE_TYPE_751 -VVV_86, // META_TILE_TYPE_752 -VVV_86, // META_TILE_TYPE_753 -VVV_10, // META_TILE_TYPE_754 -VVV_9, // META_TILE_TYPE_755 -VVV_10, // META_TILE_TYPE_756 -VVV_10, // META_TILE_TYPE_757 -VVV_13, // META_TILE_TYPE_758 -VVV_0, // META_TILE_TYPE_759 -VVV_0, // META_TILE_TYPE_760 -VVV_0, // META_TILE_TYPE_761 -VVV_0, // META_TILE_TYPE_762 -VVV_63, // META_TILE_TYPE_763 -VVV_0, // META_TILE_TYPE_764 -VVV_0, // META_TILE_TYPE_765 -VVV_0, // META_TILE_TYPE_766 -VVV_0, // META_TILE_TYPE_767 -VVV_0, // META_TILE_TYPE_768 -VVV_0, // META_TILE_TYPE_769 -VVV_0, // META_TILE_TYPE_770 -VVV_0, // META_TILE_TYPE_771 -VVV_0, // META_TILE_TYPE_772 -VVV_0, // META_TILE_TYPE_773 -VVV_0, // META_TILE_TYPE_774 -VVV_0, // META_TILE_TYPE_775 -VVV_0, // META_TILE_TYPE_776 -VVV_0, // META_TILE_TYPE_777 -VVV_0, // META_TILE_TYPE_778 -VVV_0, // META_TILE_TYPE_779 -VVV_0, // META_TILE_TYPE_780 -VVV_16, // META_TILE_TYPE_781 -VVV_16, // META_TILE_TYPE_782 -VVV_0, // META_TILE_TYPE_783 -VVV_12, // META_TILE_TYPE_784 -VVV_0, // META_TILE_TYPE_785 -VVV_0, // META_TILE_TYPE_786 -VVV_1, // META_TILE_TYPE_787 -VVV_24, // META_TILE_TYPE_788 -VVV_87, // META_TILE_TYPE_789 -VVV_88, // META_TILE_TYPE_790 -VVV_89, // META_TILE_TYPE_791 -VVV_89, // META_TILE_TYPE_792 -VVV_90, // META_TILE_TYPE_793 -VVV_91, // META_TILE_TYPE_794 -VVV_92, // META_TILE_TYPE_795 -VVV_93, // META_TILE_TYPE_796 -VVV_94, // META_TILE_TYPE_797 -VVV_95, // META_TILE_TYPE_798 -VVV_96, // META_TILE_TYPE_799 -VVV_0, // META_TILE_TYPE_800 -VVV_0, // META_TILE_TYPE_801 -VVV_0, // META_TILE_TYPE_802 -VVV_13, // META_TILE_TYPE_803 -VVV_13, // META_TILE_TYPE_804 -VVV_13, // META_TILE_TYPE_805 -VVV_13, // META_TILE_TYPE_806 -VVV_13, // META_TILE_TYPE_807 -VVV_13, // META_TILE_TYPE_808 -VVV_13, // META_TILE_TYPE_809 -VVV_13, // META_TILE_TYPE_810 -VVV_13, // META_TILE_TYPE_811 -VVV_13, // META_TILE_TYPE_812 -VVV_13, // META_TILE_TYPE_813 -VVV_13, // META_TILE_TYPE_814 -VVV_13, // META_TILE_TYPE_815 -VVV_13, // META_TILE_TYPE_816 -VVV_13, // META_TILE_TYPE_817 -VVV_13, // META_TILE_TYPE_818 -VVV_13, // META_TILE_TYPE_819 -VVV_13, // META_TILE_TYPE_820 -VVV_13, // META_TILE_TYPE_821 -VVV_13, // META_TILE_TYPE_822 -VVV_13, // META_TILE_TYPE_823 -VVV_13, // META_TILE_TYPE_824 -VVV_13, // META_TILE_TYPE_825 -VVV_13, // META_TILE_TYPE_826 -VVV_13, // META_TILE_TYPE_827 -VVV_13, // META_TILE_TYPE_828 -VVV_13, // META_TILE_TYPE_829 -VVV_13, // META_TILE_TYPE_830 -VVV_13, // META_TILE_TYPE_831 -VVV_13, // META_TILE_TYPE_832 -VVV_12, // META_TILE_TYPE_833 -VVV_12, // META_TILE_TYPE_834 -VVV_12, // META_TILE_TYPE_835 -VVV_12, // META_TILE_TYPE_836 -VVV_12, // META_TILE_TYPE_837 -VVV_12, // META_TILE_TYPE_838 -VVV_97, // META_TILE_TYPE_839 -VVV_97, // META_TILE_TYPE_840 -VVV_97, // META_TILE_TYPE_841 -VVV_97, // META_TILE_TYPE_842 -VVV_98, // META_TILE_TYPE_843 -VVV_98, // META_TILE_TYPE_844 -VVV_0, // META_TILE_TYPE_845 -VVV_0, // META_TILE_TYPE_846 -VVV_99, // META_TILE_TYPE_847 -VVV_99, // META_TILE_TYPE_848 -VVV_99, // META_TILE_TYPE_849 -VVV_99, // META_TILE_TYPE_850 -VVV_100, // META_TILE_TYPE_851 -VVV_0, // META_TILE_TYPE_852 -VVV_101, // META_TILE_TYPE_853 -VVV_102, // META_TILE_TYPE_854 -VVV_103, // META_TILE_TYPE_855 -VVV_104, // META_TILE_TYPE_856 -VVV_105, // META_TILE_TYPE_857 -VVV_106, // META_TILE_TYPE_858 -VVV_107, // META_TILE_TYPE_859 -VVV_108, // META_TILE_TYPE_860 -VVV_109, // META_TILE_TYPE_861 -VVV_110, // META_TILE_TYPE_862 -VVV_111, // META_TILE_TYPE_863 -VVV_112, // META_TILE_TYPE_864 -VVV_112, // META_TILE_TYPE_865 -VVV_112, // META_TILE_TYPE_866 -VVV_112, // META_TILE_TYPE_867 -VVV_112, // META_TILE_TYPE_868 -VVV_0, // META_TILE_TYPE_869 -VVV_113, // META_TILE_TYPE_870 -VVV_46, // META_TILE_TYPE_871 -VVV_46, // META_TILE_TYPE_872 -VVV_114, // META_TILE_TYPE_873 -VVV_114, // META_TILE_TYPE_874 -VVV_114, // META_TILE_TYPE_875 -VVV_114, // META_TILE_TYPE_876 -VVV_114, // META_TILE_TYPE_877 -VVV_114, // META_TILE_TYPE_878 -VVV_114, // META_TILE_TYPE_879 -VVV_114, // META_TILE_TYPE_880 -VVV_114, // META_TILE_TYPE_881 -VVV_114, // META_TILE_TYPE_882 -VVV_114, // META_TILE_TYPE_883 -VVV_114, // META_TILE_TYPE_884 -VVV_114, // META_TILE_TYPE_885 -VVV_114, // META_TILE_TYPE_886 -VVV_115, // META_TILE_TYPE_887 -VVV_115, // META_TILE_TYPE_888 -VVV_0, // META_TILE_TYPE_889 -VVV_0, // META_TILE_TYPE_890 -VVV_0, // META_TILE_TYPE_891 -VVV_0, // META_TILE_TYPE_892 -VVV_0, // META_TILE_TYPE_893 -VVV_0, // META_TILE_TYPE_894 -VVV_0, // META_TILE_TYPE_895 -VVV_0, // META_TILE_TYPE_896 -VVV_0, // META_TILE_TYPE_897 -VVV_0, // META_TILE_TYPE_898 -VVV_0, // META_TILE_TYPE_899 -VVV_0, // META_TILE_TYPE_900 -VVV_0, // META_TILE_TYPE_901 -VVV_0, // META_TILE_TYPE_902 -VVV_0, // META_TILE_TYPE_903 -VVV_0, // META_TILE_TYPE_904 -VVV_0, // META_TILE_TYPE_905 -VVV_0, // META_TILE_TYPE_906 -VVV_0, // META_TILE_TYPE_907 -VVV_0, // META_TILE_TYPE_908 -VVV_0, // META_TILE_TYPE_909 -VVV_0, // META_TILE_TYPE_910 -VVV_0, // META_TILE_TYPE_911 -VVV_0, // META_TILE_TYPE_912 -VVV_0, // META_TILE_TYPE_913 -VVV_0, // META_TILE_TYPE_914 -VVV_0, // META_TILE_TYPE_915 -VVV_42, // META_TILE_TYPE_916 -VVV_43, // META_TILE_TYPE_917 -VVV_44, // META_TILE_TYPE_918 -VVV_45, // META_TILE_TYPE_919 -VVV_0, // META_TILE_TYPE_920 -VVV_0, // META_TILE_TYPE_921 -VVV_0, // META_TILE_TYPE_922 -VVV_0, // META_TILE_TYPE_923 -VVV_0, // META_TILE_TYPE_924 -VVV_0, // META_TILE_TYPE_925 -VVV_0, // META_TILE_TYPE_926 -VVV_0, // META_TILE_TYPE_927 -VVV_0, // META_TILE_TYPE_928 -VVV_116, // META_TILE_TYPE_929 -VVV_116, // META_TILE_TYPE_930 -VVV_116, // META_TILE_TYPE_931 -VVV_0, // META_TILE_TYPE_932 -VVV_0, // META_TILE_TYPE_933 -VVV_0, // META_TILE_TYPE_934 -VVV_0, // META_TILE_TYPE_935 -VVV_43, // META_TILE_TYPE_936 -VVV_42, // META_TILE_TYPE_937 -VVV_45, // META_TILE_TYPE_938 -VVV_44, // META_TILE_TYPE_939 -VVV_117, // META_TILE_TYPE_940 -VVV_0, // META_TILE_TYPE_941 -VVV_82, // META_TILE_TYPE_942 -VVV_0, // META_TILE_TYPE_943 -VVV_0, // META_TILE_TYPE_944 -VVV_0, // META_TILE_TYPE_945 -VVV_0, // META_TILE_TYPE_946 -VVV_0, // META_TILE_TYPE_947 -VVV_0, // META_TILE_TYPE_948 -VVV_43, // META_TILE_TYPE_949 -VVV_42, // META_TILE_TYPE_950 -VVV_0, // META_TILE_TYPE_951 -VVV_0, // META_TILE_TYPE_952 -VVV_44, // META_TILE_TYPE_953 -VVV_0, // META_TILE_TYPE_954 -VVV_0, // META_TILE_TYPE_955 -VVV_45, // META_TILE_TYPE_956 -VVV_0, // META_TILE_TYPE_957 -VVV_0, // META_TILE_TYPE_958 -VVV_0, // META_TILE_TYPE_959 -VVV_0, // META_TILE_TYPE_960 -VVV_41, // META_TILE_TYPE_961 -VVV_40, // META_TILE_TYPE_962 -VVV_38, // META_TILE_TYPE_963 -VVV_38, // META_TILE_TYPE_964 -VVV_116, // META_TILE_TYPE_965 -VVV_116, // META_TILE_TYPE_966 -VVV_116, // META_TILE_TYPE_967 -VVV_116, // META_TILE_TYPE_968 -VVV_116, // META_TILE_TYPE_969 -VVV_116, // META_TILE_TYPE_970 -VVV_116, // META_TILE_TYPE_971 -VVV_116, // META_TILE_TYPE_972 -VVV_116, // META_TILE_TYPE_973 -VVV_116, // META_TILE_TYPE_974 -VVV_116, // META_TILE_TYPE_975 -VVV_116, // META_TILE_TYPE_976 -VVV_116, // META_TILE_TYPE_977 -VVV_90, // META_TILE_TYPE_978 -VVV_41, // META_TILE_TYPE_979 -VVV_41, // META_TILE_TYPE_980 -VVV_41, // META_TILE_TYPE_981 -VVV_12, // META_TILE_TYPE_982 -VVV_0, // META_TILE_TYPE_983 -VVV_12, // META_TILE_TYPE_984 -VVV_12, // META_TILE_TYPE_985 -VVV_41, // META_TILE_TYPE_986 -VVV_41, // META_TILE_TYPE_987 -VVV_116, // META_TILE_TYPE_988 -VVV_0, // META_TILE_TYPE_989 -VVV_0, // META_TILE_TYPE_990 -VVV_10, // META_TILE_TYPE_991 -VVV_0, // META_TILE_TYPE_992 -VVV_0, // META_TILE_TYPE_993 -VVV_0, // META_TILE_TYPE_994 -VVV_0, // META_TILE_TYPE_995 -VVV_0, // META_TILE_TYPE_996 -VVV_0, // META_TILE_TYPE_997 -VVV_40, // META_TILE_TYPE_998 -VVV_0, // META_TILE_TYPE_999 -VVV_0, // META_TILE_TYPE_1000 -VVV_0, // META_TILE_TYPE_1001 -VVV_40, // META_TILE_TYPE_1002 -VVV_0, // META_TILE_TYPE_1003 -VVV_10, // META_TILE_TYPE_1004 -VVV_10, // META_TILE_TYPE_1005 -VVV_10, // META_TILE_TYPE_1006 -VVV_10, // META_TILE_TYPE_1007 -VVV_10, // META_TILE_TYPE_1008 -VVV_10, // META_TILE_TYPE_1009 -VVV_10, // META_TILE_TYPE_1010 -VVV_40, // META_TILE_TYPE_1011 -VVV_40, // META_TILE_TYPE_1012 -VVV_84, // META_TILE_TYPE_1013 -VVV_84, // META_TILE_TYPE_1014 -VVV_84, // META_TILE_TYPE_1015 -VVV_84, // META_TILE_TYPE_1016 -VVV_0, // META_TILE_TYPE_1017 -VVV_61, // META_TILE_TYPE_1018 -VVV_61, // META_TILE_TYPE_1019 -VVV_61, // META_TILE_TYPE_1020 -VVV_61, // META_TILE_TYPE_1021 -VVV_61, // META_TILE_TYPE_1022 -VVV_61, // META_TILE_TYPE_1023 -VVV_61, // META_TILE_TYPE_1024 -VVV_61, // META_TILE_TYPE_1025 -VVV_62, // META_TILE_TYPE_1026 -VVV_62, // META_TILE_TYPE_1027 -VVV_62, // META_TILE_TYPE_1028 -VVV_62, // META_TILE_TYPE_1029 -VVV_62, // META_TILE_TYPE_1030 -VVV_62, // META_TILE_TYPE_1031 -VVV_62, // META_TILE_TYPE_1032 -VVV_62, // META_TILE_TYPE_1033 -VVV_9, // META_TILE_TYPE_1034 -VVV_9, // META_TILE_TYPE_1035 -VVV_9, // META_TILE_TYPE_1036 -VVV_9, // META_TILE_TYPE_1037 -VVV_9, // META_TILE_TYPE_1038 -VVV_9, // META_TILE_TYPE_1039 -VVV_9, // META_TILE_TYPE_1040 -VVV_9, // META_TILE_TYPE_1041 -VVV_9, // META_TILE_TYPE_1042 -VVV_9, // META_TILE_TYPE_1043 -VVV_9, // META_TILE_TYPE_1044 -VVV_9, // META_TILE_TYPE_1045 -VVV_9, // META_TILE_TYPE_1046 -VVV_9, // META_TILE_TYPE_1047 -VVV_9, // META_TILE_TYPE_1048 -VVV_9, // META_TILE_TYPE_1049 -VVV_9, // META_TILE_TYPE_1050 -VVV_42, // META_TILE_TYPE_1051 -VVV_10, // META_TILE_TYPE_1052 -VVV_10, // META_TILE_TYPE_1053 -VVV_10, // META_TILE_TYPE_1054 -VVV_10, // META_TILE_TYPE_1055 -VVV_10, // META_TILE_TYPE_1056 -VVV_10, // META_TILE_TYPE_1057 -VVV_15, // META_TILE_TYPE_1058 -VVV_10, // META_TILE_TYPE_1059 -VVV_42, // META_TILE_TYPE_1060 -VVV_13, // META_TILE_TYPE_1061 -VVV_0, // META_TILE_TYPE_1062 -VVV_42, // META_TILE_TYPE_1063 -VVV_0, // META_TILE_TYPE_1064 -VVV_0, // META_TILE_TYPE_1065 -VVV_0, // META_TILE_TYPE_1066 -VVV_0, // META_TILE_TYPE_1067 -VVV_16, // META_TILE_TYPE_1068 -VVV_16, // META_TILE_TYPE_1069 -VVV_16, // META_TILE_TYPE_1070 -VVV_16, // META_TILE_TYPE_1071 -VVV_16, // META_TILE_TYPE_1072 -VVV_16, // META_TILE_TYPE_1073 -VVV_16, // META_TILE_TYPE_1074 -VVV_16, // META_TILE_TYPE_1075 -VVV_16, // META_TILE_TYPE_1076 -VVV_9, // META_TILE_TYPE_1077 -VVV_9, // META_TILE_TYPE_1078 -VVV_9, // META_TILE_TYPE_1079 -VVV_56, // META_TILE_TYPE_1080 -VVV_10, // META_TILE_TYPE_1081 -VVV_42, // META_TILE_TYPE_1082 -VVV_0, // META_TILE_TYPE_1083 -VVV_10, // META_TILE_TYPE_1084 -VVV_79, // META_TILE_TYPE_1085 -VVV_77, // META_TILE_TYPE_1086 -VVV_0, // META_TILE_TYPE_1087 -VVV_0, // META_TILE_TYPE_1088 -VVV_0, // META_TILE_TYPE_1089 -VVV_0, // META_TILE_TYPE_1090 -VVV_10, // META_TILE_TYPE_1091 -VVV_0, // META_TILE_TYPE_1092 -VVV_0, // META_TILE_TYPE_1093 -VVV_0, // META_TILE_TYPE_1094 -VVV_78, // META_TILE_TYPE_1095 -VVV_78, // META_TILE_TYPE_1096 -VVV_12, // META_TILE_TYPE_1097 -VVV_12, // META_TILE_TYPE_1098 -VVV_12, // META_TILE_TYPE_1099 -VVV_12, // META_TILE_TYPE_1100 -VVV_61, // META_TILE_TYPE_1101 -VVV_61, // META_TILE_TYPE_1102 -VVV_61, // META_TILE_TYPE_1103 -VVV_40, // META_TILE_TYPE_1104 -VVV_12, // META_TILE_TYPE_1105 -VVV_40, // META_TILE_TYPE_1106 -VVV_10, // META_TILE_TYPE_1107 -VVV_10, // META_TILE_TYPE_1108 -VVV_10, // META_TILE_TYPE_1109 -VVV_0, // META_TILE_TYPE_1110 -VVV_0, // META_TILE_TYPE_1111 -VVV_39, // META_TILE_TYPE_1112 -VVV_39, // META_TILE_TYPE_1113 -VVV_39, // META_TILE_TYPE_1114 -VVV_39, // META_TILE_TYPE_1115 -VVV_39, // META_TILE_TYPE_1116 -VVV_39, // META_TILE_TYPE_1117 -VVV_38, // META_TILE_TYPE_1118 -VVV_38, // META_TILE_TYPE_1119 -VVV_52, // META_TILE_TYPE_1120 -VVV_52, // META_TILE_TYPE_1121 -VVV_12, // META_TILE_TYPE_1122 -VVV_55, // META_TILE_TYPE_1123 -VVV_0, // META_TILE_TYPE_1124 -VVV_0, // META_TILE_TYPE_1125 -VVV_0, // META_TILE_TYPE_1126 -VVV_0, // META_TILE_TYPE_1127 -VVV_0, // META_TILE_TYPE_1128 -VVV_54, // META_TILE_TYPE_1129 -VVV_0, // META_TILE_TYPE_1130 -VVV_0, // META_TILE_TYPE_1131 -VVV_0, // META_TILE_TYPE_1132 -VVV_0, // META_TILE_TYPE_1133 -VVV_40, // META_TILE_TYPE_1134 -VVV_53, // META_TILE_TYPE_1135 -VVV_53, // META_TILE_TYPE_1136 -VVV_40, // META_TILE_TYPE_1137 -VVV_55, // META_TILE_TYPE_1138 -VVV_12, // META_TILE_TYPE_1139 -VVV_0, // META_TILE_TYPE_1140 -VVV_12, // META_TILE_TYPE_1141 -VVV_12, // META_TILE_TYPE_1142 -VVV_12, // META_TILE_TYPE_1143 -VVV_12, // META_TILE_TYPE_1144 -VVV_12, // META_TILE_TYPE_1145 -VVV_54, // META_TILE_TYPE_1146 -VVV_13, // META_TILE_TYPE_1147 -VVV_40, // META_TILE_TYPE_1148 -VVV_0, // META_TILE_TYPE_1149 -VVV_0, // META_TILE_TYPE_1150 -VVV_0, // META_TILE_TYPE_1151 -VVV_52, // META_TILE_TYPE_1152 -VVV_52, // META_TILE_TYPE_1153 -VVV_52, // META_TILE_TYPE_1154 -VVV_10, // META_TILE_TYPE_1155 -VVV_10, // META_TILE_TYPE_1156 -VVV_0, // META_TILE_TYPE_1157 -VVV_0, // META_TILE_TYPE_1158 -VVV_0, // META_TILE_TYPE_1159 -VVV_0, // META_TILE_TYPE_1160 -VVV_40, // META_TILE_TYPE_1161 -VVV_15, // META_TILE_TYPE_1162 -VVV_15, // META_TILE_TYPE_1163 -VVV_51, // META_TILE_TYPE_1164 -VVV_16, // META_TILE_TYPE_1165 -VVV_10, // META_TILE_TYPE_1166 -VVV_10, // META_TILE_TYPE_1167 -VVV_16, // META_TILE_TYPE_1168 -VVV_16, // META_TILE_TYPE_1169 -VVV_10, // META_TILE_TYPE_1170 -VVV_10, // META_TILE_TYPE_1171 -VVV_10, // META_TILE_TYPE_1172 -VVV_10, // META_TILE_TYPE_1173 -VVV_0, // META_TILE_TYPE_1174 -VVV_0, // META_TILE_TYPE_1175 -VVV_15, // META_TILE_TYPE_1176 -VVV_9, // META_TILE_TYPE_1177 -VVV_14, // META_TILE_TYPE_1178 -VVV_15, // META_TILE_TYPE_1179 -VVV_14, // META_TILE_TYPE_1180 -VVV_15, // META_TILE_TYPE_1181 -VVV_15, // META_TILE_TYPE_1182 -VVV_15, // META_TILE_TYPE_1183 -VVV_0, // META_TILE_TYPE_1184 -VVV_0, // META_TILE_TYPE_1185 -VVV_0, // META_TILE_TYPE_1186 -VVV_0, // META_TILE_TYPE_1187 -VVV_0, // META_TILE_TYPE_1188 -VVV_0, // META_TILE_TYPE_1189 -VVV_0, // META_TILE_TYPE_1190 -VVV_0, // META_TILE_TYPE_1191 -VVV_0, // META_TILE_TYPE_1192 -VVV_0, // META_TILE_TYPE_1193 -VVV_116, // META_TILE_TYPE_1194 -VVV_116, // META_TILE_TYPE_1195 -VVV_116, // META_TILE_TYPE_1196 -VVV_116, // META_TILE_TYPE_1197 -VVV_116, // META_TILE_TYPE_1198 -VVV_116, // META_TILE_TYPE_1199 -VVV_116, // META_TILE_TYPE_1200 -VVV_116, // META_TILE_TYPE_1201 -VVV_116, // META_TILE_TYPE_1202 -VVV_116, // META_TILE_TYPE_1203 -VVV_116, // META_TILE_TYPE_1204 -VVV_116, // META_TILE_TYPE_1205 -VVV_116, // META_TILE_TYPE_1206 -VVV_15, // META_TILE_TYPE_1207 -VVV_40, // META_TILE_TYPE_1208 -VVV_15, // META_TILE_TYPE_1209 -VVV_40, // META_TILE_TYPE_1210 -VVV_40, // META_TILE_TYPE_1211 -VVV_15, // META_TILE_TYPE_1212 -VVV_12, // META_TILE_TYPE_1213 -VVV_12, // META_TILE_TYPE_1214 -VVV_12, // META_TILE_TYPE_1215 -VVV_12, // META_TILE_TYPE_1216 -VVV_12, // META_TILE_TYPE_1217 -VVV_25, // META_TILE_TYPE_1218 -VVV_40, // META_TILE_TYPE_1219 -VVV_40, // META_TILE_TYPE_1220 -VVV_40, // META_TILE_TYPE_1221 -VVV_0, // META_TILE_TYPE_1222 -VVV_16, // META_TILE_TYPE_1223 -VVV_16, // META_TILE_TYPE_1224 -VVV_116, // META_TILE_TYPE_1225 -VVV_0, // META_TILE_TYPE_1226 -VVV_0, // META_TILE_TYPE_1227 -VVV_12, // META_TILE_TYPE_1228 -VVV_45, // META_TILE_TYPE_1229 -VVV_0, // META_TILE_TYPE_1230 -VVV_40, // META_TILE_TYPE_1231 -VVV_40, // META_TILE_TYPE_1232 -VVV_43, // META_TILE_TYPE_1233 -VVV_25, // META_TILE_TYPE_1234 -VVV_0, // META_TILE_TYPE_1235 -VVV_10, // META_TILE_TYPE_1236 -VVV_0, // META_TILE_TYPE_1237 -VVV_40, // META_TILE_TYPE_1238 -VVV_0, // META_TILE_TYPE_1239 -VVV_43, // META_TILE_TYPE_1240 -VVV_43, // META_TILE_TYPE_1241 -VVV_43, // META_TILE_TYPE_1242 -VVV_0, // META_TILE_TYPE_1243 -VVV_42, // META_TILE_TYPE_1244 -VVV_42, // META_TILE_TYPE_1245 -VVV_42, // META_TILE_TYPE_1246 -VVV_42, // META_TILE_TYPE_1247 -VVV_0, // META_TILE_TYPE_1248 -VVV_116, // META_TILE_TYPE_1249 -VVV_116, // META_TILE_TYPE_1250 -VVV_116, // META_TILE_TYPE_1251 -VVV_116, // META_TILE_TYPE_1252 -VVV_116, // META_TILE_TYPE_1253 -VVV_116, // META_TILE_TYPE_1254 -VVV_116, // META_TILE_TYPE_1255 -VVV_116, // META_TILE_TYPE_1256 -VVV_116, // META_TILE_TYPE_1257 -VVV_116, // META_TILE_TYPE_1258 -VVV_116, // META_TILE_TYPE_1259 -VVV_44, // META_TILE_TYPE_1260 -VVV_42, // META_TILE_TYPE_1261 -VVV_42, // META_TILE_TYPE_1262 -VVV_0, // META_TILE_TYPE_1263 -VVV_38, // META_TILE_TYPE_1264 -VVV_38, // META_TILE_TYPE_1265 -VVV_0, // META_TILE_TYPE_1266 -VVV_0, // META_TILE_TYPE_1267 -VVV_0, // META_TILE_TYPE_1268 -VVV_0, // META_TILE_TYPE_1269 -VVV_0, // META_TILE_TYPE_1270 -VVV_0, // META_TILE_TYPE_1271 -VVV_0, // META_TILE_TYPE_1272 -VVV_0, // META_TILE_TYPE_1273 -VVV_0, // META_TILE_TYPE_1274 -VVV_63, // META_TILE_TYPE_1275 -VVV_83, // META_TILE_TYPE_1276 -VVV_0, // META_TILE_TYPE_1277 -VVV_0, // META_TILE_TYPE_1278 -VVV_0, // META_TILE_TYPE_1279 -VVV_0, // META_TILE_TYPE_1280 -VVV_38, // META_TILE_TYPE_1281 -VVV_38, // META_TILE_TYPE_1282 -VVV_40, // META_TILE_TYPE_1283 -VVV_12, // META_TILE_TYPE_1284 -VVV_12, // META_TILE_TYPE_1285 -VVV_12, // META_TILE_TYPE_1286 -VVV_12, // META_TILE_TYPE_1287 -VVV_12, // META_TILE_TYPE_1288 -VVV_12, // META_TILE_TYPE_1289 -VVV_12, // META_TILE_TYPE_1290 -VVV_12, // META_TILE_TYPE_1291 -VVV_12, // META_TILE_TYPE_1292 -VVV_12, // META_TILE_TYPE_1293 -VVV_12, // META_TILE_TYPE_1294 -VVV_41, // META_TILE_TYPE_1295 -VVV_41, // META_TILE_TYPE_1296 -VVV_38, // META_TILE_TYPE_1297 -VVV_38, // META_TILE_TYPE_1298 -VVV_12, // META_TILE_TYPE_1299 -VVV_12, // META_TILE_TYPE_1300 -VVV_41, // META_TILE_TYPE_1301 -VVV_41, // META_TILE_TYPE_1302 -VVV_12, // META_TILE_TYPE_1303 -VVV_12, // META_TILE_TYPE_1304 -VVV_116, // META_TILE_TYPE_1305 -VVV_116, // META_TILE_TYPE_1306 -VVV_116, // META_TILE_TYPE_1307 -VVV_116, // META_TILE_TYPE_1308 -VVV_116, // META_TILE_TYPE_1309 -VVV_0, // META_TILE_TYPE_1310 -VVV_0, // META_TILE_TYPE_1311 -VVV_40, // META_TILE_TYPE_1312 -VVV_0, // META_TILE_TYPE_1313 -VVV_0, // META_TILE_TYPE_1314 -VVV_43, // META_TILE_TYPE_1315 -VVV_42, // META_TILE_TYPE_1316 -VVV_0, // META_TILE_TYPE_1317 -VVV_0, // META_TILE_TYPE_1318 -VVV_44, // META_TILE_TYPE_1319 -VVV_13, // META_TILE_TYPE_1320 -VVV_40, // META_TILE_TYPE_1321 -VVV_40, // META_TILE_TYPE_1322 -VVV_42, // META_TILE_TYPE_1323 -VVV_44, // META_TILE_TYPE_1324 -VVV_45, // META_TILE_TYPE_1325 -VVV_44, // META_TILE_TYPE_1326 -VVV_45, // META_TILE_TYPE_1327 -VVV_44, // META_TILE_TYPE_1328 -VVV_45, // META_TILE_TYPE_1329 -VVV_42, // META_TILE_TYPE_1330 -VVV_42, // META_TILE_TYPE_1331 -VVV_42, // META_TILE_TYPE_1332 -VVV_43, // META_TILE_TYPE_1333 -VVV_43, // META_TILE_TYPE_1334 -VVV_43, // META_TILE_TYPE_1335 -VVV_100, // META_TILE_TYPE_1336 -VVV_101, // META_TILE_TYPE_1337 -VVV_104, // META_TILE_TYPE_1338 -VVV_106, // META_TILE_TYPE_1339 -VVV_102, // META_TILE_TYPE_1340 -VVV_107, // META_TILE_TYPE_1341 -VVV_105, // META_TILE_TYPE_1342 -VVV_103, // META_TILE_TYPE_1343 -VVV_0, // META_TILE_TYPE_1344 -VVV_14, // META_TILE_TYPE_1345 -VVV_14, // META_TILE_TYPE_1346 -VVV_41, // META_TILE_TYPE_1347 -VVV_40, // META_TILE_TYPE_1348 + VVV_40, // META_TILE_TYPE_657 + VVV_0, // META_TILE_TYPE_658 + VVV_0, // META_TILE_TYPE_659 + VVV_0, // META_TILE_TYPE_660 + VVV_0, // META_TILE_TYPE_661 + VVV_86, // META_TILE_TYPE_662 + VVV_86, // META_TILE_TYPE_663 + VVV_86, // META_TILE_TYPE_664 + VVV_86, // META_TILE_TYPE_665 + VVV_86, // META_TILE_TYPE_666 + VVV_86, // META_TILE_TYPE_667 + VVV_86, // META_TILE_TYPE_668 + VVV_86, // META_TILE_TYPE_669 + VVV_86, // META_TILE_TYPE_670 + VVV_86, // META_TILE_TYPE_671 + VVV_86, // META_TILE_TYPE_672 + VVV_86, // META_TILE_TYPE_673 + VVV_86, // META_TILE_TYPE_674 + VVV_86, // META_TILE_TYPE_675 + VVV_86, // META_TILE_TYPE_676 + VVV_86, // META_TILE_TYPE_677 + VVV_86, // META_TILE_TYPE_678 + VVV_86, // META_TILE_TYPE_679 + VVV_86, // META_TILE_TYPE_680 + VVV_86, // META_TILE_TYPE_681 + VVV_86, // META_TILE_TYPE_682 + VVV_86, // META_TILE_TYPE_683 + VVV_86, // META_TILE_TYPE_684 + VVV_86, // META_TILE_TYPE_685 + VVV_86, // META_TILE_TYPE_686 + VVV_86, // META_TILE_TYPE_687 + VVV_86, // META_TILE_TYPE_688 + VVV_86, // META_TILE_TYPE_689 + VVV_86, // META_TILE_TYPE_690 + VVV_86, // META_TILE_TYPE_691 + VVV_86, // META_TILE_TYPE_692 + VVV_86, // META_TILE_TYPE_693 + VVV_86, // META_TILE_TYPE_694 + VVV_86, // META_TILE_TYPE_695 + VVV_86, // META_TILE_TYPE_696 + VVV_86, // META_TILE_TYPE_697 + VVV_86, // META_TILE_TYPE_698 + VVV_86, // META_TILE_TYPE_699 + VVV_86, // META_TILE_TYPE_700 + VVV_86, // META_TILE_TYPE_701 + VVV_86, // META_TILE_TYPE_702 + VVV_86, // META_TILE_TYPE_703 + VVV_86, // META_TILE_TYPE_704 + VVV_86, // META_TILE_TYPE_705 + VVV_86, // META_TILE_TYPE_706 + VVV_86, // META_TILE_TYPE_707 + VVV_86, // META_TILE_TYPE_708 + VVV_86, // META_TILE_TYPE_709 + VVV_86, // META_TILE_TYPE_710 + VVV_86, // META_TILE_TYPE_711 + VVV_86, // META_TILE_TYPE_712 + VVV_86, // META_TILE_TYPE_713 + VVV_86, // META_TILE_TYPE_714 + VVV_86, // META_TILE_TYPE_715 + VVV_86, // META_TILE_TYPE_716 + VVV_86, // META_TILE_TYPE_717 + VVV_86, // META_TILE_TYPE_718 + VVV_86, // META_TILE_TYPE_719 + VVV_86, // META_TILE_TYPE_720 + VVV_86, // META_TILE_TYPE_721 + VVV_86, // META_TILE_TYPE_722 + VVV_86, // META_TILE_TYPE_723 + VVV_86, // META_TILE_TYPE_724 + VVV_86, // META_TILE_TYPE_725 + VVV_86, // META_TILE_TYPE_726 + VVV_86, // META_TILE_TYPE_727 + VVV_86, // META_TILE_TYPE_728 + VVV_86, // META_TILE_TYPE_729 + VVV_86, // META_TILE_TYPE_730 + VVV_86, // META_TILE_TYPE_731 + VVV_86, // META_TILE_TYPE_732 + VVV_86, // META_TILE_TYPE_733 + VVV_86, // META_TILE_TYPE_734 + VVV_86, // META_TILE_TYPE_735 + VVV_86, // META_TILE_TYPE_736 + VVV_86, // META_TILE_TYPE_737 + VVV_86, // META_TILE_TYPE_738 + VVV_86, // META_TILE_TYPE_739 + VVV_86, // META_TILE_TYPE_740 + VVV_86, // META_TILE_TYPE_741 + VVV_86, // META_TILE_TYPE_742 + VVV_86, // META_TILE_TYPE_743 + VVV_86, // META_TILE_TYPE_744 + VVV_86, // META_TILE_TYPE_745 + VVV_86, // META_TILE_TYPE_746 + VVV_86, // META_TILE_TYPE_747 + VVV_86, // META_TILE_TYPE_748 + VVV_86, // META_TILE_TYPE_749 + VVV_86, // META_TILE_TYPE_750 + VVV_86, // META_TILE_TYPE_751 + VVV_86, // META_TILE_TYPE_752 + VVV_86, // META_TILE_TYPE_753 + VVV_10, // META_TILE_TYPE_754 + VVV_9, // META_TILE_TYPE_755 + VVV_10, // META_TILE_TYPE_756 + VVV_10, // META_TILE_TYPE_757 + VVV_13, // META_TILE_TYPE_758 + VVV_0, // META_TILE_TYPE_759 + VVV_0, // META_TILE_TYPE_760 + VVV_0, // META_TILE_TYPE_761 + VVV_0, // META_TILE_TYPE_762 + VVV_63, // META_TILE_TYPE_763 + VVV_0, // META_TILE_TYPE_764 + VVV_0, // META_TILE_TYPE_765 + VVV_0, // META_TILE_TYPE_766 + VVV_0, // META_TILE_TYPE_767 + VVV_0, // META_TILE_TYPE_768 + VVV_0, // META_TILE_TYPE_769 + VVV_0, // META_TILE_TYPE_770 + VVV_0, // META_TILE_TYPE_771 + VVV_0, // META_TILE_TYPE_772 + VVV_0, // META_TILE_TYPE_773 + VVV_0, // META_TILE_TYPE_774 + VVV_0, // META_TILE_TYPE_775 + VVV_0, // META_TILE_TYPE_776 + VVV_0, // META_TILE_TYPE_777 + VVV_0, // META_TILE_TYPE_778 + VVV_0, // META_TILE_TYPE_779 + VVV_0, // META_TILE_TYPE_780 + VVV_16, // META_TILE_TYPE_781 + VVV_16, // META_TILE_TYPE_782 + VVV_0, // META_TILE_TYPE_783 + VVV_12, // META_TILE_TYPE_784 + VVV_0, // META_TILE_TYPE_785 + VVV_0, // META_TILE_TYPE_786 + VVV_1, // META_TILE_TYPE_787 + VVV_24, // META_TILE_TYPE_788 + VVV_87, // META_TILE_TYPE_789 + VVV_88, // META_TILE_TYPE_790 + VVV_89, // META_TILE_TYPE_791 + VVV_89, // META_TILE_TYPE_792 + VVV_90, // META_TILE_TYPE_793 + VVV_91, // META_TILE_TYPE_794 + VVV_92, // META_TILE_TYPE_795 + VVV_93, // META_TILE_TYPE_796 + VVV_94, // META_TILE_TYPE_797 + VVV_95, // META_TILE_TYPE_798 + VVV_96, // META_TILE_TYPE_799 + VVV_0, // META_TILE_TYPE_800 + VVV_0, // META_TILE_TYPE_801 + VVV_0, // META_TILE_TYPE_802 + VVV_13, // META_TILE_TYPE_803 + VVV_13, // META_TILE_TYPE_804 + VVV_13, // META_TILE_TYPE_805 + VVV_13, // META_TILE_TYPE_806 + VVV_13, // META_TILE_TYPE_807 + VVV_13, // META_TILE_TYPE_808 + VVV_13, // META_TILE_TYPE_809 + VVV_13, // META_TILE_TYPE_810 + VVV_13, // META_TILE_TYPE_811 + VVV_13, // META_TILE_TYPE_812 + VVV_13, // META_TILE_TYPE_813 + VVV_13, // META_TILE_TYPE_814 + VVV_13, // META_TILE_TYPE_815 + VVV_13, // META_TILE_TYPE_816 + VVV_13, // META_TILE_TYPE_817 + VVV_13, // META_TILE_TYPE_818 + VVV_13, // META_TILE_TYPE_819 + VVV_13, // META_TILE_TYPE_820 + VVV_13, // META_TILE_TYPE_821 + VVV_13, // META_TILE_TYPE_822 + VVV_13, // META_TILE_TYPE_823 + VVV_13, // META_TILE_TYPE_824 + VVV_13, // META_TILE_TYPE_825 + VVV_13, // META_TILE_TYPE_826 + VVV_13, // META_TILE_TYPE_827 + VVV_13, // META_TILE_TYPE_828 + VVV_13, // META_TILE_TYPE_829 + VVV_13, // META_TILE_TYPE_830 + VVV_13, // META_TILE_TYPE_831 + VVV_13, // META_TILE_TYPE_832 + VVV_12, // META_TILE_TYPE_833 + VVV_12, // META_TILE_TYPE_834 + VVV_12, // META_TILE_TYPE_835 + VVV_12, // META_TILE_TYPE_836 + VVV_12, // META_TILE_TYPE_837 + VVV_12, // META_TILE_TYPE_838 + VVV_97, // META_TILE_TYPE_839 + VVV_97, // META_TILE_TYPE_840 + VVV_97, // META_TILE_TYPE_841 + VVV_97, // META_TILE_TYPE_842 + VVV_98, // META_TILE_TYPE_843 + VVV_98, // META_TILE_TYPE_844 + VVV_0, // META_TILE_TYPE_845 + VVV_0, // META_TILE_TYPE_846 + VVV_99, // META_TILE_TYPE_847 + VVV_99, // META_TILE_TYPE_848 + VVV_99, // META_TILE_TYPE_849 + VVV_99, // META_TILE_TYPE_850 + VVV_100, // META_TILE_TYPE_851 + VVV_0, // META_TILE_TYPE_852 + VVV_101, // META_TILE_TYPE_853 + VVV_102, // META_TILE_TYPE_854 + VVV_103, // META_TILE_TYPE_855 + VVV_104, // META_TILE_TYPE_856 + VVV_105, // META_TILE_TYPE_857 + VVV_106, // META_TILE_TYPE_858 + VVV_107, // META_TILE_TYPE_859 + VVV_108, // META_TILE_TYPE_860 + VVV_109, // META_TILE_TYPE_861 + VVV_110, // META_TILE_TYPE_862 + VVV_111, // META_TILE_TYPE_863 + VVV_112, // META_TILE_TYPE_864 + VVV_112, // META_TILE_TYPE_865 + VVV_112, // META_TILE_TYPE_866 + VVV_112, // META_TILE_TYPE_867 + VVV_112, // META_TILE_TYPE_868 + VVV_0, // META_TILE_TYPE_869 + VVV_113, // META_TILE_TYPE_870 + VVV_46, // META_TILE_TYPE_871 + VVV_46, // META_TILE_TYPE_872 + VVV_114, // META_TILE_TYPE_873 + VVV_114, // META_TILE_TYPE_874 + VVV_114, // META_TILE_TYPE_875 + VVV_114, // META_TILE_TYPE_876 + VVV_114, // META_TILE_TYPE_877 + VVV_114, // META_TILE_TYPE_878 + VVV_114, // META_TILE_TYPE_879 + VVV_114, // META_TILE_TYPE_880 + VVV_114, // META_TILE_TYPE_881 + VVV_114, // META_TILE_TYPE_882 + VVV_114, // META_TILE_TYPE_883 + VVV_114, // META_TILE_TYPE_884 + VVV_114, // META_TILE_TYPE_885 + VVV_114, // META_TILE_TYPE_886 + VVV_115, // META_TILE_TYPE_887 + VVV_115, // META_TILE_TYPE_888 + VVV_0, // META_TILE_TYPE_889 + VVV_0, // META_TILE_TYPE_890 + VVV_0, // META_TILE_TYPE_891 + VVV_0, // META_TILE_TYPE_892 + VVV_0, // META_TILE_TYPE_893 + VVV_0, // META_TILE_TYPE_894 + VVV_0, // META_TILE_TYPE_895 + VVV_0, // META_TILE_TYPE_896 + VVV_0, // META_TILE_TYPE_897 + VVV_0, // META_TILE_TYPE_898 + VVV_0, // META_TILE_TYPE_899 + VVV_0, // META_TILE_TYPE_900 + VVV_0, // META_TILE_TYPE_901 + VVV_0, // META_TILE_TYPE_902 + VVV_0, // META_TILE_TYPE_903 + VVV_0, // META_TILE_TYPE_904 + VVV_0, // META_TILE_TYPE_905 + VVV_0, // META_TILE_TYPE_906 + VVV_0, // META_TILE_TYPE_907 + VVV_0, // META_TILE_TYPE_908 + VVV_0, // META_TILE_TYPE_909 + VVV_0, // META_TILE_TYPE_910 + VVV_0, // META_TILE_TYPE_911 + VVV_0, // META_TILE_TYPE_912 + VVV_0, // META_TILE_TYPE_913 + VVV_0, // META_TILE_TYPE_914 + VVV_0, // META_TILE_TYPE_915 + VVV_42, // META_TILE_TYPE_916 + VVV_43, // META_TILE_TYPE_917 + VVV_44, // META_TILE_TYPE_918 + VVV_45, // META_TILE_TYPE_919 + VVV_0, // META_TILE_TYPE_920 + VVV_0, // META_TILE_TYPE_921 + VVV_0, // META_TILE_TYPE_922 + VVV_0, // META_TILE_TYPE_923 + VVV_0, // META_TILE_TYPE_924 + VVV_0, // META_TILE_TYPE_925 + VVV_0, // META_TILE_TYPE_926 + VVV_0, // META_TILE_TYPE_927 + VVV_0, // META_TILE_TYPE_928 + VVV_116, // META_TILE_TYPE_929 + VVV_116, // META_TILE_TYPE_930 + VVV_116, // META_TILE_TYPE_931 + VVV_0, // META_TILE_TYPE_932 + VVV_0, // META_TILE_TYPE_933 + VVV_0, // META_TILE_TYPE_934 + VVV_0, // META_TILE_TYPE_935 + VVV_43, // META_TILE_TYPE_936 + VVV_42, // META_TILE_TYPE_937 + VVV_45, // META_TILE_TYPE_938 + VVV_44, // META_TILE_TYPE_939 + VVV_117, // META_TILE_TYPE_940 + VVV_0, // META_TILE_TYPE_941 + VVV_82, // META_TILE_TYPE_942 + VVV_0, // META_TILE_TYPE_943 + VVV_0, // META_TILE_TYPE_944 + VVV_0, // META_TILE_TYPE_945 + VVV_0, // META_TILE_TYPE_946 + VVV_0, // META_TILE_TYPE_947 + VVV_0, // META_TILE_TYPE_948 + VVV_43, // META_TILE_TYPE_949 + VVV_42, // META_TILE_TYPE_950 + VVV_0, // META_TILE_TYPE_951 + VVV_0, // META_TILE_TYPE_952 + VVV_44, // META_TILE_TYPE_953 + VVV_0, // META_TILE_TYPE_954 + VVV_0, // META_TILE_TYPE_955 + VVV_45, // META_TILE_TYPE_956 + VVV_0, // META_TILE_TYPE_957 + VVV_0, // META_TILE_TYPE_958 + VVV_0, // META_TILE_TYPE_959 + VVV_0, // META_TILE_TYPE_960 + VVV_41, // META_TILE_TYPE_961 + VVV_40, // META_TILE_TYPE_962 + VVV_38, // META_TILE_TYPE_963 + VVV_38, // META_TILE_TYPE_964 + VVV_116, // META_TILE_TYPE_965 + VVV_116, // META_TILE_TYPE_966 + VVV_116, // META_TILE_TYPE_967 + VVV_116, // META_TILE_TYPE_968 + VVV_116, // META_TILE_TYPE_969 + VVV_116, // META_TILE_TYPE_970 + VVV_116, // META_TILE_TYPE_971 + VVV_116, // META_TILE_TYPE_972 + VVV_116, // META_TILE_TYPE_973 + VVV_116, // META_TILE_TYPE_974 + VVV_116, // META_TILE_TYPE_975 + VVV_116, // META_TILE_TYPE_976 + VVV_116, // META_TILE_TYPE_977 + VVV_90, // META_TILE_TYPE_978 + VVV_41, // META_TILE_TYPE_979 + VVV_41, // META_TILE_TYPE_980 + VVV_41, // META_TILE_TYPE_981 + VVV_12, // META_TILE_TYPE_982 + VVV_0, // META_TILE_TYPE_983 + VVV_12, // META_TILE_TYPE_984 + VVV_12, // META_TILE_TYPE_985 + VVV_41, // META_TILE_TYPE_986 + VVV_41, // META_TILE_TYPE_987 + VVV_116, // META_TILE_TYPE_988 + VVV_0, // META_TILE_TYPE_989 + VVV_0, // META_TILE_TYPE_990 + VVV_10, // META_TILE_TYPE_991 + VVV_0, // META_TILE_TYPE_992 + VVV_0, // META_TILE_TYPE_993 + VVV_0, // META_TILE_TYPE_994 + VVV_0, // META_TILE_TYPE_995 + VVV_0, // META_TILE_TYPE_996 + VVV_0, // META_TILE_TYPE_997 + VVV_40, // META_TILE_TYPE_998 + VVV_0, // META_TILE_TYPE_999 + VVV_0, // META_TILE_TYPE_1000 + VVV_0, // META_TILE_TYPE_1001 + VVV_40, // META_TILE_TYPE_1002 + VVV_0, // META_TILE_TYPE_1003 + VVV_10, // META_TILE_TYPE_1004 + VVV_10, // META_TILE_TYPE_1005 + VVV_10, // META_TILE_TYPE_1006 + VVV_10, // META_TILE_TYPE_1007 + VVV_10, // META_TILE_TYPE_1008 + VVV_10, // META_TILE_TYPE_1009 + VVV_10, // META_TILE_TYPE_1010 + VVV_40, // META_TILE_TYPE_1011 + VVV_40, // META_TILE_TYPE_1012 + VVV_84, // META_TILE_TYPE_1013 + VVV_84, // META_TILE_TYPE_1014 + VVV_84, // META_TILE_TYPE_1015 + VVV_84, // META_TILE_TYPE_1016 + VVV_0, // META_TILE_TYPE_1017 + VVV_61, // META_TILE_TYPE_1018 + VVV_61, // META_TILE_TYPE_1019 + VVV_61, // META_TILE_TYPE_1020 + VVV_61, // META_TILE_TYPE_1021 + VVV_61, // META_TILE_TYPE_1022 + VVV_61, // META_TILE_TYPE_1023 + VVV_61, // META_TILE_TYPE_1024 + VVV_61, // META_TILE_TYPE_1025 + VVV_62, // META_TILE_TYPE_1026 + VVV_62, // META_TILE_TYPE_1027 + VVV_62, // META_TILE_TYPE_1028 + VVV_62, // META_TILE_TYPE_1029 + VVV_62, // META_TILE_TYPE_1030 + VVV_62, // META_TILE_TYPE_1031 + VVV_62, // META_TILE_TYPE_1032 + VVV_62, // META_TILE_TYPE_1033 + VVV_9, // META_TILE_TYPE_1034 + VVV_9, // META_TILE_TYPE_1035 + VVV_9, // META_TILE_TYPE_1036 + VVV_9, // META_TILE_TYPE_1037 + VVV_9, // META_TILE_TYPE_1038 + VVV_9, // META_TILE_TYPE_1039 + VVV_9, // META_TILE_TYPE_1040 + VVV_9, // META_TILE_TYPE_1041 + VVV_9, // META_TILE_TYPE_1042 + VVV_9, // META_TILE_TYPE_1043 + VVV_9, // META_TILE_TYPE_1044 + VVV_9, // META_TILE_TYPE_1045 + VVV_9, // META_TILE_TYPE_1046 + VVV_9, // META_TILE_TYPE_1047 + VVV_9, // META_TILE_TYPE_1048 + VVV_9, // META_TILE_TYPE_1049 + VVV_9, // META_TILE_TYPE_1050 + VVV_42, // META_TILE_TYPE_1051 + VVV_10, // META_TILE_TYPE_1052 + VVV_10, // META_TILE_TYPE_1053 + VVV_10, // META_TILE_TYPE_1054 + VVV_10, // META_TILE_TYPE_1055 + VVV_10, // META_TILE_TYPE_1056 + VVV_10, // META_TILE_TYPE_1057 + VVV_15, // META_TILE_TYPE_1058 + VVV_10, // META_TILE_TYPE_1059 + VVV_42, // META_TILE_TYPE_1060 + VVV_13, // META_TILE_TYPE_1061 + VVV_0, // META_TILE_TYPE_1062 + VVV_42, // META_TILE_TYPE_1063 + VVV_0, // META_TILE_TYPE_1064 + VVV_0, // META_TILE_TYPE_1065 + VVV_0, // META_TILE_TYPE_1066 + VVV_0, // META_TILE_TYPE_1067 + VVV_16, // META_TILE_TYPE_1068 + VVV_16, // META_TILE_TYPE_1069 + VVV_16, // META_TILE_TYPE_1070 + VVV_16, // META_TILE_TYPE_1071 + VVV_16, // META_TILE_TYPE_1072 + VVV_16, // META_TILE_TYPE_1073 + VVV_16, // META_TILE_TYPE_1074 + VVV_16, // META_TILE_TYPE_1075 + VVV_16, // META_TILE_TYPE_1076 + VVV_9, // META_TILE_TYPE_1077 + VVV_9, // META_TILE_TYPE_1078 + VVV_9, // META_TILE_TYPE_1079 + VVV_56, // META_TILE_TYPE_1080 + VVV_10, // META_TILE_TYPE_1081 + VVV_42, // META_TILE_TYPE_1082 + VVV_0, // META_TILE_TYPE_1083 + VVV_10, // META_TILE_TYPE_1084 + VVV_79, // META_TILE_TYPE_1085 + VVV_77, // META_TILE_TYPE_1086 + VVV_0, // META_TILE_TYPE_1087 + VVV_0, // META_TILE_TYPE_1088 + VVV_0, // META_TILE_TYPE_1089 + VVV_0, // META_TILE_TYPE_1090 + VVV_10, // META_TILE_TYPE_1091 + VVV_0, // META_TILE_TYPE_1092 + VVV_0, // META_TILE_TYPE_1093 + VVV_0, // META_TILE_TYPE_1094 + VVV_78, // META_TILE_TYPE_1095 + VVV_78, // META_TILE_TYPE_1096 + VVV_12, // META_TILE_TYPE_1097 + VVV_12, // META_TILE_TYPE_1098 + VVV_12, // META_TILE_TYPE_1099 + VVV_12, // META_TILE_TYPE_1100 + VVV_61, // META_TILE_TYPE_1101 + VVV_61, // META_TILE_TYPE_1102 + VVV_61, // META_TILE_TYPE_1103 + VVV_40, // META_TILE_TYPE_1104 + VVV_12, // META_TILE_TYPE_1105 + VVV_40, // META_TILE_TYPE_1106 + VVV_10, // META_TILE_TYPE_1107 + VVV_10, // META_TILE_TYPE_1108 + VVV_10, // META_TILE_TYPE_1109 + VVV_0, // META_TILE_TYPE_1110 + VVV_0, // META_TILE_TYPE_1111 + VVV_39, // META_TILE_TYPE_1112 + VVV_39, // META_TILE_TYPE_1113 + VVV_39, // META_TILE_TYPE_1114 + VVV_39, // META_TILE_TYPE_1115 + VVV_39, // META_TILE_TYPE_1116 + VVV_39, // META_TILE_TYPE_1117 + VVV_38, // META_TILE_TYPE_1118 + VVV_38, // META_TILE_TYPE_1119 + VVV_52, // META_TILE_TYPE_1120 + VVV_52, // META_TILE_TYPE_1121 + VVV_12, // META_TILE_TYPE_1122 + VVV_55, // META_TILE_TYPE_1123 + VVV_0, // META_TILE_TYPE_1124 + VVV_0, // META_TILE_TYPE_1125 + VVV_0, // META_TILE_TYPE_1126 + VVV_0, // META_TILE_TYPE_1127 + VVV_0, // META_TILE_TYPE_1128 + VVV_54, // META_TILE_TYPE_1129 + VVV_0, // META_TILE_TYPE_1130 + VVV_0, // META_TILE_TYPE_1131 + VVV_0, // META_TILE_TYPE_1132 + VVV_0, // META_TILE_TYPE_1133 + VVV_40, // META_TILE_TYPE_1134 + VVV_53, // META_TILE_TYPE_1135 + VVV_53, // META_TILE_TYPE_1136 + VVV_40, // META_TILE_TYPE_1137 + VVV_55, // META_TILE_TYPE_1138 + VVV_12, // META_TILE_TYPE_1139 + VVV_0, // META_TILE_TYPE_1140 + VVV_12, // META_TILE_TYPE_1141 + VVV_12, // META_TILE_TYPE_1142 + VVV_12, // META_TILE_TYPE_1143 + VVV_12, // META_TILE_TYPE_1144 + VVV_12, // META_TILE_TYPE_1145 + VVV_54, // META_TILE_TYPE_1146 + VVV_13, // META_TILE_TYPE_1147 + VVV_40, // META_TILE_TYPE_1148 + VVV_0, // META_TILE_TYPE_1149 + VVV_0, // META_TILE_TYPE_1150 + VVV_0, // META_TILE_TYPE_1151 + VVV_52, // META_TILE_TYPE_1152 + VVV_52, // META_TILE_TYPE_1153 + VVV_52, // META_TILE_TYPE_1154 + VVV_10, // META_TILE_TYPE_1155 + VVV_10, // META_TILE_TYPE_1156 + VVV_0, // META_TILE_TYPE_1157 + VVV_0, // META_TILE_TYPE_1158 + VVV_0, // META_TILE_TYPE_1159 + VVV_0, // META_TILE_TYPE_1160 + VVV_40, // META_TILE_TYPE_1161 + VVV_15, // META_TILE_TYPE_1162 + VVV_15, // META_TILE_TYPE_1163 + VVV_51, // META_TILE_TYPE_1164 + VVV_16, // META_TILE_TYPE_1165 + VVV_10, // META_TILE_TYPE_1166 + VVV_10, // META_TILE_TYPE_1167 + VVV_16, // META_TILE_TYPE_1168 + VVV_16, // META_TILE_TYPE_1169 + VVV_10, // META_TILE_TYPE_1170 + VVV_10, // META_TILE_TYPE_1171 + VVV_10, // META_TILE_TYPE_1172 + VVV_10, // META_TILE_TYPE_1173 + VVV_0, // META_TILE_TYPE_1174 + VVV_0, // META_TILE_TYPE_1175 + VVV_15, // META_TILE_TYPE_1176 + VVV_9, // META_TILE_TYPE_1177 + VVV_14, // META_TILE_TYPE_1178 + VVV_15, // META_TILE_TYPE_1179 + VVV_14, // META_TILE_TYPE_1180 + VVV_15, // META_TILE_TYPE_1181 + VVV_15, // META_TILE_TYPE_1182 + VVV_15, // META_TILE_TYPE_1183 + VVV_0, // META_TILE_TYPE_1184 + VVV_0, // META_TILE_TYPE_1185 + VVV_0, // META_TILE_TYPE_1186 + VVV_0, // META_TILE_TYPE_1187 + VVV_0, // META_TILE_TYPE_1188 + VVV_0, // META_TILE_TYPE_1189 + VVV_0, // META_TILE_TYPE_1190 + VVV_0, // META_TILE_TYPE_1191 + VVV_0, // META_TILE_TYPE_1192 + VVV_0, // META_TILE_TYPE_1193 + VVV_116, // META_TILE_TYPE_1194 + VVV_116, // META_TILE_TYPE_1195 + VVV_116, // META_TILE_TYPE_1196 + VVV_116, // META_TILE_TYPE_1197 + VVV_116, // META_TILE_TYPE_1198 + VVV_116, // META_TILE_TYPE_1199 + VVV_116, // META_TILE_TYPE_1200 + VVV_116, // META_TILE_TYPE_1201 + VVV_116, // META_TILE_TYPE_1202 + VVV_116, // META_TILE_TYPE_1203 + VVV_116, // META_TILE_TYPE_1204 + VVV_116, // META_TILE_TYPE_1205 + VVV_116, // META_TILE_TYPE_1206 + VVV_15, // META_TILE_TYPE_1207 + VVV_40, // META_TILE_TYPE_1208 + VVV_15, // META_TILE_TYPE_1209 + VVV_40, // META_TILE_TYPE_1210 + VVV_40, // META_TILE_TYPE_1211 + VVV_15, // META_TILE_TYPE_1212 + VVV_12, // META_TILE_TYPE_1213 + VVV_12, // META_TILE_TYPE_1214 + VVV_12, // META_TILE_TYPE_1215 + VVV_12, // META_TILE_TYPE_1216 + VVV_12, // META_TILE_TYPE_1217 + VVV_25, // META_TILE_TYPE_1218 + VVV_40, // META_TILE_TYPE_1219 + VVV_40, // META_TILE_TYPE_1220 + VVV_40, // META_TILE_TYPE_1221 + VVV_0, // META_TILE_TYPE_1222 + VVV_16, // META_TILE_TYPE_1223 + VVV_16, // META_TILE_TYPE_1224 + VVV_116, // META_TILE_TYPE_1225 + VVV_0, // META_TILE_TYPE_1226 + VVV_0, // META_TILE_TYPE_1227 + VVV_12, // META_TILE_TYPE_1228 + VVV_45, // META_TILE_TYPE_1229 + VVV_0, // META_TILE_TYPE_1230 + VVV_40, // META_TILE_TYPE_1231 + VVV_40, // META_TILE_TYPE_1232 + VVV_43, // META_TILE_TYPE_1233 + VVV_25, // META_TILE_TYPE_1234 + VVV_0, // META_TILE_TYPE_1235 + VVV_10, // META_TILE_TYPE_1236 + VVV_0, // META_TILE_TYPE_1237 + VVV_40, // META_TILE_TYPE_1238 + VVV_0, // META_TILE_TYPE_1239 + VVV_43, // META_TILE_TYPE_1240 + VVV_43, // META_TILE_TYPE_1241 + VVV_43, // META_TILE_TYPE_1242 + VVV_0, // META_TILE_TYPE_1243 + VVV_42, // META_TILE_TYPE_1244 + VVV_42, // META_TILE_TYPE_1245 + VVV_42, // META_TILE_TYPE_1246 + VVV_42, // META_TILE_TYPE_1247 + VVV_0, // META_TILE_TYPE_1248 + VVV_116, // META_TILE_TYPE_1249 + VVV_116, // META_TILE_TYPE_1250 + VVV_116, // META_TILE_TYPE_1251 + VVV_116, // META_TILE_TYPE_1252 + VVV_116, // META_TILE_TYPE_1253 + VVV_116, // META_TILE_TYPE_1254 + VVV_116, // META_TILE_TYPE_1255 + VVV_116, // META_TILE_TYPE_1256 + VVV_116, // META_TILE_TYPE_1257 + VVV_116, // META_TILE_TYPE_1258 + VVV_116, // META_TILE_TYPE_1259 + VVV_44, // META_TILE_TYPE_1260 + VVV_42, // META_TILE_TYPE_1261 + VVV_42, // META_TILE_TYPE_1262 + VVV_0, // META_TILE_TYPE_1263 + VVV_38, // META_TILE_TYPE_1264 + VVV_38, // META_TILE_TYPE_1265 + VVV_0, // META_TILE_TYPE_1266 + VVV_0, // META_TILE_TYPE_1267 + VVV_0, // META_TILE_TYPE_1268 + VVV_0, // META_TILE_TYPE_1269 + VVV_0, // META_TILE_TYPE_1270 + VVV_0, // META_TILE_TYPE_1271 + VVV_0, // META_TILE_TYPE_1272 + VVV_0, // META_TILE_TYPE_1273 + VVV_0, // META_TILE_TYPE_1274 + VVV_63, // META_TILE_TYPE_1275 + VVV_83, // META_TILE_TYPE_1276 + VVV_0, // META_TILE_TYPE_1277 + VVV_0, // META_TILE_TYPE_1278 + VVV_0, // META_TILE_TYPE_1279 + VVV_0, // META_TILE_TYPE_1280 + VVV_38, // META_TILE_TYPE_1281 + VVV_38, // META_TILE_TYPE_1282 + VVV_40, // META_TILE_TYPE_1283 + VVV_12, // META_TILE_TYPE_1284 + VVV_12, // META_TILE_TYPE_1285 + VVV_12, // META_TILE_TYPE_1286 + VVV_12, // META_TILE_TYPE_1287 + VVV_12, // META_TILE_TYPE_1288 + VVV_12, // META_TILE_TYPE_1289 + VVV_12, // META_TILE_TYPE_1290 + VVV_12, // META_TILE_TYPE_1291 + VVV_12, // META_TILE_TYPE_1292 + VVV_12, // META_TILE_TYPE_1293 + VVV_12, // META_TILE_TYPE_1294 + VVV_41, // META_TILE_TYPE_1295 + VVV_41, // META_TILE_TYPE_1296 + VVV_38, // META_TILE_TYPE_1297 + VVV_38, // META_TILE_TYPE_1298 + VVV_12, // META_TILE_TYPE_1299 + VVV_12, // META_TILE_TYPE_1300 + VVV_41, // META_TILE_TYPE_1301 + VVV_41, // META_TILE_TYPE_1302 + VVV_12, // META_TILE_TYPE_1303 + VVV_12, // META_TILE_TYPE_1304 + VVV_116, // META_TILE_TYPE_1305 + VVV_116, // META_TILE_TYPE_1306 + VVV_116, // META_TILE_TYPE_1307 + VVV_116, // META_TILE_TYPE_1308 + VVV_116, // META_TILE_TYPE_1309 + VVV_0, // META_TILE_TYPE_1310 + VVV_0, // META_TILE_TYPE_1311 + VVV_40, // META_TILE_TYPE_1312 + VVV_0, // META_TILE_TYPE_1313 + VVV_0, // META_TILE_TYPE_1314 + VVV_43, // META_TILE_TYPE_1315 + VVV_42, // META_TILE_TYPE_1316 + VVV_0, // META_TILE_TYPE_1317 + VVV_0, // META_TILE_TYPE_1318 + VVV_44, // META_TILE_TYPE_1319 + VVV_13, // META_TILE_TYPE_1320 + VVV_40, // META_TILE_TYPE_1321 + VVV_40, // META_TILE_TYPE_1322 + VVV_42, // META_TILE_TYPE_1323 + VVV_44, // META_TILE_TYPE_1324 + VVV_45, // META_TILE_TYPE_1325 + VVV_44, // META_TILE_TYPE_1326 + VVV_45, // META_TILE_TYPE_1327 + VVV_44, // META_TILE_TYPE_1328 + VVV_45, // META_TILE_TYPE_1329 + VVV_42, // META_TILE_TYPE_1330 + VVV_42, // META_TILE_TYPE_1331 + VVV_42, // META_TILE_TYPE_1332 + VVV_43, // META_TILE_TYPE_1333 + VVV_43, // META_TILE_TYPE_1334 + VVV_43, // META_TILE_TYPE_1335 + VVV_100, // META_TILE_TYPE_1336 + VVV_101, // META_TILE_TYPE_1337 + VVV_104, // META_TILE_TYPE_1338 + VVV_106, // META_TILE_TYPE_1339 + VVV_102, // META_TILE_TYPE_1340 + VVV_107, // META_TILE_TYPE_1341 + VVV_105, // META_TILE_TYPE_1342 + VVV_103, // META_TILE_TYPE_1343 + VVV_0, // META_TILE_TYPE_1344 + VVV_14, // META_TILE_TYPE_1345 + VVV_14, // META_TILE_TYPE_1346 + VVV_41, // META_TILE_TYPE_1347 + VVV_40, // META_TILE_TYPE_1348 #ifdef EU -VVV_0, // META_TILE_TYPE_1349 -VVV_0, // META_TILE_TYPE_1350 + VVV_0, // META_TILE_TYPE_1349 + VVV_0, // META_TILE_TYPE_1350 #else -VVV_41, // META_TILE_TYPE_1349 -VVV_41, // META_TILE_TYPE_1350 + VVV_41, // META_TILE_TYPE_1349 + VVV_41, // META_TILE_TYPE_1350 #endif -VVV_40, // META_TILE_TYPE_1351 + VVV_40, // META_TILE_TYPE_1351 #ifdef EU -VVV_0, // META_TILE_TYPE_1352 + VVV_0, // META_TILE_TYPE_1352 #else -VVV_41, // META_TILE_TYPE_1352 + VVV_41, // META_TILE_TYPE_1352 #endif -VVV_40, // META_TILE_TYPE_1353 + VVV_40, // META_TILE_TYPE_1353 #ifdef EU -VVV_0, // META_TILE_TYPE_1354 + VVV_0, // META_TILE_TYPE_1354 #else -VVV_41, // META_TILE_TYPE_1354 + VVV_41, // META_TILE_TYPE_1354 #endif -VVV_17, // META_TILE_TYPE_1355 -VVV_15, // META_TILE_TYPE_1356 -VVV_0, // META_TILE_TYPE_1357 -VVV_116, // META_TILE_TYPE_1358 -VVV_43, // META_TILE_TYPE_1359 -VVV_63, // META_TILE_TYPE_1360 -VVV_35, // META_TILE_TYPE_1361 -VVV_35, // META_TILE_TYPE_1362 -VVV_35, // META_TILE_TYPE_1363 -VVV_35, // META_TILE_TYPE_1364 -VVV_116, // META_TILE_TYPE_1365 -VVV_116, // META_TILE_TYPE_1366 -VVV_0, // META_TILE_TYPE_1367 -VVV_42, // META_TILE_TYPE_1368 -VVV_42, // META_TILE_TYPE_1369 -VVV_0, // META_TILE_TYPE_1370 -VVV_0, // META_TILE_TYPE_1371 -VVV_0, // META_TILE_TYPE_1372 -VVV_10, // META_TILE_TYPE_1373 -VVV_40, // META_TILE_TYPE_1374 -VVV_40, // META_TILE_TYPE_1375 -VVV_40, // META_TILE_TYPE_1376 -VVV_40, // META_TILE_TYPE_1377 -VVV_40, // META_TILE_TYPE_1378 -VVV_40, // META_TILE_TYPE_1379 -VVV_40, // META_TILE_TYPE_1380 -VVV_40, // META_TILE_TYPE_1381 -VVV_40, // META_TILE_TYPE_1382 -VVV_40, // META_TILE_TYPE_1383 -VVV_40, // META_TILE_TYPE_1384 -VVV_40, // META_TILE_TYPE_1385 -VVV_0, // META_TILE_TYPE_1386 -VVV_0, // META_TILE_TYPE_1387 -VVV_44, // META_TILE_TYPE_1388 -VVV_43, // META_TILE_TYPE_1389 -VVV_40, // META_TILE_TYPE_1390 -VVV_40, // META_TILE_TYPE_1391 -VVV_40, // META_TILE_TYPE_1392 -VVV_116, // META_TILE_TYPE_1393 -VVV_0, // META_TILE_TYPE_1394 -VVV_0, // META_TILE_TYPE_1395 + VVV_17, // META_TILE_TYPE_1355 + VVV_15, // META_TILE_TYPE_1356 + VVV_0, // META_TILE_TYPE_1357 + VVV_116, // META_TILE_TYPE_1358 + VVV_43, // META_TILE_TYPE_1359 + VVV_63, // META_TILE_TYPE_1360 + VVV_35, // META_TILE_TYPE_1361 + VVV_35, // META_TILE_TYPE_1362 + VVV_35, // META_TILE_TYPE_1363 + VVV_35, // META_TILE_TYPE_1364 + VVV_116, // META_TILE_TYPE_1365 + VVV_116, // META_TILE_TYPE_1366 + VVV_0, // META_TILE_TYPE_1367 + VVV_42, // META_TILE_TYPE_1368 + VVV_42, // META_TILE_TYPE_1369 + VVV_0, // META_TILE_TYPE_1370 + VVV_0, // META_TILE_TYPE_1371 + VVV_0, // META_TILE_TYPE_1372 + VVV_10, // META_TILE_TYPE_1373 + VVV_40, // META_TILE_TYPE_1374 + VVV_40, // META_TILE_TYPE_1375 + VVV_40, // META_TILE_TYPE_1376 + VVV_40, // META_TILE_TYPE_1377 + VVV_40, // META_TILE_TYPE_1378 + VVV_40, // META_TILE_TYPE_1379 + VVV_40, // META_TILE_TYPE_1380 + VVV_40, // META_TILE_TYPE_1381 + VVV_40, // META_TILE_TYPE_1382 + VVV_40, // META_TILE_TYPE_1383 + VVV_40, // META_TILE_TYPE_1384 + VVV_40, // META_TILE_TYPE_1385 + VVV_0, // META_TILE_TYPE_1386 + VVV_0, // META_TILE_TYPE_1387 + VVV_44, // META_TILE_TYPE_1388 + VVV_43, // META_TILE_TYPE_1389 + VVV_40, // META_TILE_TYPE_1390 + VVV_40, // META_TILE_TYPE_1391 + VVV_40, // META_TILE_TYPE_1392 + VVV_116, // META_TILE_TYPE_1393 + VVV_0, // META_TILE_TYPE_1394 + VVV_0, // META_TILE_TYPE_1395 -}; \ No newline at end of file +}; diff --git a/src/cutscene.c b/src/cutscene.c index fbb2aa96..343ea37b 100644 --- a/src/cutscene.c +++ b/src/cutscene.c @@ -15,6 +15,7 @@ #include "npc.h" #include "object.h" #include "screen.h" +#include "tiles.h" void sub_08051F78(void); void sub_08051FF0(void); @@ -595,10 +596,10 @@ void sub_08053D34(void) { if (gMenu.field_0xa != 0) { gMenu.field_0xa = 0; if (CheckLocalFlagByBank(FLAG_BANK_7, 0x3d)) { - SetMetaTileType(0x74, 0xc4, 1); + SetMetaTileType(META_TILE_TYPE_116, TILE_POS(4, 3), LAYER_BOTTOM); } if (CheckLocalFlagByBank(FLAG_BANK_7, 0x3e)) { - SetMetaTileType(0x74, 0xcc, 1); + SetMetaTileType(META_TILE_TYPE_116, TILE_POS(12, 3), LAYER_BOTTOM); } } if (gFadeControl.active == 0) { diff --git a/src/data/data_080046A4.c b/src/data/data_080046A4.c index 25521082..f72179c1 100644 --- a/src/data/data_080046A4.c +++ b/src/data/data_080046A4.c @@ -36,7 +36,7 @@ const u16 gUnk_080047F6[] = { #define PLAYER_MACRO_JUMPTO 0x4000 // Jump #define PLAYER_MACRO_IGNORE 0x8000 // Do not set playerMacroWaiting and playerMacroHeldKeys? -#define PLAYER_MACRO_END 0xC000 // End // 49152 +#define PLAYER_MACRO_END 0xC000 // End // 49152 // Link tries out the shield. const PlayerMacroEntry gPlayerMacroTryOutShield[] = { @@ -96,4 +96,4 @@ const PlayerMacroEntry gPlayerMacroBladeBrothers7[] = { { 4, 0 }, { 4, B_BUTTON }, { 4, 0 }, { 4, B_BUTTON }, { 4, 0 }, { 4, B_BUTTON }, { 4, 0 }, { 4, B_BUTTON }, { 4, 0 }, { 4, B_BUTTON }, { 30, 0 }, }; -const u16 gPlayerMacroBladeBrothers7End = PLAYER_MACRO_END; \ No newline at end of file +const u16 gPlayerMacroBladeBrothers7End = PLAYER_MACRO_END; diff --git a/src/data/mapVvvToSurfaceType.c b/src/data/mapVvvToSurfaceType.c index 50abb84e..b3a9a99e 100644 --- a/src/data/mapVvvToSurfaceType.c +++ b/src/data/mapVvvToSurfaceType.c @@ -1,74 +1,75 @@ #include "asm.h" #include "player.h" +#include "tiles.h" const KeyValuePair gMapVvvToSurfaceType[] = { - { 13, SURFACE_PIT }, - { 38, SURFACE_SLOPE_GNDGND_V }, - { 39, SURFACE_SLOPE_GNDGND_H }, - { 82, SURFACE_26 }, - { 99, SURFACE_24 }, - { 116, SURFACE_EDGE }, - { 8, SURFACE_7 }, - { 31, SURFACE_MINISH_DOOR_FRONT }, - { 32, SURFACE_MINISH_DOOR_BACK }, - { 33, SURFACE_A }, - { 34, SURFACE_B }, - { 24, SURFACE_16 }, - { 18, SURFACE_ICE }, - { 15, SURFACE_SHALLOW_WATER }, - { 14, SURFACE_SLOPE_GNDWATER }, - { 16, SURFACE_WATER }, - { 27, SURFACE_BUTTON }, - { 29, SURFACE_BUTTON }, - { 97, SURFACE_1B }, - { 90, SURFACE_1C }, - { 17, SURFACE_14 }, - { 98, SURFACE_21 }, - { 101, SURFACE_6 }, - { 102, SURFACE_6 }, - { 103, SURFACE_6 }, - { 104, SURFACE_6 }, - { 105, SURFACE_6 }, - { 106, SURFACE_6 }, - { 108, SURFACE_6 }, - { 109, SURFACE_6 }, - { 110, SURFACE_6 }, - { 111, SURFACE_6 }, - { 107, SURFACE_6 }, - { 48, SURFACE_22 }, - { 49, SURFACE_22 }, - { 50, SURFACE_22 }, - { 51, SURFACE_22 }, - { 22, SURFACE_DUST }, - { 25, SURFACE_HOLE }, - { 240, SURFACE_HOLE }, - { 87, SURFACE_CLONE_TILE }, - { 83, SURFACE_LADDER }, - { 241, SURFACE_LADDER }, - { 63, SURFACE_AUTO_LADDER }, - { 80, SURFACE_CLIMB_WALL }, - { 81, SURFACE_2C }, - { 52, SURFACE_LIGHT_GRADE }, - { 53, SURFACE_29 }, - { 42, SURFACE_E }, - { 43, SURFACE_D }, - { 44, SURFACE_10 }, - { 45, SURFACE_F }, - { 64, SURFACE_E }, - { 65, SURFACE_D }, - { 66, SURFACE_10 }, - { 67, SURFACE_F }, - { 72, SURFACE_10 }, - { 74, SURFACE_E }, - { 69, SURFACE_E }, - { 71, SURFACE_E }, - { 70, SURFACE_D }, - { 73, SURFACE_D }, - { 68, SURFACE_D }, - { 75, SURFACE_D }, - { 19, SURFACE_SWAMP }, - { 41, SURFACE_DOOR }, - { 23, SURFACE_2D }, - { 40, SURFACE_DOOR_13 }, + { VVV_13, SURFACE_PIT }, + { VVV_38, SURFACE_SLOPE_GNDGND_V }, + { VVV_39, SURFACE_SLOPE_GNDGND_H }, + { VVV_82, SURFACE_26 }, + { VVV_99, SURFACE_24 }, + { VVV_116, SURFACE_EDGE }, + { VVV_8, SURFACE_7 }, + { VVV_31, SURFACE_MINISH_DOOR_FRONT }, + { VVV_32, SURFACE_MINISH_DOOR_BACK }, + { VVV_33, SURFACE_A }, + { VVV_34, SURFACE_B }, + { VVV_24, SURFACE_16 }, + { VVV_18, SURFACE_ICE }, + { VVV_15, SURFACE_SHALLOW_WATER }, + { VVV_14, SURFACE_SLOPE_GNDWATER }, + { VVV_16, SURFACE_WATER }, + { VVV_27, SURFACE_BUTTON }, + { VVV_29, SURFACE_BUTTON }, + { VVV_97, SURFACE_1B }, + { VVV_90, SURFACE_1C }, + { VVV_17, SURFACE_14 }, + { VVV_98, SURFACE_21 }, + { VVV_101, SURFACE_6 }, + { VVV_102, SURFACE_6 }, + { VVV_103, SURFACE_6 }, + { VVV_104, SURFACE_6 }, + { VVV_105, SURFACE_6 }, + { VVV_106, SURFACE_6 }, + { VVV_108, SURFACE_6 }, + { VVV_109, SURFACE_6 }, + { VVV_110, SURFACE_6 }, + { VVV_111, SURFACE_6 }, + { VVV_107, SURFACE_6 }, + { VVV_48, SURFACE_22 }, + { VVV_49, SURFACE_22 }, + { VVV_50, SURFACE_22 }, + { VVV_51, SURFACE_22 }, + { VVV_22, SURFACE_DUST }, + { VVV_25, SURFACE_HOLE }, + { VVV_240, SURFACE_HOLE }, + { VVV_87, SURFACE_CLONE_TILE }, + { VVV_83, SURFACE_LADDER }, + { VVV_241, SURFACE_LADDER }, + { VVV_63, SURFACE_AUTO_LADDER }, + { VVV_80, SURFACE_CLIMB_WALL }, + { VVV_81, SURFACE_2C }, + { VVV_52, SURFACE_LIGHT_GRADE }, + { VVV_53, SURFACE_29 }, + { VVV_42, SURFACE_E }, + { VVV_43, SURFACE_D }, + { VVV_44, SURFACE_10 }, + { VVV_45, SURFACE_F }, + { VVV_64, SURFACE_E }, + { VVV_65, SURFACE_D }, + { VVV_66, SURFACE_10 }, + { VVV_67, SURFACE_F }, + { VVV_72, SURFACE_10 }, + { VVV_74, SURFACE_E }, + { VVV_69, SURFACE_E }, + { VVV_71, SURFACE_E }, + { VVV_70, SURFACE_D }, + { VVV_73, SURFACE_D }, + { VVV_68, SURFACE_D }, + { VVV_75, SURFACE_D }, + { VVV_19, SURFACE_SWAMP }, + { VVV_41, SURFACE_DOOR }, + { VVV_23, SURFACE_2D }, + { VVV_40, SURFACE_DOOR_13 }, }; // const u16 gMapVvvToSurfaceTypeEnd = 0; diff --git a/src/enemy/armos.c b/src/enemy/armos.c index c7148123..aa355b8f 100644 --- a/src/enemy/armos.c +++ b/src/enemy/armos.c @@ -427,7 +427,7 @@ bool32 sub_0803086C(ArmosEntity* this) { centerY = super->y.HALF_U.HI - gRoomControls.origin_y; // TODO for some reason the 0x3f of COORD_TO_TILE(super) needs to be forced to r2 here. metaTilePos = ((((((super)->x.HALF.HI) - gRoomControls.origin_x) >> 4) & (r2 = 0x3f)) | - (((((super)->y.HALF.HI) - gRoomControls.origin_y) >> 4) & r2) << 6); + (((((super)->y.HALF.HI) - gRoomControls.origin_y) >> 4) & r2) << 6); if (GetMetaTileType(metaTilePos, super->collisionLayer) == SPECIAL_META_TILE_73) { if (CheckPlayerInRegion(centerX, centerY, 2, 0xc) != 0) { diff --git a/src/enemy/businessScrub.c b/src/enemy/businessScrub.c index 17d477e1..cce55c43 100644 --- a/src/enemy/businessScrub.c +++ b/src/enemy/businessScrub.c @@ -7,13 +7,14 @@ #include "asm.h" #include "enemy.h" -#include "message.h" -#include "save.h" -#include "npc.h" #include "functions.h" #include "game.h" #include "item.h" #include "kinstone.h" +#include "message.h" +#include "npc.h" +#include "save.h" +#include "tiles.h" void sub_08028E9C(Entity*); void sub_08028EDC(Entity*); @@ -429,7 +430,7 @@ void sub_08028FFC(Entity* this) { this->x.HALF.HI = this->field_0x78.HWORD; this->y.HALF.HI = this->field_0x7a.HWORD; InitializeAnimation(this, 0); - SetMetaTile(0x4022, this->field_0x76.HWORD, this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->field_0x76.HWORD, this->collisionLayer); } void sub_08029078(Entity* this) { diff --git a/src/enemy/chuchuBoss.c b/src/enemy/chuchuBoss.c index d082e09b..79c6eeaa 100644 --- a/src/enemy/chuchuBoss.c +++ b/src/enemy/chuchuBoss.c @@ -5,10 +5,10 @@ * * @brief Chuchu Boss enemy */ -#include "global.h" #include "enemy.h" #include "object.h" #include "functions.h" +#include "tiles.h" typedef struct { u8 unk_00; @@ -563,7 +563,7 @@ void sub_080262A8(ChuchuBossEntity* this) { gPlayerEntity.animationState = 0; gRoomControls.camera_target = super; gRoomControls.scrollSpeed = 1; - SetMetaTile(0x4022, 0x2c8, 1); + SetMetaTile(SPECIAL_META_TILE_34, TILE_POS(8, 11), LAYER_BOTTOM); } } diff --git a/src/enemy/cloudPiranha.c b/src/enemy/cloudPiranha.c index 61937366..ebbcf289 100644 --- a/src/enemy/cloudPiranha.c +++ b/src/enemy/cloudPiranha.c @@ -6,11 +6,11 @@ */ #define NENT_DEPRECATED -#include "global.h" #include "collision.h" #include "enemy.h" #include "functions.h" #include "physics.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -241,18 +241,18 @@ void sub_080387F0(CloudPiranhaEntity* this) { }; u8 bVar1; u8 bVar2; - s32 iVar4; + s32 collisionData; const s8* ptr; if ((super->action != 4) && (this->unk_82 == 0)) { - iVar4 = GetCollisionDataAtMetaTilePos(COORD_TO_TILE(super), super->collisionLayer); - if ((iVar4 == 0xf) || (iVar4 == 0x2a)) { + collisionData = GetCollisionDataAtMetaTilePos(COORD_TO_TILE(super), super->collisionLayer); + if ((collisionData == COLLISION_DATA_15) || (collisionData == COLLISION_DATA_42)) { this->unk_82 = 0x20; } ptr = &gUnk_080CF520[super->direction >> 1]; bVar1 = super->direction; - iVar4 = GetCollisionDataRelativeTo(super, ptr[0], ptr[1]); - if ((iVar4 == 0xf) || (iVar4 == 0x2a)) { + collisionData = GetCollisionDataRelativeTo(super, ptr[0], ptr[1]); + if ((collisionData == COLLISION_DATA_15) || (collisionData == COLLISION_DATA_42)) { super->direction = (super->direction + 0x10) & 0x1f; } else { if (super->collisions != COL_NONE) { diff --git a/src/enemy/doorMimic.c b/src/enemy/doorMimic.c index 0630e316..b9acc3e4 100644 --- a/src/enemy/doorMimic.c +++ b/src/enemy/doorMimic.c @@ -5,9 +5,10 @@ * @brief Door Mimic enemy */ -#include "sound.h" #include "enemy.h" #include "functions.h" +#include "sound.h" +#include "tiles.h" void sub_080221C0(Entity*); @@ -114,10 +115,10 @@ void sub_08022198(Entity* this) { } void sub_080221C0(Entity* this) { - u32 tile = COORD_TO_TILE(this) + gUnk_080B4488[this->type2]; - this->field_0x7c.HALF.HI = tile; - this->field_0x7c.HALF.LO = GetMetaTileIndex(tile, this->collisionLayer); - SetMetaTile(gUnk_080CB79C[this->type2], tile, this->collisionLayer); + u32 tilePos = COORD_TO_TILE(this) + gUnk_080B4488[this->type2]; + this->field_0x7c.HALF.HI = tilePos; + this->field_0x7c.HALF.LO = GetMetaTileIndex(tilePos, this->collisionLayer); + SetMetaTile(gUnk_080CB79C[this->type2], tilePos, this->collisionLayer); } // clang-format off @@ -182,10 +183,10 @@ const PosOffset gUnk_080CB76C[][6] = { }; const u16 gUnk_080CB79C[] = { - 0x4023, - 0x4025, - 0x4026, - 0x4024, + SPECIAL_META_TILE_35, + SPECIAL_META_TILE_37, + SPECIAL_META_TILE_38, + SPECIAL_META_TILE_36, }; diff --git a/src/enemy/enemy64.c b/src/enemy/enemy64.c index 8ac7b621..6c8344a9 100644 --- a/src/enemy/enemy64.c +++ b/src/enemy/enemy64.c @@ -6,10 +6,10 @@ */ #define NENT_DEPRECATED -#include "global.h" #include "enemy.h" #include "functions.h" #include "fade.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -88,16 +88,16 @@ void Enemy64_Init(Enemy64Entity* this) { Entity* tail; if (CheckFlags(0x7c)) { - SetMetaTile(0x4081, 10, 2); - SetMetaTile(0x4081, 0x4a, 2); - SetMetaTile(0x4081, 0x8a, 2); - SetMetaTile(0x4081, 0xca, 2); + SetMetaTile(SPECIAL_META_TILE_129, TILE_POS(10, 0), LAYER_TOP); + SetMetaTile(SPECIAL_META_TILE_129, TILE_POS(10, 1), LAYER_TOP); + SetMetaTile(SPECIAL_META_TILE_129, TILE_POS(10, 2), LAYER_TOP); + SetMetaTile(SPECIAL_META_TILE_129, TILE_POS(10, 3), LAYER_TOP); DeleteThisEntity(); } else { - sub_0807B7D8(0x323, 10, 1); - sub_0807B7D8(0x323, 0x4a, 1); - sub_0807B7D8(0x323, 0x8a, 1); - sub_0807B7D8(0x323, 0xca, 1); + sub_0807B7D8(0x323, TILE_POS(10, 0), LAYER_BOTTOM); + sub_0807B7D8(0x323, TILE_POS(10, 1), LAYER_BOTTOM); + sub_0807B7D8(0x323, TILE_POS(10, 2), LAYER_BOTTOM); + sub_0807B7D8(0x323, TILE_POS(10, 3), LAYER_BOTTOM); } tail = CreateProjectile(GYORG_TAIL); if (tail != NULL) { @@ -442,20 +442,20 @@ void Enemy64_Action4_SubAction7(Enemy64Entity* this) { if (--super->timer == 0) { DeleteThisEntity(); } else if (super->timer == 16) { - sub_0807B7D8(0x36, 0xca, 1); - SetMetaTile(0x4081, 0xca, 2); + sub_0807B7D8(0x36, TILE_POS(10, 3), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_129, TILE_POS(10, 3), LAYER_TOP); SoundReq(SFX_HEART_GET); } else if (super->timer == 24) { - sub_0807B7D8(0x36, 0x8a, 1); - SetMetaTile(0x4081, 0x8a, 2); + sub_0807B7D8(0x36, TILE_POS(10, 2), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_129, TILE_POS(10, 2), LAYER_TOP); SoundReq(SFX_HEART_GET); } else if (super->timer == 32) { - sub_0807B7D8(0x36, 0x4a, 1); - SetMetaTile(0x4081, 0x4a, 2); + sub_0807B7D8(0x36, TILE_POS(10, 1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_129, TILE_POS(10, 1), LAYER_TOP); SoundReq(SFX_HEART_GET); } else if (super->timer == 40) { - sub_0807B7D8(0x36, 10, 1); - SetMetaTile(0x4081, 10, 2); + sub_0807B7D8(0x36, TILE_POS(10, 0), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_129, TILE_POS(10, 0), LAYER_TOP); SoundReq(SFX_HEART_GET); } } diff --git a/src/enemy/eyegore.c b/src/enemy/eyegore.c index c2138689..40cc1eca 100644 --- a/src/enemy/eyegore.c +++ b/src/enemy/eyegore.c @@ -6,12 +6,12 @@ */ #define NENT_DEPRECATED -#include "global.h" #include "enemy.h" #include "functions.h" #include "fade.h" #include "object.h" #include "hitbox.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -27,16 +27,16 @@ typedef struct { /*0x7c*/ u16 unk_7c; /*0x7e*/ u8 unk_7e; /*0x7f*/ u8 unk_7f; - /*0x80*/ u16 unk_80; - /*0x82*/ u16 unk_82; - /*0x84*/ u16 unk_84; - /*0x86*/ u16 unk_86; + /*0x80*/ u16 tileIndex1; + /*0x82*/ u16 tileIndex2; + /*0x84*/ u16 tileIndex3; + /*0x86*/ u16 tileIndex4; } EyegoreEntity; extern Entity* sub_08017A90(Entity*, Entity*); extern Entity* gUnk_020000B0; -extern const u8 gUnk_080B3E80[]; +extern const u8 gMapMetaTileTypeToCollisionData[]; void sub_08031344(EyegoreEntity*); void sub_08031344(EyegoreEntity*); @@ -329,27 +329,27 @@ void sub_08030E80(EyegoreEntity* this) { } void sub_08030F00(EyegoreEntity* this) { - u32 position = COORD_TO_TILE_OFFSET(super, 8, 0x14); - u16 tileIndex = GetMetaTileIndex(position, super->collisionLayer); - this->unk_80 = tileIndex; - tileIndex = GetMetaTileIndex(position + 1, super->collisionLayer); - this->unk_82 = tileIndex; - tileIndex = GetMetaTileIndex(position + 0x40, super->collisionLayer); - this->unk_84 = tileIndex; - tileIndex = GetMetaTileIndex(position + 0x41, super->collisionLayer); - this->unk_86 = tileIndex; - SetMetaTile(0x4022, position, super->collisionLayer); - SetMetaTile(0x4022, position + 1, super->collisionLayer); - SetMetaTile(0x4022, position + 0x40, super->collisionLayer); - SetMetaTile(0x4022, position + 0x41, super->collisionLayer); + u32 metaTilePos = COORD_TO_TILE_OFFSET(super, 8, 20); + u16 tileIndex = GetMetaTileIndex(metaTilePos + TILE_POS(0, 0), super->collisionLayer); + this->tileIndex1 = tileIndex; + tileIndex = GetMetaTileIndex(metaTilePos + TILE_POS(1, 0), super->collisionLayer); + this->tileIndex2 = tileIndex; + tileIndex = GetMetaTileIndex(metaTilePos + TILE_POS(0, 1), super->collisionLayer); + this->tileIndex3 = tileIndex; + tileIndex = GetMetaTileIndex(metaTilePos + TILE_POS(1, 1), super->collisionLayer); + this->tileIndex4 = tileIndex; + SetMetaTile(SPECIAL_META_TILE_34, metaTilePos, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, metaTilePos + 1, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, metaTilePos + TILE_POS(0, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, metaTilePos + TILE_POS(1, 1), super->collisionLayer); } void sub_08030FB4(EyegoreEntity* this) { - u32 position = COORD_TO_TILE_OFFSET(super, 8, 0x14); - SetMetaTile(this->unk_80, position, super->collisionLayer); - SetMetaTile(this->unk_82, position + 1, super->collisionLayer); - SetMetaTile(this->unk_84, position + 0x40, super->collisionLayer); - SetMetaTile(this->unk_86, position + 0x41, super->collisionLayer); + u32 metaTilePos = COORD_TO_TILE_OFFSET(super, 8, 20); + SetMetaTile(this->tileIndex1, metaTilePos + TILE_POS(0, 0), super->collisionLayer); + SetMetaTile(this->tileIndex2, metaTilePos + TILE_POS(1, 0), super->collisionLayer); + SetMetaTile(this->tileIndex3, metaTilePos + TILE_POS(0, 1), super->collisionLayer); + SetMetaTile(this->tileIndex4, metaTilePos + TILE_POS(1, 1), super->collisionLayer); } void sub_08031024(EyegoreEntity* this) { @@ -403,10 +403,11 @@ void sub_08031024(EyegoreEntity* this) { } else { tmp2 = this->unk_7b >> 1; uVar5 = GetMetaTileTypeByPos(super->x.HALF.HI + gUnk_080CE2C0[tmp2], - super->y.HALF.HI + gUnk_080CE2C0[tmp2 + 1], super->collisionLayer); + super->y.HALF.HI + gUnk_080CE2C0[tmp2 + 1], super->collisionLayer); uVar8 = GetMetaTileTypeByPos(super->x.HALF.HI + gUnk_080CE2C0[tmp2 + 2], - super->y.HALF.HI + gUnk_080CE2C0[tmp2 + 3], super->collisionLayer); - if (!(((gUnk_080B3E80[uVar5] == 0) && (gUnk_080B3E80[uVar8] == 0)) || + super->y.HALF.HI + gUnk_080CE2C0[tmp2 + 3], super->collisionLayer); + if (!(((gMapMetaTileTypeToCollisionData[uVar5] == 0) && + (gMapMetaTileTypeToCollisionData[uVar8] == 0)) || ((this->unk_7b | 1) & 1) == 0)) { if (super->direction >> 3 == super->animationState) { this->unk_78 |= 0x20; diff --git a/src/enemy/flyingPot.c b/src/enemy/flyingPot.c index b9a2d293..d3026ed6 100644 --- a/src/enemy/flyingPot.c +++ b/src/enemy/flyingPot.c @@ -10,6 +10,7 @@ #include "enemy.h" #include "player.h" #include "room.h" +#include "tiles.h" extern Hitbox gUnk_080FD34C; @@ -39,26 +40,26 @@ enum FlyingPotSubActions { }; // Functions -void FlyingPot_OnTick(FlyingPotEntity*); // 0803708C -void FlyingPot_OnCollision(FlyingPotEntity*); // 080370A4 -void FlyingPot_OnGrabbed(FlyingPotEntity*); // 0803712C +void FlyingPot_OnTick(FlyingPotEntity*); +void FlyingPot_OnCollision(FlyingPotEntity*); +void FlyingPot_OnGrabbed(FlyingPotEntity*); // Subactions -void FlyingPot_SubAction0(FlyingPotEntity*); // 08037144 -void FlyingPot_SubAction1(FlyingPotEntity*); // 0803715C -void FlyingPot_SubAction2(FlyingPotEntity*); // 0803718C -void FlyingPot_SubAction3(FlyingPotEntity*); // 080371F8 +void FlyingPot_SubAction0(FlyingPotEntity*); +void FlyingPot_SubAction1(FlyingPotEntity*); +void FlyingPot_SubAction2(FlyingPotEntity*); +void FlyingPot_SubAction3(FlyingPotEntity*); void FlyingPot_SubActionDoNothing(FlyingPotEntity*); -void FlyingPot_SubAction5(FlyingPotEntity*); // 08037218 +void FlyingPot_SubAction5(FlyingPotEntity*); // Actions -void FlyingPot_Init(FlyingPotEntity*); // ? // 08037220 -void FlyingPot_Action1(FlyingPotEntity*); // 08037280 -void FlyingPot_Action2(FlyingPotEntity*); // 080372E8 -void FlyingPot_Action3(FlyingPotEntity*); // 0803737C -void FlyingPot_Action4(FlyingPotEntity*); // 080373B0 -void FlyingPot_Action5(FlyingPotEntity*); // 080373C8 -void FlyingPot_Action6(FlyingPotEntity*); // 080373E0 +void FlyingPot_Init(FlyingPotEntity*); +void FlyingPot_Action1(FlyingPotEntity*); +void FlyingPot_Action2(FlyingPotEntity*); +void FlyingPot_Action3(FlyingPotEntity*); +void FlyingPot_Action4(FlyingPotEntity*); +void FlyingPot_Action5(FlyingPotEntity*); +void FlyingPot_Action6(FlyingPotEntity*); void sub_08037408(FlyingPotEntity*); void sub_08037418(FlyingPotEntity*); @@ -178,14 +179,14 @@ void FlyingPot_Init(FlyingPotEntity* this) { tile = TILE(super->x.HALF.HI, super->y.HALF.HI); this->tileIndex = GetMetaTileIndex(tile, super->collisionLayer); - SetMetaTile(0x4000, tile, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_0, tile, super->collisionLayer); InitializeAnimation(super, 5); } void FlyingPot_Action1(FlyingPotEntity* this) { sub_08037418(this); - if (GetMetaTileTypeByEntity(super) != 0x4000) { + if (GetMetaTileTypeByEntity(super) != SPECIAL_META_TILE_0) { SetMetaTile(this->tileIndex, TILE(super->x.HALF.HI, super->y.HALF.HI), super->collisionLayer); sub_08037408(this); } @@ -255,10 +256,10 @@ void sub_08037408(FlyingPotEntity* this) { } void sub_08037418(FlyingPotEntity* this) { - u32 tile = COORD_TO_TILE(super); + u32 tilePos = COORD_TO_TILE(super); - if (GetMetaTileIndex(tile, super->collisionLayer) == 0x4067) { - SetMetaTile(this->tileIndex, tile, super->collisionLayer); + if (GetMetaTileIndex(tilePos, super->collisionLayer) == SPECIAL_META_TILE_103) { + SetMetaTile(this->tileIndex, tilePos, super->collisionLayer); DeleteThisEntity(); } } diff --git a/src/enemy/flyingSkull.c b/src/enemy/flyingSkull.c index fdb65937..8c1df1a0 100644 --- a/src/enemy/flyingSkull.c +++ b/src/enemy/flyingSkull.c @@ -4,11 +4,12 @@ #include "enemy.h" #include "functions.h" #include "hitbox.h" +#include "tiles.h" typedef struct { Entity base; u8 filler[0xc]; - u16 unk_0x74; + u16 metaTileIndex; u8 unk_0x76; } FlyingSkullEntity; @@ -45,7 +46,7 @@ void FlyingSkull_OnCollision(FlyingSkullEntity* this) { COLLISION_OFF(super); super->zVelocity = Q_16_16(2.625); super->spritePriority.b1 = 1; - SetMetaTile(this->unk_0x74, COORD_TO_TILE(super), super->collisionLayer); + SetMetaTile(this->metaTileIndex, COORD_TO_TILE(super), super->collisionLayer); } else if (super->z.HALF.HI) { sub_0803A0E0(this); } @@ -84,7 +85,7 @@ void sub_08039CE0(FlyingSkullEntity* this) { super->timer = 1; super->z.HALF.HI = -1; super->spriteOffsetX = 0; - SetMetaTile(this->unk_0x74, COORD_TO_TILE(super), super->collisionLayer); + SetMetaTile(this->metaTileIndex, COORD_TO_TILE(super), super->collisionLayer); } if (sub_0806F520(super)) { @@ -108,15 +109,15 @@ void sub_08039D6C(FlyingSkullEntity* this) { } void sub_08039D74(FlyingSkullEntity* this) { - u32 tmp; + u32 tilePos; super->action = 1; super->gustJarFlags = 2; super->carryFlags = 0; super->y.HALF.HI += 3; - tmp = COORD_TO_TILE(super); - this->unk_0x74 = GetMetaTileIndex(tmp, super->collisionLayer); - SetMetaTile(0x4060, tmp, super->collisionLayer); + tilePos = COORD_TO_TILE(super); + this->metaTileIndex = GetMetaTileIndex(tilePos, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_96, tilePos, super->collisionLayer); InitializeAnimation(super, 0); } @@ -124,8 +125,8 @@ void sub_08039DD8(FlyingSkullEntity* this) { sub_0803A100(this); if (super->type == 0) { - if (GetMetaTileTypeByEntity(super) == 0x4073) { - SetMetaTile(this->unk_0x74, COORD_TO_TILE(super), super->collisionLayer); + if (GetMetaTileTypeByEntity(super) == SPECIAL_META_TILE_115) { + SetMetaTile(this->metaTileIndex, COORD_TO_TILE(super), super->collisionLayer); sub_0803A0E0(this); } @@ -142,7 +143,7 @@ void sub_08039DD8(FlyingSkullEntity* this) { if (ent != NULL) { ent->type2 = 1; CopyPosition(super, ent); - SetMetaTile(this->unk_0x74, COORD_TO_TILE(super), super->collisionLayer); + SetMetaTile(this->metaTileIndex, COORD_TO_TILE(super), super->collisionLayer); DeleteEntity(super); } } @@ -162,7 +163,7 @@ void sub_08039EE4(FlyingSkullEntity* this) { super->hitbox = (Hitbox*)&gUnk_080FD340; gPlayerEntity.animationState; this->unk_0x76 = gPlayerEntity.animationState; - SetMetaTile(this->unk_0x74, COORD_TO_TILE(super), super->collisionLayer); + SetMetaTile(this->metaTileIndex, COORD_TO_TILE(super), super->collisionLayer); } void sub_08039F4C(FlyingSkullEntity* this) { @@ -195,7 +196,7 @@ void sub_08039FAC(FlyingSkullEntity* this) { super->hitType = 0xa0; super->flags2 = 0xf; super->hitbox = (Hitbox*)&gUnk_080FD34C; - SetMetaTile(this->unk_0x74, COORD_TO_TILE(super), super->collisionLayer); + SetMetaTile(this->metaTileIndex, COORD_TO_TILE(super), super->collisionLayer); } } @@ -242,9 +243,9 @@ void sub_0803A0E0(FlyingSkullEntity* this) { } void sub_0803A100(FlyingSkullEntity* this) { - u32 tile = COORD_TO_TILE(super); - if (GetMetaTileIndex(tile, super->collisionLayer) == 0x4067) { - SetMetaTile(this->unk_0x74, tile, super->collisionLayer); + u32 tilePos = COORD_TO_TILE(super); + if (GetMetaTileIndex(tilePos, super->collisionLayer) == SPECIAL_META_TILE_103) { + SetMetaTile(this->metaTileIndex, tilePos, super->collisionLayer); DeleteThisEntity(); } } diff --git a/src/enemy/gyorgFemale.c b/src/enemy/gyorgFemale.c index d59e10d9..242bb525 100644 --- a/src/enemy/gyorgFemale.c +++ b/src/enemy/gyorgFemale.c @@ -28,7 +28,7 @@ void sub_08046518(void); void sub_080467DC(GyorgFemaleEntity*); extern u8 gUpdateVisibleTiles; -extern u8 gUnk_080B3E80[]; +extern u8 gMapMetaTileTypeToCollisionData[]; extern const MapDataDefinition gGyorgMapping0[]; extern const MapDataDefinition gGyorgMapping1[]; @@ -255,8 +255,8 @@ void sub_08046518(void) { u16 new_var; stack1[j] = sl[j]; new_var = ptr[sl[j]]; - stack2[j] = gUnk_080B37A0[new_var]; - r6[j] = gUnk_080B3E80[new_var]; + stack2[j] = gMapMetaTileTypeToVvv[new_var]; + r6[j] = gMapMetaTileTypeToCollisionData[new_var]; } sl += 0x40; stack1 += 0x40; diff --git a/src/enemy/mazaalMacro.c b/src/enemy/mazaalMacro.c index 21af3148..4c293dca 100644 --- a/src/enemy/mazaalMacro.c +++ b/src/enemy/mazaalMacro.c @@ -10,6 +10,7 @@ #include "screenTransitions.h" #include "script.h" #include "structures.h" +#include "tiles.h" extern void sub_0807B600(u32); @@ -83,7 +84,7 @@ void sub_08034CC4(Entity* this) { this->field_0x78.HWORD = 0x4b0; sub_08034F70(this); InitializeAnimation(this, this->type); - SetMetaTile(0x4022, COORD_TO_TILE(this), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, COORD_TO_TILE(this), this->collisionLayer); entity = CreateEnemy(MAZAAL_MACRO, 2); if (entity != NULL) { this->child = entity; diff --git a/src/enemy/moldworm.c b/src/enemy/moldworm.c index f0594910..6b005f3f 100644 --- a/src/enemy/moldworm.c +++ b/src/enemy/moldworm.c @@ -8,9 +8,10 @@ #include "collision.h" #include "enemy.h" #include "functions.h" +#include "tiles.h" extern void SoundReqClipped(Entity*, u32); -extern bool32 sub_08023A38(u32); +extern bool32 sub_08023A38(u32 metaTileType); extern void sub_08023990(Entity*, u32, u32); extern void sub_08023A88(Entity*, u32); @@ -487,12 +488,12 @@ void sub_080239F0(Entity* this) { *(u8*)((int)&this->field_0x86 + 1) = 0x88; } -bool32 sub_08023A38(u32 tileType) { - if (tileType == 0x1a || tileType == 0x29) { +bool32 sub_08023A38(u32 metaTileType) { + if (metaTileType == META_TILE_TYPE_26 || metaTileType == META_TILE_TYPE_41) { return TRUE; } else { - tileType = gUnk_080B37A0[tileType]; - if (tileType == 9 || tileType == 11 || tileType == 10 || tileType == 12) { + metaTileType = gMapMetaTileTypeToVvv[metaTileType]; + if (metaTileType == VVV_9 || metaTileType == VVV_11 || metaTileType == VVV_10 || metaTileType == VVV_12) { return TRUE; } else { return FALSE; diff --git a/src/enemy/puffstool.c b/src/enemy/puffstool.c index 334585fd..bd354489 100644 --- a/src/enemy/puffstool.c +++ b/src/enemy/puffstool.c @@ -10,7 +10,7 @@ #include "object.h" #include "tiles.h" -extern u8 gUnk_080B3E80[]; +extern u8 gMapMetaTileTypeToCollisionData[]; bool32 sub_080258C4(Entity*); void sub_08025B18(Entity*); @@ -414,23 +414,27 @@ bool32 sub_0802571C(Entity* this) { } bool32 sub_080257EC(Entity* this, u32 x, u32 y) { - u16 tileType = sub_080B1A48(x - 0x00, y - 0x00, this->collisionLayer); - if (tileType != 0x312 && gUnk_080B37A0[tileType] != 0x16 && gUnk_080B3E80[tileType] == 0) { + u16 metaTileType = sub_080B1A48(x - 0x00, y - 0x00, this->collisionLayer); + if (metaTileType != 0x312 && gMapMetaTileTypeToVvv[metaTileType] != VVV_22 && + gMapMetaTileTypeToCollisionData[metaTileType] == 0) { return TRUE; } - tileType = sub_080B1A48(x - 0x10, y - 0x00, this->collisionLayer); - if (tileType != 0x312 && gUnk_080B37A0[tileType] != 0x16 && gUnk_080B3E80[tileType] == 0) { + metaTileType = sub_080B1A48(x - 0x10, y - 0x00, this->collisionLayer); + if (metaTileType != 0x312 && gMapMetaTileTypeToVvv[metaTileType] != VVV_22 && + gMapMetaTileTypeToCollisionData[metaTileType] == 0) { return TRUE; } - tileType = sub_080B1A48(x - 0x00, y - 0x10, this->collisionLayer); - if (tileType != 0x312 && gUnk_080B37A0[tileType] != 0x16 && gUnk_080B3E80[tileType] == 0) { + metaTileType = sub_080B1A48(x - 0x00, y - 0x10, this->collisionLayer); + if (metaTileType != 0x312 && gMapMetaTileTypeToVvv[metaTileType] != VVV_22 && + gMapMetaTileTypeToCollisionData[metaTileType] == 0) { return TRUE; } - tileType = sub_080B1A48(x - 0x10, y - 0x10, this->collisionLayer); - if (tileType != 0x312 && gUnk_080B37A0[tileType] != 0x16 && gUnk_080B3E80[tileType] == 0) { + metaTileType = sub_080B1A48(x - 0x10, y - 0x10, this->collisionLayer); + if (metaTileType != 0x312 && gMapMetaTileTypeToVvv[metaTileType] != VVV_22 && + gMapMetaTileTypeToCollisionData[metaTileType] == 0) { return TRUE; } @@ -469,9 +473,9 @@ bool32 sub_0802594C(Entity* this, u32 param_2) { s16 xDiff; s16 yDiff; s16 iVar9; - u32 uVar1; + u32 layer; const s8* unk = gUnk_080CC090[param_2]; - uVar1 = this->collisionLayer; + layer = this->collisionLayer; xDiff = (this->x.HALF.HI - gRoomControls.origin_x + 8) & -0x10; yDiff = (this->y.HALF.HI - gRoomControls.origin_y + 8) & -0x10; do { @@ -482,10 +486,10 @@ bool32 sub_0802594C(Entity* this, u32 param_2) { u8 bVar6; iVar9 = xDiff + unk[0]; iVar11 = yDiff + unk[1]; - bVar4 = GetCollisionDataAtWorldCoords(iVar9 - 0x00, iVar11 - 0x00, uVar1); - bVar5 = GetCollisionDataAtWorldCoords(iVar9 - 0x10, iVar11 - 0x00, uVar1); - bVar6 = GetCollisionDataAtWorldCoords(iVar9 - 0x00, iVar11 - 0x10, uVar1); - bVar7 = GetCollisionDataAtWorldCoords(iVar9 - 0x10, iVar11 - 0x10, uVar1); + bVar4 = GetCollisionDataAtWorldCoords(iVar9 - 0x00, iVar11 - 0x00, layer); + bVar5 = GetCollisionDataAtWorldCoords(iVar9 - 0x10, iVar11 - 0x00, layer); + bVar6 = GetCollisionDataAtWorldCoords(iVar9 - 0x00, iVar11 - 0x10, layer); + bVar7 = GetCollisionDataAtWorldCoords(iVar9 - 0x10, iVar11 - 0x10, layer); if ((bVar4 | bVar5 | bVar6 | bVar7) == 0) { this->field_0x7c.HALF.LO = gRoomControls.origin_x + iVar9; this->field_0x7c.HALF.HI = gRoomControls.origin_y + iVar11; diff --git a/src/enemy/rollobite.c b/src/enemy/rollobite.c index 48ce8093..bbc4a051 100644 --- a/src/enemy/rollobite.c +++ b/src/enemy/rollobite.c @@ -5,11 +5,12 @@ * @brief Rollobite enemy */ +#include "collision.h" #include "enemy.h" #include "physics.h" #include "player.h" #include "room.h" -#include "collision.h" +#include "tiles.h" extern void (*const Rollobite_Functions[])(Entity*); extern void (*const gRollobiteActions[])(Entity*); @@ -243,11 +244,11 @@ void sub_08020A30(Entity* this) { } void sub_08020A7C(Entity* this) { - int tmp = Random(); + s32 tmp = Random(); u32 state = DirectionRound(this->direction + gUnk_080CA6D4[tmp % 3]); if (sub_08049FA0(this) == 0) { - int tmp = DirectionRoundUp(sub_08049EE4(this)); + u32 tmp = DirectionRoundUp(sub_08049EE4(this)); if ((state ^ 0x10) == tmp) state ^= 0x10; } @@ -259,9 +260,9 @@ void sub_08020A7C(Entity* this) { bool32 Rollobite_TryToHoleUp(Entity* this) { if (Rollobite_IsRolledUp(this) && this->z.HALF.HI == 0) { - int tile = COORD_TO_TILE(this); - int iVar1 = GetMetaTileType(tile, this->collisionLayer); - if ((iVar1 * 0x10000 - 0x710000U) >> 0x10 < 2) { + u32 tilePos = COORD_TO_TILE(this); + u32 tileType = GetMetaTileType(tilePos, this->collisionLayer); + if ((tileType * 0x10000 - 0x710000U) >> 0x10 < 2) { this->action = 6; COLLISION_OFF(this); this->x.HALF.HI &= 0xfff0; @@ -270,7 +271,7 @@ bool32 Rollobite_TryToHoleUp(Entity* this) { this->y.HALF.HI += 13; this->zVelocity = Q_16_16(2.0); InitializeAnimation(this, this->animationState + 0x14); - SetMetaTile(0x4034, tile, this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_52, tilePos, this->collisionLayer); return TRUE; } } diff --git a/src/enemy/slime.c b/src/enemy/slime.c index 05f2a32f..b8da0996 100644 --- a/src/enemy/slime.c +++ b/src/enemy/slime.c @@ -133,21 +133,21 @@ void sub_080450A8(Entity* this) { DeleteEntity(this); } -void sub_08045178(Entity* this, Entity* child, int h, int v) { +void sub_08045178(Entity* this, Entity* child, int offsetX, int offsetY) { int x, y; if (child == NULL) return; sub_0804A4E4(this, child); - if (GetCollisionDataRelativeTo(child, h, v)) + if (GetCollisionDataRelativeTo(child, offsetX, offsetY)) return; - x = child->x.HALF.HI + h; + x = child->x.HALF.HI + offsetX; if (0 <= x && x < (gRoomControls.origin_x + gRoomControls.width)) child->x.HALF.HI = x; - y = child->y.HALF.HI + v; + y = child->y.HALF.HI + offsetY; if (0 <= y && y < (gRoomControls.origin_y + gRoomControls.height)) child->y.HALF.HI = y; } diff --git a/src/enemy/spinyBeetle.c b/src/enemy/spinyBeetle.c index 19900171..4d481b59 100644 --- a/src/enemy/spinyBeetle.c +++ b/src/enemy/spinyBeetle.c @@ -3,6 +3,7 @@ #include "enemy.h" #include "functions.h" #include "object.h" +#include "tiles.h" typedef struct { Entity base; @@ -89,7 +90,7 @@ void SpinyBeetle_Init(SpinyBeetleEntity* this) { this->unk_7b = 0; this->tile = COORD_TO_TILE(super); this->tileIndex = GetMetaTileIndex(this->tile, super->collisionLayer); - SetMetaTile(0x4022, this->tile, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->tile, super->collisionLayer); obj = CreateObject(OBJECT_ON_BEETLE, super->type, 0); if (obj == NULL) { @@ -234,7 +235,7 @@ void sub_08033B44(SpinyBeetleEntity* this) { this->tile = COORD_TO_TILE(super); this->tileIndex = GetMetaTileIndex(this->tile, super->collisionLayer); - if (this->tileIndex != 0x4022) { + if (this->tileIndex != SPECIAL_META_TILE_34) { stop++; } else { switch (DirectionRound(super->direction) >> 2) { @@ -254,7 +255,7 @@ void sub_08033B44(SpinyBeetleEntity* this) { } } - SetMetaTile(0x4022, this->tile, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->tile, super->collisionLayer); InitializeAnimation(super, 0); } diff --git a/src/enemy/stalfos.c b/src/enemy/stalfos.c index 9710736a..098a4c8a 100644 --- a/src/enemy/stalfos.c +++ b/src/enemy/stalfos.c @@ -6,10 +6,10 @@ */ #define NENT_DEPRECATED -#include "global.h" #include "collision.h" #include "enemy.h" #include "functions.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -440,7 +440,7 @@ void sub_08039AD4(StalfosEntity* this) { super->action = 0xb; super->child = projectile; InitAnimationForceUpdate(super, super->animationState + 0x18); - SetMetaTile(0x4067, position, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_103, position, super->collisionLayer); return; } } diff --git a/src/enemy/torchTrap.c b/src/enemy/torchTrap.c index db31a752..1aeca966 100644 --- a/src/enemy/torchTrap.c +++ b/src/enemy/torchTrap.c @@ -4,11 +4,12 @@ #include "room.h" #include "physics.h" #include "player.h" +#include "tiles.h" typedef struct { Entity base; u8 filler[0xc]; - u16 unk_74; + u16 metaTilePos; u16 filler2; u16 unk_78; u16 projectileTimer; @@ -40,7 +41,7 @@ void TorchTrap_Init(TorchTrapEntity* this) { this->unk_84 &= 0xfff; sub_0804A720(super); super->action = 1; - this->unk_74 = this->unk_82 & 0xfff; + this->metaTilePos = this->unk_82 & 0xfff; super->x.HALF.HI = ((this->unk_82 & 0x3f) << 4) + 8 + gRoomControls.origin_x; super->y.HALF.HI = ((this->unk_82 & 0xfc0) >> 2) + (gRoomControls.origin_y + 8); super->direction = ((s16)this->unk_82 & 0xf000) >> 10; @@ -70,7 +71,7 @@ void sub_0803CF38(TorchTrapEntity* this) { } void sub_0803CF94(TorchTrapEntity* this) { - if (GetMetaTileType(this->unk_74, super->collisionLayer) == 0x76) { + if (GetMetaTileType(this->metaTilePos, super->collisionLayer) == META_TILE_TYPE_118) { this->unk_80 = 0; TorchTrap_Reset(this); } else if (this->unk_7c && sub_0803CFD8(this)) { @@ -79,35 +80,34 @@ void sub_0803CF94(TorchTrapEntity* this) { } bool32 sub_0803CFD8(TorchTrapEntity* this) { - u32 rv; + u32 result; if (this->unk_7c == 0) { - rv = 1; + result = TRUE; } else { - rv = CheckFlags(this->unk_7c); + result = CheckFlags(this->unk_7c); } - return rv; + return result; } bool32 sub_0803CFF0(TorchTrapEntity* this) { - u32 rv; + u32 result; if (this->unk_80 != 0) { if (this->unk_80 == this->unk_7c) { u32 val = CheckFlags(this->unk_80); - rv = 0; + result = FALSE; if (val == 0) { - rv = 1; + result = TRUE; } - return rv; + return result; } else { return CheckFlags(this->unk_80); } } - return 0; + return FALSE; } void TorchTrap_Reset(TorchTrapEntity* this) { - u32 val; super->action = 2; if (this->unk_78) { this->projectileTimer = this->unk_78; @@ -136,7 +136,7 @@ void TorchTrap_CreateProjectile(TorchTrapEntity* this) { void sub_0803D0B0(TorchTrapEntity* this) { super->action = 3; - sub_0807B7D8(0x75, this->unk_74, super->collisionLayer); + sub_0807B7D8(META_TILE_TYPE_117, this->metaTilePos, super->collisionLayer); } void (*const gTorchTrapActions[])(TorchTrapEntity*) = { @@ -147,12 +147,12 @@ void (*const gTorchTrapActions[])(TorchTrapEntity*) = { }; const u16 gTorchTrapTimerLengths[] = { - 0x3c, 0x3c, 0x5a, 0x5a, 0x5a, 0x78, 0x78, 0x96, + 60, 60, 90, 90, 90, 120, 120, 150, }; const u16 gTorchTrapProjectileSpeeds[] = { - 0x80, - 0x100, - 0x180, - 0x200, + 128, + 256, + 384, + 512, }; diff --git a/src/enemy/vaatiEyesMacro.c b/src/enemy/vaatiEyesMacro.c index 8018cdea..1dac37a1 100644 --- a/src/enemy/vaatiEyesMacro.c +++ b/src/enemy/vaatiEyesMacro.c @@ -221,7 +221,7 @@ void sub_0802EFB8(Entity* this) { u32 uVar1; u32 rand; u32 uVar3; - int iVar4; + u32 collisionData; rand = Random(); if ((rand >> 0x10 & 3) != 0) { @@ -230,8 +230,9 @@ void sub_0802EFB8(Entity* this) { uVar3 = GetFacingDirection(&gPlayerEntity, this); uVar1 = (uVar3 + 4) & 0x18; } - iVar4 = GetCollisionDataAtMetaTilePos(TILE(this->x.HALF.HI, this->y.HALF.HI) + gUnk_080B4488[((uVar1) >> 3)], 1); - if (iVar4 != 0) { + collisionData = + GetCollisionDataAtMetaTilePos(TILE(this->x.HALF.HI, this->y.HALF.HI) + gUnk_080B4488[((uVar1) >> 3)], 1); + if (collisionData != 0) { this->direction = 0xff; } else { this->timer = (rand & 3) + 1; diff --git a/src/enemy/vaatiProjectile.c b/src/enemy/vaatiProjectile.c index a69b118d..95730d9f 100644 --- a/src/enemy/vaatiProjectile.c +++ b/src/enemy/vaatiProjectile.c @@ -8,6 +8,7 @@ #include "enemy.h" #include "functions.h" #include "screenTransitions.h" +#include "tiles.h" extern Entity* gUnk_020000B0; @@ -273,10 +274,8 @@ bool32 sub_0803E4A0(Entity* this) { } void sub_0803E4D8(Entity* this) { - u32 tile; - - tile = TILE(this->x.HALF.HI, this->y.HALF.HI + 8); - if (GetCollisionDataAtMetaTilePos(tile, gPlayerEntity.collisionLayer) != 0xff) { - SetMetaTile(0x4074, tile, gPlayerEntity.collisionLayer); + u32 metaTilePos = TILE(this->x.HALF.HI, this->y.HALF.HI + 8); + if (GetCollisionDataAtMetaTilePos(metaTilePos, gPlayerEntity.collisionLayer) != COLLISION_DATA_255) { + SetMetaTile(SPECIAL_META_TILE_116, metaTilePos, gPlayerEntity.collisionLayer); } } diff --git a/src/enemy/wizzrobeWind.c b/src/enemy/wizzrobeWind.c index 2a87a111..339c36c0 100644 --- a/src/enemy/wizzrobeWind.c +++ b/src/enemy/wizzrobeWind.c @@ -6,12 +6,12 @@ */ #define NENT_DEPRECATED -#include "global.h" #include "collision.h" #include "enemy.h" #include "enemy/wizzrobe.h" #include "functions.h" #include "object.h" +#include "tiles.h" extern void (*const WizzrobeWind_Functions[])(WizzrobeEntity*); extern void (*const WizzrobeWind_Actions[])(WizzrobeEntity*); @@ -211,13 +211,13 @@ void sub_0802F888(WizzrobeEntity* this) { super->direction = (sub_08049F84(super, 3) + 4) & 0x18; this->tilePosition = COORD_TO_TILE(super); this->tileIndex = GetMetaTileIndex(this->tilePosition, super->collisionLayer); - SetMetaTile(0x4071, this->tilePosition, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_113, this->tilePosition, super->collisionLayer); } void sub_0802F8E4(WizzrobeEntity* this) { u16 uVar1; s32 iVar4; - u32 uVar6; + u32 metaTilePos; u32 uVar7; u32 uVar8; @@ -235,9 +235,9 @@ void sub_0802F8E4(WizzrobeEntity* this) { uVar1 = this->unk_72; iVar4 = ((s32)(rand)&0x7ff0) % (this->unk_6f << 3); uVar7 = (uVar1 + iVar4) | 8; - uVar6 = TILE(uVar8, uVar7); - if ((GetCollisionDataAtMetaTilePos(uVar6, super->collisionLayer) == 0) && - (GetMetaTileIndex(uVar6, super->collisionLayer) != 0x4071)) { + metaTilePos = TILE(uVar8, uVar7); + if ((GetCollisionDataAtMetaTilePos(metaTilePos, super->collisionLayer) == 0) && + (GetMetaTileIndex(metaTilePos, super->collisionLayer) != SPECIAL_META_TILE_113)) { super->x.HALF.HI = (s16)uVar8; super->y.HALF.HI = (s16)uVar7; if (sub_08049FA0(super) != 0) { diff --git a/src/entity.c b/src/entity.c index b1817b4d..404f3a05 100644 --- a/src/entity.c +++ b/src/entity.c @@ -5,6 +5,7 @@ #include "message.h" #include "npc.h" #include "manager/diggingCaveEntranceManager.h" +#include "tiles.h" extern u8 gUpdateVisibleTiles; extern Manager gUnk_02033290; @@ -40,29 +41,29 @@ const u8 gUnk_081091E4[] = { }; void sub_0805E248(void) { - s32 v0; + s32 metaTilePos; - v0 = gDiggingCaveEntranceTransition.entrance->targetTilePosition; + metaTilePos = gDiggingCaveEntranceTransition.entrance->targetTilePosition; if (gRoomControls.area == AREA_VEIL_FALLS || gRoomControls.area == AREA_VEIL_FALLS_DIG_CAVE) { - SetMetaTileType(0x27c, v0 + TILE_POS(-1, -1), 1); - SetMetaTileType(0x283, v0 + TILE_POS(-1, -1), 2); - SetMetaTileType(0x27d, v0 + TILE_POS(0, -1), 1); - SetMetaTileType(0x284, v0 + TILE_POS(0, -1), 2); - SetMetaTileType(0x27e, v0 + TILE_POS(1, -1), 1); - SetMetaTileType(0x285, v0 + TILE_POS(1, -1), 2); - SetMetaTileType(0x27f, v0 + TILE_POS(-1, 0), 1); - SetMetaTileType(0x280, v0 + TILE_POS(0, 0), 1); - SetMetaTileType(0x282, v0 + TILE_POS(1, 0), 1); + SetMetaTileType(META_TILE_TYPE_636, metaTilePos + TILE_POS(-1, -1), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_643, metaTilePos + TILE_POS(-1, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_637, metaTilePos + TILE_POS(0, -1), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_644, metaTilePos + TILE_POS(0, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_638, metaTilePos + TILE_POS(1, -1), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_645, metaTilePos + TILE_POS(1, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_639, metaTilePos + TILE_POS(-1, 0), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_640, metaTilePos + TILE_POS(0, 0), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_642, metaTilePos + TILE_POS(1, 0), LAYER_BOTTOM); } else { - SetMetaTileType(0x26c, v0 + TILE_POS(-1, -1), 1); - SetMetaTileType(0x273, v0 + TILE_POS(-1, -1), 2); - SetMetaTileType(0x26d, v0 + TILE_POS(0, -1), 1); - SetMetaTileType(0x274, v0 + TILE_POS(0, -1), 2); - SetMetaTileType(0x26e, v0 + TILE_POS(1, -1), 1); - SetMetaTileType(0x275, v0 + TILE_POS(1, -1), 2); - SetMetaTileType(0x26f, v0 + TILE_POS(-1, 0), 1); - SetMetaTileType(0x270, v0 + TILE_POS(0, 0), 1); - SetMetaTileType(0x272, v0 + TILE_POS(1, 0), 1); + SetMetaTileType(META_TILE_TYPE_620, metaTilePos + TILE_POS(-1, -1), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_627, metaTilePos + TILE_POS(-1, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_621, metaTilePos + TILE_POS(0, -1), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_628, metaTilePos + TILE_POS(0, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_622, metaTilePos + TILE_POS(1, -1), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_629, metaTilePos + TILE_POS(1, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_623, metaTilePos + TILE_POS(-1, 0), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_624, metaTilePos + TILE_POS(0, 0), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_626, metaTilePos + TILE_POS(1, 0), LAYER_BOTTOM); } gUpdateVisibleTiles = 0; } diff --git a/src/gameUtils.c b/src/gameUtils.c index cec63381..7947ea92 100644 --- a/src/gameUtils.c +++ b/src/gameUtils.c @@ -853,7 +853,7 @@ void DummyHandler(u32* a1) { } void sub_08053434(u32* a1) { - if (gArea.locationIndex == 29 && *a1) { + if (gArea.locationIndex == 29 && *a1) { // AREA_DARK_HYRULE_CASTLE if (!--*a1) { ResetTimerFlags(); MenuFadeIn(5, 6); diff --git a/src/item/itemMoleMitts.c b/src/item/itemMoleMitts.c index 0b5c8b17..53800f30 100644 --- a/src/item/itemMoleMitts.c +++ b/src/item/itemMoleMitts.c @@ -176,17 +176,17 @@ void sub_08077448(ItemBehavior* this, u32 index) { s32 sub_080774A0(void) { static const s8 gUnk_0811BE1E[] = { 0, -13, 13, 0, 0, 16, -13, 0, 0, 0 }; - u32 iVar2; + u32 collisionData; u32 metaTilePos; metaTilePos = COORD_TO_TILE_OFFSET((&gPlayerEntity), -gUnk_0811BE1E[gPlayerEntity.animationState & 6], - -gUnk_0811BE1E[(gPlayerEntity.animationState & 6) + 1]); + -gUnk_0811BE1E[(gPlayerEntity.animationState & 6) + 1]); - iVar2 = GetCollisionDataAtMetaTilePos(metaTilePos, gPlayerEntity.collisionLayer); + collisionData = GetCollisionDataAtMetaTilePos(metaTilePos, gPlayerEntity.collisionLayer); - if (iVar2 > 0x16) + if (collisionData > 0x16) return 0; - if (iVar2 < 0xf) + if (collisionData < 0xf) return 0; if (GetVvvAtMetaTilePos(metaTilePos, gPlayerEntity.collisionLayer) != VVV_86) { return 1; diff --git a/src/kinstone.c b/src/kinstone.c index b2a1f7ce..e4ae451b 100644 --- a/src/kinstone.c +++ b/src/kinstone.c @@ -2,7 +2,6 @@ #include "asm.h" #include "common.h" #include "flags.h" -#include "global.h" #include "item.h" #include "kinstone.h" #include "manager.h" @@ -10,6 +9,7 @@ #include "player.h" #include "room.h" #include "subtask.h" +#include "tiles.h" extern const struct_gUnk_080B3D20 gUnk_080B3D20[]; extern EntityData gUnk_080FEC28[]; @@ -340,7 +340,7 @@ void sub_0801876C(u32 worldEventId, bool32 isKinstoneFused) { if (isKinstoneFused == 0) { return; } - SetMetaTileType(0x168, (ptr->x >> 4 & 0x3f) | (ptr->y >> 4 & 0x3f) << 6, 1); + SetMetaTileType(META_TILE_TYPE_360, (ptr->x >> 4 & 0x3f) | (ptr->y >> 4 & 0x3f) << 6, LAYER_BOTTOM); break; case WORLD_EVENT_TYPE_11: if (isKinstoneFused != 0) { @@ -358,12 +358,12 @@ void sub_0801876C(u32 worldEventId, bool32 isKinstoneFused) { *(u16*)&ent->gustJarState = ptr->y + gRoomControls.origin_y; } if (ptr->entity_idx == 0) { - SetMetaTileType(0x8d, (ptr->x >> 4 & 0x3f) | (ptr->y >> 4 & 0x3f) << 6, 1); + SetMetaTileType(META_TILE_TYPE_141, (ptr->x >> 4 & 0x3f) | (ptr->y >> 4 & 0x3f) << 6, LAYER_BOTTOM); } else { uVar5 = (ptr->x >> 4 & 0x3f) | (ptr->y >> 4 & 0x3f) << 6; - SetMetaTileType(0x8c, uVar5 - 1, 1); - uVar3 = 0x8e; - SetMetaTileType(uVar3, uVar5, 1); + SetMetaTileType(META_TILE_TYPE_140, uVar5 - 1, LAYER_BOTTOM); + uVar3 = META_TILE_TYPE_142; + SetMetaTileType(uVar3, uVar5, LAYER_BOTTOM); } break; case WORLD_EVENT_TYPE_24: @@ -394,67 +394,67 @@ void sub_0801876C(u32 worldEventId, bool32 isKinstoneFused) { void sub_080189EC(u32 worldEventId) { u32 i; int iVar1; - int tilePosition; + int metaTilePos; const WorldEvent* ptr; ptr = &gWorldEvents[worldEventId]; - tilePosition = (ptr->x >> 4) & 0x3f; - tilePosition |= ((ptr->y >> 4) & 0x3f) << 6; - tilePosition -= 0x42; + metaTilePos = (ptr->x >> 4) & 0x3f; + metaTilePos |= ((ptr->y >> 4) & 0x3f) << 6; + metaTilePos -= TILE_POS(2, 1); for (i = 0; i < 4; i++) { - SetMetaTileType(i + 0x1df, tilePosition + i, 2); + SetMetaTileType(i + META_TILE_TYPE_479, metaTilePos + i, LAYER_TOP); } - tilePosition += 0x40; + metaTilePos += TILE_POS(0, 1); for (i = 0; i < 4; i++) { - SetMetaTileType(i + 0x1e3, tilePosition + i, 2); - SetMetaTileType(i + 0x1db, tilePosition + i, 1); + SetMetaTileType(i + META_TILE_TYPE_483, metaTilePos + i, LAYER_TOP); + SetMetaTileType(i + META_TILE_TYPE_475, metaTilePos + i, LAYER_BOTTOM); } } void sub_08018A58(u32 worldEventId) { u32 i; - int iVar2; + int metaTileType; u32 j; - int tilePosition; + int metaTilePos; const WorldEvent* ptr; ptr = &gWorldEvents[worldEventId]; - tilePosition = (ptr->x >> 4) & 0x3f; - tilePosition |= ((ptr->y >> 4) & 0x3f) << 6; - tilePosition -= 0x43; - iVar2 = 0x232; + metaTilePos = (ptr->x >> 4) & 0x3f; + metaTilePos |= ((ptr->y >> 4) & 0x3f) << 6; + metaTilePos -= TILE_POS(3, 1); + metaTileType = META_TILE_TYPE_562; - for (i = 0; i < 4; tilePosition += 0x40, i++) { + for (i = 0; i < 4; metaTilePos += TILE_POS(0, 1), i++) { for (j = 0; j < 7; j++) { - SetMetaTileType(iVar2++, tilePosition + j, 1); + SetMetaTileType(metaTileType++, metaTilePos + j, LAYER_BOTTOM); } } } -void sub_08018AB4(int param_1) { +void sub_08018AB4(int metaTilePos) { u32 i; int iVar2; u32 j; int iVar6; - iVar2 = 0x1e8; - iVar6 = 500; + iVar2 = META_TILE_TYPE_488; + iVar6 = META_TILE_TYPE_500; for (i = 0; i < 3; i++) { j = 0; for (; j < 4; j++) { - SetMetaTileType(iVar2++, param_1 + j, 1); - SetMetaTileType(iVar6++, param_1 - 0x40 + j, 2); + SetMetaTileType(iVar2++, metaTilePos + j, LAYER_BOTTOM); + SetMetaTileType(iVar6++, metaTilePos + TILE_POS(0, -1) + j, LAYER_TOP); } - param_1 += 0x40; + metaTilePos += TILE_POS(0, 1); } } -void sub_08018B10(int param_1) { +void sub_08018B10(int metaTilePos) { int iVar1; u32 index; int iVar3; @@ -463,34 +463,34 @@ void sub_08018B10(int param_1) { iVar4 = 0x1f0; iVar3 = 0x1fc; index = 0; - iVar1 = param_1 - 0x40; + iVar1 = metaTilePos - TILE_POS(0, 1); for (; index < 4; iVar1++, index++) { - SetMetaTileType(iVar4++, param_1 + index, 1); - SetMetaTileType(iVar3++, iVar1, 2); + SetMetaTileType(iVar4++, metaTilePos + index, LAYER_BOTTOM); + SetMetaTileType(iVar3++, iVar1, LAYER_TOP); } } void sub_08018B50(u32 worldEventId) { u32 i; - int iVar2; + int metaTileType; u32 j; - int tilePosition; + int metaTilePos; const WorldEvent* ptr; ptr = &gWorldEvents[worldEventId]; if ((ptr->entity_idx & 0x80) == 0) { - iVar2 = 0x200; + metaTileType = META_TILE_TYPE_512; } else { - iVar2 = 0x219; + metaTileType = META_TILE_TYPE_537; } - tilePosition = (ptr->x >> 4) & 0x3f; - tilePosition |= ((ptr->y >> 4) & 0x3f) << 6; - tilePosition -= 0x82; + metaTilePos = (ptr->x >> 4) & 0x3f; + metaTilePos |= ((ptr->y >> 4) & 0x3f) << 6; + metaTilePos -= TILE_POS(2, 2); - for (i = 0; i < 5; tilePosition += 0x40, i++) { + for (i = 0; i < 5; metaTilePos += 0x40, i++) { for (j = 0; j < 5; j++) { - SetMetaTileType(iVar2++, tilePosition + j, 1); + SetMetaTileType(metaTileType++, metaTilePos + j, LAYER_BOTTOM); } } } @@ -513,7 +513,7 @@ void sub_08018BB4(u32 worldEventId) { } else { layer = 2; } - SetMetaTileType(0x73, position, layer); + SetMetaTileType(META_TILE_TYPE_115, position, layer); } } @@ -523,7 +523,7 @@ void CreateMinishEntrance(u32 tilePos) { for (y = 0; y <= 3; y++) { for (x = 0; x <= 4; x++) { - SetMetaTileType(tileID++, tilePos + x, 1); + SetMetaTileType(tileID++, tilePos + x, LAYER_BOTTOM); } tilePos += 0x40; } @@ -533,7 +533,7 @@ void sub_08018C58(u32 tilePos) { u32 i; for (i = 0; i < 6; i += 2, tilePos += 0x40) { - SetMetaTileType(0x260 + i, tilePos, 1); - SetMetaTileType(0x261 + i, tilePos + 1, 1); + SetMetaTileType(META_TILE_TYPE_608 + i, tilePos, LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_609 + i, tilePos + 1, LAYER_BOTTOM); } } diff --git a/src/manager/bombableWallManager.c b/src/manager/bombableWallManager.c index b207e91c..0dd5379d 100644 --- a/src/manager/bombableWallManager.c +++ b/src/manager/bombableWallManager.c @@ -91,7 +91,8 @@ u32 BombableWallManager_GetBombableType(u32 metaTilePos, u32 layer) { void BombableWallManager_DestroyWall(BombableWallManager* this) { static void (*const gUnk_08108CE8[])(u32, u32) = { - BombableWallManager_DestroyWall0, BombableWallManager_DestroyWall1, BombableWallManager_DestroyWall2, BombableWallManager_DestroyWall3, BombableWallManager_DestroyWall4, + BombableWallManager_DestroyWall0, BombableWallManager_DestroyWall1, BombableWallManager_DestroyWall2, + BombableWallManager_DestroyWall3, BombableWallManager_DestroyWall4, }; if (super->type != 0xff) { gUnk_08108CE8[super->type](this->metaTilePos, this->layer); @@ -99,11 +100,11 @@ void BombableWallManager_DestroyWall(BombableWallManager* this) { } void BombableWallManager_DestroyWall0(u32 metaTilePos, u32 layer) { - SetMetaTileType(META_TILE_TYPE_177, metaTilePos - 0x41, layer); - SetMetaTileType(META_TILE_TYPE_178, metaTilePos - 0x40, layer); - SetMetaTileType(META_TILE_TYPE_179, metaTilePos - 0x3f, layer); - SetMetaTileType(META_TILE_TYPE_180, metaTilePos - 1, layer); - SetMetaTileType(META_TILE_TYPE_183, metaTilePos + 1, layer); + SetMetaTileType(META_TILE_TYPE_177, metaTilePos + TILE_POS(-1, -1), layer); + SetMetaTileType(META_TILE_TYPE_178, metaTilePos + TILE_POS(0, -1), layer); + SetMetaTileType(META_TILE_TYPE_179, metaTilePos + TILE_POS(1, -1), layer); + SetMetaTileType(META_TILE_TYPE_180, metaTilePos + TILE_POS(-1, 0), layer); + SetMetaTileType(META_TILE_TYPE_183, metaTilePos + TILE_POS(1, 0), layer); if (layer == LAYER_BOTTOM) { if (AreaHasEnemies()) { Entity* object = CreateObject(ARCHWAY, 0xe, 0); @@ -120,9 +121,9 @@ void BombableWallManager_DestroyWall0(u32 metaTilePos, u32 layer) { } } - SetMetaTileType(META_TILE_TYPE_184, metaTilePos - 0x41, LAYER_TOP); - SetMetaTileType(META_TILE_TYPE_185, metaTilePos - 0x40, LAYER_TOP); - SetMetaTileType(META_TILE_TYPE_186, metaTilePos - 0x3f, LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_184, metaTilePos + TILE_POS(-1, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_185, metaTilePos + TILE_POS(0, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_186, metaTilePos + TILE_POS(1, -1), LAYER_TOP); } else { Entity* object; SetMetaTileType(META_TILE_TYPE_181, metaTilePos, LAYER_TOP); @@ -142,11 +143,11 @@ void BombableWallManager_DestroyWall0(u32 metaTilePos, u32 layer) { void BombableWallManager_DestroyWall1(u32 metaTilePos, u32 layer) { Entity* object; - SetMetaTileType(META_TILE_TYPE_241, metaTilePos - 0x40, layer); - SetMetaTileType(META_TILE_TYPE_245, metaTilePos - 0x3f, layer); - SetMetaTileType(META_TILE_TYPE_246, metaTilePos + 1, layer); - SetMetaTileType(META_TILE_TYPE_244, metaTilePos + 0x40, layer); - SetMetaTileType(META_TILE_TYPE_247, metaTilePos + 0x41, layer); + SetMetaTileType(META_TILE_TYPE_241, metaTilePos + TILE_POS(0, -1), layer); + SetMetaTileType(META_TILE_TYPE_245, metaTilePos + TILE_POS(1, -1), layer); + SetMetaTileType(META_TILE_TYPE_246, metaTilePos + TILE_POS(1, 0), layer); + SetMetaTileType(META_TILE_TYPE_244, metaTilePos + TILE_POS(0, 1), layer); + SetMetaTileType(META_TILE_TYPE_247, metaTilePos + TILE_POS(1, 1), layer); if (layer == LAYER_BOTTOM) { if (AreaHasEnemies()) { @@ -163,9 +164,9 @@ void BombableWallManager_DestroyWall1(u32 metaTilePos, u32 layer) { SetMetaTileType(META_TILE_TYPE_243, metaTilePos, LAYER_BOTTOM); } } - SetMetaTileType(META_TILE_TYPE_248, metaTilePos - 0x3f, LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_248, metaTilePos + TILE_POS(1, -1), LAYER_TOP); SetMetaTileType(META_TILE_TYPE_249, metaTilePos + 1, LAYER_TOP); - SetMetaTileType(META_TILE_TYPE_250, metaTilePos + 0x41, LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_250, metaTilePos + TILE_POS(1, 1), LAYER_TOP); } else { SetMetaTileType(META_TILE_TYPE_242, metaTilePos, LAYER_TOP); if (!AreaIsDungeon()) { @@ -184,11 +185,11 @@ void BombableWallManager_DestroyWall1(u32 metaTilePos, u32 layer) { void BombableWallManager_DestroyWall2(u32 metaTilePos, u32 layer) { Entity* object; - SetMetaTileType(META_TILE_TYPE_209, metaTilePos - 1, layer); - SetMetaTileType(META_TILE_TYPE_212, metaTilePos + 1, layer); - SetMetaTileType(META_TILE_TYPE_213, metaTilePos + 0x3f, layer); - SetMetaTileType(META_TILE_TYPE_214, metaTilePos + 0x40, layer); - SetMetaTileType(META_TILE_TYPE_215, metaTilePos + 0x41, layer); + SetMetaTileType(META_TILE_TYPE_209, metaTilePos + TILE_POS(-1, 0), layer); + SetMetaTileType(META_TILE_TYPE_212, metaTilePos + TILE_POS(1, 0), layer); + SetMetaTileType(META_TILE_TYPE_213, metaTilePos + TILE_POS(-1, 1), layer); + SetMetaTileType(META_TILE_TYPE_214, metaTilePos + TILE_POS(0, 1), layer); + SetMetaTileType(META_TILE_TYPE_215, metaTilePos + TILE_POS(1, 1), layer); if (layer == LAYER_BOTTOM) { if (AreaHasEnemies()) { object = CreateObject(ARCHWAY, 0xe, 2); @@ -204,9 +205,9 @@ void BombableWallManager_DestroyWall2(u32 metaTilePos, u32 layer) { SetMetaTileType(META_TILE_TYPE_211, metaTilePos, LAYER_BOTTOM); } } - SetMetaTileType(META_TILE_TYPE_216, metaTilePos + 0x3f, LAYER_TOP); - SetMetaTileType(META_TILE_TYPE_217, metaTilePos + 0x40, LAYER_TOP); - SetMetaTileType(META_TILE_TYPE_218, metaTilePos + 0x41, LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_216, metaTilePos + TILE_POS(-1, 1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_217, metaTilePos + TILE_POS(0, 1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_218, metaTilePos + TILE_POS(1, 1), LAYER_TOP); } else { SetMetaTileType(META_TILE_TYPE_210, metaTilePos, LAYER_TOP); if (AreaIsDungeon() == 0) { @@ -225,11 +226,11 @@ void BombableWallManager_DestroyWall2(u32 metaTilePos, u32 layer) { void BombableWallManager_DestroyWall3(u32 metaTilePos, u32 layer) { Entity* object; - SetMetaTileType(META_TILE_TYPE_225, metaTilePos - 0x41, layer); - SetMetaTileType(META_TILE_TYPE_228, metaTilePos - 0x40, layer); - SetMetaTileType(META_TILE_TYPE_226, metaTilePos - 1, layer); - SetMetaTileType(META_TILE_TYPE_227, metaTilePos + 0x3f, layer); - SetMetaTileType(META_TILE_TYPE_231, metaTilePos + 0x40, layer); + SetMetaTileType(META_TILE_TYPE_225, metaTilePos + TILE_POS(-1, -1), layer); + SetMetaTileType(META_TILE_TYPE_228, metaTilePos + TILE_POS(0, -1), layer); + SetMetaTileType(META_TILE_TYPE_226, metaTilePos + TILE_POS(-1, 0), layer); + SetMetaTileType(META_TILE_TYPE_227, metaTilePos + TILE_POS(-1, 1), layer); + SetMetaTileType(META_TILE_TYPE_231, metaTilePos + TILE_POS(0, 1), layer); if (layer == LAYER_BOTTOM) { if (AreaHasEnemies()) { object = CreateObject(ARCHWAY, 0xe, 3); @@ -245,9 +246,9 @@ void BombableWallManager_DestroyWall3(u32 metaTilePos, u32 layer) { SetMetaTileType(META_TILE_TYPE_230, metaTilePos, LAYER_BOTTOM); } } - SetMetaTileType(META_TILE_TYPE_232, metaTilePos - 0x41, LAYER_TOP); - SetMetaTileType(META_TILE_TYPE_233, metaTilePos - 1, LAYER_TOP); - SetMetaTileType(META_TILE_TYPE_234, metaTilePos + 0x3f, LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_232, metaTilePos + TILE_POS(-1, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_233, metaTilePos + TILE_POS(-1, 0), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_234, metaTilePos + TILE_POS(-1, 1), LAYER_TOP); } else { SetMetaTileType(META_TILE_TYPE_229, metaTilePos, LAYER_TOP); if (!AreaIsDungeon()) { @@ -267,11 +268,11 @@ void BombableWallManager_DestroyWall3(u32 metaTilePos, u32 layer) { void BombableWallManager_DestroyWall4(u32 metaTilePos, u32 layer) { Entity* object; - SetMetaTileType(META_TILE_TYPE_193, metaTilePos - 0x41, layer); - SetMetaTileType(META_TILE_TYPE_194, metaTilePos - 0x40, layer); - SetMetaTileType(META_TILE_TYPE_195, metaTilePos - 0x3f, layer); - SetMetaTileType(META_TILE_TYPE_196, metaTilePos - 1, layer); - SetMetaTileType(META_TILE_TYPE_199, metaTilePos + 1, layer); + SetMetaTileType(META_TILE_TYPE_193, metaTilePos + TILE_POS(-1, -1), layer); + SetMetaTileType(META_TILE_TYPE_194, metaTilePos + TILE_POS(0, -1), layer); + SetMetaTileType(META_TILE_TYPE_195, metaTilePos + TILE_POS(1, -1), layer); + SetMetaTileType(META_TILE_TYPE_196, metaTilePos + TILE_POS(-1, 0), layer); + SetMetaTileType(META_TILE_TYPE_199, metaTilePos + TILE_POS(1, 0), layer); if (layer == LAYER_BOTTOM) { if (AreaHasEnemies()) { object = CreateObject(ARCHWAY, 0xe, 0); @@ -287,9 +288,9 @@ void BombableWallManager_DestroyWall4(u32 metaTilePos, u32 layer) { SetMetaTileType(META_TILE_TYPE_198, metaTilePos, LAYER_BOTTOM); } } - SetMetaTileType(META_TILE_TYPE_200, metaTilePos - 0x41, LAYER_TOP); - SetMetaTileType(META_TILE_TYPE_201, metaTilePos - 0x40, LAYER_TOP); - SetMetaTileType(META_TILE_TYPE_202, metaTilePos - 0x3f, LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_200, metaTilePos + TILE_POS(-1, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_201, metaTilePos + TILE_POS(0, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_202, metaTilePos + TILE_POS(1, -1), LAYER_TOP); } else { SetMetaTileType(META_TILE_TYPE_197, metaTilePos, LAYER_TOP); if (!AreaIsDungeon()) { diff --git a/src/manager/diggingCaveEntranceManager.c b/src/manager/diggingCaveEntranceManager.c index ac00ea52..762711ef 100644 --- a/src/manager/diggingCaveEntranceManager.c +++ b/src/manager/diggingCaveEntranceManager.c @@ -11,6 +11,7 @@ #include "player.h" #include "room.h" #include "scroll.h" +#include "tiles.h" void DiggingCaveEntranceManager_Main(DiggingCaveEntranceManager*); void DiggingCaveEntranceManager_Init(DiggingCaveEntranceManager*); @@ -31,7 +32,7 @@ void DiggingCaveEntranceManager_Init(DiggingCaveEntranceManager* this) { const DiggingCaveEntrance* entrance; u8 room; u8 area; - u16 tile = 0x81 << 7; + u16 tile = SPECIAL_META_TILE_128; UpdateIsDiggingCave(); if (gDiggingCaveEntranceTransition.isDiggingCave) { if (gDiggingCaveEntranceTransition.entrance == NULL) { @@ -50,12 +51,12 @@ void DiggingCaveEntranceManager_Init(DiggingCaveEntranceManager* this) { } room = gRoomControls.room; entrance = diggingCaveEntrances[gRoomControls.area]; - tile = 0x81 << 7; // 0x4080 + tile = SPECIAL_META_TILE_128; for (entrance = GetDiggingCaveEntranceForRoom(entrance, room); entrance != 0; entrance = GetDiggingCaveEntranceForRoom(entrance, room)) { - SetMetaTile(tile, entrance->sourceTilePosition + TILE_POS(-1, 1), 1); - SetMetaTile(tile, entrance->sourceTilePosition + TILE_POS(0, 1), 1); - SetMetaTile(tile, entrance->sourceTilePosition + TILE_POS(1, 1), 1); + SetMetaTile(tile, entrance->sourceTilePosition + TILE_POS(-1, 1), LAYER_BOTTOM); + SetMetaTile(tile, entrance->sourceTilePosition + TILE_POS(0, 1), LAYER_BOTTOM); + SetMetaTile(tile, entrance->sourceTilePosition + TILE_POS(1, 1), LAYER_BOTTOM); entrance++; } } diff --git a/src/manager/flameManager.c b/src/manager/flameManager.c index 35d20216..faa40e89 100644 --- a/src/manager/flameManager.c +++ b/src/manager/flameManager.c @@ -10,23 +10,24 @@ #include "asm.h" #include "functions.h" #include "room.h" +#include "tiles.h" void FlameManager_Main(FlameManager* this) { if (super->action == 0) { - this->field_0x38 = TILE(this->field_0x38, this->field_0x3a); - if (GetMetaTileType(this->field_0x38, 2) == 0x75) { + this->metaTilePos = TILE(this->metaTilePos, this->field_0x3a); + if (GetMetaTileType(this->metaTilePos, LAYER_TOP) == META_TILE_TYPE_117) { super->action = 1; - SetMetaTile(0x406a, this->field_0x38, 1); + SetMetaTile(SPECIAL_META_TILE_106, this->metaTilePos, LAYER_BOTTOM); } else { DeleteThisEntity(); } } - if (GetMetaTileType(this->field_0x38, 1) == 0x406b) { - sub_0807B7D8(0x76, this->field_0x38, 2); + if (GetMetaTileType(this->metaTilePos, LAYER_BOTTOM) == SPECIAL_META_TILE_107) { + sub_0807B7D8(META_TILE_TYPE_118, this->metaTilePos, LAYER_TOP); DeleteThisEntity(); } - if (GetMetaTileType(this->field_0x38, 2) == 0x76) { - SetMetaTile(0x406b, this->field_0x38, 1); + if (GetMetaTileType(this->metaTilePos, LAYER_TOP) == META_TILE_TYPE_118) { + SetMetaTile(SPECIAL_META_TILE_107, this->metaTilePos, LAYER_BOTTOM); DeleteThisEntity(); } } diff --git a/src/manager/holeManager.c b/src/manager/holeManager.c index c94155f5..9fb2e333 100644 --- a/src/manager/holeManager.c +++ b/src/manager/holeManager.c @@ -14,7 +14,6 @@ extern void (*const HoleManager_Actions[])(HoleManager*); - void HoleManager_Main(HoleManager* this) { HoleManager_Actions[super->action](this); } diff --git a/src/manager/hyruleTownTilesetManager.c b/src/manager/hyruleTownTilesetManager.c index 172b18c0..ce30c9fb 100644 --- a/src/manager/hyruleTownTilesetManager.c +++ b/src/manager/hyruleTownTilesetManager.c @@ -11,6 +11,7 @@ #include "functions.h" #include "main.h" #include "room.h" +#include "tiles.h" void sub_08059A58(HyruleTownTilesetManager*); void sub_08059A2C(HyruleTownTilesetManager*); @@ -113,32 +114,32 @@ void sub_08059B18(void) { if (CheckGlobalFlag(TATEKAKE_HOUSE) != 0) { for (loopVar = 0; loopVar < 4; ++loopVar) { for (innerLoopVar = 0; innerLoopVar < 4; ++innerLoopVar) { - SetMetaTileByIndex(loopVar * 0x10 + 0x4ab + innerLoopVar, + SetMetaTileByIndex(loopVar * 0x10 + META_TILE_TYPE_1195 + innerLoopVar, COMMON(0x28 + 0x10 * innerLoopVar, loopVar * 0x10), 1); } } for (loopVar = 0; loopVar < 3; ++loopVar) { for (innerLoopVar = 0; innerLoopVar < 4; ++innerLoopVar) { - SetMetaTileByIndex(loopVar * 0x10 + 0x440 + innerLoopVar, + SetMetaTileByIndex(loopVar * 0x10 + META_TILE_TYPE_1088 + innerLoopVar, COMMON(0x28 + 0x10 * innerLoopVar, loopVar * 0x10), 2); } } - SetMetaTileByIndex(0xd6, 0x5c2, 2); - SetMetaTileByIndex(0xd7, 0x5c3, 2); + SetMetaTileByIndex(META_TILE_TYPE_214, TILE_POS(2, 23), LAYER_TOP); + SetMetaTileByIndex(META_TILE_TYPE_215, TILE_POS(3, 23), LAYER_TOP); LoadResourceAsync(&gUnk_086E8460, 0x6001800, 0x800); } else { if (CheckGlobalFlag(TATEKAKE_TOCHU) != 0) { for (loopVar = 0; loopVar < 5; ++loopVar) { for (innerLoopVar = 0; innerLoopVar < 4; ++innerLoopVar) { - SetMetaTileByIndex(loopVar * 0x10 + 0x4a6 + innerLoopVar, + SetMetaTileByIndex(loopVar * 0x10 + META_TILE_TYPE_1190 + innerLoopVar, COMMON(0x28 + 0x10 * innerLoopVar, loopVar * 0x10), 1); } } - SetMetaTileByIndex(0x444, 0x602, 2); - SetMetaTileByIndex(0x445, 0x605, 2); - SetMetaTileByIndex(0x454, 0x642, 2); - SetMetaTileByIndex(0x455, 0x645, 2); + SetMetaTileByIndex(META_TILE_TYPE_1092, TILE_POS(2, 24), LAYER_TOP); + SetMetaTileByIndex(META_TILE_TYPE_1093, TILE_POS(5, 24), LAYER_TOP); + SetMetaTileByIndex(META_TILE_TYPE_1108, TILE_POS(2, 25), LAYER_TOP); + SetMetaTileByIndex(META_TILE_TYPE_1109, TILE_POS(5, 25), LAYER_TOP); } } } diff --git a/src/manager/lightLevelSetManager.c b/src/manager/lightLevelSetManager.c index cbc8fd3c..f53c17e5 100644 --- a/src/manager/lightLevelSetManager.c +++ b/src/manager/lightLevelSetManager.c @@ -79,7 +79,7 @@ void LightLevelSetManager_Type2(LightLevelSetManager* this) { ((s16)this->field_0x38 >> 4 & 0x3fU) | ((s32)((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6); super->action = 1; } else { - if (GetMetaTileType(this->field_0x20, super->type2) == 0x76) { + if (GetMetaTileType(this->field_0x20, super->type2) == META_TILE_TYPE_118) { SetFlag(this->field_0x3e); ChangeLightLevel(super->timer); DeleteThisEntity(); @@ -103,7 +103,7 @@ void LightLevelSetManager_Type3(LightLevelSetManager* this) { break; case 1: - if (GetMetaTileType(this->field_0x20, super->type2) != 0x76) { + if (GetMetaTileType(this->field_0x20, super->type2) != META_TILE_TYPE_118) { return; } SetFlag(this->field_0x3e); @@ -133,13 +133,14 @@ void LightLevelSetManager_Type3(LightLevelSetManager* this) { void sub_0805BE70(LightLevelSetManager* this, u32 metaTileType) { SetMetaTileType(metaTileType, - ((this->field_0x38 << 0x10) >> 0x14 & 0x3fU) | ((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6, - super->type2); + ((this->field_0x38 << 0x10) >> 0x14 & 0x3fU) | ((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6, + super->type2); } void sub_0805BE94(LightLevelSetManager* this) { - SetMetaTileType(META_TILE_TYPE_118, ((this->field_0x38 << 0x10) >> 0x14 & 0x3fU) | ((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6, - super->type2); + SetMetaTileType(META_TILE_TYPE_118, + ((this->field_0x38 << 0x10) >> 0x14 & 0x3fU) | ((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6, + super->type2); ChangeLightLevel(super->timer); DeleteThisEntity(); } diff --git a/src/manager/miscManager.c b/src/manager/miscManager.c index 68a034a0..e73bb714 100644 --- a/src/manager/miscManager.c +++ b/src/manager/miscManager.c @@ -121,9 +121,9 @@ void MiscManager_Type0(MiscManager* this) { void sub_08058F44(u32 x, u32 y, u32 flag) { if (CheckRoomFlag(flag)) return; - if (sub_080B1A48(x, y, 1) != 0x61) + if (sub_080B1A48(x, y, LAYER_BOTTOM) != META_TILE_TYPE_97) return; - SetMetaTileType(0x26, ((x >> 4) & 0x3F) | (((y >> 4) & 0x3F) << 6), 1); + SetMetaTileType(META_TILE_TYPE_38, ((x >> 4) & 0x3F) | (((y >> 4) & 0x3F) << 6), LAYER_BOTTOM); sub_08058F84(x, y); } @@ -240,7 +240,7 @@ void MiscManager_Type5(MiscManager* this) { DeleteThisEntity(); } super->action = 1; - SetMetaTileType(0x365, TILE_LOCAL(this->x, this->y), super->type2); + SetMetaTileType(META_TILE_TYPE_869, TILE_LOCAL(this->x, this->y), super->type2); break; case 1: if (CheckFlags(this->flags)) { @@ -338,10 +338,10 @@ void sub_0805930C(MiscManager* this) { tmp->collisionLayer = 1; } -void SetDirtTile(u32 tile) { - SetMetaTileType(CUT_GRASS, tile, 1); - SetMetaTileType(0, tile, 2); - SetMetaTileType(0, tile - 0x40, 2); +void SetDirtTile(u32 metaTilePos) { + SetMetaTileType(META_TILE_TYPE_29, metaTilePos, LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_0, metaTilePos, LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_0, metaTilePos + TILE_POS(0, -1), LAYER_TOP); } void MiscManager_TypeA(MiscManager* this) { diff --git a/src/manager/railIntersectionManager.c b/src/manager/railIntersectionManager.c index 12b1ab56..88ab4f5a 100644 --- a/src/manager/railIntersectionManager.c +++ b/src/manager/railIntersectionManager.c @@ -7,6 +7,7 @@ #include "manager/railIntersectionManager.h" #include "flags.h" #include "room.h" +#include "tiles.h" void sub_0805B778(RailIntersectionManager*); void RailIntersectionManager_Init(RailIntersectionManager*); @@ -25,7 +26,7 @@ void RailIntersectionManager_Init(RailIntersectionManager* this) { super->type2 = 1; } super->action = 1; - this->field_0x38 = (this->field_0x38 >> 4 & 0x3fU) | (((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6); + this->metaTilePos = (this->metaTilePos >> 4 & 0x3fU) | (((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6); sub_0805B778(this); } @@ -44,6 +45,7 @@ void RailIntersectionManager_Action1(RailIntersectionManager* this) { } void sub_0805B778(RailIntersectionManager* this) { - static const u16 gUnk_08108C9C[] = { 0x358, 0x359, 0x356, 0x35a, 0x35a, 0x357 }; - SetMetaTileType(gUnk_08108C9C[super->type * 2 + super->type2], this->field_0x38, this->field_0x36); + static const u16 gUnk_08108C9C[] = { META_TILE_TYPE_856, META_TILE_TYPE_857, META_TILE_TYPE_854, + META_TILE_TYPE_858, META_TILE_TYPE_858, META_TILE_TYPE_855 }; + SetMetaTileType(gUnk_08108C9C[super->type * 2 + super->type2], this->metaTilePos, this->layer); } diff --git a/src/manager/tilePuzzleManager.c b/src/manager/tilePuzzleManager.c index 19a91373..367cf776 100644 --- a/src/manager/tilePuzzleManager.c +++ b/src/manager/tilePuzzleManager.c @@ -12,6 +12,7 @@ #include "flags.h" #include "functions.h" #include "sound.h" +#include "tiles.h" enum { INIT, IN_PROGRESS, FAILED, SUCCEEDED }; @@ -31,15 +32,15 @@ void TilePuzzleManager_Main(TilePuzzleManager* this) { if (this->player_current_tile != this->player_previous_tile) { this->player_previous_tile = this->player_current_tile; switch (GetMetaTileType(this->player_current_tile, super->type2)) { - case 0x317: + case META_TILE_TYPE_791: // stepped on a red tile again super->action = FAILED; SoundReq(SFX_MENU_ERROR); break; - case 0x318: + case META_TILE_TYPE_792: // stepped on a blue tile // turn the tile into a red tile - sub_0807B7D8(0x317, this->player_current_tile, super->type2); + sub_0807B7D8(META_TILE_TYPE_791, this->player_current_tile, super->type2); SoundReq(SFX_6B); // decrease the number of remaining tiles and check if we're done if (--super->timer == 0) { diff --git a/src/manager/waterfallBottomManager.c b/src/manager/waterfallBottomManager.c index 18ab0efa..0d27d35b 100644 --- a/src/manager/waterfallBottomManager.c +++ b/src/manager/waterfallBottomManager.c @@ -8,9 +8,10 @@ #include "asm.h" #include "entity.h" #include "functions.h" +#include "tiles.h" void WaterfallBottomManager_Main(WaterfallBottomManager* this) { - SetMetaTile(0x4014, 0x5c3, 1); + SetMetaTile(SPECIAL_META_TILE_20, TILE_POS(3, 23), LAYER_BOTTOM); if ((gRoomControls.origin_y + 200 < gPlayerEntity.y.HALF.HI) && ((u32)(gPlayerEntity.x.HALF.HI - gRoomControls.origin_x) - 0x30 < 0x11)) { gPlayerEntity.collisionLayer = 3; diff --git a/src/movement.c b/src/movement.c index 4704f51b..e24145b5 100644 --- a/src/movement.c +++ b/src/movement.c @@ -1603,7 +1603,7 @@ bool32 IsTileCollision(const u8* collisionData, s32 x, s32 y, u32 collisionType) } void CalculateEntityTileCollisions(Entity* this, u32 direction, u32 collisionType) { - u8* layer; + u8* collisionData; u32 colResult; Hitbox* hb; s32 xMin; @@ -1612,7 +1612,7 @@ void CalculateEntityTileCollisions(Entity* this, u32 direction, u32 collisionTyp u32 hitboxUnkX; u32 hitboxUnkY; - layer = GetLayerByIndex(this->collisionLayer)->collisionData; + collisionData = GetLayerByIndex(this->collisionLayer)->collisionData; hb = this->hitbox; xMin = this->x.HALF.HI + hb->offset_x; yMin = this->y.HALF.HI + hb->offset_y; @@ -1621,35 +1621,35 @@ void CalculateEntityTileCollisions(Entity* this, u32 direction, u32 collisionTyp if ((direction & 0xf) != 0) { if (0xf >= direction) { temp = xMin + hitboxUnkX; - colResult = IsTileCollision(layer, temp, yMin, collisionType); + colResult = IsTileCollision(collisionData, temp, yMin, collisionType); colResult <<= 1; - colResult |= IsTileCollision(layer, temp, yMin + hitboxUnkY, collisionType); + colResult |= IsTileCollision(collisionData, temp, yMin + hitboxUnkY, collisionType); colResult <<= 1; - colResult |= IsTileCollision(layer, temp, yMin - hitboxUnkY, collisionType); + colResult |= IsTileCollision(collisionData, temp, yMin - hitboxUnkY, collisionType); colResult <<= 6; } else { temp = xMin - hitboxUnkX; - colResult = IsTileCollision(layer, temp, yMin, collisionType); + colResult = IsTileCollision(collisionData, temp, yMin, collisionType); colResult <<= 1; - colResult |= IsTileCollision(layer, temp, yMin + hitboxUnkY, collisionType); + colResult |= IsTileCollision(collisionData, temp, yMin + hitboxUnkY, collisionType); colResult <<= 1; - colResult |= IsTileCollision(layer, temp, yMin - hitboxUnkY, collisionType); + colResult |= IsTileCollision(collisionData, temp, yMin - hitboxUnkY, collisionType); colResult <<= 2; } } else { temp = xMin + hitboxUnkX; - colResult = IsTileCollision(layer, temp, yMin, collisionType); + colResult = IsTileCollision(collisionData, temp, yMin, collisionType); colResult <<= 1; - colResult |= IsTileCollision(layer, temp, yMin + hitboxUnkY, collisionType); + colResult |= IsTileCollision(collisionData, temp, yMin + hitboxUnkY, collisionType); colResult <<= 1; - colResult |= IsTileCollision(layer, temp, yMin - hitboxUnkY, collisionType); + colResult |= IsTileCollision(collisionData, temp, yMin - hitboxUnkY, collisionType); colResult <<= 2; temp = xMin - hitboxUnkX; - colResult |= IsTileCollision(layer, temp, yMin, collisionType); + colResult |= IsTileCollision(collisionData, temp, yMin, collisionType); colResult <<= 1; - colResult |= IsTileCollision(layer, temp, yMin + hitboxUnkY, collisionType); + colResult |= IsTileCollision(collisionData, temp, yMin + hitboxUnkY, collisionType); colResult <<= 1; - colResult |= IsTileCollision(layer, temp, yMin - hitboxUnkY, collisionType); + colResult |= IsTileCollision(collisionData, temp, yMin - hitboxUnkY, collisionType); colResult <<= 2; } @@ -1660,36 +1660,36 @@ void CalculateEntityTileCollisions(Entity* this, u32 direction, u32 collisionTyp if (((direction)&0xf) != 0) { if (direction < 0x10) { temp = yMin + hitboxUnkY; - colResult |= IsTileCollision(layer, xMin, temp, collisionType); + colResult |= IsTileCollision(collisionData, xMin, temp, collisionType); colResult <<= 1; - colResult |= IsTileCollision(layer, xMin + hitboxUnkX, temp, collisionType); + colResult |= IsTileCollision(collisionData, xMin + hitboxUnkX, temp, collisionType); colResult <<= 1; - colResult |= IsTileCollision(layer, xMin - hitboxUnkX, temp, collisionType); + colResult |= IsTileCollision(collisionData, xMin - hitboxUnkX, temp, collisionType); colResult <<= 5; } else { temp = yMin - hitboxUnkY; colResult <<= 4; - colResult |= IsTileCollision(layer, xMin, temp, collisionType); + colResult |= IsTileCollision(collisionData, xMin, temp, collisionType); colResult <<= 1; - colResult |= IsTileCollision(layer, xMin + hitboxUnkX, temp, collisionType); + colResult |= IsTileCollision(collisionData, xMin + hitboxUnkX, temp, collisionType); colResult <<= 1; - colResult |= IsTileCollision(layer, xMin - hitboxUnkX, temp, collisionType); + colResult |= IsTileCollision(collisionData, xMin - hitboxUnkX, temp, collisionType); colResult <<= 1; } } else { temp = yMin + hitboxUnkY; - colResult |= IsTileCollision(layer, xMin, temp, collisionType); + colResult |= IsTileCollision(collisionData, xMin, temp, collisionType); colResult <<= 1; - colResult |= IsTileCollision(layer, xMin + hitboxUnkX, temp, collisionType); + colResult |= IsTileCollision(collisionData, xMin + hitboxUnkX, temp, collisionType); colResult <<= 1; - colResult |= IsTileCollision(layer, xMin - hitboxUnkX, temp, collisionType); + colResult |= IsTileCollision(collisionData, xMin - hitboxUnkX, temp, collisionType); colResult <<= 2; temp = yMin - hitboxUnkY; - colResult |= IsTileCollision(layer, xMin, temp, collisionType); + colResult |= IsTileCollision(collisionData, xMin, temp, collisionType); colResult <<= 1; - colResult |= IsTileCollision(layer, xMin + hitboxUnkX, temp, collisionType); + colResult |= IsTileCollision(collisionData, xMin + hitboxUnkX, temp, collisionType); colResult <<= 1; - colResult |= IsTileCollision(layer, xMin - hitboxUnkX, temp, collisionType); + colResult |= IsTileCollision(collisionData, xMin - hitboxUnkX, temp, collisionType); colResult <<= 1; } this->collisions = colResult; diff --git a/src/npc/bladeBrothers.c b/src/npc/bladeBrothers.c index 698834c8..11cc0864 100644 --- a/src/npc/bladeBrothers.c +++ b/src/npc/bladeBrothers.c @@ -40,8 +40,17 @@ extern const PlayerMacroEntry gPlayerMacroBladeBrothers5; extern const PlayerMacroEntry gPlayerMacroBladeBrothers6; extern const PlayerMacroEntry gPlayerMacroBladeBrothers7; const PlayerMacroEntry* const BladeBrothers_PlayerMacros[] = { - &gPlayerMacroBladeBrothers0, &gPlayerMacroBladeBrothers1, &gPlayerMacroBladeBrothers2, &gPlayerMacroBladeBrothers3, &gPlayerMacroBladeBrothers4, &gPlayerMacroBladeBrothers5, - &gPlayerMacroBladeBrothers6, &gPlayerMacroBladeBrothers7, NULL, NULL, NULL, + &gPlayerMacroBladeBrothers0, + &gPlayerMacroBladeBrothers1, + &gPlayerMacroBladeBrothers2, + &gPlayerMacroBladeBrothers3, + &gPlayerMacroBladeBrothers4, + &gPlayerMacroBladeBrothers5, + &gPlayerMacroBladeBrothers6, + &gPlayerMacroBladeBrothers7, + NULL, + NULL, + NULL, }; const u8 BladeBrothers_EquippedItem[] = { diff --git a/src/npc/castorWildsStatue.c b/src/npc/castorWildsStatue.c index ec133e80..6305f026 100644 --- a/src/npc/castorWildsStatue.c +++ b/src/npc/castorWildsStatue.c @@ -1,10 +1,11 @@ -#include "sound.h" -#include "entity.h" -#include "script.h" -#include "functions.h" -#include "flags.h" #include "effects.h" +#include "entity.h" +#include "flags.h" +#include "functions.h" #include "npc.h" +#include "script.h" +#include "sound.h" +#include "tiles.h" static const Hitbox gUnk_08110E94; @@ -67,20 +68,20 @@ void sub_08067418(Entity* this) { this->field_0x74.HWORD = COORD_TO_TILE(this); if (this->type == 0) { this->hitbox = (Hitbox*)&gUnk_08110E94; - SetMetaTile(0x4022, this->field_0x74.HWORD - 1, this->collisionLayer); - SetMetaTile(0x4022, this->field_0x74.HWORD, this->collisionLayer); - SetMetaTile(0x4022, this->field_0x74.HWORD + 0x3f, this->collisionLayer); - SetMetaTile(0x4022, this->field_0x74.HWORD + 0x40, this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->field_0x74.HWORD - 1, this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->field_0x74.HWORD, this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->field_0x74.HWORD + 0x3f, this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->field_0x74.HWORD + 0x40, this->collisionLayer); } else { this->collisionLayer = 3; this->spriteOrientation.flipY = 1; this->spriteRendering.b3 = 1; this->spritePriority.b0 = 2; if (CheckLocalFlag(HIKYOU_00_SEKIZOU) == 0) { - SetMetaTile(0x4022, 0xe81, 1); - SetMetaTile(0x4022, 0xe82, 1); - SetMetaTile(0x4022, 0xe83, 1); - SetMetaTile(0x4022, 0xec3, 1); + SetMetaTile(SPECIAL_META_TILE_34, TILE_POS(1, 58), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, TILE_POS(2, 58), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, TILE_POS(3, 58), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, TILE_POS(3, 59), LAYER_BOTTOM); } } sub_0807DD50(this); diff --git a/src/npc/clothesRack.c b/src/npc/clothesRack.c index 62a1e07e..03690470 100644 --- a/src/npc/clothesRack.c +++ b/src/npc/clothesRack.c @@ -1,4 +1,5 @@ #include "npc.h" +#include "tiles.h" void sub_0806DD90(Entity*); void sub_0806DEC8(Entity*); @@ -31,12 +32,12 @@ void sub_0806DD90(Entity* this) { InitializeAnimation(this, uVar2); x = this->x.HALF.HI; y = this->y.HALF.HI; - SetMetaTile(0x4072, TILE(x - 0x18, y - 0x10), this->collisionLayer); - SetMetaTile(0x4072, TILE(x - 0x18, y), this->collisionLayer); - SetMetaTile(0x4072, TILE(x - 0x18, y + 0x10), this->collisionLayer); - SetMetaTile(0x4072, TILE(x + 0x18, y - 0x10), this->collisionLayer); - SetMetaTile(0x4072, TILE(x + 0x18, y), this->collisionLayer); - SetMetaTile(0x4072, TILE(x + 0x18, y + 0x10), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_114, TILE(x - 24, y - 16), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_114, TILE(x - 24, y), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_114, TILE(x - 24, y + 16), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_114, TILE(x + 24, y - 16), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_114, TILE(x + 24, y), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_114, TILE(x + 24, y + 16), this->collisionLayer); } void sub_0806DEC8(Entity* this) { diff --git a/src/npc/dampe.c b/src/npc/dampe.c index ed638b1a..199996e9 100644 --- a/src/npc/dampe.c +++ b/src/npc/dampe.c @@ -1,11 +1,12 @@ -#include "global.h" #include "entity.h" -#include "player.h" -#include "room.h" #include "flags.h" +#include "item.h" +#include "map.h" #include "message.h" #include "npc.h" -#include "item.h" +#include "player.h" +#include "room.h" +#include "tiles.h" void Dampe(Entity* this) { switch (this->action) { @@ -93,10 +94,10 @@ void sub_0806BEC8(Entity* this, ScriptExecutionContext* context) { } void sub_0806BEFC(void) { - SetMetaTileType(0x17E, 0x58E, 1); - SetMetaTileType(0x17F, 0x58F, 1); - SetMetaTileType(0x180, 0x5CE, 1); - SetMetaTileType(0x181, 0x5CF, 1); + SetMetaTileType(META_TILE_TYPE_382, TILE_POS(14, 22), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_383, TILE_POS(15, 22), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_384, TILE_POS(14, 23), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_385, TILE_POS(15, 23), LAYER_BOTTOM); } void sub_0806BF44(Entity* this, ScriptExecutionContext* context) { diff --git a/src/npc/dog.c b/src/npc/dog.c index df48f4ab..d529cf58 100644 --- a/src/npc/dog.c +++ b/src/npc/dog.c @@ -1,8 +1,9 @@ -#include "entity.h" #include "collision.h" +#include "entity.h" #include "functions.h" -#include "npc.h" #include "item.h" +#include "npc.h" +#include "tiles.h" void sub_08069FE8(Entity*); bool32 sub_08069EF0(Entity*); @@ -217,7 +218,7 @@ void sub_08069B44(Entity* this) { this->action = 4; } if ((this->type == 2) && (CheckLocalFlag(MACHI_02_DOG) == 0)) { - SetMetaTile(0x4072, TILE(this->x.HALF.HI, this->y.HALF.HI - 8), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_114, TILE(this->x.HALF.HI, this->y.HALF.HI - 8), this->collisionLayer); } } } diff --git a/src/npc/kid.c b/src/npc/kid.c index 900e3323..b2666464 100644 --- a/src/npc/kid.c +++ b/src/npc/kid.c @@ -1,6 +1,7 @@ #include "functions.h" #include "message.h" #include "npc.h" +#include "tiles.h" const SpriteLoadData gUnk_0810BD7C[] = { { 58, 59, 4 }, @@ -567,21 +568,21 @@ void sub_080626E0(Entity* this, ScriptExecutionContext* context) { } void sub_08062788(Entity* this, ScriptExecutionContext* context) { - SetMetaTile(0x4072, 0x60b, 1); - SetMetaTile(0x4072, 0x60c, 1); - SetMetaTile(0x4072, 0x60d, 1); - SetMetaTile(0x4072, 0x64b, 1); - SetMetaTile(0x4072, 0x64c, 1); - SetMetaTile(0x4072, 0x64d, 1); + SetMetaTile(SPECIAL_META_TILE_114, TILE_POS(11, 24), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_114, TILE_POS(12, 24), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_114, TILE_POS(13, 24), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_114, TILE_POS(11, 25), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_114, TILE_POS(12, 25), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_114, TILE_POS(13, 25), LAYER_BOTTOM); } void sub_080627E8(Entity* this, ScriptExecutionContext* context) { - RestorePrevTileEntity(0x60b, 1); - RestorePrevTileEntity(0x60c, 1); - RestorePrevTileEntity(0x60d, 1); - RestorePrevTileEntity(0x64b, 1); - RestorePrevTileEntity(0x64c, 1); - RestorePrevTileEntity(0x64d, 1); + RestorePrevTileEntity(TILE_POS(11, 24), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(12, 24), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(13, 24), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(11, 25), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(12, 25), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(13, 25), LAYER_BOTTOM); } void Kid_Head(Entity* this) { diff --git a/src/npc/npc4E.c b/src/npc/npc4E.c index b897a5ff..a111f45e 100644 --- a/src/npc/npc4E.c +++ b/src/npc/npc4E.c @@ -10,6 +10,7 @@ #include "save.h" #include "screenTransitions.h" #include "sound.h" +#include "tiles.h" typedef struct { Rect customHitbox; @@ -183,18 +184,18 @@ void NPC4E_RestoreEquippedItems(Entity* this) { void sub_0806DC7C(void) { const u16* tiles = gUnk_081141F4; while (*tiles != 0) { - u32 tile = *tiles; + u32 metaTilePos = *tiles; tiles = tiles + 1; - SetMetaTileType(0x4072, tile, 1); + SetMetaTileType(SPECIAL_META_TILE_114, metaTilePos, LAYER_BOTTOM); } } void sub_0806DCA0(void) { const u16* tiles = gUnk_081141F4; while (*tiles != 0) { - u32 tile = *tiles; + u32 metaTilePos = *tiles; tiles = tiles + 1; - RestorePrevTileEntity(tile, 1); + RestorePrevTileEntity(metaTilePos, LAYER_BOTTOM); } } diff --git a/src/npc/npc5.c b/src/npc/npc5.c index 3f1ffeff..032b7ad1 100644 --- a/src/npc/npc5.c +++ b/src/npc/npc5.c @@ -471,11 +471,7 @@ u32 sub_080611D4(Entity* this) { static const u8 gUnk_0810AC54[] = { // vvv, animationState - VVV_43, 0x10, - VVV_42, 0x0, - VVV_45, 0x8, - VVV_44, 0x18, - 0x0, + VVV_43, 0x10, VVV_42, 0x0, VVV_45, 0x8, VVV_44, 0x18, 0x0, }; u32 vvv; diff --git a/src/npc/simon.c b/src/npc/simon.c index 3bab201c..954f45a4 100644 --- a/src/npc/simon.c +++ b/src/npc/simon.c @@ -7,6 +7,7 @@ #include "screenTransitions.h" #include "script.h" #include "sound.h" +#include "tiles.h" typedef struct { u8 filler[4]; @@ -29,7 +30,7 @@ void sub_0806C224(void) { void Simon_CreateChest(Entity* this) { CreateObjectWithParent(this, SPECIAL_FX, FX_BIG_EXPLOSION2, 0); - SetMetaTileType(0x73, COORD_TO_TILE(this), this->collisionLayer); + SetMetaTileType(META_TILE_TYPE_115, COORD_TO_TILE(this), this->collisionLayer); SoundReq(SFX_SECRET_BIG); } diff --git a/src/npc/zelda.c b/src/npc/zelda.c index 28952c25..f15b2a13 100644 --- a/src/npc/zelda.c +++ b/src/npc/zelda.c @@ -1,9 +1,9 @@ -#include "global.h" -#include "sound.h" #include "entity.h" -#include "functions.h" #include "flags.h" +#include "functions.h" #include "npc.h" +#include "sound.h" +#include "tiles.h" void ZeldaFollower_Hide(Entity*, Entity*); void ZeldaFollower_Show(Entity*, Entity*); @@ -165,14 +165,14 @@ static const u16 gUnk_08110BE0[] = { }; void sub_08066F94(void) { - u16 uVar1; + u16 metaTilePos; const u16* puVar2; puVar2 = gUnk_08110BE0; while (*puVar2 != 0) { - uVar1 = *puVar2; + metaTilePos = *puVar2; puVar2++; - SetMetaTileType(0x4072, uVar1, 1); + SetMetaTileType(SPECIAL_META_TILE_114, metaTilePos, LAYER_BOTTOM); } } diff --git a/src/object/angryStatue.c b/src/object/angryStatue.c index 99d42b58..bc9d357c 100644 --- a/src/object/angryStatue.c +++ b/src/object/angryStatue.c @@ -11,6 +11,7 @@ #include "projectile.h" #include "room.h" #include "sound.h" +#include "tiles.h" void AngryStatue_Init(Entity*); void AngryStatue_Action1(Entity*); @@ -29,7 +30,7 @@ void AngryStatue(Entity* this) { void AngryStatue_Init(Entity* this) { this->action = 1; this->hitbox = (Hitbox*)&gUnk_080FD178; - SetMetaTile(0x4022, COORD_TO_TILE(this), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, COORD_TO_TILE(this), this->collisionLayer); InitializeAnimation(this, this->type); } diff --git a/src/object/bakerOven.c b/src/object/bakerOven.c index e0ce4ba2..c044ac9f 100644 --- a/src/object/bakerOven.c +++ b/src/object/bakerOven.c @@ -6,6 +6,7 @@ */ #include "functions.h" #include "object.h" +#include "tiles.h" extern void SoundReqClipped(Entity*, u32); void sub_0809CDF0(Entity*); @@ -95,18 +96,18 @@ void BakerOven_Action2(Entity* this) { } void sub_0809CDF0(Entity* this) { - u32 y; + u32 metaTilePos; this->field_0x80.HWORD = (((this->x.HALF.HI - gRoomControls.origin_x) >> 4) & 0x3f) | (((this->y.HALF.HI - gRoomControls.origin_y) >> 4 & 0x3f) << 6); - y = this->field_0x80.HWORD; - SetMetaTile(0x402e, y - 0x01, this->collisionLayer); - SetMetaTile(0x4022, y - 0x00, this->collisionLayer); - SetMetaTile(0x4022, y + 0x01, this->collisionLayer); - SetMetaTile(0x4026, y - 0x41, this->collisionLayer); - SetMetaTile(0x4026, y - 0x40, this->collisionLayer); - SetMetaTile(0x4024, y - 0x3f, this->collisionLayer); - SetMetaTile(0x4026, y - 0x81, this->collisionLayer); - SetMetaTile(0x4026, y - 0x80, this->collisionLayer); + metaTilePos = this->field_0x80.HWORD; + SetMetaTile(SPECIAL_META_TILE_46, metaTilePos + TILE_POS(-1, 0), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, metaTilePos + TILE_POS(0, 0), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, metaTilePos + TILE_POS(1, 0), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_38, metaTilePos + TILE_POS(-1, -1), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_38, metaTilePos + TILE_POS(0, -1), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_36, metaTilePos + TILE_POS(1, -1), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_38, metaTilePos + TILE_POS(-1, -2), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_38, metaTilePos + TILE_POS(0, -2), this->collisionLayer); } diff --git a/src/object/beanstalk.c b/src/object/beanstalk.c index 4661d43e..f788253a 100644 --- a/src/object/beanstalk.c +++ b/src/object/beanstalk.c @@ -5,15 +5,15 @@ * @brief Beanstalk object */ #define NENT_DEPRECATED -#include "global.h" -#include "object.h" #include "functions.h" +#include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; /*0x68*/ u8 unk_68[4]; /*0x6c*/ u32 unk_6c; - /*0x70*/ u16 unk_70; + /*0x70*/ u16 tilePos; /*0x72*/ u16 unk_72; } BeanstalkEntity; @@ -256,11 +256,11 @@ void Beanstalk_Action1Type7(BeanstalkEntity* this) { return; } this->unk_6c = gRoomControls.origin_y; - this->unk_70 = TILE(super->x.HALF.HI, this->unk_6c); + this->tilePos = TILE(super->x.HALF.HI, this->unk_6c); while (TRUE) { - this->unk_70 = TILE(super->x.HALF.HI, this->unk_6c); - SetMetaTile(0x4017, this->unk_70, 2); - SetMetaTile(0x4017, this->unk_70, 1); + this->tilePos = TILE(super->x.HALF.HI, this->unk_6c); + SetMetaTile(SPECIAL_META_TILE_23, this->tilePos, LAYER_TOP); + SetMetaTile(SPECIAL_META_TILE_23, this->tilePos, LAYER_BOTTOM); this->unk_6c += 0x10; if (this->unk_6c >= gRoomControls.origin_y + gRoomControls.height) break; @@ -308,8 +308,8 @@ void Beanstalk_Action1Type8SubAction0(BeanstalkEntity* this) { Entity* obj; super->spriteOrientation.flipY = 2; - this->unk_70 = COORD_TO_TILE(super); - SetMetaTile(0x4017, this->unk_70, 1); + this->tilePos = COORD_TO_TILE(super); + SetMetaTile(SPECIAL_META_TILE_23, this->tilePos, LAYER_BOTTOM); super->subAction = 1; obj = CreateObjectWithParent(super, CHUCHU_BOSS_PARTICLE, 0, 0); if (obj != NULL) { @@ -334,19 +334,19 @@ void Beanstalk_Action1Type9(BeanstalkEntity* this) { if (super->subAction == 0) { super->subAction = 1; super->y.HALF.HI += 0x28; - this->unk_72 = sub_080B1A0C(super, 0, -0x18); + this->unk_72 = sub_080B1A0C(super, 0, -24); } super->spriteOrientation.flipY = gPlayerEntity.spriteOrientation.flipY; super->spriteRendering.b3 = gPlayerEntity.spriteRendering.b3; if (gPlayerState.floor_type == SURFACE_LADDER) { super->spritePriority.b0 = 0; - if (sub_080B1A0C(super, 0, -0x18) != 0x4014) { - SetMetaTile(0x4014, COORD_TO_TILE_OFFSET(super, 0, 0x18), 1); + if (sub_080B1A0C(super, 0, -24) != SPECIAL_META_TILE_20) { + SetMetaTile(SPECIAL_META_TILE_20, COORD_TO_TILE_OFFSET(super, 0, 24), LAYER_BOTTOM); } } else { super->spritePriority.b0 = 5; - if (this->unk_72 != sub_080B1A0C(super, 0, -0x18)) { - SetMetaTile(this->unk_72, COORD_TO_TILE_OFFSET(super, 0, 0x18), 1); + if (this->unk_72 != sub_080B1A0C(super, 0, -24)) { + SetMetaTile(this->unk_72, COORD_TO_TILE_OFFSET(super, 0, 24), LAYER_BOTTOM); } } } diff --git a/src/object/bigBarrel.c b/src/object/bigBarrel.c index c08cba6a..104cd470 100644 --- a/src/object/bigBarrel.c +++ b/src/object/bigBarrel.c @@ -9,10 +9,12 @@ #include "common.h" #include "entity.h" #include "flags.h" +#include "map.h" #include "object.h" #include "room.h" #include "save.h" #include "sound.h" +#include "tiles.h" typedef struct { Entity base; @@ -293,7 +295,7 @@ void sub_08088F20(BigBarrelEntity* this) { pEVar3->collisionLayer = 2; pEVar3->spritePriority.b0 = 2; } - SetMetaTileType(0x76, COORD_TO_TILE(super), 2); + SetMetaTileType(META_TILE_TYPE_118, COORD_TO_TILE(super), LAYER_TOP); break; case 2: if (--super->timer) { diff --git a/src/object/bigIceBlock.c b/src/object/bigIceBlock.c index fb208a90..40ad2817 100644 --- a/src/object/bigIceBlock.c +++ b/src/object/bigIceBlock.c @@ -140,116 +140,116 @@ void sub_08099910(BigIceBlockEntity* this) { switch (uVar2) { default: - SetMetaTile(0x4022, metaTilePos - 0x41, super->collisionLayer); - SetMetaTile(0x4022, metaTilePos - 0x40, super->collisionLayer); - SetMetaTile(0x4022, metaTilePos - 1, super->collisionLayer); - SetMetaTile(0x4022, metaTilePos, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, metaTilePos - 0x41, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, metaTilePos - 0x40, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, metaTilePos - 1, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, metaTilePos, super->collisionLayer); break; case 1: vvv = GetVvvAtMetaTilePos(metaTilePos - 0x41, super->collisionLayer); - tileIndex = 0x4024; + tileIndex = SPECIAL_META_TILE_36; if (vvv == VVV_18) { - tileIndex = 0x4079; + tileIndex = SPECIAL_META_TILE_121; } SetMetaTile(tileIndex, metaTilePos - 0x41, super->collisionLayer); - SetMetaTile(0x4022, metaTilePos - 0x40, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, metaTilePos - 0x40, super->collisionLayer); vvv = GetVvvAtMetaTilePos(metaTilePos - 0x3f, super->collisionLayer); - tileIndex = 0x4025; + tileIndex = SPECIAL_META_TILE_37; if (vvv == VVV_18) { - tileIndex = 0x407b; + tileIndex = SPECIAL_META_TILE_123; } SetMetaTile(tileIndex, metaTilePos - 0x3f, super->collisionLayer); vvv = GetVvvAtMetaTilePos(metaTilePos - 1, super->collisionLayer); - tileIndex = 0x4024; + tileIndex = SPECIAL_META_TILE_36; if (vvv == VVV_18) { - tileIndex = 0x4079; + tileIndex = SPECIAL_META_TILE_121; } SetMetaTile(tileIndex, metaTilePos - 1, super->collisionLayer); - SetMetaTile(0x4022, metaTilePos, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, metaTilePos, super->collisionLayer); vvv = GetVvvAtMetaTilePos(metaTilePos + 1, super->collisionLayer); - tileIndex = 0x4025; + tileIndex = SPECIAL_META_TILE_37; if (vvv == VVV_18) { - tileIndex = 0x407b; + tileIndex = SPECIAL_META_TILE_123; } SetMetaTile(tileIndex, metaTilePos + 1, super->collisionLayer); return; break; case 2: vvv = GetVvvAtMetaTilePos(metaTilePos - 0x41, super->collisionLayer); - tileIndex = 0x4023; + tileIndex = SPECIAL_META_TILE_35; if (vvv == VVV_18) { - tileIndex = 0x4077; + tileIndex = SPECIAL_META_TILE_119; } SetMetaTile(tileIndex, metaTilePos - 0x41, super->collisionLayer); vvv = GetVvvAtMetaTilePos(metaTilePos - 0x40, super->collisionLayer); - tileIndex = 0x4023; + tileIndex = SPECIAL_META_TILE_35; if (vvv == VVV_18) { - tileIndex = 0x4077; + tileIndex = SPECIAL_META_TILE_119; } SetMetaTile(tileIndex, metaTilePos - 0x40, super->collisionLayer); - SetMetaTile(0x4022, metaTilePos - 1, super->collisionLayer); - SetMetaTile(0x4022, metaTilePos, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, metaTilePos - 1, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, metaTilePos, super->collisionLayer); vvv = GetVvvAtMetaTilePos(metaTilePos + 0x3f, super->collisionLayer); - tileIndex = 0x4026; + tileIndex = SPECIAL_META_TILE_38; if (vvv == VVV_18) { - tileIndex = 0x407c; + tileIndex = SPECIAL_META_TILE_124; } SetMetaTile(tileIndex, metaTilePos + 0x3f, super->collisionLayer); vvv = GetVvvAtMetaTilePos(metaTilePos + 0x40, super->collisionLayer); - tileIndex = 0x4026; + tileIndex = SPECIAL_META_TILE_38; if (vvv == VVV_18) { - tileIndex = 0x407c; + tileIndex = SPECIAL_META_TILE_124; } SetMetaTile(tileIndex, metaTilePos + 0x40, super->collisionLayer); break; case 3: vvv = GetVvvAtMetaTilePos(metaTilePos - 0x41, super->collisionLayer); - tileIndex = 0x4027; + tileIndex = SPECIAL_META_TILE_39; if (vvv == VVV_18) { - tileIndex = 0x4075; + tileIndex = SPECIAL_META_TILE_117; } SetMetaTile(tileIndex, metaTilePos - 0x41, super->collisionLayer); vvv = GetVvvAtMetaTilePos(metaTilePos - 0x40, super->collisionLayer); - tileIndex = 0x4023; + tileIndex = SPECIAL_META_TILE_35; if (vvv == VVV_18) { - tileIndex = 0x4077; + tileIndex = SPECIAL_META_TILE_119; } SetMetaTile(tileIndex, metaTilePos - 0x40, super->collisionLayer); vvv = GetVvvAtMetaTilePos(metaTilePos - 0x3f, super->collisionLayer); - tileIndex = 0x4028; + tileIndex = SPECIAL_META_TILE_40; if (vvv == VVV_18) { - tileIndex = 0x4076; + tileIndex = SPECIAL_META_TILE_118; } SetMetaTile(tileIndex, metaTilePos - 0x3f, super->collisionLayer); vvv = GetVvvAtMetaTilePos(metaTilePos - 1, super->collisionLayer); - tileIndex = 0x4024; + tileIndex = SPECIAL_META_TILE_36; if (vvv == VVV_18) { - tileIndex = 0x4079; + tileIndex = SPECIAL_META_TILE_121; } SetMetaTile(tileIndex, metaTilePos - 1, super->collisionLayer); - SetMetaTile(0x4022, metaTilePos, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, metaTilePos, super->collisionLayer); vvv = GetVvvAtMetaTilePos(metaTilePos + 1, super->collisionLayer); - tileIndex = 0x4025; + tileIndex = SPECIAL_META_TILE_37; if (vvv == VVV_18) { - tileIndex = 0x407b; + tileIndex = SPECIAL_META_TILE_123; } SetMetaTile(tileIndex, metaTilePos + 1, super->collisionLayer); vvv = GetVvvAtMetaTilePos(metaTilePos + 0x3f, super->collisionLayer); - tileIndex = 0x4029; + tileIndex = SPECIAL_META_TILE_41; if (vvv == VVV_18) { - tileIndex = 0x4078; + tileIndex = SPECIAL_META_TILE_120; } SetMetaTile(tileIndex, metaTilePos + 0x3f, super->collisionLayer); vvv = GetVvvAtMetaTilePos(metaTilePos + 0x40, super->collisionLayer); - tileIndex = 0x4026; + tileIndex = SPECIAL_META_TILE_38; if (vvv == VVV_18) { - tileIndex = 0x407c; + tileIndex = SPECIAL_META_TILE_124; } SetMetaTile(tileIndex, metaTilePos + 0x40, super->collisionLayer); vvv = GetVvvAtMetaTilePos(metaTilePos + 0x41, super->collisionLayer); - tileIndex = 0x402a; + tileIndex = SPECIAL_META_TILE_42; if (vvv == VVV_18) { - tileIndex = 0x407a; + tileIndex = SPECIAL_META_TILE_122; } SetMetaTile(tileIndex, metaTilePos + 0x41, super->collisionLayer); break; diff --git a/src/object/bigPushableLever.c b/src/object/bigPushableLever.c index 8ea37a28..75733f01 100644 --- a/src/object/bigPushableLever.c +++ b/src/object/bigPushableLever.c @@ -7,8 +7,8 @@ #define NENT_DEPRECATED #include "functions.h" -#include "global.h" #include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -38,9 +38,6 @@ bool32 BigPushableLever_ShouldStartPushing(BigPushableLeverEntity*); void BigPushableLever_SetMetaTiles(BigPushableLeverEntity*); void BigPushableLever_CalculateSpriteOffsets(BigPushableLeverEntity*); -#define TILE_INITIAL 0x4058 -#define TILE_PUSHED 0x4056 - void BigPushableLever(BigPushableLeverEntity* this) { BigPushableLever_Actions[super->action](this); } @@ -93,8 +90,8 @@ void BigPushableLever_SetMetaTiles(BigPushableLeverEntity* this) { this->tilePositionLower = this->tilePositionUpper - 0x40; this->tileIndexUpper = GetMetaTileIndex(this->tilePositionUpper, super->collisionLayer); this->tileIndexLower = GetMetaTileIndex(this->tilePositionLower, super->collisionLayer); - SetMetaTile(0x4057, this->tilePositionUpper, super->collisionLayer); - SetMetaTile(0x4058, this->tilePositionLower, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_87, this->tilePositionUpper, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_88, this->tilePositionLower, super->collisionLayer); InitializeAnimation(super, 1); } else { super->type2 = 1; @@ -102,14 +99,14 @@ void BigPushableLever_SetMetaTiles(BigPushableLeverEntity* this) { this->tilePositionLower = this->tilePositionUpper - 1; this->tileIndexUpper = GetMetaTileIndex(this->tilePositionUpper, super->collisionLayer); this->tileIndexLower = GetMetaTileIndex(this->tilePositionLower, super->collisionLayer); - SetMetaTile(0x4055, this->tilePositionUpper, super->collisionLayer); - SetMetaTile(0x4056, this->tilePositionLower, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_85, this->tilePositionUpper, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_86, this->tilePositionLower, super->collisionLayer); InitializeAnimation(super, 0); } } bool32 BigPushableLever_ShouldStartPushing(BigPushableLeverEntity* this) { - if (GetMetaTileIndex(this->tilePositionLower, super->collisionLayer) == 0x4059) { + if (GetMetaTileIndex(this->tilePositionLower, super->collisionLayer) == SPECIAL_META_TILE_89) { if (--this->timer == 0) { return TRUE; } @@ -144,8 +141,8 @@ void (*const BigPushableLever_Actions[])(BigPushableLeverEntity*) = { BigPushableLever_Pushing, }; const u16 gUnk_081236E8[] = { - TILE_INITIAL, - TILE_PUSHED, + SPECIAL_META_TILE_88, + SPECIAL_META_TILE_86, }; const u8 BigPushableLever_InitialOffsets[] = { 0, 0, 0, 0, 255, 0, 0, 0, diff --git a/src/object/blockPushed.c b/src/object/blockPushed.c index a1201014..e80640c2 100644 --- a/src/object/blockPushed.c +++ b/src/object/blockPushed.c @@ -6,9 +6,10 @@ */ #define NENT_DEPRECATED +#include "area.h" #include "functions.h" -#include "global.h" #include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -27,11 +28,11 @@ void BlockPushed(BlockPushedEntity* this) { void BlockPushed_Init(BlockPushedEntity* this) { u16 tmp; - u32 pos; + u32 metaTilePos; - if (gRoomControls.area == 0x11) { + if (gRoomControls.area == AREA_MINISH_PATHS) { UnloadGFXSlots(super); - if (LoadFixedGFX(super, 0x1c1) == 0) { + if (LoadFixedGFX(super, 449) == 0) { super->spriteSettings.draw = 0; return; } @@ -41,50 +42,50 @@ void BlockPushed_Init(BlockPushedEntity* this) { super->timer = 32; super->speed = 0x80; super->spritePriority.b0 = 6; - pos = COORD_TO_TILE(super); + metaTilePos = COORD_TO_TILE(super); tmp = super->type * 8; super->x.HALF.HI += tmp; super->y.HALF.HI += tmp; super->hitbox = (Hitbox*)gUnk_0811F64C[super->type]; - this->unk_68 = GetMetaTileType(pos, (u32)super->collisionLayer); + this->unk_68 = GetMetaTileType(metaTilePos, super->collisionLayer); switch (super->type) { case 0: - sub_080832D8(pos, this); + sub_080832D8(metaTilePos, this); break; case 1: - sub_080832D8(pos, this); - sub_080832D8(pos + 1, this); - sub_080832D8(pos + 0x40, this); - sub_080832D8(pos + 0x41, this); + sub_080832D8(metaTilePos, this); + sub_080832D8(metaTilePos + 1, this); + sub_080832D8(metaTilePos + 0x40, this); + sub_080832D8(metaTilePos + 0x41, this); break; case 2: - sub_080832D8(pos, this); - sub_080832D8(pos + 1, this); - sub_080832D8(pos + 2, this); - sub_080832D8(pos + 0x40, this); - sub_080832D8(pos + 0x41, this); - sub_080832D8(pos + 0x42, this); - sub_080832D8(pos + 0x80, this); - sub_080832D8(pos + 0x81, this); - sub_080832D8(pos + 0x82, this); + sub_080832D8(metaTilePos, this); + sub_080832D8(metaTilePos + 1, this); + sub_080832D8(metaTilePos + 2, this); + sub_080832D8(metaTilePos + 0x40, this); + sub_080832D8(metaTilePos + 0x41, this); + sub_080832D8(metaTilePos + 0x42, this); + sub_080832D8(metaTilePos + 0x80, this); + sub_080832D8(metaTilePos + 0x81, this); + sub_080832D8(metaTilePos + 0x82, this); break; default: - sub_080832D8(pos, this); - sub_080832D8(pos + 1, this); - sub_080832D8(pos + 2, this); - sub_080832D8(pos + 3, this); - sub_080832D8(pos + 0x40, this); - sub_080832D8(pos + 0x41, this); - sub_080832D8(pos + 0x42, this); - sub_080832D8(pos + 0x43, this); - sub_080832D8(pos + 0x80, this); - sub_080832D8(pos + 0x81, this); - sub_080832D8(pos + 0x82, this); - sub_080832D8(pos + 0x83, this); - sub_080832D8(pos + 0xc0, this); - sub_080832D8(pos + 0xc1, this); - sub_080832D8(pos + 0xc2, this); - sub_080832D8(pos + 0xc3, this); + sub_080832D8(metaTilePos, this); + sub_080832D8(metaTilePos + 1, this); + sub_080832D8(metaTilePos + 2, this); + sub_080832D8(metaTilePos + 3, this); + sub_080832D8(metaTilePos + 0x40, this); + sub_080832D8(metaTilePos + 0x41, this); + sub_080832D8(metaTilePos + 0x42, this); + sub_080832D8(metaTilePos + 0x43, this); + sub_080832D8(metaTilePos + 0x80, this); + sub_080832D8(metaTilePos + 0x81, this); + sub_080832D8(metaTilePos + 0x82, this); + sub_080832D8(metaTilePos + 0x83, this); + sub_080832D8(metaTilePos + 0xc0, this); + sub_080832D8(metaTilePos + 0xc1, this); + sub_080832D8(metaTilePos + 0xc2, this); + sub_080832D8(metaTilePos + 0xc3, this); break; } EnqueueSFX(SFX_10F); @@ -148,18 +149,18 @@ void sub_080830B8(BlockPushedEntity* this) { DeleteEntity(super); } -void sub_080832D8(u32 param_1, BlockPushedEntity* this) { +void sub_080832D8(u32 metaTilePos, BlockPushedEntity* this) { if (super->collisionLayer != 2) { if ((super->direction & 8) != 0) { - sub_0807B7D8(0x21, param_1, super->collisionLayer); + sub_0807B7D8(META_TILE_TYPE_33, metaTilePos, super->collisionLayer); } else { - sub_0807B7D8(0x20, param_1, super->collisionLayer); + sub_0807B7D8(META_TILE_TYPE_32, metaTilePos, super->collisionLayer); } } else { if ((super->direction & 8) != 0) { - sub_0807B7D8(0x2f, param_1, super->collisionLayer); + sub_0807B7D8(META_TILE_TYPE_47, metaTilePos, super->collisionLayer); } else { - sub_0807B7D8(0x2e, param_1, super->collisionLayer); + sub_0807B7D8(META_TILE_TYPE_46, metaTilePos, super->collisionLayer); } } } diff --git a/src/object/board.c b/src/object/board.c index 4aea1824..e2254e90 100644 --- a/src/object/board.c +++ b/src/object/board.c @@ -10,6 +10,7 @@ #include "functions.h" #include "player.h" #include "room.h" +#include "tiles.h" typedef struct { Entity base; @@ -54,7 +55,7 @@ void Board_Init(BoardEntity* this) { UpdateSpriteForCollisionLayer(super); super->spritePriority.b0 = 6; if (super->type == 0) { - SetMetaTile(0x4074, this->tile - 0x40, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_116, this->tile + TILE_POS(0, -1), super->collisionLayer); } sub_08098BE8(this); } diff --git a/src/object/bollard.c b/src/object/bollard.c index f604ee82..fa728e67 100644 --- a/src/object/bollard.c +++ b/src/object/bollard.c @@ -11,13 +11,14 @@ #include "functions.h" #include "room.h" #include "sound.h" +#include "tiles.h" typedef struct { Entity base; u8 filler[0x8]; - u16 tile; - u16 tileIndex; - u8 unk74; + u16 metaTilePos; + u16 metaTileIndex; + u8 collisionData; u8 unk75; u8 filler2[0x10]; u16 flags; @@ -59,7 +60,7 @@ void Bollard_Action1(BollardEntity* this) { } super->action = 2; InitializeAnimation(super, 3); - SetMetaTile(this->tileIndex, this->tile, super->collisionLayer); + SetMetaTile(this->metaTileIndex, this->metaTilePos, super->collisionLayer); EnqueueSFX(SFX_1A5); } @@ -93,10 +94,10 @@ void Bollard_Action4(BollardEntity* this) { void sub_0808B3AC(BollardEntity* this) { super->spritePriority.b0 = 4; - this->tile = COORD_TO_TILE(super); - this->tileIndex = GetMetaTileIndex(this->tile, super->collisionLayer); - this->unk74 = GetCollisionDataAtMetaTilePos(this->tile, super->collisionLayer); - SetMetaTile(0x400b, this->tile, super->collisionLayer); + this->metaTilePos = COORD_TO_TILE(super); + this->metaTileIndex = GetMetaTileIndex(this->metaTilePos, super->collisionLayer); + this->collisionData = GetCollisionDataAtMetaTilePos(this->metaTilePos, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_11, this->metaTilePos, super->collisionLayer); } void sub_0808B41C(BollardEntity* this) { diff --git a/src/object/bossDoor.c b/src/object/bossDoor.c index 8a73de50..a3bac959 100644 --- a/src/object/bossDoor.c +++ b/src/object/bossDoor.c @@ -7,9 +7,9 @@ #define NENT_DEPRECATED #include "functions.h" -#include "global.h" #include "hitbox.h" #include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -180,16 +180,16 @@ void sub_0808C500(BossDoorEntity* this) { this->unk_78 = GetMetaTileIndex(this->unk_74 - 1, super->collisionLayer); this->unk_7a = GetMetaTileIndex(this->unk_74, super->collisionLayer); this->unk_7c = GetMetaTileIndex(this->unk_74 + 1, super->collisionLayer); - SetMetaTile(0x4022, this->unk_74 - 1, super->collisionLayer); - SetMetaTile(0x4022, this->unk_74, super->collisionLayer); - SetMetaTile(0x4022, this->unk_74 + 1, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->unk_74 - 1, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->unk_74, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->unk_74 + 1, super->collisionLayer); } else { this->unk_78 = GetMetaTileIndex(this->unk_74 - 0x40, super->collisionLayer); this->unk_7a = GetMetaTileIndex(this->unk_74, super->collisionLayer); this->unk_7c = GetMetaTileIndex(this->unk_74 + 0x40, super->collisionLayer); - SetMetaTile(0x4022, this->unk_74 - 0x40, super->collisionLayer); - SetMetaTile(0x4022, this->unk_74, super->collisionLayer); - SetMetaTile(0x4022, this->unk_74 + 0x40, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->unk_74 - 0x40, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->unk_74, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->unk_74 + 0x40, super->collisionLayer); } } diff --git a/src/object/bush.c b/src/object/bush.c index 9d83d3e4..83b20fcc 100644 --- a/src/object/bush.c +++ b/src/object/bush.c @@ -5,10 +5,10 @@ * @brief Bush object */ #define NENT_DEPRECATED -#include "global.h" -#include "object.h" #include "functions.h" #include "hitbox.h" +#include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -70,7 +70,7 @@ void Bush_Init(BushEntity* this) { super->hitbox = (Hitbox*)&gUnk_081205B4; this->unk_72 = 0; this->unk_70 = GetMetaTileIndex(COORD_TO_TILE(super), super->collisionLayer); - SetMetaTile(0x4022, COORD_TO_TILE(super), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, COORD_TO_TILE(super), super->collisionLayer); InitializeAnimation(super, gUnk_08120588[super->type].unk_0); } diff --git a/src/object/button.c b/src/object/button.c index 4f17877e..a7f2a9ac 100644 --- a/src/object/button.c +++ b/src/object/button.c @@ -6,6 +6,7 @@ */ #include "object.h" #include "functions.h" +#include "tiles.h" void Button_Init(Entity*); void Button_Action1(Entity*); @@ -35,7 +36,7 @@ void Button_Init(Entity* this) { this->field_0x70.HALF.HI = GetMetaTileType(this->field_0x74.HWORD, this->collisionLayer); if (this->type == 0 && CheckFlags(this->field_0x86.HWORD)) { this->action = 5; - SetMetaTileType(0x7A, this->field_0x74.HWORD, this->collisionLayer); + SetMetaTileType(META_TILE_TYPE_122, this->field_0x74.HWORD, this->collisionLayer); } else { if (sub_08081E3C(this)) { this->action = 2; @@ -69,12 +70,12 @@ void Button_Action2(Entity* this) { } } -u32 sub_08081F7C(Entity*, u32); +u32 sub_08081F7C(Entity*, u32 metaTileType); u32 sub_08081D28(Entity*); void sub_08081E6C(Entity*); void Button_Action3(Entity* this) { - if (!sub_08081F7C(this, 0x78)) + if (!sub_08081F7C(this, META_TILE_TYPE_120)) return; if (!sub_08081D28(this)) { this->action = 4; @@ -94,7 +95,7 @@ void Button_Action4(Entity* this) { this->timer--; if (this->subtimer != 0) { this->subtimer = 0; - SetMetaTile(0x4035, this->field_0x74.HWORD, this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_53, this->field_0x74.HWORD, this->collisionLayer); } if (sub_08081CB0(this)) { this->action = 3; @@ -103,13 +104,13 @@ void Button_Action4(Entity* this) { } else { this->action = 2; ClearFlag(this->field_0x86.HWORD); - SetMetaTileType(0x77, this->field_0x74.HWORD, this->collisionLayer); + SetMetaTileType(META_TILE_TYPE_119, this->field_0x74.HWORD, this->collisionLayer); SoundReq(SFX_BUTTON_PRESS); } } void Button_Action5(Entity* this) { - if (sub_08081F7C(this, 0x7a)) { + if (sub_08081F7C(this, META_TILE_TYPE_122)) { sub_08081E6C(this); } } @@ -117,16 +118,16 @@ void Button_Action5(Entity* this) { Entity* sub_08081D74(Entity*); u32 sub_08081CB0(Entity* this) { - u16 tmp; + u16 tileType; if (sub_08081D74(this)) { this->field_0x70.HALF.LO = -1; - if (GetMetaTileType(this->field_0x74.HWORD, this->collisionLayer) == 0x4035) { + if (GetMetaTileType(this->field_0x74.HWORD, this->collisionLayer) == SPECIAL_META_TILE_53) { sub_0807B7D8(0x78, this->field_0x74.HWORD, this->collisionLayer); } return 1; } else { - tmp = GetMetaTileType(this->field_0x74.HWORD, this->collisionLayer); - if (tmp != 0x77 && tmp != 0x79 && tmp != 0x4035) { + tileType = GetMetaTileType(this->field_0x74.HWORD, this->collisionLayer); + if (tileType != 0x77 && tileType != 0x79 && tileType != SPECIAL_META_TILE_53) { this->field_0x70.HALF.LO = GetMetaTileIndex(this->field_0x74.HWORD, this->collisionLayer); return 1; } @@ -154,8 +155,8 @@ u32 sub_08081E0C(Entity*); Entity* sub_08081D74(Entity* this) { Entity* ent; - if (GetCollisionDataAtMetaTilePos(this->field_0x74.HWORD, this->collisionLayer) == 0xF) { - return 0; + if (GetCollisionDataAtMetaTilePos(this->field_0x74.HWORD, this->collisionLayer) == COLLISION_DATA_15) { + return NULL; } ent = 0; if (sub_08081E0C(this)) { @@ -208,27 +209,27 @@ extern u16 gMapDataTopSpecial[0x2000]; extern u16 gMapDataBottomSpecial[]; void sub_08081E6C(Entity* this) { - u32 tileType; + u32 metaTileType; MapLayer* mapLayer; u16* tmp2; u16* tmp; u16* tmp3; - u32 tilePosition = this->field_0x74.HWORD; + u32 metaTilePos = this->field_0x74.HWORD; u32 layer = this->collisionLayer; - u32 tile = GetMetaTileType(tilePosition, layer); + u32 specialMetaTile = GetMetaTileType(metaTilePos, layer); - if (tile < 0x4000) + if (specialMetaTile < 0x4000) return; mapLayer = GetLayerByIndex(layer); - tileType = (this->type == 0 ? 0x7a : 0x78); + metaTileType = (this->type == 0 ? META_TILE_TYPE_122 : META_TILE_TYPE_120); tmp = mapLayer->metatiles; - tmp = tmp + (mapLayer->unkData2[tileType] << 2); + tmp = tmp + (mapLayer->unkData2[metaTileType] << 2); tmp2 = (layer == 2 ? gMapDataTopSpecial : gMapDataBottomSpecial); - tmp2 += (((0x3f & tilePosition) << 1) + ((0xfc0 & tilePosition) << 2)); + tmp2 += (((0x3f & metaTilePos) << 1) + ((0xfc0 & metaTilePos) << 2)); if (sub_08081F00((u32*)tmp2, (u32*)tmp)) return; - SetMetaTileType(tileType, tilePosition, layer); - SetMetaTile(tile, tilePosition, layer); + SetMetaTileType(metaTileType, metaTilePos, layer); + SetMetaTile(specialMetaTile, metaTilePos, layer); } // Are the two tiles already set to the correct one @@ -255,7 +256,7 @@ void sub_08081F24(Entity* this) { } } -u32 sub_08081F7C(Entity* this, u32 r7) { +u32 sub_08081F7C(Entity* this, u32 metaTileType) { u16 tmp; if (this->timer == 0) return 1; @@ -265,7 +266,7 @@ u32 sub_08081F7C(Entity* this, u32 r7) { } else { if (this->timer == 6) { SetFlag(this->field_0x86.HWORD); - SetMetaTileType(r7, this->field_0x74.HWORD, this->collisionLayer); + SetMetaTileType(metaTileType, this->field_0x74.HWORD, this->collisionLayer); sub_08081F24(this); SoundReq(SFX_BUTTON_PRESS); if (this->field_0x70.HALF_U.LO != 0xFFFF) diff --git a/src/object/cabinFurniture.c b/src/object/cabinFurniture.c index cb1c7f15..1ddbd3ac 100644 --- a/src/object/cabinFurniture.c +++ b/src/object/cabinFurniture.c @@ -9,6 +9,7 @@ #include "entity.h" #include "flags.h" #include "room.h" +#include "tiles.h" typedef struct { Entity base; @@ -31,12 +32,12 @@ void CabinFurniture(Entity* this) { } void CabinFurniture_Init(CabinFurnitureEntity* this) { - u32 uVar1; + u32 layer; u32 uVar6; u32 uVar7; this->tile = COORD_TO_TILE(super); - uVar1 = super->collisionLayer; + layer = super->collisionLayer; UpdateSpriteForCollisionLayer(super); switch (super->type) { case 0: @@ -44,38 +45,38 @@ void CabinFurniture_Init(CabinFurnitureEntity* this) { super->spritePriority.b0 = 6; uVar7 = this->tile; uVar6 = uVar7 - 1; - SetMetaTile(0x4022, uVar6, uVar1); - SetMetaTile(0x4022, uVar7, uVar1); - SetMetaTile(0x4022, uVar7 + 1, uVar1); - SetMetaTile(0x4022, uVar7 + 0x3f, uVar1); - SetMetaTile(0x4022, uVar7 + 0x40, uVar1); - SetMetaTile(0x4022, uVar7 + 0x41, uVar1); - SetMetaTile(0x403d, uVar7 - 0x41, uVar1); - SetMetaTile(0x403d, uVar7 - 0x40, uVar1); - SetMetaTile(0x4026, uVar7 - 0x3f, uVar1); - SetMetaTile(0x4026, uVar7 - 0x81, uVar1); - SetMetaTile(0x4026, uVar7 - 0x80, uVar1); + SetMetaTile(SPECIAL_META_TILE_34, uVar6, layer); + SetMetaTile(SPECIAL_META_TILE_34, uVar7, layer); + SetMetaTile(SPECIAL_META_TILE_34, uVar7 + 1, layer); + SetMetaTile(SPECIAL_META_TILE_34, uVar7 + 0x3f, layer); + SetMetaTile(SPECIAL_META_TILE_34, uVar7 + 0x40, layer); + SetMetaTile(SPECIAL_META_TILE_34, uVar7 + 0x41, layer); + SetMetaTile(SPECIAL_META_TILE_61, uVar7 - 0x41, layer); + SetMetaTile(SPECIAL_META_TILE_61, uVar7 - 0x40, layer); + SetMetaTile(SPECIAL_META_TILE_38, uVar7 - 0x3f, layer); + SetMetaTile(SPECIAL_META_TILE_38, uVar7 - 0x81, layer); + SetMetaTile(SPECIAL_META_TILE_38, uVar7 - 0x80, layer); break; case 1: super->action = 1; uVar6 = this->tile; - SetMetaTile(0x4022, uVar6, uVar1); - SetMetaTile(0x4022, uVar6 + 0x40, uVar1); - SetMetaTile(0x4025, uVar6 + 0x41, uVar1); + SetMetaTile(SPECIAL_META_TILE_34, uVar6, layer); + SetMetaTile(SPECIAL_META_TILE_34, uVar6 + 0x40, layer); + SetMetaTile(SPECIAL_META_TILE_37, uVar6 + 0x41, layer); if (CheckLocalFlag(0x4f) == 0) { - SetMetaTile(0x402f, uVar6 + 1, uVar1); + SetMetaTile(SPECIAL_META_TILE_47, uVar6 + 1, layer); } else { - SetMetaTile(0x402d, uVar6 + 1, uVar1); + SetMetaTile(SPECIAL_META_TILE_45, uVar6 + 1, layer); } break; case 2: super->action = 1; uVar7 = this->tile; uVar6 = uVar7 - 0x41; - SetMetaTile(0x4022, uVar6, uVar1); - SetMetaTile(0x4022, uVar7 - 0x40, uVar1); - SetMetaTile(0x4022, uVar7 - 1, uVar1); - SetMetaTile(0x4022, uVar7, uVar1); + SetMetaTile(SPECIAL_META_TILE_34, uVar6, layer); + SetMetaTile(SPECIAL_META_TILE_34, uVar7 - 0x40, layer); + SetMetaTile(SPECIAL_META_TILE_34, uVar7 - 1, layer); + SetMetaTile(SPECIAL_META_TILE_34, uVar7, layer); break; } } diff --git a/src/object/carlovObject.c b/src/object/carlovObject.c index 27a2da2a..662a48fe 100644 --- a/src/object/carlovObject.c +++ b/src/object/carlovObject.c @@ -6,8 +6,8 @@ */ #define NENT_DEPRECATED #include "functions.h" -#include "global.h" #include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -99,7 +99,7 @@ void CarlovObject_Type1Init(CarlovObjectEntity* this) { if (super->timer == 0) { super->action = 1; super->subtimer = 120; - SetMetaTile(0x4022, this->unk_76, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->unk_76, super->collisionLayer); } else { super->action = 3; super->spriteSettings.draw = 0; @@ -142,7 +142,7 @@ void CarlovObject_Type1Action4(CarlovObjectEntity* this) { super->action = 5; sub_08083814(super, 2); EnqueueSFX(SFX_10B); - SetMetaTile(0x4022, this->unk_76, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->unk_76, super->collisionLayer); } } diff --git a/src/object/chestSpawner.c b/src/object/chestSpawner.c index a3bfe455..5f3b3ada 100644 --- a/src/object/chestSpawner.c +++ b/src/object/chestSpawner.c @@ -7,11 +7,11 @@ #define NENT_DEPRECATED #include "functions.h" -#include "global.h" #include "item.h" #include "object.h" #include "screen.h" #include "structures.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -29,7 +29,7 @@ void sub_080842D8(ChestSpawnerEntity*); void AddInteractableChest(ChestSpawnerEntity*); void sub_08083E20(ChestSpawnerEntity*); void sub_08084074(u32); -void sub_080840A8(s32, s32); +void sub_080840A8(s32 x, s32 y); void ChestSpawner_Type0(ChestSpawnerEntity*); void ChestSpawner_Type2(ChestSpawnerEntity*); void ChestSpawner_Type0Init(ChestSpawnerEntity*); @@ -164,7 +164,7 @@ void ChestSpawner_Type2Action4(ChestSpawnerEntity* this) { GetNextFrame(super); if ((super->frame & ANIM_DONE) != 0) { if (--super->subtimer == 0) { - if (super->timer == 0x18) { + if (super->timer == 24) { super->action = 6; super->timer = 8; super->subtimer = 16; @@ -189,18 +189,18 @@ void sub_08084074(u32 param_1) { } } -void sub_080840A8(s32 param_1, s32 param_2) { +void sub_080840A8(s32 x, s32 y) { static const u8 gUnk_0811F838[] = { 84, 84, 84, 84, 85, 85, 85, 86 }; - static const s32 gUnk_0811F840[] = { 393216, 458752, 524288, 589824 }; - static const s8 gUnk_0811F850[] = { -6, 0, 0, 6 }; + static const s32 zVelocities[] = { 0x60000, 0x70000, 0x80000, 0x90000 }; + static const s8 xOffsets[] = { -6, 0, 0, 6 }; Entity* obj = CreateObject(GROUND_ITEM, gUnk_0811F838[Random() & 7], 0); if (obj != NULL) { obj->timer = 6; obj->direction = ((Random() & 7) + 0xc) | 0x80; obj->speed = (Random() & 0xf) * 2 + 0x20; - obj->zVelocity = gUnk_0811F840[Random() & 3]; - obj->x.HALF.HI = gUnk_0811F850[Random() & 3] + param_1; - obj->y.HALF.HI = param_2 + 1; + obj->zVelocity = zVelocities[Random() & 3]; + obj->x.HALF.HI = xOffsets[Random() & 3] + x; + obj->y.HALF.HI = y + 1; obj->z.HALF.HI = -8; ResolveCollisionLayer(obj); obj = CreateFx(obj, FX_DASH, 0); @@ -232,7 +232,7 @@ void ChestSpawner_Type0Init(ChestSpawnerEntity* this) { super->action++; this->tilePosition = COORD_TO_TILE(super); super->hitbox = (Hitbox*)&gUnk_0811F8A8; - if (GetMetaTileTypeByEntity(super) == 0x74) { + if (GetMetaTileTypeByEntity(super) == META_TILE_TYPE_116) { DeleteThisEntity(); } if (CheckFlags(this->unk_86)) { @@ -271,7 +271,7 @@ void ChestSpawner_Type0Action2(ChestSpawnerEntity* this) { void ChestSpawner_Type0Action3(ChestSpawnerEntity* this) { if ((super->type == 1) || (super->type == 7)) { - if (GetMetaTileTypeByEntity(super) == 0x74) { + if (GetMetaTileTypeByEntity(super) == META_TILE_TYPE_116) { DeleteEntity(super); } else { if (!CheckFlags(this->unk_86)) { diff --git a/src/object/crenelBeanSprout.c b/src/object/crenelBeanSprout.c index e2c75700..23203866 100644 --- a/src/object/crenelBeanSprout.c +++ b/src/object/crenelBeanSprout.c @@ -56,13 +56,13 @@ void CrenelBeanSprout_Init(CrenelBeanSproutEntity* this) { if (CheckGlobalFlag(WATERBEAN_OUT)) { if (CheckGlobalFlag(WATERBEAN_PUT) == 0) { PositionRelative(&gPlayerEntity, super, 0, 0x10000); - SetMetaTile(0x4022, 0xdc, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, 0xdc, super->collisionLayer); } else { if (CheckLocalFlag(super->type2) == 0) { InitializeAnimation(super, 10); super->y.HALF.HI += 4; super->action = 4; - SetMetaTile(0x403b, COORD_TO_TILE(super), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_59, COORD_TO_TILE(super), super->collisionLayer); return; } super->type2 = 0; @@ -109,7 +109,7 @@ void CrenelBeanSprout_Init(CrenelBeanSproutEntity* this) { InitializeAnimation(super, 0xb); super->y.HALF.HI += 4; super->action = 4; - SetMetaTile(0x4032, COORD_TO_TILE(super), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_50, COORD_TO_TILE(super), super->collisionLayer); return; } else { super->type2 = 0; @@ -234,7 +234,7 @@ void CrenelBeanSprout_Action3(CrenelBeanSproutEntity* this) { } void CrenelBeanSprout_Action4(CrenelBeanSproutEntity* this) { - static const u16 gUnk_0812319C[] = { 0x403c, 0x4033 }; + static const u16 gUnk_0812319C[] = { SPECIAL_META_TILE_60, SPECIAL_META_TILE_51 }; if (gUnk_0812319C[super->type >> 1] == GetMetaTileTypeByEntity(super)) { GetNextFrame(super); gPlayerState.keepFacing |= 0x80; @@ -331,5 +331,5 @@ void sub_08096A78(CrenelBeanSproutEntity* this) { sub_08004168(super); super->y.HALF.HI += 4; super->action = 3; - SetMetaTile(0x403b, COORD_TO_TILE(super), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_59, COORD_TO_TILE(super), super->collisionLayer); } diff --git a/src/object/cuccoMinigame.c b/src/object/cuccoMinigame.c index 3e04e6ae..daf17bcd 100644 --- a/src/object/cuccoMinigame.c +++ b/src/object/cuccoMinigame.c @@ -10,10 +10,11 @@ #include "entity.h" #include "fileselect.h" #include "functions.h" +#include "item.h" #include "npc.h" #include "object.h" #include "script.h" -#include "item.h" +#include "tiles.h" typedef struct { Entity base; @@ -363,17 +364,17 @@ void CuccoMinigame_TellObjective(void) { } void sub_080A1648(void) { - SetMetaTileType(0x407f, 0xd36, 1); - SetMetaTileType(0x407f, 0xd37, 1); - SetMetaTileType(0x407f, 0xd38, 1); - SetMetaTileType(0x407e, 0xd75, 1); - SetMetaTileType(0x407e, 0xe75, 1); + SetMetaTileType(SPECIAL_META_TILE_127, TILE_POS(54, 52), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_127, TILE_POS(55, 52), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_127, TILE_POS(56, 52), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_126, TILE_POS(53, 53), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_126, TILE_POS(53, 57), LAYER_BOTTOM); } void sub_080A169C(void) { - RestorePrevTileEntity(0xd36, 1); - RestorePrevTileEntity(0xd37, 1); - RestorePrevTileEntity(0xd38, 1); - RestorePrevTileEntity(0xd75, 1); - RestorePrevTileEntity(0xe75, 1); + RestorePrevTileEntity(TILE_POS(54, 52), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(55, 52), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(56, 52), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(53, 53), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(53, 57), LAYER_BOTTOM); } diff --git a/src/object/cutsceneMiscObject.c b/src/object/cutsceneMiscObject.c index 16994592..d3fb365f 100644 --- a/src/object/cutsceneMiscObject.c +++ b/src/object/cutsceneMiscObject.c @@ -12,6 +12,7 @@ #include "object.h" #include "screen.h" #include "script.h" +#include "tiles.h" extern u8 gUnk_08122AE0[]; extern u16 gUnk_08122AE8[]; @@ -335,7 +336,7 @@ void sub_08094E30(CutsceneMiscObjectEntity* this) { super->zVelocity = 0; SetDefaultPriority(super, PRIO_PLAYER_EVENT); InitializeAnimation(super, 0); - if (GetVvvAtEntity(super) == 13) { + if (GetVvvAtEntity(super) == VVV_13) { super->action = 3; } break; diff --git a/src/object/doubleBookshelf.c b/src/object/doubleBookshelf.c index ef7c3484..f35c0684 100644 --- a/src/object/doubleBookshelf.c +++ b/src/object/doubleBookshelf.c @@ -6,13 +6,13 @@ */ #define NENT_DEPRECATED #include "functions.h" -#include "global.h" #include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; /*0x68*/ u8 unk_68[0x18]; - /*0x80*/ u16 unk_80; + /*0x80*/ u16 metaTilePos; /*0x82*/ u16 unk_82; /*0x84*/ u8 unk_84; /*0x85*/ u8 unk_85; @@ -43,7 +43,7 @@ void DoubleBookshelf(DoubleBookshelfEntity* this) { void DoubleBookshelf_Init(DoubleBookshelfEntity* this) { DoubleBookshelfEntity* child; super->frameIndex = super->type; - this->unk_80 = COORD_TO_TILE(super); + this->metaTilePos = COORD_TO_TILE(super); if (super->type != 0) { super->action = 1; if (this->unk_84 == 0) { @@ -82,7 +82,7 @@ void DoubleBookshelf_Action2(DoubleBookshelfEntity* this) { LinearMoveUpdate(super); if (--super->timer == 0) { super->action = 1; - this->unk_80 = COORD_TO_TILE(super); + this->metaTilePos = COORD_TO_TILE(super); SetPlayerControl(CONTROL_ENABLED); sub_0809B0B0(this); EnqueueSFX(SFX_BUTTON_PRESS); @@ -94,45 +94,45 @@ void DoubleBookshelf_Action3(DoubleBookshelfEntity* this) { } void sub_0809B0B0(DoubleBookshelfEntity* this) { - u32 position = this->unk_80 - 1; + u32 tilePos = this->metaTilePos - 1; u32 layer = super->collisionLayer; switch (super->subAction) { case 0: this->unk_84 = 0; - this->unk_82 = position + 2; - SetMetaTile(0x4082, position - 1, layer); - SetMetaTile(0x4022, position, layer); - SetMetaTile(0x4022, position + 1, layer); - SetMetaTile(0x4022, position + 2, layer); + this->unk_82 = tilePos + 2; + SetMetaTile(SPECIAL_META_TILE_130, tilePos - 1, layer); + SetMetaTile(SPECIAL_META_TILE_34, tilePos, layer); + SetMetaTile(SPECIAL_META_TILE_34, tilePos + 1, layer); + SetMetaTile(SPECIAL_META_TILE_34, tilePos + 2, layer); break; case 1: this->unk_84 = 1; - this->unk_82 = position; - SetMetaTile(0x405f, position, layer); - SetMetaTile(0x4022, position + 1, layer); - SetMetaTile(0x4022, position + 2, layer); - SetMetaTile(0x4082, position + 3, layer); + this->unk_82 = tilePos; + SetMetaTile(SPECIAL_META_TILE_95, tilePos, layer); + SetMetaTile(SPECIAL_META_TILE_34, tilePos + 1, layer); + SetMetaTile(SPECIAL_META_TILE_34, tilePos + 2, layer); + SetMetaTile(SPECIAL_META_TILE_130, tilePos + 3, layer); break; case 2: this->unk_84 = 1; - this->unk_82 = position; - SetMetaTile(0x4082, position + 3, layer); - SetMetaTile(0x4022, position + 2, layer); - SetMetaTile(0x405f, position, layer); + this->unk_82 = tilePos; + SetMetaTile(SPECIAL_META_TILE_130, tilePos + 3, layer); + SetMetaTile(SPECIAL_META_TILE_34, tilePos + 2, layer); + SetMetaTile(SPECIAL_META_TILE_95, tilePos, layer); SetFlag(((DoubleBookshelfEntity*)super->parent)->unk_86); break; case 3: this->unk_84 = 0; - this->unk_82 = position + 2; - SetMetaTile(0x4082, position - 1, layer); - SetMetaTile(0x4022, position, layer); - SetMetaTile(0x405f, position + 2, layer); + this->unk_82 = tilePos + 2; + SetMetaTile(SPECIAL_META_TILE_130, tilePos - 1, layer); + SetMetaTile(SPECIAL_META_TILE_34, tilePos, layer); + SetMetaTile(SPECIAL_META_TILE_95, tilePos + 2, layer); ClearFlag(((DoubleBookshelfEntity*)super->parent)->unk_86); break; case 4: - SetMetaTile(0x4022, position, layer); - SetMetaTile(0x4022, position + 1, layer); - SetMetaTile(0x4022, position + 2, layer); + SetMetaTile(SPECIAL_META_TILE_34, tilePos, layer); + SetMetaTile(SPECIAL_META_TILE_34, tilePos + 1, layer); + SetMetaTile(SPECIAL_META_TILE_34, tilePos + 2, layer); break; } } @@ -159,7 +159,7 @@ void sub_0809B274(DoubleBookshelfEntity* this) { case 1: if (player->x.HALF.HI + 0x1c > super->x.HALF.HI) { this->unk_84 = 2; - SetMetaTile(0x4022, this->unk_80 + 2, 1); + SetMetaTile(SPECIAL_META_TILE_34, this->metaTilePos + 2, LAYER_BOTTOM); sub_0809B358((DoubleBookshelfEntity*)super->child); return; } @@ -174,7 +174,7 @@ void sub_0809B274(DoubleBookshelfEntity* this) { return; } this->unk_84 = 1; - RestorePrevTileEntity(this->unk_80 + 2, 1); + RestorePrevTileEntity(this->metaTilePos + 2, 1); sub_0809B38C((DoubleBookshelfEntity*)super->child); return; } @@ -182,33 +182,34 @@ void sub_0809B274(DoubleBookshelfEntity* this) { void sub_0809B334(DoubleBookshelfEntity* this) { s32 index; - u32 position = this->unk_80 - 0x81; - for (index = 2; index >= 0; index--, position++) { - SetMetaTile(0x4026, position, 1); + u32 tilePos = this->metaTilePos - 0x81; + for (index = 2; index >= 0; index--, tilePos++) { + SetMetaTile(SPECIAL_META_TILE_38, tilePos, LAYER_BOTTOM); } } void sub_0809B358(DoubleBookshelfEntity* this) { - static const u16 gUnk_08123D68[] = { - 0x4022, 0x4022, 0x4074, 0x4026, 0x4074, 0x4074, 0x4026, 0x4074, 0x4022, 0x4022 - }; + static const u16 gUnk_08123D68[] = { SPECIAL_META_TILE_34, SPECIAL_META_TILE_34, SPECIAL_META_TILE_116, + SPECIAL_META_TILE_38, SPECIAL_META_TILE_116, SPECIAL_META_TILE_116, + SPECIAL_META_TILE_38, SPECIAL_META_TILE_116, SPECIAL_META_TILE_34, + SPECIAL_META_TILE_34 }; s32 index; const u16* array = &gUnk_08123D68[this->unk_84]; - u32 position = this->unk_80 - 0x82; + u32 metaTilePos = this->metaTilePos + TILE_POS(-2, -2); for (index = 4; index >= 0;) { - SetMetaTile(*array, position, 1); + SetMetaTile(*array, metaTilePos, LAYER_BOTTOM); index--; - position++; + metaTilePos++; array += 2; } } void sub_0809B38C(DoubleBookshelfEntity* this) { s32 index; - u32 uVar1 = this->unk_80 - 0x82; + u32 metaTilePos = this->metaTilePos + TILE_POS(-2, -2); for (index = 4; index >= 0;) { - RestorePrevTileEntity(uVar1, 1); + RestorePrevTileEntity(metaTilePos, 1); index--; - uVar1++; + metaTilePos++; } } diff --git a/src/object/figurineDevice.c b/src/object/figurineDevice.c index abaa443a..2a2602ae 100644 --- a/src/object/figurineDevice.c +++ b/src/object/figurineDevice.c @@ -9,11 +9,12 @@ #include "figurineMenu.h" #include "fileselect.h" #include "functions.h" -#include "kinstone.h" #include "item.h" +#include "kinstone.h" #include "message.h" #include "object.h" #include "screen.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -307,9 +308,9 @@ void sub_08087F58(FigurineDeviceEntity* this) { switch (super->type) { case 0: case 1: - SetMetaTile(0x4022, this->unk_78 - 1, 1); - SetMetaTile(0x4022, this->unk_78, 1); - SetMetaTile(0x4022, this->unk_78 + 1, 1); + SetMetaTile(SPECIAL_META_TILE_34, this->unk_78 - 1, LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, this->unk_78, LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, this->unk_78 + 1, LAYER_BOTTOM); break; } } diff --git a/src/object/fireplace.c b/src/object/fireplace.c index 830cf0b8..32000490 100644 --- a/src/object/fireplace.c +++ b/src/object/fireplace.c @@ -6,6 +6,7 @@ */ #include "functions.h" #include "object.h" +#include "tiles.h" void Fireplace_Action1(Entity* this); void sub_0809B7DC(Entity* this); @@ -29,7 +30,7 @@ void Fireplace_Init(Entity* this) { DeleteThisEntity(); } else { sub_0807B7D8(0x30b, TILE(this->x.HALF.HI, this->y.HALF.HI), 2); - SetMetaTile(0x4061, TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_97, TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); } Fireplace_Action1(this); } @@ -44,13 +45,13 @@ void Fireplace_Action1(Entity* this) { void sub_0809B7C0(Entity* this) { u32 tileType = GetMetaTileTypeByEntity(this); - if (tileType != 0x4061 && tileType != 0x4062) { + if (tileType != SPECIAL_META_TILE_97 && tileType != SPECIAL_META_TILE_98) { sub_0809B7DC(this); } } void sub_0809B7DC(Entity* this) { sub_0807B7D8(0xc3 << 2, TILE(this->x.HALF.HI, this->y.HALF.HI), 2); - SetMetaTile(0x4062, TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_98, TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); this->timer = 1; } diff --git a/src/object/frozenWaterElement.c b/src/object/frozenWaterElement.c index 52a1f814..c5f620f1 100644 --- a/src/object/frozenWaterElement.c +++ b/src/object/frozenWaterElement.c @@ -6,8 +6,8 @@ */ #define NENT_DEPRECATED #include "functions.h" -#include "global.h" #include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -115,62 +115,62 @@ void FrozenWaterElement_Action2(FrozenWaterElementEntity* this) { void sub_0809C0A8(FrozenWaterElementEntity* this) { u32 position = COORD_TO_TILE(super); - SetMetaTile(0x4022, position - 0x41, super->collisionLayer); - SetMetaTile(0x4022, position - 0x40, super->collisionLayer); - SetMetaTile(0x4022, position - 0x3f, super->collisionLayer); - SetMetaTile(0x4022, position - 2, super->collisionLayer); - SetMetaTile(0x4022, position - 1, super->collisionLayer); - SetMetaTile(0x4022, position, super->collisionLayer); - SetMetaTile(0x4022, position + 1, super->collisionLayer); - SetMetaTile(0x4022, position + 2, super->collisionLayer); - SetMetaTile(0x4022, position + 0x3e, super->collisionLayer); - SetMetaTile(0x4022, position + 0x3f, super->collisionLayer); - SetMetaTile(0x4022, position + 0x40, super->collisionLayer); - SetMetaTile(0x4022, position + 0x41, super->collisionLayer); - SetMetaTile(0x4022, position + 0x42, super->collisionLayer); - SetMetaTile(0x4022, position + 0x7f, super->collisionLayer); - SetMetaTile(0x4022, position + 0x80, super->collisionLayer); - SetMetaTile(0x4022, position + 0x81, super->collisionLayer); - SetMetaTile(0x4022, position + 0x13f, super->collisionLayer); - SetMetaTile(0x4022, position + 0x140, super->collisionLayer); - SetMetaTile(0x4022, position + 0x141, super->collisionLayer); - SetMetaTile(0x4022, position + 0x17f, super->collisionLayer); - SetMetaTile(0x4022, position + 0x181, super->collisionLayer); - SetMetaTile(0x4022, position + 0x1bd, super->collisionLayer); - SetMetaTile(0x4022, position + 0x1be, super->collisionLayer); - SetMetaTile(0x4022, position + 0x1bf, super->collisionLayer); - SetMetaTile(0x4022, position + 0x1c1, super->collisionLayer); - SetMetaTile(0x4022, position + 0x1c2, super->collisionLayer); - SetMetaTile(0x4022, position + 0x1c3, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-1, -1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(0, -1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(1, -1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-2, 0), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-1, 0), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(0, 0), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(1, 0), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(2, 0), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-2, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-1, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(0, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(1, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(2, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-1, 2), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(0, 2), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(1, 2), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-1, 5), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(0, 5), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(1, 5), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-1, 6), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(1, 6), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-3, 7), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-2, 7), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-1, 7), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(1, 7), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(2, 7), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(3, 7), super->collisionLayer); } void sub_0809C23C(FrozenWaterElementEntity* this) { u32 position = COORD_TO_TILE(super); - RestorePrevTileEntity(position - 0x41, super->collisionLayer); - RestorePrevTileEntity(position - 0x40, super->collisionLayer); - RestorePrevTileEntity(position - 0x3f, super->collisionLayer); - RestorePrevTileEntity(position - 2, super->collisionLayer); - RestorePrevTileEntity(position - 1, super->collisionLayer); - RestorePrevTileEntity(position, super->collisionLayer); - RestorePrevTileEntity(position + 1, super->collisionLayer); - RestorePrevTileEntity(position + 2, super->collisionLayer); - RestorePrevTileEntity(position + 0x3e, super->collisionLayer); - RestorePrevTileEntity(position + 0x3f, super->collisionLayer); - RestorePrevTileEntity(position + 0x40, super->collisionLayer); - RestorePrevTileEntity(position + 0x41, super->collisionLayer); - RestorePrevTileEntity(position + 0x42, super->collisionLayer); - RestorePrevTileEntity(position + 0x7f, super->collisionLayer); - RestorePrevTileEntity(position + 0x80, super->collisionLayer); - RestorePrevTileEntity(position + 0x81, super->collisionLayer); - RestorePrevTileEntity(position + 0x13f, super->collisionLayer); - RestorePrevTileEntity(position + 0x140, super->collisionLayer); - RestorePrevTileEntity(position + 0x141, super->collisionLayer); - RestorePrevTileEntity(position + 0x17f, super->collisionLayer); - RestorePrevTileEntity(position + 0x181, super->collisionLayer); - RestorePrevTileEntity(position + 0x1bd, super->collisionLayer); - RestorePrevTileEntity(position + 0x1be, super->collisionLayer); - RestorePrevTileEntity(position + 0x1bf, super->collisionLayer); - RestorePrevTileEntity(position + 0x1c1, super->collisionLayer); - RestorePrevTileEntity(position + 0x1c2, super->collisionLayer); - RestorePrevTileEntity(position + 0x1c3, super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(-1, -1), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(0, -1), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(1, -1), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(-2, 0), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(-1, 0), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(0, 0), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(1, 0), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(2, 0), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(-2, 1), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(-1, 1), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(0, 1), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(1, 1), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(2, 1), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(-1, 2), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(0, 2), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(1, 2), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(-1, 5), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(0, 5), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(1, 5), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(-1, 6), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(1, 6), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(-3, 7), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(-2, 7), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(-1, 7), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(1, 7), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(2, 7), super->collisionLayer); + RestorePrevTileEntity(position + TILE_POS(3, 7), super->collisionLayer); } diff --git a/src/object/furniture.c b/src/object/furniture.c index eb5a496f..ecc36629 100644 --- a/src/object/furniture.c +++ b/src/object/furniture.c @@ -99,7 +99,7 @@ typedef enum { typedef struct { Entity base; /* 0x68 */ u8 pad[0x10]; - /* 0x78 */ u16 tile; + /* 0x78 */ u16 tilePos; /* 0x7a */ u16 unk1; /* 0x7c */ u16 unk2; /* 0x7e */ u16 unk3; @@ -202,11 +202,11 @@ void Furniture(Entity* this) { } static void FurnitureInit(FurnitureEntity* this) { - u32 i, tile, cnt; + u32 i, tilePos, cnt; Entity* e; super->action = FURNITURE_UPDATE; - this->tile = COORD_TO_TILE(super); + this->tilePos = COORD_TO_TILE(super); sub_08090DC4(this); switch (this->flags & 0x7fff) { case 0x100: @@ -217,14 +217,14 @@ static void FurnitureInit(FurnitureEntity* this) { break; case 0x40: super->y.HALF.HI = (super->y.HALF.HI & ~0xF) | 4; - SetMetaTile(0x4017, this->tile - 128, 1); - SetMetaTile(0x4017, this->tile - 64, 1); + SetMetaTile(SPECIAL_META_TILE_23, this->tilePos - 128, LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_23, this->tilePos - 64, LAYER_BOTTOM); break; case 0x80: super->frameIndex = 0; super->y.HALF.HI = (super->y.HALF.HI & ~0xF) | 6; - this->tile = COORD_TO_TILE(super); - SetMetaTile(0x4026, this->tile, super->collisionLayer); + this->tilePos = COORD_TO_TILE(super); + SetMetaTile(SPECIAL_META_TILE_38, this->tilePos, super->collisionLayer); break; case 0x200: break; @@ -242,14 +242,14 @@ static void FurnitureInit(FurnitureEntity* this) { if (this->height != 16) { switch (this->height & 0x70) { case 0x30: - this->tile -= 64; + this->tilePos -= 64; sub_08090B6C(this); - this->tile = COORD_TO_TILE(super); + this->tilePos = COORD_TO_TILE(super); case 0x20: - this->tile += 64; + this->tilePos += 64; sub_08090B6C(this); } - this->tile = COORD_TO_TILE(super); + this->tilePos = COORD_TO_TILE(super); } switch (this->flags & 0x7fff) { @@ -257,12 +257,12 @@ static void FurnitureInit(FurnitureEntity* this) { ChangeObjPalette(super, 0x7E); break; case 0x2: - tile = this->tile - 129; + tilePos = this->tilePos - 129; cnt = super->type != 26 ? 3 : 2; - for (i = 0; i < cnt; ++i, ++tile) { - SetMetaTile(0x4026, tile, 2); - SetMetaTile(0x4026, tile, 1); - SetVvvAtMetaTilePos(VVV_0, tile + 64, 1); + for (i = 0; i < cnt; ++i, ++tilePos) { + SetMetaTile(SPECIAL_META_TILE_38, tilePos, LAYER_TOP); + SetMetaTile(SPECIAL_META_TILE_38, tilePos, LAYER_BOTTOM); + SetVvvAtMetaTilePos(VVV_0, tilePos + TILE_POS(0, 1), 1); } break; } @@ -282,27 +282,27 @@ static void FurnitureInit(FurnitureEntity* this) { } break; case SHOE_DESK: - sub_0807B7D8(774, this->tile + 65, 2); + sub_0807B7D8(774, this->tilePos + 65, 2); break; case STAIRCASE: super->collisionLayer = 1; super->spriteOrientation.flipY = 2; - SetMetaTile(0x4074, this->tile - 64, super->collisionLayer); - SetVvvAtMetaTilePos(VVV_63, this->tile - 64, super->collisionLayer); - SetMetaTile(0x4017, this->tile, super->collisionLayer); - SetMetaTile(0x4017, this->tile + 64, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_116, this->tilePos - 64, super->collisionLayer); + SetVvvAtMetaTilePos(VVV_63, this->tilePos - 64, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_23, this->tilePos, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_23, this->tilePos + 64, super->collisionLayer); break; case MINISH_CHEESE: if (super->type2 != 0) super->spriteOffsetX = -4; break; case WOODEN_TABLE: - SetMetaTile(0x4023, this->tile - 65, super->collisionLayer); - SetMetaTile(0x4023, this->tile - 64, super->collisionLayer); - SetMetaTile(0x4023, this->tile - 63, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_35, this->tilePos - 65, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_35, this->tilePos - 64, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_35, this->tilePos - 63, super->collisionLayer); break; case LOW_BOOKSHELF: - SetMetaTile(0x4022, this->tile + 65, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->tilePos + 65, super->collisionLayer); } } @@ -338,20 +338,21 @@ static void FurnitureUpdate(FurnitureEntity* this) { break; case 0x80: if (gPlayerEntity.y.HALF.HI < super->y.HALF.HI + 8) { - if (gPlayerState.floor_type != SURFACE_LADDER && GetMetaTileTypeByEntity(super) == 0x4017) { - SetMetaTile(0x4026, this->tile, super->collisionLayer); - SetMetaTile(0x403D, this->tile - 64, super->collisionLayer); - SetMetaTile(0x403D, this->tile - 128, super->collisionLayer); + if (gPlayerState.floor_type != SURFACE_LADDER && + GetMetaTileTypeByEntity(super) == SPECIAL_META_TILE_23) { + SetMetaTile(SPECIAL_META_TILE_38, this->tilePos, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_61, this->tilePos + TILE_POS(0, -1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_61, this->tilePos + TILE_POS(0, -2), super->collisionLayer); } } else { if (gPlayerEntity.collisionLayer & 2) { gPlayerEntity.collisionLayer = 1; UpdateSpriteForCollisionLayer(&gPlayerEntity); } - if (GetMetaTileTypeByEntity(super) != 0x4017) { - SetMetaTile(0x4017, this->tile, super->collisionLayer); - SetMetaTile(0x4017, this->tile - 64, super->collisionLayer); - SetMetaTile(0x4014, this->tile - 128, super->collisionLayer); + if (GetMetaTileTypeByEntity(super) != SPECIAL_META_TILE_23) { + SetMetaTile(SPECIAL_META_TILE_23, this->tilePos, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_23, this->tilePos + TILE_POS(0, -1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_20, this->tilePos + TILE_POS(0, -2), super->collisionLayer); } } break; @@ -365,8 +366,8 @@ static void sub_08090B6C(FurnitureEntity* this) { if (width != 0) { u8 w2 = width / 8; u32 px = super->x.HALF.HI & 0xF; - u32 tile = this->tile; - u32 cl = super->collisionLayer; + u32 tilePos = this->tilePos; + u32 layer = super->collisionLayer; int i; switch ((u32)w2 & 3) { @@ -376,104 +377,103 @@ static void sub_08090B6C(FurnitureEntity* this) { num = 2; } for (i = -num; i <= num; ++i) { - SetMetaTile(0x4022, tile + i, cl); + SetMetaTile(SPECIAL_META_TILE_34, tilePos + i, layer); } if (px & 8) { - sub_08090CDC(0x4024, tile - i, cl); - sub_08090CDC(0x4025, tile + i, cl); + sub_08090CDC(SPECIAL_META_TILE_36, tilePos - i, layer); + sub_08090CDC(SPECIAL_META_TILE_37, tilePos + i, layer); } else { - SetMetaTile(0x4022, tile - i, cl); + SetMetaTile(SPECIAL_META_TILE_34, tilePos - i, layer); } break; case 1: num = w2 / 8; for (i = -num; i <= num; i++) { - SetMetaTile(0x4022, tile + i, cl); + SetMetaTile(SPECIAL_META_TILE_34, tilePos + i, layer); } if (px & 8) { - sub_08090CDC(0x4024, tile - i, cl); + sub_08090CDC(SPECIAL_META_TILE_36, tilePos - i, layer); if (i != 0) { - SetMetaTile(0x4022, tile + i, cl); + SetMetaTile(SPECIAL_META_TILE_34, tilePos + i, layer); } } else { if (i != 0) { - SetMetaTile(0x4022, tile - i, cl); + SetMetaTile(SPECIAL_META_TILE_34, tilePos - i, layer); } - sub_08090CDC(0x4025, tile + i, cl); + sub_08090CDC(SPECIAL_META_TILE_37, tilePos + i, layer); } break; case 2: num = w2 / 4; for (i = -num; i < num; ++i) { - SetMetaTile(0x4022, tile + i, cl); + SetMetaTile(SPECIAL_META_TILE_34, tilePos + i, layer); } if (px & 8) { - SetMetaTile(0x4022, tile + i, cl); + SetMetaTile(SPECIAL_META_TILE_34, tilePos + i, layer); } else { - sub_08090CDC(0x4024, tile - i - 1, cl); - sub_08090CDC(0x4025, tile + i, cl); + sub_08090CDC(SPECIAL_META_TILE_36, tilePos - i - 1, layer); + sub_08090CDC(SPECIAL_META_TILE_37, tilePos + i, layer); } break; case 3: num = w2 / 4; for (i = -num; i <= num; ++i) { - SetMetaTile(0x4022, tile + i, cl); + SetMetaTile(SPECIAL_META_TILE_34, tilePos + i, layer); } if (px & 8) { - sub_08090CDC(0x4025, tile + i, cl); + sub_08090CDC(SPECIAL_META_TILE_37, tilePos + i, layer); } else { - sub_08090CDC(0x4024, tile - i, cl); + sub_08090CDC(SPECIAL_META_TILE_36, tilePos - i, layer); } break; } } } -static void sub_08090CDC(u32 id, u32 pos, u32 layer) { - u16 cur = GetMetaTileIndex(pos, layer); +static void sub_08090CDC(u32 metaTileIndex, u32 metaTilePos, u32 layer) { + u16 cur = GetMetaTileIndex(metaTilePos, layer); u32 next = cur; - u32 id2; if ((cur & 0x4000) == 0) { - SetMetaTile(id, pos, layer); + SetMetaTile(metaTileIndex, metaTilePos, layer); } else { switch (cur) { - case 0x4025: - if (id == 0x4024) - next = 0x4022; - if (id == 0x402c) - next = 0x4022; + case SPECIAL_META_TILE_37: + if (metaTileIndex == SPECIAL_META_TILE_36) + next = SPECIAL_META_TILE_34; + if (metaTileIndex == SPECIAL_META_TILE_44) + next = SPECIAL_META_TILE_34; break; - case 0x402D: - if (id == 0x402c) - next = 0x402b; - if (id == 0x4024) - next = 0x4022; + case SPECIAL_META_TILE_45: + if (metaTileIndex == SPECIAL_META_TILE_44) + next = SPECIAL_META_TILE_43; + if (metaTileIndex == SPECIAL_META_TILE_36) + next = SPECIAL_META_TILE_34; break; - case 0x4024: - if (id == 0x4025) - next = 0x4022; - if (id == 0x402d) - next = 0x4022; + case SPECIAL_META_TILE_36: + if (metaTileIndex == SPECIAL_META_TILE_37) + next = SPECIAL_META_TILE_34; + if (metaTileIndex == SPECIAL_META_TILE_45) + next = SPECIAL_META_TILE_34; break; - case 0x402C: - if (id == 0x402d) - next = 0x402b; - if (id == 0x4025) - next = 0x4022; + case SPECIAL_META_TILE_44: + if (metaTileIndex == SPECIAL_META_TILE_45) + next = SPECIAL_META_TILE_43; + if (metaTileIndex == SPECIAL_META_TILE_37) + next = SPECIAL_META_TILE_34; break; - case 0x4022: - case 0x4023: - case 0x4026: - case 0x4027: - case 0x4028: - case 0x4029: - case 0x402a: - case 0x402b: + case SPECIAL_META_TILE_34: + case SPECIAL_META_TILE_35: + case SPECIAL_META_TILE_38: + case SPECIAL_META_TILE_39: + case SPECIAL_META_TILE_40: + case SPECIAL_META_TILE_41: + case SPECIAL_META_TILE_42: + case SPECIAL_META_TILE_43: default: return; } - SetMetaTile(next, pos, layer); + SetMetaTile(next, metaTilePos, layer); } } diff --git a/src/object/gentariCurtain.c b/src/object/gentariCurtain.c index dd9f70d6..6e525c1a 100644 --- a/src/object/gentariCurtain.c +++ b/src/object/gentariCurtain.c @@ -11,6 +11,7 @@ #include "functions.h" #include "object.h" #include "room.h" +#include "tiles.h" typedef struct { Entity base; @@ -58,10 +59,10 @@ void GentariCurtain_Init(GentariCurtainEntity* this) { UpdateSpriteForCollisionLayer(super); this->tile = COORD_TO_TILE_OFFSET(super, 0, 8); this->tile2 = COORD_TO_TILE_OFFSET(super, 0, -8); - this->tileIndex = GetMetaTileIndex(this->tile, 1); - this->tileIndex2 = GetMetaTileIndex(this->tile2, 1); - SetMetaTile(0x4022, this->tile, 1); - SetMetaTile(0x4022, this->tile2, 1); + this->tileIndex = GetMetaTileIndex(this->tile, LAYER_BOTTOM); + this->tileIndex2 = GetMetaTileIndex(this->tile2, LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, this->tile, LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, this->tile2, LAYER_BOTTOM); InitAnimationForceUpdate(super, 0); } else { super->action = 1; @@ -81,8 +82,8 @@ void GentariCurtain_Action2(GentariCurtainEntity* this) { UpdateAnimationSingleFrame(super); if ((super->frame & ANIM_DONE) != 0) { super->action = 3; - SetMetaTile(this->tileIndex, this->tile, 1); - SetMetaTile(this->tileIndex2, this->tile2, 1); + SetMetaTile(this->tileIndex, this->tile, LAYER_BOTTOM); + SetMetaTile(this->tileIndex2, this->tile2, LAYER_BOTTOM); sub_08092214(this); sub_0809223C(this); InitAnimationForceUpdate(super, 1); diff --git a/src/object/giantBookLadder.c b/src/object/giantBookLadder.c index 6789ecfa..37e60040 100644 --- a/src/object/giantBookLadder.c +++ b/src/object/giantBookLadder.c @@ -5,8 +5,10 @@ * @brief Giant Book Ladder object */ #define NENT_DEPRECATED -#include "object.h" #include "manager.h" +#include "map.h" +#include "object.h" +#include "tiles.h" typedef struct { Entity base; @@ -44,43 +46,43 @@ void sub_0808E55C(GiantBookLadderEntity* this) { u32 uVar4; u32 unaff_r9; u32 uVar5; - u32 position; + u32 tilePos; switch (super->type) { case 0: case 2: - position = this->unk74; - unaff_r9 = position - 0x101; - SetMetaTile(0x408f, unaff_r9, super->collisionLayer); - SetMetaTile(0x408f, position - 0x100, super->collisionLayer); - SetMetaTile(0x406c, position - 0x102, super->collisionLayer); - SetMetaTile(0x406d, position - 0xff, super->collisionLayer); + tilePos = this->unk74; + unaff_r9 = tilePos + TILE_POS(-1, -4); + SetMetaTile(SPECIAL_META_TILE_143, unaff_r9, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_143, tilePos + TILE_POS(0, -4), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_108, tilePos + TILE_POS(-2, -4), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_109, tilePos + TILE_POS(1, -4), super->collisionLayer); type = super->type; uVar5 = 6; if (type != 0) { uVar5 = 4; - SetMetaTile(0x4072, position + 0x3f, super->collisionLayer); - SetMetaTile(0x4072, position + 0x40, super->collisionLayer); - SetMetaTile(0x4072, position + 0x7f, super->collisionLayer); - SetMetaTile(0x4072, position + 0x80, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_114, tilePos + TILE_POS(-1, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_114, tilePos + TILE_POS(0, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_114, tilePos + TILE_POS(-1, 2), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_114, tilePos + TILE_POS(0, 2), super->collisionLayer); } break; case 1: - position = this->unk74; - unaff_r9 = position - 1; - SetMetaTile(0x408e, unaff_r9, super->collisionLayer); - SetMetaTile(0x408e, position, super->collisionLayer); + tilePos = this->unk74; + unaff_r9 = tilePos - 1; + SetMetaTile(SPECIAL_META_TILE_142, unaff_r9, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_142, tilePos, super->collisionLayer); uVar5 = 2; break; } for (uVar4 = 0; uVar4 < uVar5; uVar4++) { unaff_r9 += 0x40; - SetMetaTile(0x408e, unaff_r9, super->collisionLayer); - SetMetaTile(0x408e, unaff_r9 + 1, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_142, unaff_r9, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_142, unaff_r9 + 1, super->collisionLayer); } } u32 sub_0808E670(GiantBookLadderEntity* this) { - return GetMetaTileType(this->unk74 - 0x101, 1); + return GetMetaTileType(this->unk74 - 0x101, LAYER_BOTTOM); } diff --git a/src/object/giantLeaf.c b/src/object/giantLeaf.c index b3a0a475..a685704b 100644 --- a/src/object/giantLeaf.c +++ b/src/object/giantLeaf.c @@ -4,6 +4,7 @@ * * @brief Giant Leaf object */ +#include "map.h" #include "object.h" void sub_0808D618(Entity* ent); @@ -35,6 +36,6 @@ void sub_0808D618(Entity* ent) { ((((ent->y.HALF.HI - gRoomControls.origin_y) >> 4) & 0x3F) * 64); for (i = 0; i < 13; i++) { - SetMetaTile(16500, tilePos + arr[i], 1); + SetMetaTile(16500, tilePos + arr[i], LAYER_BOTTOM); } } diff --git a/src/object/giantRock2.c b/src/object/giantRock2.c index 92ac876c..7e0073b2 100644 --- a/src/object/giantRock2.c +++ b/src/object/giantRock2.c @@ -8,11 +8,12 @@ #include "asm.h" #include "entity.h" #include "room.h" +#include "tiles.h" typedef struct { Entity base; u8 filler[0xC]; - u16 tile; + u16 metaTilePos; } GiantRock2Entity; void GiantRock2_Init(GiantRock2Entity*); @@ -28,22 +29,22 @@ void GiantRock2(Entity* this) { void GiantRock2_Init(GiantRock2Entity* this) { u32 collisionLayer; - u16 position; + u16 metaTilePos; int index; u32 tileIndex; super->action = 1; - this->tile = COORD_TO_TILE(super); + this->metaTilePos = COORD_TO_TILE(super); collisionLayer = super->collisionLayer; super->spritePriority.b0 = 7; - position = (this->tile - 0x80); - tileIndex = 0x4022; + metaTilePos = (this->metaTilePos - TILE_POS(0, 2)); + tileIndex = SPECIAL_META_TILE_34; for (index = 4; index > -1; index--) { - SetMetaTile(tileIndex, position - 2, collisionLayer); - SetMetaTile(tileIndex, position - 1, collisionLayer); - SetMetaTile(tileIndex, position, collisionLayer); - SetMetaTile(tileIndex, position + 1, collisionLayer); - position += 0x40; + SetMetaTile(tileIndex, metaTilePos - 2, collisionLayer); + SetMetaTile(tileIndex, metaTilePos - 1, collisionLayer); + SetMetaTile(tileIndex, metaTilePos, collisionLayer); + SetMetaTile(tileIndex, metaTilePos + 1, collisionLayer); + metaTilePos += TILE_POS(0, 1); } } diff --git a/src/object/giantTwig.c b/src/object/giantTwig.c index 0ed9a81d..1e130405 100644 --- a/src/object/giantTwig.c +++ b/src/object/giantTwig.c @@ -7,8 +7,8 @@ #define NENT_DEPRECATED #include "functions.h" -#include "global.h" #include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -143,22 +143,28 @@ void GiantTwig_Type2Idle(GiantTwigEntity* this) { void sub_08093984(GiantTwigEntity* this) { u32 index; - const s16* array; + const s16* metaTileOffsets; if (super->type2 != 0) { static const s16 gUnk_081228F8[] = { - -130, -129, -128, -127, -66, -65, -64, -63, -62, -2, -1, 0, 1, 2, 63, 64, 65, 66, 67, + TILE_POS(-2, -2), TILE_POS(-1, -2), TILE_POS(0, -2), TILE_POS(1, -2), TILE_POS(-2, -1), + TILE_POS(-1, -1), TILE_POS(0, -1), TILE_POS(1, -1), TILE_POS(2, -1), TILE_POS(-2, 0), + TILE_POS(-1, 0), TILE_POS(0, 0), TILE_POS(1, 0), TILE_POS(2, 0), TILE_POS(-1, 1), + TILE_POS(0, 1), TILE_POS(1, 1), TILE_POS(2, 1), TILE_POS(3, 1), }; - array = gUnk_081228F8; + metaTileOffsets = gUnk_081228F8; } else { static const s16 gUnk_0812291E[] = { - -129, -128, -127, -126, -66, -65, -64, -63, -62, -2, -1, 0, 1, 2, 61, 62, 63, 64, 65, + TILE_POS(-1, -2), TILE_POS(0, -2), TILE_POS(1, -2), TILE_POS(2, -2), TILE_POS(-2, -1), + TILE_POS(-1, -1), TILE_POS(0, -1), TILE_POS(1, -1), TILE_POS(2, -1), TILE_POS(-2, 0), + TILE_POS(-1, 0), TILE_POS(0, 0), TILE_POS(1, 0), TILE_POS(2, 0), TILE_POS(-3, 1), + TILE_POS(-2, 1), TILE_POS(-1, 1), TILE_POS(0, 1), TILE_POS(1, 1), }; - array = gUnk_0812291E; + metaTileOffsets = gUnk_0812291E; } for (index = 0; index < 0x13; index++) { - SetMetaTile(0x4074, array[index] + this->tilePosition, 1); + SetMetaTile(SPECIAL_META_TILE_116, metaTileOffsets[index] + this->tilePosition, LAYER_BOTTOM); } } @@ -177,47 +183,47 @@ void GiantTwig_Type3Idle(GiantTwigEntity* this) { void sub_08093A1C(GiantTwigEntity* this) { switch (super->type) { case 0: - SetMetaTile(0x4024, this->tilePosition + 0x3c, super->collisionLayer); - SetMetaTile(0x4022, this->tilePosition + 0x3d, super->collisionLayer); - SetMetaTile(0x4022, this->tilePosition + 0x3e, super->collisionLayer); - SetMetaTile(0x4029, this->tilePosition + 0x7c, super->collisionLayer); - SetMetaTile(0x4026, this->tilePosition + 0x7d, super->collisionLayer); - SetMetaTile(0x4026, this->tilePosition + 0x7e, super->collisionLayer); - SetMetaTile(0x403d, this->tilePosition + 0x40, super->collisionLayer); - SetMetaTile(0x403d, this->tilePosition + 0x80, super->collisionLayer); - SetMetaTile(0x4027, this->tilePosition + 0x41, super->collisionLayer); - SetMetaTile(0x4023, this->tilePosition + 0x42, super->collisionLayer); - SetMetaTile(0x406d, this->tilePosition + 0x43, super->collisionLayer); - SetMetaTile(0x4029, this->tilePosition + 0x81, super->collisionLayer); - SetMetaTile(0x4026, this->tilePosition + 0x82, super->collisionLayer); - SetMetaTile(0x4026, this->tilePosition + 0x83, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_36, this->tilePosition + TILE_POS(-4, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->tilePosition + TILE_POS(-3, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->tilePosition + TILE_POS(-2, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_41, this->tilePosition + TILE_POS(-4, 2), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_38, this->tilePosition + TILE_POS(-3, 2), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_38, this->tilePosition + TILE_POS(-2, 2), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_61, this->tilePosition + TILE_POS(0, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_61, this->tilePosition + TILE_POS(0, 2), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_39, this->tilePosition + TILE_POS(1, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_35, this->tilePosition + TILE_POS(2, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_109, this->tilePosition + TILE_POS(3, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_41, this->tilePosition + TILE_POS(1, 2), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_38, this->tilePosition + TILE_POS(2, 2), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_38, this->tilePosition + TILE_POS(3, 2), super->collisionLayer); break; case 1: if ((super->type2 & 1) != 0) { - SetMetaTile(0x406d, this->tilePosition - 0x81, super->collisionLayer); - SetMetaTile(0x4022, this->tilePosition - 0x41, super->collisionLayer); - SetMetaTile(0x4029, this->tilePosition - 2, super->collisionLayer); - SetMetaTile(0x4026, this->tilePosition - 1, super->collisionLayer); - SetMetaTile(0x4022, this->tilePosition, super->collisionLayer); - SetMetaTile(0x406d, this->tilePosition + 1, super->collisionLayer); - SetMetaTile(0x406e, this->tilePosition + 0x40, super->collisionLayer); - SetMetaTile(0x4022, this->tilePosition + 0x41, super->collisionLayer); - SetMetaTile(0x406d, this->tilePosition + 0x42, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_109, this->tilePosition + TILE_POS(-1, -2), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->tilePosition + TILE_POS(-1, -1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_41, this->tilePosition + TILE_POS(-2, 0), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_38, this->tilePosition + TILE_POS(-1, 0), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->tilePosition + TILE_POS(0, 0), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_109, this->tilePosition + TILE_POS(1, 0), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_110, this->tilePosition + TILE_POS(0, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->tilePosition + TILE_POS(1, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_109, this->tilePosition + TILE_POS(2, 1), super->collisionLayer); } else { - SetMetaTile(0x406c, this->tilePosition - 0x7f, super->collisionLayer); - SetMetaTile(0x4022, this->tilePosition - 0x3f, super->collisionLayer); - SetMetaTile(0x406c, this->tilePosition - 1, super->collisionLayer); - SetMetaTile(0x4022, this->tilePosition, super->collisionLayer); - SetMetaTile(0x4026, this->tilePosition + 1, super->collisionLayer); - SetMetaTile(0x402a, this->tilePosition + 2, super->collisionLayer); - SetMetaTile(0x406c, this->tilePosition + 0x3e, super->collisionLayer); - SetMetaTile(0x4022, this->tilePosition + 0x3f, super->collisionLayer); - SetMetaTile(0x406f, this->tilePosition + 0x40, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_108, this->tilePosition + TILE_POS(1, -2), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->tilePosition + TILE_POS(1, -1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_108, this->tilePosition + TILE_POS(-1, 0), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->tilePosition + TILE_POS(0, 0), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_38, this->tilePosition + TILE_POS(1, 0), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_42, this->tilePosition + TILE_POS(2, 0), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_108, this->tilePosition + TILE_POS(-2, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->tilePosition + TILE_POS(-1, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_111, this->tilePosition + TILE_POS(0, 1), super->collisionLayer); return; } break; case 3: - SetMetaTile(0x4022, this->tilePosition, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->tilePosition, super->collisionLayer); break; } } @@ -226,12 +232,12 @@ void sub_08093C70(GiantTwigEntity* this) { if (this->unk_78 != 0) { if (gPlayerState.heldObject != 0) { this->unk_78 = 0; - SetMetaTile(0x4022, this->tilePosition + 0x3f, super->collisionLayer); - SetMetaTile(0x4022, this->tilePosition + 0x40, super->collisionLayer); - SetMetaTile(0x4022, this->tilePosition + 0x41, super->collisionLayer); - SetMetaTile(0x4026, this->tilePosition + 0x7f, super->collisionLayer); - SetMetaTile(0x4026, this->tilePosition + 0x80, super->collisionLayer); - SetMetaTile(0x4026, this->tilePosition + 0x81, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->tilePosition + TILE_POS(-1, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->tilePosition + TILE_POS(0, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->tilePosition + TILE_POS(1, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_38, this->tilePosition + TILE_POS(-1, 2), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_38, this->tilePosition + TILE_POS(0, 2), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_38, this->tilePosition + TILE_POS(1, 2), super->collisionLayer); } } else { @@ -239,12 +245,12 @@ void sub_08093C70(GiantTwigEntity* this) { if (--this->unk_7a == 0) { this->unk_78++; this->unk_7a = 0x3c; - SetMetaTile(0x403d, this->tilePosition + 0x3f, super->collisionLayer); - SetMetaTile(0x403d, this->tilePosition + 0x40, super->collisionLayer); - SetMetaTile(0x4027, this->tilePosition + 0x41, super->collisionLayer); - SetMetaTile(0x403d, this->tilePosition + 0x7f, super->collisionLayer); - SetMetaTile(0x403d, this->tilePosition + 0x80, super->collisionLayer); - SetMetaTile(0x4029, this->tilePosition + 0x81, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_61, this->tilePosition + TILE_POS(-1, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_61, this->tilePosition + TILE_POS(0, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_39, this->tilePosition + TILE_POS(1, 1), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_61, this->tilePosition + TILE_POS(-1, 2), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_61, this->tilePosition + TILE_POS(0, 2), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_41, this->tilePosition + TILE_POS(1, 2), super->collisionLayer); } } } diff --git a/src/object/hiddenLadderDown.c b/src/object/hiddenLadderDown.c index c519bac2..5c19bde6 100644 --- a/src/object/hiddenLadderDown.c +++ b/src/object/hiddenLadderDown.c @@ -8,7 +8,7 @@ #include "entity.h" #include "flags.h" #include "functions.h" -#include "global.h" +#include "tiles.h" void HiddenLadderDown_Init(Entity*); void HiddenLadderDown_Action1(Entity*); @@ -34,15 +34,15 @@ void HiddenLadderDown_Init(Entity* this) { if (CheckFlags(this->field_0x86.HWORD) != 0) { this->action = 2; this->spriteSettings.draw = TRUE; - SetMetaTileType(0x1a2, *puVar3 - 0x41, this->collisionLayer); - SetMetaTileType(0x1a3, *puVar3 - 0x40, this->collisionLayer); - SetMetaTileType(0x1a4, *puVar3 - 0x3f, this->collisionLayer); - SetMetaTileType(0x1a5, *puVar3 - 1, this->collisionLayer); - SetMetaTileType(0x1a6, *puVar3, this->collisionLayer); - SetMetaTileType(0x1a7, *puVar3 + 1, this->collisionLayer); - SetMetaTileType(0x1a8, *puVar3 + 0x3f, this->collisionLayer); - SetMetaTileType(0x1a9, *puVar3 + 0x40, this->collisionLayer); - SetMetaTileType(0x1aa, *puVar3 + 0x41, this->collisionLayer); + SetMetaTileType(META_TILE_TYPE_418, *puVar3 + TILE_POS(-1, -1), this->collisionLayer); + SetMetaTileType(META_TILE_TYPE_419, *puVar3 + TILE_POS(0, -1), this->collisionLayer); + SetMetaTileType(META_TILE_TYPE_420, *puVar3 + TILE_POS(1, -1), this->collisionLayer); + SetMetaTileType(META_TILE_TYPE_421, *puVar3 + TILE_POS(-1, 0), this->collisionLayer); + SetMetaTileType(META_TILE_TYPE_422, *puVar3 + TILE_POS(0, 0), this->collisionLayer); + SetMetaTileType(META_TILE_TYPE_423, *puVar3 + TILE_POS(1, 0), this->collisionLayer); + SetMetaTileType(META_TILE_TYPE_424, *puVar3 + TILE_POS(-1, 1), this->collisionLayer); + SetMetaTileType(META_TILE_TYPE_425, *puVar3 + TILE_POS(0, 1), this->collisionLayer); + SetMetaTileType(META_TILE_TYPE_426, *puVar3 + TILE_POS(1, 1), this->collisionLayer); } } diff --git a/src/object/itemOnGround.c b/src/object/itemOnGround.c index 7603bcee..20e5a9ac 100644 --- a/src/object/itemOnGround.c +++ b/src/object/itemOnGround.c @@ -8,13 +8,13 @@ #include "entity.h" #include "flags.h" #include "functions.h" -#include "global.h" #include "hitbox.h" #include "item.h" #include "itemMetaData.h" #include "object.h" #include "player.h" #include "sound.h" +#include "tiles.h" void sub_08081150(Entity*); u8 sub_0808147C(u32); @@ -282,7 +282,8 @@ void sub_080812A0(Entity* this) { } void sub_080812A8(Entity* this) { - if (GetCollisionDataAtEntity(this) != 0xF && this->field_0x6e.HWORD != GetMetaTileTypeByEntity(this)) { + if (GetCollisionDataAtEntity(this) != COLLISION_DATA_15 && + this->field_0x6e.HWORD != GetMetaTileTypeByEntity(this)) { this->direction = 0; this->speed = 0; this->spriteSettings.draw = 1; diff --git a/src/object/jailBars.c b/src/object/jailBars.c index 870ce4a2..9bdd2ca3 100644 --- a/src/object/jailBars.c +++ b/src/object/jailBars.c @@ -7,9 +7,9 @@ #include "entity.h" #include "flags.h" #include "functions.h" -#include "global.h" #include "room.h" #include "sound.h" +#include "tiles.h" static void SetJailBarTiles(Entity*, u32); void JailBars_Init(Entity*); @@ -61,10 +61,36 @@ void JailBars_Action3(Entity* this) { } static void SetJailBarTiles(Entity* this, u32 arg1) { - static const s16 gUnk_08124960[] = { 0x4023, -0x3, 0x4023, -0x2, 0x4023, -0x1, 0x4023, - 0x0, 0x4023, 0x1, 0x4023, 0x2, -0x1 }; - static const s16 gUnk_0812497A[] = { 0x4023, -0x3, 0x4023, -0x2, 0x4088, -0x1, 0x4087, - 0x0, 0x4023, 0x1, 0x4023, 0x2, -0x1 }; + static const s16 gUnk_08124960[] = { + SPECIAL_META_TILE_35, + -0x3, + SPECIAL_META_TILE_35, + -0x2, + SPECIAL_META_TILE_35, + -0x1, + SPECIAL_META_TILE_35, + 0x0, + SPECIAL_META_TILE_35, + 0x1, + SPECIAL_META_TILE_35, + 0x2, + -0x1, + }; + static const s16 gUnk_0812497A[] = { + SPECIAL_META_TILE_35, + -0x3, + SPECIAL_META_TILE_35, + -0x2, + SPECIAL_META_TILE_136, + -0x1, + SPECIAL_META_TILE_135, + 0x0, + SPECIAL_META_TILE_35, + 0x1, + SPECIAL_META_TILE_35, + 0x2, + -0x1, + }; const s16* puVar1; puVar1 = gUnk_08124960; diff --git a/src/object/jarPortal.c b/src/object/jarPortal.c index 938cdbf0..b0979864 100644 --- a/src/object/jarPortal.c +++ b/src/object/jarPortal.c @@ -7,6 +7,7 @@ #include "area.h" #include "functions.h" #include "object.h" +#include "tiles.h" extern u32 PortalReadyForMinish(void); @@ -17,7 +18,7 @@ void JarPortal_Action1(Entity*); void JarPortal_Action2(Entity*); void JarPortal_Action3(Entity*); void JarPortal_Action4(Entity*); -void sub_0808C148(Entity*, u32); +void sub_0808C148(Entity*, bool32); void sub_0808C01C(Entity*, u32); void JarPortal(Entity* this) { @@ -62,7 +63,7 @@ void JarPortal_Action1(Entity* this) { } else { ClearLocalFlag(this->type); } - sub_0808C148(this, 0); + sub_0808C148(this, FALSE); } sub_0808C01C(this, 0); } @@ -89,7 +90,7 @@ void JarPortal_Action2(Entity* this) { ++this->action; this->subtimer = 0; InitAnimationForceUpdate(this, 1); - sub_0808C148(this, 1); + sub_0808C148(this, TRUE); } break; } @@ -103,7 +104,7 @@ void JarPortal_Action3(Entity* this) { ClearLocalFlag(this->type); else SetLocalFlag(this->type); - sub_0808C148(this, 0); + sub_0808C148(this, FALSE); } sub_0808C01C(this, 1); } @@ -156,7 +157,7 @@ void JarPortal_Action4(Entity* this) { if (!this->z.HALF.HI) { this->action = 1; InitAnimationForceUpdate(this, 0); - sub_0808C148(this, 1); + sub_0808C148(this, TRUE); } break; } @@ -171,19 +172,17 @@ void sub_0808C13C(Entity* this) { this->zVelocity = Q_16_16(2.5); } -void sub_0808C148(Entity* this, u32 a2) { - u32 pos; - - pos = COORD_TO_TILE(this); - if (!a2) { - SetMetaTile(0x4092, pos - 1, this->collisionLayer); - SetMetaTile(0x4093, pos, this->collisionLayer); - SetMetaTile(0x4094, pos + 63, this->collisionLayer); - SetMetaTile(0x4095, pos + 64, this->collisionLayer); +void sub_0808C148(Entity* this, bool32 setTiles) { + u32 tilePos = COORD_TO_TILE(this); + if (!setTiles) { + SetMetaTile(SPECIAL_META_TILE_146, tilePos + TILE_POS(-1, 0), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_147, tilePos + TILE_POS(0, 0), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_148, tilePos + TILE_POS(-1, 1), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_149, tilePos + TILE_POS(0, 1), this->collisionLayer); } else { - RestorePrevTileEntity(pos - 1, this->collisionLayer); - RestorePrevTileEntity(pos, this->collisionLayer); - RestorePrevTileEntity(pos + 63, this->collisionLayer); - RestorePrevTileEntity(pos + 64, this->collisionLayer); + RestorePrevTileEntity(tilePos + TILE_POS(-1, 0), this->collisionLayer); + RestorePrevTileEntity(tilePos + 0, this->collisionLayer); + RestorePrevTileEntity(tilePos + TILE_POS(-1, 1), this->collisionLayer); + RestorePrevTileEntity(tilePos + TILE_POS(0, 1), this->collisionLayer); } } diff --git a/src/object/ladderUp.c b/src/object/ladderUp.c index aacbc330..d43324f1 100644 --- a/src/object/ladderUp.c +++ b/src/object/ladderUp.c @@ -11,6 +11,7 @@ #include "player.h" #include "room.h" #include "sound.h" +#include "tiles.h" void LadderUp(Entity* this) { Entity* fxEnt; @@ -37,7 +38,7 @@ void LadderUp(Entity* this) { return; } this->y.HALF.HI = (this->y.HALF.HI & 0xfff0) + 0xc; - SetMetaTile(0x4023, COORD_TO_TILE(this), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_35, COORD_TO_TILE(this), this->collisionLayer); break; case 1: if (GravityUpdate(this, Q_8_8(16.0)) == 0) { @@ -65,17 +66,18 @@ void LadderUp(Entity* this) { default: if (this->type2 == 0) { if (gPlayerEntity.y.HALF.HI < this->y.HALF.HI) { - if (gPlayerState.floor_type != SURFACE_LADDER && (GetMetaTileTypeByEntity(this) == 0x4017)) { - SetMetaTile(0x4023, COORD_TO_TILE(this), this->collisionLayer); - RestorePrevTileEntity(COORD_TO_TILE_OFFSET(this, 0, 0x10), this->collisionLayer); + if (gPlayerState.floor_type != SURFACE_LADDER && + (GetMetaTileTypeByEntity(this) == SPECIAL_META_TILE_23)) { + SetMetaTile(SPECIAL_META_TILE_35, COORD_TO_TILE(this), this->collisionLayer); + RestorePrevTileEntity(COORD_TO_TILE_OFFSET(this, 0, 16), this->collisionLayer); } } else { - if (GetMetaTileTypeByEntity(this) != 0x4017) { - SetMetaTile(0x4017, COORD_TO_TILE(this), this->collisionLayer); + if (GetMetaTileTypeByEntity(this) != SPECIAL_META_TILE_23) { + SetMetaTile(SPECIAL_META_TILE_23, COORD_TO_TILE(this), this->collisionLayer); if (this->type == 0) { - SetMetaTile(0x4017, COORD_TO_TILE_OFFSET(this, 0, 0x10), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_23, COORD_TO_TILE_OFFSET(this, 0, 16), this->collisionLayer); } else { - SetMetaTile(0x4014, COORD_TO_TILE_OFFSET(this, 0, 0x10), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_20, COORD_TO_TILE_OFFSET(this, 0, 16), this->collisionLayer); } } } diff --git a/src/object/lightDoor.c b/src/object/lightDoor.c index aefc3a57..f6c6753a 100644 --- a/src/object/lightDoor.c +++ b/src/object/lightDoor.c @@ -7,9 +7,9 @@ #define NENT_DEPRECATED #include "functions.h" -#include "global.h" #include "object.h" #include "screen.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -88,15 +88,15 @@ void LightDoor_Action4(LightDoorEntity* this) { } void sub_080850FC(LightDoorEntity* this) { - u32 position = COORD_TO_TILE(super); + u32 tilePos = COORD_TO_TILE(super); u32 layer = super->collisionLayer; - SetMetaTile(0x403d, position - 0x41, layer); - SetMetaTile(0x403d, position - 0x40, layer); - SetMetaTile(0x403d, position - 0x3f, layer); - SetMetaTile(0x403d, position - 1, layer); - SetMetaTile(0x403d, position, layer); - SetMetaTile(0x403d, position + 1, layer); - SetMetaTile(0x403d, position + 0x3f, layer); - SetMetaTile(0x403d, position + 0x40, layer); - SetMetaTile(0x403d, position + 0x41, layer); + SetMetaTile(SPECIAL_META_TILE_61, tilePos + TILE_POS(-1, -1), layer); + SetMetaTile(SPECIAL_META_TILE_61, tilePos + TILE_POS(0, -1), layer); + SetMetaTile(SPECIAL_META_TILE_61, tilePos + TILE_POS(1, -1), layer); + SetMetaTile(SPECIAL_META_TILE_61, tilePos + TILE_POS(-1, 0), layer); + SetMetaTile(SPECIAL_META_TILE_61, tilePos + TILE_POS(0, 0), layer); + SetMetaTile(SPECIAL_META_TILE_61, tilePos + TILE_POS(1, 0), layer); + SetMetaTile(SPECIAL_META_TILE_61, tilePos + TILE_POS(-1, 1), layer); + SetMetaTile(SPECIAL_META_TILE_61, tilePos + TILE_POS(0, 1), layer); + SetMetaTile(SPECIAL_META_TILE_61, tilePos + TILE_POS(1, 1), layer); } diff --git a/src/object/lightableSwitch.c b/src/object/lightableSwitch.c index e53e313b..4a1abf7c 100644 --- a/src/object/lightableSwitch.c +++ b/src/object/lightableSwitch.c @@ -8,11 +8,11 @@ #include "entity.h" #include "flags.h" #include "functions.h" -#include "global.h" #include "hitbox.h" #include "object.h" #include "room.h" #include "sound.h" +#include "tiles.h" static void sub_0809EB30(Entity*); static void sub_0809EAD8(Entity*); @@ -91,7 +91,7 @@ static void sub_0809EAD8(Entity* this) { UpdateRailMovement(this, (u16**)&this->child, &this->field_0x74.HWORD); } else { - SetMetaTile(0x4050, COORD_TO_TILE(this), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_80, COORD_TO_TILE(this), this->collisionLayer); } } diff --git a/src/object/lilypadLarge.c b/src/object/lilypadLarge.c index 840f7beb..74289d3d 100644 --- a/src/object/lilypadLarge.c +++ b/src/object/lilypadLarge.c @@ -64,7 +64,7 @@ void sub_08085504(LilypadLargeEntity* this) { super->type = 0; } if (super->type != 0) { - if (gArea.locationIndex == 0x1b) { + if (gArea.locationIndex == 27) { // AREA_TEMPLE_OF_DROPLETS if (CheckLocalFlag(super->type2) == 0) { DeleteThisEntity(); } @@ -371,7 +371,7 @@ void sub_08085A98(LilypadLargeEntity* this) { } if (GetVvvRelativeToEntity(super, 0, 0x18) != VVV_17) { super->subAction = 2; - if (gArea.locationIndex == 0x1b) { + if (gArea.locationIndex == 27) { // AREA_TEMPLE_OF_DROPLETS super->y.HALF.HI += 0xd0; super->z.HALF.HI = -0xd0; this->unk_82 = 0x46; @@ -394,7 +394,7 @@ void sub_08085B40(LilypadLargeEntity* this) { SetAffineInfo(super, this->unk_78.HALF_U.HI, this->unk_78.HALF_U.HI, this->unk_7c.HALF_U.HI); } gPlayerEntity.y.HALF.HI = (super->y.HALF.HI + super->z.HALF.HI) - this->unk_74; - if (gArea.locationIndex == 0x1b) { + if (gArea.locationIndex == 27) { // AREA_TEMPLE_OF_DROPLETS gPlayerEntity.z.HALF.HI = super->y.HALF.HI - this->unk_74 - 0xd0 - gPlayerEntity.y.HALF.HI; } else { gPlayerEntity.z.HALF.HI = super->y.HALF.HI - this->unk_74 - 0x40 - gPlayerEntity.y.HALF.HI; @@ -510,7 +510,7 @@ void sub_08085D60(LilypadLargeEntity* this) { tmp = r4 >> 2; tmpX = gUnk_08120638[tmp]; tmpY = gUnk_08120638[tmp + 1]; - if (GetCollisionDataRelativeTo(super, tmpX, tmpY) == 0xff) { + if (GetCollisionDataRelativeTo(super, tmpX, tmpY) == COLLISION_DATA_255) { if (sub_080806BC((super->x.HALF.HI - gRoomControls.origin_x) + tmpX, (super->y.HALF.HI - gRoomControls.origin_y) + tmpY, r4, 5) == 0) { @@ -529,7 +529,7 @@ void sub_08085D60(LilypadLargeEntity* this) { tmp = r6 >> 2; tmpX2 = gUnk_08120638[tmp]; tmpY2 = gUnk_08120638[tmp + 1]; - if (GetCollisionDataRelativeTo(super, tmpX2, tmpY2) == 0xff) { + if (GetCollisionDataRelativeTo(super, tmpX2, tmpY2) == COLLISION_DATA_255) { if (sub_0807BD14(&gPlayerEntity, r6 >> 3) != 0) { super->direction = (u8)r6; sub_08085E74(this); diff --git a/src/object/linkEmptyingBottle.c b/src/object/linkEmptyingBottle.c index 99e7f27e..822df4e5 100644 --- a/src/object/linkEmptyingBottle.c +++ b/src/object/linkEmptyingBottle.c @@ -8,9 +8,9 @@ #define NENT_DEPRECATED #include "functions.h" -#include "global.h" #include "item.h" #include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -46,8 +46,8 @@ void sub_08094774(LinkEmptyingBottleEntity* this) { gUnk_08122A18[gPlayerEntity.animationState | 1] << 0x10); } CopyPosition(super->child, super); - sub_08094980(this, 0x4032, 0x4033); - sub_08094980(this, 0x4061, 0x4022); + sub_08094980(this, SPECIAL_META_TILE_50, SPECIAL_META_TILE_51); + sub_08094980(this, SPECIAL_META_TILE_97, SPECIAL_META_TILE_34); break; case 1: effect = CreateFx(super, FX_GREEN_SPLASH2, 0); @@ -61,8 +61,8 @@ void sub_08094774(LinkEmptyingBottleEntity* this) { super->timer = 0; super->spritePriority.b0 = 0; super->spriteRendering.b3 = 0; - sub_08094980(this, 0x403b, 0x403c); - sub_08094980(this, 0x4061, 0x4022); + sub_08094980(this, SPECIAL_META_TILE_59, SPECIAL_META_TILE_60); + sub_08094980(this, SPECIAL_META_TILE_97, SPECIAL_META_TILE_34); return; } break; @@ -120,7 +120,7 @@ void sub_08094980(LinkEmptyingBottleEntity* this, u32 searchTileIndex, u32 repla yOffset = gUnk_08122A28[index + 1]; if (searchTileIndex == sub_080B1A0C(super, xOffset, yOffset)) { SetMetaTile(replaceTileIndex, TILE(super->x.HALF.HI + xOffset, super->y.HALF.HI + yOffset), - super->collisionLayer); + super->collisionLayer); } index += 2; } diff --git a/src/object/lockedDoor.c b/src/object/lockedDoor.c index b1247bca..df974c99 100644 --- a/src/object/lockedDoor.c +++ b/src/object/lockedDoor.c @@ -11,9 +11,9 @@ #include "flags.h" #include "functions.h" #include "game.h" -#include "global.h" #include "hitbox.h" #include "sound.h" +#include "tiles.h" void LockedDoor_Init(Entity*); void LockedDoor_Action1(Entity*); @@ -251,12 +251,12 @@ void sub_080836A0(Entity* this) { this->spriteSettings.draw = 1; this->x.HALF.HI = this->field_0x70.HALF.LO; this->y.HALF.HI = this->field_0x70.HALF.HI; - SetMetaTile(0x4022, this->field_0x76.HWORD, this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->field_0x76.HWORD, this->collisionLayer); } void sub_080836DC(Entity* this, u32 unk_0, u32 unk_1) { const struct_0811F680* tmp; - SetMetaTile(0x4022, unk_1, this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, unk_1, this->collisionLayer); this->timer = 7; this->spriteSettings.draw = 1; this->direction = (unk_0 << 3) ^ 0x10; diff --git a/src/object/macroAcorn.c b/src/object/macroAcorn.c index 690e36ea..cd22bc7a 100644 --- a/src/object/macroAcorn.c +++ b/src/object/macroAcorn.c @@ -5,8 +5,10 @@ * @brief Macro Acorn object */ #include "entity.h" +#include "map.h" #include "object.h" #include "physics.h" +#include "tiles.h" void MacroAcorn_Init(Entity*); void MacroAcorn_Action1(Entity*); @@ -68,38 +70,38 @@ void sub_0809E5F0(Entity* this) { this->field_0x80.HWORD = position; switch (this->type) { case 2: - SetMetaTile(0x4022, position - 0x3d, 1); - SetMetaTile(0x406d, position - 0x3c, 1); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(3, -1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_109, position + TILE_POS(4, -1), LAYER_BOTTOM); case 0: - SetMetaTile(0x406c, position - 0x42, 1); - SetMetaTile(0x4022, position - 0x41, 1); - SetMetaTile(0x4022, position - 0x40, 1); - SetMetaTile(0x4022, position - 0x3f, 1); - SetMetaTile(0x4022, position - 2, 1); - SetMetaTile(0x4022, position - 1, 1); - SetMetaTile(0x4022, position, 1); - SetMetaTile(0x4022, position + 1, 1); - SetMetaTile(0x406e, position + 0x3e, 1); - SetMetaTile(0x4022, position + 0x3f, 1); - SetMetaTile(0x4022, position + 0x40, 1); - SetMetaTile(0x406f, position + 0x41, 1); + SetMetaTile(SPECIAL_META_TILE_108, position + TILE_POS(-2, -1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-1, -1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(0, -1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(1, -1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-2, 0), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-1, 0), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(0, 0), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(1, 0), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_110, position + TILE_POS(-2, 1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-1, 1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(0, 1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_111, position + TILE_POS(1, 1), LAYER_BOTTOM); break; case 3: - SetMetaTile(0x4022, position - 0x44, 1); - SetMetaTile(0x406c, position - 0x45, 1); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-4, -1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_108, position + TILE_POS(-5, -1), LAYER_BOTTOM); case 1: - SetMetaTile(0x4022, position - 0x42, 1); - SetMetaTile(0x4022, position - 0x41, 1); - SetMetaTile(0x4022, position - 0x40, 1); - SetMetaTile(0x406d, position - 0x3f, 1); - SetMetaTile(0x4022, position - 2, 1); - SetMetaTile(0x4022, position - 1, 1); - SetMetaTile(0x4022, position, 1); - SetMetaTile(0x4022, position + 1, 1); - SetMetaTile(0x406e, position + 0x3e, 1); - SetMetaTile(0x4022, position + 0x3f, 1); - SetMetaTile(0x4022, position + 0x40, 1); - SetMetaTile(0x406f, position + 0x41, 1); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-2, -1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-1, -1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(0, -1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_109, position + TILE_POS(1, -1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-2, 0), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-1, 0), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(0, 0), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(1, 0), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_110, position + TILE_POS(-2, 1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(-1, 1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_34, position + TILE_POS(0, 1), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_111, position + TILE_POS(1, 1), LAYER_BOTTOM); break; } } diff --git a/src/object/macroBook.c b/src/object/macroBook.c index ecc7de8f..be03f762 100644 --- a/src/object/macroBook.c +++ b/src/object/macroBook.c @@ -10,6 +10,7 @@ #include "flags.h" #include "functions.h" #include "npc.h" +#include "tiles.h" typedef struct { Entity base; @@ -136,8 +137,26 @@ void MacroBook_Action3(MacroBookEntity* this) { void sub_0809A958(MacroBookEntity* this) { static const u16 tileIndices[] = { - 0x4074, 0x4074, 0x4074, 0x4074, 0x4074, 0x4074, 0x4074, 0x4074, 0x4074, 0x4074, - 0x4074, 0x4074, 0x4074, 0x4074, 0x4074, 0x4074, 0, 0, 0x4022, 0x4022, + SPECIAL_META_TILE_116, + SPECIAL_META_TILE_116, + SPECIAL_META_TILE_116, + SPECIAL_META_TILE_116, + SPECIAL_META_TILE_116, + SPECIAL_META_TILE_116, + SPECIAL_META_TILE_116, + SPECIAL_META_TILE_116, + SPECIAL_META_TILE_116, + SPECIAL_META_TILE_116, + SPECIAL_META_TILE_116, + SPECIAL_META_TILE_116, + SPECIAL_META_TILE_116, + SPECIAL_META_TILE_116, + SPECIAL_META_TILE_116, + SPECIAL_META_TILE_116, + 0, + 0, + SPECIAL_META_TILE_34, + SPECIAL_META_TILE_34, }; int index; int index2; @@ -151,7 +170,7 @@ void sub_0809A958(MacroBookEntity* this) { for (index = 0; index < 5; index++, tilePos += 0x40) { for (index2 = 0; index2 < 4; index2++, tileIndexPtr++) { if ((*tileIndexPtr & 0x4000) != 0) { - SetMetaTile(*tileIndexPtr, tilePos + index2, 1); + SetMetaTile(*tileIndexPtr, tilePos + index2, LAYER_BOTTOM); } } } diff --git a/src/object/macroDecorations.c b/src/object/macroDecorations.c index db2883f3..6608643a 100644 --- a/src/object/macroDecorations.c +++ b/src/object/macroDecorations.c @@ -7,7 +7,9 @@ #define NENT_DEPRECATED #include "asm.h" #include "entity.h" +#include "map.h" #include "room.h" +#include "tiles.h" typedef struct { Entity base; @@ -82,14 +84,21 @@ void MacroDecoration_Action1(MacroDecorationEntity* this) { void sub_08097EB8(MacroDecorationEntity* this) { static const s16 tilePosArray[] = { - 0xff7e, 0x4089, 0xff7f, 0x4022, 0xff80, 0x4022, 0xff81, 0x408a, 0xffbe, 0x4022, 0xffbf, 0x4022, 0xffc0, 0x4022, - 0xffc1, 0x4022, 0xfffe, 0x4022, 0xffff, 0x4022, 0, 0x4022, 1, 0x4022, 2, 0x408b, 0x3e, 0x4022, - 0x3f, 0x4022, 0x40, 0x4026, 0x41, 0x4022, 0x7e, 0x408c, 0x7f, 0x408c, 0x7fff, 0xffff, + 0xff7e, SPECIAL_META_TILE_137, 0xff7f, SPECIAL_META_TILE_34, + 0xff80, SPECIAL_META_TILE_34, 0xff81, SPECIAL_META_TILE_138, + 0xffbe, SPECIAL_META_TILE_34, 0xffbf, SPECIAL_META_TILE_34, + 0xffc0, SPECIAL_META_TILE_34, 0xffc1, SPECIAL_META_TILE_34, + 0xfffe, SPECIAL_META_TILE_34, 0xffff, SPECIAL_META_TILE_34, + 0, SPECIAL_META_TILE_34, 1, SPECIAL_META_TILE_34, + 2, SPECIAL_META_TILE_139, 0x3e, SPECIAL_META_TILE_34, + 0x3f, SPECIAL_META_TILE_34, 0x40, SPECIAL_META_TILE_38, + 0x41, SPECIAL_META_TILE_34, 0x7e, SPECIAL_META_TILE_140, + 0x7f, SPECIAL_META_TILE_140, 0x7fff, 0xffff, }; const s16* tilePosPtr; u16 tile = COORD_TO_TILE(super); for (tilePosPtr = tilePosArray; *tilePosPtr != 0x7fff; tilePosPtr += 2) { - SetMetaTile((u16)tilePosPtr[1], tile + tilePosPtr[0], 1); + SetMetaTile((u16)tilePosPtr[1], tile + tilePosPtr[0], LAYER_BOTTOM); } } diff --git a/src/object/macroShoe.c b/src/object/macroShoe.c index fc9e2d00..fd321b19 100644 --- a/src/object/macroShoe.c +++ b/src/object/macroShoe.c @@ -6,6 +6,8 @@ */ #include "asm.h" #include "entity.h" +#include "tiles.h" +#include "map.h" void MacroShoe_Init(Entity*); void MacroShoe_Idle(Entity*); @@ -39,9 +41,9 @@ void MacroShoe_Init(Entity* this) { this->action = 1; this->hitbox = (Hitbox*)MacroShoe_TypeHitboxes[this->type]; if (this->type2 == 1) { - SetMetaTile(0x4024, 0x410, 1); - SetMetaTile(0x4026, 0x411, 1); - SetMetaTile(0x4025, 0x412, 1); + SetMetaTile(SPECIAL_META_TILE_36, TILE_POS(16, 16), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_38, TILE_POS(17, 16), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_37, TILE_POS(18, 16), LAYER_BOTTOM); } } diff --git a/src/object/mask.c b/src/object/mask.c index 07dd9ee4..92c99fae 100644 --- a/src/object/mask.c +++ b/src/object/mask.c @@ -6,6 +6,7 @@ */ #include "functions.h" #include "object.h" +#include "tiles.h" void Mask_Init(Entity*); void Mask_Action1(Entity*); @@ -59,11 +60,11 @@ void Mask_Init(Entity* this) { this->frameIndex = this->type2 & 0x3f; this->field_0x7c.HALF_U.HI = COORD_TO_TILE(this); - this->field_0x7c.HALF_U.LO = GetMetaTileIndex(this->field_0x7c.HALF_U.HI, 1); + this->field_0x7c.HALF_U.LO = GetMetaTileIndex(this->field_0x7c.HALF_U.HI, LAYER_BOTTOM); - this->field_0x7a.HWORD = GetCollisionDataAtMetaTilePos((u16)this->field_0x7c.HALF.HI, 1); + this->field_0x7a.HWORD = GetCollisionDataAtMetaTilePos((u16)this->field_0x7c.HALF.HI, LAYER_BOTTOM); - SetMetaTile(0x4022, this->field_0x7c.HALF_U.HI, 1); + SetMetaTile(SPECIAL_META_TILE_34, this->field_0x7c.HALF_U.HI, LAYER_BOTTOM); } // Probably related to knocking it down @@ -88,7 +89,7 @@ void Mask_Action1(Entity* this) { } // Presumably, make the mask fall - SetMetaTile(this->field_0x7c.HALF_U.LO, this->field_0x7c.HALF_U.HI, 1); + SetMetaTile(this->field_0x7c.HALF_U.LO, this->field_0x7c.HALF_U.HI, LAYER_BOTTOM); SetCollisionData(this->field_0x7a.HWORD, (u16)this->field_0x7c.HALF.HI, 1); diff --git a/src/object/metalDoor.c b/src/object/metalDoor.c index 758dd18d..134190e9 100644 --- a/src/object/metalDoor.c +++ b/src/object/metalDoor.c @@ -9,10 +9,10 @@ #include "entity.h" #include "flags.h" #include "functions.h" -#include "global.h" #include "hitbox.h" #include "room.h" #include "sound.h" +#include "tiles.h" extern u32 sub_08083734(Entity*, u32); void sub_080A080C(Entity*); @@ -106,9 +106,9 @@ void sub_080A080C(Entity* this) { this->field_0x76.HWORD = GetMetaTileIndex(this->field_0x74.HWORD - 1, this->collisionLayer); this->field_0x78.HWORD = GetMetaTileIndex(this->field_0x74.HWORD, this->collisionLayer); this->field_0x7a.HWORD = GetMetaTileIndex(this->field_0x74.HWORD + 1, this->collisionLayer); - SetMetaTile(0x4022, this->field_0x74.HWORD - 1, this->collisionLayer); - SetMetaTile(0x4022, this->field_0x74.HWORD, this->collisionLayer); - SetMetaTile(0x4022, this->field_0x74.HWORD + 1, this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->field_0x74.HWORD - 1, this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->field_0x74.HWORD, this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->field_0x74.HWORD + 1, this->collisionLayer); } void sub_080A0870(Entity* this) { diff --git a/src/object/minecart.c b/src/object/minecart.c index 24043868..bce65144 100644 --- a/src/object/minecart.c +++ b/src/object/minecart.c @@ -61,7 +61,7 @@ void Minecart_Init(MinecartEntity* this) { super->speed = 0x700; super->spritePriority.b1 = 3; InitAnimationForceUpdate(super, super->type2 + 4 + super->animationState); - SetMetaTile(0x4022, COORD_TO_TILE(super), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, COORD_TO_TILE(super), super->collisionLayer); } void Minecart_Action1(MinecartEntity* this) { @@ -290,7 +290,7 @@ void Minecart_Action6(MinecartEntity* this) { minecartData->room = gRoomControls.room; minecartData->animationState = super->animationState; InitAnimationForceUpdate(super, super->animationState + 0x10); - SetMetaTile(0x4022, COORD_TO_TILE(super), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, COORD_TO_TILE(super), super->collisionLayer); } else { UpdateAnimationSingleFrame(super); gPlayerEntity.spritePriority.b0 = super->spritePriority.b0 - 1; @@ -312,7 +312,7 @@ void Minecart_Action7(MinecartEntity* this) { bool32 sub_08091DDC(MinecartEntity* this) { static const s8 gUnk_081223D0[] = { 0, -8, 8, 0, 0, 8, -8, 0 }; if ((GetCollisionDataRelativeTo(super, gUnk_081223D0[super->animationState * 2], - gUnk_081223D0[super->animationState * 2 + 1]) == 0xff) && + gUnk_081223D0[super->animationState * 2 + 1]) == COLLISION_DATA_255) && (sub_0807BD14(&gPlayerEntity, super->animationState))) { super->updatePriority = 6; super->action = 5; diff --git a/src/object/minecartDoor.c b/src/object/minecartDoor.c index 7b99b7b8..d1e6389f 100644 --- a/src/object/minecartDoor.c +++ b/src/object/minecartDoor.c @@ -7,16 +7,16 @@ #define NENT_DEPRECATED #include "functions.h" -#include "global.h" #include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; /*0x68*/ u8 unk_68[8]; /*0x70*/ u16 unk_70; /*0x72*/ u16 unk_72; - /*0x74*/ u16 unk_74; - /*0x76*/ u16 unk_76; + /*0x74*/ u16 metaTileIndex; + /*0x76*/ u16 metaTilePos; /*0x78*/ u8 unk_78[0x6]; /*0x7e*/ u8 unk_7e; /*0x7f*/ u8 unk_7f[0x7]; @@ -54,8 +54,8 @@ void MinecartDoor_Init(MinecartDoorEntity* this) { this->unk_70 = super->x.HALF.HI; this->unk_72 = super->y.HALF.HI; super->spritePriority.b0 = 5; - this->unk_76 = COORD_TO_TILE(super); - this->unk_74 = GetMetaTileIndex(this->unk_76, super->collisionLayer); + this->metaTilePos = COORD_TO_TILE(super); + this->metaTileIndex = GetMetaTileIndex(this->metaTilePos, super->collisionLayer); super->frameIndex = super->type; if (sub_08096CEC(this)) { if (this->unk_7e != 0) { @@ -66,7 +66,7 @@ void MinecartDoor_Init(MinecartDoorEntity* this) { } else { super->action = 1; super->spriteSettings.draw = 1; - SetMetaTile(0x4022, this->unk_76, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, this->metaTilePos, super->collisionLayer); } } } @@ -76,7 +76,7 @@ void MinecartDoor_Action1(MinecartDoorEntity* this) { super->action = 2; super->timer = 7; super->direction = super->type << 3; - SetMetaTile(this->unk_74, this->unk_76, super->collisionLayer); + SetMetaTile(this->metaTileIndex, this->metaTilePos, super->collisionLayer); EnqueueSFX(SFX_10B); } } @@ -114,7 +114,7 @@ void MinecartDoor_Action3(MinecartDoorEntity* this) { } if (bVar3 == FALSE) { super->action = 4; - sub_080836DC(super, super->type, this->unk_76); + sub_080836DC(super, super->type, this->metaTilePos); } } diff --git a/src/object/minishVillageObject.c b/src/object/minishVillageObject.c index e67fc613..6f5f5677 100644 --- a/src/object/minishVillageObject.c +++ b/src/object/minishVillageObject.c @@ -7,9 +7,9 @@ #define NENT_DEPRECATED #include "functions.h" -#include "global.h" #include "object.h" #include "screen.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -90,7 +90,7 @@ void MinishVillageObject_Type1(MinishVillageObjectEntity* this) { super->subtimer = 0; super->frameIndex = 0; super->spritePriority.b0 = 7; - SetMetaTile(0x4069, COORD_TO_TILE(super) - 0x40, 1); + SetMetaTile(SPECIAL_META_TILE_105, COORD_TO_TILE(super) - TILE_POS(0, 1), LAYER_BOTTOM); break; case 2: if ((gRoomTransition.frameCount & 3U) == 0) { @@ -224,7 +224,7 @@ void MinishVillageObject_Type8_Init(MinishVillageObjectEntity* this) { if (super->type2 != 0) { tilePosition -= 0x40; } - SetMetaTile(0x4069, tilePosition, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_105, tilePosition, super->collisionLayer); } } @@ -237,7 +237,7 @@ void MinishVillageObject_Type8_Action1(MinishVillageObjectEntity* this) { super->timer = 8; super->spriteRendering.alphaBlend = 0; gScreen.controls.layerFXControl = 0; - SetMetaTile(0x4069, COORD_TO_TILE(super), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_105, COORD_TO_TILE(super), super->collisionLayer); } } } diff --git a/src/object/moleMittsParticle.c b/src/object/moleMittsParticle.c index 69dcfcd4..da4c6322 100644 --- a/src/object/moleMittsParticle.c +++ b/src/object/moleMittsParticle.c @@ -39,7 +39,7 @@ void MoleMittsParticle_Init(Entity* this) { } sub_08087640(this); } else { - if (gArea.locationIndex == 0x10) { + if (gArea.locationIndex == 16) { // AREA_CLOUD_TOPS palette = 0x16a; } else { palette = 4; diff --git a/src/object/object1F.c b/src/object/object1F.c index 5ee4382f..8696f43e 100644 --- a/src/object/object1F.c +++ b/src/object/object1F.c @@ -10,6 +10,7 @@ #include "entity.h" #include "functions.h" #include "player.h" +#include "tiles.h" typedef struct { Entity base; @@ -81,18 +82,16 @@ void Object1F_Action1(Object1FEntity* this) { } void Object1F_Action2(Object1FEntity* this) { - u8 bVar1; - - bVar1 = GetCollisionDataAtEntity(super); - switch (bVar1) { - case 0x21: + u8 collisionData = GetCollisionDataAtEntity(super); + switch (collisionData) { + case COLLISION_DATA_33: CreateFx(super, FX_FALL_DOWN, 0); break; - case 0x25: + case COLLISION_DATA_37: CreateFx(super, FX_LAVA_SPLASH, 0); break; - case 0x24: - case 0x30: + case COLLISION_DATA_36: + case COLLISION_DATA_48: CreateFx(super, FX_WATER_SPLASH, 0); break; default: diff --git a/src/object/objectA.c b/src/object/objectA.c index 7419a898..88128852 100644 --- a/src/object/objectA.c +++ b/src/object/objectA.c @@ -8,10 +8,10 @@ #include "flags.h" #include "functions.h" #include "game.h" -#include "global.h" #include "hitbox.h" #include "object.h" #include "room.h" +#include "tiles.h" extern u8 gUpdateVisibleTiles; @@ -21,10 +21,10 @@ void ObjectA(Entity* this) { if (this->action == 0) { this->action = 1; this->hitbox = (Hitbox*)&gHitbox_2; - if (this->collisionLayer == 1) { - uVar2 = 0x26; + if (this->collisionLayer == LAYER_BOTTOM) { + uVar2 = META_TILE_TYPE_38; } else { - uVar2 = 0x34; + uVar2 = META_TILE_TYPE_52; } this->field_0x70.HALF.LO = uVar2; if (CheckFlags(this->field_0x86.HWORD) != 0) { diff --git a/src/object/objectBlockingStairs.c b/src/object/objectBlockingStairs.c index f69da586..fd10a600 100644 --- a/src/object/objectBlockingStairs.c +++ b/src/object/objectBlockingStairs.c @@ -12,6 +12,7 @@ #include "functions.h" #include "object.h" #include "sound.h" +#include "tiles.h" typedef struct { Entity base; @@ -115,8 +116,8 @@ void ObjectBlockingStairs_Action1(ObjectBlockingStairsEntity* this) { } switch (tileType) { - case 0x4030: - case 0x4031: + case SPECIAL_META_TILE_48: + case SPECIAL_META_TILE_49: super->action = 3; super->direction = Direction8FromAnimationState(gPlayerEntity.animationState); super->speed = 0x80; @@ -135,23 +136,23 @@ void ObjectBlockingStairs_Action1(ObjectBlockingStairsEntity* this) { if (this->unk7b & 0x80) { this->unk7b &= ~0x80; if ((this->unk7b & 0x40) != 0) { - SetMetaTile(0x402c, this->tilePos - 1, super->collisionLayer); - SetMetaTile(0x403d, this->tilePos + 1, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_44, this->tilePos - 1, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_61, this->tilePos + 1, super->collisionLayer); } else { - SetMetaTile(0x403d, this->tilePos - 1, super->collisionLayer); - SetMetaTile(0x402d, this->tilePos + 1, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_61, this->tilePos - 1, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_45, this->tilePos + 1, super->collisionLayer); } } else if (this->unk7b & 0x40) { if (xDist >= 5) { this->unk7b &= ~(0x40 | 0x80); - SetMetaTile(0x403d, this->tilePos - 1, super->collisionLayer); - SetMetaTile(0x402d, this->tilePos + 1, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_61, this->tilePos - 1, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_45, this->tilePos + 1, super->collisionLayer); } } else { if (-xDist > 4) { this->unk7b |= 0x40; - SetMetaTile(0x402c, this->tilePos - 1, super->collisionLayer); - SetMetaTile(0x403d, this->tilePos + 1, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_44, this->tilePos - 1, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_61, this->tilePos + 1, super->collisionLayer); } } } @@ -192,10 +193,18 @@ void ObjectBlockingStairs_Action4(ObjectBlockingStairsEntity* this) { } void sub_080931A4(ObjectBlockingStairsEntity* this, u32 param_2) { - static const u16 gUnk_08122850[] = { 0x4027, 0x4023, 0x4028, 0x402c, 0x402b, 0x402d, 0x4029, 0x4026, 0x402a }; - static const u16 gUnk_08122862[] = { 0x4027, 0x4023, 0x4028, 0x4024, 0x4022, 0x4025, 0x4029, 0x4026, 0x402a }; - static const u16 gUnk_08122874[] = { 0x4027, 0x4023, 0x4023, 0x4024, 0x4022, 0x4022, 0x4029, 0x4026, 0x4026 }; - static const u16 gUnk_08122886[] = { 0x4023, 0x4023, 0x4028, 0x4022, 0x4022, 0x4025, 0x4026, 0x4026, 0x402a }; + static const u16 gUnk_08122850[] = { SPECIAL_META_TILE_39, SPECIAL_META_TILE_35, SPECIAL_META_TILE_40, + SPECIAL_META_TILE_44, SPECIAL_META_TILE_43, SPECIAL_META_TILE_45, + SPECIAL_META_TILE_41, SPECIAL_META_TILE_38, SPECIAL_META_TILE_42 }; + static const u16 gUnk_08122862[] = { SPECIAL_META_TILE_39, SPECIAL_META_TILE_35, SPECIAL_META_TILE_40, + SPECIAL_META_TILE_36, SPECIAL_META_TILE_34, SPECIAL_META_TILE_37, + SPECIAL_META_TILE_41, SPECIAL_META_TILE_38, SPECIAL_META_TILE_42 }; + static const u16 gUnk_08122874[] = { SPECIAL_META_TILE_39, SPECIAL_META_TILE_35, SPECIAL_META_TILE_35, + SPECIAL_META_TILE_36, SPECIAL_META_TILE_34, SPECIAL_META_TILE_34, + SPECIAL_META_TILE_41, SPECIAL_META_TILE_38, SPECIAL_META_TILE_38 }; + static const u16 gUnk_08122886[] = { SPECIAL_META_TILE_35, SPECIAL_META_TILE_35, SPECIAL_META_TILE_40, + SPECIAL_META_TILE_34, SPECIAL_META_TILE_34, SPECIAL_META_TILE_37, + SPECIAL_META_TILE_38, SPECIAL_META_TILE_38, SPECIAL_META_TILE_42 }; u32 collisionLayer; const u16* pTileTypes; diff --git a/src/object/objectOnPillar.c b/src/object/objectOnPillar.c index daffbf1e..68b597dc 100644 --- a/src/object/objectOnPillar.c +++ b/src/object/objectOnPillar.c @@ -16,7 +16,7 @@ typedef struct { /*0x68*/ u8 unk_68[8]; /*0x70*/ u16 tileIndex; /*0x72*/ u16 unk_72; - /*0x74*/ u16 tilePosition; + /*0x74*/ u16 tilePos; /*0x76*/ u16 unk_76; /*0x78*/ u8 unk_78[0x4]; /*0x7c*/ u8 unk_7c; @@ -25,7 +25,7 @@ typedef struct { /*0x7f*/ u8 unk_7f; /*0x80*/ u8 unk_80[0x4]; /*0x84*/ u16 hitFlag; - /*0x86*/ u16 unk_86; + /*0x86*/ u16 flag; } ObjectOnPillarEntity; extern bool32 sub_080896B0(void); // pushableStatue @@ -66,7 +66,7 @@ void ObjectOnPillar_Init(ObjectOnPillarEntity* this) { static const u8 gUnk_08123264[] = { 0, 2, 4, 3, 7, 5, 0, 0, }; - if (CheckFlags(this->unk_86) == 0) { + if (CheckFlags(this->flag) == 0) { super->action = 1; super->speed = 0x80; super->updatePriority = 3; @@ -150,8 +150,8 @@ void ObjectOnPillar_Action4(ObjectOnPillarEntity* this) { bool32 sub_08097008(ObjectOnPillarEntity* this) { Entity* effect; - u32 tileType = GetMetaTileType(this->tilePosition, super->collisionLayer); - if (tileType != 0x4036) { + u32 tileType = GetMetaTileType(this->tilePos, super->collisionLayer); + if (tileType != SPECIAL_META_TILE_54) { switch (sub_08097074(tileType)) { case 1: super->direction = (((tileType - 0x37) & 3) << 3); @@ -175,7 +175,8 @@ bool32 sub_08097008(ObjectOnPillarEntity* this) { u32 sub_08097074(u32 tileType) { static const KeyValuePair gUnk_0812327C[] = { - { 0x4037, 1 }, { 0x4038, 1 }, { 0x4039, 1 }, { 0x403a, 1 }, { 0x7a, 2 }, { 0x78, 2 }, + { SPECIAL_META_TILE_55, 1 }, { SPECIAL_META_TILE_56, 1 }, { SPECIAL_META_TILE_57, 1 }, + { SPECIAL_META_TILE_58, 1 }, { META_TILE_TYPE_122, 2 }, { META_TILE_TYPE_120, 2 }, }; static const u16 gUnk_0812327CEnd = 0; const KeyValuePair* entry = gUnk_0812327C; @@ -191,17 +192,17 @@ void sub_08097098(ObjectOnPillarEntity* this) { u16 tileType; this->unk_76 = 0x20; EnqueueSFX(SFX_10F); - SetMetaTile(this->tileIndex, this->tilePosition, super->collisionLayer); - tileType = GetMetaTileType(gUnk_080B4488[super->direction >> 3] + this->tilePosition, super->collisionLayer); + SetMetaTile(this->tileIndex, this->tilePos, super->collisionLayer); + tileType = GetMetaTileType(gUnk_080B4488[super->direction >> 3] + this->tilePos, super->collisionLayer); if ((tileType == 0x79) || tileType == 0x77) { super->spriteOffsetY = 2; } } void sub_080970F4(ObjectOnPillarEntity* this) { - this->tilePosition = COORD_TO_TILE(super); - this->tileIndex = GetMetaTileIndex(this->tilePosition, super->collisionLayer); - SetMetaTile(0x4036, this->tilePosition, super->collisionLayer); + this->tilePos = COORD_TO_TILE(super); + this->tileIndex = GetMetaTileIndex(this->tilePos, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_54, this->tilePos, super->collisionLayer); } bool32 sub_08097144(ObjectOnPillarEntity* this) { @@ -224,8 +225,8 @@ bool32 sub_08097194(ObjectOnPillarEntity* this) { return TRUE; } else { u32 tileType = GetMetaTileTypeByEntity(super); - if (tileType == 0x71 || tileType == 0x72 || (tileType == 0x4020)) { - SetFlag(this->unk_86); + if (tileType == META_TILE_TYPE_113 || tileType == META_TILE_TYPE_114 || tileType == SPECIAL_META_TILE_32) { + SetFlag(this->flag); EnqueueSFX(SFX_10B); sub_080971E0(this); return TRUE; @@ -238,7 +239,7 @@ bool32 sub_08097194(ObjectOnPillarEntity* this) { void sub_080971E0(ObjectOnPillarEntity* this) { EntityWithHitFlag* entity; - u32 tilePosition; + u32 tilePos; entity = (EntityWithHitFlag*)CreateObject(SPECIAL_FX, FX_DASH, 0x40); if (entity != NULL) { @@ -258,9 +259,9 @@ void sub_080971E0(ObjectOnPillarEntity* this) { DeleteThisEntity(); break; case 1: - tilePosition = COORD_TO_TILE(super); - if (sub_08097348(tilePosition) == 0) { - SetMetaTileType(0x73, tilePosition, super->collisionLayer); + tilePos = COORD_TO_TILE(super); + if (sub_08097348(tilePos) == 0) { + SetMetaTileType(META_TILE_TYPE_115, tilePos, super->collisionLayer); } DeleteThisEntity(); break; @@ -287,11 +288,11 @@ void sub_080971E0(ObjectOnPillarEntity* this) { } } -bool32 sub_08097348(u32 tilePosition) { +bool32 sub_08097348(u32 tilePos) { u32 index; TileEntity* tileEntity = gSmallChests; for (index = 0; index < ARRAY_COUNT(gSmallChests); index++, tileEntity++) { - if (tileEntity->tilePos == tilePosition) { + if (tileEntity->tilePos == tilePos) { return CheckLocalFlag(tileEntity->localFlag); } } diff --git a/src/object/octorokBossObject.c b/src/object/octorokBossObject.c index a9bd7008..126a725b 100644 --- a/src/object/octorokBossObject.c +++ b/src/object/octorokBossObject.c @@ -342,7 +342,8 @@ bool32 sub_0809A6F8(u32 param_1, u32 param_2, u32 param_3, u32 param_4) { if (sub_0809A758(param_1, param_2) != 0) { if (gUnk_081238A0[param_3] != 0) { if ((param_4 & 1) != 0) { - SetMetaTileByIndex(gUnk_081238A0[param_3], (param_1 >> 4 & 0x3f) | (param_2 >> 4 & 0x3f) << 6, 1); + SetMetaTileByIndex(gUnk_081238A0[param_3], (param_1 >> 4 & 0x3f) | (param_2 >> 4 & 0x3f) << 6, + LAYER_BOTTOM); } else { RestorePrevTileEntity((param_1 >> 4 & 0x3f) | (param_2 >> 4 & 0x3f) << 6, 1); } diff --git a/src/object/palaceArchway.c b/src/object/palaceArchway.c index 56c59c9f..9a6f83dc 100644 --- a/src/object/palaceArchway.c +++ b/src/object/palaceArchway.c @@ -5,6 +5,7 @@ * @brief Palace Archway object */ #include "object.h" +#include "tiles.h" void PalaceArchway_Init(Entity*); void PalaceArchway_Action1(Entity*); @@ -22,7 +23,7 @@ void PalaceArchway_Init(Entity* this) { this->frameIndex = this->type2; this->spriteRendering.b3 = 3; this->spritePriority.b0 = 7; - SetMetaTile(0x4069, COORD_TO_TILE(this), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_105, COORD_TO_TILE(this), this->collisionLayer); } void PalaceArchway_Action1(Entity* this) { diff --git a/src/object/paper.c b/src/object/paper.c index b29a0cf1..195b3819 100644 --- a/src/object/paper.c +++ b/src/object/paper.c @@ -7,8 +7,9 @@ #define NENT_DEPRECATED #include "functions.h" -#include "global.h" +#include "map.h" #include "object.h" +#include "tiles.h" void Paper_Init(Entity*); void Paper_Action1(Entity*); @@ -43,7 +44,7 @@ void Paper_Type0(Entity* this) { } this->spriteSettings.draw = 0; } - SetMetaTile(0x4051, COORD_TO_TILE(this), 1); + SetMetaTile(SPECIAL_META_TILE_81, COORD_TO_TILE(this), LAYER_BOTTOM); } void Paper_Type1(Entity* this) { @@ -63,8 +64,8 @@ void Paper_Type2(Entity* this) { this->action = 1; this->y.HALF.HI++; this->spriteOffsetY = -1; - SetMetaTile(0x4051, COORD_TO_TILE(this) - 1, 1); - SetMetaTile(0x4051, COORD_TO_TILE(this), 1); + SetMetaTile(SPECIAL_META_TILE_81, COORD_TO_TILE(this) - 1, LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_81, COORD_TO_TILE(this), LAYER_BOTTOM); } void Paper_Action1(Entity* this) { diff --git a/src/object/playerClone.c b/src/object/playerClone.c index 47446919..aab3040c 100644 --- a/src/object/playerClone.c +++ b/src/object/playerClone.c @@ -13,6 +13,7 @@ #include "player.h" #include "room.h" #include "sound.h" +#include "tiles.h" typedef struct { Entity base; @@ -52,7 +53,7 @@ void PlayerClone_Init(PlayerCloneEntity* this) { super->y.HALF.HI = (super->y.HALF.HI & 0xfff0) | 8; this->tilePos = COORD_TO_TILE(super); InitializeAnimation(super, 8); - SetMetaTile(0x4016, this->tilePos, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_22, this->tilePos, super->collisionLayer); SoundReq(SFX_112); } @@ -78,7 +79,7 @@ void PlayerClone_Action1(PlayerCloneEntity* this) { if ((this->unk78 != 0) && (this->unk7a != 0)) { ((PlayerCloneEntity*)gPlayerClones[super->type])->unk70 = 1; } - CloneTile(0x315, this->tilePos, super->collisionLayer); + CloneTile(META_TILE_TYPE_789, this->tilePos, super->collisionLayer); super->child = sub_08077CF8(1, super->type + 1, 0, ((GenericEntity*)gPlayerState.item)->field_0x68.HALF.LO); if (super->child != NULL) { super->child->parent = super; @@ -87,7 +88,7 @@ void PlayerClone_Action1(PlayerCloneEntity* this) { sub_0806FDA0(super); PlayerClone_Action2(this); } else if (gPlayerState.chargeState.action != 4) { - CloneTile(0x315, this->tilePos, super->collisionLayer); + CloneTile(META_TILE_TYPE_789, this->tilePos, super->collisionLayer); gPlayerClones[super->type] = NULL; DeleteThisEntity(); } else { @@ -191,7 +192,8 @@ void sub_08084CAC(PlayerCloneEntity* this) { if (((PlayerCloneEntity*)gPlayerClones[super->type])->unk70 == 0) { ptr = &gUnk_080B4468[super->animationState & 6]; - if (sub_080B1B54(GetMetaTileType(COORD_TO_TILE_OFFSET(super, -ptr[0], -ptr[1]), super->collisionLayer)) == 0x72) { + if (GetVvvForMetaTileType( + GetMetaTileType(COORD_TO_TILE_OFFSET(super, -ptr[0], -ptr[1]), super->collisionLayer)) == VVV_114) { ((PlayerCloneEntity*)gPlayerClones[0])->unk6c |= (1 << super->type); } else { ((PlayerCloneEntity*)gPlayerClones[0])->unk6c &= ~(1 << super->type); diff --git a/src/object/pot.c b/src/object/pot.c index b3f134fa..ba6abbcf 100644 --- a/src/object/pot.c +++ b/src/object/pot.c @@ -69,11 +69,11 @@ void Pot_Init(Entity* this) { } this->field_0x70.HALF.LO = GetMetaTileIndex(COORD_TO_TILE(this), this->collisionLayer); - if ((u16)this->field_0x70.HALF.LO == 0x4000) { + if ((u16)this->field_0x70.HALF.LO == SPECIAL_META_TILE_0) { DeleteThisEntity(); } - SetMetaTile(0x4000, COORD_TO_TILE(this), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_0, COORD_TO_TILE(this), this->collisionLayer); InitializeAnimation(this, 5); } @@ -99,11 +99,11 @@ void Pot_Action1(Entity* this) { tileType = GetMetaTileTypeByEntity(this); if (tileType != 0x4000) { switch (tileType) { - case 0x4004: - case 0x4003: - case 0x4002: - case 0x4001: - this->direction = (tileType - 0x4001) * 8; + case SPECIAL_META_TILE_4: + case SPECIAL_META_TILE_3: + case SPECIAL_META_TILE_2: + case SPECIAL_META_TILE_1: + this->direction = (tileType - SPECIAL_META_TILE_1) * 8; this->timer = 32; this->action = 4; if (gPlayerState.flags & PL_MINISH) { @@ -113,14 +113,14 @@ void Pot_Action1(Entity* this) { SetMetaTile((u16)this->field_0x70.HALF.LO, COORD_TO_TILE(this), this->collisionLayer); EnqueueSFX(SFX_10F); break; - case 0x4067: + case SPECIAL_META_TILE_103: SetMetaTile((u16)this->field_0x70.HALF.LO, COORD_TO_TILE(this), this->collisionLayer); DeleteThisEntity(); break; default: if (GetVvvAtEntity(this) == VVV_13) { CreateFx(this, FX_FALL_DOWN, 0); - } else if (tileType == 0x4005) { + } else if (tileType == SPECIAL_META_TILE_5) { gPlayerState.lastSwordMove = SWORD_MOVE_BREAK_POT; SetMetaTile((u16)this->field_0x70.HALF.LO, COORD_TO_TILE(this), this->collisionLayer); } @@ -220,7 +220,7 @@ void Pot_Action4(Entity* this) { sub_08082850(this, NULL); break; default: - SetMetaTile(0x4000, COORD_TO_TILE(this), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_0, COORD_TO_TILE(this), this->collisionLayer); RegisterCarryEntity(this); break; } @@ -243,7 +243,7 @@ void sub_0808270C(Entity* this) { if ((gPlayerState.field_0x1c & 0xF) != 0x1 || (this->contactFlags & 0x7F) != 0x13) { this->spriteOffsetX = 0; this->action = 1; - SetMetaTile(0x4000, COORD_TO_TILE(this), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_0, COORD_TO_TILE(this), this->collisionLayer); } else { sub_0806F4E8(this); } diff --git a/src/object/pullableMushroom.c b/src/object/pullableMushroom.c index d884555a..4f82e297 100644 --- a/src/object/pullableMushroom.c +++ b/src/object/pullableMushroom.c @@ -8,9 +8,9 @@ #define NENT_DEPRECATED #include "functions.h" #include "game.h" -#include "global.h" #include "hitbox.h" #include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -62,7 +62,7 @@ void PullableMushroom_Init(PullableMushroomEntity* this) { super->spritePriority.b0 = 4; super->hitbox = (Hitbox*)&gUnk_080FD224; super->carryFlags = 1; - SetMetaTile(0x4022, COORD_TO_TILE(super), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, COORD_TO_TILE(super), super->collisionLayer); super->health = 1; super->collisionFlags = 7; super->hitType = 0x6e; diff --git a/src/object/pushableFurniture.c b/src/object/pushableFurniture.c index c18a041a..e8ad624b 100644 --- a/src/object/pushableFurniture.c +++ b/src/object/pushableFurniture.c @@ -7,8 +7,8 @@ #define NENT_DEPRECATED #include "functions.h" -#include "global.h" #include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -171,8 +171,8 @@ void PushableFurniture_Action1(PushableFurnitureEntity* this) { void sub_0808FB68(PushableFurnitureEntity* this) { u32 tileIndex = GetMetaTileIndex(this->unk_70, super->collisionLayer); switch (tileIndex) { - case 0x4030: - case 0x4031: + case SPECIAL_META_TILE_48: + case SPECIAL_META_TILE_49: super->action = 2; super->direction = (((tileIndex - 0x30) & 1) << 4) | 8; SetPlayerControl(CONTROL_1); @@ -181,8 +181,8 @@ void sub_0808FB68(PushableFurnitureEntity* this) { default: tileIndex = GetMetaTileIndex(this->unk_72, super->collisionLayer); switch (tileIndex) { - case 0x4030: - case 0x4031: + case SPECIAL_META_TILE_48: + case SPECIAL_META_TILE_49: super->action = 2; super->direction = (((tileIndex - 0x30) & 1) << 4) | 8; SetPlayerControl(CONTROL_1); @@ -196,7 +196,7 @@ void sub_0808FB68(PushableFurnitureEntity* this) { void sub_0808FBFC(PushableFurnitureEntity* this) { u32 tileIndex = GetMetaTileIndex(this->unk_7c, super->collisionLayer); - if (tileIndex != 0x404a) { + if (tileIndex != SPECIAL_META_TILE_74) { super->action = 2; super->direction = ((tileIndex - 0x4bU) & 3) << 3; SetPlayerControl(CONTROL_1); @@ -309,32 +309,32 @@ void sub_0808FD44(PushableFurnitureEntity* this, u32 param_2) { void sub_0808FDE8(PushableFurnitureEntity* this) { u32 uVar1; s32 iVar2; - u32 uVar3; + u32 metaTilePos; - uVar3 = (u32)this->unk_70; - uVar1 = GetCollisionDataAtMetaTilePos(uVar3 - 1, 1); - iVar2 = GetMetaTileIndex(uVar3, 1); - if (iVar2 == 0x402e) { + metaTilePos = (u32)this->unk_70; + uVar1 = GetCollisionDataAtMetaTilePos(metaTilePos - 1, LAYER_BOTTOM); + iVar2 = GetMetaTileIndex(metaTilePos, LAYER_BOTTOM); + if (iVar2 == SPECIAL_META_TILE_46) { if ((((uVar1 & 0xf0) != 0) && ((uVar1 & 0xf0) != 0x50)) || ((uVar1 & 5) == 0)) { - SetMetaTile(0x402c, uVar3, 1); + SetMetaTile(SPECIAL_META_TILE_44, metaTilePos, LAYER_BOTTOM); } } else { - iVar2 = GetCollisionDataAtMetaTilePos(uVar3, 1); + iVar2 = GetCollisionDataAtMetaTilePos(metaTilePos, LAYER_BOTTOM); if ((iVar2 == 5) && ((((uVar1 & 0xf0) == 0 || ((uVar1 & 0xf0) == 0x50)) && ((uVar1 & 5) != 0)))) { - SetMetaTile(0x402e, uVar3, 1); + SetMetaTile(SPECIAL_META_TILE_46, metaTilePos, LAYER_BOTTOM); } } - uVar3 = (u32)this->unk_72; - uVar1 = GetCollisionDataAtMetaTilePos(uVar3 + 1, 1); - iVar2 = GetMetaTileIndex(uVar3, 1); - if (iVar2 == 0x402f) { + metaTilePos = (u32)this->unk_72; + uVar1 = GetCollisionDataAtMetaTilePos(metaTilePos + 1, LAYER_BOTTOM); + iVar2 = GetMetaTileIndex(metaTilePos, LAYER_BOTTOM); + if (iVar2 == SPECIAL_META_TILE_47) { if ((((uVar1 & 0xf0) != 0) && ((uVar1 & 0xf0) != 0x50)) || ((uVar1 & 10) == 0)) { - SetMetaTile(0x402d, uVar3, 1); + SetMetaTile(SPECIAL_META_TILE_45, metaTilePos, LAYER_BOTTOM); } } else { - iVar2 = GetCollisionDataAtMetaTilePos(uVar3, 1); + iVar2 = GetCollisionDataAtMetaTilePos(metaTilePos, LAYER_BOTTOM); if (((iVar2 == 10) && (((uVar1 & 0xf0) == 0 || ((uVar1 & 0xf0) == 0x50)))) && ((uVar1 & 10) != 0)) { - SetMetaTile(0x402f, uVar3, 1); + SetMetaTile(SPECIAL_META_TILE_47, metaTilePos, LAYER_BOTTOM); } } } @@ -380,24 +380,24 @@ void sub_0808FF50(PushableFurnitureEntity* this) { switch (this->unk_80) { case 0: this->unk_70 = tmp; - this->unk_74 = GetMetaTileIndex(this->unk_70, 1); - SetMetaTile(0x404a, tmp, 1); + this->unk_74 = GetMetaTileIndex(this->unk_70, LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_74, tmp, LAYER_BOTTOM); break; case 1: if ((tmp2 & 8) != 0) { this->unk_70 = this->unk_7c; - this->unk_74 = GetMetaTileIndex(this->unk_70, 1); - SetMetaTile(gUnk_08121EE4[this->unk_81], position, 1); + this->unk_74 = GetMetaTileIndex(this->unk_70, LAYER_BOTTOM); + SetMetaTile(gUnk_08121EE4[this->unk_81], position, LAYER_BOTTOM); this->unk_72 = tmp + 1; - this->unk_76 = GetMetaTileIndex(this->unk_72, 1); + this->unk_76 = GetMetaTileIndex(this->unk_72, LAYER_BOTTOM); sub_08090094(this, gUnk_08121EE4[this->unk_81 + 4], this->unk_72); sub_0809028C(this, 1); } else { this->unk_72 = this->unk_7c; - this->unk_76 = GetMetaTileIndex(this->unk_72, 1); - SetMetaTile(gUnk_08121EE4[this->unk_81], position, 1); + this->unk_76 = GetMetaTileIndex(this->unk_72, LAYER_BOTTOM); + SetMetaTile(gUnk_08121EE4[this->unk_81], position, LAYER_BOTTOM); this->unk_70 = tmp - 1; - this->unk_74 = GetMetaTileIndex(this->unk_70, 1); + this->unk_74 = GetMetaTileIndex(this->unk_70, LAYER_BOTTOM); sub_08090094(this, gUnk_08121EE4[this->unk_81 + 2], this->unk_70); sub_0809028C(this, 0); } @@ -405,92 +405,92 @@ void sub_0808FF50(PushableFurnitureEntity* this) { } } -void sub_08090094(PushableFurnitureEntity* this, u32 param_2, u32 tilePos) { +void sub_08090094(PushableFurnitureEntity* this, u32 tileIndex, u32 tilePos) { FORCE_REGISTER(u32 tmp1, r4); - u32 index; + u32 newTileIndex; u32 tmp2; tmp1 = GetCollisionDataAtMetaTilePos(tilePos, 1); - index = GetMetaTileIndex(tilePos, 1); - if ((index & 0x4000) == 0) { - index = param_2; - switch (index) { - case 0x4025: + newTileIndex = GetMetaTileIndex(tilePos, LAYER_BOTTOM); + if ((newTileIndex & 0x4000) == 0) { + newTileIndex = tileIndex; + switch (newTileIndex) { + case SPECIAL_META_TILE_37: if (tmp1 == 5) { - index = 0x4022; + newTileIndex = SPECIAL_META_TILE_34; } - SetMetaTile(index, tilePos, 1); + SetMetaTile(newTileIndex, tilePos, LAYER_BOTTOM); return; - case 0x402d: - case 0x402f: + case SPECIAL_META_TILE_45: + case SPECIAL_META_TILE_47: if (tmp1 == 5) { - index = 0x4022; + newTileIndex = SPECIAL_META_TILE_34; } - SetMetaTile(index, tilePos, 1); + SetMetaTile(newTileIndex, tilePos, LAYER_BOTTOM); return; - case 0x4024: - case 0x402c: - case 0x402e: + case SPECIAL_META_TILE_36: + case SPECIAL_META_TILE_44: + case SPECIAL_META_TILE_46: if (tmp1 == 10) { - index = 0x4022; + newTileIndex = SPECIAL_META_TILE_34; } - SetMetaTile(index, tilePos, 1); + SetMetaTile(newTileIndex, tilePos, LAYER_BOTTOM); return; default: - SetMetaTile(index, tilePos, 1); + SetMetaTile(newTileIndex, tilePos, LAYER_BOTTOM); return; } } - switch (index) { - case 0x4022: + switch (newTileIndex) { + case SPECIAL_META_TILE_34: default: return; - case 0x4025: - if (param_2 == 0x4024) { - index = 0x4022; + case SPECIAL_META_TILE_37: + if (tileIndex == SPECIAL_META_TILE_36) { + newTileIndex = SPECIAL_META_TILE_34; this->unk_83 |= 0x10; } - if (param_2 == 0x402c) { - index = 0x4022; + if (tileIndex == SPECIAL_META_TILE_44) { + newTileIndex = SPECIAL_META_TILE_34; this->unk_83 |= 0x10; } break; - case 0x402d: - case 0x402f: - if (param_2 == 0x402c) { - index = 0x402b; + case SPECIAL_META_TILE_45: + case SPECIAL_META_TILE_47: + if (tileIndex == SPECIAL_META_TILE_44) { + newTileIndex = SPECIAL_META_TILE_43; this->unk_83 |= 0x10; } - if (param_2 == 0x4024) { - index = 0x4022; + if (tileIndex == SPECIAL_META_TILE_36) { + newTileIndex = SPECIAL_META_TILE_34; this->unk_83 |= 0x10; } break; - case 0x4024: - if (param_2 == 0x4025) { - index = 0x4022; + case SPECIAL_META_TILE_36: + if (tileIndex == SPECIAL_META_TILE_37) { + newTileIndex = SPECIAL_META_TILE_34; this->unk_83 |= 0x20; } - if (param_2 == 0x402d) { - index = 0x4022; + if (tileIndex == SPECIAL_META_TILE_45) { + newTileIndex = SPECIAL_META_TILE_34; this->unk_83 |= 0x20; } break; - case 0x402c: - case 0x402e: - if (param_2 == 0x402d) { - index = 0x402b; + case SPECIAL_META_TILE_44: + case SPECIAL_META_TILE_46: + if (tileIndex == SPECIAL_META_TILE_45) { + newTileIndex = SPECIAL_META_TILE_43; this->unk_83 |= 0x20; } - if (param_2 == 0x4025) { - index = 0x4022; + if (tileIndex == SPECIAL_META_TILE_37) { + newTileIndex = SPECIAL_META_TILE_34; this->unk_83 |= 0x20; } break; } - SetMetaTile(index, tilePos, 1); + SetMetaTile(newTileIndex, tilePos, LAYER_BOTTOM); } void sub_08090254(PushableFurnitureEntity* this) { @@ -591,8 +591,8 @@ void sub_0809028C(PushableFurnitureEntity* this, u32 param_2) { } } -void sub_08090480(u32 param_1, u32 param_2) { - SetMetaTile(gUnk_08121EF0[param_1], param_2, 1); +void sub_08090480(u32 param_1, u32 tilePos) { + SetMetaTile(gUnk_08121EF0[param_1], tilePos, LAYER_BOTTOM); } void sub_08090498(PushableFurnitureEntity* this) { @@ -637,11 +637,12 @@ void (*const PushableFurniture_Actions[])(PushableFurnitureEntity*) = { PushableFurniture_Action2, }; const u16 gUnk_08121EE4[] = { - 0x402b, 0x4022, 0x402c, 0x4024, 0x402d, 0x4025, + SPECIAL_META_TILE_43, SPECIAL_META_TILE_34, SPECIAL_META_TILE_44, + SPECIAL_META_TILE_36, SPECIAL_META_TILE_45, SPECIAL_META_TILE_37, }; const u16 gUnk_08121EF0[] = { - 0x4026, - 0x4065, - 0x4066, + SPECIAL_META_TILE_38, + SPECIAL_META_TILE_101, + SPECIAL_META_TILE_102, 0, }; diff --git a/src/object/pushableGrave.c b/src/object/pushableGrave.c index 04bf070c..82099ec4 100644 --- a/src/object/pushableGrave.c +++ b/src/object/pushableGrave.c @@ -7,9 +7,9 @@ #define NENT_DEPRECATED #include "functions.h" -#include "global.h" #include "hitbox.h" #include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -136,9 +136,9 @@ void sub_080977F4(PushableGraveEntity* this) { super->action = 4; super->spriteOffsetY = 0; tilePosition = COORD_TO_TILE(super); - SetMetaTile(0x4022, tilePosition, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, tilePosition, super->collisionLayer); if (super->type == 0) { - SetMetaTile(0x4022, tilePosition - 1, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_34, tilePosition - 1, super->collisionLayer); } if (this->pushedFlag != 0) { SetFlag(this->pushedFlag); @@ -150,7 +150,8 @@ bool32 sub_0809785C(PushableGraveEntity* this) { if (super->type != 0) { if (super->type2 != 0) { - if ((CheckFlags(this->pushedFlag) != 0) || GetMetaTileType(this->unk_68, super->collisionLayer) == 0x403f) { + if ((CheckFlags(this->pushedFlag) != 0) || + GetMetaTileType(this->unk_68, super->collisionLayer) == SPECIAL_META_TILE_63) { super->action = 3; super->timer = 64; super->subtimer = 0; @@ -159,14 +160,14 @@ bool32 sub_0809785C(PushableGraveEntity* this) { tilePosition = this->unk_68; SetMetaTileByIndex(this->unk_72, tilePosition, super->collisionLayer); if (super->type2 == 2) { - SetMetaTileByIndex(this->unk_6a, tilePosition - 0x41, super->collisionLayer); - SetMetaTileByIndex(this->unk_6c, tilePosition - 0x40, super->collisionLayer); - SetMetaTileByIndex(this->unk_6e, tilePosition - 0x3f, super->collisionLayer); - SetMetaTileByIndex(this->unk_70, tilePosition - 1, super->collisionLayer); - SetMetaTileByIndex(this->unk_74, tilePosition + 1, super->collisionLayer); - SetMetaTileByIndex(this->unk_76, tilePosition + 0x3f, super->collisionLayer); - SetMetaTileByIndex(this->unk_78, tilePosition + 0x40, super->collisionLayer); - SetMetaTileByIndex(this->unk_7a, tilePosition + 0x41, super->collisionLayer); + SetMetaTileByIndex(this->unk_6a, tilePosition + TILE_POS(-1, -1), super->collisionLayer); + SetMetaTileByIndex(this->unk_6c, tilePosition + TILE_POS(0, -1), super->collisionLayer); + SetMetaTileByIndex(this->unk_6e, tilePosition + TILE_POS(1, -1), super->collisionLayer); + SetMetaTileByIndex(this->unk_70, tilePosition + TILE_POS(-1, 0), super->collisionLayer); + SetMetaTileByIndex(this->unk_74, tilePosition + TILE_POS(1, 0), super->collisionLayer); + SetMetaTileByIndex(this->unk_76, tilePosition + TILE_POS(-1, 1), super->collisionLayer); + SetMetaTileByIndex(this->unk_78, tilePosition + TILE_POS(0, 1), super->collisionLayer); + SetMetaTileByIndex(this->unk_7a, tilePosition + TILE_POS(1, 1), super->collisionLayer); } SoundReq(SFX_10F); return TRUE; @@ -207,7 +208,7 @@ const u8 gUnk_081232C0[] = { 255, 61, 64, 1, 0, 61, 64, 63, 0, 61, 64, 65, 0, 255, 255, }; const u16 PushableGrave_Tiles[] = { - 0x4022, - 0x403e, - 0x403e, + SPECIAL_META_TILE_34, + SPECIAL_META_TILE_62, + SPECIAL_META_TILE_62, }; diff --git a/src/object/pushableLever.c b/src/object/pushableLever.c index 9fdc0151..c259ddfc 100644 --- a/src/object/pushableLever.c +++ b/src/object/pushableLever.c @@ -7,13 +7,13 @@ #define NENT_DEPRECATED #include "functions.h" -#include "global.h" #include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; /*0x68*/ u8 unk_68[8]; - /*0x70*/ u16 tilePosition; + /*0x70*/ u16 tilePos; /*0x72*/ u16 tileIndex; /*0x74*/ u16 timer; /*0x76*/ u8 unk_76[16]; @@ -36,9 +36,6 @@ bool32 PushableLever_ShouldStartPushing(PushableLeverEntity* this); void PushableLever_SetMetaTiles(PushableLeverEntity*); void PushableLever_CalculateSpriteOffsets(PushableLeverEntity*); -#define TILE_INITIAL 0x4053 -#define TILE_PUSHED 0x4052 - void PushableLever(PushableLeverEntity* this) { PushableLever_Actions[super->action](this); } @@ -53,7 +50,7 @@ void PushableLever_Idle(PushableLeverEntity* this) { super->action = PUSHING; super->spriteOffsetX = 0; super->spriteOffsetY = 0; - SetMetaTile(this->tileIndex, this->tilePosition, super->collisionLayer); + SetMetaTile(this->tileIndex, this->tilePos, super->collisionLayer); EnqueueSFX(SFX_16A); RequestPriorityDuration(super, 30); if (PlayerCanBeMoved()) { @@ -88,26 +85,26 @@ void PushableLever_SetIdle(PushableLeverEntity* this) { void PushableLever_SetMetaTiles(PushableLeverEntity* this) { if (CheckFlags(this->pushedFlag) == FALSE) { super->type2 = 0; - this->tilePosition = COORD_TO_TILE_OFFSET(super, 0, 0x10); - this->tileIndex = GetMetaTileIndex(this->tilePosition, super->collisionLayer); - SetMetaTile(TILE_INITIAL, this->tilePosition, super->collisionLayer); + this->tilePos = COORD_TO_TILE_OFFSET(super, 0, 0x10); + this->tileIndex = GetMetaTileIndex(this->tilePos, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_83, this->tilePos, super->collisionLayer); InitializeAnimation(super, 1); } else { super->type2 = 1; - this->tilePosition = COORD_TO_TILE_OFFSET(super, 0x10, 0); - this->tileIndex = GetMetaTileIndex(this->tilePosition, super->collisionLayer); - SetMetaTile(TILE_PUSHED, this->tilePosition, super->collisionLayer); + this->tilePos = COORD_TO_TILE_OFFSET(super, 0x10, 0); + this->tileIndex = GetMetaTileIndex(this->tilePos, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_82, this->tilePos, super->collisionLayer); InitializeAnimation(super, 0); } } bool32 PushableLever_ShouldStartPushing(PushableLeverEntity* this) { - if (GetMetaTileIndex(this->tilePosition, super->collisionLayer) == 0x4054) { + if (GetMetaTileIndex(this->tilePos, super->collisionLayer) == SPECIAL_META_TILE_84) { if (--this->timer == 0) { return TRUE; } PushableLever_CalculateSpriteOffsets(this); - SetMetaTile(PushableLever_Tiles[super->type2], this->tilePosition, super->collisionLayer); + SetMetaTile(PushableLever_Tiles[super->type2], this->tilePos, super->collisionLayer); } else { this->timer = 60; super->spriteOffsetX = 0; @@ -137,8 +134,8 @@ void (*const PushableLever_Actions[])(PushableLeverEntity*) = { PushableLever_Pushing, }; const u16 PushableLever_Tiles[] = { - TILE_INITIAL, - TILE_PUSHED, + SPECIAL_META_TILE_83, + SPECIAL_META_TILE_82, }; const u8 PushableLever_InitialOffsets[] = { 0, 0, 0, 0, 255, 0, 0, 0, diff --git a/src/object/pushableRock.c b/src/object/pushableRock.c index 8287b494..3c4b38d3 100644 --- a/src/object/pushableRock.c +++ b/src/object/pushableRock.c @@ -14,9 +14,9 @@ typedef struct { /*0x00*/ Entity base; /*0x68*/ u8 unk_68[8]; /*0x70*/ u16 tileIndex; - /*0x72*/ u8 unk_72; + /*0x72*/ u8 collisionData; /*0x73*/ u8 unk_73; - /*0x74*/ u16 tilePosition; + /*0x74*/ u16 tilePos; /*0x76*/ u8 unk_76[0x10]; /*0x86*/ u16 pushedFlag; } PushableRockEntity; @@ -43,12 +43,12 @@ void PushableRock_Action1(PushableRockEntity* this) { u32 tileType; u32 tmp; - tileType = GetMetaTileType(this->tilePosition, super->collisionLayer); + tileType = GetMetaTileType(this->tilePos, super->collisionLayer); switch (tileType) { - case 0x401c: - case 0x401d: - case 0x401e: - case 0x401f: + case SPECIAL_META_TILE_28: + case SPECIAL_META_TILE_29: + case SPECIAL_META_TILE_30: + case SPECIAL_META_TILE_31: tmp = (tileType - 0x1c); super->animationState = tmp * 2; super->direction = tmp * 8; @@ -57,7 +57,7 @@ void PushableRock_Action1(PushableRockEntity* this) { } else { super->spriteSettings.flipX = 0; } - SetMetaTile(this->tileIndex, this->tilePosition, super->collisionLayer); + SetMetaTile(this->tileIndex, this->tilePos, super->collisionLayer); super->action = 2; InitializeAnimation(super, (super->animationState >> 1) + 1); EnqueueSFX(SFX_10F); @@ -90,12 +90,12 @@ void PushableRock_Action3(PushableRockEntity* this) { void sub_0808A644(PushableRockEntity* this) { u32 vvv; - this->tilePosition = COORD_TO_TILE(super); - this->tileIndex = GetMetaTileIndex(this->tilePosition, super->collisionLayer); - this->unk_72 = GetCollisionDataAtMetaTilePos(this->tilePosition, super->collisionLayer); - vvv = GetVvvAtMetaTilePos(this->tilePosition, super->collisionLayer); + this->tilePos = COORD_TO_TILE(super); + this->tileIndex = GetMetaTileIndex(this->tilePos, super->collisionLayer); + this->collisionData = GetCollisionDataAtMetaTilePos(this->tilePos, super->collisionLayer); + vvv = GetVvvAtMetaTilePos(this->tilePos, super->collisionLayer); if ((vvv == VVV_25) || (vvv == VVV_240)) { - SetMetaTile(0x4015, this->tilePosition, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_21, this->tilePos, super->collisionLayer); super->action = 3; if (!CheckFlags(this->pushedFlag)) { SetFlag(this->pushedFlag); @@ -105,7 +105,7 @@ void sub_0808A644(PushableRockEntity* this) { InitializeAnimation(super, 6); } } else { - SetMetaTile(0x401b, this->tilePosition, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_27, this->tilePos, super->collisionLayer); } } diff --git a/src/object/pushableStatue.c b/src/object/pushableStatue.c index e24f56ee..7820c979 100644 --- a/src/object/pushableStatue.c +++ b/src/object/pushableStatue.c @@ -5,9 +5,10 @@ * @brief Pushable Statue object */ #define NENT_DEPRECATED -#include "object.h" +#include "area.h" #include "functions.h" #include "hitbox.h" +#include "object.h" #include "tiles.h" typedef struct { @@ -30,7 +31,7 @@ extern const u16 gUnk_08120CBC[]; extern const u16 gUnk_08120CCC[]; extern const u16 gUnk_08120D6C[]; -u32 sub_0808968C(u32); +u32 sub_0808968C(u32 metaTileType); bool32 sub_0808965C(PushableStatueEntity*); void sub_08089454(PushableStatueEntity*); void sub_080894C8(PushableStatueEntity*); @@ -58,16 +59,16 @@ void PushableStatue_Init(PushableStatueEntity* this) { } void PushableStatue_Action1(PushableStatueEntity* this) { - u16 tileType; + u16 metaTileType; Entity* obj; if (sub_0800442E(super) == 0) { - tileType = GetMetaTileType(this->unk_84, super->collisionLayer); - if (tileType != 0x400b) { - switch (sub_0808968C(tileType)) { + metaTileType = GetMetaTileType(this->unk_84, super->collisionLayer); + if (metaTileType != SPECIAL_META_TILE_11) { + switch (sub_0808968C(metaTileType)) { case 1: super->action = 3; - super->direction = ((tileType - 0xc) & 3) << 3; + super->direction = ((metaTileType - 0xc) & 3) << 3; sub_08089538(this); break; case 0: @@ -78,7 +79,7 @@ void PushableStatue_Action1(PushableStatueEntity* this) { sub_080894FC(this); break; case 2: - this->unk_80 = tileType; + this->unk_80 = metaTileType; break; } } else { @@ -99,7 +100,7 @@ void PushableStatue_Action2(PushableStatueEntity* this) { } void PushableStatue_SubAction0(PushableStatueEntity* this) { - u16 tileType; + u16 metaTileType; Entity* obj; u32 index; const s8* ptr; @@ -110,11 +111,11 @@ void PushableStatue_SubAction0(PushableStatueEntity* this) { ptr = &gUnk_08120CB4[index]; PositionRelative(super, &gPlayerEntity, *(ptr) << 0x10, *(ptr + 1) << 0x10); } - tileType = GetMetaTileType(this->unk_84, super->collisionLayer); - if (tileType != 0x400b) { - switch (sub_0808968C(tileType)) { + metaTileType = GetMetaTileType(this->unk_84, super->collisionLayer); + if (metaTileType != SPECIAL_META_TILE_11) { + switch (sub_0808968C(metaTileType)) { case 1: - super->direction = (((tileType - 0xc) & 3) << 3); + super->direction = (((metaTileType - 0xc) & 3) << 3); sub_08089538(this); break; case 0: @@ -125,7 +126,7 @@ void PushableStatue_SubAction0(PushableStatueEntity* this) { sub_080894FC(this); return; case 2: - this->unk_80 = tileType; + this->unk_80 = metaTileType; break; } } @@ -157,7 +158,7 @@ void PushableStatue_Action4(PushableStatueEntity* this) { } else { super->spriteSettings.draw = 1; super->action = 1; - SetMetaTile(0x400b, this->unk_84, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_11, this->unk_84, super->collisionLayer); sub_080894C8(this); } } @@ -165,9 +166,9 @@ void PushableStatue_Action4(PushableStatueEntity* this) { void sub_08089454(PushableStatueEntity* this) { this->unk_84 = COORD_TO_TILE(super); this->unk_80 = GetMetaTileIndex(this->unk_84, super->collisionLayer); - SetMetaTile(0x400b, this->unk_84, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_11, this->unk_84, super->collisionLayer); if (super->collisionLayer == 2 && GetMetaTileType(this->unk_84, 1) == 0x310) { - SetMetaTile(0x400b, this->unk_84, 1); + SetMetaTile(SPECIAL_META_TILE_11, this->unk_84, LAYER_BOTTOM); } } @@ -193,32 +194,32 @@ void sub_080894FC(PushableStatueEntity* this) { } void sub_08089538(PushableStatueEntity* this) { - u16 tileType; + u16 metaTileType; this->unk_86 = 0x20; EnqueueSFX(SFX_10F); SetMetaTile(this->unk_80, this->unk_84, super->collisionLayer); - if ((super->collisionLayer == 2) && (GetMetaTileType(this->unk_84, 1) == 0x400b)) { - CloneTile(0x310, this->unk_84, 1); + if ((super->collisionLayer == 2) && (GetMetaTileType(this->unk_84, LAYER_BOTTOM) == SPECIAL_META_TILE_11)) { + CloneTile(META_TILE_TYPE_784, this->unk_84, 1); } - tileType = GetMetaTileType(this->unk_84 + gUnk_080B4488[super->direction >> 3], super->collisionLayer); - if ((tileType == 0x79) || (tileType == 0x77)) { + metaTileType = GetMetaTileType(this->unk_84 + gUnk_080B4488[super->direction >> 3], super->collisionLayer); + if ((metaTileType == META_TILE_TYPE_121) || (metaTileType == META_TILE_TYPE_119)) { super->spriteOffsetY = -2; } } bool32 sub_080895C0(PushableStatueEntity* this) { - Entity* obj; + Entity* rockFx; LinearMoveUpdate(super); if ((--this->unk_86 == 0) && (sub_0800442E(super) == 0)) { super->spriteOffsetY = 0; - if (!GetCollisionDataAtEntity(super)) { + if (GetCollisionDataAtEntity(super) == 0) { sub_08089454(this); return TRUE; } - obj = CreateObject(SPECIAL_FX, FX_ROCK, 0); - if (obj != NULL) { - CopyPosition(super, obj); + rockFx = CreateObject(SPECIAL_FX, FX_ROCK, 0); + if (rockFx != NULL) { + CopyPosition(super, rockFx); } super->spriteSettings.draw = 0; super->x.HALF.HI += gUnk_08120CBC[super->direction >> 2]; @@ -232,18 +233,18 @@ bool32 sub_080895C0(PushableStatueEntity* this) { } bool32 sub_0808965C(PushableStatueEntity* this) { - if (gRoomControls.area < 0x40) { - return LoadFixedGFX(super, 0xe9); + if (gRoomControls.area < AREA_40) { + return LoadFixedGFX(super, 233); } else { - return LoadFixedGFX(super, gUnk_08120CCC[gRoomControls.area - 0x40]); + return LoadFixedGFX(super, gUnk_08120CCC[gRoomControls.area - AREA_40]); } } -u32 sub_0808968C(u32 param_1) { +u32 sub_0808968C(u32 metaTileType) { const u16* it; for (it = gUnk_08120D6C; *it != 0; it += 2) { - if (*it == param_1) { + if (*it == metaTileType) { return it[1]; } } @@ -297,5 +298,17 @@ const u16 gUnk_08120CCC[] = { 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 81, 81, }; const u16 gUnk_08120D6C[] = { - 0x400c, 1, 0x400d, 1, 0x400e, 1, 0x400f, 1, 0x7a, 2, 0x78, 2, 0, + SPECIAL_META_TILE_12, + 1, + SPECIAL_META_TILE_13, + 1, + SPECIAL_META_TILE_14, + 1, + SPECIAL_META_TILE_15, + 1, + META_TILE_TYPE_122, + 2, + META_TILE_TYPE_120, + 2, + 0, }; diff --git a/src/object/railtrack.c b/src/object/railtrack.c index 3162ebf8..32095765 100644 --- a/src/object/railtrack.c +++ b/src/object/railtrack.c @@ -11,6 +11,7 @@ #include "global.h" #include "room.h" #include "sound.h" +#include "tiles.h" void sub_08085394(Entity*); void sub_0808543C(Entity*); @@ -114,39 +115,39 @@ void Railtrack_Action3(Entity* this) { } } -static const u16 gUnk_081205E0[] = { 0x4018, 0x4019 }; +static const u16 gUnk_081205E0[] = { SPECIAL_META_TILE_24, SPECIAL_META_TILE_25 }; void sub_08085394(Entity* this) { - u32 uVar1; + u32 specialTile; u16* layerData; - u32 tile; - s8 off; + u32 tilePos; + s8 offset; - uVar1 = gUnk_081205E0[this->animationState / 2]; - off = gUnk_080B4488[this->animationState / 2][0]; + specialTile = gUnk_081205E0[this->animationState / 2]; + offset = gUnk_080B4488[this->animationState / 2][0]; layerData = (u16*)this->field_0x70.WORD; - tile = COORD_TO_TILE(this); + tilePos = COORD_TO_TILE(this); - this->field_0x74.HWORD = *(layerData - off); - SetMetaTile(uVar1, tile - off, this->collisionLayer); + this->field_0x74.HWORD = *(layerData - offset); + SetMetaTile(specialTile, tilePos - offset, this->collisionLayer); this->field_0x76.HWORD = layerData[0x0]; - SetMetaTile(uVar1, tile - 0x0, this->collisionLayer); + SetMetaTile(specialTile, tilePos, this->collisionLayer); - this->field_0x78.HWORD = layerData[off]; - SetMetaTile(uVar1, tile + off, this->collisionLayer); + this->field_0x78.HWORD = layerData[offset]; + SetMetaTile(specialTile, tilePos + offset, this->collisionLayer); } void sub_0808543C(Entity* this) { s8* cVar1; - u32 uVar2; - s8 temp; + u32 metaTilePos; + s8 offset; - temp = gUnk_080B4488[this->animationState / 2][0]; - uVar2 = COORD_TO_TILE(this); - SetMetaTile(this->field_0x74.HWORD, uVar2 - temp, this->collisionLayer); - SetMetaTile(this->field_0x76.HWORD, uVar2, this->collisionLayer); - SetMetaTile(this->field_0x78.HWORD, uVar2 + temp, this->collisionLayer); + offset = gUnk_080B4488[this->animationState / 2][0]; + metaTilePos = COORD_TO_TILE(this); + SetMetaTile(this->field_0x74.HWORD, metaTilePos - offset, this->collisionLayer); + SetMetaTile(this->field_0x76.HWORD, metaTilePos, this->collisionLayer); + SetMetaTile(this->field_0x78.HWORD, metaTilePos + offset, this->collisionLayer); } u32 sub_080854A8(Entity* this) { diff --git a/src/object/smallIceBlock.c b/src/object/smallIceBlock.c index bc1754d4..cf26d02a 100644 --- a/src/object/smallIceBlock.c +++ b/src/object/smallIceBlock.c @@ -6,19 +6,19 @@ */ #define NENT_DEPRECATED -#include "global.h" #include "collision.h" -#include "object.h" #include "functions.h" #include "hitbox.h" #include "item.h" +#include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; /*0x68*/ u8 unk_68[0x4]; /*0x6c*/ u16 unk_6c; /*0x6e*/ u8 unk_6e[0x2]; - /*0x70*/ u16 unk_70; + /*0x70*/ u16 tilePos; /*0x72*/ u8 unk_72[0x14]; /*0x86*/ u16 unk_86; } SmallIceBlockEntity; @@ -87,8 +87,8 @@ void SmallIceBlock_Action1(SmallIceBlockEntity* this) { } } else { if (!sub_0800442E(super)) { - tileType = GetMetaTileType(this->unk_70, super->collisionLayer); - if (tileType != 0x405a) { + tileType = GetMetaTileType(this->tilePos, super->collisionLayer); + if (tileType != SPECIAL_META_TILE_90) { switch (sub_08099618(tileType)) { case 1: super->action = 2; @@ -102,7 +102,7 @@ void SmallIceBlock_Action1(SmallIceBlockEntity* this) { if (obj != NULL) { CopyPosition(super, obj); } - SetMetaTile(this->unk_6c, this->unk_70, super->collisionLayer); + SetMetaTile(this->unk_6c, this->tilePos, super->collisionLayer); DeleteEntity(super); break; @@ -161,7 +161,7 @@ void SmallIceBlock_Action4(SmallIceBlockEntity* this) { DeleteThisEntity(); } else { if (super->timer == 0x30) { - SetMetaTile(this->unk_6c, this->unk_70, super->collisionLayer); + SetMetaTile(this->unk_6c, this->tilePos, super->collisionLayer); } SetAffineInfo(super, 0x100, (0x3c - super->timer) * 0x20 + 0x100, 0); if ((super->timer & 1) != 0) { @@ -178,20 +178,20 @@ void SmallIceBlock_Action4(SmallIceBlockEntity* this) { } void sub_08099468(SmallIceBlockEntity* this) { - this->unk_70 = COORD_TO_TILE(super); - this->unk_6c = GetMetaTileIndex(this->unk_70, super->collisionLayer); - SetMetaTile(0x405a, this->unk_70, super->collisionLayer); + this->tilePos = COORD_TO_TILE(super); + this->unk_6c = GetMetaTileIndex(this->tilePos, super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_90, this->tilePos, super->collisionLayer); } void sub_080994B8(SmallIceBlockEntity* this) { u16 tileType; EnqueueSFX(SFX_ICE_BLOCK_SLIDE); - SetMetaTile(this->unk_6c, this->unk_70, super->collisionLayer); - if ((super->collisionLayer == 2) && (GetMetaTileType(this->unk_70, 1) == 0x405a)) { - CloneTile(0x310, this->unk_70, 1); + SetMetaTile(this->unk_6c, this->tilePos, super->collisionLayer); + if ((super->collisionLayer == 2) && (GetMetaTileType(this->tilePos, 1) == SPECIAL_META_TILE_90)) { + CloneTile(META_TILE_TYPE_784, this->tilePos, 1); } - tileType = GetMetaTileType(this->unk_70 + gUnk_080B4488[super->direction >> 3], super->collisionLayer); + tileType = GetMetaTileType(this->tilePos + gUnk_080B4488[super->direction >> 3], super->collisionLayer); if (tileType == 0x79 || tileType == 0x77) { super->spriteOffsetY = -2; } @@ -328,5 +328,17 @@ const u16 gUnk_08123748[] = { 277, }; const u16 gUnk_08123750[] = { - 0x405b, 1, 0x405c, 1, 0x405d, 1, 0x405e, 1, 0x7a, 2, 0x78, 2, 0, + SPECIAL_META_TILE_91, + 1, + SPECIAL_META_TILE_92, + 1, + SPECIAL_META_TILE_93, + 1, + SPECIAL_META_TILE_94, + 1, + META_TILE_TYPE_122, + 2, + META_TILE_TYPE_120, + 2, + 0, }; diff --git a/src/object/smokeParticle.c b/src/object/smokeParticle.c index 774ded3d..4322c7d7 100644 --- a/src/object/smokeParticle.c +++ b/src/object/smokeParticle.c @@ -79,7 +79,7 @@ void sub_080878CC(Entity* this) { sub_08008796(this, 3, x + itX, y + itY); break; default: - SetMetaTile(0x4022, metaTilePos, layer); + SetMetaTile(SPECIAL_META_TILE_34, metaTilePos, layer); break; } } else { diff --git a/src/object/stoneTablet.c b/src/object/stoneTablet.c index 06049ca9..1c9edf93 100644 --- a/src/object/stoneTablet.c +++ b/src/object/stoneTablet.c @@ -7,6 +7,7 @@ #include "entity.h" #include "functions.h" #include "room.h" +#include "tiles.h" void StoneTablet_Init(Entity*); void StoneTablet_Action1(Entity*); @@ -22,9 +23,23 @@ void StoneTablet(Entity* this) { void StoneTablet_Init(Entity* this) { // TODO recreate as TileData[] - static const u16 gUnk_081232EC[] = { 0x4022, -2, 0x4022, -1, 0x4022, 0, 0x4022, 1, 0xffff }; + static const u16 gUnk_081232EC[] = { + SPECIAL_META_TILE_34, -2, SPECIAL_META_TILE_34, -1, SPECIAL_META_TILE_34, 0, SPECIAL_META_TILE_34, 1, 0xffff, + }; static const u16 gUnk_081232FE[] = { - 0x4065, -65, 0x4022, -64, 0x4066, -63, 0x4029, -1, 0x4026, 0, 0x402a, 1, 0xffff + SPECIAL_META_TILE_101, + -65, + SPECIAL_META_TILE_34, + -64, + SPECIAL_META_TILE_102, + -63, + SPECIAL_META_TILE_41, + -1, + SPECIAL_META_TILE_38, + 0, + SPECIAL_META_TILE_42, + 1, + 0xffff, }; this->action = 1; this->spriteSettings.draw = 1; diff --git a/src/object/treeThorns.c b/src/object/treeThorns.c index 30d40a11..2b94d0ea 100644 --- a/src/object/treeThorns.c +++ b/src/object/treeThorns.c @@ -5,11 +5,11 @@ * @brief Three Thorns object */ #include "entity.h" -#include "global.h" #include "hitbox.h" #include "object.h" #include "physics.h" #include "room.h" +#include "tiles.h" void TreeThorns(Entity* this) { Entity* ent; @@ -30,8 +30,8 @@ void TreeThorns(Entity* this) { this->flags2 = 1; this->hitbox = (Hitbox*)&gHitbox_1; tilePos = COORD_TO_TILE(this); - SetMetaTile(0x4066, tilePos - 1, *layer); - SetMetaTile(0x4065, tilePos, *layer); + SetMetaTile(SPECIAL_META_TILE_102, tilePos - 1, *layer); + SetMetaTile(SPECIAL_META_TILE_101, tilePos, *layer); UpdateSpriteForCollisionLayer(this); ent = CreateObject(TREE_THORNS, 1, 0); if (ent != NULL) { diff --git a/src/object/unusedSkull.c b/src/object/unusedSkull.c index 739cbb8d..775218b9 100644 --- a/src/object/unusedSkull.c +++ b/src/object/unusedSkull.c @@ -6,9 +6,9 @@ */ #define NENT_DEPRECATED #include "functions.h" -#include "global.h" #include "hitbox.h" #include "object.h" +#include "tiles.h" typedef struct { /*0x00*/ Entity base; @@ -40,7 +40,7 @@ void UnusedSkull_Init(UnusedSkullEntity* this) { super->hurtType = 0x47; super->flags2 = 2; super->hitbox = (Hitbox*)&gHitbox_4; - SetMetaTile(0x4050, COORD_TO_TILE(super), super->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_80, COORD_TO_TILE(super), super->collisionLayer); if (super->type == 1 || CheckFlags(this->unk_86)) { super->action = 3; SetFlag(this->unk_86); diff --git a/src/object/waterfallOpening.c b/src/object/waterfallOpening.c index 92455ebb..bf960414 100644 --- a/src/object/waterfallOpening.c +++ b/src/object/waterfallOpening.c @@ -11,6 +11,7 @@ #include "menu.h" #include "room.h" #include "sound.h" +#include "tiles.h" typedef struct { Entity base; @@ -77,7 +78,7 @@ void WaterfallOpening(Entity* this) { case 2: if ((this->subAction == 0)) { this->subAction = 1; - SetMetaTileType(0x39, COORD_TO_TILE(this), 1); + SetMetaTileType(META_TILE_TYPE_57, COORD_TO_TILE(this), LAYER_BOTTOM); } } diff --git a/src/object/well.c b/src/object/well.c index 480a0821..27fc29c3 100644 --- a/src/object/well.c +++ b/src/object/well.c @@ -7,9 +7,9 @@ #include "asm.h" #include "entity.h" #include "functions.h" -#include "global.h" #include "player.h" #include "room.h" +#include "tiles.h" void Well_Init(Entity*); void Well_Action1(Entity*); @@ -28,14 +28,12 @@ void Well_Init(Entity* this) { this->action = 1; tilePos = COORD_TO_TILE(this); this->field_0x80.HWORD = tilePos; - SetMetaTile(0x407d, this->field_0x80.HWORD, 1); + SetMetaTile(SPECIAL_META_TILE_125, this->field_0x80.HWORD, LAYER_BOTTOM); } void Well_Action1(Entity* this) { - s32 tileIndex; - - tileIndex = GetMetaTileType(this->field_0x80.HWORD, 1); - if (tileIndex != 0x407d) { + s32 tileIndex = GetMetaTileType(this->field_0x80.HWORD, LAYER_BOTTOM); + if (tileIndex != SPECIAL_META_TILE_125) { sub_08078B48(); gPlayerEntity.x.WORD = this->x.WORD; gPlayerEntity.y.HALF.HI = this->y.HALF.HI + 4; diff --git a/src/player.c b/src/player.c index 0dd88815..def160fc 100644 --- a/src/player.c +++ b/src/player.c @@ -2189,11 +2189,11 @@ static void PlayerInHoleInit(Entity* this) { gPlayerState.animation = 0x950; } else { gPlayerState.animation = 0x61c; - if (GetMetaTileIndex(COORD_TO_TILE(this), this->collisionLayer) == 0x4020) { + if (GetMetaTileIndex(COORD_TO_TILE(this), this->collisionLayer) == SPECIAL_META_TILE_32) { this->timer = 1; } } - SetMetaTile(0x4070, COORD_TO_TILE(this), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_112, COORD_TO_TILE(this), this->collisionLayer); ResetActiveItems(); PlayerInHoleUpdate(this); SoundReq(SFX_81); @@ -2250,7 +2250,7 @@ static void sub_08072B5C(Entity* this) { return; } - SetMetaTile(0x4021, COORD_TO_TILE(this), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_33, COORD_TO_TILE(this), this->collisionLayer); this->direction = Direction8FromAnimationState(this->animationState); temp = sub_0807A2F8(1); if (!temp) { @@ -2771,7 +2771,7 @@ static void sub_08073584(Entity* this) { return; } - if (gArea.locationIndex == 16) + if (gArea.locationIndex == 16) // AREA_CLOUD_TOPS this->speed = 0x100; else this->speed = 0x80; @@ -2832,7 +2832,7 @@ static void sub_08073584(Entity* this) { } if (sAnims1[idx] == gPlayerState.animation) { - if (gArea.locationIndex == 16) + if (gArea.locationIndex == 16) // AREA_CLOUD_TOPS sub_080042BA(this, 2); else UpdateAnimationSingleFrame(this); @@ -2885,7 +2885,7 @@ static void sub_080737BC(Entity* this) { pos = this->y.HALF.HI; tmp = 0xf; tmp &= pos; - if (tmp == 8 && !GetCollisionDataAtEntity(this)) { + if (tmp == 8 && GetCollisionDataAtEntity(this) == 0) { gPlayerState.jump_status |= 0x40; PlayerSetNormalAndCollide(); } @@ -3711,7 +3711,7 @@ void SurfaceAction_20(Entity* this) { if (e != NULL) { e->timer = 1; UpdateSpriteForCollisionLayer(e); - CloneTile(57, gPlayerState.tilePosition, this->collisionLayer); + CloneTile(META_TILE_TYPE_57, gPlayerState.tilePosition, this->collisionLayer); } } SurfaceAction_Water(this); diff --git a/src/playerItem/playerItemBow.c b/src/playerItem/playerItemBow.c index acde02b6..7dc845b9 100644 --- a/src/playerItem/playerItemBow.c +++ b/src/playerItem/playerItemBow.c @@ -1,13 +1,13 @@ #define NENT_DEPRECATED -#include "global.h" #include "asm.h" +#include "effects.h" #include "entity.h" #include "functions.h" -#include "effects.h" #include "object.h" #include "playeritem.h" -#include "sound.h" #include "save.h" +#include "sound.h" +#include "tiles.h" typedef struct { Entity base; @@ -265,66 +265,1402 @@ void sub_08019468(PlayerItemBowEntity* this) { // Probably belongs to collision.c, but needs to be placed at the end of playerItemBow.c or start of // playerItemSwordBeam.c -const u8 gUnk_080B3E80[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 0, 255, 255, 255, - 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 255, - 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 48, 34, 34, 36, 0, 0, 29, 29, 29, 255, 255, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 255, 255, 255, 255, 255, 29, 29, 29, 255, 255, 29, 29, - 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 32, 32, - 15, 15, 15, 15, 0, 0, 0, 0, 21, 21, 20, 20, 95, 255, 255, 255, 255, 255, 255, 15, 41, 41, 41, - 41, 0, 36, 36, 36, 15, 15, 15, 15, 255, 255, 255, 255, 255, 255, 15, 15, 15, 15, 39, 39, 15, 15, - 15, 39, 15, 15, 35, 15, 15, 35, 15, 15, 15, 15, 15, 15, 15, 15, 15, 39, 15, 15, 39, 39, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 39, 15, 15, 255, 39, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 39, 39, 15, 15, 39, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 35, 15, 15, 35, - 35, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 35, 35, 15, 15, 35, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 15, 15, 15, 15, 95, 255, 255, 15, 15, 21, 15, 0, 0, 0, 255, 12, 0, 0, 12, - 12, 66, 96, 15, 29, 255, 15, 15, 15, 0, 15, 15, 15, 15, 10, 5, 10, 5, 1, 1, 1, 0, 0, - 0, 0, 0, 0, 5, 15, 10, 0, 0, 5, 15, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, - 10, 4, 12, 8, 0, 0, 0, 5, 0, 10, 4, 12, 8, 15, 15, 15, 15, 15, 16, 17, 17, 16, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 27, 25, 28, 26, 43, 43, 97, 23, 23, 84, 23, 23, - 23, 0, 0, 84, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 18, 15, 15, 19, 15, 15, 15, 15, - 15, 15, 15, 15, 5, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 1, 3, 2, 0, 0, 5, 15, 10, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 71, 15, 15, 15, 1, 3, 2, 15, 15, 5, 15, 10, 15, - 15, 4, 0, 8, 15, 12, 12, 0, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 16, 15, 17, 15, 15, 15, 15, 15, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 5, 15, 15, 15, 15, 15, 15, 15, 15, - 39, 15, 15, 39, 255, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 39, 15, 15, 39, 255, 15, 15, - 15, 15, 255, 255, 255, 255, 255, 255, 15, 39, 15, 15, 255, 39, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 5, 0, 10, 4, 12, 8, 70, 75, 74, 72, 71, 96, 98, 97, 99, 100, 102, 15, 80, 48, - 48, 255, 0, 255, 0, 0, 0, 0, 255, 0, 0, 37, 15, 255, 255, 255, 255, 255, 255, 0, 0, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 255, 255, 255, 255, 255, - 40, 255, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 21, 20, 20, - 15, 15, 15, 15, 15, 15, 15, 15, 255, 1, 1, 1, 255, 255, 255, 255, 24, 24, 24, 24, 38, 15, 0, - 28, 26, 27, 25, 255, 0, 15, 21, 15, 15, 15, 19, 18, 15, 15, 15, 18, 19, 35, 39, 0, 0, 2, - 14, 13, 12, 3, 9, 6, 4, 8, 11, 7, 10, 5, 3, 107, 103, 106, 15, 12, 20, 21, 15, 0, 15, - 40, 95, 15, 5, 10, 16, 17, 18, 19, 71, 12, 13, 14, 71, 20, 92, 13, 5, 4, 8, 1, 2, 10, - 5, 10, 15, 4, 8, 15, 3, 2, 5, 15, 10, 4, 12, 8, 3, 2, 5, 15, 10, 4, 12, 8, 92, - 84, 81, 83, 81, 82, 83, 90, 87, 91, 95, 84, 88, 92, 85, 93, 94, 39, 88, 85, 10, 83, 90, 81, - 15, 89, 0, 0, 69, 71, 67, 70, 0, 3, 15, 1, 2, 3, 10, 12, 5, 4, 8, 4, 1, 3, 15, - 95, 97, 0, 3, 28, 27, 21, 69, 3, 96, 12, 102, 100, 101, 26, 25, 18, 17, 19, 16, 2, 4, 8, - 14, 15, 11, 84, 69, 68, 4, 13, 0, 0, 12, 12, 15, 15, 10, 5, 10, 5, 12, 97, 10, 5, 11, - 7, 67, 69, 1, 2, 4, 8, 13, 3, 3, 7, 15, 3, 0, 2, 84, 92, 88, 12, 67, 0, 0, 8, - 1, 2, 87, 95, 91, 82, 14, 18, 19, 10, 5, 0, 10, 5, 3, 63, 19, 18, 47, 46, 17, 16, 11, - 7, 15, 0, 3, 15, 15, 1, 8, 12, 12, 15, 1, 3, 2, 5, 10, 4, 12, 8, 9, 39, 2, 14, - 13, 12, 3, 6, 9, 4, 8, 11, 7, 10, 5, 34, 35, 4, 12, 3, 3, 1, 5, 10, 4, 8, 0, - 107, 103, 106, 18, 45, 44, 0, 15, 41, 40, 0, 0, 0, 0, 0, 0, 0, 20, 33, 39, 67, 4, 8, - 12, 3, 3, 1, 2, 0, 12, 3, 2, 5, 10, 14, 13, 4, 8, 11, 7, 12, 0, 0, 39, 1, 2, - 1, 2, 4, 12, 7, 11, 4, 8, 16, 17, 43, 43, 18, 19, 10, 5, 2, 1, 35, 1, 3, 2, 5, - 10, 14, 13, 11, 7, 4, 8, 10, 5, 10, 5, 13, 14, 8, 4, 7, 11, 0, 9, 6, 0, 15, 7, - 11, 3, 33, 33, 33, 33, 33, 33, 33, 15, 5, 10, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 3, 48, 48, 0, 0, 0, 0, 0, 0, 48, 48, - 33, 33, 0, 15, 83, 92, 85, 90, 96, 97, 95, 18, 19, 16, 10, 10, 35, 10, 5, 14, 13, 11, 7, - 10, 5, 14, 13, 11, 7, 0, 0, 3, 0, 39, 12, 12, 33, 0, 0, +// maps metaTileType to collisionData +const u8 gMapMetaTileTypeToCollisionData[] = { + COLLISION_DATA_0, // META_TILE_TYPE_0 + COLLISION_DATA_0, // META_TILE_TYPE_1 + COLLISION_DATA_0, // META_TILE_TYPE_2 + COLLISION_DATA_0, // META_TILE_TYPE_3 + COLLISION_DATA_0, // META_TILE_TYPE_4 + COLLISION_DATA_0, // META_TILE_TYPE_5 + COLLISION_DATA_0, // META_TILE_TYPE_6 + COLLISION_DATA_0, // META_TILE_TYPE_7 + COLLISION_DATA_0, // META_TILE_TYPE_8 + COLLISION_DATA_0, // META_TILE_TYPE_9 + COLLISION_DATA_0, // META_TILE_TYPE_10 + COLLISION_DATA_0, // META_TILE_TYPE_11 + COLLISION_DATA_255, // META_TILE_TYPE_12 + COLLISION_DATA_255, // META_TILE_TYPE_13 + COLLISION_DATA_255, // META_TILE_TYPE_14 + COLLISION_DATA_255, // META_TILE_TYPE_15 + COLLISION_DATA_255, // META_TILE_TYPE_16 + COLLISION_DATA_255, // META_TILE_TYPE_17 + COLLISION_DATA_255, // META_TILE_TYPE_18 + COLLISION_DATA_0, // META_TILE_TYPE_19 + COLLISION_DATA_255, // META_TILE_TYPE_20 + COLLISION_DATA_255, // META_TILE_TYPE_21 + COLLISION_DATA_255, // META_TILE_TYPE_22 + COLLISION_DATA_255, // META_TILE_TYPE_23 + COLLISION_DATA_255, // META_TILE_TYPE_24 + COLLISION_DATA_255, // META_TILE_TYPE_25 + COLLISION_DATA_0, // META_TILE_TYPE_26 + COLLISION_DATA_0, // META_TILE_TYPE_27 + COLLISION_DATA_0, // META_TILE_TYPE_28 + COLLISION_DATA_0, // META_TILE_TYPE_29 + COLLISION_DATA_0, // META_TILE_TYPE_30 + COLLISION_DATA_0, // META_TILE_TYPE_31 + COLLISION_DATA_0, // META_TILE_TYPE_32 + COLLISION_DATA_0, // META_TILE_TYPE_33 + COLLISION_DATA_0, // META_TILE_TYPE_34 + COLLISION_DATA_0, // META_TILE_TYPE_35 + COLLISION_DATA_0, // META_TILE_TYPE_36 + COLLISION_DATA_0, // META_TILE_TYPE_37 + COLLISION_DATA_0, // META_TILE_TYPE_38 + COLLISION_DATA_0, // META_TILE_TYPE_39 + COLLISION_DATA_0, // META_TILE_TYPE_40 + COLLISION_DATA_0, // META_TILE_TYPE_41 + COLLISION_DATA_255, // META_TILE_TYPE_42 + COLLISION_DATA_0, // META_TILE_TYPE_43 + COLLISION_DATA_0, // META_TILE_TYPE_44 + COLLISION_DATA_255, // META_TILE_TYPE_45 + COLLISION_DATA_0, // META_TILE_TYPE_46 + COLLISION_DATA_0, // META_TILE_TYPE_47 + COLLISION_DATA_0, // META_TILE_TYPE_48 + COLLISION_DATA_0, // META_TILE_TYPE_49 + COLLISION_DATA_0, // META_TILE_TYPE_50 + COLLISION_DATA_0, // META_TILE_TYPE_51 + COLLISION_DATA_0, // META_TILE_TYPE_52 + COLLISION_DATA_33, // META_TILE_TYPE_53 + COLLISION_DATA_0, // META_TILE_TYPE_54 + COLLISION_DATA_0, // META_TILE_TYPE_55 + COLLISION_DATA_0, // META_TILE_TYPE_56 + COLLISION_DATA_48, // META_TILE_TYPE_57 + COLLISION_DATA_34, // META_TILE_TYPE_58 + COLLISION_DATA_34, // META_TILE_TYPE_59 + COLLISION_DATA_36, // META_TILE_TYPE_60 + COLLISION_DATA_0, // META_TILE_TYPE_61 + COLLISION_DATA_0, // META_TILE_TYPE_62 + COLLISION_DATA_29, // META_TILE_TYPE_63 + COLLISION_DATA_29, // META_TILE_TYPE_64 + COLLISION_DATA_29, // META_TILE_TYPE_65 + COLLISION_DATA_255, // META_TILE_TYPE_66 + COLLISION_DATA_255, // META_TILE_TYPE_67 + COLLISION_DATA_29, // META_TILE_TYPE_68 + COLLISION_DATA_29, // META_TILE_TYPE_69 + COLLISION_DATA_29, // META_TILE_TYPE_70 + COLLISION_DATA_29, // META_TILE_TYPE_71 + COLLISION_DATA_29, // META_TILE_TYPE_72 + COLLISION_DATA_29, // META_TILE_TYPE_73 + COLLISION_DATA_29, // META_TILE_TYPE_74 + COLLISION_DATA_29, // META_TILE_TYPE_75 + COLLISION_DATA_29, // META_TILE_TYPE_76 + COLLISION_DATA_29, // META_TILE_TYPE_77 + COLLISION_DATA_29, // META_TILE_TYPE_78 + COLLISION_DATA_29, // META_TILE_TYPE_79 + COLLISION_DATA_255, // META_TILE_TYPE_80 + COLLISION_DATA_255, // META_TILE_TYPE_81 + COLLISION_DATA_255, // META_TILE_TYPE_82 + COLLISION_DATA_255, // META_TILE_TYPE_83 + COLLISION_DATA_255, // META_TILE_TYPE_84 + COLLISION_DATA_29, // META_TILE_TYPE_85 + COLLISION_DATA_29, // META_TILE_TYPE_86 + COLLISION_DATA_29, // META_TILE_TYPE_87 + COLLISION_DATA_255, // META_TILE_TYPE_88 + COLLISION_DATA_255, // META_TILE_TYPE_89 + COLLISION_DATA_29, // META_TILE_TYPE_90 + COLLISION_DATA_29, // META_TILE_TYPE_91 + COLLISION_DATA_255, // META_TILE_TYPE_92 + COLLISION_DATA_255, // META_TILE_TYPE_93 + COLLISION_DATA_255, // META_TILE_TYPE_94 + COLLISION_DATA_255, // META_TILE_TYPE_95 + COLLISION_DATA_255, // META_TILE_TYPE_96 + COLLISION_DATA_0, // META_TILE_TYPE_97 + COLLISION_DATA_0, // META_TILE_TYPE_98 + COLLISION_DATA_0, // META_TILE_TYPE_99 + COLLISION_DATA_0, // META_TILE_TYPE_100 + COLLISION_DATA_0, // META_TILE_TYPE_101 + COLLISION_DATA_0, // META_TILE_TYPE_102 + COLLISION_DATA_0, // META_TILE_TYPE_103 + COLLISION_DATA_0, // META_TILE_TYPE_104 + COLLISION_DATA_0, // META_TILE_TYPE_105 + COLLISION_DATA_0, // META_TILE_TYPE_106 + COLLISION_DATA_0, // META_TILE_TYPE_107 + COLLISION_DATA_0, // META_TILE_TYPE_108 + COLLISION_DATA_0, // META_TILE_TYPE_109 + COLLISION_DATA_0, // META_TILE_TYPE_110 + COLLISION_DATA_15, // META_TILE_TYPE_111 + COLLISION_DATA_15, // META_TILE_TYPE_112 + COLLISION_DATA_32, // META_TILE_TYPE_113 + COLLISION_DATA_32, // META_TILE_TYPE_114 + COLLISION_DATA_15, // META_TILE_TYPE_115 + COLLISION_DATA_15, // META_TILE_TYPE_116 + COLLISION_DATA_15, // META_TILE_TYPE_117 + COLLISION_DATA_15, // META_TILE_TYPE_118 + COLLISION_DATA_0, // META_TILE_TYPE_119 + COLLISION_DATA_0, // META_TILE_TYPE_120 + COLLISION_DATA_0, // META_TILE_TYPE_121 + COLLISION_DATA_0, // META_TILE_TYPE_122 + COLLISION_DATA_21, // META_TILE_TYPE_123 + COLLISION_DATA_21, // META_TILE_TYPE_124 + COLLISION_DATA_20, // META_TILE_TYPE_125 + COLLISION_DATA_20, // META_TILE_TYPE_126 + COLLISION_DATA_95, // META_TILE_TYPE_127 + COLLISION_DATA_255, // META_TILE_TYPE_128 + COLLISION_DATA_255, // META_TILE_TYPE_129 + COLLISION_DATA_255, // META_TILE_TYPE_130 + COLLISION_DATA_255, // META_TILE_TYPE_131 + COLLISION_DATA_255, // META_TILE_TYPE_132 + COLLISION_DATA_255, // META_TILE_TYPE_133 + COLLISION_DATA_15, // META_TILE_TYPE_134 + COLLISION_DATA_41, // META_TILE_TYPE_135 + COLLISION_DATA_41, // META_TILE_TYPE_136 + COLLISION_DATA_41, // META_TILE_TYPE_137 + COLLISION_DATA_41, // META_TILE_TYPE_138 + COLLISION_DATA_0, // META_TILE_TYPE_139 + COLLISION_DATA_36, // META_TILE_TYPE_140 + COLLISION_DATA_36, // META_TILE_TYPE_141 + COLLISION_DATA_36, // META_TILE_TYPE_142 + COLLISION_DATA_15, // META_TILE_TYPE_143 + COLLISION_DATA_15, // META_TILE_TYPE_144 + COLLISION_DATA_15, // META_TILE_TYPE_145 + COLLISION_DATA_15, // META_TILE_TYPE_146 + COLLISION_DATA_255, // META_TILE_TYPE_147 + COLLISION_DATA_255, // META_TILE_TYPE_148 + COLLISION_DATA_255, // META_TILE_TYPE_149 + COLLISION_DATA_255, // META_TILE_TYPE_150 + COLLISION_DATA_255, // META_TILE_TYPE_151 + COLLISION_DATA_255, // META_TILE_TYPE_152 + COLLISION_DATA_15, // META_TILE_TYPE_153 + COLLISION_DATA_15, // META_TILE_TYPE_154 + COLLISION_DATA_15, // META_TILE_TYPE_155 + COLLISION_DATA_15, // META_TILE_TYPE_156 + COLLISION_DATA_39, // META_TILE_TYPE_157 + COLLISION_DATA_39, // META_TILE_TYPE_158 + COLLISION_DATA_15, // META_TILE_TYPE_159 + COLLISION_DATA_15, // META_TILE_TYPE_160 + COLLISION_DATA_15, // META_TILE_TYPE_161 + COLLISION_DATA_39, // META_TILE_TYPE_162 + COLLISION_DATA_15, // META_TILE_TYPE_163 + COLLISION_DATA_15, // META_TILE_TYPE_164 + COLLISION_DATA_35, // META_TILE_TYPE_165 + COLLISION_DATA_15, // META_TILE_TYPE_166 + COLLISION_DATA_15, // META_TILE_TYPE_167 + COLLISION_DATA_35, // META_TILE_TYPE_168 + COLLISION_DATA_15, // META_TILE_TYPE_169 + COLLISION_DATA_15, // META_TILE_TYPE_170 + COLLISION_DATA_15, // META_TILE_TYPE_171 + COLLISION_DATA_15, // META_TILE_TYPE_172 + COLLISION_DATA_15, // META_TILE_TYPE_173 + COLLISION_DATA_15, // META_TILE_TYPE_174 + COLLISION_DATA_15, // META_TILE_TYPE_175 + COLLISION_DATA_15, // META_TILE_TYPE_176 + COLLISION_DATA_15, // META_TILE_TYPE_177 + COLLISION_DATA_39, // META_TILE_TYPE_178 + COLLISION_DATA_15, // META_TILE_TYPE_179 + COLLISION_DATA_15, // META_TILE_TYPE_180 + COLLISION_DATA_39, // META_TILE_TYPE_181 + COLLISION_DATA_39, // META_TILE_TYPE_182 + COLLISION_DATA_15, // META_TILE_TYPE_183 + COLLISION_DATA_15, // META_TILE_TYPE_184 + COLLISION_DATA_15, // META_TILE_TYPE_185 + COLLISION_DATA_15, // META_TILE_TYPE_186 + COLLISION_DATA_15, // META_TILE_TYPE_187 + COLLISION_DATA_15, // META_TILE_TYPE_188 + COLLISION_DATA_15, // META_TILE_TYPE_189 + COLLISION_DATA_15, // META_TILE_TYPE_190 + COLLISION_DATA_15, // META_TILE_TYPE_191 + COLLISION_DATA_15, // META_TILE_TYPE_192 + COLLISION_DATA_15, // META_TILE_TYPE_193 + COLLISION_DATA_39, // META_TILE_TYPE_194 + COLLISION_DATA_15, // META_TILE_TYPE_195 + COLLISION_DATA_15, // META_TILE_TYPE_196 + COLLISION_DATA_255, // META_TILE_TYPE_197 + COLLISION_DATA_39, // META_TILE_TYPE_198 + COLLISION_DATA_15, // META_TILE_TYPE_199 + COLLISION_DATA_15, // META_TILE_TYPE_200 + COLLISION_DATA_15, // META_TILE_TYPE_201 + COLLISION_DATA_15, // META_TILE_TYPE_202 + COLLISION_DATA_15, // META_TILE_TYPE_203 + COLLISION_DATA_15, // META_TILE_TYPE_204 + COLLISION_DATA_15, // META_TILE_TYPE_205 + COLLISION_DATA_15, // META_TILE_TYPE_206 + COLLISION_DATA_15, // META_TILE_TYPE_207 + COLLISION_DATA_15, // META_TILE_TYPE_208 + COLLISION_DATA_15, // META_TILE_TYPE_209 + COLLISION_DATA_39, // META_TILE_TYPE_210 + COLLISION_DATA_39, // META_TILE_TYPE_211 + COLLISION_DATA_15, // META_TILE_TYPE_212 + COLLISION_DATA_15, // META_TILE_TYPE_213 + COLLISION_DATA_39, // META_TILE_TYPE_214 + COLLISION_DATA_15, // META_TILE_TYPE_215 + COLLISION_DATA_15, // META_TILE_TYPE_216 + COLLISION_DATA_15, // META_TILE_TYPE_217 + COLLISION_DATA_15, // META_TILE_TYPE_218 + COLLISION_DATA_15, // META_TILE_TYPE_219 + COLLISION_DATA_15, // META_TILE_TYPE_220 + COLLISION_DATA_15, // META_TILE_TYPE_221 + COLLISION_DATA_15, // META_TILE_TYPE_222 + COLLISION_DATA_15, // META_TILE_TYPE_223 + COLLISION_DATA_15, // META_TILE_TYPE_224 + COLLISION_DATA_15, // META_TILE_TYPE_225 + COLLISION_DATA_35, // META_TILE_TYPE_226 + COLLISION_DATA_15, // META_TILE_TYPE_227 + COLLISION_DATA_15, // META_TILE_TYPE_228 + COLLISION_DATA_35, // META_TILE_TYPE_229 + COLLISION_DATA_35, // META_TILE_TYPE_230 + COLLISION_DATA_15, // META_TILE_TYPE_231 + COLLISION_DATA_15, // META_TILE_TYPE_232 + COLLISION_DATA_15, // META_TILE_TYPE_233 + COLLISION_DATA_15, // META_TILE_TYPE_234 + COLLISION_DATA_15, // META_TILE_TYPE_235 + COLLISION_DATA_15, // META_TILE_TYPE_236 + COLLISION_DATA_15, // META_TILE_TYPE_237 + COLLISION_DATA_15, // META_TILE_TYPE_238 + COLLISION_DATA_15, // META_TILE_TYPE_239 + COLLISION_DATA_15, // META_TILE_TYPE_240 + COLLISION_DATA_15, // META_TILE_TYPE_241 + COLLISION_DATA_35, // META_TILE_TYPE_242 + COLLISION_DATA_35, // META_TILE_TYPE_243 + COLLISION_DATA_15, // META_TILE_TYPE_244 + COLLISION_DATA_15, // META_TILE_TYPE_245 + COLLISION_DATA_35, // META_TILE_TYPE_246 + COLLISION_DATA_15, // META_TILE_TYPE_247 + COLLISION_DATA_15, // META_TILE_TYPE_248 + COLLISION_DATA_15, // META_TILE_TYPE_249 + COLLISION_DATA_15, // META_TILE_TYPE_250 + COLLISION_DATA_15, // META_TILE_TYPE_251 + COLLISION_DATA_15, // META_TILE_TYPE_252 + COLLISION_DATA_15, // META_TILE_TYPE_253 + COLLISION_DATA_15, // META_TILE_TYPE_254 + COLLISION_DATA_15, // META_TILE_TYPE_255 + COLLISION_DATA_15, // META_TILE_TYPE_256 + COLLISION_DATA_15, // META_TILE_TYPE_257 + COLLISION_DATA_15, // META_TILE_TYPE_258 + COLLISION_DATA_15, // META_TILE_TYPE_259 + COLLISION_DATA_15, // META_TILE_TYPE_260 + COLLISION_DATA_15, // META_TILE_TYPE_261 + COLLISION_DATA_15, // META_TILE_TYPE_262 + COLLISION_DATA_15, // META_TILE_TYPE_263 + COLLISION_DATA_15, // META_TILE_TYPE_264 + COLLISION_DATA_15, // META_TILE_TYPE_265 + COLLISION_DATA_15, // META_TILE_TYPE_266 + COLLISION_DATA_15, // META_TILE_TYPE_267 + COLLISION_DATA_15, // META_TILE_TYPE_268 + COLLISION_DATA_15, // META_TILE_TYPE_269 + COLLISION_DATA_15, // META_TILE_TYPE_270 + COLLISION_DATA_15, // META_TILE_TYPE_271 + COLLISION_DATA_15, // META_TILE_TYPE_272 + COLLISION_DATA_15, // META_TILE_TYPE_273 + COLLISION_DATA_15, // META_TILE_TYPE_274 + COLLISION_DATA_15, // META_TILE_TYPE_275 + COLLISION_DATA_15, // META_TILE_TYPE_276 + COLLISION_DATA_15, // META_TILE_TYPE_277 + COLLISION_DATA_15, // META_TILE_TYPE_278 + COLLISION_DATA_15, // META_TILE_TYPE_279 + COLLISION_DATA_15, // META_TILE_TYPE_280 + COLLISION_DATA_15, // META_TILE_TYPE_281 + COLLISION_DATA_15, // META_TILE_TYPE_282 + COLLISION_DATA_15, // META_TILE_TYPE_283 + COLLISION_DATA_15, // META_TILE_TYPE_284 + COLLISION_DATA_15, // META_TILE_TYPE_285 + COLLISION_DATA_15, // META_TILE_TYPE_286 + COLLISION_DATA_15, // META_TILE_TYPE_287 + COLLISION_DATA_15, // META_TILE_TYPE_288 + COLLISION_DATA_15, // META_TILE_TYPE_289 + COLLISION_DATA_15, // META_TILE_TYPE_290 + COLLISION_DATA_15, // META_TILE_TYPE_291 + COLLISION_DATA_15, // META_TILE_TYPE_292 + COLLISION_DATA_15, // META_TILE_TYPE_293 + COLLISION_DATA_15, // META_TILE_TYPE_294 + COLLISION_DATA_15, // META_TILE_TYPE_295 + COLLISION_DATA_15, // META_TILE_TYPE_296 + COLLISION_DATA_15, // META_TILE_TYPE_297 + COLLISION_DATA_15, // META_TILE_TYPE_298 + COLLISION_DATA_15, // META_TILE_TYPE_299 + COLLISION_DATA_15, // META_TILE_TYPE_300 + COLLISION_DATA_15, // META_TILE_TYPE_301 + COLLISION_DATA_15, // META_TILE_TYPE_302 + COLLISION_DATA_15, // META_TILE_TYPE_303 + COLLISION_DATA_15, // META_TILE_TYPE_304 + COLLISION_DATA_15, // META_TILE_TYPE_305 + COLLISION_DATA_15, // META_TILE_TYPE_306 + COLLISION_DATA_15, // META_TILE_TYPE_307 + COLLISION_DATA_15, // META_TILE_TYPE_308 + COLLISION_DATA_15, // META_TILE_TYPE_309 + COLLISION_DATA_15, // META_TILE_TYPE_310 + COLLISION_DATA_15, // META_TILE_TYPE_311 + COLLISION_DATA_15, // META_TILE_TYPE_312 + COLLISION_DATA_15, // META_TILE_TYPE_313 + COLLISION_DATA_15, // META_TILE_TYPE_314 + COLLISION_DATA_15, // META_TILE_TYPE_315 + COLLISION_DATA_15, // META_TILE_TYPE_316 + COLLISION_DATA_15, // META_TILE_TYPE_317 + COLLISION_DATA_15, // META_TILE_TYPE_318 + COLLISION_DATA_15, // META_TILE_TYPE_319 + COLLISION_DATA_15, // META_TILE_TYPE_320 + COLLISION_DATA_15, // META_TILE_TYPE_321 + COLLISION_DATA_15, // META_TILE_TYPE_322 + COLLISION_DATA_15, // META_TILE_TYPE_323 + COLLISION_DATA_15, // META_TILE_TYPE_324 + COLLISION_DATA_15, // META_TILE_TYPE_325 + COLLISION_DATA_15, // META_TILE_TYPE_326 + COLLISION_DATA_15, // META_TILE_TYPE_327 + COLLISION_DATA_15, // META_TILE_TYPE_328 + COLLISION_DATA_0, // META_TILE_TYPE_329 + COLLISION_DATA_0, // META_TILE_TYPE_330 + COLLISION_DATA_0, // META_TILE_TYPE_331 + COLLISION_DATA_0, // META_TILE_TYPE_332 + COLLISION_DATA_0, // META_TILE_TYPE_333 + COLLISION_DATA_0, // META_TILE_TYPE_334 + COLLISION_DATA_0, // META_TILE_TYPE_335 + COLLISION_DATA_0, // META_TILE_TYPE_336 + COLLISION_DATA_0, // META_TILE_TYPE_337 + COLLISION_DATA_0, // META_TILE_TYPE_338 + COLLISION_DATA_0, // META_TILE_TYPE_339 + COLLISION_DATA_0, // META_TILE_TYPE_340 + COLLISION_DATA_0, // META_TILE_TYPE_341 + COLLISION_DATA_0, // META_TILE_TYPE_342 + COLLISION_DATA_0, // META_TILE_TYPE_343 + COLLISION_DATA_0, // META_TILE_TYPE_344 + COLLISION_DATA_0, // META_TILE_TYPE_345 + COLLISION_DATA_0, // META_TILE_TYPE_346 + COLLISION_DATA_15, // META_TILE_TYPE_347 + COLLISION_DATA_15, // META_TILE_TYPE_348 + COLLISION_DATA_15, // META_TILE_TYPE_349 + COLLISION_DATA_15, // META_TILE_TYPE_350 + COLLISION_DATA_15, // META_TILE_TYPE_351 + COLLISION_DATA_15, // META_TILE_TYPE_352 + COLLISION_DATA_95, // META_TILE_TYPE_353 + COLLISION_DATA_255, // META_TILE_TYPE_354 + COLLISION_DATA_255, // META_TILE_TYPE_355 + COLLISION_DATA_15, // META_TILE_TYPE_356 + COLLISION_DATA_15, // META_TILE_TYPE_357 + COLLISION_DATA_21, // META_TILE_TYPE_358 + COLLISION_DATA_15, // META_TILE_TYPE_359 + COLLISION_DATA_0, // META_TILE_TYPE_360 + COLLISION_DATA_0, // META_TILE_TYPE_361 + COLLISION_DATA_0, // META_TILE_TYPE_362 + COLLISION_DATA_255, // META_TILE_TYPE_363 + COLLISION_DATA_12, // META_TILE_TYPE_364 + COLLISION_DATA_0, // META_TILE_TYPE_365 + COLLISION_DATA_0, // META_TILE_TYPE_366 + COLLISION_DATA_12, // META_TILE_TYPE_367 + COLLISION_DATA_12, // META_TILE_TYPE_368 + COLLISION_DATA_66, // META_TILE_TYPE_369 + COLLISION_DATA_96, // META_TILE_TYPE_370 + COLLISION_DATA_15, // META_TILE_TYPE_371 + COLLISION_DATA_29, // META_TILE_TYPE_372 + COLLISION_DATA_255, // META_TILE_TYPE_373 + COLLISION_DATA_15, // META_TILE_TYPE_374 + COLLISION_DATA_15, // META_TILE_TYPE_375 + COLLISION_DATA_15, // META_TILE_TYPE_376 + COLLISION_DATA_0, // META_TILE_TYPE_377 + COLLISION_DATA_15, // META_TILE_TYPE_378 + COLLISION_DATA_15, // META_TILE_TYPE_379 + COLLISION_DATA_15, // META_TILE_TYPE_380 + COLLISION_DATA_15, // META_TILE_TYPE_381 + COLLISION_DATA_10, // META_TILE_TYPE_382 + COLLISION_DATA_5, // META_TILE_TYPE_383 + COLLISION_DATA_10, // META_TILE_TYPE_384 + COLLISION_DATA_5, // META_TILE_TYPE_385 + COLLISION_DATA_1, // META_TILE_TYPE_386 + COLLISION_DATA_1, // META_TILE_TYPE_387 + COLLISION_DATA_1, // META_TILE_TYPE_388 + COLLISION_DATA_0, // META_TILE_TYPE_389 + COLLISION_DATA_0, // META_TILE_TYPE_390 + COLLISION_DATA_0, // META_TILE_TYPE_391 + COLLISION_DATA_0, // META_TILE_TYPE_392 + COLLISION_DATA_0, // META_TILE_TYPE_393 + COLLISION_DATA_0, // META_TILE_TYPE_394 + COLLISION_DATA_5, // META_TILE_TYPE_395 + COLLISION_DATA_15, // META_TILE_TYPE_396 + COLLISION_DATA_10, // META_TILE_TYPE_397 + COLLISION_DATA_0, // META_TILE_TYPE_398 + COLLISION_DATA_0, // META_TILE_TYPE_399 + COLLISION_DATA_5, // META_TILE_TYPE_400 + COLLISION_DATA_15, // META_TILE_TYPE_401 + COLLISION_DATA_10, // META_TILE_TYPE_402 + COLLISION_DATA_0, // META_TILE_TYPE_403 + COLLISION_DATA_0, // META_TILE_TYPE_404 + COLLISION_DATA_0, // META_TILE_TYPE_405 + COLLISION_DATA_0, // META_TILE_TYPE_406 + COLLISION_DATA_0, // META_TILE_TYPE_407 + COLLISION_DATA_0, // META_TILE_TYPE_408 + COLLISION_DATA_0, // META_TILE_TYPE_409 + COLLISION_DATA_0, // META_TILE_TYPE_410 + COLLISION_DATA_0, // META_TILE_TYPE_411 + COLLISION_DATA_5, // META_TILE_TYPE_412 + COLLISION_DATA_0, // META_TILE_TYPE_413 + COLLISION_DATA_10, // META_TILE_TYPE_414 + COLLISION_DATA_4, // META_TILE_TYPE_415 + COLLISION_DATA_12, // META_TILE_TYPE_416 + COLLISION_DATA_8, // META_TILE_TYPE_417 + COLLISION_DATA_0, // META_TILE_TYPE_418 + COLLISION_DATA_0, // META_TILE_TYPE_419 + COLLISION_DATA_0, // META_TILE_TYPE_420 + COLLISION_DATA_5, // META_TILE_TYPE_421 + COLLISION_DATA_0, // META_TILE_TYPE_422 + COLLISION_DATA_10, // META_TILE_TYPE_423 + COLLISION_DATA_4, // META_TILE_TYPE_424 + COLLISION_DATA_12, // META_TILE_TYPE_425 + COLLISION_DATA_8, // META_TILE_TYPE_426 + COLLISION_DATA_15, // META_TILE_TYPE_427 + COLLISION_DATA_15, // META_TILE_TYPE_428 + COLLISION_DATA_15, // META_TILE_TYPE_429 + COLLISION_DATA_15, // META_TILE_TYPE_430 + COLLISION_DATA_15, // META_TILE_TYPE_431 + COLLISION_DATA_16, // META_TILE_TYPE_432 + COLLISION_DATA_17, // META_TILE_TYPE_433 + COLLISION_DATA_17, // META_TILE_TYPE_434 + COLLISION_DATA_16, // META_TILE_TYPE_435 + COLLISION_DATA_42, // META_TILE_TYPE_436 + COLLISION_DATA_42, // META_TILE_TYPE_437 + COLLISION_DATA_42, // META_TILE_TYPE_438 + COLLISION_DATA_42, // META_TILE_TYPE_439 + COLLISION_DATA_42, // META_TILE_TYPE_440 + COLLISION_DATA_42, // META_TILE_TYPE_441 + COLLISION_DATA_42, // META_TILE_TYPE_442 + COLLISION_DATA_42, // META_TILE_TYPE_443 + COLLISION_DATA_42, // META_TILE_TYPE_444 + COLLISION_DATA_42, // META_TILE_TYPE_445 + COLLISION_DATA_42, // META_TILE_TYPE_446 + COLLISION_DATA_42, // META_TILE_TYPE_447 + COLLISION_DATA_27, // META_TILE_TYPE_448 + COLLISION_DATA_25, // META_TILE_TYPE_449 + COLLISION_DATA_28, // META_TILE_TYPE_450 + COLLISION_DATA_26, // META_TILE_TYPE_451 + COLLISION_DATA_43, // META_TILE_TYPE_452 + COLLISION_DATA_43, // META_TILE_TYPE_453 + COLLISION_DATA_97, // META_TILE_TYPE_454 + COLLISION_DATA_23, // META_TILE_TYPE_455 + COLLISION_DATA_23, // META_TILE_TYPE_456 + COLLISION_DATA_84, // META_TILE_TYPE_457 + COLLISION_DATA_23, // META_TILE_TYPE_458 + COLLISION_DATA_23, // META_TILE_TYPE_459 + COLLISION_DATA_23, // META_TILE_TYPE_460 + COLLISION_DATA_0, // META_TILE_TYPE_461 + COLLISION_DATA_0, // META_TILE_TYPE_462 + COLLISION_DATA_84, // META_TILE_TYPE_463 + COLLISION_DATA_15, // META_TILE_TYPE_464 + COLLISION_DATA_15, // META_TILE_TYPE_465 + COLLISION_DATA_15, // META_TILE_TYPE_466 + COLLISION_DATA_15, // META_TILE_TYPE_467 + COLLISION_DATA_15, // META_TILE_TYPE_468 + COLLISION_DATA_15, // META_TILE_TYPE_469 + COLLISION_DATA_15, // META_TILE_TYPE_470 + COLLISION_DATA_0, // META_TILE_TYPE_471 + COLLISION_DATA_0, // META_TILE_TYPE_472 + COLLISION_DATA_0, // META_TILE_TYPE_473 + COLLISION_DATA_0, // META_TILE_TYPE_474 + COLLISION_DATA_18, // META_TILE_TYPE_475 + COLLISION_DATA_15, // META_TILE_TYPE_476 + COLLISION_DATA_15, // META_TILE_TYPE_477 + COLLISION_DATA_19, // META_TILE_TYPE_478 + COLLISION_DATA_15, // META_TILE_TYPE_479 + COLLISION_DATA_15, // META_TILE_TYPE_480 + COLLISION_DATA_15, // META_TILE_TYPE_481 + COLLISION_DATA_15, // META_TILE_TYPE_482 + COLLISION_DATA_15, // META_TILE_TYPE_483 + COLLISION_DATA_15, // META_TILE_TYPE_484 + COLLISION_DATA_15, // META_TILE_TYPE_485 + COLLISION_DATA_15, // META_TILE_TYPE_486 + COLLISION_DATA_5, // META_TILE_TYPE_487 + COLLISION_DATA_0, // META_TILE_TYPE_488 + COLLISION_DATA_0, // META_TILE_TYPE_489 + COLLISION_DATA_0, // META_TILE_TYPE_490 + COLLISION_DATA_0, // META_TILE_TYPE_491 + COLLISION_DATA_15, // META_TILE_TYPE_492 + COLLISION_DATA_15, // META_TILE_TYPE_493 + COLLISION_DATA_15, // META_TILE_TYPE_494 + COLLISION_DATA_15, // META_TILE_TYPE_495 + COLLISION_DATA_15, // META_TILE_TYPE_496 + COLLISION_DATA_15, // META_TILE_TYPE_497 + COLLISION_DATA_15, // META_TILE_TYPE_498 + COLLISION_DATA_15, // META_TILE_TYPE_499 + COLLISION_DATA_15, // META_TILE_TYPE_500 + COLLISION_DATA_15, // META_TILE_TYPE_501 + COLLISION_DATA_15, // META_TILE_TYPE_502 + COLLISION_DATA_15, // META_TILE_TYPE_503 + COLLISION_DATA_15, // META_TILE_TYPE_504 + COLLISION_DATA_15, // META_TILE_TYPE_505 + COLLISION_DATA_15, // META_TILE_TYPE_506 + COLLISION_DATA_15, // META_TILE_TYPE_507 + COLLISION_DATA_15, // META_TILE_TYPE_508 + COLLISION_DATA_15, // META_TILE_TYPE_509 + COLLISION_DATA_15, // META_TILE_TYPE_510 + COLLISION_DATA_15, // META_TILE_TYPE_511 + COLLISION_DATA_0, // META_TILE_TYPE_512 + COLLISION_DATA_0, // META_TILE_TYPE_513 + COLLISION_DATA_0, // META_TILE_TYPE_514 + COLLISION_DATA_0, // META_TILE_TYPE_515 + COLLISION_DATA_0, // META_TILE_TYPE_516 + COLLISION_DATA_0, // META_TILE_TYPE_517 + COLLISION_DATA_1, // META_TILE_TYPE_518 + COLLISION_DATA_3, // META_TILE_TYPE_519 + COLLISION_DATA_2, // META_TILE_TYPE_520 + COLLISION_DATA_0, // META_TILE_TYPE_521 + COLLISION_DATA_0, // META_TILE_TYPE_522 + COLLISION_DATA_5, // META_TILE_TYPE_523 + COLLISION_DATA_15, // META_TILE_TYPE_524 + COLLISION_DATA_10, // META_TILE_TYPE_525 + COLLISION_DATA_0, // META_TILE_TYPE_526 + COLLISION_DATA_0, // META_TILE_TYPE_527 + COLLISION_DATA_0, // META_TILE_TYPE_528 + COLLISION_DATA_0, // META_TILE_TYPE_529 + COLLISION_DATA_0, // META_TILE_TYPE_530 + COLLISION_DATA_0, // META_TILE_TYPE_531 + COLLISION_DATA_0, // META_TILE_TYPE_532 + COLLISION_DATA_0, // META_TILE_TYPE_533 + COLLISION_DATA_0, // META_TILE_TYPE_534 + COLLISION_DATA_0, // META_TILE_TYPE_535 + COLLISION_DATA_0, // META_TILE_TYPE_536 + COLLISION_DATA_15, // META_TILE_TYPE_537 + COLLISION_DATA_15, // META_TILE_TYPE_538 + COLLISION_DATA_71, // META_TILE_TYPE_539 + COLLISION_DATA_15, // META_TILE_TYPE_540 + COLLISION_DATA_15, // META_TILE_TYPE_541 + COLLISION_DATA_15, // META_TILE_TYPE_542 + COLLISION_DATA_1, // META_TILE_TYPE_543 + COLLISION_DATA_3, // META_TILE_TYPE_544 + COLLISION_DATA_2, // META_TILE_TYPE_545 + COLLISION_DATA_15, // META_TILE_TYPE_546 + COLLISION_DATA_15, // META_TILE_TYPE_547 + COLLISION_DATA_5, // META_TILE_TYPE_548 + COLLISION_DATA_15, // META_TILE_TYPE_549 + COLLISION_DATA_10, // META_TILE_TYPE_550 + COLLISION_DATA_15, // META_TILE_TYPE_551 + COLLISION_DATA_15, // META_TILE_TYPE_552 + COLLISION_DATA_4, // META_TILE_TYPE_553 + COLLISION_DATA_0, // META_TILE_TYPE_554 + COLLISION_DATA_8, // META_TILE_TYPE_555 + COLLISION_DATA_15, // META_TILE_TYPE_556 + COLLISION_DATA_12, // META_TILE_TYPE_557 + COLLISION_DATA_12, // META_TILE_TYPE_558 + COLLISION_DATA_0, // META_TILE_TYPE_559 + COLLISION_DATA_12, // META_TILE_TYPE_560 + COLLISION_DATA_12, // META_TILE_TYPE_561 + COLLISION_DATA_48, // META_TILE_TYPE_562 + COLLISION_DATA_48, // META_TILE_TYPE_563 + COLLISION_DATA_48, // META_TILE_TYPE_564 + COLLISION_DATA_48, // META_TILE_TYPE_565 + COLLISION_DATA_48, // META_TILE_TYPE_566 + COLLISION_DATA_48, // META_TILE_TYPE_567 + COLLISION_DATA_48, // META_TILE_TYPE_568 + COLLISION_DATA_48, // META_TILE_TYPE_569 + COLLISION_DATA_48, // META_TILE_TYPE_570 + COLLISION_DATA_48, // META_TILE_TYPE_571 + COLLISION_DATA_48, // META_TILE_TYPE_572 + COLLISION_DATA_48, // META_TILE_TYPE_573 + COLLISION_DATA_48, // META_TILE_TYPE_574 + COLLISION_DATA_48, // META_TILE_TYPE_575 + COLLISION_DATA_48, // META_TILE_TYPE_576 + COLLISION_DATA_48, // META_TILE_TYPE_577 + COLLISION_DATA_48, // META_TILE_TYPE_578 + COLLISION_DATA_48, // META_TILE_TYPE_579 + COLLISION_DATA_48, // META_TILE_TYPE_580 + COLLISION_DATA_48, // META_TILE_TYPE_581 + COLLISION_DATA_48, // META_TILE_TYPE_582 + COLLISION_DATA_48, // META_TILE_TYPE_583 + COLLISION_DATA_48, // META_TILE_TYPE_584 + COLLISION_DATA_48, // META_TILE_TYPE_585 + COLLISION_DATA_48, // META_TILE_TYPE_586 + COLLISION_DATA_48, // META_TILE_TYPE_587 + COLLISION_DATA_48, // META_TILE_TYPE_588 + COLLISION_DATA_48, // META_TILE_TYPE_589 + COLLISION_DATA_16, // META_TILE_TYPE_590 + COLLISION_DATA_15, // META_TILE_TYPE_591 + COLLISION_DATA_17, // META_TILE_TYPE_592 + COLLISION_DATA_15, // META_TILE_TYPE_593 + COLLISION_DATA_15, // META_TILE_TYPE_594 + COLLISION_DATA_15, // META_TILE_TYPE_595 + COLLISION_DATA_15, // META_TILE_TYPE_596 + COLLISION_DATA_15, // META_TILE_TYPE_597 + COLLISION_DATA_15, // META_TILE_TYPE_598 + COLLISION_DATA_0, // META_TILE_TYPE_599 + COLLISION_DATA_0, // META_TILE_TYPE_600 + COLLISION_DATA_0, // META_TILE_TYPE_601 + COLLISION_DATA_0, // META_TILE_TYPE_602 + COLLISION_DATA_0, // META_TILE_TYPE_603 + COLLISION_DATA_0, // META_TILE_TYPE_604 + COLLISION_DATA_0, // META_TILE_TYPE_605 + COLLISION_DATA_0, // META_TILE_TYPE_606 + COLLISION_DATA_0, // META_TILE_TYPE_607 + COLLISION_DATA_5, // META_TILE_TYPE_608 + COLLISION_DATA_15, // META_TILE_TYPE_609 + COLLISION_DATA_0, // META_TILE_TYPE_610 + COLLISION_DATA_0, // META_TILE_TYPE_611 + COLLISION_DATA_5, // META_TILE_TYPE_612 + COLLISION_DATA_15, // META_TILE_TYPE_613 + COLLISION_DATA_15, // META_TILE_TYPE_614 + COLLISION_DATA_15, // META_TILE_TYPE_615 + COLLISION_DATA_15, // META_TILE_TYPE_616 + COLLISION_DATA_15, // META_TILE_TYPE_617 + COLLISION_DATA_15, // META_TILE_TYPE_618 + COLLISION_DATA_15, // META_TILE_TYPE_619 + COLLISION_DATA_15, // META_TILE_TYPE_620 + COLLISION_DATA_39, // META_TILE_TYPE_621 + COLLISION_DATA_15, // META_TILE_TYPE_622 + COLLISION_DATA_15, // META_TILE_TYPE_623 + COLLISION_DATA_39, // META_TILE_TYPE_624 + COLLISION_DATA_255, // META_TILE_TYPE_625 + COLLISION_DATA_15, // META_TILE_TYPE_626 + COLLISION_DATA_15, // META_TILE_TYPE_627 + COLLISION_DATA_15, // META_TILE_TYPE_628 + COLLISION_DATA_15, // META_TILE_TYPE_629 + COLLISION_DATA_15, // META_TILE_TYPE_630 + COLLISION_DATA_15, // META_TILE_TYPE_631 + COLLISION_DATA_15, // META_TILE_TYPE_632 + COLLISION_DATA_15, // META_TILE_TYPE_633 + COLLISION_DATA_15, // META_TILE_TYPE_634 + COLLISION_DATA_15, // META_TILE_TYPE_635 + COLLISION_DATA_15, // META_TILE_TYPE_636 + COLLISION_DATA_39, // META_TILE_TYPE_637 + COLLISION_DATA_15, // META_TILE_TYPE_638 + COLLISION_DATA_15, // META_TILE_TYPE_639 + COLLISION_DATA_39, // META_TILE_TYPE_640 + COLLISION_DATA_255, // META_TILE_TYPE_641 + COLLISION_DATA_15, // META_TILE_TYPE_642 + COLLISION_DATA_15, // META_TILE_TYPE_643 + COLLISION_DATA_15, // META_TILE_TYPE_644 + COLLISION_DATA_15, // META_TILE_TYPE_645 + COLLISION_DATA_255, // META_TILE_TYPE_646 + COLLISION_DATA_255, // META_TILE_TYPE_647 + COLLISION_DATA_255, // META_TILE_TYPE_648 + COLLISION_DATA_255, // META_TILE_TYPE_649 + COLLISION_DATA_255, // META_TILE_TYPE_650 + COLLISION_DATA_255, // META_TILE_TYPE_651 + COLLISION_DATA_15, // META_TILE_TYPE_652 + COLLISION_DATA_39, // META_TILE_TYPE_653 + COLLISION_DATA_15, // META_TILE_TYPE_654 + COLLISION_DATA_15, // META_TILE_TYPE_655 + COLLISION_DATA_255, // META_TILE_TYPE_656 + COLLISION_DATA_39, // META_TILE_TYPE_657 + COLLISION_DATA_15, // META_TILE_TYPE_658 + COLLISION_DATA_15, // META_TILE_TYPE_659 + COLLISION_DATA_15, // META_TILE_TYPE_660 + COLLISION_DATA_15, // META_TILE_TYPE_661 + COLLISION_DATA_15, // META_TILE_TYPE_662 + COLLISION_DATA_15, // META_TILE_TYPE_663 + COLLISION_DATA_15, // META_TILE_TYPE_664 + COLLISION_DATA_15, // META_TILE_TYPE_665 + COLLISION_DATA_15, // META_TILE_TYPE_666 + COLLISION_DATA_15, // META_TILE_TYPE_667 + COLLISION_DATA_15, // META_TILE_TYPE_668 + COLLISION_DATA_15, // META_TILE_TYPE_669 + COLLISION_DATA_15, // META_TILE_TYPE_670 + COLLISION_DATA_15, // META_TILE_TYPE_671 + COLLISION_DATA_15, // META_TILE_TYPE_672 + COLLISION_DATA_15, // META_TILE_TYPE_673 + COLLISION_DATA_15, // META_TILE_TYPE_674 + COLLISION_DATA_15, // META_TILE_TYPE_675 + COLLISION_DATA_15, // META_TILE_TYPE_676 + COLLISION_DATA_15, // META_TILE_TYPE_677 + COLLISION_DATA_15, // META_TILE_TYPE_678 + COLLISION_DATA_15, // META_TILE_TYPE_679 + COLLISION_DATA_15, // META_TILE_TYPE_680 + COLLISION_DATA_15, // META_TILE_TYPE_681 + COLLISION_DATA_15, // META_TILE_TYPE_682 + COLLISION_DATA_15, // META_TILE_TYPE_683 + COLLISION_DATA_15, // META_TILE_TYPE_684 + COLLISION_DATA_15, // META_TILE_TYPE_685 + COLLISION_DATA_15, // META_TILE_TYPE_686 + COLLISION_DATA_15, // META_TILE_TYPE_687 + COLLISION_DATA_15, // META_TILE_TYPE_688 + COLLISION_DATA_15, // META_TILE_TYPE_689 + COLLISION_DATA_15, // META_TILE_TYPE_690 + COLLISION_DATA_15, // META_TILE_TYPE_691 + COLLISION_DATA_15, // META_TILE_TYPE_692 + COLLISION_DATA_15, // META_TILE_TYPE_693 + COLLISION_DATA_0, // META_TILE_TYPE_694 + COLLISION_DATA_0, // META_TILE_TYPE_695 + COLLISION_DATA_0, // META_TILE_TYPE_696 + COLLISION_DATA_0, // META_TILE_TYPE_697 + COLLISION_DATA_0, // META_TILE_TYPE_698 + COLLISION_DATA_0, // META_TILE_TYPE_699 + COLLISION_DATA_0, // META_TILE_TYPE_700 + COLLISION_DATA_0, // META_TILE_TYPE_701 + COLLISION_DATA_0, // META_TILE_TYPE_702 + COLLISION_DATA_0, // META_TILE_TYPE_703 + COLLISION_DATA_0, // META_TILE_TYPE_704 + COLLISION_DATA_0, // META_TILE_TYPE_705 + COLLISION_DATA_0, // META_TILE_TYPE_706 + COLLISION_DATA_0, // META_TILE_TYPE_707 + COLLISION_DATA_0, // META_TILE_TYPE_708 + COLLISION_DATA_0, // META_TILE_TYPE_709 + COLLISION_DATA_0, // META_TILE_TYPE_710 + COLLISION_DATA_0, // META_TILE_TYPE_711 + COLLISION_DATA_0, // META_TILE_TYPE_712 + COLLISION_DATA_0, // META_TILE_TYPE_713 + COLLISION_DATA_0, // META_TILE_TYPE_714 + COLLISION_DATA_0, // META_TILE_TYPE_715 + COLLISION_DATA_0, // META_TILE_TYPE_716 + COLLISION_DATA_0, // META_TILE_TYPE_717 + COLLISION_DATA_0, // META_TILE_TYPE_718 + COLLISION_DATA_0, // META_TILE_TYPE_719 + COLLISION_DATA_0, // META_TILE_TYPE_720 + COLLISION_DATA_0, // META_TILE_TYPE_721 + COLLISION_DATA_0, // META_TILE_TYPE_722 + COLLISION_DATA_0, // META_TILE_TYPE_723 + COLLISION_DATA_0, // META_TILE_TYPE_724 + COLLISION_DATA_0, // META_TILE_TYPE_725 + COLLISION_DATA_0, // META_TILE_TYPE_726 + COLLISION_DATA_0, // META_TILE_TYPE_727 + COLLISION_DATA_0, // META_TILE_TYPE_728 + COLLISION_DATA_0, // META_TILE_TYPE_729 + COLLISION_DATA_0, // META_TILE_TYPE_730 + COLLISION_DATA_0, // META_TILE_TYPE_731 + COLLISION_DATA_0, // META_TILE_TYPE_732 + COLLISION_DATA_0, // META_TILE_TYPE_733 + COLLISION_DATA_0, // META_TILE_TYPE_734 + COLLISION_DATA_0, // META_TILE_TYPE_735 + COLLISION_DATA_0, // META_TILE_TYPE_736 + COLLISION_DATA_0, // META_TILE_TYPE_737 + COLLISION_DATA_0, // META_TILE_TYPE_738 + COLLISION_DATA_0, // META_TILE_TYPE_739 + COLLISION_DATA_0, // META_TILE_TYPE_740 + COLLISION_DATA_0, // META_TILE_TYPE_741 + COLLISION_DATA_0, // META_TILE_TYPE_742 + COLLISION_DATA_0, // META_TILE_TYPE_743 + COLLISION_DATA_0, // META_TILE_TYPE_744 + COLLISION_DATA_0, // META_TILE_TYPE_745 + COLLISION_DATA_0, // META_TILE_TYPE_746 + COLLISION_DATA_0, // META_TILE_TYPE_747 + COLLISION_DATA_0, // META_TILE_TYPE_748 + COLLISION_DATA_0, // META_TILE_TYPE_749 + COLLISION_DATA_0, // META_TILE_TYPE_750 + COLLISION_DATA_0, // META_TILE_TYPE_751 + COLLISION_DATA_0, // META_TILE_TYPE_752 + COLLISION_DATA_0, // META_TILE_TYPE_753 + COLLISION_DATA_3, // META_TILE_TYPE_754 + COLLISION_DATA_0, // META_TILE_TYPE_755 + COLLISION_DATA_0, // META_TILE_TYPE_756 + COLLISION_DATA_0, // META_TILE_TYPE_757 + COLLISION_DATA_0, // META_TILE_TYPE_758 + COLLISION_DATA_0, // META_TILE_TYPE_759 + COLLISION_DATA_0, // META_TILE_TYPE_760 + COLLISION_DATA_0, // META_TILE_TYPE_761 + COLLISION_DATA_5, // META_TILE_TYPE_762 + COLLISION_DATA_0, // META_TILE_TYPE_763 + COLLISION_DATA_10, // META_TILE_TYPE_764 + COLLISION_DATA_4, // META_TILE_TYPE_765 + COLLISION_DATA_12, // META_TILE_TYPE_766 + COLLISION_DATA_8, // META_TILE_TYPE_767 + COLLISION_DATA_70, // META_TILE_TYPE_768 + COLLISION_DATA_75, // META_TILE_TYPE_769 + COLLISION_DATA_74, // META_TILE_TYPE_770 + COLLISION_DATA_72, // META_TILE_TYPE_771 + COLLISION_DATA_71, // META_TILE_TYPE_772 + COLLISION_DATA_96, // META_TILE_TYPE_773 + COLLISION_DATA_98, // META_TILE_TYPE_774 + COLLISION_DATA_97, // META_TILE_TYPE_775 + COLLISION_DATA_99, // META_TILE_TYPE_776 + COLLISION_DATA_100, // META_TILE_TYPE_777 + COLLISION_DATA_102, // META_TILE_TYPE_778 + COLLISION_DATA_15, // META_TILE_TYPE_779 + COLLISION_DATA_80, // META_TILE_TYPE_780 + COLLISION_DATA_48, // META_TILE_TYPE_781 + COLLISION_DATA_48, // META_TILE_TYPE_782 + COLLISION_DATA_255, // META_TILE_TYPE_783 + COLLISION_DATA_0, // META_TILE_TYPE_784 + COLLISION_DATA_255, // META_TILE_TYPE_785 + COLLISION_DATA_0, // META_TILE_TYPE_786 + COLLISION_DATA_0, // META_TILE_TYPE_787 + COLLISION_DATA_0, // META_TILE_TYPE_788 + COLLISION_DATA_0, // META_TILE_TYPE_789 + COLLISION_DATA_255, // META_TILE_TYPE_790 + COLLISION_DATA_0, // META_TILE_TYPE_791 + COLLISION_DATA_0, // META_TILE_TYPE_792 + COLLISION_DATA_37, // META_TILE_TYPE_793 + COLLISION_DATA_15, // META_TILE_TYPE_794 + COLLISION_DATA_255, // META_TILE_TYPE_795 + COLLISION_DATA_255, // META_TILE_TYPE_796 + COLLISION_DATA_255, // META_TILE_TYPE_797 + COLLISION_DATA_255, // META_TILE_TYPE_798 + COLLISION_DATA_255, // META_TILE_TYPE_799 + COLLISION_DATA_255, // META_TILE_TYPE_800 + COLLISION_DATA_0, // META_TILE_TYPE_801 + COLLISION_DATA_0, // META_TILE_TYPE_802 + COLLISION_DATA_33, // META_TILE_TYPE_803 + COLLISION_DATA_33, // META_TILE_TYPE_804 + COLLISION_DATA_33, // META_TILE_TYPE_805 + COLLISION_DATA_33, // META_TILE_TYPE_806 + COLLISION_DATA_33, // META_TILE_TYPE_807 + COLLISION_DATA_33, // META_TILE_TYPE_808 + COLLISION_DATA_33, // META_TILE_TYPE_809 + COLLISION_DATA_33, // META_TILE_TYPE_810 + COLLISION_DATA_33, // META_TILE_TYPE_811 + COLLISION_DATA_33, // META_TILE_TYPE_812 + COLLISION_DATA_33, // META_TILE_TYPE_813 + COLLISION_DATA_33, // META_TILE_TYPE_814 + COLLISION_DATA_33, // META_TILE_TYPE_815 + COLLISION_DATA_33, // META_TILE_TYPE_816 + COLLISION_DATA_33, // META_TILE_TYPE_817 + COLLISION_DATA_33, // META_TILE_TYPE_818 + COLLISION_DATA_33, // META_TILE_TYPE_819 + COLLISION_DATA_33, // META_TILE_TYPE_820 + COLLISION_DATA_33, // META_TILE_TYPE_821 + COLLISION_DATA_33, // META_TILE_TYPE_822 + COLLISION_DATA_33, // META_TILE_TYPE_823 + COLLISION_DATA_33, // META_TILE_TYPE_824 + COLLISION_DATA_33, // META_TILE_TYPE_825 + COLLISION_DATA_33, // META_TILE_TYPE_826 + COLLISION_DATA_33, // META_TILE_TYPE_827 + COLLISION_DATA_33, // META_TILE_TYPE_828 + COLLISION_DATA_33, // META_TILE_TYPE_829 + COLLISION_DATA_33, // META_TILE_TYPE_830 + COLLISION_DATA_33, // META_TILE_TYPE_831 + COLLISION_DATA_33, // META_TILE_TYPE_832 + COLLISION_DATA_0, // META_TILE_TYPE_833 + COLLISION_DATA_12, // META_TILE_TYPE_834 + COLLISION_DATA_0, // META_TILE_TYPE_835 + COLLISION_DATA_0, // META_TILE_TYPE_836 + COLLISION_DATA_0, // META_TILE_TYPE_837 + COLLISION_DATA_0, // META_TILE_TYPE_838 + COLLISION_DATA_0, // META_TILE_TYPE_839 + COLLISION_DATA_0, // META_TILE_TYPE_840 + COLLISION_DATA_0, // META_TILE_TYPE_841 + COLLISION_DATA_0, // META_TILE_TYPE_842 + COLLISION_DATA_0, // META_TILE_TYPE_843 + COLLISION_DATA_0, // META_TILE_TYPE_844 + COLLISION_DATA_15, // META_TILE_TYPE_845 + COLLISION_DATA_255, // META_TILE_TYPE_846 + COLLISION_DATA_255, // META_TILE_TYPE_847 + COLLISION_DATA_255, // META_TILE_TYPE_848 + COLLISION_DATA_255, // META_TILE_TYPE_849 + COLLISION_DATA_255, // META_TILE_TYPE_850 + COLLISION_DATA_40, // META_TILE_TYPE_851 + COLLISION_DATA_255, // META_TILE_TYPE_852 + COLLISION_DATA_40, // META_TILE_TYPE_853 + COLLISION_DATA_40, // META_TILE_TYPE_854 + COLLISION_DATA_40, // META_TILE_TYPE_855 + COLLISION_DATA_40, // META_TILE_TYPE_856 + COLLISION_DATA_40, // META_TILE_TYPE_857 + COLLISION_DATA_40, // META_TILE_TYPE_858 + COLLISION_DATA_40, // META_TILE_TYPE_859 + COLLISION_DATA_40, // META_TILE_TYPE_860 + COLLISION_DATA_40, // META_TILE_TYPE_861 + COLLISION_DATA_40, // META_TILE_TYPE_862 + COLLISION_DATA_40, // META_TILE_TYPE_863 + COLLISION_DATA_15, // META_TILE_TYPE_864 + COLLISION_DATA_15, // META_TILE_TYPE_865 + COLLISION_DATA_15, // META_TILE_TYPE_866 + COLLISION_DATA_15, // META_TILE_TYPE_867 + COLLISION_DATA_15, // META_TILE_TYPE_868 + COLLISION_DATA_15, // META_TILE_TYPE_869 + COLLISION_DATA_15, // META_TILE_TYPE_870 + COLLISION_DATA_15, // META_TILE_TYPE_871 + COLLISION_DATA_15, // META_TILE_TYPE_872 + COLLISION_DATA_15, // META_TILE_TYPE_873 + COLLISION_DATA_15, // META_TILE_TYPE_874 + COLLISION_DATA_15, // META_TILE_TYPE_875 + COLLISION_DATA_15, // META_TILE_TYPE_876 + COLLISION_DATA_15, // META_TILE_TYPE_877 + COLLISION_DATA_15, // META_TILE_TYPE_878 + COLLISION_DATA_15, // META_TILE_TYPE_879 + COLLISION_DATA_15, // META_TILE_TYPE_880 + COLLISION_DATA_15, // META_TILE_TYPE_881 + COLLISION_DATA_15, // META_TILE_TYPE_882 + COLLISION_DATA_15, // META_TILE_TYPE_883 + COLLISION_DATA_15, // META_TILE_TYPE_884 + COLLISION_DATA_15, // META_TILE_TYPE_885 + COLLISION_DATA_15, // META_TILE_TYPE_886 + COLLISION_DATA_15, // META_TILE_TYPE_887 + COLLISION_DATA_15, // META_TILE_TYPE_888 + COLLISION_DATA_15, // META_TILE_TYPE_889 + COLLISION_DATA_15, // META_TILE_TYPE_890 + COLLISION_DATA_15, // META_TILE_TYPE_891 + COLLISION_DATA_15, // META_TILE_TYPE_892 + COLLISION_DATA_15, // META_TILE_TYPE_893 + COLLISION_DATA_15, // META_TILE_TYPE_894 + COLLISION_DATA_15, // META_TILE_TYPE_895 + COLLISION_DATA_15, // META_TILE_TYPE_896 + COLLISION_DATA_15, // META_TILE_TYPE_897 + COLLISION_DATA_15, // META_TILE_TYPE_898 + COLLISION_DATA_15, // META_TILE_TYPE_899 + COLLISION_DATA_15, // META_TILE_TYPE_900 + COLLISION_DATA_15, // META_TILE_TYPE_901 + COLLISION_DATA_15, // META_TILE_TYPE_902 + COLLISION_DATA_15, // META_TILE_TYPE_903 + COLLISION_DATA_15, // META_TILE_TYPE_904 + COLLISION_DATA_15, // META_TILE_TYPE_905 + COLLISION_DATA_15, // META_TILE_TYPE_906 + COLLISION_DATA_15, // META_TILE_TYPE_907 + COLLISION_DATA_15, // META_TILE_TYPE_908 + COLLISION_DATA_15, // META_TILE_TYPE_909 + COLLISION_DATA_15, // META_TILE_TYPE_910 + COLLISION_DATA_15, // META_TILE_TYPE_911 + COLLISION_DATA_15, // META_TILE_TYPE_912 + COLLISION_DATA_15, // META_TILE_TYPE_913 + COLLISION_DATA_15, // META_TILE_TYPE_914 + COLLISION_DATA_15, // META_TILE_TYPE_915 + COLLISION_DATA_15, // META_TILE_TYPE_916 + COLLISION_DATA_21, // META_TILE_TYPE_917 + COLLISION_DATA_20, // META_TILE_TYPE_918 + COLLISION_DATA_20, // META_TILE_TYPE_919 + COLLISION_DATA_15, // META_TILE_TYPE_920 + COLLISION_DATA_15, // META_TILE_TYPE_921 + COLLISION_DATA_15, // META_TILE_TYPE_922 + COLLISION_DATA_15, // META_TILE_TYPE_923 + COLLISION_DATA_15, // META_TILE_TYPE_924 + COLLISION_DATA_15, // META_TILE_TYPE_925 + COLLISION_DATA_15, // META_TILE_TYPE_926 + COLLISION_DATA_15, // META_TILE_TYPE_927 + COLLISION_DATA_255, // META_TILE_TYPE_928 + COLLISION_DATA_1, // META_TILE_TYPE_929 + COLLISION_DATA_1, // META_TILE_TYPE_930 + COLLISION_DATA_1, // META_TILE_TYPE_931 + COLLISION_DATA_255, // META_TILE_TYPE_932 + COLLISION_DATA_255, // META_TILE_TYPE_933 + COLLISION_DATA_255, // META_TILE_TYPE_934 + COLLISION_DATA_255, // META_TILE_TYPE_935 + COLLISION_DATA_24, // META_TILE_TYPE_936 + COLLISION_DATA_24, // META_TILE_TYPE_937 + COLLISION_DATA_24, // META_TILE_TYPE_938 + COLLISION_DATA_24, // META_TILE_TYPE_939 + COLLISION_DATA_38, // META_TILE_TYPE_940 + COLLISION_DATA_15, // META_TILE_TYPE_941 + COLLISION_DATA_0, // META_TILE_TYPE_942 + COLLISION_DATA_28, // META_TILE_TYPE_943 + COLLISION_DATA_26, // META_TILE_TYPE_944 + COLLISION_DATA_27, // META_TILE_TYPE_945 + COLLISION_DATA_25, // META_TILE_TYPE_946 + COLLISION_DATA_255, // META_TILE_TYPE_947 + COLLISION_DATA_0, // META_TILE_TYPE_948 + COLLISION_DATA_15, // META_TILE_TYPE_949 + COLLISION_DATA_21, // META_TILE_TYPE_950 + COLLISION_DATA_15, // META_TILE_TYPE_951 + COLLISION_DATA_15, // META_TILE_TYPE_952 + COLLISION_DATA_15, // META_TILE_TYPE_953 + COLLISION_DATA_19, // META_TILE_TYPE_954 + COLLISION_DATA_18, // META_TILE_TYPE_955 + COLLISION_DATA_15, // META_TILE_TYPE_956 + COLLISION_DATA_15, // META_TILE_TYPE_957 + COLLISION_DATA_15, // META_TILE_TYPE_958 + COLLISION_DATA_18, // META_TILE_TYPE_959 + COLLISION_DATA_19, // META_TILE_TYPE_960 + COLLISION_DATA_35, // META_TILE_TYPE_961 + COLLISION_DATA_39, // META_TILE_TYPE_962 + COLLISION_DATA_0, // META_TILE_TYPE_963 + COLLISION_DATA_0, // META_TILE_TYPE_964 + COLLISION_DATA_2, // META_TILE_TYPE_965 + COLLISION_DATA_14, // META_TILE_TYPE_966 + COLLISION_DATA_13, // META_TILE_TYPE_967 + COLLISION_DATA_12, // META_TILE_TYPE_968 + COLLISION_DATA_3, // META_TILE_TYPE_969 + COLLISION_DATA_9, // META_TILE_TYPE_970 + COLLISION_DATA_6, // META_TILE_TYPE_971 + COLLISION_DATA_4, // META_TILE_TYPE_972 + COLLISION_DATA_8, // META_TILE_TYPE_973 + COLLISION_DATA_11, // META_TILE_TYPE_974 + COLLISION_DATA_7, // META_TILE_TYPE_975 + COLLISION_DATA_10, // META_TILE_TYPE_976 + COLLISION_DATA_5, // META_TILE_TYPE_977 + COLLISION_DATA_3, // META_TILE_TYPE_978 + COLLISION_DATA_107, // META_TILE_TYPE_979 + COLLISION_DATA_103, // META_TILE_TYPE_980 + COLLISION_DATA_106, // META_TILE_TYPE_981 + COLLISION_DATA_15, // META_TILE_TYPE_982 + COLLISION_DATA_12, // META_TILE_TYPE_983 + COLLISION_DATA_20, // META_TILE_TYPE_984 + COLLISION_DATA_21, // META_TILE_TYPE_985 + COLLISION_DATA_15, // META_TILE_TYPE_986 + COLLISION_DATA_0, // META_TILE_TYPE_987 + COLLISION_DATA_15, // META_TILE_TYPE_988 + COLLISION_DATA_40, // META_TILE_TYPE_989 + COLLISION_DATA_95, // META_TILE_TYPE_990 + COLLISION_DATA_15, // META_TILE_TYPE_991 + COLLISION_DATA_5, // META_TILE_TYPE_992 + COLLISION_DATA_10, // META_TILE_TYPE_993 + COLLISION_DATA_16, // META_TILE_TYPE_994 + COLLISION_DATA_17, // META_TILE_TYPE_995 + COLLISION_DATA_18, // META_TILE_TYPE_996 + COLLISION_DATA_19, // META_TILE_TYPE_997 + COLLISION_DATA_71, // META_TILE_TYPE_998 + COLLISION_DATA_12, // META_TILE_TYPE_999 + COLLISION_DATA_13, // META_TILE_TYPE_1000 + COLLISION_DATA_14, // META_TILE_TYPE_1001 + COLLISION_DATA_71, // META_TILE_TYPE_1002 + COLLISION_DATA_20, // META_TILE_TYPE_1003 + COLLISION_DATA_92, // META_TILE_TYPE_1004 + COLLISION_DATA_13, // META_TILE_TYPE_1005 + COLLISION_DATA_5, // META_TILE_TYPE_1006 + COLLISION_DATA_4, // META_TILE_TYPE_1007 + COLLISION_DATA_8, // META_TILE_TYPE_1008 + COLLISION_DATA_1, // META_TILE_TYPE_1009 + COLLISION_DATA_2, // META_TILE_TYPE_1010 + COLLISION_DATA_10, // META_TILE_TYPE_1011 + COLLISION_DATA_5, // META_TILE_TYPE_1012 + COLLISION_DATA_10, // META_TILE_TYPE_1013 + COLLISION_DATA_15, // META_TILE_TYPE_1014 + COLLISION_DATA_4, // META_TILE_TYPE_1015 + COLLISION_DATA_8, // META_TILE_TYPE_1016 + COLLISION_DATA_15, // META_TILE_TYPE_1017 + COLLISION_DATA_3, // META_TILE_TYPE_1018 + COLLISION_DATA_2, // META_TILE_TYPE_1019 + COLLISION_DATA_5, // META_TILE_TYPE_1020 + COLLISION_DATA_15, // META_TILE_TYPE_1021 + COLLISION_DATA_10, // META_TILE_TYPE_1022 + COLLISION_DATA_4, // META_TILE_TYPE_1023 + COLLISION_DATA_12, // META_TILE_TYPE_1024 + COLLISION_DATA_8, // META_TILE_TYPE_1025 + COLLISION_DATA_3, // META_TILE_TYPE_1026 + COLLISION_DATA_2, // META_TILE_TYPE_1027 + COLLISION_DATA_5, // META_TILE_TYPE_1028 + COLLISION_DATA_15, // META_TILE_TYPE_1029 + COLLISION_DATA_10, // META_TILE_TYPE_1030 + COLLISION_DATA_4, // META_TILE_TYPE_1031 + COLLISION_DATA_12, // META_TILE_TYPE_1032 + COLLISION_DATA_8, // META_TILE_TYPE_1033 + COLLISION_DATA_92, // META_TILE_TYPE_1034 + COLLISION_DATA_84, // META_TILE_TYPE_1035 + COLLISION_DATA_81, // META_TILE_TYPE_1036 + COLLISION_DATA_83, // META_TILE_TYPE_1037 + COLLISION_DATA_81, // META_TILE_TYPE_1038 + COLLISION_DATA_82, // META_TILE_TYPE_1039 + COLLISION_DATA_83, // META_TILE_TYPE_1040 + COLLISION_DATA_90, // META_TILE_TYPE_1041 + COLLISION_DATA_87, // META_TILE_TYPE_1042 + COLLISION_DATA_91, // META_TILE_TYPE_1043 + COLLISION_DATA_95, // META_TILE_TYPE_1044 + COLLISION_DATA_84, // META_TILE_TYPE_1045 + COLLISION_DATA_88, // META_TILE_TYPE_1046 + COLLISION_DATA_92, // META_TILE_TYPE_1047 + COLLISION_DATA_85, // META_TILE_TYPE_1048 + COLLISION_DATA_93, // META_TILE_TYPE_1049 + COLLISION_DATA_94, // META_TILE_TYPE_1050 + COLLISION_DATA_39, // META_TILE_TYPE_1051 + COLLISION_DATA_88, // META_TILE_TYPE_1052 + COLLISION_DATA_85, // META_TILE_TYPE_1053 + COLLISION_DATA_10, // META_TILE_TYPE_1054 + COLLISION_DATA_83, // META_TILE_TYPE_1055 + COLLISION_DATA_90, // META_TILE_TYPE_1056 + COLLISION_DATA_81, // META_TILE_TYPE_1057 + COLLISION_DATA_15, // META_TILE_TYPE_1058 + COLLISION_DATA_89, // META_TILE_TYPE_1059 + COLLISION_DATA_0, // META_TILE_TYPE_1060 + COLLISION_DATA_0, // META_TILE_TYPE_1061 + COLLISION_DATA_69, // META_TILE_TYPE_1062 + COLLISION_DATA_71, // META_TILE_TYPE_1063 + COLLISION_DATA_67, // META_TILE_TYPE_1064 + COLLISION_DATA_70, // META_TILE_TYPE_1065 + COLLISION_DATA_0, // META_TILE_TYPE_1066 + COLLISION_DATA_3, // META_TILE_TYPE_1067 + COLLISION_DATA_15, // META_TILE_TYPE_1068 + COLLISION_DATA_1, // META_TILE_TYPE_1069 + COLLISION_DATA_2, // META_TILE_TYPE_1070 + COLLISION_DATA_3, // META_TILE_TYPE_1071 + COLLISION_DATA_10, // META_TILE_TYPE_1072 + COLLISION_DATA_12, // META_TILE_TYPE_1073 + COLLISION_DATA_5, // META_TILE_TYPE_1074 + COLLISION_DATA_4, // META_TILE_TYPE_1075 + COLLISION_DATA_8, // META_TILE_TYPE_1076 + COLLISION_DATA_4, // META_TILE_TYPE_1077 + COLLISION_DATA_1, // META_TILE_TYPE_1078 + COLLISION_DATA_3, // META_TILE_TYPE_1079 + COLLISION_DATA_15, // META_TILE_TYPE_1080 + COLLISION_DATA_95, // META_TILE_TYPE_1081 + COLLISION_DATA_97, // META_TILE_TYPE_1082 + COLLISION_DATA_0, // META_TILE_TYPE_1083 + COLLISION_DATA_3, // META_TILE_TYPE_1084 + COLLISION_DATA_28, // META_TILE_TYPE_1085 + COLLISION_DATA_27, // META_TILE_TYPE_1086 + COLLISION_DATA_21, // META_TILE_TYPE_1087 + COLLISION_DATA_69, // META_TILE_TYPE_1088 + COLLISION_DATA_3, // META_TILE_TYPE_1089 + COLLISION_DATA_96, // META_TILE_TYPE_1090 + COLLISION_DATA_12, // META_TILE_TYPE_1091 + COLLISION_DATA_102, // META_TILE_TYPE_1092 + COLLISION_DATA_100, // META_TILE_TYPE_1093 + COLLISION_DATA_101, // META_TILE_TYPE_1094 + COLLISION_DATA_26, // META_TILE_TYPE_1095 + COLLISION_DATA_25, // META_TILE_TYPE_1096 + COLLISION_DATA_18, // META_TILE_TYPE_1097 + COLLISION_DATA_17, // META_TILE_TYPE_1098 + COLLISION_DATA_19, // META_TILE_TYPE_1099 + COLLISION_DATA_16, // META_TILE_TYPE_1100 + COLLISION_DATA_2, // META_TILE_TYPE_1101 + COLLISION_DATA_4, // META_TILE_TYPE_1102 + COLLISION_DATA_8, // META_TILE_TYPE_1103 + COLLISION_DATA_14, // META_TILE_TYPE_1104 + COLLISION_DATA_15, // META_TILE_TYPE_1105 + COLLISION_DATA_11, // META_TILE_TYPE_1106 + COLLISION_DATA_84, // META_TILE_TYPE_1107 + COLLISION_DATA_69, // META_TILE_TYPE_1108 + COLLISION_DATA_68, // META_TILE_TYPE_1109 + COLLISION_DATA_4, // META_TILE_TYPE_1110 + COLLISION_DATA_13, // META_TILE_TYPE_1111 + COLLISION_DATA_0, // META_TILE_TYPE_1112 + COLLISION_DATA_0, // META_TILE_TYPE_1113 + COLLISION_DATA_12, // META_TILE_TYPE_1114 + COLLISION_DATA_12, // META_TILE_TYPE_1115 + COLLISION_DATA_15, // META_TILE_TYPE_1116 + COLLISION_DATA_15, // META_TILE_TYPE_1117 + COLLISION_DATA_10, // META_TILE_TYPE_1118 + COLLISION_DATA_5, // META_TILE_TYPE_1119 + COLLISION_DATA_10, // META_TILE_TYPE_1120 + COLLISION_DATA_5, // META_TILE_TYPE_1121 + COLLISION_DATA_12, // META_TILE_TYPE_1122 + COLLISION_DATA_97, // META_TILE_TYPE_1123 + COLLISION_DATA_10, // META_TILE_TYPE_1124 + COLLISION_DATA_5, // META_TILE_TYPE_1125 + COLLISION_DATA_11, // META_TILE_TYPE_1126 + COLLISION_DATA_7, // META_TILE_TYPE_1127 + COLLISION_DATA_67, // META_TILE_TYPE_1128 + COLLISION_DATA_69, // META_TILE_TYPE_1129 + COLLISION_DATA_1, // META_TILE_TYPE_1130 + COLLISION_DATA_2, // META_TILE_TYPE_1131 + COLLISION_DATA_4, // META_TILE_TYPE_1132 + COLLISION_DATA_8, // META_TILE_TYPE_1133 + COLLISION_DATA_13, // META_TILE_TYPE_1134 + COLLISION_DATA_3, // META_TILE_TYPE_1135 + COLLISION_DATA_3, // META_TILE_TYPE_1136 + COLLISION_DATA_7, // META_TILE_TYPE_1137 + COLLISION_DATA_15, // META_TILE_TYPE_1138 + COLLISION_DATA_3, // META_TILE_TYPE_1139 + COLLISION_DATA_0, // META_TILE_TYPE_1140 + COLLISION_DATA_2, // META_TILE_TYPE_1141 + COLLISION_DATA_84, // META_TILE_TYPE_1142 + COLLISION_DATA_92, // META_TILE_TYPE_1143 + COLLISION_DATA_88, // META_TILE_TYPE_1144 + COLLISION_DATA_12, // META_TILE_TYPE_1145 + COLLISION_DATA_67, // META_TILE_TYPE_1146 + COLLISION_DATA_0, // META_TILE_TYPE_1147 + COLLISION_DATA_0, // META_TILE_TYPE_1148 + COLLISION_DATA_8, // META_TILE_TYPE_1149 + COLLISION_DATA_1, // META_TILE_TYPE_1150 + COLLISION_DATA_2, // META_TILE_TYPE_1151 + COLLISION_DATA_87, // META_TILE_TYPE_1152 + COLLISION_DATA_95, // META_TILE_TYPE_1153 + COLLISION_DATA_91, // META_TILE_TYPE_1154 + COLLISION_DATA_82, // META_TILE_TYPE_1155 + COLLISION_DATA_14, // META_TILE_TYPE_1156 + COLLISION_DATA_18, // META_TILE_TYPE_1157 + COLLISION_DATA_19, // META_TILE_TYPE_1158 + COLLISION_DATA_10, // META_TILE_TYPE_1159 + COLLISION_DATA_5, // META_TILE_TYPE_1160 + COLLISION_DATA_0, // META_TILE_TYPE_1161 + COLLISION_DATA_10, // META_TILE_TYPE_1162 + COLLISION_DATA_5, // META_TILE_TYPE_1163 + COLLISION_DATA_3, // META_TILE_TYPE_1164 + COLLISION_DATA_63, // META_TILE_TYPE_1165 + COLLISION_DATA_19, // META_TILE_TYPE_1166 + COLLISION_DATA_18, // META_TILE_TYPE_1167 + COLLISION_DATA_47, // META_TILE_TYPE_1168 + COLLISION_DATA_46, // META_TILE_TYPE_1169 + COLLISION_DATA_17, // META_TILE_TYPE_1170 + COLLISION_DATA_16, // META_TILE_TYPE_1171 + COLLISION_DATA_11, // META_TILE_TYPE_1172 + COLLISION_DATA_7, // META_TILE_TYPE_1173 + COLLISION_DATA_15, // META_TILE_TYPE_1174 + COLLISION_DATA_0, // META_TILE_TYPE_1175 + COLLISION_DATA_3, // META_TILE_TYPE_1176 + COLLISION_DATA_15, // META_TILE_TYPE_1177 + COLLISION_DATA_15, // META_TILE_TYPE_1178 + COLLISION_DATA_1, // META_TILE_TYPE_1179 + COLLISION_DATA_8, // META_TILE_TYPE_1180 + COLLISION_DATA_12, // META_TILE_TYPE_1181 + COLLISION_DATA_12, // META_TILE_TYPE_1182 + COLLISION_DATA_15, // META_TILE_TYPE_1183 + COLLISION_DATA_1, // META_TILE_TYPE_1184 + COLLISION_DATA_3, // META_TILE_TYPE_1185 + COLLISION_DATA_2, // META_TILE_TYPE_1186 + COLLISION_DATA_5, // META_TILE_TYPE_1187 + COLLISION_DATA_10, // META_TILE_TYPE_1188 + COLLISION_DATA_4, // META_TILE_TYPE_1189 + COLLISION_DATA_12, // META_TILE_TYPE_1190 + COLLISION_DATA_8, // META_TILE_TYPE_1191 + COLLISION_DATA_9, // META_TILE_TYPE_1192 + COLLISION_DATA_39, // META_TILE_TYPE_1193 + COLLISION_DATA_2, // META_TILE_TYPE_1194 + COLLISION_DATA_14, // META_TILE_TYPE_1195 + COLLISION_DATA_13, // META_TILE_TYPE_1196 + COLLISION_DATA_12, // META_TILE_TYPE_1197 + COLLISION_DATA_3, // META_TILE_TYPE_1198 + COLLISION_DATA_6, // META_TILE_TYPE_1199 + COLLISION_DATA_9, // META_TILE_TYPE_1200 + COLLISION_DATA_4, // META_TILE_TYPE_1201 + COLLISION_DATA_8, // META_TILE_TYPE_1202 + COLLISION_DATA_11, // META_TILE_TYPE_1203 + COLLISION_DATA_7, // META_TILE_TYPE_1204 + COLLISION_DATA_10, // META_TILE_TYPE_1205 + COLLISION_DATA_5, // META_TILE_TYPE_1206 + COLLISION_DATA_34, // META_TILE_TYPE_1207 + COLLISION_DATA_35, // META_TILE_TYPE_1208 + COLLISION_DATA_4, // META_TILE_TYPE_1209 + COLLISION_DATA_12, // META_TILE_TYPE_1210 + COLLISION_DATA_3, // META_TILE_TYPE_1211 + COLLISION_DATA_3, // META_TILE_TYPE_1212 + COLLISION_DATA_1, // META_TILE_TYPE_1213 + COLLISION_DATA_5, // META_TILE_TYPE_1214 + COLLISION_DATA_10, // META_TILE_TYPE_1215 + COLLISION_DATA_4, // META_TILE_TYPE_1216 + COLLISION_DATA_8, // META_TILE_TYPE_1217 + COLLISION_DATA_0, // META_TILE_TYPE_1218 + COLLISION_DATA_107, // META_TILE_TYPE_1219 + COLLISION_DATA_103, // META_TILE_TYPE_1220 + COLLISION_DATA_106, // META_TILE_TYPE_1221 + COLLISION_DATA_18, // META_TILE_TYPE_1222 + COLLISION_DATA_45, // META_TILE_TYPE_1223 + COLLISION_DATA_44, // META_TILE_TYPE_1224 + COLLISION_DATA_0, // META_TILE_TYPE_1225 + COLLISION_DATA_15, // META_TILE_TYPE_1226 + COLLISION_DATA_41, // META_TILE_TYPE_1227 + COLLISION_DATA_40, // META_TILE_TYPE_1228 + COLLISION_DATA_0, // META_TILE_TYPE_1229 + COLLISION_DATA_0, // META_TILE_TYPE_1230 + COLLISION_DATA_0, // META_TILE_TYPE_1231 + COLLISION_DATA_0, // META_TILE_TYPE_1232 + COLLISION_DATA_0, // META_TILE_TYPE_1233 + COLLISION_DATA_0, // META_TILE_TYPE_1234 + COLLISION_DATA_0, // META_TILE_TYPE_1235 + COLLISION_DATA_20, // META_TILE_TYPE_1236 + COLLISION_DATA_33, // META_TILE_TYPE_1237 + COLLISION_DATA_39, // META_TILE_TYPE_1238 + COLLISION_DATA_67, // META_TILE_TYPE_1239 + COLLISION_DATA_4, // META_TILE_TYPE_1240 + COLLISION_DATA_8, // META_TILE_TYPE_1241 + COLLISION_DATA_12, // META_TILE_TYPE_1242 + COLLISION_DATA_3, // META_TILE_TYPE_1243 + COLLISION_DATA_3, // META_TILE_TYPE_1244 + COLLISION_DATA_1, // META_TILE_TYPE_1245 + COLLISION_DATA_2, // META_TILE_TYPE_1246 + COLLISION_DATA_0, // META_TILE_TYPE_1247 + COLLISION_DATA_12, // META_TILE_TYPE_1248 + COLLISION_DATA_3, // META_TILE_TYPE_1249 + COLLISION_DATA_2, // META_TILE_TYPE_1250 + COLLISION_DATA_5, // META_TILE_TYPE_1251 + COLLISION_DATA_10, // META_TILE_TYPE_1252 + COLLISION_DATA_14, // META_TILE_TYPE_1253 + COLLISION_DATA_13, // META_TILE_TYPE_1254 + COLLISION_DATA_4, // META_TILE_TYPE_1255 + COLLISION_DATA_8, // META_TILE_TYPE_1256 + COLLISION_DATA_11, // META_TILE_TYPE_1257 + COLLISION_DATA_7, // META_TILE_TYPE_1258 + COLLISION_DATA_12, // META_TILE_TYPE_1259 + COLLISION_DATA_0, // META_TILE_TYPE_1260 + COLLISION_DATA_0, // META_TILE_TYPE_1261 + COLLISION_DATA_39, // META_TILE_TYPE_1262 + COLLISION_DATA_1, // META_TILE_TYPE_1263 + COLLISION_DATA_2, // META_TILE_TYPE_1264 + COLLISION_DATA_1, // META_TILE_TYPE_1265 + COLLISION_DATA_2, // META_TILE_TYPE_1266 + COLLISION_DATA_4, // META_TILE_TYPE_1267 + COLLISION_DATA_12, // META_TILE_TYPE_1268 + COLLISION_DATA_7, // META_TILE_TYPE_1269 + COLLISION_DATA_11, // META_TILE_TYPE_1270 + COLLISION_DATA_4, // META_TILE_TYPE_1271 + COLLISION_DATA_8, // META_TILE_TYPE_1272 + COLLISION_DATA_16, // META_TILE_TYPE_1273 + COLLISION_DATA_17, // META_TILE_TYPE_1274 + COLLISION_DATA_43, // META_TILE_TYPE_1275 + COLLISION_DATA_43, // META_TILE_TYPE_1276 + COLLISION_DATA_18, // META_TILE_TYPE_1277 + COLLISION_DATA_19, // META_TILE_TYPE_1278 + COLLISION_DATA_10, // META_TILE_TYPE_1279 + COLLISION_DATA_5, // META_TILE_TYPE_1280 + COLLISION_DATA_2, // META_TILE_TYPE_1281 + COLLISION_DATA_1, // META_TILE_TYPE_1282 + COLLISION_DATA_35, // META_TILE_TYPE_1283 + COLLISION_DATA_1, // META_TILE_TYPE_1284 + COLLISION_DATA_3, // META_TILE_TYPE_1285 + COLLISION_DATA_2, // META_TILE_TYPE_1286 + COLLISION_DATA_5, // META_TILE_TYPE_1287 + COLLISION_DATA_10, // META_TILE_TYPE_1288 + COLLISION_DATA_14, // META_TILE_TYPE_1289 + COLLISION_DATA_13, // META_TILE_TYPE_1290 + COLLISION_DATA_11, // META_TILE_TYPE_1291 + COLLISION_DATA_7, // META_TILE_TYPE_1292 + COLLISION_DATA_4, // META_TILE_TYPE_1293 + COLLISION_DATA_8, // META_TILE_TYPE_1294 + COLLISION_DATA_10, // META_TILE_TYPE_1295 + COLLISION_DATA_5, // META_TILE_TYPE_1296 + COLLISION_DATA_10, // META_TILE_TYPE_1297 + COLLISION_DATA_5, // META_TILE_TYPE_1298 + COLLISION_DATA_13, // META_TILE_TYPE_1299 + COLLISION_DATA_14, // META_TILE_TYPE_1300 + COLLISION_DATA_8, // META_TILE_TYPE_1301 + COLLISION_DATA_4, // META_TILE_TYPE_1302 + COLLISION_DATA_7, // META_TILE_TYPE_1303 + COLLISION_DATA_11, // META_TILE_TYPE_1304 + COLLISION_DATA_0, // META_TILE_TYPE_1305 + COLLISION_DATA_9, // META_TILE_TYPE_1306 + COLLISION_DATA_6, // META_TILE_TYPE_1307 + COLLISION_DATA_0, // META_TILE_TYPE_1308 + COLLISION_DATA_15, // META_TILE_TYPE_1309 + COLLISION_DATA_7, // META_TILE_TYPE_1310 + COLLISION_DATA_11, // META_TILE_TYPE_1311 + COLLISION_DATA_3, // META_TILE_TYPE_1312 + COLLISION_DATA_33, // META_TILE_TYPE_1313 + COLLISION_DATA_33, // META_TILE_TYPE_1314 + COLLISION_DATA_33, // META_TILE_TYPE_1315 + COLLISION_DATA_33, // META_TILE_TYPE_1316 + COLLISION_DATA_33, // META_TILE_TYPE_1317 + COLLISION_DATA_33, // META_TILE_TYPE_1318 + COLLISION_DATA_33, // META_TILE_TYPE_1319 + COLLISION_DATA_15, // META_TILE_TYPE_1320 + COLLISION_DATA_5, // META_TILE_TYPE_1321 + COLLISION_DATA_10, // META_TILE_TYPE_1322 + COLLISION_DATA_96, // META_TILE_TYPE_1323 + COLLISION_DATA_0, // META_TILE_TYPE_1324 + COLLISION_DATA_0, // META_TILE_TYPE_1325 + COLLISION_DATA_0, // META_TILE_TYPE_1326 + COLLISION_DATA_0, // META_TILE_TYPE_1327 + COLLISION_DATA_0, // META_TILE_TYPE_1328 + COLLISION_DATA_0, // META_TILE_TYPE_1329 + COLLISION_DATA_0, // META_TILE_TYPE_1330 + COLLISION_DATA_0, // META_TILE_TYPE_1331 + COLLISION_DATA_0, // META_TILE_TYPE_1332 + COLLISION_DATA_0, // META_TILE_TYPE_1333 + COLLISION_DATA_0, // META_TILE_TYPE_1334 + COLLISION_DATA_0, // META_TILE_TYPE_1335 + COLLISION_DATA_0, // META_TILE_TYPE_1336 + COLLISION_DATA_0, // META_TILE_TYPE_1337 + COLLISION_DATA_0, // META_TILE_TYPE_1338 + COLLISION_DATA_0, // META_TILE_TYPE_1339 + COLLISION_DATA_0, // META_TILE_TYPE_1340 + COLLISION_DATA_0, // META_TILE_TYPE_1341 + COLLISION_DATA_0, // META_TILE_TYPE_1342 + COLLISION_DATA_0, // META_TILE_TYPE_1343 + COLLISION_DATA_48, // META_TILE_TYPE_1344 + COLLISION_DATA_0, // META_TILE_TYPE_1345 + COLLISION_DATA_3, // META_TILE_TYPE_1346 + COLLISION_DATA_48, // META_TILE_TYPE_1347 + COLLISION_DATA_48, // META_TILE_TYPE_1348 + COLLISION_DATA_0, // META_TILE_TYPE_1349 + COLLISION_DATA_0, // META_TILE_TYPE_1350 + COLLISION_DATA_0, // META_TILE_TYPE_1351 + COLLISION_DATA_0, // META_TILE_TYPE_1352 + COLLISION_DATA_0, // META_TILE_TYPE_1353 + COLLISION_DATA_0, // META_TILE_TYPE_1354 + COLLISION_DATA_48, // META_TILE_TYPE_1355 + COLLISION_DATA_48, // META_TILE_TYPE_1356 + COLLISION_DATA_33, // META_TILE_TYPE_1357 + COLLISION_DATA_33, // META_TILE_TYPE_1358 + COLLISION_DATA_0, // META_TILE_TYPE_1359 + COLLISION_DATA_15, // META_TILE_TYPE_1360 + COLLISION_DATA_83, // META_TILE_TYPE_1361 + COLLISION_DATA_92, // META_TILE_TYPE_1362 + COLLISION_DATA_85, // META_TILE_TYPE_1363 + COLLISION_DATA_90, // META_TILE_TYPE_1364 + COLLISION_DATA_96, // META_TILE_TYPE_1365 + COLLISION_DATA_97, // META_TILE_TYPE_1366 + COLLISION_DATA_95, // META_TILE_TYPE_1367 + COLLISION_DATA_18, // META_TILE_TYPE_1368 + COLLISION_DATA_19, // META_TILE_TYPE_1369 + COLLISION_DATA_16, // META_TILE_TYPE_1370 + COLLISION_DATA_10, // META_TILE_TYPE_1371 + COLLISION_DATA_10, // META_TILE_TYPE_1372 + COLLISION_DATA_35, // META_TILE_TYPE_1373 + COLLISION_DATA_10, // META_TILE_TYPE_1374 + COLLISION_DATA_5, // META_TILE_TYPE_1375 + COLLISION_DATA_14, // META_TILE_TYPE_1376 + COLLISION_DATA_13, // META_TILE_TYPE_1377 + COLLISION_DATA_11, // META_TILE_TYPE_1378 + COLLISION_DATA_7, // META_TILE_TYPE_1379 + COLLISION_DATA_10, // META_TILE_TYPE_1380 + COLLISION_DATA_5, // META_TILE_TYPE_1381 + COLLISION_DATA_14, // META_TILE_TYPE_1382 + COLLISION_DATA_13, // META_TILE_TYPE_1383 + COLLISION_DATA_11, // META_TILE_TYPE_1384 + COLLISION_DATA_7, // META_TILE_TYPE_1385 + COLLISION_DATA_0, // META_TILE_TYPE_1386 + COLLISION_DATA_0, // META_TILE_TYPE_1387 + COLLISION_DATA_3, // META_TILE_TYPE_1388 + COLLISION_DATA_0, // META_TILE_TYPE_1389 + COLLISION_DATA_39, // META_TILE_TYPE_1390 + COLLISION_DATA_12, // META_TILE_TYPE_1391 + COLLISION_DATA_12, // META_TILE_TYPE_1392 + COLLISION_DATA_33, // META_TILE_TYPE_1393 + COLLISION_DATA_0, // META_TILE_TYPE_1394 + COLLISION_DATA_0, // META_TILE_TYPE_1395 }; diff --git a/src/playerItem/playerItemCellOverwriteSet.c b/src/playerItem/playerItemCellOverwriteSet.c index 06223445..ac534466 100644 --- a/src/playerItem/playerItemCellOverwriteSet.c +++ b/src/playerItem/playerItemCellOverwriteSet.c @@ -6,314 +6,314 @@ #include "tiles.h" // vvv for specialMetaTile -const u8 gUnk_080B7910[] = { - 0, // SPECIAL_META_TILE_0 - 0, // SPECIAL_META_TILE_1 - 0, // SPECIAL_META_TILE_2 - 0, // SPECIAL_META_TILE_3 - 0, // SPECIAL_META_TILE_4 - 0, // SPECIAL_META_TILE_5 - 0, // SPECIAL_META_TILE_6 - 0, // SPECIAL_META_TILE_7 - 0, // SPECIAL_META_TILE_8 - 0, // SPECIAL_META_TILE_9 - 0, // SPECIAL_META_TILE_10 - 0, // SPECIAL_META_TILE_11 - 0, // SPECIAL_META_TILE_12 - 0, // SPECIAL_META_TILE_13 - 0, // SPECIAL_META_TILE_14 - 0, // SPECIAL_META_TILE_15 - 0, // SPECIAL_META_TILE_16 - 0, // SPECIAL_META_TILE_17 - 0, // SPECIAL_META_TILE_18 - 0, // SPECIAL_META_TILE_19 +const u8 gMapSpecialMetaTileToVvv[] = { + 0, // SPECIAL_META_TILE_0 + 0, // SPECIAL_META_TILE_1 + 0, // SPECIAL_META_TILE_2 + 0, // SPECIAL_META_TILE_3 + 0, // SPECIAL_META_TILE_4 + 0, // SPECIAL_META_TILE_5 + 0, // SPECIAL_META_TILE_6 + 0, // SPECIAL_META_TILE_7 + 0, // SPECIAL_META_TILE_8 + 0, // SPECIAL_META_TILE_9 + 0, // SPECIAL_META_TILE_10 + 0, // SPECIAL_META_TILE_11 + 0, // SPECIAL_META_TILE_12 + 0, // SPECIAL_META_TILE_13 + 0, // SPECIAL_META_TILE_14 + 0, // SPECIAL_META_TILE_15 + 0, // SPECIAL_META_TILE_16 + 0, // SPECIAL_META_TILE_17 + 0, // SPECIAL_META_TILE_18 + 0, // SPECIAL_META_TILE_19 VVV_241, // SPECIAL_META_TILE_20 - 0, // SPECIAL_META_TILE_21 - 0, // SPECIAL_META_TILE_22 - VVV_83, // SPECIAL_META_TILE_23 + 0, // SPECIAL_META_TILE_21 + 0, // SPECIAL_META_TILE_22 + VVV_83, // SPECIAL_META_TILE_23 VVV_242, // SPECIAL_META_TILE_24 VVV_243, // SPECIAL_META_TILE_25 - 0, // SPECIAL_META_TILE_26 - 0, // SPECIAL_META_TILE_27 - 0, // SPECIAL_META_TILE_28 - 0, // SPECIAL_META_TILE_29 - 0, // SPECIAL_META_TILE_30 - 0, // SPECIAL_META_TILE_31 + 0, // SPECIAL_META_TILE_26 + 0, // SPECIAL_META_TILE_27 + 0, // SPECIAL_META_TILE_28 + 0, // SPECIAL_META_TILE_29 + 0, // SPECIAL_META_TILE_30 + 0, // SPECIAL_META_TILE_31 VVV_240, // SPECIAL_META_TILE_32 - 0, // SPECIAL_META_TILE_33 - 0, // SPECIAL_META_TILE_34 - 0, // SPECIAL_META_TILE_35 - 0, // SPECIAL_META_TILE_36 - 0, // SPECIAL_META_TILE_37 - 0, // SPECIAL_META_TILE_38 - 0, // SPECIAL_META_TILE_39 - 0, // SPECIAL_META_TILE_40 - 0, // SPECIAL_META_TILE_41 - 0, // SPECIAL_META_TILE_42 - 0, // SPECIAL_META_TILE_43 - 0, // SPECIAL_META_TILE_44 - 0, // SPECIAL_META_TILE_45 - 0, // SPECIAL_META_TILE_46 - 0, // SPECIAL_META_TILE_47 - 0, // SPECIAL_META_TILE_48 - 0, // SPECIAL_META_TILE_49 - 0, // SPECIAL_META_TILE_50 - 0, // SPECIAL_META_TILE_51 - 0, // SPECIAL_META_TILE_52 - 0, // SPECIAL_META_TILE_53 - 0, // SPECIAL_META_TILE_54 - 0, // SPECIAL_META_TILE_55 - 0, // SPECIAL_META_TILE_56 - 0, // SPECIAL_META_TILE_57 - 0, // SPECIAL_META_TILE_58 - 0, // SPECIAL_META_TILE_59 - 0, // SPECIAL_META_TILE_60 - 0, // SPECIAL_META_TILE_61 - 0, // SPECIAL_META_TILE_62 - 0, // SPECIAL_META_TILE_63 - VVV_61, // SPECIAL_META_TILE_64 - VVV_61, // SPECIAL_META_TILE_65 - VVV_61, // SPECIAL_META_TILE_66 - VVV_61, // SPECIAL_META_TILE_67 - VVV_61, // SPECIAL_META_TILE_68 - VVV_61, // SPECIAL_META_TILE_69 - VVV_61, // SPECIAL_META_TILE_70 - VVV_61, // SPECIAL_META_TILE_71 - VVV_61, // SPECIAL_META_TILE_72 - 0, // SPECIAL_META_TILE_73 - 0, // SPECIAL_META_TILE_74 - 0, // SPECIAL_META_TILE_75 - 0, // SPECIAL_META_TILE_76 - 0, // SPECIAL_META_TILE_77 - 0, // SPECIAL_META_TILE_78 - 0, // SPECIAL_META_TILE_79 - 0, // SPECIAL_META_TILE_80 - VVV_58, // SPECIAL_META_TILE_81 - 0, // SPECIAL_META_TILE_82 - 0, // SPECIAL_META_TILE_83 - 0, // SPECIAL_META_TILE_84 - 0, // SPECIAL_META_TILE_85 - 0, // SPECIAL_META_TILE_86 - 0, // SPECIAL_META_TILE_87 - 0, // SPECIAL_META_TILE_88 - 0, // SPECIAL_META_TILE_89 - 0, // SPECIAL_META_TILE_90 - 0, // SPECIAL_META_TILE_91 - 0, // SPECIAL_META_TILE_92 - 0, // SPECIAL_META_TILE_93 - 0, // SPECIAL_META_TILE_94 - 0, // SPECIAL_META_TILE_95 - 0, // SPECIAL_META_TILE_96 - 0, // SPECIAL_META_TILE_97 - 0, // SPECIAL_META_TILE_98 - 0, // SPECIAL_META_TILE_99 - 0, // SPECIAL_META_TILE_100 - 0, // SPECIAL_META_TILE_101 - 0, // SPECIAL_META_TILE_102 - 0, // SPECIAL_META_TILE_103 - 0, // SPECIAL_META_TILE_104 - VVV_40, // SPECIAL_META_TILE_105 - 0, // SPECIAL_META_TILE_106 - 0, // SPECIAL_META_TILE_107 - 0, // SPECIAL_META_TILE_108 - 0, // SPECIAL_META_TILE_109 - 0, // SPECIAL_META_TILE_110 - 0, // SPECIAL_META_TILE_111 - 0, // SPECIAL_META_TILE_112 - 0, // SPECIAL_META_TILE_113 - 0, // SPECIAL_META_TILE_114 - 0, // SPECIAL_META_TILE_115 - 0, // SPECIAL_META_TILE_116 - VVV_18, // SPECIAL_META_TILE_117 - VVV_18, // SPECIAL_META_TILE_118 - VVV_18, // SPECIAL_META_TILE_119 - VVV_18, // SPECIAL_META_TILE_120 - VVV_18, // SPECIAL_META_TILE_121 - VVV_18, // SPECIAL_META_TILE_122 - VVV_18, // SPECIAL_META_TILE_123 - VVV_18, // SPECIAL_META_TILE_124 - 0, // SPECIAL_META_TILE_125 + 0, // SPECIAL_META_TILE_33 + 0, // SPECIAL_META_TILE_34 + 0, // SPECIAL_META_TILE_35 + 0, // SPECIAL_META_TILE_36 + 0, // SPECIAL_META_TILE_37 + 0, // SPECIAL_META_TILE_38 + 0, // SPECIAL_META_TILE_39 + 0, // SPECIAL_META_TILE_40 + 0, // SPECIAL_META_TILE_41 + 0, // SPECIAL_META_TILE_42 + 0, // SPECIAL_META_TILE_43 + 0, // SPECIAL_META_TILE_44 + 0, // SPECIAL_META_TILE_45 + 0, // SPECIAL_META_TILE_46 + 0, // SPECIAL_META_TILE_47 + 0, // SPECIAL_META_TILE_48 + 0, // SPECIAL_META_TILE_49 + 0, // SPECIAL_META_TILE_50 + 0, // SPECIAL_META_TILE_51 + 0, // SPECIAL_META_TILE_52 + 0, // SPECIAL_META_TILE_53 + 0, // SPECIAL_META_TILE_54 + 0, // SPECIAL_META_TILE_55 + 0, // SPECIAL_META_TILE_56 + 0, // SPECIAL_META_TILE_57 + 0, // SPECIAL_META_TILE_58 + 0, // SPECIAL_META_TILE_59 + 0, // SPECIAL_META_TILE_60 + 0, // SPECIAL_META_TILE_61 + 0, // SPECIAL_META_TILE_62 + 0, // SPECIAL_META_TILE_63 + VVV_61, // SPECIAL_META_TILE_64 + VVV_61, // SPECIAL_META_TILE_65 + VVV_61, // SPECIAL_META_TILE_66 + VVV_61, // SPECIAL_META_TILE_67 + VVV_61, // SPECIAL_META_TILE_68 + VVV_61, // SPECIAL_META_TILE_69 + VVV_61, // SPECIAL_META_TILE_70 + VVV_61, // SPECIAL_META_TILE_71 + VVV_61, // SPECIAL_META_TILE_72 + 0, // SPECIAL_META_TILE_73 + 0, // SPECIAL_META_TILE_74 + 0, // SPECIAL_META_TILE_75 + 0, // SPECIAL_META_TILE_76 + 0, // SPECIAL_META_TILE_77 + 0, // SPECIAL_META_TILE_78 + 0, // SPECIAL_META_TILE_79 + 0, // SPECIAL_META_TILE_80 + VVV_58, // SPECIAL_META_TILE_81 + 0, // SPECIAL_META_TILE_82 + 0, // SPECIAL_META_TILE_83 + 0, // SPECIAL_META_TILE_84 + 0, // SPECIAL_META_TILE_85 + 0, // SPECIAL_META_TILE_86 + 0, // SPECIAL_META_TILE_87 + 0, // SPECIAL_META_TILE_88 + 0, // SPECIAL_META_TILE_89 + 0, // SPECIAL_META_TILE_90 + 0, // SPECIAL_META_TILE_91 + 0, // SPECIAL_META_TILE_92 + 0, // SPECIAL_META_TILE_93 + 0, // SPECIAL_META_TILE_94 + 0, // SPECIAL_META_TILE_95 + 0, // SPECIAL_META_TILE_96 + 0, // SPECIAL_META_TILE_97 + 0, // SPECIAL_META_TILE_98 + 0, // SPECIAL_META_TILE_99 + 0, // SPECIAL_META_TILE_100 + 0, // SPECIAL_META_TILE_101 + 0, // SPECIAL_META_TILE_102 + 0, // SPECIAL_META_TILE_103 + 0, // SPECIAL_META_TILE_104 + VVV_40, // SPECIAL_META_TILE_105 + 0, // SPECIAL_META_TILE_106 + 0, // SPECIAL_META_TILE_107 + 0, // SPECIAL_META_TILE_108 + 0, // SPECIAL_META_TILE_109 + 0, // SPECIAL_META_TILE_110 + 0, // SPECIAL_META_TILE_111 + 0, // SPECIAL_META_TILE_112 + 0, // SPECIAL_META_TILE_113 + 0, // SPECIAL_META_TILE_114 + 0, // SPECIAL_META_TILE_115 + 0, // SPECIAL_META_TILE_116 + VVV_18, // SPECIAL_META_TILE_117 + VVV_18, // SPECIAL_META_TILE_118 + VVV_18, // SPECIAL_META_TILE_119 + VVV_18, // SPECIAL_META_TILE_120 + VVV_18, // SPECIAL_META_TILE_121 + VVV_18, // SPECIAL_META_TILE_122 + VVV_18, // SPECIAL_META_TILE_123 + VVV_18, // SPECIAL_META_TILE_124 + 0, // SPECIAL_META_TILE_125 VVV_116, // SPECIAL_META_TILE_126 VVV_116, // SPECIAL_META_TILE_127 - VVV_41, // SPECIAL_META_TILE_128 - 0, // SPECIAL_META_TILE_129 - VVV_35, // SPECIAL_META_TILE_130 - VVV_41, // SPECIAL_META_TILE_131 - VVV_41, // SPECIAL_META_TILE_132 - VVV_41, // SPECIAL_META_TILE_133 - VVV_41, // SPECIAL_META_TILE_134 - VVV_41, // SPECIAL_META_TILE_135 - VVV_41, // SPECIAL_META_TILE_136 - VVV_16, // SPECIAL_META_TILE_137 - VVV_16, // SPECIAL_META_TILE_138 - VVV_16, // SPECIAL_META_TILE_139 - VVV_16, // SPECIAL_META_TILE_140 - VVV_41, // SPECIAL_META_TILE_141 - VVV_80, // SPECIAL_META_TILE_142 - VVV_81, // SPECIAL_META_TILE_143 - 0, // SPECIAL_META_TILE_144 - VVV_15, // SPECIAL_META_TILE_145 - 0, // SPECIAL_META_TILE_146 - 0, // SPECIAL_META_TILE_147 - 0, // SPECIAL_META_TILE_148 - 0, // SPECIAL_META_TILE_149 - 0, // SPECIAL_META_TILE_150 - }; + VVV_41, // SPECIAL_META_TILE_128 + 0, // SPECIAL_META_TILE_129 + VVV_35, // SPECIAL_META_TILE_130 + VVV_41, // SPECIAL_META_TILE_131 + VVV_41, // SPECIAL_META_TILE_132 + VVV_41, // SPECIAL_META_TILE_133 + VVV_41, // SPECIAL_META_TILE_134 + VVV_41, // SPECIAL_META_TILE_135 + VVV_41, // SPECIAL_META_TILE_136 + VVV_16, // SPECIAL_META_TILE_137 + VVV_16, // SPECIAL_META_TILE_138 + VVV_16, // SPECIAL_META_TILE_139 + VVV_16, // SPECIAL_META_TILE_140 + VVV_41, // SPECIAL_META_TILE_141 + VVV_80, // SPECIAL_META_TILE_142 + VVV_81, // SPECIAL_META_TILE_143 + 0, // SPECIAL_META_TILE_144 + VVV_15, // SPECIAL_META_TILE_145 + 0, // SPECIAL_META_TILE_146 + 0, // SPECIAL_META_TILE_147 + 0, // SPECIAL_META_TILE_148 + 0, // SPECIAL_META_TILE_149 + 0, // SPECIAL_META_TILE_150 +}; // collisionData for specialMetaTile -const u8 gUnk_080B79A7[] = { - 29, // SPECIAL_META_TILE_0 - 0, // SPECIAL_META_TILE_1 - 0, // SPECIAL_META_TILE_2 - 0, // SPECIAL_META_TILE_3 - 0, // SPECIAL_META_TILE_4 - 0, // SPECIAL_META_TILE_5 - 15, // SPECIAL_META_TILE_6 - 0, // SPECIAL_META_TILE_7 - 0, // SPECIAL_META_TILE_8 - 0, // SPECIAL_META_TILE_9 - 0, // SPECIAL_META_TILE_10 - 15, // SPECIAL_META_TILE_11 - 0, // SPECIAL_META_TILE_12 - 0, // SPECIAL_META_TILE_13 - 0, // SPECIAL_META_TILE_14 - 0, // SPECIAL_META_TILE_15 - 0, // SPECIAL_META_TILE_16 - 0, // SPECIAL_META_TILE_17 - 0, // SPECIAL_META_TILE_18 - 0, // SPECIAL_META_TILE_19 - 0, // SPECIAL_META_TILE_20 - 0, // SPECIAL_META_TILE_21 - 0, // SPECIAL_META_TILE_22 - 23, // SPECIAL_META_TILE_23 - 40, // SPECIAL_META_TILE_24 - 40, // SPECIAL_META_TILE_25 - 40, // SPECIAL_META_TILE_26 - 15, // SPECIAL_META_TILE_27 - 0, // SPECIAL_META_TILE_28 - 0, // SPECIAL_META_TILE_29 - 0, // SPECIAL_META_TILE_30 - 0, // SPECIAL_META_TILE_31 - 32, // SPECIAL_META_TILE_32 - 0, // SPECIAL_META_TILE_33 - 15, // SPECIAL_META_TILE_34 - 3, // SPECIAL_META_TILE_35 - 5, // SPECIAL_META_TILE_36 - 10, // SPECIAL_META_TILE_37 - 12, // SPECIAL_META_TILE_38 - 1, // SPECIAL_META_TILE_39 - 2, // SPECIAL_META_TILE_40 - 4, // SPECIAL_META_TILE_41 - 8, // SPECIAL_META_TILE_42 - 15, // SPECIAL_META_TILE_43 - 5, // SPECIAL_META_TILE_44 - 10, // SPECIAL_META_TILE_45 - 69, // SPECIAL_META_TILE_46 - 68, // SPECIAL_META_TILE_47 - 0, // SPECIAL_META_TILE_48 - 0, // SPECIAL_META_TILE_49 - 15, // SPECIAL_META_TILE_50 - 0, // SPECIAL_META_TILE_51 - 0, // SPECIAL_META_TILE_52 - 0, // SPECIAL_META_TILE_53 - 15, // SPECIAL_META_TILE_54 - 0, // SPECIAL_META_TILE_55 - 0, // SPECIAL_META_TILE_56 - 0, // SPECIAL_META_TILE_57 - 0, // SPECIAL_META_TILE_58 - 15, // SPECIAL_META_TILE_59 - 0, // SPECIAL_META_TILE_60 - 0, // SPECIAL_META_TILE_61 - 15, // SPECIAL_META_TILE_62 - 0, // SPECIAL_META_TILE_63 - 1, // SPECIAL_META_TILE_64 - 3, // SPECIAL_META_TILE_65 - 2, // SPECIAL_META_TILE_66 - 5, // SPECIAL_META_TILE_67 - 15, // SPECIAL_META_TILE_68 - 10, // SPECIAL_META_TILE_69 - 4, // SPECIAL_META_TILE_70 - 12, // SPECIAL_META_TILE_71 - 8, // SPECIAL_META_TILE_72 - 71, // SPECIAL_META_TILE_73 - 15, // SPECIAL_META_TILE_74 - 0, // SPECIAL_META_TILE_75 - 0, // SPECIAL_META_TILE_76 - 0, // SPECIAL_META_TILE_77 - 0, // SPECIAL_META_TILE_78 - 0, // SPECIAL_META_TILE_79 - 15, // SPECIAL_META_TILE_80 - 15, // SPECIAL_META_TILE_81 - 3, // SPECIAL_META_TILE_82 - 5, // SPECIAL_META_TILE_83 - 0, // SPECIAL_META_TILE_84 - 13, // SPECIAL_META_TILE_85 - 12, // SPECIAL_META_TILE_86 - 11, // SPECIAL_META_TILE_87 - 10, // SPECIAL_META_TILE_88 - 0, // SPECIAL_META_TILE_89 - 15, // SPECIAL_META_TILE_90 - 15, // SPECIAL_META_TILE_91 - 15, // SPECIAL_META_TILE_92 - 15, // SPECIAL_META_TILE_93 - 15, // SPECIAL_META_TILE_94 - 15, // SPECIAL_META_TILE_95 - 15, // SPECIAL_META_TILE_96 - 15, // SPECIAL_META_TILE_97 - 80, // SPECIAL_META_TILE_98 - 7, // SPECIAL_META_TILE_99 - 11, // SPECIAL_META_TILE_100 - 13, // SPECIAL_META_TILE_101 - 14, // SPECIAL_META_TILE_102 - 15, // SPECIAL_META_TILE_103 - 15, // SPECIAL_META_TILE_104 - 39, // SPECIAL_META_TILE_105 - 15, // SPECIAL_META_TILE_106 - 15, // SPECIAL_META_TILE_107 - 16, // SPECIAL_META_TILE_108 - 17, // SPECIAL_META_TILE_109 - 18, // SPECIAL_META_TILE_110 - 19, // SPECIAL_META_TILE_111 - 0, // SPECIAL_META_TILE_112 - 0, // SPECIAL_META_TILE_113 - 15, // SPECIAL_META_TILE_114 - 15, // SPECIAL_META_TILE_115 - 0, // SPECIAL_META_TILE_116 - 1, // SPECIAL_META_TILE_117 - 2, // SPECIAL_META_TILE_118 - 3, // SPECIAL_META_TILE_119 - 4, // SPECIAL_META_TILE_120 - 5, // SPECIAL_META_TILE_121 - 8, // SPECIAL_META_TILE_122 - 10, // SPECIAL_META_TILE_123 - 12, // SPECIAL_META_TILE_124 - 15, // SPECIAL_META_TILE_125 - 5, // SPECIAL_META_TILE_126 - 12, // SPECIAL_META_TILE_127 - 0, // SPECIAL_META_TILE_128 - 0, // SPECIAL_META_TILE_129 - 95, // SPECIAL_META_TILE_130 - 39, // SPECIAL_META_TILE_131 - 103, // SPECIAL_META_TILE_132 - 104, // SPECIAL_META_TILE_133 - 105, // SPECIAL_META_TILE_134 - 106, // SPECIAL_META_TILE_135 - 107, // SPECIAL_META_TILE_136 - 49, // SPECIAL_META_TILE_137 - 50, // SPECIAL_META_TILE_138 - 58, // SPECIAL_META_TILE_139 - 60, // SPECIAL_META_TILE_140 - 35, // SPECIAL_META_TILE_141 - 43, // SPECIAL_META_TILE_142 - 43, // SPECIAL_META_TILE_143 - 5, // SPECIAL_META_TILE_144 - 34, // SPECIAL_META_TILE_145 - 1, // SPECIAL_META_TILE_146 - 2, // SPECIAL_META_TILE_147 - 4, // SPECIAL_META_TILE_148 - 8, // SPECIAL_META_TILE_149 - 12, // SPECIAL_META_TILE_150 - }; +const u8 gMapSpecialMetaTileToCollisionData[] = { + COLLISION_DATA_29, // SPECIAL_META_TILE_0 + 0, // SPECIAL_META_TILE_1 + 0, // SPECIAL_META_TILE_2 + 0, // SPECIAL_META_TILE_3 + 0, // SPECIAL_META_TILE_4 + 0, // SPECIAL_META_TILE_5 + COLLISION_DATA_15, // SPECIAL_META_TILE_6 + 0, // SPECIAL_META_TILE_7 + 0, // SPECIAL_META_TILE_8 + 0, // SPECIAL_META_TILE_9 + 0, // SPECIAL_META_TILE_10 + COLLISION_DATA_15, // SPECIAL_META_TILE_11 + 0, // SPECIAL_META_TILE_12 + 0, // SPECIAL_META_TILE_13 + 0, // SPECIAL_META_TILE_14 + 0, // SPECIAL_META_TILE_15 + 0, // SPECIAL_META_TILE_16 + 0, // SPECIAL_META_TILE_17 + 0, // SPECIAL_META_TILE_18 + 0, // SPECIAL_META_TILE_19 + 0, // SPECIAL_META_TILE_20 + 0, // SPECIAL_META_TILE_21 + 0, // SPECIAL_META_TILE_22 + COLLISION_DATA_23, // SPECIAL_META_TILE_23 + COLLISION_DATA_40, // SPECIAL_META_TILE_24 + COLLISION_DATA_40, // SPECIAL_META_TILE_25 + COLLISION_DATA_40, // SPECIAL_META_TILE_26 + COLLISION_DATA_15, // SPECIAL_META_TILE_27 + 0, // SPECIAL_META_TILE_28 + 0, // SPECIAL_META_TILE_29 + 0, // SPECIAL_META_TILE_30 + 0, // SPECIAL_META_TILE_31 + COLLISION_DATA_32, // SPECIAL_META_TILE_32 + 0, // SPECIAL_META_TILE_33 + COLLISION_DATA_15, // SPECIAL_META_TILE_34 + COLLISION_DATA_3, // SPECIAL_META_TILE_35 + COLLISION_DATA_5, // SPECIAL_META_TILE_36 + COLLISION_DATA_10, // SPECIAL_META_TILE_37 + COLLISION_DATA_12, // SPECIAL_META_TILE_38 + COLLISION_DATA_1, // SPECIAL_META_TILE_39 + COLLISION_DATA_2, // SPECIAL_META_TILE_40 + COLLISION_DATA_4, // SPECIAL_META_TILE_41 + COLLISION_DATA_8, // SPECIAL_META_TILE_42 + COLLISION_DATA_15, // SPECIAL_META_TILE_43 + COLLISION_DATA_5, // SPECIAL_META_TILE_44 + COLLISION_DATA_10, // SPECIAL_META_TILE_45 + COLLISION_DATA_69, // SPECIAL_META_TILE_46 + COLLISION_DATA_68, // SPECIAL_META_TILE_47 + 0, // SPECIAL_META_TILE_48 + 0, // SPECIAL_META_TILE_49 + COLLISION_DATA_15, // SPECIAL_META_TILE_50 + 0, // SPECIAL_META_TILE_51 + 0, // SPECIAL_META_TILE_52 + 0, // SPECIAL_META_TILE_53 + COLLISION_DATA_15, // SPECIAL_META_TILE_54 + 0, // SPECIAL_META_TILE_55 + 0, // SPECIAL_META_TILE_56 + 0, // SPECIAL_META_TILE_57 + 0, // SPECIAL_META_TILE_58 + COLLISION_DATA_15, // SPECIAL_META_TILE_59 + 0, // SPECIAL_META_TILE_60 + 0, // SPECIAL_META_TILE_61 + COLLISION_DATA_15, // SPECIAL_META_TILE_62 + 0, // SPECIAL_META_TILE_63 + COLLISION_DATA_1, // SPECIAL_META_TILE_64 + COLLISION_DATA_3, // SPECIAL_META_TILE_65 + COLLISION_DATA_2, // SPECIAL_META_TILE_66 + COLLISION_DATA_5, // SPECIAL_META_TILE_67 + COLLISION_DATA_15, // SPECIAL_META_TILE_68 + COLLISION_DATA_10, // SPECIAL_META_TILE_69 + COLLISION_DATA_4, // SPECIAL_META_TILE_70 + COLLISION_DATA_12, // SPECIAL_META_TILE_71 + COLLISION_DATA_8, // SPECIAL_META_TILE_72 + COLLISION_DATA_71, // SPECIAL_META_TILE_73 + COLLISION_DATA_15, // SPECIAL_META_TILE_74 + 0, // SPECIAL_META_TILE_75 + 0, // SPECIAL_META_TILE_76 + 0, // SPECIAL_META_TILE_77 + 0, // SPECIAL_META_TILE_78 + 0, // SPECIAL_META_TILE_79 + COLLISION_DATA_15, // SPECIAL_META_TILE_80 + COLLISION_DATA_15, // SPECIAL_META_TILE_81 + COLLISION_DATA_3, // SPECIAL_META_TILE_82 + COLLISION_DATA_5, // SPECIAL_META_TILE_83 + 0, // SPECIAL_META_TILE_84 + COLLISION_DATA_13, // SPECIAL_META_TILE_85 + COLLISION_DATA_12, // SPECIAL_META_TILE_86 + COLLISION_DATA_11, // SPECIAL_META_TILE_87 + COLLISION_DATA_10, // SPECIAL_META_TILE_88 + 0, // SPECIAL_META_TILE_89 + COLLISION_DATA_15, // SPECIAL_META_TILE_90 + COLLISION_DATA_15, // SPECIAL_META_TILE_91 + COLLISION_DATA_15, // SPECIAL_META_TILE_92 + COLLISION_DATA_15, // SPECIAL_META_TILE_93 + COLLISION_DATA_15, // SPECIAL_META_TILE_94 + COLLISION_DATA_15, // SPECIAL_META_TILE_95 + COLLISION_DATA_15, // SPECIAL_META_TILE_96 + COLLISION_DATA_15, // SPECIAL_META_TILE_97 + COLLISION_DATA_80, // SPECIAL_META_TILE_98 + COLLISION_DATA_7, // SPECIAL_META_TILE_99 + COLLISION_DATA_11, // SPECIAL_META_TILE_100 + COLLISION_DATA_13, // SPECIAL_META_TILE_101 + COLLISION_DATA_14, // SPECIAL_META_TILE_102 + COLLISION_DATA_15, // SPECIAL_META_TILE_103 + COLLISION_DATA_15, // SPECIAL_META_TILE_104 + COLLISION_DATA_39, // SPECIAL_META_TILE_105 + COLLISION_DATA_15, // SPECIAL_META_TILE_106 + COLLISION_DATA_15, // SPECIAL_META_TILE_107 + COLLISION_DATA_16, // SPECIAL_META_TILE_108 + COLLISION_DATA_17, // SPECIAL_META_TILE_109 + COLLISION_DATA_18, // SPECIAL_META_TILE_110 + COLLISION_DATA_19, // SPECIAL_META_TILE_111 + 0, // SPECIAL_META_TILE_112 + 0, // SPECIAL_META_TILE_113 + COLLISION_DATA_15, // SPECIAL_META_TILE_114 + COLLISION_DATA_15, // SPECIAL_META_TILE_115 + 0, // SPECIAL_META_TILE_116 + COLLISION_DATA_1, // SPECIAL_META_TILE_117 + COLLISION_DATA_2, // SPECIAL_META_TILE_118 + COLLISION_DATA_3, // SPECIAL_META_TILE_119 + COLLISION_DATA_4, // SPECIAL_META_TILE_120 + COLLISION_DATA_5, // SPECIAL_META_TILE_121 + COLLISION_DATA_8, // SPECIAL_META_TILE_122 + COLLISION_DATA_10, // SPECIAL_META_TILE_123 + COLLISION_DATA_12, // SPECIAL_META_TILE_124 + COLLISION_DATA_15, // SPECIAL_META_TILE_125 + COLLISION_DATA_5, // SPECIAL_META_TILE_126 + COLLISION_DATA_12, // SPECIAL_META_TILE_127 + 0, // SPECIAL_META_TILE_128 + 0, // SPECIAL_META_TILE_129 + COLLISION_DATA_95, // SPECIAL_META_TILE_130 + COLLISION_DATA_39, // SPECIAL_META_TILE_131 + COLLISION_DATA_103, // SPECIAL_META_TILE_132 + COLLISION_DATA_104, // SPECIAL_META_TILE_133 + COLLISION_DATA_105, // SPECIAL_META_TILE_134 + COLLISION_DATA_106, // SPECIAL_META_TILE_135 + COLLISION_DATA_107, // SPECIAL_META_TILE_136 + COLLISION_DATA_49, // SPECIAL_META_TILE_137 + COLLISION_DATA_50, // SPECIAL_META_TILE_138 + COLLISION_DATA_58, // SPECIAL_META_TILE_139 + COLLISION_DATA_60, // SPECIAL_META_TILE_140 + COLLISION_DATA_35, // SPECIAL_META_TILE_141 + COLLISION_DATA_43, // SPECIAL_META_TILE_142 + COLLISION_DATA_43, // SPECIAL_META_TILE_143 + COLLISION_DATA_5, // SPECIAL_META_TILE_144 + COLLISION_DATA_34, // SPECIAL_META_TILE_145 + COLLISION_DATA_1, // SPECIAL_META_TILE_146 + COLLISION_DATA_2, // SPECIAL_META_TILE_147 + COLLISION_DATA_4, // SPECIAL_META_TILE_148 + COLLISION_DATA_8, // SPECIAL_META_TILE_149 + COLLISION_DATA_12, // SPECIAL_META_TILE_150 +}; const u16 gUnk_080B7A3E[] = { 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, @@ -325,15 +325,15 @@ const u16 gUnk_080B7A3E[] = { // TODO figure out type from arm_sub_080B1B84 and arm_sub_080B1BA4, also related to specialMetaTiles void PlayerItemCellOverwriteSet(Entity* this) { - static const s8 gUnk_080B7B6C[] = { 0x0, -0x10, 0x10, 0x0, 0x0, 0x10, -0x10, 0x0 }; + static const s8 offsetByDirection[] = { 0, -16, 16, 0, 0, 16, -16, 0 }; u32 tmp; Entity* player = &gPlayerEntity; if (this->action == 0) { this->field_0x6c.HWORD = - GetMetaTileType(TILE(player->x.HALF.HI + gUnk_080B7B6C[player->animationState & 0xe], - player->y.HALF.HI + gUnk_080B7B6C[(player->animationState & 0xe) + 1]), - this->collisionLayer); + GetMetaTileType(TILE(player->x.HALF.HI + offsetByDirection[player->animationState & 0xe], + player->y.HALF.HI + offsetByDirection[(player->animationState & 0xe) + 1]), + this->collisionLayer); this->action++; } gPlayerState.mobility |= 0x80; @@ -341,9 +341,9 @@ void PlayerItemCellOverwriteSet(Entity* this) { if ((gInput.heldKeys & A_BUTTON) != 0) { if ((R_BUTTON & gInput.newKeys) != 0) { this->field_0x6c.HWORD = - GetMetaTileType(TILE(player->x.HALF.HI + gUnk_080B7B6C[player->animationState & 0xe], - player->y.HALF.HI + gUnk_080B7B6C[(player->animationState & 0xe) + 1]), - this->collisionLayer); + GetMetaTileType(TILE(player->x.HALF.HI + offsetByDirection[player->animationState & 0xe], + player->y.HALF.HI + offsetByDirection[(player->animationState & 0xe) + 1]), + this->collisionLayer); } if ((gInput.heldKeys & R_BUTTON) != 0) { player->iframes = 2; @@ -370,24 +370,24 @@ void PlayerItemCellOverwriteSet(Entity* this) { } } else { sub_0807B7D8(this->field_0x6c.HWORD, - TILE(player->x.HALF.HI + gUnk_080B7B6C[player->animationState & 0xe], - player->y.HALF.HI + gUnk_080B7B6C[(player->animationState & 0xe) + 1]), + TILE(player->x.HALF.HI + offsetByDirection[player->animationState & 0xe], + player->y.HALF.HI + offsetByDirection[(player->animationState & 0xe) + 1]), this->collisionLayer); gPlayerState.mobility &= ~0x80; DeleteThisEntity(); } if ((gInput.heldKeys & B_BUTTON) != 0) { sub_0807B7D8(this->field_0x6c.HWORD, - TILE(player->x.HALF.HI + gUnk_080B7B6C[0], player->y.HALF.HI + gUnk_080B7B6C[1]), + TILE(player->x.HALF.HI + offsetByDirection[0], player->y.HALF.HI + offsetByDirection[1]), this->collisionLayer); sub_0807B7D8(this->field_0x6c.HWORD, - TILE(player->x.HALF.HI + gUnk_080B7B6C[2], player->y.HALF.HI + gUnk_080B7B6C[3]), + TILE(player->x.HALF.HI + offsetByDirection[2], player->y.HALF.HI + offsetByDirection[3]), this->collisionLayer); sub_0807B7D8(this->field_0x6c.HWORD, - TILE(player->x.HALF.HI + gUnk_080B7B6C[4], player->y.HALF.HI + gUnk_080B7B6C[5]), + TILE(player->x.HALF.HI + offsetByDirection[4], player->y.HALF.HI + offsetByDirection[5]), this->collisionLayer); sub_0807B7D8(this->field_0x6c.HWORD, - TILE(player->x.HALF.HI + gUnk_080B7B6C[6], player->y.HALF.HI + gUnk_080B7B6C[7]), + TILE(player->x.HALF.HI + offsetByDirection[6], player->y.HALF.HI + offsetByDirection[7]), this->collisionLayer); } } diff --git a/src/playerItem/playerItemGustBig.c b/src/playerItem/playerItemGustBig.c index 4c6c208d..c57bf584 100644 --- a/src/playerItem/playerItemGustBig.c +++ b/src/playerItem/playerItemGustBig.c @@ -39,8 +39,8 @@ static const Hitbox* const gUnk_080B3DE8[] = { &gUnk_080B3E28, }; static const KeyValuePair gUnk_080B3DF4[] = { - { 0x75, 0x1 }, { 0x76, 0x1 }, { 0x3ac, 0x1 }, { 0x4050, 0x1 }, - { 0x377, 0x1 }, { 0x378, 0x1 }, { 0x71, 0x1 }, { 0x72, 0x1 }, + { META_TILE_TYPE_117, 1 }, { META_TILE_TYPE_118, 1 }, { META_TILE_TYPE_940, 1 }, { SPECIAL_META_TILE_80, 1 }, + { META_TILE_TYPE_887, 1 }, { META_TILE_TYPE_888, 1 }, { META_TILE_TYPE_113, 1 }, { META_TILE_TYPE_114, 1 }, }; static const u16 gUnk_080B3DF4End = 0; diff --git a/src/playerItem/playerItemHeldObject.c b/src/playerItem/playerItemHeldObject.c index 6a2e4081..353c7dc1 100644 --- a/src/playerItem/playerItemHeldObject.c +++ b/src/playerItem/playerItemHeldObject.c @@ -128,7 +128,7 @@ void sub_080AD040(PlayerItemHeldObjectEntity* this) { LinearMoveUpdate(super); } else { tile = GetCollisionDataAtEntity(super); - if ((tile != 0x24) && (tile != 0x26)) { + if ((tile != COLLISION_DATA_36) && (tile != COLLISION_DATA_38)) { ProcessMovement10(super); } } @@ -147,17 +147,17 @@ void sub_080AD040(PlayerItemHeldObjectEntity* this) { if (child == this) { switch (tile) { - case 0xd: + case VVV_13: CreateFx(super, FX_FALL_DOWN, 0); break; - case 0x5a: + case VVV_90: CreateFx(super, FX_LAVA_SPLASH, 0); break; - case 0x10: - case 0x11: + case VVV_16: + case VVV_17: CreateFx(super, FX_WATER_SPLASH, 0); break; - case 0x13: + case VVV_19: CreateFx(super, FX_GREEN_SPLASH, 0); break; } diff --git a/src/playerItem/playerItemPacciCaneProjectile.c b/src/playerItem/playerItemPacciCaneProjectile.c index d3714964..4fbb7995 100644 --- a/src/playerItem/playerItemPacciCaneProjectile.c +++ b/src/playerItem/playerItemPacciCaneProjectile.c @@ -118,7 +118,7 @@ void sub_080701F8(Entity* this) { this->spritePriority.b0 = 7; this->field_0x7c.WORD = GetMetaTileIndex(COORD_TO_TILE(this), this->collisionLayer); InitializeAnimation(this, 0x14); - SetMetaTile(0x4020, COORD_TO_TILE(this), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_32, COORD_TO_TILE(this), this->collisionLayer); return; } } else { @@ -153,12 +153,12 @@ void sub_080703BC(Entity* this) { this->field_0x7c.WORD = 0; sub_08070458(this); break; - case 0x4021: + case SPECIAL_META_TILE_33: sub_08070458(this); break; - case 0x4070: + case SPECIAL_META_TILE_112: *(int*)&this->field_0x78 = 0xff; - case 0x4020: + case SPECIAL_META_TILE_32: if (--(*(int*)&this->field_0x78) == -1) { sub_08070458(this); } else { diff --git a/src/playerUtils.c b/src/playerUtils.c index 0bc7b6ca..b46cef42 100644 --- a/src/playerUtils.c +++ b/src/playerUtils.c @@ -65,7 +65,7 @@ extern ItemBehavior* (*const gCreateItemsFuncs[])(Item); extern void DeleteLoadedTileEntity(u32, u32); -extern const u8 gUnk_080B3E80[]; // collisionData for tileType? +extern const u8 gMapMetaTileTypeToCollisionData[]; // collisionData for tileType? extern u8 gUpdateVisibleTiles; @@ -122,9 +122,9 @@ void sub_0807C5F4(u16*, u16*); void sub_0807C5B0(void); // collisions for metatiles < 0x4000 -extern const u8 gUnk_080B3E80[]; +extern const u8 gMapMetaTileTypeToCollisionData[]; // collisions for tiles > 0x4000 -extern const u8 gUnk_080B79A7[]; +extern const u8 gMapSpecialMetaTileToCollisionData[]; extern u16 gUnk_080B77C0[]; @@ -860,13 +860,29 @@ const u16 gUnk_0811C2EC[] = { 748, 10, 1, 749, 6, 1, 750, 12, 1, 751, 2, 1, 752, 8, 1, 753, 4, 1, 0, }; const s16 gUnk_0811C456[] = { 0, -13, 13, 0, 0, 16, -13, 0 }; -const u16 gUnk_0811C466[] = { 803, 819, 822, 825, 820, 828, 826, 829, 821, 823, 831, 830, 824, 827, 832, 53, 0 }; +const u16 gUnk_0811C466[] = { META_TILE_TYPE_803, + META_TILE_TYPE_819, + META_TILE_TYPE_822, + META_TILE_TYPE_825, + META_TILE_TYPE_820, + META_TILE_TYPE_828, + META_TILE_TYPE_826, + META_TILE_TYPE_829, + META_TILE_TYPE_821, + META_TILE_TYPE_823, + META_TILE_TYPE_831, + META_TILE_TYPE_830, + META_TILE_TYPE_824, + META_TILE_TYPE_827, + META_TILE_TYPE_832, + META_TILE_TYPE_53, + 0 }; void sub_08077F84(void) { Entity* obj; if ((gPlayerEntity.collisionLayer & 2) == 0) { - u32 tile = GetMetaTileTypeByPos(gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI - 12, 2); + u32 tile = GetMetaTileTypeByPos(gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI - 12, LAYER_TOP); if (tile == 0x343 || tile == 0x344 || tile == 0x345 || tile == 0x346) { sub_0807AA80(&gPlayerEntity); gPlayerState.jump_status |= 8; @@ -1745,7 +1761,7 @@ void RespawnPlayer(void) { index = 0; if (gPlayerState.path_memory[0] != 0xffffffff) { ptr1 = gPlayerState.path_memory; - while (GetCollisionDataAtMetaTilePos((u16)*ptr1, *ptr1 >> 0x1e) == 0xf) { + while (GetCollisionDataAtMetaTilePos((u16)*ptr1, *ptr1 >> 0x1e) == COLLISION_DATA_15) { ptr1++; index++; if ((index > 0xf) || (*ptr1 == -1)) { @@ -1895,7 +1911,8 @@ void sub_080797EC(void) { } else { animation = 0x16c; if (sub_080793E4(0)) { - if (GetCollisionDataAtMetaTilePos(GetPlayerTilePos(), gPlayerEntity.collisionLayer) != 0xff) { + if (GetCollisionDataAtMetaTilePos(GetPlayerTilePos(), gPlayerEntity.collisionLayer) != + COLLISION_DATA_255) { gPlayerState.sword_state &= ~8; animation = 0x170; } @@ -1930,7 +1947,7 @@ void sub_080797EC(void) { animation = 0x16c; if (sub_080793E4(0)) { if (GetCollisionDataAtMetaTilePos(GetPlayerTilePos(), (u32)gPlayerEntity.collisionLayer) != - 0xff) { + COLLISION_DATA_255) { gPlayerState.sword_state &= ~8; animation = 0x170; } @@ -2198,7 +2215,7 @@ void sub_08079E58(s32 speed, u32 direction) { sub_0807A5B8(direction); } -bool32 sub_08079E90(u32 param_1) { +bool32 sub_08079E90(u32 direction) { s16 tmp1; s16 tmp2; @@ -2217,24 +2234,24 @@ bool32 sub_08079E90(u32 param_1) { tmp1 = -gPlayerEntity.hitbox->unk2[3]; } } - if (!sub_08079F48(param_1, GetCollisionDataRelativeTo(&gPlayerEntity, tmp2, tmp1))) { + if (!sub_08079F48(direction, GetCollisionDataRelativeTo(&gPlayerEntity, tmp2, tmp1))) { if ((gPlayerEntity.direction & DirectionSouth) != 0) { tmp1 = -tmp1; } else { tmp2 = -tmp2; } - if (!sub_08079F48(param_1, GetCollisionDataRelativeTo(&gPlayerEntity, tmp2, tmp1))) { + if (!sub_08079F48(direction, GetCollisionDataRelativeTo(&gPlayerEntity, tmp2, tmp1))) { return FALSE; } } return TRUE; } -bool32 sub_08079F48(u32 param_1, u32 param_2) { - if (gUnk_0811C118[param_1 >> 2] == param_2) { +bool32 sub_08079F48(u32 direction, u32 collisionData) { + if (gUnk_0811C118[direction >> 2] == collisionData) { gPlayerEntity.direction = (gPlayerEntity.direction + 4) & 0x1f; } else { - if (gUnk_0811C118[(param_1 >> 2) + 1] != param_2) { + if (gUnk_0811C118[(direction >> 2) + 1] != collisionData) { return FALSE; } gPlayerEntity.direction = (gPlayerEntity.direction - 4) & 0x1f; @@ -2654,7 +2671,7 @@ void sub_0807AB44(Entity* this, s32 xOffset, s32 yOffset) { if (object != NULL) { PositionRelative(this, object, xOffset << 0x10, yOffset << 0x10); object->child = (Entity*)ptr; - SetMetaTile(0x404f, COORD_TO_TILE(object), object->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_79, COORD_TO_TILE(object), object->collisionLayer); } } } @@ -2984,12 +3001,12 @@ void SetMetaTileType(u32 tileType, u32 position, u32 layer) { mapLayer = GetLayerByIndex(layer); metatile = mapLayer->unkData2[tileType]; mapLayer->mapData[position] = metatile; - collisionData = gUnk_080B3E80[tileType]; + collisionData = gMapMetaTileTypeToCollisionData[tileType]; mapLayer->collisionData[position] = collisionData; if ((gRoomControls.scroll_flags & 2) != 0) { gMapBottom.collisionData[position] = collisionData; } - mapLayer->vvv[position] = gUnk_080B37A0[tileType]; + mapLayer->vvv[position] = gMapMetaTileTypeToVvv[tileType]; if ((gRoomControls.scroll_flags & 1) == 0) { u32 offset = (position & 0x3f) * 2 + (position & 0xfc0) * 4; if (layer != 2) { @@ -3016,8 +3033,8 @@ void SetMetaTileType(u32 tileType, u32 position, u32 layer) { bool32 sub_0807B434(u32 metaTilePos, u32 layer) { switch (GetMetaTileType(metaTilePos, layer)) { - case 0x36: - case 0x37: + case META_TILE_TYPE_54: + case META_TILE_TYPE_55: return FALSE; default: return GetVvvAtMetaTilePos(metaTilePos, layer) != VVV_13; @@ -3028,25 +3045,25 @@ bool32 sub_0807B464(u32 metaTilePos, u32 layer) { return GetVvvAtMetaTilePos(metaTilePos, layer) == VVV_86; } -void sub_0807B480(u32 tilePos, u32 param_2) { +void sub_0807B480(u32 metaTilePos, u32 param_2) { u32 tmp1; u16 tmp2; u16 tmp3; u16 tileType; const u16* ptr; - if (sub_0807B464(tilePos, 2)) { - tmp1 = sub_0807B464(tilePos - 0x40, 2); - tmp1 |= sub_0807B464(tilePos + 1, 2) << 1; - tmp1 |= sub_0807B464(tilePos + 0x40, 2) << 2; - tmp1 |= sub_0807B464(tilePos - 1, 2) << 3; - tmp1 |= sub_0807B464(tilePos + 0x41, 1) << 1; - tmp1 |= sub_0807B464(tilePos + 0x3f, 1) << 3; - if (GetMetaTileType(tilePos + 0x40, 2) != 0) { - tmp1 |= sub_0807B464(tilePos + 0x80, 1) << 2; + if (sub_0807B464(metaTilePos, LAYER_TOP)) { + tmp1 = sub_0807B464(metaTilePos - 0x40, LAYER_TOP); + tmp1 |= sub_0807B464(metaTilePos + 1, LAYER_TOP) << 1; + tmp1 |= sub_0807B464(metaTilePos + 0x40, LAYER_TOP) << 2; + tmp1 |= sub_0807B464(metaTilePos - 1, LAYER_TOP) << 3; + tmp1 |= sub_0807B464(metaTilePos + 0x41, LAYER_BOTTOM) << 1; + tmp1 |= sub_0807B464(metaTilePos + 0x3f, LAYER_BOTTOM) << 3; + if (GetMetaTileType(metaTilePos + 0x40, LAYER_TOP) != 0) { + tmp1 |= sub_0807B464(metaTilePos + 0x80, LAYER_BOTTOM) << 2; } tmp2 = gUnk_0811C2CC[tmp1]; - tileType = GetMetaTileType(tilePos, 2); + tileType = GetMetaTileType(metaTilePos, LAYER_TOP); ptr = gUnk_0811C2EC; tmp3 = 0; for (; *ptr != 0; ptr = ptr + 3) { @@ -3062,7 +3079,7 @@ void sub_0807B480(u32 tilePos, u32 param_2) { break; } } - SetMetaTileType(tmp2, tilePos, 2); + SetMetaTileType(tmp2, metaTilePos, LAYER_TOP); } } @@ -3082,115 +3099,115 @@ bool32 sub_0807B5B0(Entity* this) { -gUnk_0811C456[(this->animationState & 6) + 1])); } -u32 sub_0807B600(u32 param_1) { +u32 sub_0807B600(u32 metaTilePos) { u32 tileType; - u32 tile; + u32 metaTilePos2; - tile = param_1 - 0x40; - if (GetVvvAtMetaTilePos(param_1, 1) != VVV_86) { + metaTilePos2 = metaTilePos - 0x40; + if (GetVvvAtMetaTilePos(metaTilePos, LAYER_BOTTOM) != VVV_86) { return FALSE; } else { - tileType = GetMetaTileType(param_1, 1); - if (tileType == 0x26a) { - sub_0807B820(param_1); - } else if (tileType == 0x267) { - sub_0807B820(param_1 + 0x40); - } else if (tileType == 0x27a) { - sub_0807B8A8(param_1); - } else if (tileType == 0x277) { - sub_0807B8A8(param_1 + 0x40); - } else if (tileType == 0x28a) { - sub_0807B930(param_1); - } else if (tileType == 0x287) { - sub_0807B930(param_1 + 0x40); + tileType = GetMetaTileType(metaTilePos, LAYER_BOTTOM); + if (tileType == META_TILE_TYPE_618) { + sub_0807B820(metaTilePos); + } else if (tileType == META_TILE_TYPE_615) { + sub_0807B820(metaTilePos + 0x40); + } else if (tileType == META_TILE_TYPE_634) { + sub_0807B8A8(metaTilePos); + } else if (tileType == META_TILE_TYPE_631) { + sub_0807B8A8(metaTilePos + 0x40); + } else if (tileType == META_TILE_TYPE_650) { + sub_0807B930(metaTilePos); + } else if (tileType == META_TILE_TYPE_647) { + sub_0807B930(metaTilePos + 0x40); } else { - if (GetMetaTileType(param_1, 2) != 0) { - SetMetaTileType(0x2f2, param_1, 1); - if (GetCollisionDataAtMetaTilePos(tile, 1) == 3) { - SetMetaTileType(0x2f4, tile, 1); + if (GetMetaTileType(metaTilePos, LAYER_TOP) != 0) { + SetMetaTileType(META_TILE_TYPE_754, metaTilePos, LAYER_BOTTOM); + if (GetCollisionDataAtMetaTilePos(metaTilePos2, LAYER_BOTTOM) == COLLISION_DATA_3) { + SetMetaTileType(META_TILE_TYPE_756, metaTilePos2, LAYER_BOTTOM); } - if (GetCollisionDataAtMetaTilePos(param_1 + 0x40, 1) == 3) { - SetMetaTileType(0x2f4, param_1, 1); + if (GetCollisionDataAtMetaTilePos(metaTilePos + 0x40, LAYER_BOTTOM) == COLLISION_DATA_3) { + SetMetaTileType(META_TILE_TYPE_756, metaTilePos, LAYER_BOTTOM); } } else { - SetMetaTileType(0x2f4, param_1, 1); + SetMetaTileType(META_TILE_TYPE_756, metaTilePos, LAYER_BOTTOM); } - if (sub_0807B464(tile, 2)) { - SetMetaTileType(0, tile, 2); - if (GetMetaTileType(tile, 1) == 0x2f2) { - SetMetaTileType(0x2f4, tile, 1); + if (sub_0807B464(metaTilePos2, LAYER_TOP)) { + SetMetaTileType(0, metaTilePos2, LAYER_TOP); + if (GetMetaTileType(metaTilePos2, LAYER_BOTTOM) == META_TILE_TYPE_754) { + SetMetaTileType(META_TILE_TYPE_756, metaTilePos2, LAYER_BOTTOM); } - sub_0807B55C(param_1 + 1, 1, (u16*)&gUnk_0811C2AC); - sub_0807B55C(param_1 - 1, 1, (u16*)&gUnk_0811C2AC); - sub_0807B55C(tile, 1, (u16*)&gUnk_0811C2AC); + sub_0807B55C(metaTilePos + 1, 1, (u16*)&gUnk_0811C2AC); + sub_0807B55C(metaTilePos - 1, 1, (u16*)&gUnk_0811C2AC); + sub_0807B55C(metaTilePos2, 1, (u16*)&gUnk_0811C2AC); } - sub_0807B480(tile + 1, 3); - sub_0807B480(tile - 1, 1); - sub_0807B480(tile + 0x40, 0); - sub_0807B480(tile - 0x40, 2); + sub_0807B480(metaTilePos2 + 1, 3); + sub_0807B480(metaTilePos2 - 1, 1); + sub_0807B480(metaTilePos2 + 0x40, 0); + sub_0807B480(metaTilePos2 - 0x40, 2); } return TRUE; } } -void sub_0807B778(u32 position, u32 layer) { +void sub_0807B778(u32 metaTilePos, u32 layer) { u32 tmp; - if (GetVvvAtMetaTilePos(position, layer) == VVV_13) { - tmp = sub_0807B434(position - 0x40, layer); - tmp |= sub_0807B434(position + 1, layer) << 1; - tmp |= sub_0807B434(position + 0x40, layer) << 2; - tmp |= sub_0807B434(position - 1, layer) << 3; - SetMetaTileType(gUnk_0811C466[tmp], position, layer); + if (GetVvvAtMetaTilePos(metaTilePos, layer) == VVV_13) { + tmp = sub_0807B434(metaTilePos + TILE_POS(0, -1), layer); + tmp |= sub_0807B434(metaTilePos + TILE_POS(1, 0), layer) << 1; + tmp |= sub_0807B434(metaTilePos + TILE_POS(0, 1), layer) << 2; + tmp |= sub_0807B434(metaTilePos + TILE_POS(-1, 0), layer) << 3; + SetMetaTileType(gUnk_0811C466[tmp], metaTilePos, layer); } } -void sub_0807B7D8(u32 param_1, u32 metaTilePos, u32 param_3) { - if (param_1 == 53) { - CloneTile(53, metaTilePos, param_3); - sub_0807B778(metaTilePos, param_3); - sub_0807B778(metaTilePos + 1, param_3); - sub_0807B778(metaTilePos - 1, param_3); - sub_0807B778(metaTilePos + 64, param_3); - sub_0807B778(metaTilePos - 64, param_3); +void sub_0807B7D8(u32 metaTileType, u32 metaTilePos, u32 layer) { + if (metaTileType == META_TILE_TYPE_53) { + CloneTile(META_TILE_TYPE_53, metaTilePos, layer); + sub_0807B778(metaTilePos, layer); + sub_0807B778(metaTilePos + TILE_POS(1, 0), layer); + sub_0807B778(metaTilePos + TILE_POS(-1, 0), layer); + sub_0807B778(metaTilePos + TILE_POS(0, 1), layer); + sub_0807B778(metaTilePos + TILE_POS(0, -1), layer); } else { - SetMetaTileType(param_1, metaTilePos, param_3); + SetMetaTileType(metaTileType, metaTilePos, layer); } } -void sub_0807B820(u32 position) { - SetMetaTileType(0x26c, position + TILE_POS(-1, -1), 1); - SetMetaTileType(0x273, position + TILE_POS(-1, -1), 2); - SetMetaTileType(0x26d, position + TILE_POS(0, -1), 1); - SetMetaTileType(0x274, position + TILE_POS(0, -1), 2); - SetMetaTileType(0x26e, position + TILE_POS(1, -1), 1); - SetMetaTileType(0x275, position + TILE_POS(1, -1), 2); - SetMetaTileType(0x26f, position + TILE_POS(-1, 0), 1); - SetMetaTileType(0x270, position, 1); - SetMetaTileType(0x272, position + TILE_POS(1, 0), 1); +void sub_0807B820(u32 metaTilePos) { + SetMetaTileType(META_TILE_TYPE_620, metaTilePos + TILE_POS(-1, -1), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_627, metaTilePos + TILE_POS(-1, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_621, metaTilePos + TILE_POS(0, -1), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_628, metaTilePos + TILE_POS(0, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_622, metaTilePos + TILE_POS(1, -1), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_629, metaTilePos + TILE_POS(1, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_623, metaTilePos + TILE_POS(-1, 0), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_624, metaTilePos, LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_626, metaTilePos + TILE_POS(1, 0), LAYER_BOTTOM); } -void sub_0807B8A8(u32 position) { - SetMetaTileType(0x27c, position + TILE_POS(-1, -1), 1); - SetMetaTileType(0x283, position + TILE_POS(-1, -1), 2); - SetMetaTileType(0x27d, position + TILE_POS(0, -1), 1); - SetMetaTileType(0x284, position + TILE_POS(0, -1), 2); - SetMetaTileType(0x27e, position + TILE_POS(1, -1), 1); - SetMetaTileType(0x285, position + TILE_POS(1, -1), 2); - SetMetaTileType(0x27f, position + TILE_POS(-1, 0), 1); - SetMetaTileType(0x280, position, 1); - SetMetaTileType(0x282, position + TILE_POS(1, 0), 1); +void sub_0807B8A8(u32 metaTilePos) { + SetMetaTileType(META_TILE_TYPE_636, metaTilePos + TILE_POS(-1, -1), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_643, metaTilePos + TILE_POS(-1, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_637, metaTilePos + TILE_POS(0, -1), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_644, metaTilePos + TILE_POS(0, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_638, metaTilePos + TILE_POS(1, -1), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_645, metaTilePos + TILE_POS(1, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_639, metaTilePos + TILE_POS(-1, 0), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_640, metaTilePos, LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_642, metaTilePos + TILE_POS(1, 0), LAYER_BOTTOM); } -void sub_0807B930(u32 position) { - SetMetaTileType(0x28c, position + TILE_POS(-1, -1), 1); - SetMetaTileType(0x293, position + TILE_POS(-1, -1), 2); - SetMetaTileType(0x28d, position + TILE_POS(0, -1), 1); - SetMetaTileType(0x294, position + TILE_POS(0, -1), 2); - SetMetaTileType(0x28e, position + TILE_POS(1, -1), 1); - SetMetaTileType(0x295, position + TILE_POS(1, -1), 2); - SetMetaTileType(0x28f, position + TILE_POS(-1, 0), 1); - SetMetaTileType(0x290, position, 1); - SetMetaTileType(0x292, position + TILE_POS(1, 0), 1); +void sub_0807B930(u32 metaTilePos) { + SetMetaTileType(META_TILE_TYPE_652, metaTilePos + TILE_POS(-1, -1), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_659, metaTilePos + TILE_POS(-1, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_653, metaTilePos + TILE_POS(0, -1), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_660, metaTilePos + TILE_POS(0, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_654, metaTilePos + TILE_POS(1, -1), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_661, metaTilePos + TILE_POS(1, -1), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_655, metaTilePos + TILE_POS(-1, 0), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_656, metaTilePos, LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_658, metaTilePos + TILE_POS(1, 0), LAYER_BOTTOM); } void SetMetaTileByIndex(u32 tileIndex, u32 position, u32 layer) { @@ -3203,8 +3220,8 @@ void SetMetaTileByIndex(u32 tileIndex, u32 position, u32 layer) { mapLayer = GetLayerByIndex(layer); mapLayer->mapData[position] = tileIndex; tileType = mapLayer->metatileTypes[tileIndex]; - mapLayer->collisionData[position] = gUnk_080B3E80[tileType]; - mapLayer->vvv[position] = gUnk_080B37A0[tileType]; + mapLayer->collisionData[position] = gMapMetaTileTypeToCollisionData[tileType]; + mapLayer->vvv[position] = gMapMetaTileTypeToVvv[tileType]; if ((gRoomControls.scroll_flags & 1) == 0) { u32 offset = (position & 0x3f) * 2 + (position & 0xfc0) * 4; if (layer != 2) { @@ -3223,21 +3240,21 @@ void SetMetaTileByIndex(u32 tileIndex, u32 position, u32 layer) { } } -void RestorePrevTileEntity(u32 position, u32 layer) { +void RestorePrevTileEntity(u32 metaTilePos, u32 layer) { u32 tileIndex; u32 tileType; MapLayer* mapLayer; u16* dest; u16* src; - DeleteLoadedTileEntity(position, layer); + DeleteLoadedTileEntity(metaTilePos, layer); mapLayer = GetLayerByIndex(layer); - mapLayer->mapData[position] = tileIndex = mapLayer->mapDataClone[position]; + mapLayer->mapData[metaTilePos] = tileIndex = mapLayer->mapDataClone[metaTilePos]; tileType = mapLayer->metatileTypes[tileIndex]; - mapLayer->collisionData[position] = gUnk_080B3E80[tileType]; - mapLayer->vvv[position] = gUnk_080B37A0[tileType]; + mapLayer->collisionData[metaTilePos] = gMapMetaTileTypeToCollisionData[tileType]; + mapLayer->vvv[metaTilePos] = gMapMetaTileTypeToVvv[tileType]; if ((gRoomControls.scroll_flags & 1) == 0) { - u32 offset = (position & 0x3f) * 2 + (position & 0xfc0) * 4; + u32 offset = (metaTilePos & 0x3f) * 2 + (metaTilePos & 0xfc0) * 4; if (layer != 2) { dest = gMapDataBottomSpecial + offset; } else { @@ -3266,7 +3283,7 @@ void sub_0807BB98(s32 basePosition, u32 layer, u32 width, u32 height) { u32 x; for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { - SetMetaTile(0x4072, basePosition + x, layer); + SetMetaTile(SPECIAL_META_TILE_114, basePosition + x, layer); } basePosition += 0x40; } @@ -3294,17 +3311,17 @@ void sub_0807BBE4(void) { tile = *bottomMap; bottomMap++; if (tile < 0x4000) { - *bottomCollision = gUnk_080B3E80[bottomMetatiles[tile]]; + *bottomCollision = gMapMetaTileTypeToCollisionData[bottomMetatiles[tile]]; } else { - *bottomCollision = gUnk_080B79A7[tile - 0x4000]; + *bottomCollision = gMapSpecialMetaTileToCollisionData[tile - 0x4000]; } bottomCollision++; tile = (u32)*topMap; topMap++; if (tile < 0x4000) { - *topCollision = gUnk_080B3E80[topMetatiles[tile]]; + *topCollision = gMapMetaTileTypeToCollisionData[topMetatiles[tile]]; } else { - *topCollision = gUnk_080B79A7[tile - 0x4000]; + *topCollision = gMapSpecialMetaTileToCollisionData[tile - 0x4000]; } topCollision++; } @@ -3625,10 +3642,10 @@ void sub_0807C460(void) { for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { if (*mapBottom > 0x3fff) { - SetMetaTile(*mapBottom, position, 1); + SetMetaTile(*mapBottom, position, LAYER_BOTTOM); } if (*mapTop > 0x3fff) { - SetMetaTile(*mapTop, position, 2); + SetMetaTile(*mapTop, position, LAYER_TOP); } mapBottom++; mapTop++; diff --git a/src/projectile/mandiblesProjectile.c b/src/projectile/mandiblesProjectile.c index 2bf53960..6ccc88f9 100644 --- a/src/projectile/mandiblesProjectile.c +++ b/src/projectile/mandiblesProjectile.c @@ -4,6 +4,7 @@ #include "functions.h" #include "game.h" #include "hitbox.h" +#include "tiles.h" extern void (*const MandiblesProjectile_Functions[])(Entity*); extern void (*const MandiblesProjectile_Actions[])(Entity*); @@ -102,8 +103,8 @@ void MandiblesProjectile_Action2(Entity* this) { EnqueueSFX(SFX_15D); } this->field_0x78.HWORD = TILE(this->x.HALF.HI, this->y.HALF.HI); - if (GetMetaTileType(this->field_0x78.HWORD, this->collisionLayer) == 0x4000) { - SetMetaTile(0x4005, this->field_0x78.HWORD, this->collisionLayer); + if (GetMetaTileType(this->field_0x78.HWORD, this->collisionLayer) == SPECIAL_META_TILE_0) { + SetMetaTile(SPECIAL_META_TILE_5, this->field_0x78.HWORD, this->collisionLayer); } } diff --git a/src/projectile/projectile5.c b/src/projectile/projectile5.c index 9a89c450..2f55e82d 100644 --- a/src/projectile/projectile5.c +++ b/src/projectile/projectile5.c @@ -1,11 +1,10 @@ +#include "asm.h" #include "entity.h" #include "enemy.h" #include "player.h" #include "room.h" #include "physics.h" -extern u32 GetCollisionDataAtMetaTilePos(u32, u32); - extern void (*const Projectile5_Functions[])(Entity*); extern void (*const Projectile5_Actions[])(Entity*); diff --git a/src/projectile/removableDust.c b/src/projectile/removableDust.c index e0ecba8e..72b10cf4 100644 --- a/src/projectile/removableDust.c +++ b/src/projectile/removableDust.c @@ -77,7 +77,7 @@ void sub_080AA494(Entity* this) { } this->type2 = index; this->spritePriority.b0 = 7; - SetMetaTile(0x4068, TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); + SetMetaTile(SPECIAL_META_TILE_104, TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); } void sub_080AA534(Entity* this) { diff --git a/src/projectile/spiderWeb.c b/src/projectile/spiderWeb.c index bdf82d31..1876c8ab 100644 --- a/src/projectile/spiderWeb.c +++ b/src/projectile/spiderWeb.c @@ -1,8 +1,9 @@ -#include "entity.h" #include "enemy.h" +#include "entity.h" #include "functions.h" -#include "object.h" #include "hitbox.h" +#include "object.h" +#include "tiles.h" typedef struct { u8 b0; @@ -225,7 +226,8 @@ void sub_080AA9E0(Entity* this) { } void sub_080AAA68(Entity* this) { - static const u16 typeTiles[] = { 0x4023, 0x4025, 0x4026, 0x4024 }; + static const u16 typeTiles[] = { SPECIAL_META_TILE_35, SPECIAL_META_TILE_37, SPECIAL_META_TILE_38, + SPECIAL_META_TILE_36 }; SetMetaTile(typeTiles[this->type], TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); } diff --git a/src/projectile/v2Projectile.c b/src/projectile/v2Projectile.c index c556917d..2bea1469 100644 --- a/src/projectile/v2Projectile.c +++ b/src/projectile/v2Projectile.c @@ -1,8 +1,9 @@ -#include "entity.h" #include "enemy.h" +#include "entity.h" #include "functions.h" #include "object.h" +#include "tiles.h" extern void (*const V2Projectile_Functions[])(Entity*); extern void (*const gUnk_0812A7EC[])(Entity*); @@ -92,7 +93,7 @@ void sub_080ABCC4(Entity* this) { this->subtimer = 0; this->direction = Random() & 0x1f; this->field_0x74.HWORD = TILE(this->x.HALF.HI, this->y.HALF.HI); - this->field_0x76.HWORD = GetMetaTileType(this->field_0x74.HWORD, 2); + this->field_0x76.HWORD = GetMetaTileType(this->field_0x74.HWORD, LAYER_TOP); this->spritePriority.b0 = 2; InitializeAnimation(this, 0); SoundReq(SFX_14B); @@ -114,14 +115,14 @@ void sub_080ABD70(Entity* this) { this->frame &= 0xef; this->speed = 0; this->field_0x74.HWORD = TILE(this->x.HALF.HI, this->y.HALF.HI); - this->field_0x76.HWORD = GetMetaTileType(this->field_0x74.HWORD, 2); + this->field_0x76.HWORD = GetMetaTileType(this->field_0x74.HWORD, LAYER_TOP); tmp = this->field_0x76.HWORD; if (tmp != 0x13) { if (tmp == 0x315) { - SetMetaTileType(0x6e, this->field_0x74.HWORD, 2); + SetMetaTileType(META_TILE_TYPE_110, this->field_0x74.HWORD, LAYER_TOP); } } else { - SetMetaTileType(0x6d, this->field_0x74.HWORD, 2); + SetMetaTileType(META_TILE_TYPE_109, this->field_0x74.HWORD, LAYER_TOP); } } if ((this->frame & ANIM_DONE) != 0) { diff --git a/src/room.c b/src/room.c index c5e70c0b..6337eaa6 100644 --- a/src/room.c +++ b/src/room.c @@ -3,10 +3,11 @@ #include "flags.h" #include "functions.h" #include "game.h" -#include "global.h" #include "manager/bombableWallManager.h" +#include "map.h" #include "object.h" #include "room.h" +#include "tiles.h" static void sub_0804B058(EntityData* dat); extern void sub_0801AC98(void); @@ -261,7 +262,7 @@ void sub_0804B16C(void) { TileEntity* tile = gSmallChests; do { if (tile->tilePos != 0 && CheckLocalFlag(tile->localFlag)) { - SetMetaTileType(0x74, tile->tilePos, tile->_6 & 1 ? 2 : 1); + SetMetaTileType(META_TILE_TYPE_116, tile->tilePos, tile->_6 & 1 ? LAYER_TOP : LAYER_BOTTOM); } } while (++tile < gSmallChests + 8); } diff --git a/src/roomInit.c b/src/roomInit.c index 6c56047d..825c7892 100644 --- a/src/roomInit.c +++ b/src/roomInit.c @@ -13,6 +13,7 @@ #include "screen.h" #include "screenTransitions.h" #include "sound.h" +#include "tiles.h" extern u32 sub_08060354(void); extern void sub_08057E64(void); @@ -806,10 +807,10 @@ extern EntityData gUnk_080D7D34; void sub_StateChange_GreatFairies_Exit(void) { if (GetInventoryValue(ITEM_FOURSWORD)) { - SetMetaTile(0x4072, 0x14d, 1); - SetMetaTile(0x4072, 0x10c, 1); - SetMetaTile(0x4090, 0x14c, 1); - SetMetaTile(0x4090, 0x18c, 1); + SetMetaTile(SPECIAL_META_TILE_114, TILE_POS(13, 5), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_114, TILE_POS(12, 4), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_144, TILE_POS(12, 5), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_144, TILE_POS(12, 6), LAYER_BOTTOM); LoadRoomEntityList(&gUnk_080D7D34); } } @@ -860,8 +861,8 @@ void sub_StateChange_Dojos_Grimblade(void) { LoadRoomEntityList(&gUnk_080D827C); } else { sub_0805BC4C(); - SetMetaTileType(0x76, 0x82, 2); - SetMetaTileType(0x76, 0x8c, 2); + SetMetaTileType(META_TILE_TYPE_118, TILE_POS(2, 2), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_118, TILE_POS(12, 2), LAYER_TOP); } } @@ -1042,16 +1043,16 @@ void sub_StateChange_RoyalValley_Main(void) { if (GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) != 2) { LoadRoomEntityList(&gUnk_080D9098); - SetMetaTileType(0x17a, 0x58e, 1); - SetMetaTileType(0x17b, 0x58f, 1); - SetMetaTileType(0x17c, 0x5ce, 1); - SetMetaTileType(0x17d, 0x5cf, 1); + SetMetaTileType(META_TILE_TYPE_378, TILE_POS(14, 22), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_379, TILE_POS(15, 22), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_380, TILE_POS(14, 23), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_381, TILE_POS(15, 23), LAYER_BOTTOM); } EnableRandomDrops(); sub_08059278(); - SetMetaTile(0x4072, 0xa47, 1); - SetMetaTile(0x4072, 0xc47, 1); + SetMetaTile(SPECIAL_META_TILE_114, TILE_POS(7, 41), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_114, TILE_POS(7, 49), LAYER_BOTTOM); if (CheckGlobalFlag(MAZE_CLEAR)) if (gRoomTransition.player_status.start_pos_x == 0x78 && gRoomTransition.player_status.start_pos_y == 0x278) @@ -1109,7 +1110,7 @@ static void sub_0804C128(void) { if (gArea.unk_0c_4 == 6) { sub_080AF250(1); if (CheckLocalFlag(HAKA_01_T0) == 0) { - SetMetaTileType(0x73, 0x107, 1); + SetMetaTileType(META_TILE_TYPE_115, TILE_POS(7, 4), LAYER_BOTTOM); } LoadRoomTileEntities(gUnk_080D9328); SetGlobalFlag(MAZE_CLEAR); @@ -1144,7 +1145,7 @@ void sub_0804C290(void) { if (gArea.unk_0c_1) { iVar1 = gArea.unk_0c_1; - SetMetaTileType((gUnk_080D9348 + iVar1)->unk0, (gUnk_080D9348 + iVar1)->unk2, 1); + SetMetaTileType((gUnk_080D9348 + iVar1)->unk0, (gUnk_080D9348 + iVar1)->unk2, LAYER_BOTTOM); } } @@ -1686,9 +1687,9 @@ void sub_StateChange_TownMinishHoles_RemShoeShop(void) { LoadRoomEntityList(&gUnk_080DBAD0); } if (!CheckLocalFlag(KOBITO_DOUKUTU_05_T0)) { - tilePos = 0x140; - for (i = 0; i < 0x13; i++, tilePos++) { - SetMetaTileType(0x4072, tilePos, 1); + tilePos = TILE_POS(0, 5); + for (i = 0; i < 19; i++, tilePos++) { + SetMetaTileType(SPECIAL_META_TILE_114, tilePos, LAYER_BOTTOM); } } LoadRoomEntityList(&gUnk_080DBB90); @@ -2151,11 +2152,11 @@ void sub_StateChange_DeepwoodShrine_StairsToB1(void) { } else { if (!CheckLocalFlag(0x4c)) { LoadRoomEntityList(&gUnk_additional_8_DeepwoodShrine_StairsToB1); - SetMetaTileType(0x79, 0x285, 1); + SetMetaTileType(META_TILE_TYPE_121, TILE_POS(5, 10), LAYER_BOTTOM); } else { - SetMetaTileType(0x7a, 0x285, 1); + SetMetaTileType(META_TILE_TYPE_122, TILE_POS(5, 10), LAYER_BOTTOM); if (!CheckLocalFlag(0x24)) { - SetMetaTileType(0x73, 0x205, 1); + SetMetaTileType(META_TILE_TYPE_115, TILE_POS(5, 8), LAYER_BOTTOM); } } } @@ -2190,21 +2191,21 @@ void sub_StateChange_DeepwoodShrine_Barrel(void) { switch (gSave.unk7) { case 0: default: - SetMetaTileType(0x90, 0x20b, 1); - SetMetaTileType(0x90, 0x411, 1); + SetMetaTileType(META_TILE_TYPE_144, TILE_POS(11, 8), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_144, TILE_POS(17, 16), LAYER_BOTTOM); break; case 2: - SetMetaTileType(0x90, 0x211, 1); - SetMetaTileType(0x90, 0x40b, 1); + SetMetaTileType(META_TILE_TYPE_144, TILE_POS(17, 8), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_144, TILE_POS(11, 16), LAYER_BOTTOM); break; } if (CheckLocalFlag(0x15)) { - SetMetaTileType(0x76, 0x304, 2); + SetMetaTileType(META_TILE_TYPE_118, TILE_POS(4, 12), LAYER_TOP); } if (CheckLocalFlag(0x16)) { - SetMetaTileType(0x76, 0x318, 2); + SetMetaTileType(META_TILE_TYPE_118, TILE_POS(24, 12), LAYER_TOP); } } @@ -2248,9 +2249,9 @@ void sub_StateChange_DeepwoodShrine_Entrance(void) { if (GetInventoryValue(ITEM_EARTH_ELEMENT) == 0) { #endif #endif - SetMetaTileType(0x365, 0x349, 1); - SetMetaTileType(0x365, 0x34a, 1); - SetMetaTileType(0x365, 0x34b, 1); + SetMetaTileType(META_TILE_TYPE_869, TILE_POS(9, 13), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_869, TILE_POS(10, 13), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_869, TILE_POS(11, 13), LAYER_BOTTOM); } } #else @@ -2385,9 +2386,9 @@ u32 sub_unk3_CaveOfFlames_Entrance(void) { #ifdef DEMO_USA void sub_StateChange_CaveOfFlames_Entrance(void) { if (GetInventoryValue(ITEM_FIRE_ELEMENT) == 0) { - SetMetaTileType(0x365, 0x287, 2); - SetMetaTileType(0x365, 0x288, 2); - SetMetaTileType(0x365, 0x289, 2); + SetMetaTileType(META_TILE_TYPE_869, TILE_POS(7, 10), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_869, TILE_POS(8, 10), LAYER_TOP); + SetMetaTileType(META_TILE_TYPE_869, TILE_POS(9, 10), LAYER_TOP); } } #else @@ -3140,7 +3141,7 @@ extern EntityData gUnk_080E718C; extern EntityData gUnk_080E71AC; void sub_StateChange_RoyalCrypt_Entrance(void) { - SetMetaTileType(0x312, 0x108, 1); + SetMetaTileType(META_TILE_TYPE_786, TILE_POS(8, 4), LAYER_BOTTOM); EnableRandomDrops(); if (!CheckLocalFlag(0xc4)) { LoadRoomEntityList(&gUnk_080E718C); @@ -3640,8 +3641,8 @@ void sub_StateChange_DarkHyruleCastleOutside_ZeldaStatuePlatform(void) { LoadRoomEntityList(&gUnk_080EAD68); } else if (!CheckLocalFlag(0x79)) { LoadRoomEntityList(&gUnk_080EADB8); - SetMetaTileType(0x4072, 0x145, 1); - SetMetaTileType(0x4072, 0x149, 1); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(5, 5), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(9, 5), LAYER_BOTTOM); gArea.queued_bgm = SFX_NONE; } } @@ -3656,7 +3657,7 @@ void sub_0804D7EC(void) { while (*tilePos != 0) { temp = *tilePos; tilePos++; - SetMetaTileType(0x4072, temp, 1); + SetMetaTileType(SPECIAL_META_TILE_114, temp, LAYER_BOTTOM); } } @@ -4352,7 +4353,7 @@ void sub_StateChange_HyruleTown_0(void) { EnableRandomDrops(); TryLoadPrologueHyruleTown(); #if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) - SetMetaTileType(0x176, 0x66b, 1); + SetMetaTileType(META_TILE_TYPE_374, TILE_POS(43, 25), LAYER_BOTTOM); #endif if (gSave.global_progress == 1) { sub_0801D000(0); @@ -4445,7 +4446,7 @@ void sub_0804E150(void) { uVar3 = 1 << gSave.global_progress; for (; pTileData[1] != 0; pTileData += 3) { if ((pTileData[0] & uVar3) != 0) { - SetMetaTile(pTileData[2], pTileData[1], 1); + SetMetaTile(pTileData[2], pTileData[1], LAYER_BOTTOM); } } if (CheckLocalFlag(SHOP05_OPEN) == 0) { @@ -4453,7 +4454,7 @@ void sub_0804E150(void) { uVar3 = 1 << gSave.global_progress; for (; pTileData[0] != 0; pTileData += 3) { if ((pTileData[0] & uVar3) != 0) { - SetMetaTile(pTileData[2], pTileData[1], 1); + SetMetaTile(pTileData[2], pTileData[1], LAYER_BOTTOM); } } } @@ -4462,7 +4463,7 @@ void sub_0804E150(void) { uVar3 = 1 << gSave.global_progress; for (; pTileData[0] != 0; pTileData += 3) { if ((pTileData[0] & uVar3) != 0) { - SetMetaTile(pTileData[2], pTileData[1], 1); + SetMetaTile(pTileData[2], pTileData[1], LAYER_BOTTOM); } } } @@ -4596,16 +4597,16 @@ void sub_StateChange_CastleGarden_Main(void) { } if (!CheckLocalFlag(SOUGEN_08_TORITSUKI)) { LoadRoomEntityList(&gUnk_080F0800); - SetMetaTileType(0x4072, 600, 1); - SetMetaTileType(0x4072, 0x298, 1); - SetMetaTileType(0x4072, 0x266, 1); - SetMetaTileType(0x4072, 0x2a6, 1); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(24, 9), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(24, 10), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(38, 9), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(38, 10), LAYER_BOTTOM); } else { if (!GetInventoryValue(ITEM_FOURSWORD)) { LoadRoomEntityList(&gUnk_080F08F0); - SetMetaTileType(0x4072, 0x9e, 1); - SetMetaTileType(0x4072, 0x9f, 1); - SetMetaTileType(0x4072, 0xa0, 1); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(30, 2), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(31, 2), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(32, 2), LAYER_BOTTOM); } LoadRoomEntityList(&gUnk_080F0850); if (!GetInventoryValue(ITEM_WATER_ELEMENT)) { @@ -4613,8 +4614,8 @@ void sub_StateChange_CastleGarden_Main(void) { } else { LoadRoomEntityList(&gUnk_080F0890); } - SetMetaTileType(0x4072, 600, 1); - SetMetaTileType(0x4072, 0x298, 1); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(24, 9), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(24, 10), LAYER_BOTTOM); if (CheckLocalFlag(MAENIWA_00_WARP)) { LoadRoomEntityList(&gUnk_080F0920); ClearLocalFlag(MAENIWA_00_WARP); @@ -4953,10 +4954,10 @@ extern EntityData gUnk_080F3260; void sub_StateChange_HouseInteriors4_Carpenter(void) { if (GetInventoryValue(ITEM_PACCI_CANE)) { LoadRoomEntityList(&gUnk_080F3260); - SetMetaTileType(0x4072, 0x202, 1); - SetMetaTileType(0x4072, 0x242, 1); - SetMetaTileType(0x4072, 0x204, 1); - SetMetaTileType(0x4072, 0x244, 1); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(2, 8), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(2, 9), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(4, 8), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(4, 9), LAYER_BOTTOM); } } @@ -5042,22 +5043,22 @@ void sub_StateChange_LakeHylia_Main(void) { if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { LoadRoomEntityList(&gUnk_080F3C44); } - SetMetaTile(0x4091, 0x590, 1); - SetMetaTile(0x4091, 0x591, 1); - SetMetaTile(0x4091, 0x592, 1); - SetMetaTile(0x4091, 0x593, 1); - SetMetaTile(0x4091, 0x594, 1); - SetMetaTile(0x4091, 0x5d0, 1); - SetMetaTile(0x4091, 0x610, 1); - SetMetaTile(0x4091, 0x650, 1); - SetMetaTile(0x4091, 0x5d4, 1); - SetMetaTile(0x4091, 0x614, 1); - SetMetaTile(0x4091, 0x654, 1); - SetMetaTile(0x4091, 0x690, 1); - SetMetaTile(0x4091, 0x691, 1); - SetMetaTile(0x4091, 0x692, 1); - SetMetaTile(0x4091, 0x693, 1); - SetMetaTile(0x4091, 0x694, 1); + SetMetaTile(SPECIAL_META_TILE_145, TILE_POS(16, 22), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_145, TILE_POS(17, 22), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_145, TILE_POS(18, 22), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_145, TILE_POS(19, 22), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_145, TILE_POS(20, 22), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_145, TILE_POS(16, 23), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_145, TILE_POS(16, 24), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_145, TILE_POS(16, 25), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_145, TILE_POS(20, 23), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_145, TILE_POS(20, 24), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_145, TILE_POS(20, 25), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_145, TILE_POS(16, 26), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_145, TILE_POS(17, 26), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_145, TILE_POS(18, 26), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_145, TILE_POS(19, 26), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_145, TILE_POS(20, 26), LAYER_BOTTOM); } u32 sub_unk3_LakeHylia_Beanstalk(void) { @@ -5211,8 +5212,8 @@ void sub_StateChange_MinishWoods_Main(void) { LoadRoomEntityList(&gUnk_080F4E10); } #ifdef DEMO_USA - SetMetaTileType(0x177, 0x5b4, 1); - SetMetaTileType(0x177, 0x5f4, 1); + SetMetaTileType(META_TILE_TYPE_375, TILE_POS(52, 22), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_375, TILE_POS(52, 23), LAYER_BOTTOM); #endif } @@ -5491,8 +5492,8 @@ void sub_StateChange_WindTribeTower_Entrance(void) { LoadRoomEntityList(&gUnk_080F61BC); } if (!CheckGlobalFlag(WARP_EVENT_END)) { - SetMetaTileType(0x4072, 0x4c7, 1); - SetMetaTileType(0x4072, 0x507, 1); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(7, 19), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(7, 20), LAYER_BOTTOM); } SetWorldMapPos(8, 0, 0x1e8, 0x158); } @@ -5701,10 +5702,10 @@ void sub_StateChange_HyruleField_EasternHillsNorth(void) { } if (GetInventoryValue(ITEM_GUST_JAR) && !GetInventoryValue(ITEM_PACCI_CANE)) { LoadRoomEntityList(&gUnk_080F7550); - SetMetaTileType(0x4072, 0x311, 1); - SetMetaTileType(0x4072, 0x351, 1); - SetMetaTileType(0x4072, 0x3d9, 1); - SetMetaTileType(0x4072, 0x419, 1); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(17, 12), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(17, 13), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(25, 15), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(25, 16), LAYER_BOTTOM); } } @@ -5733,8 +5734,8 @@ void sub_StateChange_HyruleField_LonLonRanch(void) { } if (!CheckKinstoneFused(KINSTONE_29)) { LoadRoomEntityList(&gUnk_080F7860); - SetMetaTile(0x4072, 0xd88, 1); - SetMetaTile(0x4096, 0xdc8, 1); + SetMetaTile(SPECIAL_META_TILE_114, TILE_POS(8, 54), LAYER_BOTTOM); + SetMetaTile(SPECIAL_META_TILE_150, TILE_POS(8, 55), LAYER_BOTTOM); } if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { LoadRoomEntityList(&gUnk_080F78A0); @@ -5775,11 +5776,11 @@ void sub_StateChange_HyruleField_OutsideCastle(void) { sub_0804F4E4(); if (!CheckLocalFlag(SOUGEN_06_AKINDO)) { LoadRoomEntityList(&gUnk_080F7D70); - SetMetaTileType(0x174, 0x7a2, 1); - SetMetaTileType(0x174, 0x7a3, 1); - SetMetaTileType(0x174, 0x7a5, 1); - SetMetaTileType(0x174, 0x7a6, 1); - SetMetaTileType(0x174, 0x7a7, 1); + SetMetaTileType(META_TILE_TYPE_372, TILE_POS(34, 30), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_372, TILE_POS(35, 30), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_372, TILE_POS(37, 30), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_372, TILE_POS(38, 30), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_372, TILE_POS(39, 30), LAYER_BOTTOM); } if (!CheckGlobalFlag(TABIDACHI)) { #ifdef EU @@ -5796,26 +5797,26 @@ static void sub_0804F578(void) { if (!CheckLocalFlag(SOUGEN_06_SLIDE)) { LoadRoomEntityList(&gUnk_080F7DC0); } else { - SetMetaTileType(0x37, 0x94a, 1); - SetMetaTileType(0x37, 0x94b, 1); - SetMetaTileType(0x37, 0x94c, 1); - SetMetaTileType(0x37, 0x98a, 1); - SetMetaTileType(0x37, 0x98b, 1); - SetMetaTileType(0x37, 0x98c, 1); + SetMetaTileType(META_TILE_TYPE_55, TILE_POS(10, 37), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_55, TILE_POS(11, 37), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_55, TILE_POS(12, 37), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_55, TILE_POS(10, 38), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_55, TILE_POS(11, 38), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_55, TILE_POS(12, 38), LAYER_BOTTOM); } } void sub_0804F5E8(void) { sub_0804F4E4(); - SetMetaTileType(0x1d3, 0xbde, 1); - SetMetaTileType(0x1d6, 0xbe2, 1); - SetMetaTileType(0x1d4, 0xc1f, 1); - SetMetaTileType(0x1d5, 0xc20, 1); - SetMetaTileType(0x1d6, 0xc5e, 1); - SetMetaTileType(0x4072, 0xb9b, 1); - SetMetaTileType(0x4072, 0xbdb, 1); - SetMetaTileType(0x4072, 0xaa4, 1); - SetMetaTileType(0x4072, 0xae4, 1); + SetMetaTileType(META_TILE_TYPE_467, TILE_POS(30, 47), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_470, TILE_POS(34, 47), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_468, TILE_POS(31, 48), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_469, TILE_POS(32, 48), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_470, TILE_POS(30, 49), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(27, 46), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(27, 47), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(36, 42), LAYER_BOTTOM); + SetMetaTileType(SPECIAL_META_TILE_114, TILE_POS(36, 43), LAYER_BOTTOM); } void sub_0804F680(Entity* parent, s32 x, s32 y) { @@ -5876,66 +5877,67 @@ void sub_0804F79C(Entity* parent) { } } +// Stones being spawned by vaati outside the castle. void sub_0804F808(void) { - SetMetaTileType(0x1d3, 0x41d, 1); - SetMetaTileType(0x1d3, 0x621, 1); + SetMetaTileType(META_TILE_TYPE_467, TILE_POS(29, 16), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_467, TILE_POS(33, 24), LAYER_BOTTOM); } void sub_0804F830(void) { - SetMetaTileType(0x1d4, 0x41e, 1); - SetMetaTileType(0x1d4, 0x620, 1); + SetMetaTileType(META_TILE_TYPE_468, TILE_POS(30, 16), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_468, TILE_POS(32, 24), LAYER_BOTTOM); } void sub_0804F854(void) { - SetMetaTileType(0x1d5, 0x41f, 1); - SetMetaTileType(0x1d4, 0x4e5, 1); - SetMetaTileType(0x1d5, 0x61f, 1); - SetMetaTileType(0x1d4, 0x559, 1); + SetMetaTileType(META_TILE_TYPE_469, TILE_POS(31, 16), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_468, TILE_POS(37, 19), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_469, TILE_POS(31, 24), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_468, TILE_POS(25, 21), LAYER_BOTTOM); } void sub_0804F89C(void) { - SetMetaTileType(0x1d6, 0x420, 1); - SetMetaTileType(0x1d5, 0x525, 1); - SetMetaTileType(0x1d6, 0x61e, 1); - SetMetaTileType(0x1d5, 0x519, 1); + SetMetaTileType(META_TILE_TYPE_470, TILE_POS(32, 16), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_469, TILE_POS(37, 20), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_470, TILE_POS(30, 24), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_469, TILE_POS(25, 20), LAYER_BOTTOM); } void sub_0804F8E0(void) { - SetMetaTileType(0x1d3, 0x421, 1); - SetMetaTileType(0x1d6, 0x565, 1); - SetMetaTileType(0x1d3, 0x61d, 1); - SetMetaTileType(0x1d6, 0x4d9, 1); + SetMetaTileType(META_TILE_TYPE_467, TILE_POS(33, 16), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_470, TILE_POS(37, 21), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_467, TILE_POS(29, 24), LAYER_BOTTOM); + SetMetaTileType(META_TILE_TYPE_470, TILE_POS(25, 19), LAYER_BOTTOM); } void sub_0804F928(void) { - RestorePrevTileEntity(0x41d, 1); - RestorePrevTileEntity(0x621, 1); + RestorePrevTileEntity(TILE_POS(29, 16), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(33, 24), LAYER_BOTTOM); } void sub_0804F944(void) { - RestorePrevTileEntity(0x41e, 1); - RestorePrevTileEntity(0x620, 1); + RestorePrevTileEntity(TILE_POS(30, 16), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(32, 24), LAYER_BOTTOM); } void sub_0804F960(void) { - RestorePrevTileEntity(0x41f, 1); - RestorePrevTileEntity(0x4e5, 1); - RestorePrevTileEntity(0x61f, 1); - RestorePrevTileEntity(0x559, 1); + RestorePrevTileEntity(TILE_POS(31, 16), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(37, 19), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(31, 24), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(25, 21), LAYER_BOTTOM); } void sub_0804F994(void) { - RestorePrevTileEntity(0x420, 1); - RestorePrevTileEntity(0x525, 1); - RestorePrevTileEntity(0x61e, 1); - RestorePrevTileEntity(0x519, 1); + RestorePrevTileEntity(TILE_POS(32, 16), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(37, 20), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(30, 24), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(25, 20), LAYER_BOTTOM); } void sub_0804F9C8(void) { - RestorePrevTileEntity(0x421, 1); - RestorePrevTileEntity(0x565, 1); - RestorePrevTileEntity(0x61d, 1); - RestorePrevTileEntity(0x4d9, 1); + RestorePrevTileEntity(TILE_POS(33, 16), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(37, 21), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(29, 24), LAYER_BOTTOM); + RestorePrevTileEntity(TILE_POS(25, 19), LAYER_BOTTOM); } u32 sub_unk3_HyruleField_TrilbyHighlands(void) { @@ -6089,7 +6091,7 @@ void sub_StateChange_Caves_LonLonRanchSecret(void) { SetRoomFlag(1); ChangeLightLevel(0x100); if (!CheckLocalFlag(0x12)) { - SetMetaTileType(0x73, 0xcb, 1); + SetMetaTileType(META_TILE_TYPE_115, TILE_POS(11, 3), LAYER_BOTTOM); } } } @@ -6609,7 +6611,7 @@ u32 sub_unk3_MtCrenel_Entrance(void) { void sub_StateChange_MtCrenel_Entrance(void) { #if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) - SetMetaTileType(0x176, 0x66f, 1); + SetMetaTileType(META_TILE_TYPE_374, TILE_POS(47, 25), LAYER_BOTTOM); #endif } diff --git a/src/scroll.c b/src/scroll.c index c62ee6be..859bca33 100644 --- a/src/scroll.c +++ b/src/scroll.c @@ -30,7 +30,7 @@ extern u16 gUnk_0200B640; extern MapDataDefinition** gCaveBorderMapData[]; extern u16 gUnk_02022830[0xc00]; extern u16 gUnk_020246B0[0xc00]; -extern u8 gUnk_080B7910[]; +extern u8 gMapSpecialMetaTileToVvv[]; void Scroll0(RoomControls*); void Scroll1(RoomControls*); @@ -781,8 +781,8 @@ void sub_080809D4(void) { void UpdateDoorTransition() { u32 vvv; - u32 uVar3; - u32 uVar4; + u32 x; + u32 y; RoomControls* controls = &gRoomControls; if (gRoomControls.camera_target != &gPlayerEntity) { return; @@ -799,19 +799,19 @@ void UpdateDoorTransition() { case 9: case 0x18: case 0x1d: - uVar4 = controls->camera_target->y.HALF.HI - controls->origin_y; - uVar3 = controls->camera_target->x.HALF.HI - controls->origin_x; + y = controls->camera_target->y.HALF.HI - controls->origin_y; + x = controls->camera_target->x.HALF.HI - controls->origin_x; vvv = GetVvvAtMetaTilePos( (((controls->camera_target->x.HALF.HI - controls->origin_x) >> 4) & 0x3F) | ((((controls->camera_target->y.HALF.HI - controls->origin_y) >> 4) & 0x3F) << 6), controls->camera_target->collisionLayer); - gRoomTransition.stairs_idx = sub_080B1A48(uVar3, uVar4, controls->camera_target->collisionLayer); + gRoomTransition.stairs_idx = sub_080B1A48(x, y, controls->camera_target->collisionLayer); switch (vvv) { case VVV_63: case VVV_241: case VVV_40: case VVV_41: - sub_080806BC(uVar3, uVar4, 0xff, 10); + sub_080806BC(x, y, 0xff, 10); break; } } @@ -821,7 +821,7 @@ void UpdateDoorTransition() { void FillVvvForLayer(MapLayer* mapLayer) { u32 metaTilePos; u16* metatileTypes = mapLayer->metatileTypes; - const u8* ptr = gUnk_080B37A0; + const u8* ptr = gMapMetaTileTypeToVvv; u8* ptr3 = mapLayer->vvv; u16* mapData = mapLayer->mapData; for (metaTilePos = 0; metaTilePos < 0x40 * 0x40; metaTilePos++) { @@ -829,7 +829,7 @@ void FillVvvForLayer(MapLayer* mapLayer) { if (metaTileIndex < 0x4000) { mapLayer->vvv[metaTilePos] = ptr[metatileTypes[metaTileIndex]]; } else { - mapLayer->vvv[metaTilePos] = gUnk_080B7910[metaTileIndex - 0x4000]; + mapLayer->vvv[metaTilePos] = gMapSpecialMetaTileToVvv[metaTileIndex - 0x4000]; } } } diff --git a/src/worldEvent/worldEvent17.c b/src/worldEvent/worldEvent17.c index 99c11317..fe081906 100644 --- a/src/worldEvent/worldEvent17.c +++ b/src/worldEvent/worldEvent17.c @@ -157,6 +157,6 @@ void WorldEvent_17_0(void) { void WorldEvent_17_1(void) { if (gMenu.field_0xa != 0) { gMenu.field_0xa = 0; - SetMetaTileType(0x74, 0x407, 1); + SetMetaTileType(META_TILE_TYPE_116, TILE_POS(7, 16), LAYER_BOTTOM); } } diff --git a/src/worldEvent/worldEvent2.c b/src/worldEvent/worldEvent2.c index 0724d7bb..e2ed339a 100644 --- a/src/worldEvent/worldEvent2.c +++ b/src/worldEvent/worldEvent2.c @@ -6,10 +6,12 @@ */ #include "fade.h" #include "flags.h" +#include "map.h" #include "menu.h" #include "room.h" #include "sound.h" #include "subtask.h" +#include "tiles.h" void sub_08055994(void); @@ -54,12 +56,13 @@ void sub_08055994(void) { u32 layer; TileEntity* ptr = &gUnk_080FEAC8[gMenu.field_0x4]; if ((ptr->_6 & 1) != 0) { - layer = 2; + layer = LAYER_TOP; } else { - layer = 1; + layer = LAYER_BOTTOM; } - SetMetaTileType(0x73, (*(u16*)(gMenu.field_0xc + 8) >> 4 & 0x3f) | (*(u16*)(gMenu.field_0xc + 10) >> 4 & 0x3f) << 6, - layer); + SetMetaTileType(META_TILE_TYPE_115, + (*(u16*)(gMenu.field_0xc + 8) >> 4 & 0x3f) | (*(u16*)(gMenu.field_0xc + 10) >> 4 & 0x3f) << 6, + layer); sub_080553E0((u32)gMenu.field_0x4); SoundReq(SFX_SECRET_BIG); }