Working on interpolation

This commit is contained in:
Vladislav Khorev committed 2026-11-06 15:14:48 +06:00
1 parent 23fef6f349
commit 28846b9f25
8 files changed
+231 -51

No files matched your search

+12 -8
View File
@@ -1011,7 +1011,7 @@ namespace FRG
renderer.RotateMatrix(Eigen::Quaternionf(Eigen::AngleAxisf(localState_->cameraInclination, Eigen::Vector3f::UnitX())).toRotationMatrix());
renderer.RotateMatrix(Eigen::Quaternionf(Eigen::AngleAxisf(localState_->cameraAzimuth, Eigen::Vector3f::UnitY())).toRotationMatrix());
const Eigen::Vector3f camTarget =
playerState ? playerState->position : Eigen::Vector3f::Zero();
player ? player->renderPosition() : Eigen::Vector3f::Zero();
renderer.TranslateMatrix({ -camTarget.x(), -camTarget.y(), -camTarget.z() });
renderer.TranslateMatrix({ 0, -1.f, 0 });
@@ -1088,7 +1088,7 @@ namespace FRG
auto playerState = player ? player->stateSnapshot() : nullptr;
const Eigen::Vector3f sceneCenter =
playerState ? playerState->position : Eigen::Vector3f::Zero();
player ? player->renderPosition() : Eigen::Vector3f::Zero();
shadowMap->updateLightSpaceMatrix(sceneCenter);
shadowMap->bind();
@@ -1206,7 +1206,7 @@ namespace FRG
renderer.RotateMatrix(Eigen::Quaternionf(Eigen::AngleAxisf(localState_->cameraAzimuth, Eigen::Vector3f::UnitY())).toRotationMatrix());
auto playerState = player ? player->stateSnapshot() : nullptr;
const Eigen::Vector3f camTarget =
playerState ? playerState->position : Eigen::Vector3f::Zero();
player ? player->renderPosition() : Eigen::Vector3f::Zero();
renderer.TranslateMatrix({ -camTarget.x(), -camTarget.y(), -camTarget.z() });
renderer.TranslateMatrix({ 0, -1.f, 0 });
@@ -1345,7 +1345,7 @@ namespace FRG
renderer.RotateMatrix(Eigen::Quaternionf(Eigen::AngleAxisf(localState_->cameraInclination, Eigen::Vector3f::UnitX())).toRotationMatrix());
renderer.RotateMatrix(Eigen::Quaternionf(Eigen::AngleAxisf(localState_->cameraAzimuth, Eigen::Vector3f::UnitY())).toRotationMatrix());
const Eigen::Vector3f camTarget =
playerState ? playerState->position : Eigen::Vector3f::Zero();
player ? player->renderPosition() : Eigen::Vector3f::Zero();
renderer.TranslateMatrix({ -camTarget.x(), -camTarget.y(), -camTarget.z() });
renderer.TranslateMatrix({ 0, -1.f, 0 });
@@ -1591,7 +1591,7 @@ namespace FRG
renderer.RotateMatrix(Eigen::Quaternionf(Eigen::AngleAxisf(localState_->cameraInclination, Eigen::Vector3f::UnitX())).toRotationMatrix());
renderer.RotateMatrix(Eigen::Quaternionf(Eigen::AngleAxisf(localState_->cameraAzimuth, Eigen::Vector3f::UnitY())).toRotationMatrix());
const Eigen::Vector3f camTarget =
playerState ? playerState->position : Eigen::Vector3f::Zero();
player ? player->renderPosition() : Eigen::Vector3f::Zero();
renderer.TranslateMatrix({ -camTarget.x(), -camTarget.y(), -camTarget.z() });
renderer.TranslateMatrix({ 0, -1.f, 0 });
@@ -1860,7 +1860,6 @@ namespace FRG
if (player) {
player->update(delta, eventFor(gameServer_.localPlayerId()));
dialogueSystem.update(static_cast<int>(delta));
auto playerState = player->stateSnapshot();
if (playerState) updateTriggerZones(playerState->position);
}
@@ -1896,8 +1895,6 @@ namespace FRG
}
}
for (auto& tz : teleportZones) tz.update(static_cast<float>(delta));
auto playerState = player ? player->stateSnapshot() : nullptr;
if (auto* tz = getTargetTeleportZone(*locationState); tz && playerState) {
float dist = (playerState->position - tz->position).norm();
@@ -2179,6 +2176,13 @@ namespace FRG
}
}
void Location::updatePresentation(int64_t delta)
{
dialogueSystem.update(static_cast<int>(delta));
for (auto& tz : teleportZones)
tz.update(static_cast<float>(delta));
}
bool Location::requestDialogueStart(const std::string& dialogueId)
{
return dialogueSystem.startDialogue(dialogueId);