diff options
author | Marisa-Chan | 2014-11-20 14:02:08 +0600 |
---|---|---|
committer | Marisa-Chan | 2014-11-20 14:02:08 +0600 |
commit | d5f7a1dc03f2a38774ad1c8dd6741bb9c6fb9848 (patch) | |
tree | 6007853460b6b2f7b254a34ddfc03a1bffc80534 /engines | |
parent | 03d33e82bc15100584bec38cfa3d877a4882bcab (diff) | |
download | scummvm-rg350-d5f7a1dc03f2a38774ad1c8dd6741bb9c6fb9848.tar.gz scummvm-rg350-d5f7a1dc03f2a38774ad1c8dd6741bb9c6fb9848.tar.bz2 scummvm-rg350-d5f7a1dc03f2a38774ad1c8dd6741bb9c6fb9848.zip |
ZVISION: Implement forgotten setVenus for controls
Diffstat (limited to 'engines')
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); |