@@ -489,9 +489,11 @@ static void reset_temp_room()
489489 troom = RoomStatus ();
490490}
491491
492- static void init_object_states (size_t from, size_t to)
492+ // Initializes object states in the current RoomState object,
493+ // copying default properties from RoomStruct, in the element range [start, end).
494+ static void init_object_states (size_t start, size_t end)
493495{
494- for (uint32_t i = from ; i <= to ; ++i)
496+ for (uint32_t i = start ; i < end ; ++i)
495497 {
496498 const auto &trobj = thisroom.Objects [i];
497499 auto &crobj = croom->obj [i];
@@ -655,7 +657,7 @@ void load_new_room(int newnum, CharacterInfo *forchar)
655657 croom->objProps .resize (thisroom.Objects .size ());
656658 croom->intrObject .resize (thisroom.Objects .size ());
657659 if (was_obj_states < thisroom.Objects .size ())
658- init_object_states (was_obj_states, thisroom.Objects .size () - 1 );
660+ init_object_states (was_obj_states, thisroom.Objects .size ());
659661 }
660662
661663 // Copy the legacy interaction's Times Run information (for old games)
@@ -690,7 +692,7 @@ void load_new_room(int newnum, CharacterInfo *forchar)
690692 croom->obj .resize (croom->numobj );
691693 croom->objProps .resize (croom->numobj );
692694 croom->intrObject .resize (croom->numobj );
693- init_object_states (0u , thisroom.Objects .size () - 1 );
695+ init_object_states (0u , thisroom.Objects .size ());
694696 for (size_t i = 0 ; i < (size_t )MAX_WALK_BEHINDS; ++i)
695697 croom->walkbehind_base [i] = thisroom.WalkBehinds [i].Baseline ;
696698
0 commit comments