Files

133 lines
3.1 KiB
NASM

; collision IDs are built like this:
; 76543210
; \__/|\_/
; | | \-- SubType
; | \---- Flag
; \------ Type
;
; What exactly flag means or if it
; means anything is up to Type.
; Old Types:
; ???
; New Types:
; 0 - Regular 8 - ???
; 1 - Trees, Grass etc. 9 - Special Talk Action
; 2 - Water A - Jump Action
; 3 - Water 2 B - unused
; 4 - Land C - unused
; 5 - Land 2 D - unused
; 6 - ??? E - unused
; 7 - Warps F - unused
COLLISION_TYPE_MASK EQU $f0
COLLISION_SUBTYPE_MASK EQU $07
COLLISION_WATER_SUBTYPE_MASK EQU $03
COLLISION_FLAG EQU $08
; old collision constants
OLD_COLLISION_TYPE_REGULAR EQU $00
OLD_COLLISION_TYPE_SCENERY EQU $10
OLD_COLLISION_TYPE_WATER EQU $20
OLD_COLLISION_TYPE_WATER2 EQU $40
OLD_COLLISION_WALKABLE EQU $00
OLD_COLLISION_SOLID EQU $01
OLD_COLLISION_FLOOR EQU $03
OLD_COLLISION_WALL EQU $04
OLD_COLLISION_LEDGE EQU $11
OLD_COLLISION_WATER2_S EQU $40
OLD_COLLISION_ROCK EQU $51
OLD_COLLISION_CARPED EQU $60
OLD_COLLISION_DOOR EQU $61
OLD_COLLISION_SIGNPOST EQU $70
OLD_COLLISION_SHOP_SIGN EQU $71
OLD_COLLISION_MART_ITEM EQU $72
OLD_COLLISION_COUNTER EQU $73
OLD_COLLISION_CUT_TREE EQU $80
OLD_COLLISION_GRASS EQU $82
; new collision constants
COLLISION_TYPE_REGULAR EQU $00
COLLISION_TYPE_SCENERY EQU $10
COLLISION_TYPE_WATER EQU $20
COLLISION_TYPE_WATER2 EQU $30
COLLISION_TYPE_LAND EQU $40
COLLISION_TYPE_LAND2 EQU $50
COLLISION_TYPE_UNK EQU $60
COLLISION_TYPE_WARPS EQU $70
COLLISION_TYPE_UNKN2 EQU $80
COLLISION_TYPE_SPECIAL EQU $90
COLLISION_TYPE_JUMP EQU $A0
COLLISION_WALKABLE EQU $00
COLLISION_SOLID EQU $07
COLLISION_CUT_TREE EQU $12
COLLISION_GRASS EQU $18
; water collisions
COLLISION_WATER EQU $21
COLLISION_WATERFALL EQU $22
COLLISION_WATER_SOLID EQU $27
; water collisions 2
COLLISION_WATER2_E EQU $30
COLLISION_WATER2_W EQU $31
COLLISION_WATER2_N EQU $32
COLLISION_WATER2_S EQU $33
; $34..$37 will behave like COLLISION_WATER2_E..COLLISION_WATER2_S
; land collisions
COLLISION_LAND_SLOW EQU $40
COLLISION_LAND_E EQU $41
COLLISION_LAND_W EQU $42
COLLISION_LAND_N EQU $43
COLLISION_LAND_S EQU $44
; $45..$47 will behave like COLLISION_LAND_E
; land collisions 2
COLLISION_LAND2_E EQU $50
COLLISION_LAND2_W EQU $51
COLLISION_LAND2_N EQU $52
COLLISION_LAND2_S EQU $53
; $54..$57 will behave like COLLISION_LAND2_E
; warp collisions
COLLISION_CARPET EQU $70
COLLISION_DOOR EQU $71
COLLISION_STEPS EQU $72
; special collisions
COLLISION_COUNTER EQU $90
COLLISION_BOOKCASE EQU $91
COLLISION_PC EQU $93
COLLISION_RADIO EQU $94
COLLISION_SIGNPOST EQU $95
COLLISION_STRAIGHT_SIGNPOST EQU $97
; jump collisions
; perform jump in marked direction, else
; regular walking
COLLISION_JUMP_E EQU $a0
COLLISION_JUMP_W EQU $a1
COLLISION_JUMP_N EQU $a2
COLLISION_JUMP_S EQU $a3
COLLISION_JUMP_SE EQU $a4
COLLISION_JUMP_SW EQU $a5
COLLISION_JUMP_NE EQU $a6
COLLISION_JUMP_NW EQU $a7
NEVER_SOLID EQU 0
SOMETIMES_SOLID EQU 1
ALWAYS_SOLID EQU 15