[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