MYST3: Add some water effect stubs

This commit is contained in:
Bastien Bouclet 2013-01-03 22:07:08 +01:00
parent 0da347f540
commit 8b51fa1cd4
5 changed files with 48 additions and 2 deletions

View File

@ -634,7 +634,7 @@ void Puzzles::pinball(int16 var) {
if (var >= 0)
return;
_vm->_state->setVar(93, 0);
_vm->_state->setWaterEffectPaused(false);
// Remove the default panel movies
_vm->removeMovie(10116);
@ -840,7 +840,7 @@ void Puzzles::pinball(int16 var) {
_vm->_sound->playEffect(1028, 50);
} else if (jumpType == 1 || jumpType == 4) {
_vm->_state->setVar(26, jumpType);
_vm->_state->setVar(93, 1);
_vm->_state->setWaterEffectPaused(true);
// sound fade stop 1025, 7
return;
}

View File

@ -72,6 +72,9 @@ Script::Script(Myst3Engine *vm):
OP_0( 28, movieRemoveAll );
OP_1( 29, movieSetLooping, kValue );
OP_1( 30, movieSetNotLooping, kValue );
OP_1( 31, waterEffectSetSpeed, kValue );
OP_1( 32, waterEffectSetAttenuation, kValue );
OP_2( 33, waterEffectSetWave, kValue, kValue );
OP_2( 35, sunspotAdd, kValue, kValue );
OP_3( 36, sunspotAddIntensity, kValue, kValue, kValue );
OP_4( 37, sunspotAddVarIntensity, kValue, kValue, kValue, kVar );
@ -600,6 +603,28 @@ void Script::movieSetNotLooping(Context &c, const Opcode &cmd) {
_vm->setMovieLooping(cmd.args[0], false);
}
void Script::waterEffectSetSpeed(Context &c, const Opcode &cmd) {
debugC(kDebugScript, "Opcode %d: Set water effect speed to %d",
cmd.op, cmd.args[0]);
_vm->_state->setWaterEffectSpeed(cmd.args[0]);
}
void Script::waterEffectSetAttenuation(Context &c, const Opcode &cmd) {
debugC(kDebugScript, "Opcode %d: Set water effect attenuation to %d",
cmd.op, cmd.args[0]);
_vm->_state->setWaterEffectAttenuation(cmd.args[0]);
}
void Script::waterEffectSetWave(Context &c, const Opcode &cmd) {
debugC(kDebugScript, "Opcode %d: Set water effect frequency to %d and amplitude to %d",
cmd.op, cmd.args[0], cmd.args[1]);
_vm->_state->setWaterEffectFrequency(cmd.args[0]);
_vm->_state->setWaterEffectAmpl(cmd.args[1]);
}
void Script::sunspotAdd(Context &c, const Opcode &cmd) {
debugC(kDebugScript, "Opcode %d: Add sunspot: pitch %d heading %d", cmd.op, cmd.args[0], cmd.args[1]);

View File

@ -122,6 +122,9 @@ private:
DECLARE_OPCODE(movieRemoveAll);
DECLARE_OPCODE(movieSetLooping);
DECLARE_OPCODE(movieSetNotLooping);
DECLARE_OPCODE(waterEffectSetSpeed);
DECLARE_OPCODE(waterEffectSetAttenuation);
DECLARE_OPCODE(waterEffectSetWave);
DECLARE_OPCODE(sunspotAdd);
DECLARE_OPCODE(sunspotAddIntensity);
DECLARE_OPCODE(sunspotAddVarIntensity);

View File

@ -112,6 +112,15 @@ GameState::GameState(Myst3Engine *vm):
VAR(92, HotspotActiveRect, false)
VAR(93, WaterEffectPaused, true)
VAR(94, WaterEffectActive, true)
VAR(95, WaterEffectSpeed, true)
VAR(96, WaterEffectAttenuation, true)
VAR(97, WaterEffectFrequency, true)
VAR(98, WaterEffectAmpl, true)
VAR(99, WaterEffectMaxStep, true)
VAR(100, WaterEffectAmplOffset, true)
VAR(115, SunspotIntensity, false)
VAR(116, SunspotColor, false)
VAR(117, SunspotRadius, false)

View File

@ -92,6 +92,15 @@ public:
DECLARE_VAR(92, HotspotActiveRect)
DECLARE_VAR(93, WaterEffectPaused)
DECLARE_VAR(94, WaterEffectActive)
DECLARE_VAR(95, WaterEffectSpeed)
DECLARE_VAR(96, WaterEffectAttenuation)
DECLARE_VAR(97, WaterEffectFrequency)
DECLARE_VAR(98, WaterEffectAmpl)
DECLARE_VAR(99, WaterEffectMaxStep)
DECLARE_VAR(100, WaterEffectAmplOffset)
DECLARE_VAR(115, SunspotIntensity)
DECLARE_VAR(116, SunspotColor)
DECLARE_VAR(117, SunspotRadius)