/// <summary> /// Resets the current map to a default state - typically no monsters and NPCs in there default positions /// </summary> private List <NonPlayerCharacterReference> LoadSmallMap(SmallMapReferences.SingleMapReference singleMapReference, TimeOfDay timeOfDay, PlayerCharacterRecords playerCharacterRecords, bool bLoadFromDisk) { List <NonPlayerCharacterReference> npcCurrentMapRefs = null; npcCurrentMapRefs = NPCRefs.GetNonPlayerCharactersByLocation(singleMapReference.MapLocation); if (bLoadFromDisk) { Debug.WriteLine("Loading character positions from disk..."); _smallMapAnimationStates.Load(MapCharacterAnimationStates.MapCharacterAnimationStatesFiles.SAVED_GAM, bLoadFromDisk); } else { Debug.WriteLine("Loading default character positions..."); } for (int i = 0; i < MAX_MAP_CHARACTERS; i++) { if (i == 0) { Characters.Add(new MapCharacter()); continue; } NonPlayerCharacterReference npcRef = npcCurrentMapRefs[i]; MapCharacterState mapCharState; MapCharacterAnimationState charAnimState = null; NonPlayerCharacterMovement charMovement = Movements.GetMovement(i); if (!bLoadFromDisk) { // we keep the object because we may be required to save this to disk - but since we are leaving the map there is no need to save their movements charMovement.ClearMovements(); mapCharState = new MapCharacterState(_tileRefs, npcRef, i, timeOfDay); } else { // character states are only loaded when forced from disk and only on small maps mapCharState = _charStates.GetCharacterState(i); if (CurrentAnimationState.HasAnyAnimationStates()) { charAnimState = CurrentAnimationState.GetCharacterState(mapCharState.CharacterAnimationStateIndex); } } Characters.Add(new MapCharacter(npcRef, charAnimState, mapCharState, charMovement, timeOfDay, playerCharacterRecords)); } return(npcCurrentMapRefs); }