/** * Restore actor data */ void RestoreActors(int numActors, PSAVED_ACTOR sActorInfo) { int i, aIndex; for (i = 0; i < numActors; i++) { aIndex = sActorInfo[i].actorID - 1; actorInfo[aIndex].bHidden = sActorInfo[i].bHidden; // Play the same reel. if (sActorInfo[i].presFilm != 0) { RestoreActorReels(sActorInfo[i].presFilm, sActorInfo[i].actorID, sActorInfo[i].presPlayX, sActorInfo[i].presPlayY); } } }
/** * Checks that all non-moving actors are playing the same reel as when * the scene was saved. * Also 'stand' all the moving actors at their saved positions. */ void sortActors(SAVED_DATA *sd) { assert(!TinselV2); for (int i = 0; i < sd->NumSavedActors; i++) { ActorsLife(sd->SavedActorInfo[i].actorID, sd->SavedActorInfo[i].bAlive); // Should be playing the same reel. if (sd->SavedActorInfo[i].presFilm != 0) { if (!actorAlive(sd->SavedActorInfo[i].actorID)) continue; RestoreActorReels(sd->SavedActorInfo[i].presFilm, sd->SavedActorInfo[i].presRnum, sd->SavedActorInfo[i].zFactor, sd->SavedActorInfo[i].presPlayX, sd->SavedActorInfo[i].presPlayY); } } RestoreAuxScales(sd->SavedMoverInfo); for (int i = 0; i < MAX_MOVERS; i++) { if (sd->SavedMoverInfo[i].bActive) Stand(nullContext, sd->SavedMoverInfo[i].actorID, sd->SavedMoverInfo[i].objX, sd->SavedMoverInfo[i].objY, sd->SavedMoverInfo[i].hLastfilm); } }