Add order-based party roster, back-navigation in battle selection, fix win-state cutscene leak
- Battle selection menu can now go back a fighter to re-decide their move, and battle win/loss no longer leaks the round's remaining queued move cutscenes into the ending state (cutsceneSystemDiscardQueued). - Party roster is now driven by party.jsonc: every defined member always exists (partyInit), while party->order alone determines who's currently active - partyAddMember/partyRemoveMember (and their cutscene items) now activate/deactivate an existing roster member by index instead of creating/destroying one, with removal compacting order to stay packed. - New PARTY_ADD_MEMBER/PARTY_REMOVE_MEMBER/PARTY_HEAL_MEMBER/PARTY_HEAL_ALL cutscene items. - saveSlotInit/partyInit now return errorret_t and take their target struct directly (saveslot_t*/party_t*) instead of implicitly operating on SAVE.slot; saveSlotReadJSON resets through saveSlotInit rather than duplicating the reset logic. - Test coverage: stub the JSON asset loader in save test fixtures so partyInit's real party.jsonc load runs against an in-memory doc instead of hanging with no asset system initialized. Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
@@ -201,7 +201,7 @@ static void test_saveDeviceSlot_dispatchesToPlatform(void **state) {
|
||||
|
||||
// saveSlotInit() only ever operates on SAVE.slot now, so that's the
|
||||
// write source here.
|
||||
saveSlotInit();
|
||||
saveSlotInit(&SAVE.slot);
|
||||
SAVE.slot.cachedData.playerLevel = 21;
|
||||
|
||||
errorret_t writeRet = saveDeviceSlotWrite(&device, &SAVE.slot, 0);
|
||||
|
||||
Reference in New Issue
Block a user