Cutscenes now parse their authored .jsonc straight into the runtime cutsceneitem_t/pool representation via yyjson, instead of going through a separate Python-compiled DCTS binary format - removes the whole build/compile step and the byte-format contract between the Python encoder and the C decoder, at the cost of a (still tiny, one-time) parse per cutscene load. Also fixes dusk.dsk going stale after a build: the old custom_command depended on a CMake-configure-time file glob, which only re-detects added/removed assets on the next configure and could miss edits entirely. tools.asset.pack now always runs and decides for itself (via a small manifest) whether anything actually needs repacking, so asset changes are never missed regardless of add/edit/remove. Co-Authored-By: Claude Sonnet 5 <[email protected]>
94 lines
1.9 KiB
JSON
94 lines
1.9 KiB
JSON
{
|
|
"items": [
|
|
{
|
|
"type": "UI_SHOW",
|
|
"name": "main_menu"
|
|
},
|
|
{
|
|
"type": "IDLE"
|
|
},
|
|
|
|
// New Game button goes here.
|
|
{
|
|
"type": "MARKER",
|
|
"name": "NEW_GAME"
|
|
},
|
|
{
|
|
"type": "MODAL",
|
|
"title": "main_menu.checking_save.title",
|
|
"message": "main_menu.checking_save.message"
|
|
},
|
|
{
|
|
"type": "WAIT",
|
|
"seconds": 0.2
|
|
},
|
|
{
|
|
"type": "SAVE_DEVICE_CHECK",
|
|
"successMarker": "SAVE_DEVICE_FOUND",
|
|
"failureMarker": "SAVE_DEVICE_NOT_FOUND"
|
|
},
|
|
|
|
// Save device not found
|
|
{
|
|
"type": "MARKER",
|
|
"name": "SAVE_DEVICE_NOT_FOUND"
|
|
},
|
|
{
|
|
"type": "MODAL_CLOSE"
|
|
},
|
|
{
|
|
"type": "MODAL_OPTIONS_MARKERS",
|
|
"title": "main_menu.no_device.title",
|
|
"message": "main_menu.no_device.message",
|
|
"options": [
|
|
{
|
|
"text": "main_menu.no_device.retry",
|
|
"marker": "NEW_GAME"
|
|
},
|
|
{
|
|
"text": "main_menu.no_device.continue",
|
|
"marker": "SAVE_DEVICE_FOUND"
|
|
}
|
|
]
|
|
},
|
|
|
|
// Save device found
|
|
{
|
|
"type": "MARKER",
|
|
"name": "SAVE_DEVICE_FOUND"
|
|
},
|
|
{
|
|
"type": "MODAL_CLOSE"
|
|
},
|
|
{
|
|
"type": "SAVE_LOAD_ALL_SLOTS",
|
|
"successMarker": "LOADED",
|
|
"failureMarker": "LOAD_ERROR"
|
|
},
|
|
|
|
// Save data failed to load (e.g. corrupt/unreadable) - only option is
|
|
// to retry, no "continue without saving" here since we already know a
|
|
// device is present.
|
|
{
|
|
"type": "MARKER",
|
|
"name": "LOAD_ERROR"
|
|
},
|
|
{
|
|
"type": "MODAL_OPTIONS_MARKERS",
|
|
"title": "main_menu.save_load_error.title",
|
|
"message": "main_menu.save_load_error.message",
|
|
"options": [
|
|
{
|
|
"text": "main_menu.save_load_error.retry",
|
|
"marker": "NEW_GAME"
|
|
}
|
|
]
|
|
},
|
|
|
|
{
|
|
"type": "MARKER",
|
|
"name": "LOADED"
|
|
}
|
|
]
|
|
}
|