diff options
author | Bastien Bouclet | 2010-11-29 20:52:20 +0000 |
---|---|---|
committer | Bastien Bouclet | 2010-11-29 20:52:20 +0000 |
commit | 200cafd40fe1523aeefa11ddefd0a66bddcf2c05 (patch) | |
tree | a84a4529d23aa27fb0600ca6f35997f07143016c /engines | |
parent | fc504c72e8bf17eec0dce21b187649b4fd9a3e8c (diff) | |
download | scummvm-rg350-200cafd40fe1523aeefa11ddefd0a66bddcf2c05.tar.gz scummvm-rg350-200cafd40fe1523aeefa11ddefd0a66bddcf2c05.tar.bz2 scummvm-rg350-200cafd40fe1523aeefa11ddefd0a66bddcf2c05.zip |
MOHAWK: Start implementing type 10 areas
svn-id: r54603
Diffstat (limited to 'engines')
-rw-r--r-- | engines/mohawk/myst_areas.cpp | 15 | ||||
-rw-r--r-- | engines/mohawk/myst_areas.h | 6 | ||||
-rw-r--r-- | engines/mohawk/myst_scripts_selenitic.cpp | 24 | ||||
-rw-r--r-- | engines/mohawk/myst_scripts_selenitic.h | 12 |
4 files changed, 33 insertions, 24 deletions
diff --git a/engines/mohawk/myst_areas.cpp b/engines/mohawk/myst_areas.cpp index 1f196faf43..39f443cf1b 100644 --- a/engines/mohawk/myst_areas.cpp +++ b/engines/mohawk/myst_areas.cpp @@ -458,9 +458,13 @@ uint16 MystResourceType8::getType8Var() { // No MystResourceType9! MystResourceType10::MystResourceType10(MohawkEngine_Myst *vm, Common::SeekableReadStream *rlstStream, MystResource *parent) : MystResourceType11(vm, rlstStream, parent) { + _dragSound = rlstStream->readUint16LE(); + + debugC(kDebugResource, "\tdrag sound : %d", _dragSound); + + _sliderWidth = _rect.right - _rect.left; + _sliderHeigth = _rect.bottom - _rect.top; - _unk10 = rlstStream->readUint16LE(); - debugC(kDebugResource, "\tunk10: %d", _unk10); warning("TODO: Card contains Type 10 Resource - Function not yet implemented"); } @@ -468,6 +472,13 @@ MystResourceType10::~MystResourceType10() { } +void MystResourceType10::setStep(uint16 step) { + _rect.top = _minV + _stepV * step - _sliderHeigth / 2; + _rect.bottom = _rect.top + _sliderHeigth; + _subImages[0].rect.top = 333 - _rect.bottom - 1; + _subImages[0].rect.bottom = 333 - _rect.top - 1; +} + MystResourceType11::MystResourceType11(MohawkEngine_Myst *vm, Common::SeekableReadStream *rlstStream, MystResource *parent) : MystResourceType8(vm, rlstStream, parent) { _flagHV = rlstStream->readUint16LE(); _minH = rlstStream->readUint16LE(); diff --git a/engines/mohawk/myst_areas.h b/engines/mohawk/myst_areas.h index 192c580c05..61a8c00281 100644 --- a/engines/mohawk/myst_areas.h +++ b/engines/mohawk/myst_areas.h @@ -169,8 +169,12 @@ public: MystResourceType10(MohawkEngine_Myst *vm, Common::SeekableReadStream *rlstStream, MystResource *parent); virtual ~MystResourceType10(); + void setStep(uint16 step); + protected: - uint16 _unk10; + uint16 _dragSound; + uint16 _sliderWidth; + uint16 _sliderHeigth; }; class MystResourceType12 : public MystResourceType11 { diff --git a/engines/mohawk/myst_scripts_selenitic.cpp b/engines/mohawk/myst_scripts_selenitic.cpp index 96e219e4b1..e2081b54ac 100644 --- a/engines/mohawk/myst_scripts_selenitic.cpp +++ b/engines/mohawk/myst_scripts_selenitic.cpp @@ -824,24 +824,24 @@ void MystScriptParser_Selenitic::o_204_soundLock_init(uint16 op, uint16 var, uin if (_vm->_resources[i]->type == 10) { switch (_vm->_resources[i]->getType8Var()) { case 20: - _sound_lock_slider_1 = _vm->_resources[i]; - soundLockSliderSetPosition(_sound_lock_slider_1, selenitic_vars[13]); + _sound_lock_slider_1 = static_cast<MystResourceType10 *>(_vm->_resources[i]); + _sound_lock_slider_1->setStep(selenitic_vars[13]); break; case 21: - _sound_lock_slider_2 = _vm->_resources[i]; - soundLockSliderSetPosition(_sound_lock_slider_2, selenitic_vars[14]); + _sound_lock_slider_2 = static_cast<MystResourceType10 *>(_vm->_resources[i]); + _sound_lock_slider_2->setStep(selenitic_vars[14]); break; case 22: - _sound_lock_slider_3 = _vm->_resources[i]; - soundLockSliderSetPosition(_sound_lock_slider_3, selenitic_vars[15]); + _sound_lock_slider_3 = static_cast<MystResourceType10 *>(_vm->_resources[i]); + _sound_lock_slider_3->setStep(selenitic_vars[15]); break; case 23: - _sound_lock_slider_4 = _vm->_resources[i]; - soundLockSliderSetPosition(_sound_lock_slider_4, selenitic_vars[16]); + _sound_lock_slider_4 = static_cast<MystResourceType10 *>(_vm->_resources[i]); + _sound_lock_slider_4->setStep(selenitic_vars[16]); break; case 24: - _sound_lock_slider_5 = _vm->_resources[i]; - soundLockSliderSetPosition(_sound_lock_slider_5, selenitic_vars[17]); + _sound_lock_slider_5 = static_cast<MystResourceType10 *>(_vm->_resources[i]); + _sound_lock_slider_5->setStep(selenitic_vars[17]); break; } } else if (_vm->_resources[i]->type == 8) { @@ -852,10 +852,6 @@ void MystScriptParser_Selenitic::o_204_soundLock_init(uint16 op, uint16 var, uin } } -void MystScriptParser_Selenitic::soundLockSliderSetPosition(MystResource* slider, uint16 value) { -// TODO: implement -} - void MystScriptParser_Selenitic::opcode_205(uint16 op, uint16 var, uint16 argc, uint16 *argv) { varUnusedCheck(op, var); diff --git a/engines/mohawk/myst_scripts_selenitic.h b/engines/mohawk/myst_scripts_selenitic.h index 36bb16f682..f17b590376 100644 --- a/engines/mohawk/myst_scripts_selenitic.h +++ b/engines/mohawk/myst_scripts_selenitic.h @@ -93,11 +93,11 @@ private: MystResource *_sound_receiver_angle_4; // 152 MystResource *_sound_receiver_sigma_button; // 156 - MystResource *_sound_lock_slider_1; // 164 - MystResource *_sound_lock_slider_2; // 168 - MystResource *_sound_lock_slider_3; // 172 - MystResource *_sound_lock_slider_4; // 176 - MystResource *_sound_lock_slider_5; // 180 + MystResourceType10 *_sound_lock_slider_1; // 164 + MystResourceType10 *_sound_lock_slider_2; // 168 + MystResourceType10 *_sound_lock_slider_3; // 172 + MystResourceType10 *_sound_lock_slider_4; // 176 + MystResourceType10 *_sound_lock_slider_5; // 180 MystResource *_sound_lock_button; // 184 void sound_receiver_left_right(uint direction); @@ -109,8 +109,6 @@ private: uint16 sound_receiver_current_sound(uint16 source, uint16 position); void sound_receiver_solution(uint16 source, uint16 &solution, bool &enabled); - void soundLockSliderSetPosition(MystResource* slider, uint16 value); - void draw_digit(MystResource *_resource); }; |