Differences
This shows you the differences between two versions of the page.
ff3:ff3us:doc:asm:fmt:warp [2016/03/03 11:24] hatzen08 created |
ff3:ff3us:doc:asm:fmt:warp [2019/02/12 10:29] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Warp Triggers ====== | ||
- | |||
- | ===== Overview ===== | ||
- | |||
- | When the player steps in a specific coordinate in the map, he is transported in a new map with new coordinates. | ||
- | |||
- | ===== Offsets ===== | ||
- | |||
- | ^ Description | ||
- | | Base offset (SNES) | ||
- | | Block size | $02 | | ||
- | | Number of blocks | ||
- | | Total size | $0340 | | ||
- | |||
- | The structure is a sequence of two-byte pointers. The index of the pointer is relative to the map number. | ||
- | |||
- | The actual offset of the appointed data is the pointer value plus the base offset. | ||
- | |||
- | The game system checks the actual pointer and the next pointer to determinate the amount of data to read. It can include multiple data blocks. | ||
- | |||
- | ===== Data ===== | ||
- | |||
- | ^ Offset | ||
- | | $00 | $FF | x position, actual map | | ||
- | | $01 | $FF | y position, actual map | | ||
- | | $02 | $FF | new map, low byte | | ||
- | | $03 | $01 | new map, high bit | | ||
- | | ::: | $02 | ? | | ||
- | | ::: | $04 | ? | | ||
- | | ::: | $08 | display location name | | ||
- | | ::: | $30 | direction facing | ||
- | | ::: | $40 | ? | | ||
- | | ::: | $80 | ? | | ||
- | | $04 | $FF | x position, new map | | ||
- | | $05 | $FF | y position, new map | | ||
- | |||
- | ===== Notes ===== | ||
- | |||
- | The coordinates of the new map must be valid. Otherwise, the player can be stuck in a no-walkable tile and unable to move. Also, the warp system won't work correctly if the new coordinates bypass the new map maximum coordinates. | ||