diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-10-27 10:00:51 -0400 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-10-27 10:00:51 -0400 |
commit | 6e142eb5b365659ec9e13360b663037cbfa615af (patch) | |
tree | c9a132a822dc0ba9240b93c920789be96b55f425 /data/collision | |
parent | 676f2f12e3e7990dcc49e3ea391f10aae8131639 (diff) |
Create data/collision/ for tile collision-related data
Diffstat (limited to 'data/collision')
-rw-r--r-- | data/collision/collision_permissions.asm | 258 | ||||
-rw-r--r-- | data/collision/collision_stdscripts.asm | 18 | ||||
-rw-r--r-- | data/collision/field_move_blocks.asm | 55 |
3 files changed, 331 insertions, 0 deletions
diff --git a/data/collision/collision_permissions.asm b/data/collision/collision_permissions.asm new file mode 100644 index 00000000..57172ca5 --- /dev/null +++ b/data/collision/collision_permissions.asm @@ -0,0 +1,258 @@ +TileCollisionTable:: +; entries correspond to COLL_* constants + db LAND_TILE ; COLL_FLOOR + db LAND_TILE ; COLL_01 + db LAND_TILE ; 02 + db LAND_TILE ; COLL_03 + db LAND_TILE ; COLL_04 + db LAND_TILE ; 05 + db LAND_TILE ; 06 + db WALL_TILE ; COLL_WALL + db LAND_TILE ; COLL_CUT_08 + db LAND_TILE ; 09 + db LAND_TILE ; 0a + db LAND_TILE ; 0b + db LAND_TILE ; 0c + db LAND_TILE ; 0d + db LAND_TILE ; 0e + db WALL_TILE ; 0f + db LAND_TILE ; COLL_TALL_GRASS_10 + db LAND_TILE ; 11 + db WALL_TILE | TALK ; COLL_CUT_TREE + db LAND_TILE ; 13 + db LAND_TILE ; COLL_LONG_GRASS + db WALL_TILE | TALK ; COLL_HEADBUTT_TREE + db LAND_TILE ; 16 + db LAND_TILE ; 17 + db LAND_TILE ; COLL_TALL_GRASS + db LAND_TILE ; 19 + db WALL_TILE | TALK ; COLL_CUT_TREE_1A + db LAND_TILE ; 1b + db LAND_TILE ; COLL_LONG_GRASS_1C + db WALL_TILE | TALK ; COLL_HEADBUTT_TREE_1D + db LAND_TILE ; 1e + db LAND_TILE ; 1f + db WATER_TILE ; 20 + db WATER_TILE ; COLL_WATER_21 + db WATER_TILE | TALK ; 22 + db LAND_TILE ; COLL_ICE + db WATER_TILE | TALK ; COLL_WHIRLPOOL + db WATER_TILE ; 25 + db WATER_TILE ; 26 + db WALL_TILE ; COLL_BUOY + db WATER_TILE ; COLL_CUT_28 + db WATER_TILE ; COLL_WATER + db WATER_TILE | TALK ; 2a + db LAND_TILE ; COLL_ICE_2B + db WATER_TILE | TALK ; COLL_WHIRLPOOL_2C + db WATER_TILE ; 2d + db WATER_TILE ; 2e + db WALL_TILE ; 2f + db WATER_TILE ; COLL_WATERFALL_RIGHT + db WATER_TILE ; COLL_WATERFALL_LEFT + db WATER_TILE ; COLL_WATERFALL_UP + db WATER_TILE ; COLL_WATERFALL + db WATER_TILE ; 34 + db WATER_TILE ; 35 + db WATER_TILE ; 36 + db WATER_TILE ; 37 + db WATER_TILE ; COLL_CURRENT_RIGHT + db WATER_TILE ; COLL_CURRENT_LEFT + db WATER_TILE ; COLL_CURRENT_UP + db WATER_TILE ; COLL_CURRENT_DOWN + db WATER_TILE ; 3c + db WATER_TILE ; 3d + db WATER_TILE ; 3e + db WATER_TILE ; 3f + db LAND_TILE ; COLL_BRAKE + db LAND_TILE ; COLL_WALK_RIGHT + db LAND_TILE ; COLL_WALK_LEFT + db LAND_TILE ; COLL_WALK_UP + db LAND_TILE ; COLL_WALK_DOWN + db LAND_TILE ; COLL_BRAKE_45 + db LAND_TILE ; COLL_BRAKE_46 + db LAND_TILE ; COLL_BRAKE_47 + db LAND_TILE ; COLL_GRASS_48 + db LAND_TILE ; COLL_GRASS_49 + db LAND_TILE ; COLL_GRASS_4A + db LAND_TILE ; COLL_GRASS_4B + db LAND_TILE ; COLL_GRASS_4C + db LAND_TILE ; 4d + db LAND_TILE ; 4e + db LAND_TILE ; 4f + db LAND_TILE ; COLL_WALK_RIGHT_ALT + db LAND_TILE ; COLL_WALK_LEFT_ALT + db LAND_TILE ; COLL_WALK_UP_ALT + db LAND_TILE ; COLL_WALK_DOWN_ALT + db LAND_TILE ; COLL_BRAKE_ALT + db LAND_TILE ; COLL_BRAKE_55 + db LAND_TILE ; COLL_BRAKE_56 + db LAND_TILE ; COLL_BRAKE_57 + db LAND_TILE ; 58 + db LAND_TILE ; 59 + db LAND_TILE ; 5a + db LAND_TILE ; COLL_5B + db LAND_TILE ; 5c + db LAND_TILE ; 5d + db LAND_TILE ; 5e + db LAND_TILE ; 5f + db LAND_TILE ; COLL_PIT + db LAND_TILE ; COLL_VIRTUAL_BOY + db WALL_TILE ; 62 + db LAND_TILE ; 63 + db LAND_TILE ; COLL_64 + db LAND_TILE ; COLL_65 + db LAND_TILE ; 66 + db LAND_TILE ; 67 + db LAND_TILE ; COLL_PIT_68 + db LAND_TILE ; 69 + db WALL_TILE ; 6a + db LAND_TILE ; 6b + db LAND_TILE ; 6c + db LAND_TILE ; 6d + db LAND_TILE ; 6e + db LAND_TILE ; 6f + db LAND_TILE ; COLL_WARP_CARPET_DOWN + db LAND_TILE ; COLL_DOOR + db LAND_TILE ; COLL_LADDER + db LAND_TILE ; COLL_STAIRCASE_73 + db LAND_TILE ; COLL_CAVE_74 + db LAND_TILE ; COLL_DOOR_75 + db LAND_TILE ; COLL_WARP_CARPET_LEFT + db LAND_TILE ; COLL_WARP_77 + db LAND_TILE ; COLL_WARP_CARPET_UP + db LAND_TILE ; COLL_DOOR_79 + db LAND_TILE ; COLL_STAIRCASE + db LAND_TILE ; COLL_CAVE + db LAND_TILE ; COLL_WARP_PANEL + db LAND_TILE ; COLL_DOOR_7D + db LAND_TILE ; COLL_WARP_CARPET_RIGHT + db LAND_TILE ; COLL_WARP_7F + db WALL_TILE ; 80 + db WALL_TILE ; 81 + db WALL_TILE ; 82 + db WALL_TILE ; 83 + db WALL_TILE ; 84 + db LAND_TILE ; 85 + db LAND_TILE ; 86 + db LAND_TILE ; 87 + db WALL_TILE ; 88 + db WALL_TILE ; 89 + db WALL_TILE ; 8a + db WALL_TILE ; 8b + db WALL_TILE ; 8c + db LAND_TILE ; 8d + db LAND_TILE ; 8e + db LAND_TILE ; 8f + db WALL_TILE ; COLL_COUNTER + db WALL_TILE ; COLL_BOOKSHELF + db WALL_TILE ; 92 + db WALL_TILE ; COLL_PC + db WALL_TILE ; COLL_RADIO + db WALL_TILE ; COLL_TOWN_MAP + db WALL_TILE ; COLL_MART_SHELF + db WALL_TILE ; COLL_TV + db WALL_TILE ; COLL_COUNTER_98 + db WALL_TILE ; 99 + db WALL_TILE ; 9a + db WALL_TILE ; 9b + db WALL_TILE ; COLL_9C + db WALL_TILE ; COLL_WINDOW + db WALL_TILE ; 9e + db WALL_TILE ; COLL_INCENSE_BURNER + db LAND_TILE ; COLL_HOP_RIGHT + db LAND_TILE ; COLL_HOP_LEFT + db LAND_TILE ; COLL_HOP_UP + db LAND_TILE ; COLL_HOP_DOWN + db LAND_TILE ; COLL_HOP_DOWN_RIGHT + db LAND_TILE ; COLL_HOP_DOWN_LEFT + db LAND_TILE ; COLL_HOP_UP_RIGHT + db LAND_TILE ; COLL_HOP_UP_LEFT + db LAND_TILE ; a8 + db LAND_TILE ; a9 + db LAND_TILE ; aa + db LAND_TILE ; ab + db LAND_TILE ; ac + db LAND_TILE ; ad + db LAND_TILE ; ae + db LAND_TILE ; af + db LAND_TILE ; COLL_RIGHT_WALL + db LAND_TILE ; COLL_LEFT_WALL + db LAND_TILE ; COLL_UP_WALL + db LAND_TILE ; COLL_DOWN_WALL + db LAND_TILE ; COLL_DOWN_RIGHT_WALL + db LAND_TILE ; COLL_DOWN_LEFT_WALL + db LAND_TILE ; COLL_UP_RIGHT_WALL + db LAND_TILE ; COLL_UP_LEFT_WALL + db LAND_TILE ; b8 + db LAND_TILE ; b9 + db LAND_TILE ; ba + db LAND_TILE ; bb + db LAND_TILE ; bc + db LAND_TILE ; bd + db LAND_TILE ; be + db LAND_TILE ; bf + db WATER_TILE ; COLL_RIGHT_BUOY + db WATER_TILE ; COLL_LEFT_BUOY + db WATER_TILE ; COLL_UP_BUOY + db WATER_TILE ; COLL_DOWN_BUOY + db WATER_TILE ; COLL_DOWN_RIGHT_BUOY + db WATER_TILE ; COLL_DOWN_LEFT_BUOY + db WATER_TILE ; COLL_UP_RIGHT_BUOY + db WATER_TILE ; COLL_UP_LEFT_BUOY + db WATER_TILE ; c8 + db WATER_TILE ; c9 + db WATER_TILE ; ca + db WATER_TILE ; cb + db WATER_TILE ; cc + db WATER_TILE ; cd + db WATER_TILE ; ce + db WATER_TILE ; cf + db LAND_TILE ; d0 + db LAND_TILE ; d1 + db LAND_TILE ; d2 + db LAND_TILE ; d3 + db LAND_TILE ; d4 + db LAND_TILE ; d5 + db LAND_TILE ; d6 + db LAND_TILE ; d7 + db LAND_TILE ; d8 + db LAND_TILE ; d9 + db LAND_TILE ; da + db LAND_TILE ; db + db LAND_TILE ; dc + db LAND_TILE ; dd + db LAND_TILE ; de + db LAND_TILE ; df + db LAND_TILE ; e0 + db LAND_TILE ; e1 + db LAND_TILE ; e2 + db LAND_TILE ; e3 + db LAND_TILE ; e4 + db LAND_TILE ; e5 + db LAND_TILE ; e6 + db LAND_TILE ; e7 + db LAND_TILE ; e8 + db LAND_TILE ; e9 + db LAND_TILE ; ea + db LAND_TILE ; eb + db LAND_TILE ; ec + db LAND_TILE ; ed + db LAND_TILE ; ee + db LAND_TILE ; ef + db LAND_TILE ; f0 + db LAND_TILE ; f1 + db LAND_TILE ; f2 + db LAND_TILE ; f3 + db LAND_TILE ; f4 + db LAND_TILE ; f5 + db LAND_TILE ; f6 + db LAND_TILE ; f7 + db LAND_TILE ; f8 + db LAND_TILE ; f9 + db LAND_TILE ; fa + db LAND_TILE ; fb + db LAND_TILE ; fc + db LAND_TILE ; fd + db LAND_TILE ; fe + db WALL_TILE ; COLL_FF diff --git a/data/collision/collision_stdscripts.asm b/data/collision/collision_stdscripts.asm new file mode 100644 index 00000000..5c94c62f --- /dev/null +++ b/data/collision/collision_stdscripts.asm @@ -0,0 +1,18 @@ +; std scripts associated with tile collisions + +stdcoll: MACRO + db \1 + dw (\2StdScript - StdScripts) / 3 +ENDM + +TileCollisionStdScripts: + ; collision type, std script + stdcoll COLL_BOOKSHELF, MagazineBookshelfScript + stdcoll COLL_PC, PCScript + stdcoll COLL_RADIO, Radio1Script + stdcoll COLL_TOWN_MAP, TownMapScript + stdcoll COLL_MART_SHELF, MerchandiseShelfScript + stdcoll COLL_TV, TVScript + stdcoll COLL_WINDOW, WindowScript + stdcoll COLL_INCENSE_BURNER, IncenseBurnerScript + db -1 ; end diff --git a/data/collision/field_move_blocks.asm b/data/collision/field_move_blocks.asm new file mode 100644 index 00000000..444be14b --- /dev/null +++ b/data/collision/field_move_blocks.asm @@ -0,0 +1,55 @@ +; these blocks all use COLL_CUT_TREE in one quadrant +CutTreeBlockPointers: +; tileset, block list pointer + dbw TILESET_JOHTO, .johto + dbw TILESET_JOHTO_MODERN, .johto_modern + dbw TILESET_KANTO, .kanto + dbw TILESET_PARK, .park + dbw TILESET_FOREST, .forest + db -1 ; end + +.johto: +; facing block, replacement block, animation + db $03, $02, 1 ; grass + db $5b, $3c, 0 ; tree + db $5f, $3d, 0 ; tree + db $63, $3f, 0 ; tree + db $67, $3e, 0 ; tree + db -1 ; end + +.johto_modern: +; facing block, replacement block, animation + db $03, $02, $01 ; grass + db -1 ; end + +.kanto: +; facing block, replacement block, animation + db $0b, $0a, 1 ; grass + db $32, $6d, 0 ; tree + db $33, $6c, 0 ; tree + db $34, $6f, 0 ; tree + db $35, $4c, 0 ; tree + db $60, $6e, 0 ; tree + db -1 ; end + +.park: +; facing block, replacement block, animation + db $13, $03, 1 ; grass + db $03, $04, 1 ; grass + db -1 ; end + +.forest: +; facing block, replacement block, animation + db $0f, $17, 0 + db -1 ; end + + +; these blocks all use COLL_WHIRLPOOL in one quadrant +WhirlpoolBlockPointers: + dbw TILESET_JOHTO, .johto + db -1 ; end + +.johto: +; facing block, replacement block, animation + db $07, $36, 0 + db -1 ; end |