diff options
author | David Turner | 2010-12-22 05:52:58 +0000 |
---|---|---|
committer | David Turner | 2010-12-22 05:52:58 +0000 |
commit | 1dde0156c23214be7776054a3aee1d04ed7201f1 (patch) | |
tree | a6fc17c4512881cf9aebd172c27b31dd5d0aebba /engines | |
parent | 67cf6a0601f42f8e43d52a194f8d7c00608d977f (diff) | |
download | scummvm-rg350-1dde0156c23214be7776054a3aee1d04ed7201f1.tar.gz scummvm-rg350-1dde0156c23214be7776054a3aee1d04ed7201f1.tar.bz2 scummvm-rg350-1dde0156c23214be7776054a3aee1d04ed7201f1.zip |
MOHAWK: Add further getVar() code to Myst Channelwood Age Script Parser.
svn-id: r54998
Diffstat (limited to 'engines')
-rw-r--r-- | engines/mohawk/myst_stacks/channelwood.cpp | 61 |
1 files changed, 42 insertions, 19 deletions
diff --git a/engines/mohawk/myst_stacks/channelwood.cpp b/engines/mohawk/myst_stacks/channelwood.cpp index 5593e6cc72..a43353c441 100644 --- a/engines/mohawk/myst_stacks/channelwood.cpp +++ b/engines/mohawk/myst_stacks/channelwood.cpp @@ -86,23 +86,32 @@ uint16 MystScriptParser_Channelwood::getVar(uint16 var) { return channelwood.waterPumpBridgeState; case 2: // Lower Walkway to Upper Walkway Elevator Raised return channelwood.elevatorState; -// case 4: // Water Flowing To Book Room Elevator -// based on channelwood.waterValveStates; -// return 0; -// return 1; + case 3: // Water Flowing To Lower Walkway To Upper Walkway Elevator + return (channelwood.waterValveStates & 0xc0) ? 1 : 0; + case 4: // Water Flowing To Book Room Elevator + return ((channelwood.waterValveStates & 0xf8) == 0xb0 && channelwood.pipeState) ? 1 : 0; case 5: // Lower Walkway to Upper Walkway Spiral Stair Lower Door State return channelwood.stairsLowerDoorState; case 6: // Pipe Bridge Extended return channelwood.pipeState; -// case 7: // Water Flowing To Water Pump For Bridge -// return 0; -// return 1; + case 7: // Water Flowing To Water Pump For Bridge + return ((channelwood.waterValveStates & 0xe2) == 0xc2 || (channelwood.waterValveStates & 0xf4) == 0xa0) ? 1 : 0; case 8: // Water Tank Valve return (channelwood.waterValveStates & 0x80) ? 1 : 0; -// case 13: // Valve State -// based on channelwood.waterValveStates; -// return 0; -// return 1; + case 9: // State of First Water Valve + return (channelwood.waterValveStates & 0x40) ? 1 : 0; + case 10: // State of Second Water Valve + return (channelwood.waterValveStates & 0x20) ? 1 : 0; + case 11: // State of Right Third Water Valve + return (channelwood.waterValveStates & 0x10) ? 1 : 0; + case 12: // State of Right-Right Fourth Water Valve + return (channelwood.waterValveStates & 0x08) ? 1 : 0; + case 13: // State of Right-Left Fourth Water Valve + return (channelwood.waterValveStates & 0x04) ? 1 : 0; + case 14: // State of Left Third Water Valve + return (channelwood.waterValveStates & 0x02) ? 1 : 0; + case 15: // Water Flowing To Lower Walkway To Upper Walkway Elevator + return ((channelwood.waterValveStates & 0xf8) == 0xb8) ? 1 : 0; case 16: // Channelwood Lower Walkway to Upper Walkway Spiral Stair Upper Door State return channelwood.stairsUpperDoorState; case 17: // Achenar's Holoprojector Selection @@ -112,17 +121,31 @@ uint16 MystScriptParser_Channelwood::getVar(uint16 var) { // return 1; case 19: // Sound - Water Tank Valve return (channelwood.waterValveStates & 0x80) ? 1 : 0; -// case 26: // Sound - Water Flowing in <TODO> -// based on channelwood.waterValveStates; -// return 0; -// return 1; + case 20: // Sound - First Water Valve Water Flowing To Left + return ((channelwood.waterValveStates & 0xc0) == 0x80) ? 1 : 0; + case 21: // Sound - Second Water Valve Water Flowing To Right + return ((channelwood.waterValveStates & 0xe0) == 0xa0) ? 1 : 0; + case 22: // Sound - Right Third Water Valve Water Flowing To Right + return ((channelwood.waterValveStates & 0xf0) == 0xb0) ? 1 : 0; + case 23: // Sound - Right Third Water Valve Water Flowing To Left + return ((channelwood.waterValveStates & 0xf0) == 0xa0) ? 1 : 0; + case 24: // Sound - Second Water Valve Water Flowing To Left + return ((channelwood.waterValveStates & 0xe0) == 0xc0) ? 1 : 0; + case 25: // Sound - Right-Right Fourth Valve Water Flowing To Left (To Pipe Bridge) + return ((channelwood.waterValveStates & 0xf8) == 0xb0) ? 1 : 0; + case 26: // Sound - Right-Left Fourth Valve Water Flowing To Right (To Pipe Down Tree) + return ((channelwood.waterValveStates & 0xf4) == 0xa4) ? 1 : 0; + case 27: // Sound - Right-Left Fourth Valve Water Flowing To Left (To Pipe Fork) + return ((channelwood.waterValveStates & 0xf4) == 0xa0) ? 1 : 0; + case 28: // Sound - Left Third Water Valve Flowing To Right (To Pipe Fork) + return ((channelwood.waterValveStates & 0xe2) == 0xc2) ? 1 : 0; + case 29: // Sound - Left Third Water Valve Flowing To Left (To Pipe In Water) + return ((channelwood.waterValveStates & 0xe2) == 0xc0) ? 1 : 0; // case 30: // Temple Door State // return 0; // return 1; -// case 32: // Sound - Water Flowing in Pipe to Book Room Elevator -// based on channelwood.waterValveStates; -// return 0; -// return 1; + case 32: // Sound - Water Flowing in Pipe to Book Room Elevator + return ((channelwood.waterValveStates & 0xf8) == 0xb0 && channelwood.pipeState) ? 1 : 0; // case 102: // Sirrus's Desk Drawer / Red Page State // return 0; // Drawer Closed // return 1; // Drawer Open, Red Page Taken |