void ResetRoomSubBlocks()
{
// Reset room color for V1 zak
if (Game.Version <= 1)
Gdi.RoomPalette[0] = 0;
_boxMatrix.Clear();
_boxMatrix.AddRange(roomData.BoxMatrix);
for (int i = 0; i < _scaleSlots.Length; i++)
{
_scaleSlots[i] = new ScaleSlot();
}
for (int i = 1; i <= roomData.Scales.Length; i++)
{
var scale = roomData.Scales[i - 1];
if (Game.Version == 8 || scale.Scale1 != 0 || scale.Y1 != 0 || scale.Scale2 != 0 || scale.Y2 != 0)
{
SetScaleSlot(i, 0, scale.Y1, scale.Scale1, 0, scale.Y2, scale.Scale2);
}
}
Array.Clear(_extraBoxFlags, 0, _extraBoxFlags.Length);
_boxes = new Box[roomData.Boxes.Count];
for (int i = 0; i < roomData.Boxes.Count; i++)
{
var box = roomData.Boxes[i];
_boxes[i] = new Box
{
Flags = box.Flags,
Llx = box.Llx,
Lly = box.Lly,
Lrx = box.Lrx,
Lry = box.Lry,
Mask = box.Mask,
Scale = box.Scale,
ScaleSlot = box.ScaleSlot,
Ulx = box.Ulx,
Uly = box.Uly,
Urx = box.Urx,
Ury = box.Ury
};
}
Array.Copy(roomData.ColorCycle, _colorCycle, roomData.ColorCycle.Length);
Gdi.RoomChanged(CurrentRoomData);
}
}