| 583 | } |
| 584 | |
| 585 | void LoadCameras() |
| 586 | { |
| 587 | int cameraCount = ReadCount(); |
| 588 | TENLog("Camera count: " + std::to_string(cameraCount), LogLevel::Info); |
| 589 | |
| 590 | g_Level.Cameras.reserve(cameraCount); |
| 591 | for (int i = 0; i < cameraCount; i++) |
| 592 | { |
| 593 | auto& camera = g_Level.Cameras.emplace_back(); |
| 594 | camera.Index = i; |
| 595 | camera.Position.x = ReadInt32(); |
| 596 | camera.Position.y = ReadInt32(); |
| 597 | camera.Position.z = ReadInt32(); |
| 598 | camera.RoomNumber = ReadInt32(); |
| 599 | camera.Flags = ReadInt32(); |
| 600 | camera.Speed = ReadInt32(); |
| 601 | camera.Name = ReadString(); |
| 602 | |
| 603 | g_GameScriptEntities->AddName(camera.Name, camera); |
| 604 | } |
| 605 | |
| 606 | int numSpotcams = ReadCount(); |
| 607 | TENLog("Flyby camera count: " + std::to_string(numSpotcams), LogLevel::Info); |
| 608 | |
| 609 | // TODO: Read properly! |
| 610 | SpotCam.resize(numSpotcams); |
| 611 | if (numSpotcams != 0) |
| 612 | ReadBytes(SpotCam.data(), numSpotcams * sizeof(SPOTCAM)); |
| 613 | |
| 614 | int sinkCount = ReadCount(); |
| 615 | TENLog("Sink count: " + std::to_string(sinkCount), LogLevel::Info); |
| 616 | |
| 617 | g_Level.Sinks.reserve(sinkCount); |
| 618 | for (int i = 0; i < sinkCount; i++) |
| 619 | { |
| 620 | auto& sink = g_Level.Sinks.emplace_back(); |
| 621 | sink.Position.x = ReadInt32(); |
| 622 | sink.Position.y = ReadInt32(); |
| 623 | sink.Position.z = ReadInt32(); |
| 624 | sink.Strength = ReadInt32(); |
| 625 | sink.BoxIndex = ReadInt32(); |
| 626 | sink.Name = ReadString(); |
| 627 | |
| 628 | g_GameScriptEntities->AddName(sink.Name, sink); |
| 629 | } |
| 630 | } |
| 631 | |
| 632 | void LoadTextures() |
| 633 | { |
no test coverage detected