• X xray-16
  • Информация о проекте
    • Информация о проекте
    • Активность
    • Метки
    • Участники
  • Репозиторий
    • Репозиторий
    • Файлы
    • Коммиты
    • Ветки
    • Теги
    • Участники
    • Диаграмма
    • Сравнение
  • Задачи 216
    • Задачи 216
    • Список
    • Доски
    • Спринты
  • Запросы на слияние 31
    • Запросы на слияние 31
  • CI/CD
    • CI/CD
    • Конвейеры
    • Задания
    • Расписания
  • Развертывания
    • Развертывания
    • Окружения
    • Релизы
  • Пакеты и реестры
    • Пакеты и реестры
    • Реестр пакетов
    • Реестр контейнеров
  • Мониторинг
    • Мониторинг
    • Инциденты
  • Аналитика
    • Аналитика
    • Поток ценности
    • CI/CD
    • Репозиторий
  • Wiki
    • Wiki
  • Сниппеты
    • Сниппеты
  • Активность
  • Диаграмма
  • Создать новую задачу
  • Задания
  • Коммиты
  • Доски с задачами
Свернуть панель
  • OpenXRay
  • xray-16
  • Запросы на слияние
  • !1358

[Bugfix]: Save/load camera data with packet, fix incorrect camera yaw/pitch/roll on load

  • Ревью изменений

  • Скачать
  • Почтовые патчи
  • Простое отличие
Открыто xottab-duty запросил слияние github/fork/yohjimane/fix/camera_params в dev Май 30, 2023
  • Обзор 0
  • Коммиты 2
  • Конвейеры 1
  • Изменения 1

Created by: yohjimane

Description:

Camera yaw/pitch/roll can be incorrect when loading a save.

Bug repro steps:

  1. Load new game
  2. Look all the way up
  3. Save game
  4. check cam_Active()->pitch evaluates to -1.5 (which is within limits. 1.5 = looking down, -1.5 = looking up)
  5. Load game from step 3
  6. Observe with breakpoint in CameraBase.h line 79: cam_Active()->pitch is set to value of o_torso (evaluates to ~4.865). This value is both incorrect, and invalid for pitch, as pitch values must be between -1.5 to 1.5.

Notes:

This bug is present, but does not cause any direct problems (that i can notice) in latest OpenXray dev build (429519f).

I found this bug while working on some hud inertia logic for my subproject, where some logic dependent on camera yaw value would get messed up after reloading a save while looking upwards.

Solution:

The bug is fixed by using packet to save and load camera yaw/pitch/roll. Now, we only initialize yaw/pitch/roll values from CSE_ALifeCreatureAbstract::o_torso when packet data is missing.

Initializing values from CSE_ALifeCreatureAbstract::o_torso is necessary for correct camera orientation when loading into new levels.

Unfortunately this approach will make save files incompatible.

Ответственный
Назначить
Проверяющие
Запросить ревью
Оценка трудозатрат
Исходная ветка: github/fork/yohjimane/fix/camera_params