aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--boxes.h59
-rw-r--r--gui.cpp1
-rw-r--r--saveload.cpp1
-rw-r--r--scumm.h128
-rw-r--r--scummvm.cpp1
-rw-r--r--sdl.cpp4
-rw-r--r--sound.cpp3
-rw-r--r--sound.h48
-rw-r--r--sound/adlib.cpp1
-rw-r--r--sound/gmidi.cpp1
-rw-r--r--sound/gmidi.h43
-rw-r--r--sound/imuse.cpp1
12 files changed, 136 insertions, 155 deletions
diff --git a/boxes.h b/boxes.h
new file mode 100644
index 0000000000..be57f4d7a3
--- /dev/null
+++ b/boxes.h
@@ -0,0 +1,59 @@
+/* ScummVM - Scumm Interpreter
+ * Copyright (C) 2001 Ludvig Strigeus
+ * Copyright (C) 2001/2002 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$
+ *
+ */
+
+#define SIZEOF_BOX 20
+struct Box { /* Internal walkbox file format */
+ int16 ulx,uly;
+ int16 urx,ury;
+ int16 llx,lly;
+ int16 lrx,lry;
+ byte mask;
+ byte flags;
+ uint16 scale;
+} GCC_PACK;
+
+struct gate_location {
+ int x;
+ int y;
+};
+
+struct AdjustBoxResult { /* Result type of AdjustBox functions */
+ int16 x,y;
+ uint16 dist;
+};
+
+struct BoxCoords { /* Box coordinates */
+ ScummPoint ul;
+ ScummPoint ur;
+ ScummPoint ll;
+ ScummPoint lr;
+};
+
+struct PathNode { /* Linked list of walkpath nodes */
+ uint index;
+ struct PathNode *left, *right;
+};
+
+struct PathVertex { /* Linked list of walkpath nodes */
+ PathNode *left;
+ PathNode *right;
+}; \ No newline at end of file
diff --git a/gui.cpp b/gui.cpp
index 5bc83ca893..bbdb84a7eb 100644
--- a/gui.cpp
+++ b/gui.cpp
@@ -22,7 +22,6 @@
#include "stdafx.h"
#include "scumm.h"
#include "gui.h"
-#include "sound.h"
#ifdef _WIN32_WCE
// Additional variables for Win32 specific GUI
diff --git a/saveload.cpp b/saveload.cpp
index 6a03dbe159..6de4114e4f 100644
--- a/saveload.cpp
+++ b/saveload.cpp
@@ -22,7 +22,6 @@
#include "stdafx.h"
#include "scumm.h"
-#include "sound.h"
#ifdef _WIN32_WCE
#define _MANAGE_OLD_SAVE
diff --git a/scumm.h b/scumm.h
index c24886d03d..a83a0fcd87 100644
--- a/scumm.h
+++ b/scumm.h
@@ -39,12 +39,6 @@
class Scumm;
struct Actor;
-struct gate_location
-{
- int x;
- int y;
-};
-
#include "smush.h"
typedef void (Scumm::*OpcodeProc)();
@@ -61,15 +55,7 @@ enum {
KEY_SET_OPTIONS = 3456 // WinCE
};
-/* Sound output type - MIDI */
-enum {
- MIDI_NULL = 0,
- MIDI_WINDOWS = 1,
- MIDI_TIMIDITY = 2,
- MIDI_SEQ = 3,
- MIDI_QTMUSIC = 4,
- MIDI_AMIDI = 5
-};
+
/* Script status type (slot.status) */
enum {
@@ -78,43 +64,8 @@ enum {
ssRunning = 2
};
-const uint16 many_direction_tab[18] = {
- 4,
- 8,
- 71,
- 109,
- 251,
- 530,
- 0,
- 0,
- 0,
- 0,
- 22,
- 72,
- 107,
- 157,
- 202,
- 252,
- 287,
- 337 };
-
-const int16 many_direction_tab_2 [16] = {
- 0,
- 90,
- 180,
- 270,
- -1,
- -1,
- -1,
- -1,
- 0,
- 45,
- 90,
- 135,
- 180,
- 225,
- 270,
- 315 };
+const uint16 many_direction_tab[18] = {4, 8, 71, 109, 251, 530, 0, 0, 0, 0, 22, 72, 107, 157, 202, 252, 287, 337};
+const int16 many_direction_tab_2[16] = {0, 90, 180, 270, -1, -1, -1, -1, 0, 45, 90, 135, 180, 225, 270, 315};
struct ScummPoint {
int x,y;
@@ -124,22 +75,10 @@ struct MemBlkHeader {
uint32 size;
};
-
#if !defined(__GNUC__)
#pragma START_PACK_STRUCTS
#endif
-#define SIZEOF_BOX 20
-struct Box { /* file format */
- int16 ulx,uly;
- int16 urx,ury;
- int16 llx,lly;
- int16 lrx,lry;
- byte mask;
- byte flags;
- uint16 scale;
-} GCC_PACK;
-
struct ResHdr {
uint32 tag, size;
} GCC_PACK;
@@ -252,11 +191,6 @@ struct ImageHeader { /* file format */
#pragma END_PACK_STRUCTS
#endif
-struct AdjustBoxResult {
- int16 x,y;
- uint16 dist;
-};
-
struct VerbSlot {
int16 x,y;
int16 right, bottom;
@@ -306,16 +240,6 @@ struct EnqueuedObject {
uint16 j,k,l;
};
-struct PathNode {
- uint index;
- struct PathNode *left, *right;
-};
-
-struct PathVertex {
- PathNode *left;
- PathNode *right;
-};
-
struct VirtScreen {
int number;
uint16 unk1;
@@ -784,36 +708,6 @@ struct Gdi {
};
};
-typedef enum {
- MIXER_STANDARD,
- MIXER_MP3
-} MixerType;
-
-struct MixerChannel {
- void *_sfx_sound;
- MixerType type;
- union {
- struct {
- uint32 _sfx_pos;
- uint32 _sfx_size;
- uint32 _sfx_fp_speed;
- uint32 _sfx_fp_pos;
- } standard;
-#ifdef COMPRESSED_SOUND_FILE
- struct {
- struct mad_stream stream;
- struct mad_frame frame;
- struct mad_synth synth;
- uint32 silence_cut;
- uint32 pos_in_frame;
- uint32 position;
- uint32 size;
- } mp3;
-#endif
- } sound_data;
- void mix(int16 *data, uint32 len);
- void clear();
-};
enum GameId {
GID_TENTACLE = 1,
@@ -876,20 +770,8 @@ enum VideoMode {
VIDEO_SUPEREAGLE = 3
};
-struct BoxCoords {
- ScummPoint ul;
- ScummPoint ur;
- ScummPoint ll;
- ScummPoint lr;
-};
-
-struct OffsetTable { /* Compressed Sound (.SO3) */
- int org_offset;
- int new_offset;
- int num_tags;
- int compressed_size;
-};
-
+#include "boxes.h"
+#include "sound.h"
class Scumm {
public:
diff --git a/scummvm.cpp b/scummvm.cpp
index 66f56c6235..4217e99f5c 100644
--- a/scummvm.cpp
+++ b/scummvm.cpp
@@ -24,7 +24,6 @@
#include "scumm.h"
#include "gui.h"
#include "string.h"
-#include "sound.h"
extern void launcherLoop();
void Scumm::initRandSeeds() {
diff --git a/sdl.cpp b/sdl.cpp
index 77e3c8a53c..6e3c179569 100644
--- a/sdl.cpp
+++ b/sdl.cpp
@@ -25,7 +25,6 @@
#include "stdafx.h"
#include "scumm.h"
#include "gui.h"
-#include "sound.h"
#include "SDL_thread.h"
#include "cdmusic.h"
@@ -883,9 +882,6 @@ void launcherLoop() {
};
int main(int argc, char* argv[]) {
- int delta;
- int last_time, new_time;
-
#if defined(MACOS)
/* support for config file on macos */
diff --git a/sound.cpp b/sound.cpp
index 8bf1fcb9a4..b213179494 100644
--- a/sound.cpp
+++ b/sound.cpp
@@ -22,7 +22,6 @@
#include "stdafx.h"
#include "scumm.h"
-#include "sound.h"
#include "cdmusic.h"
#ifdef _WIN32_WCE
@@ -370,7 +369,7 @@ void Scumm::setupSound() {
_sound_volume_sfx = 100;
_sound_volume_music = se->get_music_volume();
_sound_volume_master = (se->get_master_volume() / 127);
- driver->midiSetDriver(se->midiGetDriver());
+ driver->midiSetDriver(_midi_driver);
}
_sfxFile = openSfxFile();
}
diff --git a/sound.h b/sound.h
index 9bd9d702df..e54aab8875 100644
--- a/sound.h
+++ b/sound.h
@@ -17,6 +17,10 @@
*
* Change Log:
* $Log$
+ * Revision 1.9 2002/03/21 16:12:02 ender
+ * Move some box stuff from scumm.h to new boxes.h
+ * Also move some sound-related items from scumm.h to sound.h
+ *
* Revision 1.8 2002/03/16 18:58:51 ender
* MorphOS port (sdl version) + endian fixes for big endian machines.
*
@@ -48,8 +52,50 @@
*
*/
+#include "gmidi.h" /* General Midi */
+
+struct OffsetTable { /* Compressed Sound (.SO3) */
+ int org_offset;
+ int new_offset;
+ int num_tags;
+ int compressed_size;
+};
+
+typedef enum { /* Mixer types */
+ MIXER_STANDARD,
+ MIXER_MP3
+} MixerType;
+
+struct MixerChannel { /* Mixer Channel */
+ void *_sfx_sound;
+ MixerType type;
+ union {
+ struct {
+ uint32 _sfx_pos;
+ uint32 _sfx_size;
+ uint32 _sfx_fp_speed;
+ uint32 _sfx_fp_pos;
+ } standard;
+#ifdef COMPRESSED_SOUND_FILE
+ struct {
+ struct mad_stream stream;
+ struct mad_frame frame;
+ struct mad_synth synth;
+ uint32 silence_cut;
+ uint32 pos_in_frame;
+ uint32 position;
+ uint32 size;
+ } mp3;
+#endif
+ } sound_data;
+ void mix(int16 *data, uint32 len);
+ void clear();
+};
+
int clamp(int val, int min, int max);
+
+
struct FM_OPL;
struct Part;
struct MidiChannel;
@@ -585,8 +631,6 @@ public:
void setBase(byte **base) { _base_sounds = base; }
SOUND_DRIVER_TYPE *driver() { return _driver; }
- int midiGetDriver() {return _s->_midi_driver;}
- void midiSetDriver(int devicetype);
bool _mt32emulate;
};
diff --git a/sound/adlib.cpp b/sound/adlib.cpp
index 5b54aa40b7..57036fd1e4 100644
--- a/sound/adlib.cpp
+++ b/sound/adlib.cpp
@@ -21,7 +21,6 @@
#include "stdafx.h"
#include "scumm.h"
-#include "sound.h"
#include "fmopl.h"
#if defined USE_ADLIB
diff --git a/sound/gmidi.cpp b/sound/gmidi.cpp
index 957a999e52..92246a4f26 100644
--- a/sound/gmidi.cpp
+++ b/sound/gmidi.cpp
@@ -33,7 +33,6 @@
#include "stdafx.h"
#include "scumm.h"
-#include "sound.h"
#include "gmidi.h"
void MidiSoundDriver::midiSetDriver(int devicetype) {
diff --git a/sound/gmidi.h b/sound/gmidi.h
index 85ec70bfba..a991451f8b 100644
--- a/sound/gmidi.h
+++ b/sound/gmidi.h
@@ -2,11 +2,34 @@
#define gmidi_h
/* General Midi header file */
-
-#define SEQ_MIDIPUTC 5 /* For timidity */
+#define SEQ_MIDIPUTC 5
#define SPECIAL_CHANNEL 9
#define DEVICE_NUM 0
+/* Sound output type - MIDI */
+enum {
+ MIDI_NULL = 0,
+ MIDI_WINDOWS = 1,
+ MIDI_TIMIDITY = 2,
+ MIDI_SEQ = 3,
+ MIDI_QTMUSIC = 4,
+ MIDI_AMIDI = 5
+};
+
+/* Roland to General Midi patch table. Still needs much work. */
+static const byte mt32_to_gmidi[128] = {
+ 0, 1, 2, 4, 4, 5, 5, 3, 16, 17, 18, 18, 19,
+ 19, 20, 21, 6, 6, 6, 7, 7, 7, 8, 8, 62, 63,
+ 62, 63, 38, 39, 38, 39, 88, 89, 52, 113, 97, 96, 91,
+ 85, 14, 101, 68, 95, 86, 103, 88, 80, 48, 49, 51, 45,
+ 40, 40, 42, 42, 43, 46, 46, 24, 25, 26, 27, 104, 32,
+ 33, 34, 39, 36, 37, 38, 35, 79, 73, 72, 72, 74, 75,
+ 64, 65, 66, 67, 71, 71, 68, 69, 70, 22, 56, 59, 57,
+ 63, 60, 60, 58, 61, 61, 11, 11, 12, 88, 9, 14, 13,
+ 12, 107, 111, 77, 78, 78, 76, 121, 47, 117, 127, 115, 118,
+ 116, 118, 94, 115, 9, 55, 124, 123, 125, 126, 127
+};
+
#ifdef __APPLE__CW
#include <QuickTimeComponents.h>
#include "QuickTimeMusic.h"
@@ -41,20 +64,4 @@
extern struct IOMidiRequest *ScummMidiRequest;
#endif
-
-/* Roland to General Midi patch table. Still needs much work. */
-static const byte mt32_to_gmidi[128] = {
- 0, 1, 2, 4, 4, 5, 5, 3, 16, 17, 18, 18, 19,
- 19, 20, 21, 6, 6, 6, 7, 7, 7, 8, 8, 62, 63,
- 62, 63, 38, 39, 38, 39, 88, 89, 52, 113, 97, 96, 91,
- 85, 14, 101, 68, 95, 86, 103, 88, 80, 48, 49, 51, 45,
- 40, 40, 42, 42, 43, 46, 46, 24, 25, 26, 27, 104, 32,
- 33, 34, 39, 36, 37, 38, 35, 79, 73, 72, 72, 74, 75,
- 64, 65, 66, 67, 71, 71, 68, 69, 70, 22, 56, 59, 57,
- 63, 60, 60, 58, 61, 61, 11, 11, 12, 88, 9, 14, 13,
- 12, 107, 111, 77, 78, 78, 76, 121, 47, 117, 127, 115, 118,
- 116, 118, 94, 115, 9, 55, 124, 123, 125, 126, 127
-};
-
-
#endif /* defined(gmidi_h) */
diff --git a/sound/imuse.cpp b/sound/imuse.cpp
index f62afb984c..ce2bb84669 100644
--- a/sound/imuse.cpp
+++ b/sound/imuse.cpp
@@ -22,7 +22,6 @@
#include "stdafx.h"
#include "scumm.h"
-#include "sound.h"
int num_mix;