Changes

Jump to navigation Jump to search

FF8/WorldMap rail

90 bytes added, 05:25, 23 May 2019
m
18 revisions imported
By MaKiPL
==Info==Rail.obj is a file containing key locations of train movement. It stores location on world map, and the train automatically rotates, gives power and calculates needed info (like cargo rotation and etc.)
===File scheme===The file is built the similiar way as [[FF8/WorldMap_wmx|World map WMXRail.obj]]is a file containing key locations of train movement. The engine is loading animation for specific It stores location on world map, and the train every 0x800 bytes automatically rotates, gives power and calculates needed info (2048like cargo rotation and etc.). Always. Animation This file '''cannot be larger than 2048, and if is smaller than 2048 bytes, then whatLZS compressed'''s left is filled with 00. One animation frame is 16 bytesDoing so makes the game not recognize the file.
=== File scheme ===
The file is built the similiar way as [[FF8/WorldMap_wmx|World map WMX.obj]]. The engine is loading animation for specific train every 0x800 bytes (2048). Always. Animation cannot be larger than 2048, and if is smaller than 2048 bytes, then what's left is filled with 00. One animation frame is 16 bytes. Max animation frame is 127, because 127*16=2032+16(header). <br /> <br /> {| borderclass="1" cellspacing="1" cellpadding="3" align="center" style="border: 1px solid black; border-collapse: collapse;wikitable"! style="background:rgb(204,204,204)" | Offset! style="background:rgb(204,204,204)" | Length! style="background:rgb(204,204,204)" | Description
|-
| 0
|-
| 2
| 10 2 bytes| Unknown(Padding?)|-| 4| UInt32| Train Stop offset #1*|-| 8| UInt32| Train Stop offset #2*
|-
| varies12
| count * 16 bytes
| Animation frames
|-
| varies12 + (count*16)
| varies
| Padding / 00
|}
* Train stops are offset to animation frames, in which the train stops like (running in the tunnel, or waiting at the station) ===Animation key frame=== {| border="1" cellspacing="1" cellpadding="3" alignclass="center" style="border: 1px solid black; border-collapse: collapse;wikitable"! style="background:rgb(204,204,204)" | Offset! style="background:rgb(204,204,204)" | Length! style="background:rgb(204,204,204)" | Description
|-
| 0
| 2 4 Bytes signed*
| X Axis
|-
| 2
| 2 Bytes
| Unknown
|-
| 4
| 2 4 Bytes signed*
| Z Axis
|-
| 6
| 2 Bytes
| Unknown
|-
| 8
| 2 4 Bytes signed*
| Y Axis
|-
| 10
| 2 Bytes
| Unknown/ Always 00?
|-
| 12
| Unknown
|}
 
* Location on world map (global) is saved upon 4 bytes. To better understand this (and in fact-operate/hack) just convert it to decimal. Vars are in big-endian.
 
00 00 FE FF is far west. FF FF 01 00 is far east.

Navigation menu