WaypointSystem
This section describes the waypoint system especially for duel scenes, if this section is used for overworld scenes is not confirmed yet.
This seems unlikely as none of the arrays for overworld scenes have any content. The waypoints for these scenes are set with triggers.
Although the executable does not read certain data for different versions, the only versions used in the files are 5 and 6.
Size |
Type |
Description |
4B |
uint |
Version of the waypoint system format |
4B |
uint |
This field has to be zero |
24B |
byte[] |
version >= 5 unknown |
4B |
uint |
count of waypoints |
|
Waypoint[] |
see waypoint format |
4B |
uint |
version >= 2 count of unknown secondary data |
|
SecondaryData[] |
version >= 2 see secondary data format |
|
WaypointExt[] |
version >= 3 for each waypoint some additional information, see waypoint extension format |
4B |
uint |
This field has to be 0xFFFF |
Waypoint
Size |
Type |
Description |
4B |
uint |
probably an id, unique for every waypoint per scene |
4B |
uint |
version >= 4 probably an id to another element (is never bigger than the count of waypoints) |
12B |
Vec3f |
position |
4B |
uint |
count of first inner data |
|
uint[] |
first inner data, array of waypoint ids |
4B |
uint |
count of second inner data |
|
uint[] |
second inner data, array of waypoint ids |
Waypoint extension
Size |
Type |
Description |
4B |
uint |
count of third inner data |
|
uint[] |
third inner data, array of waypoint ids |
Secondary data
Size |
Type |
Description |
4B |
uint |
probably an id, does not reference a waypoint |
4B |
uint |
count of inner data |
|
uint[] |
inner data, array of secondary data ids |
As this format is rather complex, it is probably helpful for a different explanation:
- The waypoint system has two arrays of data: waypoints and unknown secondary data
- Waypoints are composed out of
- An id unequal to their index in the array
- Another id not always but sometimes the same as the first one
- A position vector
- Three arrays with waypoint ids inside them, probably edges between waypoints?
- The unknown secondary data is composed out of
- An id
- An array of secondary data ids