2ee97ad4cedb5fc0190c002897a74171553b7c3f
Cutscenes now load through the generic ASSET_LOADER_TYPE_JSON loader and parse straight into fixed static buffers via new cutsceneParseDoc/ cutsceneParseItem/cutsceneCountItems helpers (cutscene.c), removing the bespoke ASSET_LOADER_TYPE_CUTSCENE pipeline entirely. Only one cutscene (plus one INSERT target) is ever resident, so each resolve locks, steals the parsed doc, unlocks, and force-reaps immediately - fixing a stale-cache-reuse bug where revisiting a cutscene name after a different one could return data from the shared buffer's previous occupant. ENTITY_WALK_TO and MAP_AREA_WAIT now store their waypoints/area ids in fixed-size arrays inline on their own item struct instead of a shared bump-allocated pool, so pool/poolOffset are gone from every item type's Load callback. cutscene_t.dataSize (and the CUTSCENE(...) macro's SIZE parameter) is removed along with it - it sized entries out of that same now-deleted pool and had no other reader. NPC #4's battletest cutscene and the main menu's cutscene now resolve their target by name on interact instead of eagerly at init, so a resolved-once pointer is never held past the point its backing buffer can be reused for something else. Co-Authored-By: Claude Sonnet 5 <[email protected]>
Dusk
RPG Game Project, small and able to run on a PSP.
Building
Each build target has different requirements. You can take a look at the git workflow to see how the builds are done for each target. In addition, for accessing the editor and building the game on your host system, install the following packages, depending on your system;
Fedora;
sudo dnf install git make gcc cmake python python-polib python3-pillow python3-dotenv python3-numpy python-qt5 python3-pyopengl SDL2-devel zlib-devel libzip-devel bzip2-devel openssl-devel lzma-sdk-devel xz xz-devel lua-devel libmad-devel
libmad-devel (used for MP3 decoding) is GPL-licensed and ships in the
RPM Fusion free repository rather than Fedora's
base repos - make sure RPM Fusion is enabled first.
Ubuntu;
sudo apt-get install git build-essential gcc python python-polib python3-pillow python3-dotenv python3-numpy python3-pyqt5 python3-opengl libmad0-dev
Arch Linux;
sudo pacman -S git base-devel gcc python python-polib python-pillow python-dotenv python-numpy python-pyqt5 python-opengl libmad
Languages
C
89.7%
JavaScript
3.5%
CMake
3.1%
Python
2.1%
HTML
0.8%
Other
0.7%