[Scummvm-cvs-logs] scummvm master -> 83ecd85e7838dc54ff8608d1971817cf5cb17048
somaen
einarjohan at somadalen.com
Sun Dec 9 12:56:04 CET 2012
This automated email contains information about 7 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
0e93e898c5 WINTERMUTE: Privatize members in AdRegion
32e63091d6 WINTERMUTE: Privatize AdScaleLevel and AdWaypointGroup's members.
233ca0be4a WINTERMUTE: Privatize members in AdEntity
ae4380b88f WINTERMUTE: Make getters const in AdRegion
7ff74312a0 WINTERMUTE: Make AdScaleLevel::getScale() const.
2ede3f58a0 WINTERMUTE: Privatize members of AdResponseBox
83ecd85e78 WINTERMUTE: Only warn about drawLine once.
Commit: 0e93e898c5b80e99da60a97faf3816091b6e1b35
https://github.com/scummvm/scummvm/commit/0e93e898c5b80e99da60a97faf3816091b6e1b35
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2012-12-09T03:13:04-08:00
Commit Message:
WINTERMUTE: Privatize members in AdRegion
Changed paths:
engines/wintermute/ad/ad_region.cpp
engines/wintermute/ad/ad_region.h
engines/wintermute/ad/ad_scene.cpp
diff --git a/engines/wintermute/ad/ad_region.cpp b/engines/wintermute/ad/ad_region.cpp
index c9f1553..39e0ddc 100644
--- a/engines/wintermute/ad/ad_region.cpp
+++ b/engines/wintermute/ad/ad_region.cpp
@@ -51,6 +51,21 @@ AdRegion::AdRegion(BaseGame *inGame) : BaseRegion(inGame) {
AdRegion::~AdRegion() {
}
+uint32 AdRegion::getAlpha() {
+ return _alpha;
+}
+
+float AdRegion::getZoom() {
+ return _zoom;
+}
+
+bool AdRegion::isBlocked() {
+ return _blocked;
+}
+
+bool AdRegion::hasDecoration() {
+ 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 6112900..454e4bd 100644
--- a/engines/wintermute/ad/ad_region.h
+++ b/engines/wintermute/ad/ad_region.h
@@ -36,21 +36,27 @@ namespace Wintermute {
class AdRegion : public BaseRegion {
public:
DECLARE_PERSISTENT(AdRegion, BaseRegion)
- uint32 _alpha;
- float _zoom;
- bool _blocked;
- bool _decoration;
+
AdRegion(BaseGame *inGame);
virtual ~AdRegion();
bool loadFile(const char *filename);
bool loadBuffer(byte *buffer, bool complete = true);
virtual bool saveAsText(BaseDynamicBuffer *buffer, int indent);
+ bool hasDecoration();
+ bool isBlocked();
+ uint32 getAlpha();
+ float getZoom();
// scripting interface
virtual ScValue *scGetProperty(const Common::String &name);
virtual bool scSetProperty(const char *name, ScValue *value);
virtual bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name);
virtual const char *scToString();
+private:
+ uint32 _alpha;
+ float _zoom;
+ bool _blocked;
+ bool _decoration;
};
} // end of namespace Wintermute
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index 3791b7b..c6c034b 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -287,9 +287,9 @@ float AdScene::getZoomAt(int x, int y) {
if (_mainLayer) {
for (int i = _mainLayer->_nodes.size() - 1; i >= 0; i--) {
AdSceneNode *node = _mainLayer->_nodes[i];
- 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;
+ 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();
found = true;
break;
}
@@ -320,9 +320,9 @@ uint32 AdScene::getAlphaAt(int x, int y, bool colorCheck) {
if (_mainLayer) {
for (int i = _mainLayer->_nodes.size() - 1; i >= 0; i--) {
AdSceneNode *node = _mainLayer->_nodes[i];
- 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;
+ 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();
}
break;
}
@@ -365,8 +365,8 @@ bool AdScene::isBlockedAt(int x, int y, bool checkFreeObjects, BaseObject *reque
break;
}
*/
- if (node->_type == OBJECT_REGION && node->_region->_active && !node->_region->_decoration && node->_region->pointInRegion(x, y)) {
- if (node->_region->_blocked) {
+ if (node->_type == OBJECT_REGION && node->_region->_active && !node->_region->hasDecoration() && node->_region->pointInRegion(x, y)) {
+ if (node->_region->isBlocked()) {
ret = true;
break;
} else {
@@ -405,8 +405,8 @@ bool AdScene::isWalkableAt(int x, int y, bool checkFreeObjects, BaseObject *requ
if (_mainLayer) {
for (uint32 i = 0; i < _mainLayer->_nodes.size(); i++) {
AdSceneNode *node = _mainLayer->_nodes[i];
- if (node->_type == OBJECT_REGION && node->_region->_active && !node->_region->_decoration && node->_region->pointInRegion(x, y)) {
- if (node->_region->_blocked) {
+ if (node->_type == OBJECT_REGION && node->_region->_active && !node->_region->hasDecoration() && node->_region->pointInRegion(x, y)) {
+ if (node->_region->isBlocked()) {
ret = false;
break;
} else {
@@ -1045,10 +1045,10 @@ bool AdScene::traverseNodes(bool doUpdate) {
break;
case OBJECT_REGION: {
- if (node->_region->_blocked) {
+ if (node->_region->isBlocked()) {
break;
}
- if (node->_region->_decoration) {
+ if (node->_region->hasDecoration()) {
break;
}
@@ -1536,7 +1536,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
for (int i = _mainLayer->_nodes.size() - 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->_decoration && !includeDecors) {
+ if (node->_region->hasDecoration() && !includeDecors) {
continue;
}
Commit: 32e63091d6842e2ca769733c5cfcc518b212270b
https://github.com/scummvm/scummvm/commit/32e63091d6842e2ca769733c5cfcc518b212270b
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2012-12-09T03:18:38-08:00
Commit Message:
WINTERMUTE: Privatize AdScaleLevel and AdWaypointGroup's members.
Changed paths:
engines/wintermute/ad/ad_scale_level.cpp
engines/wintermute/ad/ad_scale_level.h
engines/wintermute/ad/ad_scene.cpp
engines/wintermute/ad/ad_waypoint_group.h
diff --git a/engines/wintermute/ad/ad_scale_level.cpp b/engines/wintermute/ad/ad_scale_level.cpp
index 4e9293d..bee0f54 100644
--- a/engines/wintermute/ad/ad_scale_level.cpp
+++ b/engines/wintermute/ad/ad_scale_level.cpp
@@ -48,6 +48,9 @@ AdScaleLevel::~AdScaleLevel() {
}
+float AdScaleLevel::getScale() {
+ return _scale;
+}
//////////////////////////////////////////////////////////////////////////
bool AdScaleLevel::loadFile(const char *filename) {
diff --git a/engines/wintermute/ad/ad_scale_level.h b/engines/wintermute/ad/ad_scale_level.h
index 628a385..ee0c683 100644
--- a/engines/wintermute/ad/ad_scale_level.h
+++ b/engines/wintermute/ad/ad_scale_level.h
@@ -37,12 +37,14 @@ namespace Wintermute {
class AdScaleLevel : public BaseObject {
public:
DECLARE_PERSISTENT(AdScaleLevel, BaseObject)
- float _scale;
AdScaleLevel(BaseGame *inGame);
virtual ~AdScaleLevel();
virtual bool saveAsText(BaseDynamicBuffer *buffer, int indent);
bool loadFile(const char *filename);
bool loadBuffer(byte *buffer, bool complete = true);
+ float getScale();
+private:
+ float _scale;
};
} // end of namespace Wintermute
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index c6c034b..7cdc70e 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -2277,11 +2277,11 @@ float AdScene::getScaleAt(int Y) {
}
int delta_y = next->_posY - prev->_posY;
- float delta_scale = next->_scale - prev->_scale;
+ float delta_scale = next->getScale() - prev->getScale();
Y -= prev->_posY;
float percent = (float)Y / ((float)delta_y / 100.0f);
- return prev->_scale + delta_scale / 100 * percent;
+ return prev->getScale() + delta_scale / 100 * percent;
}
diff --git a/engines/wintermute/ad/ad_waypoint_group.h b/engines/wintermute/ad/ad_waypoint_group.h
index 13d6bba..7e42731 100644
--- a/engines/wintermute/ad/ad_waypoint_group.h
+++ b/engines/wintermute/ad/ad_waypoint_group.h
@@ -35,22 +35,25 @@ namespace Wintermute {
class BasePoint;
class AdWaypointGroup : public BaseObject {
public:
- float _lastMimicScale;
- int _lastMimicX;
- int _lastMimicY;
void cleanup();
bool mimic(AdWaypointGroup *wpt, float scale = 100.0f, int x = 0, int y = 0);
DECLARE_PERSISTENT(AdWaypointGroup, BaseObject)
virtual bool saveAsText(BaseDynamicBuffer *buffer, int indent);
- bool _active;
AdWaypointGroup(BaseGame *inGame);
bool loadFile(const char *filename);
bool loadBuffer(byte *buffer, bool complete = true);
virtual ~AdWaypointGroup();
+
+ bool _active;
BaseArray<BasePoint *> _points;
- int _editorSelectedPoint;
+
virtual ScValue *scGetProperty(const Common::String &name);
virtual bool scSetProperty(const char *name, ScValue *value);
+private:
+ int _editorSelectedPoint;
+ float _lastMimicScale;
+ int _lastMimicX;
+ int _lastMimicY;
};
} // end of namespace Wintermute
Commit: 233ca0be4ad72b3b262f207ec0eef1d551b93184
https://github.com/scummvm/scummvm/commit/233ca0be4ad72b3b262f207ec0eef1d551b93184
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2012-12-09T03:25:20-08:00
Commit Message:
WINTERMUTE: Privatize members in AdEntity
Changed paths:
engines/wintermute/ad/ad_actor.cpp
engines/wintermute/ad/ad_entity.cpp
engines/wintermute/ad/ad_entity.h
engines/wintermute/ad/ad_scene.cpp
diff --git a/engines/wintermute/ad/ad_actor.cpp b/engines/wintermute/ad/ad_actor.cpp
index d175855..916ffbb 100644
--- a/engines/wintermute/ad/ad_actor.cpp
+++ b/engines/wintermute/ad/ad_actor.cpp
@@ -969,10 +969,10 @@ bool AdActor::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
return STATUS_OK;
}
AdEntity *ent = (AdEntity *)obj;
- if (ent->_walkToX == 0 && ent->_walkToY == 0) {
+ if (ent->getWalkToX() == 0 && ent->getWalkToY() == 0) {
goTo(ent->_posX, ent->_posY);
} else {
- goTo(ent->_walkToX, ent->_walkToY, ent->_walkToDir);
+ goTo(ent->getWalkToX(), ent->getWalkToY(), ent->getWalkToDir());
}
if (strcmp(name, "GoToObjectAsync") != 0) {
script->waitForExclusive(this);
diff --git a/engines/wintermute/ad/ad_entity.cpp b/engines/wintermute/ad/ad_entity.cpp
index 9af7e03..2c331de 100644
--- a/engines/wintermute/ad/ad_entity.cpp
+++ b/engines/wintermute/ad/ad_entity.cpp
@@ -82,6 +82,21 @@ AdEntity::~AdEntity() {
_item = NULL;
}
+int32 AdEntity::getWalkToX() const {
+ return _walkToX;
+}
+
+int32 AdEntity::getWalkToY() const {
+ return _walkToY;
+}
+
+TDirection AdEntity::getWalkToDir() const {
+ return _walkToDir;
+}
+
+const char *AdEntity::getItemName() const {
+ return _item;
+}
//////////////////////////////////////////////////////////////////////////
bool AdEntity::loadFile(const char *filename) {
diff --git a/engines/wintermute/ad/ad_entity.h b/engines/wintermute/ad/ad_entity.h
index 415987e..94921aa 100644
--- a/engines/wintermute/ad/ad_entity.h
+++ b/engines/wintermute/ad/ad_entity.h
@@ -37,11 +37,7 @@ class AdEntity : public AdTalkHolder {
public:
VideoTheoraPlayer *_theora;
bool setSprite(const char *filename);
- int _walkToX;
- int _walkToY;
- TDirection _walkToDir;
void setItem(const char *itemName);
- char *_item;
DECLARE_PERSISTENT(AdEntity, AdTalkHolder)
void updatePosition();
virtual int getHeight();
@@ -53,14 +49,23 @@ public:
virtual ~AdEntity();
bool loadFile(const char *filename);
bool loadBuffer(byte *buffer, bool complete = true);
- TEntityType _subtype;
+
+ int32 getWalkToX() const;
+ int32 getWalkToY() const;
+ TDirection getWalkToDir() const;
+ const char* getItemName() const;
// scripting interface
virtual ScValue *scGetProperty(const Common::String &name);
virtual bool scSetProperty(const char *name, ScValue *value);
virtual bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name);
virtual const char *scToString();
-
+private:
+ int32 _walkToX;
+ int32 _walkToY;
+ TDirection _walkToDir;
+ char *_item;
+ TEntityType _subtype;
};
} // end of namespace Wintermute
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index 7cdc70e..816232c 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -2780,7 +2780,7 @@ bool AdScene::handleItemAssociations(const char *itemName, bool show) {
if (layer->_nodes[j]->_type == OBJECT_ENTITY) {
AdEntity *ent = layer->_nodes[j]->_entity;
- if (ent->_item && strcmp(ent->_item, itemName) == 0) {
+ if (ent->getItemName() && strcmp(ent->getItemName(), itemName) == 0) {
ent->_active = show;
}
}
@@ -2790,7 +2790,7 @@ bool AdScene::handleItemAssociations(const char *itemName, bool show) {
for (uint32 i = 0; i < _objects.size(); i++) {
if (_objects[i]->_type == OBJECT_ENTITY) {
AdEntity *ent = (AdEntity *)_objects[i];
- if (ent->_item && strcmp(ent->_item, itemName) == 0) {
+ if (ent->getItemName() && strcmp(ent->getItemName(), itemName) == 0) {
ent->_active = show;
}
}
Commit: ae4380b88f4ef2d26acca31a38c3722611b7585f
https://github.com/scummvm/scummvm/commit/ae4380b88f4ef2d26acca31a38c3722611b7585f
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2012-12-09T03:26:43-08:00
Commit Message:
WINTERMUTE: Make getters const in AdRegion
Changed paths:
engines/wintermute/ad/ad_region.cpp
engines/wintermute/ad/ad_region.h
diff --git a/engines/wintermute/ad/ad_region.cpp b/engines/wintermute/ad/ad_region.cpp
index 39e0ddc..daf0c89 100644
--- a/engines/wintermute/ad/ad_region.cpp
+++ b/engines/wintermute/ad/ad_region.cpp
@@ -51,19 +51,19 @@ AdRegion::AdRegion(BaseGame *inGame) : BaseRegion(inGame) {
AdRegion::~AdRegion() {
}
-uint32 AdRegion::getAlpha() {
+uint32 AdRegion::getAlpha() const {
return _alpha;
}
-float AdRegion::getZoom() {
+float AdRegion::getZoom() const {
return _zoom;
}
-bool AdRegion::isBlocked() {
+bool AdRegion::isBlocked() const {
return _blocked;
}
-bool AdRegion::hasDecoration() {
+bool AdRegion::hasDecoration() const {
return _decoration;
}
diff --git a/engines/wintermute/ad/ad_region.h b/engines/wintermute/ad/ad_region.h
index 454e4bd..960dde5 100644
--- a/engines/wintermute/ad/ad_region.h
+++ b/engines/wintermute/ad/ad_region.h
@@ -43,10 +43,10 @@ public:
bool loadBuffer(byte *buffer, bool complete = true);
virtual bool saveAsText(BaseDynamicBuffer *buffer, int indent);
- bool hasDecoration();
- bool isBlocked();
- uint32 getAlpha();
- float getZoom();
+ bool hasDecoration() const;
+ bool isBlocked() const;
+ uint32 getAlpha() const;
+ float getZoom() const;
// scripting interface
virtual ScValue *scGetProperty(const Common::String &name);
virtual bool scSetProperty(const char *name, ScValue *value);
Commit: 7ff74312a0c0c698a1c7044f82bb02c8db7794d3
https://github.com/scummvm/scummvm/commit/7ff74312a0c0c698a1c7044f82bb02c8db7794d3
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2012-12-09T03:27:27-08:00
Commit Message:
WINTERMUTE: Make AdScaleLevel::getScale() const.
Changed paths:
engines/wintermute/ad/ad_scale_level.cpp
engines/wintermute/ad/ad_scale_level.h
diff --git a/engines/wintermute/ad/ad_scale_level.cpp b/engines/wintermute/ad/ad_scale_level.cpp
index bee0f54..cfec8d7 100644
--- a/engines/wintermute/ad/ad_scale_level.cpp
+++ b/engines/wintermute/ad/ad_scale_level.cpp
@@ -48,7 +48,7 @@ AdScaleLevel::~AdScaleLevel() {
}
-float AdScaleLevel::getScale() {
+float AdScaleLevel::getScale() const {
return _scale;
}
diff --git a/engines/wintermute/ad/ad_scale_level.h b/engines/wintermute/ad/ad_scale_level.h
index ee0c683..5c20642 100644
--- a/engines/wintermute/ad/ad_scale_level.h
+++ b/engines/wintermute/ad/ad_scale_level.h
@@ -42,7 +42,7 @@ public:
virtual bool saveAsText(BaseDynamicBuffer *buffer, int indent);
bool loadFile(const char *filename);
bool loadBuffer(byte *buffer, bool complete = true);
- float getScale();
+ float getScale() const;
private:
float _scale;
};
Commit: 2ede3f58a0c0522665daa8cff745da0a9b62c0b6
https://github.com/scummvm/scummvm/commit/2ede3f58a0c0522665daa8cff745da0a9b62c0b6
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2012-12-09T03:49:23-08:00
Commit Message:
WINTERMUTE: Privatize members of AdResponseBox
Changed paths:
engines/wintermute/ad/ad_game.cpp
engines/wintermute/ad/ad_response.h
engines/wintermute/ad/ad_response_box.cpp
engines/wintermute/ad/ad_response_box.h
diff --git a/engines/wintermute/ad/ad_game.cpp b/engines/wintermute/ad/ad_game.cpp
index 4481b77..904aad9 100644
--- a/engines/wintermute/ad/ad_game.cpp
+++ b/engines/wintermute/ad/ad_game.cpp
@@ -542,7 +542,7 @@ bool AdGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
res->_responseType = RESPONSE_ONCE_GAME;
}
- _responseBox->_responses.add(res);
+ _responseBox->addResponse(res);
}
} else {
script->runtimeError("Game.AddResponse: response box is not defined");
@@ -584,15 +584,15 @@ bool AdGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
if (_responseBox) {
_responseBox->weedResponses();
- if (_responseBox->_responses.size() == 0) {
+ if (_responseBox->getNumResponses() == 0) {
stack->pushNULL();
return STATUS_OK;
}
- if (_responseBox->_responses.size() == 1 && autoSelectLast) {
- stack->pushInt(_responseBox->_responses[0]->_iD);
- _responseBox->handleResponse(_responseBox->_responses[0]);
+ if (_responseBox->getNumResponses() == 1 && autoSelectLast) {
+ stack->pushInt(_responseBox->getIdForResponseNum(0));
+ _responseBox->handleResponseNum(0);
_responseBox->clearResponses();
return STATUS_OK;
}
@@ -617,7 +617,7 @@ bool AdGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
stack->correctParams(0);
if (_responseBox) {
_responseBox->weedResponses();
- stack->pushInt(_responseBox->_responses.size());
+ stack->pushInt(_responseBox->getNumResponses());
} else {
script->runtimeError("Game.GetNumResponses: response box is not defined");
stack->pushNULL();
@@ -754,8 +754,8 @@ bool AdGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "GetResponsesWindow") == 0 || strcmp(name, "GetResponseWindow") == 0) {
stack->correctParams(0);
- if (_responseBox && _responseBox->_window) {
- stack->pushNative(_responseBox->_window, true);
+ if (_responseBox && _responseBox->getResponseWindow()) {
+ stack->pushNative(_responseBox->getResponseWindow(), true);
} else {
stack->pushNULL();
}
@@ -983,10 +983,10 @@ ScValue *AdGame::scGetProperty(const Common::String &name) {
// LastResponse (RO)
//////////////////////////////////////////////////////////////////////////
else if (name == "LastResponse") {
- if (!_responseBox || !_responseBox->_lastResponseText) {
+ if (!_responseBox || !_responseBox->getLastResponseText()) {
_scValue->setString("");
} else {
- _scValue->setString(_responseBox->_lastResponseText);
+ _scValue->setString(_responseBox->getLastResponseText());
}
return _scValue;
}
@@ -995,10 +995,10 @@ ScValue *AdGame::scGetProperty(const Common::String &name) {
// LastResponseOrig (RO)
//////////////////////////////////////////////////////////////////////////
else if (name == "LastResponseOrig") {
- if (!_responseBox || !_responseBox->_lastResponseTextOrig) {
+ if (!_responseBox || !_responseBox->getLastResponseTextOrig()) {
_scValue->setString("");
} else {
- _scValue->setString(_responseBox->_lastResponseTextOrig);
+ _scValue->setString(_responseBox->getLastResponseTextOrig());
}
return _scValue;
}
diff --git a/engines/wintermute/ad/ad_response.h b/engines/wintermute/ad/ad_response.h
index 0ba88cf..2119067 100644
--- a/engines/wintermute/ad/ad_response.h
+++ b/engines/wintermute/ad/ad_response.h
@@ -43,7 +43,7 @@ public:
bool setIconHover(const char *filename);
bool setIconPressed(const char *filename);
void setText(const char *text);
- int _iD;
+ int32 _iD;
BaseSprite *_icon;
BaseSprite *_iconHover;
BaseSprite *_iconPressed;
diff --git a/engines/wintermute/ad/ad_response_box.cpp b/engines/wintermute/ad/ad_response_box.cpp
index fb31aa0..45fd33d 100644
--- a/engines/wintermute/ad/ad_response_box.cpp
+++ b/engines/wintermute/ad/ad_response_box.cpp
@@ -96,6 +96,9 @@ AdResponseBox::~AdResponseBox() {
_waitingScript = NULL;
}
+uint32 AdResponseBox::getNumResponses() const {
+ return _responses.size();
+}
//////////////////////////////////////////////////////////////////////////
void AdResponseBox::clearResponses() {
@@ -627,6 +630,30 @@ void AdResponseBox::setLastResponseText(const char *text, const char *textOrig)
BaseUtils::setString(&_lastResponseTextOrig, textOrig);
}
+const char *AdResponseBox::getLastResponseText() const {
+ return _lastResponseText;
+}
+
+const char *AdResponseBox::getLastResponseTextOrig() const {
+ return _lastResponseTextOrig;
+}
+
+UIWindow *AdResponseBox::getResponseWindow() {
+ return _window;
+}
+
+void AdResponseBox::addResponse(AdResponse *response) {
+ _responses.add(response);
+}
+
+int32 AdResponseBox::getIdForResponseNum(uint32 num) const {
+ assert(num < _responses.size());
+ return _responses[num]->_iD;
+}
+
+bool AdResponseBox::handleResponseNum(uint32 num) {
+ return handleResponse(_responses[num]);
+}
//////////////////////////////////////////////////////////////////////////
bool AdResponseBox::handleResponse(AdResponse *response) {
diff --git a/engines/wintermute/ad/ad_response_box.h b/engines/wintermute/ad/ad_response_box.h
index 35f8cb6..3b18006 100644
--- a/engines/wintermute/ad/ad_response_box.h
+++ b/engines/wintermute/ad/ad_response_box.h
@@ -44,10 +44,14 @@ public:
BaseObject *getPrevAccessObject(BaseObject *CurrObject);
bool getObjects(BaseArray<UIObject *> &objects, bool interactiveOnly);
+ void addResponse(AdResponse* response);
bool handleResponse(AdResponse *response);
+ bool handleResponseNum(uint32 num);
+ int32 getIdForResponseNum(uint32 num) const;
void setLastResponseText(const char *text, const char *textOrig);
- char *_lastResponseText;
- char *_lastResponseTextOrig;
+ const char *getLastResponseText() const;
+ const char *getLastResponseTextOrig() const;
+
DECLARE_PERSISTENT(AdResponseBox, BaseObject)
ScScript *_waitingScript;
virtual bool listen(BaseScriptHolder *param1, uint32 param2);
@@ -59,27 +63,35 @@ public:
bool weedResponses();
bool display();
- int _spacing;
- int _scrollOffset;
- BaseFont *_fontHover;
- BaseFont *_font;
+
bool createButtons();
bool invalidateButtons();
void clearButtons();
void clearResponses();
AdResponseBox(BaseGame *inGame);
virtual ~AdResponseBox();
- BaseArray<AdResponse *> _responses;
- BaseArray<UIButton *> _respButtons;
- UIWindow *_window;
- UIWindow *_shieldWindow;
+
+ bool loadFile(const char *filename);
+ bool loadBuffer(byte *buffer, bool complete = true);
+ virtual bool saveAsText(BaseDynamicBuffer *buffer, int indent);
+
+ UIWindow *getResponseWindow();
+ uint32 getNumResponses() const;
+private:
+ int _spacing;
+ int _scrollOffset;
+ BaseFont *_fontHover;
+ BaseFont *_font;
bool _horizontal;
Rect32 _responseArea;
int _verticalAlign;
TTextAlign _align;
- bool loadFile(const char *filename);
- bool loadBuffer(byte *buffer, bool complete = true);
- virtual bool saveAsText(BaseDynamicBuffer *buffer, int indent);
+ BaseArray<UIButton *> _respButtons;
+ BaseArray<AdResponse *> _responses;
+ UIWindow *_shieldWindow;
+ char *_lastResponseText;
+ char *_lastResponseTextOrig;
+ UIWindow *_window;
};
} // end of namespace Wintermute
Commit: 83ecd85e7838dc54ff8608d1971817cf5cb17048
https://github.com/scummvm/scummvm/commit/83ecd85e7838dc54ff8608d1971817cf5cb17048
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2012-12-09T03:54:52-08:00
Commit Message:
WINTERMUTE: Only warn about drawLine once.
Changed paths:
engines/wintermute/base/gfx/osystem/base_render_osystem.cpp
diff --git a/engines/wintermute/base/gfx/osystem/base_render_osystem.cpp b/engines/wintermute/base/gfx/osystem/base_render_osystem.cpp
index 746a648..3255156 100644
--- a/engines/wintermute/base/gfx/osystem/base_render_osystem.cpp
+++ b/engines/wintermute/base/gfx/osystem/base_render_osystem.cpp
@@ -529,9 +529,10 @@ void BaseRenderOSystem::drawFromSurface(const Graphics::Surface *surf, Common::R
//////////////////////////////////////////////////////////////////////////
bool BaseRenderOSystem::drawLine(int x1, int y1, int x2, int y2, uint32 color) {
-
- if (!_disableDirtyRects) {
+ static bool hasWarned = false; // TODO: Fix this, this only avoids spamming warnings for now.
+ if (!_disableDirtyRects && !hasWarned) {
warning("BaseRenderOSystem::DrawLine - doesn't work for dirty rects yet");
+ hasWarned = true;
}
byte r = RGBCOLGetR(color);
More information about the Scummvm-git-logs
mailing list