diff options
Diffstat (limited to 'engines/zvision/scripting')
10 files changed, 27 insertions, 9 deletions
diff --git a/engines/zvision/scripting/control.cpp b/engines/zvision/scripting/control.cpp index c746f00831..9c8156961c 100644 --- a/engines/zvision/scripting/control.cpp +++ b/engines/zvision/scripting/control.cpp @@ -23,6 +23,7 @@  #include "common/scummsys.h"  #include "zvision/scripting/control.h" +#include "zvision/scripting/script_manager.h"  #include "zvision/zvision.h"  #include "zvision/graphics/render_manager.h" @@ -129,4 +130,10 @@ void Control::getParams(const Common::String &input_str, Common::String ¶met  	values = Common::String(chrs + lbr + 1, chrs + rbr);  } +void Control::setVenus() { +	if (_venus_id >= 0) +		if (_engine->getScriptManager()->getStateValue(_venus_id) > 0) +			_engine->getScriptManager()->setStateValue(StateKey_Venus, _venus_id); +} +  } // End of namespace ZVision diff --git a/engines/zvision/scripting/control.h b/engines/zvision/scripting/control.h index 28c7348d98..b784a66913 100644 --- a/engines/zvision/scripting/control.h +++ b/engines/zvision/scripting/control.h @@ -54,8 +54,7 @@ public:  		CONTROL_PAINT  	}; -	Control() : _engine(0), _key(0) {} -	Control(ZVision *engine, uint32 key, ControlType type) : _engine(engine), _key(key), _type(type) {} +	Control(ZVision *engine, uint32 key, ControlType type) : _engine(engine), _key(key), _type(type), _venus_id(-1) {}  	virtual ~Control() {}  	uint32 getKey() { @@ -121,6 +120,7 @@ public:  	virtual bool process(uint32 deltaTimeInMillis) {  		return false;  	} +	void setVenus();  protected:  	ZVision *_engine; diff --git a/engines/zvision/scripting/controls/fist_control.cpp b/engines/zvision/scripting/controls/fist_control.cpp index 4779c5db74..185bea09d2 100644 --- a/engines/zvision/scripting/controls/fist_control.cpp +++ b/engines/zvision/scripting/controls/fist_control.cpp @@ -155,7 +155,7 @@ bool FistControl::onMouseUp(const Common::Point &screenSpacePos, const Common::P  	int n_fist = mouseIn(screenSpacePos, backgroundImageSpacePos);  	if (n_fist >= 0) { -		//ctrl_setvenus(ct); +		setVenus();  		uint32 oldStatus = _fiststatus;  		_fiststatus ^= (1 << n_fist); @@ -172,8 +172,6 @@ bool FistControl::onMouseUp(const Common::Point &screenSpacePos, const Common::P  			}  		_engine->getScriptManager()->setStateValue(_key, _fiststatus); - -		//_engine->getScriptManager()->FlushMouseBtn(SDL_BUTTON_LEFT);  	}  	return false; diff --git a/engines/zvision/scripting/controls/hotmov_control.cpp b/engines/zvision/scripting/controls/hotmov_control.cpp index b39292f1c5..6969ee1bfe 100644 --- a/engines/zvision/scripting/controls/hotmov_control.cpp +++ b/engines/zvision/scripting/controls/hotmov_control.cpp @@ -158,6 +158,7 @@ bool HotMovControl::onMouseUp(const Common::Point &screenSpacePos, const Common:  	if (_cycle < _num_cycles) {  		if (_frames[_cur_frame].contains(backgroundImageSpacePos)) { +			setVenus();  			_engine->getScriptManager()->setStateValue(_key, 1);  			return true;  		} diff --git a/engines/zvision/scripting/controls/input_control.cpp b/engines/zvision/scripting/controls/input_control.cpp index f8acdbda73..442c6cbc6a 100644 --- a/engines/zvision/scripting/controls/input_control.cpp +++ b/engines/zvision/scripting/controls/input_control.cpp @@ -103,6 +103,8 @@ InputControl::InputControl(ZVision *engine, uint32 key, Common::SeekableReadStre  		} else if (param.matchString("focus", true)) {  			_focused = true;  			_engine->getScriptManager()->setFocusControlKey(_key); +		} else if (param.matchString("venus_id", true)) { +			_venus_id = atoi(values.c_str());  		}  		line = stream.readLine(); @@ -119,10 +121,13 @@ bool InputControl::onMouseUp(const Common::Point &screenSpacePos, const Common::  		if (!_readOnly) {  			// Save  			_engine->getScriptManager()->focusControl(_key); +			setVenus();  		} else {  			// Restore -			if (_currentInputText.size()) +			if (_currentInputText.size()) { +				setVenus();  				_enterPressed = true; +			}  		}  	}  	return false; diff --git a/engines/zvision/scripting/controls/lever_control.cpp b/engines/zvision/scripting/controls/lever_control.cpp index 9b665ff033..a9836b388e 100644 --- a/engines/zvision/scripting/controls/lever_control.cpp +++ b/engines/zvision/scripting/controls/lever_control.cpp @@ -141,6 +141,8 @@ void LeverControl::parseLevFile(const Common::String &fileName) {  			_hotspotDelta.x = x;  			_hotspotDelta.y = y; +		} else if (param.matchString("venus_id", true)) { +			_venus_id = atoi(values.c_str());  		} else {  			uint frameNumber;  			uint x, y; @@ -191,6 +193,7 @@ bool LeverControl::onMouseDown(const Common::Point &screenSpacePos, const Common  		return false;  	if (_frameInfo[_currentFrame].hotspot.contains(backgroundImageSpacePos)) { +		setVenus();  		_mouseIsCaptured = true;  		_lastMousePos = backgroundImageSpacePos;  	} diff --git a/engines/zvision/scripting/controls/paint_control.cpp b/engines/zvision/scripting/controls/paint_control.cpp index 2891f1b1f9..54c02a2568 100644 --- a/engines/zvision/scripting/controls/paint_control.cpp +++ b/engines/zvision/scripting/controls/paint_control.cpp @@ -142,6 +142,7 @@ bool PaintControl::onMouseDown(const Common::Point &screenSpacePos, const Common  		int mouse_item = _engine->getScriptManager()->getStateValue(StateKey_InventoryItem);  		if (eligeblity(mouse_item)) { +			setVenus();  			_mouseDown = true;  		}  	} diff --git a/engines/zvision/scripting/controls/push_toggle_control.cpp b/engines/zvision/scripting/controls/push_toggle_control.cpp index 03df4b722e..561dd1dd20 100644 --- a/engines/zvision/scripting/controls/push_toggle_control.cpp +++ b/engines/zvision/scripting/controls/push_toggle_control.cpp @@ -74,8 +74,8 @@ PushToggleControl::PushToggleControl(ZVision *engine, uint32 key, Common::Seekab  			} else if (values.equalsIgnoreCase("double")) {  				// Not used  			} -		} else if (param.matchString("venus_id*", true)) { -			// Not used +		} else if (param.matchString("venus_id", true)) { +			_venus_id = atoi(values.c_str());  		}  		line = stream.readLine(); @@ -100,6 +100,7 @@ bool PushToggleControl::onMouseUp(const Common::Point &screenSpacePos, const Com  		return false;  	if (contain(backgroundImageSpacePos)) { +		setVenus();  		int32 val = _engine->getScriptManager()->getStateValue(_key);  		val = (val + 1) % _countTo;  		_engine->getScriptManager()->setStateValue(_key, val); @@ -116,6 +117,7 @@ bool PushToggleControl::onMouseDown(const Common::Point &screenSpacePos, const C  		return false;  	if (contain(backgroundImageSpacePos)) { +		setVenus();  		int32 val = _engine->getScriptManager()->getStateValue(_key);  		val = (val + 1) % _countTo;  		_engine->getScriptManager()->setStateValue(_key, val); diff --git a/engines/zvision/scripting/controls/safe_control.cpp b/engines/zvision/scripting/controls/safe_control.cpp index ba809148a3..9df61ce341 100644 --- a/engines/zvision/scripting/controls/safe_control.cpp +++ b/engines/zvision/scripting/controls/safe_control.cpp @@ -179,6 +179,7 @@ bool SafeControl::onMouseUp(const Common::Point &screenSpacePos, const Common::P  	if (_rectangle.contains(backgroundImageSpacePos)) {  		int32 mR = backgroundImageSpacePos.sqrDist(_center);  		if (mR <= _radius_outer_sq && mR >= _radius_inner_sq) { +			setVenus();  			Common::Point tmp = backgroundImageSpacePos - _center; diff --git a/engines/zvision/scripting/controls/slot_control.cpp b/engines/zvision/scripting/controls/slot_control.cpp index f78061ac13..46ee320eb5 100644 --- a/engines/zvision/scripting/controls/slot_control.cpp +++ b/engines/zvision/scripting/controls/slot_control.cpp @@ -121,7 +121,7 @@ bool SlotControl::onMouseUp(const Common::Point &screenSpacePos, const Common::P  		return false;  	if (_hotspot.contains(backgroundImageSpacePos)) { -		//ctrl_setvenus(ct); +		setVenus();  		int item = _engine->getScriptManager()->getStateValue(_key);  		int mouse_item = _engine->getScriptManager()->getStateValue(StateKey_InventoryItem);  | 
