[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