Anonymous

Changes

From Final Fantasy Inside

FF7/WorldMap Module/Script

868 bytes added, 11:15, 8 February 2022
m
Entities & Models
|-
| 1
| Tifa?
|-
| 2
| Cid?
|-
| 3
| Ultimate WeaponHighwind
|-
| 4
| UnknownWild Chocobo
|-
| 5
| UnknownTiny Bronco
|-
| 6
| UnknownBuggy
|-
| 7
| UnknownJunon Canon
|-
| 8
| UnknownCargo Ship
|-
| 9
| UnknownHighwind's propellers
|-
| 10
| UnknownDiamond Weapon
|-
| 11
| HighwindUltimate Weapon
|-
| 12
| UnknownFort Condor's Condor
|-
| 13
|-
| 14
| UnknownGold Saucer
|-
| 15
| UnknownRocket Town's Rocket
|-
| 16
| UnknownRocket Town Launch Pad
|-
| 17
| UnknownSunken Gelnika
|-
| 18
| UnknownUnderwater Reactor
|-
| 19
|-
| 20
| UnknownMidgar Canon
|-
| 21
|-
| 24
| UnknownNorth Crater barrier
|-
| 25
| Ancient Forest
|-
| 26
| Key of the Ancients
|-
| 27
| Unknown
|-
| 28
| Red Submarine
|-
| 29
| Ruby Weapon
|-
| 30
| Emerald Weapon
|}
|-
| 4
| UnknownAction| Called when player interacts with the model
|-
| 5
This table is probably not complete.
There is also a set of 32 system functions that are executed in response to certain events which . First 10 are called by the game's executable (subroutine at address 0x7640BC in the PC version), while the remaining ones are not related called by the WM scripts using the "[[FF7/WorldMap Module/Script/Opcodes/204|run function]]" opcode with Model ID parameter set to a certain model;0xFFFF.
{| border="1" cellspacing="1" cellpadding="3" style="border: 1px solid black; border-collapse: collapse"
| 2
| Tick
| Called each frame(only does a check if Zolom should be reset)
|-
| 3
| UnknownDummy function (copy of Function ID 2)
|
|-
| 4
| UnknownDummy function (copy of Function ID 2)
|
|-
| 5
| UnknownDummy function (copy of Function ID 2)
|
|-
| 6
| Unknown
| Enter highwind interior?
|-
| 7
| Midgar Zolom
| Called when the player touches the midgar zolom in the swamp.
|-
| 8
| Dummy function (copy of Function ID 2)
|
|-
| 9
| Northern Cave landing
| Checks if Highwind can land in the crater switches to Highwind Deck map
|}
This table is not complete either. And finally there is a set of functions which are called when the player enters an area of the steps on a walkmesh triangle that is designated to trigger a script (it is not clear exactly which walkmesh types can trigger this event). Which function is executed depends on the mesh coordinates of the player (0-35, 0-27) as well as the exact walkmesh type that triggered function ID [[FF7/WorldMap_Module#Triangle|from the eventMAP file]]. Each mesh can trigger up to 5 different functions with ids from 0 to 4. In theory there can be more than 2000 unique combinations so no list will be given for these functions :) Fortunately, not all functions need to be implemented, as will become apparent in the next section, functions that do nothing do not need to be implemented at all. Most of the mesh functions handle entering field levels from the world map.
== .ev Format ==
The first 0x400 bytes of an .ev file is the call table, a mapping between functions and entry points. Each entry is 4 bytes, 2 bytes of function identifier and 2 bytes instruction pointer. Instruction pointers are in 2-byte increments from the start of the code section. The first two bits (most significant) of the function identifier defines the format of the remaining 14 bits;
{| border="1" cellspacing="1" cellpadding="3" style="border: 1px solid black; border-collapse: collapse; width: 200px250px"
|+ Type = 0, System function
|-
|}
{| border="1" cellspacing="1" cellpadding="3" style="border: 1px solid black; border-collapse: collapse; width: 200px250px"
|+ Type = 1, Model function
|-
|}
{| border="1" cellspacing="1" cellpadding="3" style="border: 1px solid black; border-collapse: collapse; width: 200px300px"
|+ Type = 2, Mesh function
|-
49
edits