[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