aboutsummaryrefslogtreecommitdiff
path: root/queen
diff options
context:
space:
mode:
authorJoost Peters2003-11-14 00:45:44 +0000
committerJoost Peters2003-11-14 00:45:44 +0000
commit2d3f4ef8311946af98db30d61c785611466ff311 (patch)
treebaed97a6c971f0fae8a2f55b6d921e0e624c98e7 /queen
parentef1595b2a9e6bab5e2f5caeacd1264b1bca07a6d (diff)
downloadscummvm-rg350-2d3f4ef8311946af98db30d61c785611466ff311.tar.gz
scummvm-rg350-2d3f4ef8311946af98db30d61c785611466ff311.tar.bz2
scummvm-rg350-2d3f4ef8311946af98db30d61c785611466ff311.zip
Play all sfx now, instead of only amiga ones + some music preparation
svn-id: r11288
Diffstat (limited to 'queen')
-rw-r--r--queen/module.mk1
-rw-r--r--queen/musicdata.cpp1703
-rw-r--r--queen/sound.cpp465
-rw-r--r--queen/sound.h24
-rw-r--r--queen/xref.txt10
5 files changed, 1739 insertions, 464 deletions
diff --git a/queen/module.mk b/queen/module.mk
index 8e69eb85d2..dd9f156bb8 100644
--- a/queen/module.mk
+++ b/queen/module.mk
@@ -8,6 +8,7 @@ MODULE_OBJS = \
queen/graphics.o \
queen/input.o \
queen/logic.o \
+ queen/musicdata.o \
queen/queen.o \
queen/resource.o \
queen/restables.o \
diff --git a/queen/musicdata.cpp b/queen/musicdata.cpp
new file mode 100644
index 0000000000..8d0970c2e4
--- /dev/null
+++ b/queen/musicdata.cpp
@@ -0,0 +1,1703 @@
+/* ScummVM - Scumm Interpreter
+ * Copyright (C) 2003 The ScummVM project
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Header$
+ *
+ */
+
+#include "queen/sound.h"
+
+namespace Queen {
+
+const songData Sound::_song[] = {
+ /* 1 - Hotel Gangsters */
+ { { 1, 0 }, 128, 180, 0, 1, 0 },
+
+ /* 2 - Hotel General */
+ { { 2, 0 }, 128, 180, 0, 1, 0 },
+
+ /* 3 - Jungle */
+ { { 3, 4, 5, 6, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 4 - Waterfall On */
+ { { 7, 0 }, 128, 0, 0, 0, 0 },
+
+ /* 5 - Vnormal */
+ { { 8, 0 }, 128, 0, 0, 2, 0 },
+
+ /* 6 - Trader Bob */
+ { { 9, 0 }, 120, 0, 0, 1, 0 },
+
+ /* 7 - Jetty Music */
+ { { 10, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 8 - Ferry Music */
+ { { 11, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 9 - Temple Upstairs */
+ { { 12, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 10 - Temple Downstairs */
+ { { 13, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 11 - Temple Maze */
+ { { 14, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 12 - Temple Skull */
+ { { 15, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 13 - Johns Theme (Love Story) */
+ { { 16, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 14 - Vmedium */
+ { { 17, 0 }, 120, 0, 0, 2, 0 },
+
+ /* 15 - Vsoft */
+ { { 18, 0 }, 110, 0, 0, 2, 0 },
+
+ /* 16 - Floda Upstairs */
+ { { 19, 0 }, 110, 0, 0, 1, 0 },
+
+ /* 17 - Floda General */
+ { { 20, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 18 - Klunks Room */
+ { { 21, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 19 - Hotel Lola */
+ { { 22, 0 }, 120, 180, 0, 1, 0 },
+
+ /* 20 - Hotel Escape 1 */
+ { { 23, 0 }, 128, 180, 0, 1, 0 },
+
+ /* 21 - Amazon Fortress */
+ { { 24, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 22 - Waterfall Off */
+ { { 25, 0 }, 128, 0, 0, 0, 0 },
+
+ /* 23 - Wave Torch */
+ { { 26, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 24 - Zombies Rez Out */
+ { { 27, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 25 - Open Door (standard) */
+ { { 28, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 26 - Close Door (standard) */
+ { { 29, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 27 - Cloth Unrolls */
+ { { 30, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 28 - Snake Slithers Off */
+ { { 31, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 29 - Hotel Fanfare 2 */
+ { { 32, 0 }, 128, 0, 0, 1, 1 },
+
+ /* 30 - Floda Secret */
+ { { 33, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 31 - Temple Fanfare 1 */
+ { { 34, 0 }, 128, 0, 0, 1, 1 },
+
+ /* 32 - Commander Rocket 1 */
+ { { 35, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 33 - Hotel Escape 2 */
+ { { 36, 0 }, 128, 180, 0, 1, 0 },
+
+ /* 34 - Back of Truck */
+ { { 37, 0 }, 128, 180, 0, 1, 0 },
+
+ /* 35 - Hotel Fanfare 1 */
+ { { 38, 0 }, 128, 0, 0, 1, 1 },
+
+ /* 36 - Truck Fanfare */
+ { { 39, 0 }, 128, 0, 0, 1, 1 },
+
+ /* 37 - Airport */
+ { { 40, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 38 - Plane Leaves */
+ { { 41, 0 }, 128, 0, 0, 1, 1 },
+
+ /* 39 - Arrive Hotel */
+ { { 42, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 40 - Jungle Fanfare */
+ { { 43, 0 }, 128, 0, 0, 1, 1 },
+
+ /* 41 - General Fanfare */
+ { { 44, 0 }, 128, 0, 0, 1, 1 },
+
+ /* 42 - Johns Room */
+ { { 45, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 43 - Floda Lab */
+ { { 46, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 44 - Azura's Theme */
+ { { 47, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 45 - Use Record */
+ { { 48, 0 }, 128, 0, 0, 1, 1 },
+
+ /* 46 - Franks Theme */
+ { { 49, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 47 - Anderson Doubts */
+ { { 50, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 48 - Bud and Lou Theme */
+ { { 51, 0 }, 128, 0, 0, 1, 1 },
+
+ /* 49 - Gorilla Theme */
+ { { 52, 0 }, 128, 0, 0, 1, 1 },
+
+ /* 50 - Missionaries Theme */
+ { { 53, 0 }, 128, 0, 0, 1, 1 },
+
+ /* 51 - Sloth Theme */
+ { { 54, 0 }, 128, 0, 0, 1, 1 },
+
+ /* 52 - Amazon Dungeon */
+ { { 55, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 53 - Throne Room */
+ { { 56, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 54 - Temple Puzzle */
+ { { 57, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 55 - Temple Fountain Room */
+ { { 58, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 56 - Light Switch */
+ { { 59, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 57 - Hydraulic Open */
+ { { 60, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 58 - Hydraulic Close */
+ { { 61, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 59 - Close Door (metal) */
+ { { 62, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 60 - Small Hatch Close */
+ { { 63, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 61 - Scissors Snip */
+ { { 64, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 62 - Pick up Sticky */
+ { { 65, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 63 - Oracle Rezzes In */
+ { { 66, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 64 - Sparkle SFX */
+ { { 67, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 65 - Splorch! */
+ { { 68, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 66 - Pour Liquid */
+ { { 69, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 67 - End Credit Medley */
+ { { 70, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 68 - Dino Ray */
+ { { 71, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 69 - Squish! */
+ { { 72, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 70 - Robot Laser */
+ { { 73, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 71 - Thud wood light */
+ { { 74, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 72 - Thud wood deep */
+ { { 75, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 73 - Thud metallic */
+ { { 76, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 74 - Cut Coconut */
+ { { 77, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 75 - Thud Stone */
+ { { 78, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 76 - Cloth Slide 1 */
+ { { 79, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 77 - Open Chest */
+ { { 80, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 78 - Close Chest */
+ { { 81, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 79 - Open Drawer */
+ { { 82, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 80 - Truck door closes */
+ { { 83, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 81 - Truck Starts */
+ { { 84, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 82 - Truck Drives Off */
+ { { 85, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 83 - Fish Splash */
+ { { 86, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 84 - Close Drawer/Push Ladder */
+ { { 87, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 85 - Agression Enhancer */
+ { { 88, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 86 - Stone Door Grind 1 */
+ { { 89, 0 }, 128, 0, 0, 0, 1 },
+
+ /* 87 - Prequel 1 */
+ { { 90, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 88 - Intro Credits */
+ { { 91, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 89 - Valley 1 */
+ { { 92, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 90 - Valley 3 */
+ { { 93, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 91 - Fight Music */
+ { { 94, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 92 - Confrontation 1 */
+ { { 95, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 93 - Confrontation 2 */
+ { { 96, 0 }, 128, 0, 0, 1, 0 },
+
+ /* 94 - Plane Hatch Open */
+ { { 97, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 95 - Plane Hatch Close */
+ { { 98, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 96 - Tie Vines */
+ { { 99, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 97 - Pterodactyl */
+ { { 100, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 98 - Beef Jerky Splash */
+ { { 101, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 99 - Piranha Burp */
+ { { 102, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 100 - Falling Vine */
+ { { 103, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 101 - Stone Door Grind 2 */
+ { { 104, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 102 - Stone Grind (light) */
+ { { 105, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 103 - Ape Takes Off Mask */
+ { { 106, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 104 - Bark Breaks */
+ { { 107, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 105 - Stone Click */
+ { { 108, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 106 - Sproing! */
+ { { 109, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 107 - Cash Register */
+ { { 110, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 108 - Squeaky Toy */
+ { { 111, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 109 - Falling Chains */
+ { { 112, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 110 - Open Locker Door */
+ { { 113, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 111 - Close Locker Door */
+ { { 114, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 112 - Rub Pencil */
+ { { 115, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 113 - Open Safe */
+ { { 116, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 114 - Close Safe */
+ { { 117, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 115 - Push Chair */
+ { { 118, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 116 - Snake Hiss */
+ { { 119, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 117 - Oracle Rezzes Out */
+ { { 120, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 118 - Wall Crumbles */
+ { { 121, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 119 - Crypt Crumbles */
+ { { 122, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 120 - Joe Sucked Up */
+ { { 123, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 121 - Rocket Pack Zoom */
+ { { 124, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 122 - Piranha Splash */
+ { { 125, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 123 - Snap Branch */
+ { { 126, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 124 - Dino Horn */
+ { { 127, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 125 - Tyre Screech */
+ { { 128, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 126 - Oil Splat */
+ { { 129, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 127 - Punch */
+ { { 130, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 128 - Body Hits Ground */
+ { { 131, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 129 - Chicken */
+ { { 132, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 130 - Open Sarcophagus */
+ { { 133, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 131 - Close Sarcophagus */
+ { { 134, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 132 - Creaking Stick */
+ { { 135, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 133 - Pick Hits Stone */
+ { { 136, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 134 - Stalactite Crumbles */
+ { { 137, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 135 - Tic-Toc */
+ { { 138, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 136 - Stone Grind (heavy) */
+ { { 139, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 137 - Explosion */
+ { { 140, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 138 - Cloth Slide 2 */
+ { { 141, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 139 - Temple Laser */
+ { { 142, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 140 - Dino Transformation */
+ { { 143, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 141 - Experimental Laser */
+ { { 144, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 142 - Stone Grind (medium) */
+ { { 145, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 143 - Weeping God Grind */
+ { { 146, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 144 - Alien Hum */
+ { { 147, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 145 - Alien Puzzle */
+ { { 148, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 146 - Vacuum On */
+ { { 149, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 147 - Vacuum Off */
+ { { 150, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 148 - Elevator Starts */
+ { { 151, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 149 - Mummy Crumbles */
+ { { 152, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 150 - Temple Green Circle */
+ { { 153, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 151 - Rattle Bars */
+ { { 154, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 152 - Door Dissolves */
+ { { 155, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 153 - Altar Slides */
+ { { 156, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 154 - Light Torch */
+ { { 157, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 155 - Stamp Sound */
+ { { 158, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 156 - Plaster Loud */
+ { { 159, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 157 - Sparky Bathtub */
+ { { 160, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 158 - Ape Rezzes Out */
+ { { 161, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 159 - Song 159 */
+ { { 162, 0 }, 128, 128, 128, 1, 0 },
+
+ /* 160 - Song 160 */
+ { { 163, 0 }, 128, 128, 128, 1, 0 },
+
+ /* 161 - Song 161 */
+ { { 164, 0 }, 128, 128, 128, 1, 0 },
+
+ /* 162 - Piranhas Swim */
+ { { 165, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 163 - Prison/Dungeon Door */
+ { { 166, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 164 - Fight Explosion */
+ { { 167, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 165 - Press Button */
+ { { 168, 0 }, 128, 128, 128, 2, 1 },
+
+ /* 166 - Pull Lever */
+ { { 169, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 167 - Wrong Code */
+ { { 170, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 168 - Correct Code */
+ { { 171, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 169 - Sizzle */
+ { { 172, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 170 - Money In Slot */
+ { { 173, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 171 - Lightning Crack */
+ { { 174, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 172 - Machine Gun Fire */
+ { { 175, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 173 - Cage Descends */
+ { { 176, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 174 - Chair Activates */
+ { { 177, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 175 - Robot Powers On */
+ { { 178, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 176 - Grow Big */
+ { { 179, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 177 - Eat Food */
+ { { 180, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 178 - Head Shrink */
+ { { 181, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 179 - Grinding Gears */
+ { { 182, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 180 - Chair Splash */
+ { { 183, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 181 - Deflect Laser */
+ { { 184, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 182 - Zap Frank */
+ { { 185, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 183 - Frank Transforms */
+ { { 186, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 184 - Alarm Clock */
+ { { 187, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 185 - Slide Chute */
+ { { 188, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 186 - Puff */
+ { { 189, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 187 - Bite */
+ { { 190, 0 }, 128, 128, 128, 0, 0 },
+
+ /* 188 - Stone Door Grind 2 */
+ { { 191, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 189 - Prequel 2 */
+ { { 192, 0 }, 128, 128, 128, 1, 0 },
+
+ /* 190 - Prequel 3 */
+ { { 193, 0 }, 128, 128, 128, 1, 0 },
+
+ /* 191 - Prequel 4 */
+ { { 194, 0 }, 128, 128, 128, 1, 0 },
+
+ /* 192 - Stop Music */
+ { { 195, 0 }, 128, 128, 128, 1, 0 },
+
+ /* 193 - Plane Flyby */
+ { { 196, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 194 - Commander Rocket 2 */
+ { { 197, 0 }, 128, 128, 128, 1, 0 },
+
+ /* 195 - Commander Rocket 3 */
+ { { 198, 0 }, 128, 128, 128, 1, 0 },
+
+ /* 196 - Rescue */
+ { { 199, 0 }, 128, 128, 128, 1, 0 },
+
+ /* 197 - Slow Fanfare */
+ { { 200, 0 }, 128, 128, 128, 1, 0 },
+
+ /* 198 - Plane Crash */
+ { { 201, 0 }, 128, 128, 128, 1, 0 },
+
+ /* 199 - Plane Engine 1 */
+ { { 202, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 200 - Plane Engine 2 */
+ { { 203, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 201 - Boat In */
+ { { 204, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 202 - Boat Out */
+ { { 205, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 203 - Final Fanfare! */
+ { { 206, 0 }, 128, 128, 128, 1, 0 },
+
+ /* 204 - Frank Destroyed */
+ { { 207, 0 }, 128, 128, 128, 1, 0 },
+
+ /* 205 - Jaspar Eats */
+ { { 208, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 206 - Compy Scream 1 */
+ { { 209, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 207 - Compy Scream 2 */
+ { { 210, 0 }, 128, 128, 128, 0, 1 },
+
+ /* 208 - Punch Klunk Fanfare */
+ { { 211, 0 }, 128, 128, 128, 1, 0 },
+
+ /* 209 - Talk Frank */
+ { { 212, 0 }, 128, 128, 128, 1, 0 }
+};
+
+const tuneData Sound::_tune[] = {
+ /* 1 - Hotel Gangsters */
+ { { 32, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 2 - Hotel General */
+ { { 41, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 3 - Jungle */
+ { { 15, 16, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 4 - Jungle */
+ { { 17, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 5 - Jungle */
+ { { 18, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 6 - Jungle */
+ { { 7, 8, 9, 10, 11, 12, 13, 14, 0 }, { 0, 0 }, 0, -10 },
+
+ /* 7 - Waterfall On */
+ { { 3, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 8 - Vnormal */
+ { { 23, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 9 - Trader Bob */
+ { { 23, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 10 - Jetty Music */
+ { { 37, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 11 - Ferry Music */
+ { { 38, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 12 - Temple Upstairs */
+ { { 30, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 13 - Temple Downstairs */
+ { { 34, 36, 56, 0 }, { 0, 0 }, 0, 0 },
+
+ /* 14 - Temple Maze */
+ { { 87, 35, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 15 - Temple Skull */
+ { { 76, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 16 - Johns Theme (Love Story) */
+ { { 44, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 17 - Vmedium */
+ { { 28, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 18 - Vsoft */
+ { { 28, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 19 - Floda Upstairs */
+ { { 28, 39, 0 }, { 0, 0 }, 0, 0 },
+
+ /* 20 - Floda General */
+ { { 89, 63, 64, 65, 0 }, { 0, 0 }, 0, 0 },
+
+ /* 21 - Klunks Room */
+ { { 43, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 22 - Hotel Lola */
+ { { 31, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 23 - Hotel Escape 1 */
+ { { 52, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 24 - Amazon Fortress */
+ { { 40, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 25 - Waterfall Off */
+ { {-3, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 26 - Wave Torch */
+ { { 0, 0 }, { 121, 0 }, 2, 0 },
+
+ /* 27 - Zombies Rez Out */
+ { { 0, 0 }, { 20, 0 }, 2, 0 },
+
+ /* 28 - Open Door (standard) */
+ { { 0, 0 }, { 1, 0 }, 2, 0 },
+
+ /* 29 - Close Door (standard) */
+ { { 0, 0 }, { 2, 0 }, 2, 0 },
+
+ /* 30 - Cloth Unrolls */
+ { { 0, 0 }, { 51, 0 }, 2, 0 },
+
+ /* 31 - Snake Slithers Off */
+ { { 0, 0 }, { 122, 0 }, 2, 0 },
+
+ /* 32 - Hotel Fanfare 2 */
+ { { 69, 2000, 0 }, { 0, 0 }, 2, 0 },
+
+ /* 33 - Floda Secret */
+ { { 29, 42, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 34 - Temple Fanfare 1 */
+ { { 70, 2000, 0 }, { 0, 0 }, 2, 0 },
+
+ /* 35 - Commander Rocket 1 */
+ { { 45, 0 }, { 0, 0 }, 2, 0 },
+
+ /* 36 - Hotel Escape 2 */
+ { { 52, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 37 - Back of Truck */
+ { { 51, 48, 33, 54, 52, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 38 - Hotel Fanfare 1 */
+ { { 67, 2000, 0 }, { 0, 0 }, 2, 0 },
+
+ /* 39 - Truck Fanfare */
+ { { 67, 177, 0 }, { 0, 0 }, 2, 0 },
+
+ /* 40 - Airport */
+ { { 81, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 41 - Plane Leaves */
+ { { 68, 1198, 0 }, { 0, 0 }, 2, 0 },
+
+ /* 42 - Arrive Hotel */
+ { { 26, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 43 - Jungle Fanfare */
+ { { 68, 2000, 0 }, { 0, 0 }, 2, 0 },
+
+ /* 44 - General Fanfare */
+ { { 57, 2000, 0 }, { 0, 0 }, 2, 0 },
+
+ /* 45 - Johns Room */
+ { { 90, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 46 - Floda Lab */
+ { { 92, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 47 - Azura's Theme */
+ { { 80, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 48 - Use Record */
+ { { 91, 2000, 0 }, { 0, 0 }, 2, 0 },
+
+ /* 49 - Franks Theme */
+ { { 77, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 50 - Anderson Doubts */
+ { { 75, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 51 - Bud and Lou Theme */
+ { { 94, 1003, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 52 - Gorilla Theme */
+ { { 97, 1003, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 53 - Missionaries Theme */
+ { { 98, 1003, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 54 - Sloth Theme */
+ { { 100, 1003, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 55 - Amazon Dungeon */
+ { { 96, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 56 - Throne Room */
+ { { 78, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 57 - Temple Puzzle */
+ { { 88, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 58 - Temple Fountain Room */
+ { { 55, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 59 - Light Switch */
+ { { 0, 0 }, { 4, 0 }, 2, 0 },
+
+ /* 60 - Hydraulic Open */
+ { { 0, 0 }, { 7, 0 }, 2, 0 },
+
+ /* 61 - Hydraulic Close */
+ { { 0, 0 }, { 8, 0 }, 2, 0 },
+
+ /* 62 - Close Door (metal) */
+ { { 0, 0 }, { 9, 0 }, 2, 0 },
+
+ /* 63 - Small Hatch Close */
+ { { 0, 0 }, { 10, 0 }, 2, 0 },
+
+ /* 64 - Scissors Snip */
+ { { 0, 0 }, { 5, 0 }, 2, 0 },
+
+ /* 65 - Pick up Sticky */
+ { { 0, 0 }, { 6, 0 }, 2, 0 },
+
+ /* 66 - Oracle Rezzes In */
+ { { 0, 0 }, { 11, 0 }, 2, 0 },
+
+ /* 67 - Sparkle SFX */
+ { { 0, 0 }, { 12, 0 }, 2, 0 },
+
+ /* 68 - Splorch! */
+ { { 0, 0 }, { 13, 0 }, 2, 0 },
+
+ /* 69 - Pour Liquid */
+ { { 0, 0 }, { 3, 0 }, 2, 0 },
+
+ /* 70 - End Credit Medley */
+ { { 95, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 71 - Dino Ray */
+ { { 0, 0 }, { 14, 0 }, 2, 0 },
+
+ /* 72 - Squish! */
+ { { 0, 0 }, { 15, 0 }, 2, 0 },
+
+ /* 73 - Robot Laser */
+ { { 0, 0 }, { 16, 0 }, 2, 0 },
+
+ /* 74 - Thud wood light */
+ { { 0, 0 }, { 17, 0 }, 2, 0 },
+
+ /* 75 - Thud wood deep */
+ { { 0, 0 }, { 18, 0 }, 2, 0 },
+
+ /* 76 - Thud metallic */
+ { { 0, 0 }, { 19, 0 }, 2, 0 },
+
+ /* 77 - Cut Coconut */
+ { { 0, 0 }, { 22, 0 }, 2, 0 },
+
+ /* 78 - Thud Stone */
+ { { 0, 0 }, { 23, 0 }, 2, 0 },
+
+ /* 79 - Cloth Slide 1 */
+ { { 0, 0 }, { 24, 0 }, 2, 0 },
+
+ /* 80 - Open Chest */
+ { { 0, 0 }, { 25, 0 }, 2, 0 },
+
+ /* 81 - Close Chest */
+ { { 0, 0 }, { 26, 0 }, 2, 0 },
+
+ /* 82 - Open Drawer */
+ { { 0, 0 }, { 27, 0 }, 2, 0 },
+
+ /* 83 - Truck door closes */
+ { { 0, 0 }, { 28, 0 }, 2, 0 },
+
+ /* 84 - Truck Starts */
+ { { 0, 0 }, { 29, 0 }, 2, 0 },
+
+ /* 85 - Truck Drives Off */
+ { { 0, 0 }, { 30, 0 }, 2, 0 },
+
+ /* 86 - Fish Splash */
+ { { 0, 0 }, { 31, 0 }, 2, 0 },
+
+ /* 87 - Close Drawer/Push Ladder */
+ { { 0, 0 }, { 33, 0 }, 2, 0 },
+
+ /* 88 - Agression Enhancer */
+ { { 0, 0 }, { 32, 0 }, 2, 0 },
+
+ /* 89 - Stone Door Grind 1 */
+ { { 0, 0 }, { 78, 0 }, 2, 0 },
+
+ /* 90 - Prequel 1 */
+ { { 20, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 91 - Intro Credits */
+ { { 21, 0 }, { 0, 0 }, 2, 0 },
+
+ /* 92 - Valley 1 */
+ { { 71, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 93 - Valley 3 */
+ { { 73, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 94 - Fight Music */
+ { { 72, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 95 - Confrontation 1 */
+ { { 93, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 96 - Confrontation 2 */
+ { { 74, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 97 - Plane Hatch Open */
+ { { 0, 0 }, { 35, 0 }, 2, 0 },
+
+ /* 98 - Plane Hatch Close */
+ { { 0, 0 }, { 36, 0 }, 2, 0 },
+
+ /* 99 - Tie Vines */
+ { { 0, 0 }, { 37, 0 }, 2, 0 },
+
+ /* 100 - Pterodactyl */
+ { { 0, 0 }, { 38, 0 }, 2, 0 },
+
+ /* 101 - Beef Jerky Splash */
+ { { 0, 0 }, { 39, 0 }, 2, 0 },
+
+ /* 102 - Piranha Burp */
+ { { 0, 0 }, { 40, 0 }, 2, 0 },
+
+ /* 103 - Falling Vine */
+ { { 0, 0 }, { 41, 0 }, 2, 0 },
+
+ /* 104 - Stone Door Grind 2 */
+ { { 0, 0 }, { 79, 0 }, 2, 0 },
+
+ /* 105 - Stone Grind (light) */
+ { { 0, 0 }, { 82, 0 }, 2, 0 },
+
+ /* 106 - Ape Takes Off Mask */
+ { { 0, 0 }, { 44, 0 }, 2, 0 },
+
+ /* 107 - Bark Breaks */
+ { { 0, 0 }, { 45, 0 }, 2, 0 },
+
+ /* 108 - Stone Click */
+ { { 0, 0 }, { 46, 0 }, 2, 0 },
+
+ /* 109 - Sproing! */
+ { { 0, 0 }, { 42, 0 }, 2, 0 },
+
+ /* 110 - Cash Register */
+ { { 0, 0 }, { 48, 0 }, 2, 0 },
+
+ /* 111 - Squeaky Toy */
+ { { 0, 0 }, { 49, 0 }, 2, 0 },
+
+ /* 112 - Falling Chains */
+ { { 0, 0 }, { 50, 0 }, 2, 0 },
+
+ /* 113 - Open Locker Door */
+ { { 0, 0 }, { 52, 0 }, 2, 0 },
+
+ /* 114 - Close Locker Door */
+ { { 0, 0 }, { 53, 0 }, 2, 0 },
+
+ /* 115 - Rub Pencil */
+ { { 0, 0 }, { 54, 0 }, 2, 0 },
+
+ /* 116 - Open Safe */
+ { { 0, 0 }, { 55, 0 }, 2, 0 },
+
+ /* 117 - Close Safe */
+ { { 0, 0 }, { 56, 0 }, 2, 0 },
+
+ /* 118 - Push Chair */
+ { { 0, 0 }, { 57, 0 }, 2, 0 },
+
+ /* 119 - Snake Hiss */
+ { { 0, 0 }, { 58, 0 }, 2, 0 },
+
+ /* 120 - Oracle Rezzes Out */
+ { { 0, 0 }, { 59, 0 }, 2, 0 },
+
+ /* 121 - Wall Crumbles */
+ { { 0, 0 }, { 60, 0 }, 2, 0 },
+
+ /* 122 - Crypt Crumbles */
+ { { 0, 0 }, { 61, 0 }, 2, 0 },
+
+ /* 123 - Joe Sucked Up */
+ { { 0, 0 }, { 63, 0 }, 2, 0 },
+
+ /* 124 - Rocket Pack Zoom */
+ { { 0, 0 }, { 47, 0 }, 2, 0 },
+
+ /* 125 - Piranha Splash */
+ { { 0, 0 }, { 83, 0 }, 2, 0 },
+
+ /* 126 - Snap Branch */
+ { { 0, 0 }, { 66, 0 }, 2, 0 },
+
+ /* 127 - Dino Horn */
+ { { 0, 0 }, { 67, 0 }, 2, 0 },
+
+ /* 128 - Tyre Screech */
+ { { 0, 0 }, { 68, 0 }, 2, 0 },
+
+ /* 129 - Oil Splat */
+ { { 0, 0 }, { 70, 0 }, 2, 0 },
+
+ /* 130 - Punch */
+ { { 0, 0 }, { 71, 0 }, 2, 0 },
+
+ /* 131 - Body Hits Ground */
+ { { 0, 0 }, { 72, 0 }, 2, 0 },
+
+ /* 132 - Chicken */
+ { { 0, 0 }, { 69, 0 }, 2, 0 },
+
+ /* 133 - Open Sarcophagus */
+ { { 0, 0 }, { 21, 0 }, 2, 0 },
+
+ /* 134 - Close Sarcophagus */
+ { { 0, 0 }, { 21, 0 }, 2, 0 },
+
+ /* 135 - Creaking Stick */
+ { { 0, 0 }, { 62, 0 }, 2, 0 },
+
+ /* 136 - Pick Hits Stone */
+ { { 0, 0 }, { 73, 0 }, 2, 0 },
+
+ /* 137 - Stalactite Crumbles */
+ { { 0, 0 }, { 74, 0 }, 2, 0 },
+
+ /* 138 - Tic-Toc */
+ { { 0, 0 }, { 76, 0 }, 2, 0 },
+
+ /* 139 - Stone Grind (heavy) */
+ { { 0, 0 }, { 81, 0 }, 2, 0 },
+
+ /* 140 - Explosion */
+ { { 0, 0 }, { 77, 0 }, 2, 0 },
+
+ /* 141 - Cloth Slide 2 */
+ { { 0, 0 }, { 84, 0 }, 2, 0 },
+
+ /* 142 - Temple Laser */
+ { { 0, 0 }, { 85, 0 }, 2, 0 },
+
+ /* 143 - Dino Transformation */
+ { { 0, 0 }, { 86, 0 }, 2, 0 },
+
+ /* 144 - Experimental Laser */
+ { { 0, 0 }, { 87, 0 }, 2, 0 },
+
+ /* 145 - Stone Grind (medium) */
+ { { 0, 0 }, { 88, 0 }, 2, 0 },
+
+ /* 146 - Weeping God Grind */
+ { { 0, 0 }, { 89, 0 }, 2, 0 },
+
+ /* 147 - Alien Hum */
+ { { 0, 0 }, { 90, 0 }, 2, 0 },
+
+ /* 148 - Alien Puzzle */
+ { { 0, 0 }, { 91, 0 }, 2, 0 },
+
+ /* 149 - Vacuum On */
+ { { 0, 0 }, { 92, 0 }, 2, 0 },
+
+ /* 150 - Vacuum Off */
+ { { 0, 0 }, { 93, 0 }, 2, 0 },
+
+ /* 151 - Elevator Starts */
+ { { 0, 0 }, { 94, 0 }, 2, 0 },
+
+ /* 152 - Mummy Crumbles */
+ { { 0, 0 }, { 95, 0 }, 2, 0 },
+
+ /* 153 - Temple Green Circle */
+ { { 0, 0 }, { 96, 0 }, 2, 0 },
+
+ /* 154 - Rattle Bars */
+ { { 0, 0 }, { 97, 0 }, 2, 0 },
+
+ /* 155 - Door Dissolves */
+ { { 0, 0 }, { 98, 0 }, 2, 0 },
+
+ /* 156 - Altar Slides */
+ { { 0, 0 }, { 99, 0 }, 2, 0 },
+
+ /* 157 - Light Torch */
+ { { 0, 0 }, { 100, 0 }, 2, 0 },
+
+ /* 158 - Stamp Sound */
+ { { 0, 0 }, { 34, 0 }, 2, 0 },
+
+ /* 159 - Plaster Loud */
+ { { 0, 0 }, { 102, 0 }, 2, 0 },
+
+ /* 160 - Sparky Bathtub */
+ { { 0, 0 }, { 103, 0 }, 2, 0 },
+
+ /* 161 - Ape Rezzes Out */
+ { { 0, 0 }, { 104, 0 }, 2, 0 },
+
+ /* 162 - Song 159 */
+ { { 0, 0 }, { 0, 0 }, 2, 0 },
+
+ /* 163 - Song 160 */
+ { { 0, 0 }, { 0, 0 }, 2, 0 },
+
+ /* 164 - Song 161 */
+ { { 0, 0 }, { 0, 0 }, 2, 0 },
+
+ /* 165 - Piranhas Swim */
+ { { 0, 0 }, { 105, 0 }, 2, 0 },
+
+ /* 166 - Prison/Dungeon Door */
+ { { 0, 0 }, { 43, 0 }, 2, 0 },
+
+ /* 167 - Fight Explosion */
+ { { 0, 0 }, { 80, 0 }, 2, 0 },
+
+ /* 168 - Press Button */
+ { { 0, 0 }, { 65, 0 }, 2, 0 },
+
+ /* 169 - Pull Lever */
+ { { 0, 0 }, { 107, 0 }, 2, 0 },
+
+ /* 170 - Wrong Code */
+ { { 0, 0 }, { 108, 0 }, 2, 0 },
+
+ /* 171 - Correct Code */
+ { { 0, 0 }, { 109, 0 }, 2, 0 },
+
+ /* 172 - Sizzle */
+ { { 0, 0 }, { 110, 0 }, 2, 0 },
+
+ /* 173 - Money In Slot */
+ { { 0, 0 }, { 111, 0 }, 2, 0 },
+
+ /* 174 - Lightning Crack */
+ { { 0, 0 }, { 112, 0 }, 2, 0 },
+
+ /* 175 - Machine Gun Fire */
+ { { 0, 0 }, { 113, 0 }, 2, 0 },
+
+ /* 176 - Cage Descends */
+ { { 0, 0 }, { 114, 0 }, 2, 0 },
+
+ /* 177 - Chair Activates */
+ { { 0, 0 }, { 115, 0 }, 2, 0 },
+
+ /* 178 - Robot Powers On */
+ { { 0, 0 }, { 116, 0 }, 2, 0 },
+
+ /* 179 - Grow Big */
+ { { 0, 0 }, { 117, 0 }, 2, 0 },
+
+ /* 180 - Eat Food */
+ { { 0, 0 }, { 118, 0 }, 2, 0 },
+
+ /* 181 - Head Shrink */
+ { { 0, 0 }, { 119, 0 }, 2, 0 },
+
+ /* 182 - Grinding Gears */
+ { { 0, 0 }, { 120, 0 }, 2, 0 },
+
+ /* 183 - Chair Splash */
+ { { 0, 0 }, { 123, 0 }, 2, 0 },
+
+ /* 184 - Deflect Laser */
+ { { 0, 0 }, { 124, 0 }, 2, 0 },
+
+ /* 185 - Zap Frank */
+ { { 0, 0 }, { 125, 0 }, 2, 0 },
+
+ /* 186 - Frank Transforms */
+ { { 0, 0 }, { 126, 0 }, 2, 0 },
+
+ /* 187 - Alarm Clock */
+ { { 0, 0 }, { 127, 0 }, 2, 0 },
+
+ /* 188 - Slide Chute */
+ { { 0, 0 }, { 64, 0 }, 2, 0 },
+
+ /* 189 - Puff */
+ { { 0, 0 }, { 128, 0 }, 2, 0 },
+
+ /* 190 - Bite */
+ { { 0, 0 }, { 129, 0 }, 2, 0 },
+
+ /* 191 - Stone Door Grind 2 */
+ { { 0, 0 }, { 79, 0 }, 2, 0 },
+
+ /* 192 - Prequel 2 */
+ { { 22, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 193 - Prequel 3 */
+ { { 24, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 194 - Prequel 4 */
+ { { 25, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 195 - Stop Music */
+ { { 1, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 196 - Plane Flyby */
+ { { 0, 0 }, { 101, 0 }, 2, 0 },
+
+ /* 197 - Commander Rocket 2 */
+ { { 46, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 198 - Commander Rocket 3 */
+ { { 47, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 199 - Rescue */
+ { { 99, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 200 - Slow Fanfare */
+ { { 0, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 201 - Plane Crash */
+ { { 93, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 202 - Plane Engine 1 */
+ { { 0, 0 }, { 130, 0 }, 2, 0 },
+
+ /* 203 - Plane Engine 2 */
+ { { 0, 0 }, { 131, 0 }, 2, 0 },
+
+ /* 204 - Boat In */
+ { { 0, 0 }, { 132, 0 }, 2, 0 },
+
+ /* 205 - Boat Out */
+ { { 0, 0 }, { 133, 0 }, 2, 0 },
+
+ /* 206 - Final Fanfare! */
+ { { 21, 95, 21, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 207 - Frank Destroyed */
+ { { 25, 1044, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 208 - Jaspar Eats */
+ { { 0, 0 }, { 134, 0 }, 2, 0 },
+
+ /* 209 - Compy Scream 1 */
+ { { 0, 0 }, { 135, 0 }, 2, 0 },
+
+ /* 210 - Compy Scream 2 */
+ { { 0, 0 }, { 136, 0 }, 2, 0 },
+
+ /* 211 - Punch Klunk Fanfare */
+ { { 69, 1017, 0 }, { 0, 0 }, 1, 0 },
+
+ /* 212 - Talk Frank */
+ { { 77, 1017, 0 }, { 0, 0 }, 1, 0 }
+};
+
+const char *Sound::_sfxName[] = {
+ /* 1 - Door Open (standard) */
+ "116Bssss",
+
+ /* 2 - Door Close (standard) */
+ "105assss",
+
+ /* 3 - Pour Liquid */
+ "133sssss",
+
+ /* 4 - Light Switch */
+ "27ssssss",
+
+ /* 5 - Scissor Snip */
+ "15ssssss",
+
+ /* 6 - Pick up Sticky */
+ "79ssssss",
+
+ /* 7 - Hydraulic Doors Open */
+ "96ssssss",
+
+ /* 8 - Hydraulic Doors Close */
+ "97ssssss",
+
+ /* 9 - Metallic Door Slams */
+ "105sssss",
+
+ /* 10 - Small Hatch Close */
+ "106sssss",
+
+ /* 11 - Oracle Rezzes In */
+ "132sssss",
+
+ /* 12 - Polish Sparkle */
+ "132Cssss",
+
+ /* 13 - Splorch! */
+ "137Bssss",
+
+ /* 14 - Dino Ray Gun */
+ "138sssss",
+
+ /* 15 - Squish! */
+ "137Assss",
+
+ /* 16 - Robot Laser */
+ "61ssssss",
+
+ /* 17 - Thud wood light */
+ "109sssss",
+
+ /* 18 - Thud wood deep */
+ "110sssss",
+
+ /* 19 - Thud metallic */
+ "111sssss",
+
+ /* 20 - Zombies Rez Out */
+ "77ssssss",
+
+ /* 21 - Sarc Door Closes */
+ "58ssssss",
+
+ /* 22 - Thud breadboard fruit/Coconut */
+ "131Assss",
+
+ /* 23 - Thud stone */
+ "75ssssss",
+
+ /* 24 - Cloth Slide 1 */
+ "135sssss",
+
+ /* 25 - Open Chest */
+ "112sssss",
+
+ /* 26 - Close Chest */
+ "121sssss",
+
+ /* 27 - Open Drawer */
+ "120sssss",
+
+ /* 28 - Truck door closes */
+ "122sssss",
+
+ /* 29 - Truck Starts */
+ "123Assss",
+
+ /* 30 - Truck Drives Off */
+ "123Bssss",
+
+ /* 31 - Fish Splash */
+ "18ssssss",
+
+ /* 32 - Agression Enhancer */
+ "138Bssss",
+
+ /* 33 - Close Drawer/Push Ladder */
+ "113sssss",
+
+ /* 34 - *Stamp Sound */
+ "40ssssss",
+
+ /* 35 - plane hatch open */
+ "3sssssss",
+
+ /* 36 - plane hatch close */
+ "4sssssss",
+
+ /* 37 - tie vines */
+ "11ssssss",
+
+ /* 38 - Pterodactyl */
+ "10ssssss",
+
+ /* 39 - Beef Jerky Splash */
+ "6sssssss",
+
+ /* 40 - Piranha Burp */
+ "7sssssss",
+
+ /* 41 - Falling Vine */
+ "13ssssss",
+
+ /* 42 - Sproing! */
+ "29ssssss",
+
+ /* 43 - Prison/Dungeon Door */
+ "33ssssss",
+
+ /* 44 - Ape takes off mask */
+ "24ssssss",
+
+ /* 45 - Bark breaks */
+ "25ssssss",
+
+ /* 46 - Stone Click */
+ "136sssss",
+
+ /* 47 - Rocket Pack Zoom */
+ "1006ssss",
+
+ /* 48 - Cash Register */
+ "36ssssss",
+
+ /* 49 - Squeaky Toy */
+ "37ssssss",
+
+ /* 50 - Falling Chains */
+ "38ssssss",
+
+ /* 51 - Cloth Unravels */
+ "64ssssss",
+
+ /* 52 - Open Locker Door */
+ "48ssssss",
+
+ /* 53 - Close Locker Door */
+ "49ssssss",
+
+ /* 54 - Rub Pencil on Pad */
+ "50ssssss",
+
+ /* 55 - Open Safe */
+ "51ssssss",
+
+ /* 56 - Close Safe */
+ "52ssssss",
+
+ /* 57 - Push Chair */
+ "59ssssss",
+
+ /* 58 - Snake Hiss */
+ "83ssssss",
+
+ /* 59 - Oracle Rezzes Out */
+ "70ssssss",
+
+ /* 60 - Wall Crumbles */
+ "73Asssss",
+
+ /* 61 - Crypt Crumbles */
+ "76ssssss",
+
+ /* 62 - Creaking Stick */
+ "74Asssss",
+
+ /* 63 - Joe Sucked Up */
+ "80ssssss",
+
+ /* 64 - Slide Chute */
+ "114assss",
+
+ /* 65 - Press Button */
+ "1007ssss",
+
+ /* 66 - Snap Branch */
+ "101sssss",
+
+ /* 67 - Dino Horn */
+ "103sssss",
+
+ /* 68 - Tyre Screech */
+ "125sssss",
+
+ /* 69 - Chicken */
+ "126sssss",
+
+ /* 70 - Oil Splat */
+ "127sssss",
+
+ /* 71 - Punch */
+ "128sssss",
+
+ /* 72 - Body Hits Ground */
+ "129sssss",
+
+ /* 73 - Pick Hits Stone */
+ "71ssssss",
+
+ /* 74 - Stalactite Crumbles */
+ "119sssss",
+
+ /* 75 - *Drip */
+ "93ssssss",
+
+ /* 76 - Tic-Toc */
+ "42Bsssss",
+
+ /* 77 - Explosion */
+ "88ssssss",
+
+ /* 78 - Stone Door Grind 1 */
+ "1001ssss",
+
+ /* 79 - Stone Door Grind 2 */
+ "1002ssss",
+
+ /* 80 - *Fight Explosion */
+ "1000ssss",
+
+ /* 81 - Stone Grind (heavy) */
+ "1003ssss",
+
+ /* 82 - Stone Grind (light) */
+ "89ssssss",
+
+ /* 83 - Piranha Splash */
+ "5sssssss",
+
+ /* 84 - Cloth Slide 2 */
+ "1005ssss",
+
+ /* 85 - Temple Laser */
+ "87ssssss",
+
+ /* 86 - Dino Transformation */
+ "55Bsssss",
+
+ /* 87 - Experimental Laser */
+ "55ssssss",
+
+ /* 88 - Stone Grind (medium) */
+ "134sssss",
+
+ /* 89 - Weeping God Grind */
+ "94ssssss",
+
+ /* 90 - Alien Hum */
+ "95ssssss",
+
+ /* 91 - Alien Puzzle */
+ "103Assss",
+
+ /* 92 - Vacuum On */
+ "21ssssss",
+
+ /* 93 - Vacuum Off */
+ "21Csssss",
+
+ /* 94 - Elevator Starts */
+ "44ssssss",
+
+ /* 95 - Mummy Crumbles */
+ "68ssssss",
+
+ /* 96 - Temple Green Circle */
+ "60Bsssss",
+
+ /* 97 - Rattle Bars */
+ "115sssss",
+
+ /* 98 - Door Dissolves */
+ "56ssssss",
+
+ /* 99 - Altar Slides */
+ "85ssssss",
+
+ /* 100 - Light Torch */
+ "81ssssss",
+
+ /* 101 - Plane Flyby */
+ "1027ssss",
+
+ /* 102 - Plaster Loud */
+ "41Bsssss",
+
+ /* 103 - Sparky Bathtub */
+ "73ssssss",
+
+ /* 104 - Ape Rezzes Out */
+ "14ssssss",
+
+ /* 105 - Piranhas Swim */
+ "17ssssss",
+
+ /* 106 - *Gun Shot */
+ "1004ssss",
+
+ /* 107 - Pull Lever */
+ "1008ssss",
+
+ /* 108 - Wrong Code */
+ "1009ssss",
+
+ /* 109 - Correct Code */
+ "1010ssss",
+
+ /* 110 - Sizzle */
+ "1011ssss",
+
+ /* 111 - Money In Slot */
+ "1012ssss",
+
+ /* 112 - Lightning */
+ "1013ssss",
+
+ /* 113 - Machine Gun Fire */
+ "1014ssss",
+
+ /* 114 - Cage Descends */
+ "1015ssss",
+
+ /* 115 - Temple Chair Activates */
+ "1016ssss",
+
+ /* 116 - Robot Powers On */
+ "1017ssss",
+
+ /* 117 - Grow Big */
+ "1018ssss",
+
+ /* 118 - Eat Food */
+ "1019ssss",
+
+ /* 119 - Head Shrink */
+ "1020ssss",
+
+ /* 120 - Grinding Gears */
+ "84ssssss",
+
+ /* 121 - Wave Torch */
+ "1021ssss",
+
+ /* 122 - Snake Slithers Off */
+ "1022ssss",
+
+ /* 123 - Chair Splash */
+ "26ssssss",
+
+ /* 124 - Deflect Laser */
+ "60ssssss",
+
+ /* 125 - Zap Frank */
+ "1023ssss",
+
+ /* 126 - Frank Transforms */
+ "1024ssss",
+
+ /* 127 - Alarm Clock */
+ "1025ssss",
+
+ /* 128 - Puff */
+ "35ssssss",
+
+ /* 129 - Bite */
+ "1026ssss",
+
+ /* 130 - Plane Engine 1 */
+ "1028ssss",
+
+ /* 131 - Plane Engine 2 */
+ "1029ssss",
+
+ /* 132 - Boat In */
+ "1030ssss",
+
+ /* 133 - Boat Out */
+ "1031ssss",
+
+ /* 134 - Jaspar Eats */
+ "1032ssss",
+
+ /* 135 - Compy Scream 1 */
+ "1033ssss",
+
+ /* 136 - Compy Scream 2 */
+ "1034ssss"
+};
+
+} // End of namespace Queen
diff --git a/queen/sound.cpp b/queen/sound.cpp
index 766659c78a..04a6cae124 100644
--- a/queen/sound.cpp
+++ b/queen/sound.cpp
@@ -135,469 +135,10 @@ void Sound::waitSfxFinished() {
}
void Sound::playSong(int16 songNum) {
- if (songNum == STOP_MUSIC) {
- //stop the music
- //_fanfareCount = _fluteCount = 0;
- //_oldName[0] = 0;
- return;
- }
-
- // Remap some songs because there is less amiga music
- // and we want lastoverride to work properly
- switch(songNum) {
- case 1:
- case 2:
- songNum = 39;
- break;
-
- case 37:
- case 52:
- case 196:
- songNum = 90;
- break;
-
- case 38:
- case 89:
- songNum = 3;
- break;
-
- case 24:
- case 158:
- songNum = 117;
- break;
-
- case 71:
- case 72:
- case 73:
- case 75:
- songNum = 133;
- break;
-
- case 203:
- songNum = 67;
- break;
-
- case 145:
- songNum = 140;
- break;
-
- case 53:
- case 204:
- songNum = 44;
- break;
-
- case 136:
- case 142:
- case 179:
- songNum = 86;
- break;
-
- case 101:
- case 102:
- case 143:
- songNum = 188;
- break;
-
- case 65:
- case 62:
- songNum = 69;
- break;
-
- case 118:
- case 119:
- songNum = 137;
- break;
-
- case 130:
- case 131:
- songNum = 59;
- break;
-
- case 174:
- case 175:
- songNum = 57;
- break;
-
- case 171:
- case 121:
- songNum = 137;
- break;
-
- case 138:
- case 170:
- case 149:
- songNum = 28;
- break;
-
- case 122:
- case 180:
- case 83:
- case 98:
- songNum = 83;
- break;
-
- case 20:
- case 33:
- songNum = 34;
- break;
-
- case 29:
- case 35:
- songNum = 36;
- break;
-
- case 7:
- case 9:
- case 10:
- songNum = 11;
- break;
-
- case 110:
- songNum = 94;
- break;
-
- case 111:
- songNum = 95;
- break;
-
- case 30:
- songNum = 43;
- break;
-
- case 76:
- songNum = 27;
- break;
-
- case 194:
- case 195:
- songNum = 32;
- break;
- }
-
- // Sound effects and volume changes exit before setting lastoverride
- // 04-19-95 01:31pm Fix sfx bug
- if(_lastOverride != 32 && _lastOverride != 44) {
- switch(songNum) {
- // Volume normal
- case 5:
- warning("Sound::playSong() -> alter_current_volume() not implemented yet");
- //alter_current_volume();
- return;
-
- // Volume soft
- case 15:
- //volumecontrol(-1,(20*VOLUME)/100);
- return;
-
- // Volume medium
- case 14:
- //volumecontrol(-1,(32*VOLUME)/100);
- return;
-
- // Open door
- case 25:
- sfxPlay("116BSSSS");
- return;
-
- // Close door
- case 26:
- sfxPlay("105ASSSS");
- return;
-
- // Light switch
- case 56:
- sfxPlay("27SSSSSS");
- return;
-
- // Hydraulic doors open
- case 57:
- sfxPlay("96SSSSSS");
- return;
-
- // Hydraulic doors close
- case 58:
- sfxPlay("97SSSSSS");
- return;
-
- // Metallic door slams
- case 59:
- sfxPlay("105SSSSS");
- return;
-
- // Oracle rezzes in
- case 63:
- sfxPlay("132SSSSS");
- return;
-
- // Cloth slide 1
- case 27:
- sfxPlay("135SSSSS");
- return;
-
- // Splash
- case 83:
- sfxPlay("18SSSSSS");
- return;
-
- // Agression enhancer
- case 85:
- sfxPlay("138BSSSS");
- return;
-
- // Dino Ray
- case 68:
- sfxPlay("138SSSSS");
- return;
-
- // Dino transformation
- case 140:
- sfxPlay("55BSSSSS");
- return;
-
- // Experimental laser
- case 141:
- sfxPlay("55SSSSSS");
- return;
-
- // Plane hatch open
- case 94:
- sfxPlay("3SSSSSSS");
- return;
-
- // Plane hatch close
- case 95:
- sfxPlay("4SSSSSSS");
- return;
-
- // Oracle rezzes out
- case 117:
- sfxPlay("70SSSSSS");
- return;
-
- // Dino horn
- case 124:
- sfxPlay("103SSSSS");
- return;
-
- // Punch
- case 127:
- sfxPlay("128SSSSS");
- return;
-
- // Body hits ground
- case 128:
- sfxPlay("129SSSSS");
- return;
-
- // Explosion
- case 137:
- sfxPlay("88SSSSSS");
- return;
-
- // Stone door grind 1
- case 86:
- sfxPlay("1001SSSS");
- return;
-
- // Stone door grind 2
- case 188:
- sfxPlay("1002SSSS");
- return;
-
- // Cloth slide 2
- case 28:
- sfxPlay("1005SSSS");
- return;
-
- // Rattle bars
- case 151:
- sfxPlay("115SSSSS");
- return;
-
- // Door dissolves
- case 152:
- sfxPlay("56SSSSSS");
- return;
-
- // Altar slides
- case 153:
- sfxPlay("85SSSSSS");
- return;
-
- // Pull lever
- case 166:
- sfxPlay("1008SSSS");
- return;
-
- // Zap Frank
- case 182:
- sfxPlay("1023SSSS");
- return;
-
- // Splorch
- case 69:
- sfxPlay("137ASSSS");
- return;
-
- // Robot laser
- case 70:
- sfxPlay("61SSSSSS");
- return;
-
- // Pick hits stone
- case 133:
- sfxPlay("71SSSSSS");
- return;
-
- // Press button
- case 165:
- sfxPlay("1007SSSS");
- return;
- }
- }
-
-
- // Exit if trying to play a song that's already playing
- // and instruments are already loaded i.e. last song wasn't -1
- if (songNum == _lastOverride /* && oldName[0] != 0 */ )
-
- // Play songs
- switch(songNum) {
- // Hotel
- case 39:
- //goSong("hotel",1);
- break;
-
- case 19:
- //goSong("hotel",3);
- break;
-
- case 34:
- //goSong("hotel",2);
- break;
-
- case 36:
- //goSong("hotel",4);
- //fanfarerestore=lastoverride;
- //fanfarecount=60;
- break;
-
- // Jungle
- case 40:
- //goSong("jung",1);
- //fanfarerestore=lastoverride;
- //fanfarecount=80;
- //flutecount=100;
- break;
-
- case 3:
- //goSong("jung",2);
- //flutecount=100;
- break;
-
- // Temple
- case 54:
- //goSong("temple",1);
- break;
-
- case 12:
- //goSong("temple",2);
- break;
-
- case 11:
- //goSong("temple",3);
- break;
-
- case 31:
- //goSong("temple",4);
- //fanfarerestore=lastoverride;
- //fanfarecount=80;
- break;
-
- // Floda
- case 41:
- //goSong("floda",4);
- //fanfarerestore=lastoverride;
- //fanfarecount=60;
- break;
-
- case 13:
- //goSong("floda",3);
- break;
-
- case 16:
- //goSong("floda",1);
- break;
-
- case 17:
- //goSong("floda",2);
- break;
-
- case 43:
- //goSong("floda",5);
- break;
-
- // Prequel (End credits)
- case 67:
- //goSong("title",1);
- // 05-19-95 03:24pm Removed to fix A500 Bug
- //fanfarerestore=90;
- //fanfarecount=550;
- break;
-
- // Title (Intro credits)
- case 88:
- //goSong("title",1);
- break;
-
- // Valley
- case 90:
- //goSong("awestruk",1);
- break;
-
- // Confrontation
- case 91:
- //goSong("'jungle'",1);
- break;
-
- // Frank
- case 46:
- //goSong("frank",1);
- break;
-
- // Trader Bob
- case 6:
- //goSong("bob",1);
- break;
-
- // Azura
- case 44:
- //goSong("azura",1);
- break;
-
- // Amazon Fortress
- case 21:
- //goSong("fort",1);
- break;
-
- // Rocket
- case 32:
- //goSong("rocket",1);
- break;
-
- // Robot
- case 92:
- //goSong("robot",1);
- break;
-
- // Song not handled by amiga
- default:
- return;
- }
-
-
- _lastOverride = _currentSong = songNum;
+ int16 newTune = _song[songNum - 1].tuneList[0];
+ if (_tune[newTune - 1].sfx[0] /* && _sfxToggle */ )
+ sfxPlay(_sfxName[_tune[newTune - 1].sfx[0] - 1]);
}
diff --git a/queen/sound.h b/queen/sound.h
index b82da9ca3a..a717f4e07c 100644
--- a/queen/sound.h
+++ b/queen/sound.h
@@ -31,6 +31,22 @@ namespace Queen {
class Input;
class Resource;
+struct songData {
+ int16 tuneList[5];
+ int16 volume;
+ int16 tempo;
+ int16 reverb;
+ int16 override;
+ int16 ignore;
+};
+
+struct tuneData {
+ int16 tuneNum[9];
+ int16 sfx[2];
+ int16 mode;
+ int16 delay;
+};
+
class Sound {
public:
Sound(SoundMixer *mixer, Input *input, Resource *resource);
@@ -45,8 +61,16 @@ protected:
Input *_input;
Resource *_resource;
+ static const songData _song[];
+ static const tuneData _tune[];
+ static const char *_sfxName[];
+
int16 _lastOverride;
+ int16 _lastMerge;
+ int16 _altMrgPri;
int16 _currentSong;
+ int16 _previousSong;
+ int16 _previousSongNum;
PlayingSoundHandle _sfxHandle;
};
diff --git a/queen/xref.txt b/queen/xref.txt
index 4319b97af3..ce9edc2704 100644
--- a/queen/xref.txt
+++ b/queen/xref.txt
@@ -333,8 +333,14 @@ playsong() Sound::playSong()
sfxbusy() Sound::waitSfxFinished()
sfxplay() Sound::sfxPlay()
-
-CURRSONG
-SFXNAME Logic::_sfxName
+song[] Sound::_song[]
+tunelist[] Sound::_tune[]
+lastmerge Sound::_lastMerge
+altmrgpri Sound::_altMrgPri
+oldsn Sound::_previousSongNum
+LASTSONG Sound::_previousSong
+CURRSONG Sound::_currentSong
+SFXNAME Sound::_sfxName
tmpbamflag
VOLUME