[Scummvm-git-logs] scummvm master -> 271c7746f2ef7edf45fdbd95a207f1d58674dbe6
aquadran
noreply at scummvm.org
Thu Sep 4 19:49:51 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
271c7746f2 WINTERMUTE: Small sync with original code
Commit: 271c7746f2ef7edf45fdbd95a207f1d58674dbe6
https://github.com/scummvm/scummvm/commit/271c7746f2ef7edf45fdbd95a207f1d58674dbe6
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2025-09-04T21:49:46+02:00
Commit Message:
WINTERMUTE: Small sync with original code
Changed paths:
engines/wintermute/ad/ad_object.cpp
engines/wintermute/ad/ad_scene_geometry.cpp
engines/wintermute/base/gfx/xactive_animation.cpp
engines/wintermute/base/gfx/xframe_node.cpp
engines/wintermute/base/particles/part_emitter.cpp
engines/wintermute/base/particles/part_particle.cpp
engines/wintermute/base/scriptables/script_ext_math.cpp
engines/wintermute/base/scriptables/script_value.cpp
diff --git a/engines/wintermute/ad/ad_object.cpp b/engines/wintermute/ad/ad_object.cpp
index a7fbc3f5ec6..72a46138df3 100644
--- a/engines/wintermute/ad/ad_object.cpp
+++ b/engines/wintermute/ad/ad_object.cpp
@@ -160,8 +160,7 @@ bool AdObject::playAnim(const char *filename) {
bool res = _animSprite->loadFile(filename);
if (DID_FAIL(res)) {
_game->LOG(res, "AdObject::PlayAnim: error loading temp sprite (object:\"%s\" sprite:\"%s\")", _name, filename);
- delete _animSprite;
- _animSprite = nullptr;
+ SAFE_DELETE(_animSprite);
return res;
}
_state = STATE_PLAYING_ANIM;
diff --git a/engines/wintermute/ad/ad_scene_geometry.cpp b/engines/wintermute/ad/ad_scene_geometry.cpp
index c4a9d5bafcf..f05ebd5e72f 100644
--- a/engines/wintermute/ad/ad_scene_geometry.cpp
+++ b/engines/wintermute/ad/ad_scene_geometry.cpp
@@ -1271,11 +1271,7 @@ bool AdSceneGeometry::persist(BasePersistenceManager *persistMgr) {
light->persist(persistMgr);
delete light;
}
-
- if (name) {
- delete[] name;
- name = nullptr;
- }
+ SAFE_DELETE_ARRAY(name);
}
}
createLights();
@@ -1303,11 +1299,7 @@ bool AdSceneGeometry::persist(BasePersistenceManager *persistMgr) {
block->persist(persistMgr);
delete block;
}
-
- if (name) {
- delete[] name;
- name = nullptr;
- }
+ SAFE_DELETE_ARRAY(name);
}
}
@@ -1334,11 +1326,7 @@ bool AdSceneGeometry::persist(BasePersistenceManager *persistMgr) {
plane->persist(persistMgr);
delete plane;
}
-
- if (name) {
- delete[] name;
- name = nullptr;
- }
+ SAFE_DELETE_ARRAY(name);
}
}
@@ -1365,11 +1353,7 @@ bool AdSceneGeometry::persist(BasePersistenceManager *persistMgr) {
generic->persist(persistMgr);
delete generic;
}
-
- if (name) {
- delete[] name;
- name = nullptr;
- }
+ SAFE_DELETE_ARRAY(name);
}
}
diff --git a/engines/wintermute/base/gfx/xactive_animation.cpp b/engines/wintermute/base/gfx/xactive_animation.cpp
index 3f6f3d6f439..5f5589a0bef 100644
--- a/engines/wintermute/base/gfx/xactive_animation.cpp
+++ b/engines/wintermute/base/gfx/xactive_animation.cpp
@@ -100,6 +100,7 @@ bool ActiveAnimation::update(int slot, bool prevFrameOnly, float lerpValue, bool
}
if (_finished) {
localTime = _animation->getTotalTime();
+ // prevent corner case
if (localTime != 0)
localTime--;
}
@@ -156,7 +157,7 @@ bool ActiveAnimation::persist(BasePersistenceManager *persistMgr) {
_animation = nullptr;
}
- delete[] animName;
+ SAFE_DELETE_ARRAY(animName);
}
return true;
diff --git a/engines/wintermute/base/gfx/xframe_node.cpp b/engines/wintermute/base/gfx/xframe_node.cpp
index b4cc3adfbaf..b61223e013c 100644
--- a/engines/wintermute/base/gfx/xframe_node.cpp
+++ b/engines/wintermute/base/gfx/xframe_node.cpp
@@ -160,7 +160,7 @@ bool FrameNode::loadFromXData(const Common::String &filename, XModel *model, XFi
if (res)
_frames.add(childFrame);
else
- delete childFrame;
+ SAFE_DELETE(childFrame);
return res;
} else if (objectType == kXClassAnimTicksPerSecond) {
if (!xobj->getXAnimTicksPerSecondObject()) {
diff --git a/engines/wintermute/base/particles/part_emitter.cpp b/engines/wintermute/base/particles/part_emitter.cpp
index 26fc544246a..6e9e717d510 100644
--- a/engines/wintermute/base/particles/part_emitter.cpp
+++ b/engines/wintermute/base/particles/part_emitter.cpp
@@ -1137,8 +1137,7 @@ bool PartEmitter::scSetProperty(const char *name, ScValue *value) {
// EmitEvent
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "EmitEvent") == 0) {
- delete[] _emitEvent;
- _emitEvent = nullptr;
+ SAFE_DELETE_ARRAY(_emitEvent);
if (!value->isNULL()) {
BaseUtils::setString(&_emitEvent, value->getString());
}
diff --git a/engines/wintermute/base/particles/part_particle.cpp b/engines/wintermute/base/particles/part_particle.cpp
index f9cb947da5b..8e2e767cb90 100644
--- a/engines/wintermute/base/particles/part_particle.cpp
+++ b/engines/wintermute/base/particles/part_particle.cpp
@@ -260,8 +260,7 @@ bool PartParticle::persist(BasePersistenceManager *persistMgr) {
SystemClassRegistry::getInstance()->_disabled = true;
setSprite(filename);
SystemClassRegistry::getInstance()->_disabled = false;
- delete[] filename;
- filename = nullptr;
+ SAFE_DELETE_ARRAY(filename);
}
// initialise to default
diff --git a/engines/wintermute/base/scriptables/script_ext_math.cpp b/engines/wintermute/base/scriptables/script_ext_math.cpp
index afbed34bdd5..a153a86ab56 100644
--- a/engines/wintermute/base/scriptables/script_ext_math.cpp
+++ b/engines/wintermute/base/scriptables/script_ext_math.cpp
@@ -119,7 +119,7 @@ bool SXMath::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "Cos") == 0) {
stack->correctParams(1);
- stack->pushFloat(cos(Math::deg2rad<double>(stack->pop()->getFloat())));
+ stack->pushFloat(cos(degreeToRadian(stack->pop()->getFloat())));
return STATUS_OK;
}
@@ -128,7 +128,7 @@ bool SXMath::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "Cosh") == 0) {
stack->correctParams(1);
- stack->pushFloat(cosh(Math::deg2rad<double>(stack->pop()->getFloat())));
+ stack->pushFloat(cosh(degreeToRadian(stack->pop()->getFloat())));
return STATUS_OK;
}
@@ -185,7 +185,7 @@ bool SXMath::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "Sin") == 0) {
stack->correctParams(1);
- stack->pushFloat(sin(Math::deg2rad<double>(stack->pop()->getFloat())));
+ stack->pushFloat(sin(degreeToRadian(stack->pop()->getFloat())));
return STATUS_OK;
}
@@ -194,7 +194,7 @@ bool SXMath::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "Sinh") == 0) {
stack->correctParams(1);
- stack->pushFloat(sinh(Math::deg2rad<double>(stack->pop()->getFloat())));
+ stack->pushFloat(sinh(degreeToRadian(stack->pop()->getFloat())));
return STATUS_OK;
}
@@ -203,7 +203,7 @@ bool SXMath::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "Tan") == 0) {
stack->correctParams(1);
- stack->pushFloat(tan(Math::deg2rad<double>(stack->pop()->getFloat())));
+ stack->pushFloat(tan(degreeToRadian(stack->pop()->getFloat())));
return STATUS_OK;
}
@@ -212,7 +212,7 @@ bool SXMath::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "Tanh") == 0) {
stack->correctParams(1);
- stack->pushFloat(tanh(Math::deg2rad<double>(stack->pop()->getFloat())));
+ stack->pushFloat(tanh(degreeToRadian(stack->pop()->getFloat())));
return STATUS_OK;
}
@@ -230,7 +230,7 @@ bool SXMath::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "DegToRad") == 0) {
stack->correctParams(1);
- stack->pushFloat(Math::deg2rad<double>(stack->pop()->getFloat()));
+ stack->pushFloat(degreeToRadian(stack->pop()->getFloat()));
return STATUS_OK;
}
@@ -239,7 +239,7 @@ bool SXMath::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "RadToDeg") == 0) {
stack->correctParams(1);
- stack->pushFloat(Math::rad2deg<double>(stack->pop()->getFloat()));
+ stack->pushFloat(radianToDegree(stack->pop()->getFloat()));
return STATUS_OK;
} else {
return STATUS_FAILED;
@@ -270,6 +270,15 @@ ScValue *SXMath::scGetProperty(const Common::String &name) {
}
}
+//////////////////////////////////////////////////////////////////////////
+double SXMath::degreeToRadian(double value) {
+ return value * (M_PI / 180.0f);
+}
+
+//////////////////////////////////////////////////////////////////////////
+double SXMath::radianToDegree(double value) {
+ return value * (180.0f / M_PI);
+}
//////////////////////////////////////////////////////////////////////////
bool SXMath::persist(BasePersistenceManager *persistMgr) {
diff --git a/engines/wintermute/base/scriptables/script_value.cpp b/engines/wintermute/base/scriptables/script_value.cpp
index 7fe07d5f78e..d45f33b5a0e 100644
--- a/engines/wintermute/base/scriptables/script_value.cpp
+++ b/engines/wintermute/base/scriptables/script_value.cpp
@@ -447,9 +447,9 @@ void ScValue::setString(const Common::String &val) {
//////////////////////////////////////////////////////////////////////////
void ScValue::setStringVal(const char *val) {
delete[] _valString;
- _valString = nullptr;
if (val == nullptr) {
+ _valString = nullptr;
return;
}
More information about the Scummvm-git-logs
mailing list