[Scummvm-git-logs] scummvm master -> ec107971db335eab0d90cd9550777436a3a42811
aquadran
noreply at scummvm.org
Tue Aug 12 14:32:55 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:
ec107971db WINTERMUTE: Synced AD code with original
Commit: ec107971db335eab0d90cd9550777436a3a42811
https://github.com/scummvm/scummvm/commit/ec107971db335eab0d90cd9550777436a3a42811
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2025-08-12T16:32:49+02:00
Commit Message:
WINTERMUTE: Synced AD code with original
Changed paths:
engines/wintermute/ad/ad_actor.cpp
engines/wintermute/ad/ad_actor_3dx.cpp
engines/wintermute/ad/ad_game.cpp
engines/wintermute/ad/ad_inventory_box.h
engines/wintermute/ad/ad_item.cpp
engines/wintermute/ad/ad_item.h
engines/wintermute/ad/ad_node_state.cpp
engines/wintermute/ad/ad_node_state.h
engines/wintermute/ad/ad_object.cpp
engines/wintermute/ad/ad_object.h
engines/wintermute/ad/ad_region.cpp
engines/wintermute/ad/ad_region.h
engines/wintermute/ad/ad_response.cpp
engines/wintermute/ad/ad_response_context.h
engines/wintermute/ad/ad_rot_level.h
engines/wintermute/ad/ad_scale_level.cpp
engines/wintermute/ad/ad_scale_level.h
engines/wintermute/ad/ad_scene.cpp
engines/wintermute/ad/ad_scene.h
engines/wintermute/ad/ad_scene_node.h
engines/wintermute/ad/ad_scene_state.cpp
engines/wintermute/ad/ad_scene_state.h
engines/wintermute/ad/ad_sentence.cpp
engines/wintermute/ad/ad_sentence.h
engines/wintermute/ad/ad_talk_def.cpp
engines/wintermute/ad/ad_talk_node.cpp
engines/wintermute/ad/ad_waypoint_group.h
engines/wintermute/base/base_object.cpp
engines/wintermute/base/base_object.h
diff --git a/engines/wintermute/ad/ad_actor.cpp b/engines/wintermute/ad/ad_actor.cpp
index a2e6a05730d..3629651116e 100644
--- a/engines/wintermute/ad/ad_actor.cpp
+++ b/engines/wintermute/ad/ad_actor.cpp
@@ -1010,7 +1010,7 @@ bool AdActor::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
return STATUS_OK;
}
AdObject *obj = (AdObject *)val->getNative();
- if (!obj || obj->getType() != OBJECT_ENTITY) {
+ if (!obj || obj->_type != OBJECT_ENTITY) {
script->runtimeError("actor.%s method accepts an entity reference only", name);
stack->pushNULL();
return STATUS_OK;
diff --git a/engines/wintermute/ad/ad_actor_3dx.cpp b/engines/wintermute/ad/ad_actor_3dx.cpp
index fb5ccb31464..3accc4d33dd 100644
--- a/engines/wintermute/ad/ad_actor_3dx.cpp
+++ b/engines/wintermute/ad/ad_actor_3dx.cpp
@@ -430,9 +430,6 @@ bool AdActor3DX::display() {
_partEmitter->display();
}
- // this functionality appearently was removed in either WME lite
- // or in the ScummVM port. It might have been replaced as well
- // not sure what to do about it right now
// accessibility
// if (_gameRef->_accessMgr->GetActiveObject() == this) {
// _gameRef->_accessMgr->SetHintRect(&_xmodel->m_BoundingRect);
@@ -1597,7 +1594,7 @@ bool AdActor3DX::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
}
AdObject *obj = (AdObject *)val->getNative();
- if (!obj || obj->getType() != OBJECT_ENTITY) {
+ if (!obj || obj->_type != OBJECT_ENTITY) {
script->runtimeError("actor.%s method accepts an entity reference only", name);
stack->pushNULL();
return true;
diff --git a/engines/wintermute/ad/ad_game.cpp b/engines/wintermute/ad/ad_game.cpp
index 571195f2d44..5ffa5022378 100644
--- a/engines/wintermute/ad/ad_game.cpp
+++ b/engines/wintermute/ad/ad_game.cpp
@@ -1664,7 +1664,7 @@ bool AdGame::handleCustomActionStart(BaseGameCustomAction action) {
if (_scene && _scene->getSceneObjects(objects, true)) {
for (int32 i = 0; i < objects.getSize(); i++) {
BaseRegion *region;
- if (objects[i]->getType() != OBJECT_ENTITY ||
+ if (objects[i]->_type != OBJECT_ENTITY ||
!objects[i]->_active ||
!objects[i]->_registrable ||
(!(region = ((AdEntity *)objects[i])->_region))
@@ -1826,7 +1826,7 @@ AdSceneState *AdGame::getSceneState(const char *filename, bool saving) {
}
for (int32 i = 0; i < _sceneStates.getSize(); i++) {
- if (scumm_stricmp(_sceneStates[i]->getFilename(), filenameCor) == 0) {
+ if (scumm_stricmp(_sceneStates[i]->_filename, filenameCor) == 0) {
delete[] filenameCor;
return _sceneStates[i];
}
@@ -1971,7 +1971,7 @@ bool AdGame::endDlgBranch(const char *branchName, const char *scriptName, const
//////////////////////////////////////////////////////////////////////////
bool AdGame::clearBranchResponses(char *name) {
for (int32 i = 0; i < _responsesBranch.getSize(); i++) {
- if (scumm_stricmp(name, _responsesBranch[i]->getContext()) == 0) {
+ if (scumm_stricmp(name, _responsesBranch[i]->_context) == 0) {
delete _responsesBranch[i];
_responsesBranch.removeAt(i);
i--;
@@ -1999,7 +1999,7 @@ bool AdGame::branchResponseUsed(int id) const {
char *context = _dlgPendingBranches.getSize() > 0 ? _dlgPendingBranches[_dlgPendingBranches.getSize() - 1] : nullptr;
for (int32 i = 0; i < _responsesBranch.getSize(); i++) {
if (_responsesBranch[i]->_id == id) {
- if ((context == nullptr && _responsesBranch[i]->getContext() == nullptr) || (context != nullptr && scumm_stricmp(context, _responsesBranch[i]->getContext()) == 0)) {
+ if ((context == nullptr && _responsesBranch[i]->_context == nullptr) || (context != nullptr && scumm_stricmp(context, _responsesBranch[i]->_context) == 0)) {
return true;
}
}
@@ -2027,7 +2027,7 @@ bool AdGame::gameResponseUsed(int id) const {
for (int32 i = 0; i < _responsesGame.getSize(); i++) {
const AdResponseContext *respContext = _responsesGame[i];
if (respContext->_id == id) {
- if ((context == nullptr && respContext->getContext() == nullptr) || ((context != nullptr && respContext->getContext() != nullptr) && (context != nullptr && scumm_stricmp(context, respContext->getContext()) == 0))) {
+ if ((context == nullptr && respContext->_context == nullptr) || ((context != nullptr && respContext->_context != nullptr) && (context != nullptr && scumm_stricmp(context, respContext->_context) == 0))) {
return true;
}
}
@@ -2042,7 +2042,7 @@ bool AdGame::resetResponse(int id) {
for (int32 i = 0; i < _responsesGame.getSize(); i++) {
if (_responsesGame[i]->_id == id) {
- if ((context == nullptr && _responsesGame[i]->getContext() == nullptr) || (context != nullptr && scumm_stricmp(context, _responsesGame[i]->getContext()) == 0)) {
+ if ((context == nullptr && _responsesGame[i]->_context == nullptr) || (context != nullptr && scumm_stricmp(context, _responsesGame[i]->_context) == 0)) {
delete _responsesGame[i];
_responsesGame.removeAt(i);
break;
@@ -2052,7 +2052,7 @@ bool AdGame::resetResponse(int id) {
for (int32 i = 0; i < _responsesBranch.getSize(); i++) {
if (_responsesBranch[i]->_id == id) {
- if ((context == nullptr && _responsesBranch[i]->getContext() == nullptr) || (context != nullptr && scumm_stricmp(context, _responsesBranch[i]->getContext()) == 0)) {
+ if ((context == nullptr && _responsesBranch[i]->_context == nullptr) || (context != nullptr && scumm_stricmp(context, _responsesBranch[i]->_context) == 0)) {
delete _responsesBranch[i];
_responsesBranch.removeAt(i);
break;
diff --git a/engines/wintermute/ad/ad_inventory_box.h b/engines/wintermute/ad/ad_inventory_box.h
index f0be84b111f..2fe4ad935a8 100644
--- a/engines/wintermute/ad/ad_inventory_box.h
+++ b/engines/wintermute/ad/ad_inventory_box.h
@@ -39,6 +39,10 @@ class AdInventoryBox : public BaseObject {
public:
bool _hideSelected;
DECLARE_PERSISTENT(AdInventoryBox, BaseObject)
+ bool _exclusive;
+ int32 _scrollBy;
+ int32 _itemHeight;
+ int32 _itemWidth;
bool _visible;
bool display() override;
UIButton *_closeButton;
@@ -52,11 +56,6 @@ public:
bool loadFile(const char *filename);
bool loadBuffer(char *buffer, bool complete = true);
bool saveAsText(BaseDynamicBuffer *buffer, int indent) override;
-private:
- bool _exclusive;
- int32 _scrollBy;
- int32 _itemHeight;
- int32 _itemWidth;
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/ad/ad_item.cpp b/engines/wintermute/ad/ad_item.cpp
index 25cb4725786..0f07da41a1e 100644
--- a/engines/wintermute/ad/ad_item.cpp
+++ b/engines/wintermute/ad/ad_item.cpp
@@ -70,10 +70,10 @@ AdItem::AdItem(BaseGame *inGame) : AdTalkHolder(inGame) {
//////////////////////////////////////////////////////////////////////////
AdItem::~AdItem() {
delete _spriteHover;
- delete _cursorNormal;
- delete _cursorHover;
_spriteHover = nullptr;
+ delete _cursorNormal;
_cursorNormal = nullptr;
+ delete _cursorHover;
_cursorHover = nullptr;
delete[] _amountString;
diff --git a/engines/wintermute/ad/ad_item.h b/engines/wintermute/ad/ad_item.h
index fe287f038f6..149b9470b73 100644
--- a/engines/wintermute/ad/ad_item.h
+++ b/engines/wintermute/ad/ad_item.h
@@ -37,6 +37,13 @@ class AdItem : public AdTalkHolder {
using Wintermute::AdObject::display;
public:
+ bool _displayAmount;
+ int32 _amount;
+ int32 _amountOffsetX;
+ int32 _amountOffsetY;
+ TTextAlign _amountAlign;
+ char *_amountString;
+
bool update() override;
DECLARE_PERSISTENT(AdItem, AdTalkHolder)
bool display(int x, int y);
@@ -56,13 +63,6 @@ public:
bool scSetProperty(const char *name, ScValue *value) override;
bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
const char *scToString() override;
-private:
- bool _displayAmount;
- int32 _amount;
- int32 _amountOffsetX;
- int32 _amountOffsetY;
- TTextAlign _amountAlign;
- char *_amountString;
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/ad/ad_node_state.cpp b/engines/wintermute/ad/ad_node_state.cpp
index 6c1cba36f5e..a81a0cb5f95 100644
--- a/engines/wintermute/ad/ad_node_state.cpp
+++ b/engines/wintermute/ad/ad_node_state.cpp
@@ -55,10 +55,10 @@ AdNodeState::AdNodeState(BaseGame *inGame) : BaseClass(inGame) {
//////////////////////////////////////////////////////////////////////////
AdNodeState::~AdNodeState() {
delete[] _name;
- delete[] _filename;
- delete[] _cursor;
_name = nullptr;
+ delete[] _filename;
_filename = nullptr;
+ delete[] _cursor;
_cursor = nullptr;
for (int i = 0; i < 7; i++) {
delete[] _caption[i];
@@ -110,12 +110,10 @@ bool AdNodeState::persist(BasePersistenceManager *persistMgr) {
//////////////////////////////////////////////////////////////////////////
void AdNodeState::setCaption(const char *caption, int caseVal) {
- if (caseVal == 0) {
+ if (caseVal == 0)
caseVal = 1;
- }
- if (caseVal < 1 || caseVal > 7) {
+ if (caseVal < 1 || caseVal > 7)
return;
- }
delete[] _caption[caseVal - 1];
size_t captionSize = strlen(caption) + 1;
diff --git a/engines/wintermute/ad/ad_node_state.h b/engines/wintermute/ad/ad_node_state.h
index f9cf8040a3b..8d172abcf3a 100644
--- a/engines/wintermute/ad/ad_node_state.h
+++ b/engines/wintermute/ad/ad_node_state.h
@@ -34,7 +34,6 @@ class AdEntity;
class AdNodeState : public BaseClass {
public:
- bool _active;
bool transferEntity(AdEntity *entity, bool includingSprites, bool saving);
void setName(const char *name);
void setFilename(const char *filename);
@@ -42,9 +41,8 @@ public:
DECLARE_PERSISTENT(AdNodeState, BaseClass)
AdNodeState(BaseGame *inGame);
~AdNodeState() override;
- const char *getName() const { return _name; }
-private:
char *_name;
+ bool _active;
char *_caption[7];
void setCaption(const char *caption, int caseVal);
const char *getCaption(int caseVal);
diff --git a/engines/wintermute/ad/ad_object.cpp b/engines/wintermute/ad/ad_object.cpp
index b4f27e2a09f..beaac3a0d15 100644
--- a/engines/wintermute/ad/ad_object.cpp
+++ b/engines/wintermute/ad/ad_object.cpp
@@ -859,7 +859,7 @@ bool AdObject::setFont(const char *filename) {
//////////////////////////////////////////////////////////////////////////
int32 AdObject::getHeight() {
- if (!_currentSprite || (int32)_currentSprite->_frames.getSize() <= _currentSprite->_currentFrame) {
+ if (!_currentSprite || _currentSprite->_frames.getSize() <= _currentSprite->_currentFrame) {
return 0;
} else {
BaseFrame *frame = _currentSprite->_frames[_currentSprite->_currentFrame];
@@ -876,10 +876,6 @@ int32 AdObject::getHeight() {
}
}
-TObjectType AdObject::getType() const {
- return _type;
-}
-
//////////////////////////////////////////////////////////////////////////
void AdObject::talk(const char *text, const char *sound, uint32 duration, const char *stances, TTextAlign Align) {
if (!_sentence) {
diff --git a/engines/wintermute/ad/ad_object.h b/engines/wintermute/ad/ad_object.h
index 547c3a25ce5..2c4294f0eb1 100644
--- a/engines/wintermute/ad/ad_object.h
+++ b/engines/wintermute/ad/ad_object.h
@@ -45,15 +45,25 @@ class PartEmitter;
class AdObject : public BaseObject {
public:
+ PartEmitter *_partEmitter;
virtual PartEmitter *createParticleEmitter(bool followParent = false, int offsetX = 0, int offsetY = 0);
virtual bool updatePartEmitter();
+ bool _partFollowParent;
+ int32 _partOffsetX;
+ int32 _partOffsetY;
bool invalidateCurrRegions();
+ bool _subtitlesModRelative;
+ bool _subtitlesModXCenter;
+ int32 _subtitlesModX;
+ int32 _subtitlesModY;
+ int32 _subtitlesWidth;
AdRegion *_stickRegion;
bool _sceneIndependent;
-
+ bool _ignoreItems;
bool updateBlockRegion();
-
+ bool _forcedTalkAnimUsed;
+ char *_forcedTalkAnimName;
bool getExtendedFlag(const char *flagName) override;
bool resetSoundPan() override;
bool updateSounds() override;
@@ -61,65 +71,52 @@ public:
DECLARE_PERSISTENT(AdObject, BaseObject)
virtual void talk(const char *text, const char *sound = nullptr, uint32 duration = 0, const char *stances = nullptr, TTextAlign align = TAL_CENTER);
int32 getHeight() override;
-
+ AdSentence *_sentence;
bool setFont(const char *filename);
bool update() override;
bool display() override;
-
bool _drawn;
bool _active;
virtual bool playAnim(const char *filename);
-
- TObjectType getType() const;
+ BaseSprite *_animSprite;
+ BaseSprite *_currentSprite;
+ TObjectState _state;
+ TObjectState _nextState;
+ TObjectType _type;
AdObject(BaseGame *inGame);
~AdObject() override;
-
+ BaseFont *_font;
+ BaseSprite *_tempSprite2;
+ BaseRegion *_blockRegion;
+ AdWaypointGroup *_wptGroup;
BaseRegion *_currentBlockRegion;
AdWaypointGroup *_currentWptGroup;
AdInventory *getInventory();
bool saveAsText(BaseDynamicBuffer *buffer, int indent) override;
+
bool afterMove() override;
+ AdRegion *_currentRegions[MAX_NUM_REGIONS];
// scripting interface
ScValue *scGetProperty(const Common::String &name) override;
bool scSetProperty(const char *name, ScValue *value) override;
bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
const char *scToString() override;
+
+ BaseArray<AdObject *> _attachmentsPre;
+ BaseArray<AdObject *> _attachmentsPost;
+
bool updateSpriteAttachments();
bool displaySpriteAttachments(bool preDisplay);
-
-protected:
- PartEmitter *_partEmitter;
- bool _ignoreItems;
- bool _forcedTalkAnimUsed;
- char *_forcedTalkAnimName;
- BaseSprite *_animSprite;
- BaseSprite *_currentSprite;
- AdSentence *_sentence;
- TObjectState _state;
- TObjectState _nextState;
- TObjectType _type;
- BaseFont *_font;
- BaseSprite *_tempSprite2;
- BaseRegion *_blockRegion;
- AdWaypointGroup *_wptGroup;
AdObject *_registerAlias;
- bool getScale(float *scaleX, float *scaleY);
+
private:
- bool _partFollowParent;
- int32 _partOffsetX;
- int32 _partOffsetY;
- bool _subtitlesModRelative;
- bool _subtitlesModXCenter;
- int32 _subtitlesModX;
- int32 _subtitlesModY;
- int32 _subtitlesWidth;
- AdRegion *_currentRegions[MAX_NUM_REGIONS];
- BaseArray<AdObject *> _attachmentsPre;
- BaseArray<AdObject *> _attachmentsPost;
bool displaySpriteAttachment(AdObject *attachment);
AdInventory *_inventory;
+
+protected:
+ bool getScale(float *scaleX, float *scaleY);
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/ad/ad_region.cpp b/engines/wintermute/ad/ad_region.cpp
index dd9144cd030..a1bbc448adb 100644
--- a/engines/wintermute/ad/ad_region.cpp
+++ b/engines/wintermute/ad/ad_region.cpp
@@ -50,21 +50,6 @@ AdRegion::AdRegion(BaseGame *inGame) : BaseRegion(inGame) {
AdRegion::~AdRegion() {
}
-uint32 AdRegion::getAlpha() const {
- return _alpha;
-}
-
-float AdRegion::getZoom() const {
- return _zoom;
-}
-
-bool AdRegion::isBlocked() const {
- return _blocked;
-}
-
-bool AdRegion::hasDecoration() const {
- return _decoration;
-}
//////////////////////////////////////////////////////////////////////////
bool AdRegion::loadFile(const char *filename) {
diff --git a/engines/wintermute/ad/ad_region.h b/engines/wintermute/ad/ad_region.h
index 4de9871e20e..18889080c39 100644
--- a/engines/wintermute/ad/ad_region.h
+++ b/engines/wintermute/ad/ad_region.h
@@ -35,27 +35,21 @@ namespace Wintermute {
class AdRegion : public BaseRegion {
public:
DECLARE_PERSISTENT(AdRegion, BaseRegion)
-
+ uint32 _alpha;
+ float _zoom;
+ bool _blocked;
+ bool _decoration;
AdRegion(BaseGame *inGame);
~AdRegion() override;
bool loadFile(const char *filename);
bool loadBuffer(char *buffer, bool complete = true);
bool saveAsText(BaseDynamicBuffer *buffer, int indent) override;
- bool hasDecoration() const;
- bool isBlocked() const;
- uint32 getAlpha() const;
- float getZoom() const;
// scripting interface
ScValue *scGetProperty(const Common::String &name) override;
bool scSetProperty(const char *name, ScValue *value) override;
bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
const char *scToString() override;
-private:
- uint32 _alpha;
- float _zoom;
- bool _blocked;
- bool _decoration;
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/ad/ad_response.cpp b/engines/wintermute/ad/ad_response.cpp
index 911af15771f..09cbd8b9c76 100644
--- a/engines/wintermute/ad/ad_response.cpp
+++ b/engines/wintermute/ad/ad_response.cpp
@@ -49,14 +49,14 @@ AdResponse::AdResponse(BaseGame *inGame) : BaseObject(inGame) {
//////////////////////////////////////////////////////////////////////////
AdResponse::~AdResponse() {
delete[] _text;
- delete[] _textOrig;
- delete _icon;
- delete _iconHover;
- delete _iconPressed;
_text = nullptr;
+ delete[] _textOrig;
_textOrig = nullptr;
+ delete _icon;
_icon = nullptr;
+ delete _iconHover;
_iconHover = nullptr;
+ delete _iconPressed;
_iconPressed = nullptr;
if (_font) {
_gameRef->_fontStorage->removeFont(_font);
diff --git a/engines/wintermute/ad/ad_response_context.h b/engines/wintermute/ad/ad_response_context.h
index 40f2eb30290..08648e93925 100644
--- a/engines/wintermute/ad/ad_response_context.h
+++ b/engines/wintermute/ad/ad_response_context.h
@@ -36,14 +36,11 @@ namespace Wintermute {
class AdResponseContext : public BaseClass {
public:
void setContext(const char *context);
- const char *getContext() const { return _context; }
int32 _id;
-
+ char *_context;
DECLARE_PERSISTENT(AdResponseContext, BaseClass)
AdResponseContext(BaseGame *inGame);
~AdResponseContext() override;
-private:
- char *_context;
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/ad/ad_rot_level.h b/engines/wintermute/ad/ad_rot_level.h
index 931d00e5203..d56c2b4c0c9 100644
--- a/engines/wintermute/ad/ad_rot_level.h
+++ b/engines/wintermute/ad/ad_rot_level.h
@@ -33,12 +33,11 @@
namespace Wintermute {
class AdRotLevel : public BaseObject {
- float _rotation;
public:
DECLARE_PERSISTENT(AdRotLevel, BaseObject)
AdRotLevel(BaseGame *inGame);
~AdRotLevel() override;
- float getRotation() const { return _rotation; }
+ float _rotation;
bool saveAsText(BaseDynamicBuffer *buffer, int indent) override;
bool loadFile(const char *filename);
bool loadBuffer(char *buffer, bool complete = true);
diff --git a/engines/wintermute/ad/ad_scale_level.cpp b/engines/wintermute/ad/ad_scale_level.cpp
index 4157912a959..a67ef57cff2 100644
--- a/engines/wintermute/ad/ad_scale_level.cpp
+++ b/engines/wintermute/ad/ad_scale_level.cpp
@@ -47,10 +47,6 @@ AdScaleLevel::~AdScaleLevel() {
}
-float AdScaleLevel::getScale() const {
- return _scale;
-}
-
//////////////////////////////////////////////////////////////////////////
bool AdScaleLevel::loadFile(const char *filename) {
char *buffer = (char *)BaseFileManager::getEngineInstance()->readWholeFile(filename);
diff --git a/engines/wintermute/ad/ad_scale_level.h b/engines/wintermute/ad/ad_scale_level.h
index 45ee71f0f8e..a6895702a7d 100644
--- a/engines/wintermute/ad/ad_scale_level.h
+++ b/engines/wintermute/ad/ad_scale_level.h
@@ -36,14 +36,12 @@ namespace Wintermute {
class AdScaleLevel : public BaseObject {
public:
DECLARE_PERSISTENT(AdScaleLevel, BaseObject)
+ float _scale;
AdScaleLevel(BaseGame *inGame);
~AdScaleLevel() override;
bool saveAsText(BaseDynamicBuffer *buffer, int indent) override;
bool loadFile(const char *filename);
bool loadBuffer(char *buffer, bool complete = true);
- float getScale() const;
-private:
- float _scale;
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index 6fee21fd3e5..d2be20b433d 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -328,9 +328,9 @@ float AdScene::getZoomAt(int x, int y) {
if (_mainLayer) {
for (int32 i = _mainLayer->_nodes.getSize() - 1; i >= 0; i--) {
AdSceneNode *node = _mainLayer->_nodes[i];
- if (node->_type == OBJECT_REGION && node->_region->_active && !node->_region->isBlocked() && node->_region->pointInRegion(x, y)) {
- if (node->_region->getZoom() != 0) {
- ret = node->_region->getZoom();
+ if (node->_type == OBJECT_REGION && node->_region->_active && !node->_region->_blocked && node->_region->pointInRegion(x, y)) {
+ if (node->_region->_zoom != 0) {
+ ret = node->_region->_zoom;
found = true;
break;
}
@@ -361,9 +361,9 @@ uint32 AdScene::getAlphaAt(int x, int y, bool colorCheck) {
if (_mainLayer) {
for (int32 i = (int32)_mainLayer->_nodes.getSize() - 1; i >= 0; i--) {
AdSceneNode *node = _mainLayer->_nodes[i];
- if (node->_type == OBJECT_REGION && node->_region->_active && (colorCheck || !node->_region->isBlocked()) && node->_region->pointInRegion(x, y)) {
- if (!node->_region->isBlocked()) {
- ret = node->_region->getAlpha();
+ if (node->_type == OBJECT_REGION && node->_region->_active && (colorCheck || !node->_region->_blocked) && node->_region->pointInRegion(x, y)) {
+ if (!node->_region->_blocked) {
+ ret = node->_region->_alpha;
}
break;
}
@@ -406,8 +406,8 @@ bool AdScene::isBlockedAt(int x, int y, bool checkFreeObjects, BaseObject *reque
break;
}
*/
- if (node->_type == OBJECT_REGION && node->_region->_active && !node->_region->hasDecoration() && node->_region->pointInRegion(x, y)) {
- if (node->_region->isBlocked()) {
+ if (node->_type == OBJECT_REGION && node->_region->_active && !node->_region->_decoration && node->_region->pointInRegion(x, y)) {
+ if (node->_region->_blocked) {
ret = true;
break;
} else {
@@ -446,8 +446,8 @@ bool AdScene::isWalkableAt(int x, int y, bool checkFreeObjects, BaseObject *requ
if (_mainLayer) {
for (int32 i = 0; i < _mainLayer->_nodes.getSize(); i++) {
AdSceneNode *node = _mainLayer->_nodes[i];
- if (node->_type == OBJECT_REGION && node->_region->_active && !node->_region->hasDecoration() && node->_region->pointInRegion(x, y)) {
- if (node->_region->isBlocked()) {
+ if (node->_type == OBJECT_REGION && node->_region->_active && !node->_region->_decoration && node->_region->pointInRegion(x, y)) {
+ if (node->_region->_blocked) {
ret = false;
break;
} else {
@@ -1045,9 +1045,8 @@ bool AdScene::loadBuffer(char *buffer, bool complete) {
_geom->dropWaypoints();
}
- Camera3D *activeCamera = _geom->getActiveCamera();
- if (activeCamera != nullptr) {
- _gameRef->_renderer->setup3D(activeCamera);
+ if (_geom->_activeCamera >= 0 && _geom->_activeCamera < _geom->_cameras.getSize()) {
+ _gameRef->_renderer->setup3D(_geom->_cameras[_geom->_activeCamera]);
_gameRef->_renderer->setScreenViewport();
_geom->render(false);
}
@@ -1250,10 +1249,10 @@ bool AdScene::traverseNodes(bool doUpdate) {
break;
case OBJECT_REGION: {
- if (node->_region->isBlocked()) {
+ if (node->_region->_blocked) {
break;
}
- if (node->_region->hasDecoration()) {
+ if (node->_region->_decoration) {
break;
}
@@ -1331,9 +1330,9 @@ bool AdScene::display3DContent(DXMatrix &viewMat, DXMatrix &projMat) {
for (int32 k = 0; k < _layers[j]->_nodes.getSize(); k++) {
AdSceneNode *node = _layers[j]->_nodes[k];
if (node->_type == OBJECT_REGION) {
- if (node->_region->isBlocked())
+ if (node->_region->_blocked)
continue;
- if (node->_region->hasDecoration())
+ if (node->_region->_decoration)
continue;
displayRegionContent(node->_region, true);
@@ -1370,9 +1369,8 @@ bool AdScene::updateFreeObjects() {
#ifdef ENABLE_WME3D
if (adGame->_objects[i]->_is3D && _geom) {
- Camera3D *activeCamera = _geom->getActiveCamera();
- if (activeCamera != nullptr) {
- _gameRef->_renderer->setup3D(activeCamera, !is3DSet);
+ if (_geom->_activeCamera >= 0 && _geom->_activeCamera < _geom->_cameras.getSize()) {
+ _gameRef->_renderer->setup3D(_geom->_cameras[_geom->_activeCamera], !is3DSet);
is3DSet = true;
}
}
@@ -1388,9 +1386,8 @@ bool AdScene::updateFreeObjects() {
}
#ifdef ENABLE_WME3D
if (_objects[i]->_is3D && _geom) {
- Camera3D *activeCamera = _geom->getActiveCamera();
- if (activeCamera != nullptr) {
- _gameRef->_renderer->setup3D(activeCamera, !is3DSet);
+ if (_geom->_activeCamera >= 0 && _geom->_activeCamera < _geom->_cameras.getSize()) {
+ _gameRef->_renderer->setup3D(_geom->_cameras[_geom->_activeCamera], !is3DSet);
is3DSet = true;
}
}
@@ -1447,9 +1444,8 @@ bool AdScene::displayRegionContent(AdRegion *region, bool display3DOnly) {
_gameRef->_renderer->setup2D();
#else
if (objects[i]->_is3D && _geom) {
- Camera3D *activeCamera = _geom->getActiveCamera();
- if (activeCamera != nullptr) {
- _gameRef->_renderer->setup3D(activeCamera);
+ if (_geom->_activeCamera >= 0 && _geom->_activeCamera < _geom->_cameras.getSize()) {
+ _gameRef->_renderer->setup3D(_geom->_cameras[_geom->_activeCamera]);
}
} else {
_gameRef->_renderer->setup2D();
@@ -1525,9 +1521,8 @@ bool AdScene::displayRegionContentOld(AdRegion *region) {
_gameRef->_renderer->setup2D();
#else
if (obj->_is3D && _geom) {
- Camera3D *activeCamera = _geom->getActiveCamera();
- if (activeCamera != nullptr) {
- _gameRef->_renderer->setup3D(activeCamera);
+ if (_geom->_activeCamera >= 0 && _geom->_activeCamera < _geom->_cameras.getSize()) {
+ _gameRef->_renderer->setup3D(_geom->_cameras[_geom->_activeCamera]);
}
} else {
_gameRef->_renderer->setup2D();
@@ -1863,7 +1858,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
for (int32 i = _mainLayer->_nodes.getSize() - 1; i >= 0; i--) {
AdSceneNode *node = _mainLayer->_nodes[i];
if (node->_type == OBJECT_REGION && node->_region->_active && node->_region->pointInRegion(x, y)) {
- if (node->_region->hasDecoration() && !includeDecors) {
+ if (node->_region->_decoration && !includeDecors) {
continue;
}
@@ -2115,9 +2110,12 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
stack->correctParams(1);
int32 index = stack->pop()->getInt();
-
- if (_geom && index >= 0 && index < _geom->_lights.getSize()) {
- stack->pushString(_geom->_lights[index]->getName());
+ if (_geom ) {
+ if (index >= 0 && index < _geom->_lights.getSize()) {
+ stack->pushString(_geom->_lights[index]->getName());
+ } else {
+ stack->pushNULL();
+ }
} else {
stack->pushNULL();
}
@@ -2595,10 +2593,10 @@ ScValue *AdScene::scGetProperty(const Common::String &name) {
// NumLights
//////////////////////////////////////////////////////////////////////////
else if (name == "NumLights") {
- if (_geom) {
- _scValue->setInt(_geom->_lights.getSize());
- } else {
+ if (!_geom) {
_scValue->setInt(0);
+ } else {
+ _scValue->setInt(_geom->_lights.getSize());
}
return _scValue;
@@ -2792,7 +2790,7 @@ bool AdScene::removeObject(AdObject *object) {
bool AdScene::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "SCENE {\n");
- buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", getName());
+ buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", _name);
buffer->putTextIndent(indent + 2, "CAPTION=\"%s\"\n", getCaption());
if (_persistentState) {
@@ -2807,10 +2805,8 @@ bool AdScene::saveAsText(BaseDynamicBuffer *buffer, int indent) {
if (_geom) {
if (_geom->getFilename())
buffer->putTextIndent(indent + 2, "GEOMETRY=\"%s\"\n", _geom->getFilename());
-
- Camera3D *activeCamera = _geom->getActiveCamera();
- if (activeCamera != nullptr) {
- buffer->putTextIndent(indent + 2, "CAMERA=\"%s\"\n", activeCamera->getName());
+ if (_geom->_activeCamera >= 0 && _geom->_activeCamera < _geom->_cameras.getSize()) {
+ buffer->putTextIndent(indent + 2, "CAMERA=\"%s\"\n", _geom->_cameras[_geom->_activeCamera]->_name);
}
if (_fov >= 0.0f)
@@ -2923,7 +2919,7 @@ bool AdScene::saveAsText(BaseDynamicBuffer *buffer, int indent) {
// free entities
buffer->putTextIndent(indent + 2, "; ----- free entities\n");
for (int32 i = 0; i < _objects.getSize(); i++) {
- if (_objects[i]->getType() == OBJECT_ENTITY) {
+ if (_objects[i]->_type == OBJECT_ENTITY) {
_objects[i]->saveAsText(buffer, indent + 2);
}
@@ -3003,11 +2999,11 @@ float AdScene::getScaleAt(int y) {
}
int delta_y = next->_posY - prev->_posY;
- float delta_scale = next->getScale() - prev->getScale();
+ float delta_scale = next->_scale - prev->_scale;
y -= prev->_posY;
float percent = (float)y / ((float)delta_y / 100.0f);
- return prev->getScale() + delta_scale / 100 * percent;
+ return prev->_scale + delta_scale / 100 * percent;
}
@@ -3117,11 +3113,8 @@ bool AdScene::persist(BasePersistenceManager *persistMgr) {
//////////////////////////////////////////////////////////////////////////
bool AdScene::afterLoad() {
#ifdef ENABLE_WME3D
- if (_geom) {
- int32 activeCamera = _geom->_activeCamera;
- if (activeCamera >= 0 && activeCamera < _geom->_cameras.getSize()) {
- _geom->setActiveCamera(activeCamera, _fov, _nearClipPlane, _farClipPlane);
- }
+ if (_geom && _geom->_activeCamera >= 0 && _geom->_activeCamera < _geom->_cameras.getSize()) {
+ _geom->setActiveCamera(_geom->_activeCamera, _fov, _nearClipPlane, _farClipPlane);
}
#endif
return STATUS_OK;
@@ -3410,7 +3403,7 @@ BaseObject *AdScene::getNodeByName(const char *name) {
// free entities
for (int32 i = 0; i < _objects.getSize(); i++) {
- if (_objects[i]->getType() == OBJECT_ENTITY && !scumm_stricmp(name, _objects[i]->getName())) {
+ if (_objects[i]->_type == OBJECT_ENTITY && !scumm_stricmp(name, _objects[i]->getName())) {
return _objects[i];
}
}
@@ -3494,7 +3487,7 @@ bool AdScene::persistState(bool saving) {
if (!_objects[i]->_saveState) {
continue;
}
- if (_objects[i]->getType() == OBJECT_ENTITY) {
+ if (_objects[i]->_type == OBJECT_ENTITY) {
nodeState = state->getNodeState(_objects[i]->getName(), saving);
if (nodeState) {
nodeState->transferEntity((AdEntity *)_objects[i], _persistentStateSprites, saving);
@@ -3541,11 +3534,11 @@ float AdScene::getRotationAt(int x, int y) {
}
int delta_x = next->_posX - prev->_posX;
- float delta_rot = next->getRotation() - prev->getRotation();
+ float delta_rot = next->_rotation - prev->_rotation;
x -= prev->_posX;
float percent = (float)x / ((float)delta_x / 100.0f);
- return prev->getRotation() + delta_rot / 100 * percent;
+ return prev->_rotation + delta_rot / 100 * percent;
}
@@ -3565,7 +3558,7 @@ bool AdScene::handleItemAssociations(const char *itemName, bool show) {
}
for (int32 i = 0; i < _objects.getSize(); i++) {
- if (_objects[i]->getType() == OBJECT_ENTITY) {
+ if (_objects[i]->_type == OBJECT_ENTITY) {
AdEntity *ent = (AdEntity *)_objects[i];
if (ent->getItemName() && strcmp(ent->getItemName(), itemName) == 0) {
ent->_active = show;
diff --git a/engines/wintermute/ad/ad_scene.h b/engines/wintermute/ad/ad_scene.h
index 4149233c517..98d443a4c1c 100644
--- a/engines/wintermute/ad/ad_scene.h
+++ b/engines/wintermute/ad/ad_scene.h
@@ -117,8 +117,8 @@ public:
bool sortRotLevels();
bool saveAsText(BaseDynamicBuffer *buffer, int indent) override;
#ifdef ENABLE_WME3D
- AdSceneGeometry *_geom;
bool _showGeometry;
+ AdSceneGeometry *_geom;
#endif
uint32 getAlphaAt(int x, int y, bool colorCheck = false);
bool _paralaxScrolling;
@@ -205,7 +205,6 @@ private:
int32 _offsetTop;
int32 _offsetLeft;
-
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/ad/ad_scene_node.h b/engines/wintermute/ad/ad_scene_node.h
index d8655ba49df..3d7de6c9bbd 100644
--- a/engines/wintermute/ad/ad_scene_node.h
+++ b/engines/wintermute/ad/ad_scene_node.h
@@ -45,7 +45,6 @@ public:
TObjectType _type;
AdSceneNode(BaseGame *inGame);
~AdSceneNode() override;
-
};
}
diff --git a/engines/wintermute/ad/ad_scene_state.cpp b/engines/wintermute/ad/ad_scene_state.cpp
index 85623cd994b..834f7be72e8 100644
--- a/engines/wintermute/ad/ad_scene_state.cpp
+++ b/engines/wintermute/ad/ad_scene_state.cpp
@@ -70,14 +70,10 @@ void AdSceneState::setFilename(const char *filename) {
Common::strcpy_s(_filename, filenameSize, filename);
}
-const char *AdSceneState::getFilename() const {
- return _filename;
-}
-
//////////////////////////////////////////////////////////////////////////
AdNodeState *AdSceneState::getNodeState(const char *name, bool saving) {
for (int32 i = 0; i < _nodeStates.getSize(); i++) {
- if (scumm_stricmp(_nodeStates[i]->getName(), name) == 0) {
+ if (scumm_stricmp(_nodeStates[i]->_name, name) == 0) {
return _nodeStates[i];
}
}
diff --git a/engines/wintermute/ad/ad_scene_state.h b/engines/wintermute/ad/ad_scene_state.h
index 7d837dee967..8b7963e1951 100644
--- a/engines/wintermute/ad/ad_scene_state.h
+++ b/engines/wintermute/ad/ad_scene_state.h
@@ -38,11 +38,9 @@ class AdSceneState : public BaseClass {
public:
AdNodeState *getNodeState(const char *name, bool saving);
void setFilename(const char *filename);
- const char *getFilename() const;
DECLARE_PERSISTENT(AdSceneState, BaseClass)
AdSceneState(BaseGame *inGame);
~AdSceneState() override;
-private:
char *_filename;
BaseArray<AdNodeState *> _nodeStates;
};
diff --git a/engines/wintermute/ad/ad_sentence.cpp b/engines/wintermute/ad/ad_sentence.cpp
index cc7cc42ad59..dcd926d19ae 100644
--- a/engines/wintermute/ad/ad_sentence.cpp
+++ b/engines/wintermute/ad/ad_sentence.cpp
@@ -73,14 +73,14 @@ AdSentence::AdSentence(BaseGame *inGame) : BaseClass(inGame) {
//////////////////////////////////////////////////////////////////////////
AdSentence::~AdSentence() {
delete _sound;
- delete[] _text;
- delete[] _stances;
- delete[] _tempStance;
- delete _talkDef;
_sound = nullptr;
+ delete[] _text;
_text = nullptr;
+ delete[] _stances;
_stances = nullptr;
+ delete[] _tempStance;
_tempStance = nullptr;
+ delete _talkDef;
_talkDef = nullptr;
_currentSprite = nullptr; // ref only
diff --git a/engines/wintermute/ad/ad_sentence.h b/engines/wintermute/ad/ad_sentence.h
index 0b18db95ec9..e18936764c7 100644
--- a/engines/wintermute/ad/ad_sentence.h
+++ b/engines/wintermute/ad/ad_sentence.h
@@ -70,13 +70,11 @@ public:
AdSentence(BaseGame *inGame);
~AdSentence() override;
AdTalkDef *_talkDef;
-
bool canSkip();
private:
char *_tempStance;
char *getStance(int stance);
-
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/ad/ad_talk_def.cpp b/engines/wintermute/ad/ad_talk_def.cpp
index 1521863dfe8..772f09994c9 100644
--- a/engines/wintermute/ad/ad_talk_def.cpp
+++ b/engines/wintermute/ad/ad_talk_def.cpp
@@ -57,13 +57,13 @@ AdTalkDef::~AdTalkDef() {
_nodes.removeAll();
delete[] _defaultSpriteFilename;
- delete _defaultSprite;
_defaultSpriteFilename = nullptr;
+ delete _defaultSprite;
_defaultSprite = nullptr;
delete[] _defaultSpriteSetFilename;
- delete _defaultSpriteSet;
_defaultSpriteSetFilename = nullptr;
+ delete _defaultSpriteSet;
_defaultSpriteSet = nullptr;
}
@@ -181,8 +181,8 @@ bool AdTalkDef::loadBuffer(char *buffer, bool complete) {
}
delete _defaultSprite;
- delete _defaultSpriteSet;
_defaultSprite = nullptr;
+ delete _defaultSpriteSet;
_defaultSpriteSet = nullptr;
if (_defaultSpriteFilename) {
diff --git a/engines/wintermute/ad/ad_talk_node.cpp b/engines/wintermute/ad/ad_talk_node.cpp
index 4b5099fc9a9..281a26f5182 100644
--- a/engines/wintermute/ad/ad_talk_node.cpp
+++ b/engines/wintermute/ad/ad_talk_node.cpp
@@ -53,19 +53,17 @@ AdTalkNode::AdTalkNode(BaseGame *inGame) : BaseClass(inGame) {
//////////////////////////////////////////////////////////////////////////
AdTalkNode::~AdTalkNode() {
delete[] _spriteFilename;
- delete _sprite;
- delete[] _spriteSetFilename;
- delete _spriteSet;
- delete _comment;
_spriteFilename = nullptr;
+ delete _sprite;
_sprite = nullptr;
+ delete[] _spriteSetFilename;
_spriteSetFilename = nullptr;
+ delete _spriteSet;
_spriteSet = nullptr;
+ delete _comment;
_comment = nullptr;
}
-
-
TOKEN_DEF_START
TOKEN_DEF(ACTION)
TOKEN_DEF(SPRITESET_FILE)
diff --git a/engines/wintermute/ad/ad_waypoint_group.h b/engines/wintermute/ad/ad_waypoint_group.h
index d5cfd485cb6..4d6b13b4863 100644
--- a/engines/wintermute/ad/ad_waypoint_group.h
+++ b/engines/wintermute/ad/ad_waypoint_group.h
@@ -34,25 +34,22 @@ namespace Wintermute {
class BasePoint;
class AdWaypointGroup : public BaseObject {
public:
+ float _lastMimicScale;
+ int32 _lastMimicX;
+ int32 _lastMimicY;
void cleanup();
bool mimic(AdWaypointGroup *wpt, float scale = 100.0f, int x = 0, int y = 0);
DECLARE_PERSISTENT(AdWaypointGroup, BaseObject)
bool saveAsText(BaseDynamicBuffer *buffer, int indent) override;
+ bool _active;
AdWaypointGroup(BaseGame *inGame);
bool loadFile(const char *filename);
bool loadBuffer(char *buffer, bool complete = true);
~AdWaypointGroup() override;
-
- bool _active;
BaseArray<BasePoint *> _points;
-
+ int32 _editorSelectedPoint;
ScValue *scGetProperty(const Common::String &name) override;
bool scSetProperty(const char *name, ScValue *value) override;
-private:
- int32 _editorSelectedPoint;
- float _lastMimicScale;
- int32 _lastMimicX;
- int32 _lastMimicY;
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/base/base_object.cpp b/engines/wintermute/base/base_object.cpp
index a3588af5450..17bc364648f 100644
--- a/engines/wintermute/base/base_object.cpp
+++ b/engines/wintermute/base/base_object.cpp
@@ -143,8 +143,8 @@ bool BaseObject::cleanup() {
if (!_sharedCursors) {
delete _cursor;
- delete _activeCursor;
_cursor = nullptr;
+ delete _activeCursor;
_activeCursor = nullptr;
}
delete _sFX;
@@ -170,18 +170,18 @@ bool BaseObject::cleanup() {
_sFXType = SFX_NONE;
_sFXParam1 = _sFXParam2 = _sFXParam3 = _sFXParam4 = 0;
+ //SAFE_DELETE_ARRAY(m_AccessCaption);
+
return STATUS_OK;
}
//////////////////////////////////////////////////////////////////////////
void BaseObject::setCaption(const char *caption, int caseVal) {
- if (caseVal == 0) {
+ if (caseVal == 0)
caseVal = 1;
- }
- if (caseVal < 1 || caseVal > 7) {
+ if (caseVal < 1 || caseVal > 7)
return;
- }
delete[] _caption[caseVal - 1];
size_t captionSize = strlen(caption) + 1;
@@ -193,14 +193,12 @@ void BaseObject::setCaption(const char *caption, int caseVal) {
//////////////////////////////////////////////////////////////////////////
const char *BaseObject::getCaption(int caseVal) {
- if (caseVal == 0) {
+ if (caseVal == 0)
caseVal = 1;
- }
- if (caseVal < 1 || caseVal > 7 || _caption[caseVal - 1] == nullptr) {
+ if (caseVal < 1 || caseVal > 7 || _caption[caseVal - 1] == nullptr)
return "";
- } else {
+ else
return _caption[caseVal - 1];
- }
}
@@ -834,7 +832,10 @@ ScValue *BaseObject::scGetProperty(const Common::String &name) {
// AccCaption
//////////////////////////////////////////////////////////////////////////
else if (name == "AccCaption") {
- _scValue->setNULL();
+/* if (m_AccessCaption)
+ m_ScValue->SetString(m_AccessCaption);
+ else*/
+ _scValue->setNULL();
return _scValue;
} else {
return BaseScriptHolder::scGetProperty(name);
@@ -1027,6 +1028,11 @@ bool BaseObject::scSetProperty(const char *name, ScValue *value) {
// AccCaption
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "AccCaption") == 0) {
+ /*if (Value->IsNULL()) {
+ SAFE_DELETE_ARRAY(m_AccessCaption);
+ } else {
+ CBUtils::SetString(&m_AccessCaption, Value->GetString());
+ }*/
return STATUS_OK;
} else {
return BaseScriptHolder::scSetProperty(name, value);
@@ -1141,6 +1147,7 @@ bool BaseObject::persist(BasePersistenceManager *persistMgr) {
#endif
persistMgr->transferSint32(TMEMBER_INT(_blendMode));
+ //persistMgr->Transfer(TMEMBER(m_AccessCaption));
return STATUS_OK;
}
diff --git a/engines/wintermute/base/base_object.h b/engines/wintermute/base/base_object.h
index 81120ad4975..8b095570ff7 100644
--- a/engines/wintermute/base/base_object.h
+++ b/engines/wintermute/base/base_object.h
@@ -47,50 +47,46 @@ class ScScript;
class XModel;
class BaseObject : public BaseScriptHolder {
-protected:
- bool _autoSoundPanning;
- uint32 _sFXStart;
- bool setSFXTime(uint32 time);
- bool setSFXVolume(int volume);
- bool resumeSFX();
- bool pauseSFX();
- bool stopSFX(bool deleteSound = true);
- bool playSFX(const char *filename, bool looping = false, bool playNow = true, const char *eventName = nullptr, uint32 loopStart = 0);
- BaseSound *_sFX;
- TSFXType _sFXType;
- float _sFXParam1;
- float _sFXParam2;
- float _sFXParam3;
- float _sFXParam4;
+public:
+ char *_accessCaption;
+ //virtual char *GetAccessCaption();
+
+ Graphics::TSpriteBlendMode _blendMode;
+#ifdef ENABLE_WME3D
+ virtual bool renderModel();
+#endif
+ virtual bool afterMove();
float _relativeRotate;
bool _rotateValid;
float _rotate;
void setSoundEvent(const char *eventName);
bool _rotatable;
+ uint32 _alphaColor;
+ float _scale;
float _scaleX;
float _scaleY;
float _relativeScale;
- bool _editorSelected;
- bool _editorAlwaysRegister;
- bool _ready;
- Rect32 _rect;
- bool _rectSet;
- int32 _iD;
- char *_soundEvent;
-public:
- Graphics::TSpriteBlendMode _blendMode;
-#ifdef ENABLE_WME3D
- virtual bool renderModel();
-#endif
- virtual bool afterMove();
- float _scale;
- uint32 _alphaColor;
virtual bool isReady();
virtual bool getExtendedFlag(const char *flagName);
virtual bool resetSoundPan();
virtual bool updateSounds();
bool updateOneSound(BaseSound *sound);
+ bool _autoSoundPanning;
+ uint32 _sFXStart;
int32 _sFXVolume;
+ bool setSFXTime(uint32 time);
+ bool setSFXVolume(int volume);
+ bool resumeSFX();
+ bool pauseSFX();
+ bool stopSFX(bool deleteSound = true);
+ bool playSFX(const char *filename, bool looping = false, bool playNow = true, const char *eventName = nullptr, uint32 loopStart = 0);
+ BaseSound *_sFX;
+
+ TSFXType _sFXType;
+ float _sFXParam1;
+ float _sFXParam2;
+ float _sFXParam3;
+ float _sFXParam4;
virtual bool handleMouseWheel(int32 delta);
virtual bool handleMouse(TMouseEvent event, TMouseButton button);
@@ -101,7 +97,8 @@ public:
bool cleanup();
const char *getCaption(int caseVal = 1);
void setCaption(const char *caption, int caseVal = 1);
-
+ bool _editorSelected;
+ bool _editorAlwaysRegister;
bool _editorOnly;
bool _is3D;
@@ -112,18 +109,22 @@ public:
BaseSprite *_activeCursor;
bool saveAsText(BaseDynamicBuffer *buffer, int indent) override;
bool listen(BaseScriptHolder *param1, uint32 param2) override;
-
- bool _movable;
+ bool _ready;
+ bool _registrable;
bool _zoomable;
bool _shadowable;
+ Rect32 _rect;
+ bool _rectSet;
+ int32 _iD;
+ bool _movable;
+ BaseObject(BaseGame *inGame);
+ ~BaseObject() override;
+ char *_caption[7];
+ char *_soundEvent;
int32 _posY;
int32 _posX;
- bool _registrable;
- char *_caption[7];
bool _saveState;
- BaseObject(BaseGame *inGame);
- ~BaseObject() override;
// base
virtual bool update() {
return STATUS_FAILED;
More information about the Scummvm-git-logs
mailing list