[Scummvm-git-logs] scummvm master -> deda5c0a58abbf640e824da7511edc41c324e30b

neuromancer noreply at scummvm.org
Sat Nov 15 14:37:49 UTC 2025


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
c9cb62184b FREESCAPE: avoid visual glitches with better offsets and near clip plane values
deda5c0a58 FREESCAPE: fix max size of water in eclipse for zx and c64


Commit: c9cb62184bc115d99776d9629322fcd52a74ed22
    https://github.com/scummvm/scummvm/commit/c9cb62184bc115d99776d9629322fcd52a74ed22
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2025-11-15T15:37:13+01:00

Commit Message:
FREESCAPE: avoid visual glitches with better offsets and near clip plane values

Changed paths:
    engines/freescape/area.cpp
    engines/freescape/freescape.cpp
    engines/freescape/games/castle/castle.cpp


diff --git a/engines/freescape/area.cpp b/engines/freescape/area.cpp
index d3e675a288f..7dd57ee3efd 100644
--- a/engines/freescape/area.cpp
+++ b/engines/freescape/area.cpp
@@ -242,7 +242,7 @@ void Area::draw(Freescape::Renderer *gfx, uint32 animationTicks, Math::Vector3d
 	ObjectArray nonPlanarObjects;
 	Object *floor = nullptr;
 	Common::HashMap<Object *, float> sizes;
-	float offset = 1.0 / _scale;
+	float offset = MAX(0.15, 1.0 / _scale);
 
 	for (auto &obj : _drawableObjects) {
 		if (!obj->isDestroyed() && !obj->isInvisible()) {
diff --git a/engines/freescape/freescape.cpp b/engines/freescape/freescape.cpp
index 41db4af5a6e..308edcb0196 100644
--- a/engines/freescape/freescape.cpp
+++ b/engines/freescape/freescape.cpp
@@ -162,7 +162,9 @@ FreescapeEngine::FreescapeEngine(OSystem *syst, const ADGameDescription *gd)
 	_extraBuffer = nullptr;
 
 	_lastFrame = 0;
-	_nearClipPlane = 2;
+	// The near clip plane of 2 is useful for Driller and Dark Side as they have open spaces without too much
+	// close-up detail. Other games need a smaller value to avoid clipping of nearby objects
+	_nearClipPlane = (isDriller() || isDark()) ? 2 : 0.5;
 	_farClipPlane = 8192 + 1802; // Added some extra distance to avoid flickering
 
 	// These depends on the specific game
@@ -821,7 +823,7 @@ Common::Error FreescapeEngine::run() {
 	if (saveSlot >= 0) { // load the savegame
 		initGameState();
 		loadGameState(saveSlot);
-	} 
+	}
 
 	g_system->showMouse(false);
 	g_system->lockMouse(true);
diff --git a/engines/freescape/games/castle/castle.cpp b/engines/freescape/games/castle/castle.cpp
index 39ef9718d84..c9057345bad 100644
--- a/engines/freescape/games/castle/castle.cpp
+++ b/engines/freescape/games/castle/castle.cpp
@@ -339,7 +339,7 @@ void CastleEngine::gotoArea(uint16 areaID, int entranceID) {
 	assert(_areaMap.contains(areaID));
 	_currentArea = _areaMap[areaID];
 	_currentArea->show();
-	_maxFallingDistance = MAX(32, _currentArea->getScale() * 16 - 2); 
+	_maxFallingDistance = MAX(32, _currentArea->getScale() * 16 - 2);
 
 	if (entranceID > 0)
 		traverseEntrance(entranceID);
@@ -539,7 +539,7 @@ void CastleEngine::pressedKey(const int keycode) {
 	} else if (keycode == kActionFaceForward) {
 		_pitch = 0;
 		updateCamera();
-	} else if (keycode == kActionActivate) 
+	} else if (keycode == kActionActivate)
 		activate();
 }
 


Commit: deda5c0a58abbf640e824da7511edc41c324e30b
    https://github.com/scummvm/scummvm/commit/deda5c0a58abbf640e824da7511edc41c324e30b
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2025-11-15T15:37:13+01:00

Commit Message:
FREESCAPE: fix max size of water in eclipse for zx and c64

Changed paths:
    engines/freescape/games/eclipse/c64.cpp
    engines/freescape/games/eclipse/eclipse.cpp
    engines/freescape/games/eclipse/zx.cpp


diff --git a/engines/freescape/games/eclipse/c64.cpp b/engines/freescape/games/eclipse/c64.cpp
index 2e37c562f95..0842eca2ac6 100644
--- a/engines/freescape/games/eclipse/c64.cpp
+++ b/engines/freescape/games/eclipse/c64.cpp
@@ -29,6 +29,8 @@ namespace Freescape {
 
 void EclipseEngine::initC64() {
 	_viewArea = Common::Rect(32, 32, 288, 136);
+
+	_maxEnergy = 35;
 }
 
 extern byte kC64Palette[16][3];
diff --git a/engines/freescape/games/eclipse/eclipse.cpp b/engines/freescape/games/eclipse/eclipse.cpp
index 9193db013e0..54e71fa788a 100644
--- a/engines/freescape/games/eclipse/eclipse.cpp
+++ b/engines/freescape/games/eclipse/eclipse.cpp
@@ -45,6 +45,12 @@ EclipseEngine::EclipseEngine(OSystem *syst, const ADGameDescription *gd) : Frees
 	_soundIndexCrushed = -1;
 	_soundIndexMissionComplete = -1;
 
+	_maxEnergy = 27;
+	_maxShield = 50;
+
+	_initialEnergy = 16;
+	_initialShield = 50;
+
 	if (isDOS())
 		initDOS();
 	else if (isCPC())
@@ -74,12 +80,6 @@ EclipseEngine::EclipseEngine(OSystem *syst, const ADGameDescription *gd) : Frees
 	_angleRotations.push_back(10);
 	_angleRotations.push_back(15);
 
-	_maxEnergy = 27;
-	_maxShield = 50;
-
-	_initialEnergy = 16;
-	_initialShield = 50;
-
 	_endArea = 1;
 	_endEntrance = 33;
 
diff --git a/engines/freescape/games/eclipse/zx.cpp b/engines/freescape/games/eclipse/zx.cpp
index 0747e51ad03..d793c4d0110 100644
--- a/engines/freescape/games/eclipse/zx.cpp
+++ b/engines/freescape/games/eclipse/zx.cpp
@@ -29,11 +29,11 @@ namespace Freescape {
 
 void EclipseEngine::initZX() {
 	_viewArea = Common::Rect(56, 36, 265, 139);
-	_maxEnergy = 63;
-	_maxShield = 63;
+	_maxEnergy = 25;
+	_maxShield = 50;
 
 	_soundIndexShoot = 5;
-	_soundIndexCollide = -1; // Scripted 
+	_soundIndexCollide = -1; // Scripted
 	_soundIndexStepDown = 12;
 	_soundIndexStepUp = 12;
 	_soundIndexMenu = -1;




More information about the Scummvm-git-logs mailing list