Changes

Jump to navigation Jump to search

FF7/Field/Script

418 bytes added, 03:30, 2 August 2006
m
no edit summary
u16 unknown1;
char nEntities; // Number of entities
char unknown2; // Always less than nEntities; possibly Number of visible entities?
u16 wStringOffset; // Offset to strings
u16 nExtraOffsets; // An optional Specifies the number of extra Akao blocks/offsets... unknown
u16 unknown4[4];
char szCreator[8]; // Field creator (never shown)
char szName[8]; // Field name (never shown)
char szEntities[nEntities][8]; // Field entity names
u32 dwExtraOffsets[nExtraOffsets]; // Said extra Akao block offsets... unknown
u16 vEntityScripts[nEntities][32]; // Entity script entry points, or more
// explicitly, subroutine offsets
Here we have all of the pointers tables, one for each section. Pointers are 2 bytes length. Each table has a length of 64 bytes, which means a section can have 32 scripts max. Each pointer refers to the first command of the current script. The section number N begins at the offset header_length+N*64. Note: the only way to retrieve the length of a script is to subtract the position of the next script to the position of the current script.
 
==== Event Script ====
 
The actual script follows immediately after the aforementioned pointer tables. For a list of opcodes and their arguments, see the [[FF7/Field/Script/Opcodes|opcode table]].
==== Dialog Subsection ====
Right after the last script of the last preceding section, we find the 2 byte dialog count, followed by the dialog pointer's table of the dialogs. The first 2 bytes show Using the number of dialogs in the filedialog count, so you can deduct deduce the length of the table: number_of_dialogs*2. After these 2 bytes we have the pointers for each dialog. Be aware that the pointers are relative to the table, which means you must add the position of the table to each pointer in order to find the right position of the dialog. The dialogs begin right after the table, and the code 255 means the end of the dialog. Note: some hidden dialogs are not referenced in the table! ==== Akao blocks ==== If there are any Akao offsets (as specified by nExtraOffsets and dwExtraOffsets), they follow after the dialog subsection, beginning with the four-letter AKAO. Akao blocks contain sound-related data such as the music file index for this field.

Navigation menu