* Barter hook refactor: weight compute in separate fn, names and comments for related vars, consistent value args
* Hook scripts: use initializer_list for defining args
* Keypress Hook: don't trigger on repeat, to match sfall
* chore: auto-format with clang-format
* Attempt to fix formatting after clang-format
* Don't use references for return values, for better readability
* chore: auto-format with clang-format
* Code review fixes
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* hooks: an empty cc and a list of hook types with useful comments
* Deobfuscate some script-related procedures and flags
* Script hooks WIP
* Interpreter: add programPrintError(), Program->procedureCount(), rename string-related functions
* ScriptHookCall refactoring and all basic hook script opcode implementation
* HOOK_KEYPRESS and first working hooks
* mf_obj_under_cursor + some test script
* HOOK_TOHIT
* chore: auto-format with clang-format
* Add hooks: useobj, useobjon
* chore: auto-format with clang-format
* opcode: get_sfall_args
* Code review fixes
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Use `FID_ROTATION` macro to remove manual bit shifting
This is a mechanical change.
Note: this uncovered what I'm almost certain is a bug in the interpreter code. I can fix it based on code inspection... this is how it's used everywhere else. I'm not confident about reproducing it in game though, so open to thoughts on how to preceed here.
* Fix bugs