d16e0bbfbf7d13b911e5b747c0cc9c0cedfc2be4
cutsceneSystemLoad, cutsceneCutsceneResolve and cutsceneInsertResolveAndSplice all used to steal ownership of the asset entry's parsed yyjson_doc (nulling entry->data.json) and force an immediate assetReapUnused() to avoid handing back a corrupted cache entry on a later load of the same file - which doubled as a latent crash if that reap was ever skipped (as it briefly was), since a stale cache hit would then have a NULL doc. Turns out none of that was needed: every cutsceneitem_t field that could reference the doc's memory already copies its string data by value (cutsceneJsonCopyString into fixed buffers), so the parsed items don't depend on the doc surviving past cutsceneParseDoc. All three call sites now parse straight out of entry->data.json while still locked, then unlock normally - the asset entry stays a normal, correctly-cached resource, and CUTSCENE_LOADED_DOC/cutsceneLoadedSetDoc are gone entirely. 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%