Move world map classes into a namespace, now we have multiple classes
Tweak WM decoder - location index isn't actually 7 bits, the top bit is a chocobo encounter flag
Support voiced dialog in FFNx compat plugin
Support TryLoad on audio streams
Fix MENU opcode returning too quickly
Implement SPECIAL 0xFD sub-op
Make unrecognised text characters a warning in renderer rather than an error
Add a few more characters to font
Recognise avatar tag characters in text decoder (don't do anything with them yet)
More 7H support - map folders properly
Add focus item to fields
Improve UISysten plugin to allow better tracking of initial load vs. change of selection
Make debug options more accessible, layout labels more accessible
Update Tolk plugin to support focus tracking
Set default collide distance on models
Actually use talk vs. collide distance properly in fields
Improve line collision checks, hopefully
VM priority improvements
Start implementing battle animation script decoder
First parts of battle animation executor/renderer
Implement charge effect
Fix bugs reading LGP files with paths in them (i.e. magic.lgp)
Fix indices of battle animations being incorrect
Field
Fix SPLIT including characters that aren't actually in the party
Clamp BG scroll events that specifically track entities/player to the viewport
(explicit scrolls clearly want to go beyond the viewport - but these ones shouldn't)
Field models render using transparency / lighting based on render state - corrects save point appearance
Implement independent and support materia
Remove Braver newgame.xml, read new game data from FF7 kernel
Allow not setting player destination on field load, use when starting a new game
Init MenuLocked properly - apparently the game script doesn't?
Upgrade Monogame, NVorbis; correct usings for new Monogame
Field
Rewrite walk code again. Closer to something reasonable now!
Implement PLUS, MINUS opcodes
Allow some opcodes to force fiber to continue next frame. LDPAL at least seems like that's how it must be intended to work.
Fix MPPAL
Add field debugger screen showing state of all entity fibers
Fix closing window via script not triggering callbacks
Fix field crash when initial player position is off walkmesh (e.g. cargoin)
Implement clock font
Fix font palettes, removes need to use texture filter
Field
Implement STTIM and WSPCL, timers now work
Handle looping sfx on specific channels
Implement AKAO Shine and AKAO Ambient Light effects
Battle
Fix enemy weapon drops
Implement JUMP op
Fix LADER to pause execution, keep player in view
Fix REQEW to detect script already running properly
Implement CANM_1, AXYZI, SMTRA, WMODE, SCRLA, MOD
Partially maybe implement VWOFT
Implement fade types 1/2
Improve BringPlayerIntoView to take account of model height
Improve Line events, probably
Improve background auto-Z a bit more, maybe
Test/fix stereo ADPCM decoder
Fix background state switching
Improve background autoZ a bit more
Call more line scripts, possibly correctly
Implement ladders / LADER op
Implement audio sfx playback on specific channels
Improve scrolling to only clamp scroll when player-initiated
Implement SPLIT, JOIN, ANIME2 ops
Fix TURA op rotation direction to be more resiliant
Improve ANIMW to hopefully work better
Add support for looping sfx, allow field SOUND op to stop them
Fix field sound effects
Actually make field scrolling work properly in a simple manner. I am an idiot.
Fix the increasingly horrible axis inversions in field models. Animation translations now work properly. I am an idiot.
More graphics state save/restore options.
Implement maxOps on script run - some scripts loop forever with no pause and need limiting!
Basic implementation of triggers
Implement FMOVE and GETAI ops
-Mostly implement IFKEY, IFKEYON, IFKEYOFF
-Stub out SLIP
-Implement TURA, PTURA
-Implement WINDOW
-Implement RANDOM
-Start implementing MENU
Fix script priorities not working as expected - higher priority scripts that are temporarily
paused for opcode execution will now prevent lower priority scripts from running as expected.
Auto-select player model when script doesn't set it - must be how it works given there are fields
that don't set it!
Field camera probably better implemented now (but background scrolling broken for now...)