[Scummvm-git-logs] scummvm master -> 7d47c43b57fba962ec68a49c4fd60c704588d308
mgerhardy
noreply at scummvm.org
Mon Dec 27 18:24:10 UTC 2021
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
7d47c43b57 TWINE: Weird colors in sewers on Citadel island
Commit: 7d47c43b57fba962ec68a49c4fd60c704588d308
https://github.com/scummvm/scummvm/commit/7d47c43b57fba962ec68a49c4fd60c704588d308
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-12-27T19:23:56+01:00
Commit Message:
TWINE: Weird colors in sewers on Citadel island
https://bugs.scummvm.org/ticket/13163
Changed paths:
engines/twine/renderer/renderer.cpp
engines/twine/renderer/renderer.h
engines/twine/scene/scene.h
diff --git a/engines/twine/renderer/renderer.cpp b/engines/twine/renderer/renderer.cpp
index c2097ab97a4..678306f7e3f 100644
--- a/engines/twine/renderer/renderer.cpp
+++ b/engines/twine/renderer/renderer.cpp
@@ -171,7 +171,8 @@ IVec3 Renderer::getCameraAnglePositions(int32 x, int32 y, int32 z) {
IVec3 Renderer::translateGroup(int32 x, int32 y, int32 z) {
const int32 vx = (_shadeMatrix.row1.x * x + _shadeMatrix.row1.y * y + _shadeMatrix.row1.z * z) / SCENE_SIZE_HALF;
const int32 vy = (_shadeMatrix.row2.x * x + _shadeMatrix.row2.y * y + _shadeMatrix.row2.z * z) / SCENE_SIZE_HALF;
- return IVec3(vx, vy, vy);
+ const int32 vz = (_shadeMatrix.row3.x * x + _shadeMatrix.row3.y * y + _shadeMatrix.row3.z * z) / SCENE_SIZE_HALF;
+ return IVec3(vx, vy, vz);
}
void Renderer::setCameraAngle(int32 transPosX, int32 transPosY, int32 transPosZ, int32 rotPosX, int32 rotPosY, int32 rotPosZ, int32 param6) {
@@ -372,10 +373,10 @@ void Renderer::setLightVector(int32 angleX, int32 angleY, int32 angleZ) {
/*_cameraAngleX = angleX;
_cameraAngleY = angleY;
_cameraAngleZ = angleZ;*/
-
+ const int32 normalUnit = 64;
const IVec3 renderAngle(angleX, angleY, angleZ);
applyRotation(&_shadeMatrix, &_baseMatrix, renderAngle);
- _lightPos = translateGroup(0, 0, 59);
+ _lightNorm = translateGroup(0, 0, normalUnit - 5);
}
static FORCEINLINE int16 clamp(int16 x, int16 a, int16 b) {
@@ -1493,7 +1494,7 @@ bool Renderer::renderAnimatedModel(ModelData *modelData, const BodyData &bodyDat
if (numOfShades) {
int32 numShades = numOfShades;
- _shadeMatrix = *lightMatrix * _lightPos;
+ _shadeMatrix = *lightMatrix * _lightNorm;
do { // for each normal
const BodyShade &shadePtr = bodyData.getShade(shadeIndex);
diff --git a/engines/twine/renderer/renderer.h b/engines/twine/renderer/renderer.h
index 7704cb4f433..467d821484e 100644
--- a/engines/twine/renderer/renderer.h
+++ b/engines/twine/renderer/renderer.h
@@ -161,7 +161,7 @@ private:
IMatrix3x3 _baseMatrix;
IMatrix3x3 _matricesTable[30 + 1];
IMatrix3x3 _shadeMatrix;
- IVec3 _lightPos;
+ IVec3 _lightNorm;
IVec3 _baseRotPos;
RenderCommand _renderCmds[1000];
diff --git a/engines/twine/scene/scene.h b/engines/twine/scene/scene.h
index 5ebf3fa3e76..95a636a5a8e 100644
--- a/engines/twine/scene/scene.h
+++ b/engines/twine/scene/scene.h
@@ -172,8 +172,8 @@ public:
int32 _holomapTrajectory = -1;
TextBankId _sceneTextBank = TextBankId::None;
- int32 _alphaLight = ANGLE_0;
- int32 _betaLight = ANGLE_0;
+ int32 _alphaLight = ANGLE_315;
+ int32 _betaLight = ANGLE_334;
IVec3 _newHeroPos;
More information about the Scummvm-git-logs
mailing list