- Add some functions to ASYNCIFY_ADD
A function that calls an asynchronous function via a function pointer
must be added to ASYNCIFY_ADD, even if it had a direct call to
another asynchronous function, so that the indirect call itself is
instrumented.
- Add dummy emscripten_sleep() call to send_agsevent
Because adding a function to ASYNCIFY_ADD does not make its callers
instrumented transitively.
- nact.h and xsystem35.h no longer include scenario.h
- Removed `sys_*` aliases in nact.h
- sys_getString() and sys_getConstString() are moved to
scenario.c as sl_getString() and sl_getConstString()
- DEBUG_COMMAND macros are now defined in scenario.h
- `break function` sets a breakpoint to the entry of `function`, which
is either a global function or a local function in current page.
- `break number` sets a breakpoint to the specified line in current
file.
If -debug option is specified, xsystem35 enables built-in debugger. It
optionally loads debug information from *SA.ALD.symbols file (generated
by xsys35c), and drops into a debugger REPL.
Currently the debugger supports:
- Simple breakpoints
- Backtrace
- Single-step execution (step into / step over)
- Printing variables
Also, when the debugger is enabled SIGINT breaks execution and enters a
REPL.
This fixes a bug in various games where waiting for sound effects to
finish was not working.
`SU var1, var2:` should set var1 to 1 if sound is playing. Before this
fix, it was set to the return value of mus_pcm_get_playposition(), which
is usually 0 (OK).
Before this, color values above 255 were directly used as the pixel
color. After this, its lower 8 bits are used as the palette index. The
new behavior matches System 3.9.
- ags_drawString() returns a bounding box of the text so that callers
can update the screen appropriately.
- Use total font height (not only ascent) for vertical positioning.