dev tool changes:
- revamped dev tool UI
- removed save deletion logic from `o_world` and simply made it spawn `o_dev_savewipe_prompt` instead
- added support for dev tools to react to different game widths and heights
save changes:
- added a new macro called `SAVE_ENCODE` in the `save` script that controls whether to encode a player's save data when saving. set to `false` by default, but encouraged to be set to true when finishing the game
- two new functions: `save_to_string` and `save_from_string` that convert save data to/from strings
- added JSDoc for `save_reload`
- saves are no longer saved as .json files, instead saved with no format at all
misc changes:
- the game's width and height is now controlled by four new macros: `GAME_W`, `GAME_H` and `GAME_W_GUI` and `GAME_H_GUI` (the normal draw scale and the gui draw scale respectively)
- added a new function called `draw_text_highlighted` that's used in most dev tools now
- all main party member collision boxes are identical to kris' one for consistent gameplay among the main party members
- text typers now have a new `font` hash that determines the font that their text will use. can be a loc ID for a font or a reference to an asset (undefined will just not change the font)
bugfixes:
- fixed a bug where previously, i accidentally made local `cutscene_player_canmove` always set the player instance's `moveable` variable to `false` instead of the desired choice
- `enc_enemy_isfighting` now correctly checks for whether an enemy is still fighting and can be hurt
- fixed a bug where shadow guys shoot act would crash the game if any of the enemies was not fighting anymore