aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
diff options
context:
space:
mode:
Diffstat (limited to 'engines/scumm')
-rw-r--r--engines/scumm/scumm.h3
-rw-r--r--engines/scumm/sound.cpp24
2 files changed, 13 insertions, 14 deletions
diff --git a/engines/scumm/scumm.h b/engines/scumm/scumm.h
index d60a74f5b6..d1baf2b770 100644
--- a/engines/scumm/scumm.h
+++ b/engines/scumm/scumm.h
@@ -785,9 +785,6 @@ public:
protected:
int readSoundResource(int type, int index);
- int convert_extraflags(byte *ptr, byte * src_ptr);
- void convertMac0Resource(int type, int index, byte *ptr, int size);
- void convertADResource(int type, int index, byte *ptr, int size);
int readSoundResourceSmallHeader(int type, int index);
bool isResourceInUse(int type, int i) const;
diff --git a/engines/scumm/sound.cpp b/engines/scumm/sound.cpp
index dd5a7eabc2..3d0d4d5844 100644
--- a/engines/scumm/sound.cpp
+++ b/engines/scumm/sound.cpp
@@ -1062,6 +1062,9 @@ void Sound::saveLoadWithSerializer(Serializer *ser) {
#pragma mark --- Sound resource handling ---
#pragma mark -
+static void convertMac0Resource(ResourceManager &res, int type, int idx, byte *src_ptr, int size);
+
+
/*
* TODO: The way we handle sound/music resources really is one huge hack.
* We probably should reconsider how we do this, and maybe come up with a
@@ -1069,7 +1072,6 @@ void Sound::saveLoadWithSerializer(Serializer *ser) {
* could stand a thorough cleanup!
*/
-
int ScummEngine::readSoundResource(int type, int idx) {
uint32 pos, total_size, size, tag, basetag, max_total_size;
int pri, best_pri;
@@ -1167,7 +1169,7 @@ int ScummEngine::readSoundResource(int type, int idx) {
ptr = (byte *)calloc(total_size, 1);
_fileHandle->read(ptr, total_size);
//dumpResource("sound-", idx, ptr);
- convertMac0Resource(type, idx, ptr, total_size);
+ convertMac0Resource(res, type, idx, ptr, total_size);
free(ptr);
return 1;
@@ -1296,7 +1298,7 @@ static const uint16 num_steps_table[] = {
600, 860, 1200, 1600
};
-int ScummEngine::convert_extraflags(byte * ptr, byte * src_ptr) {
+static int convert_extraflags(byte * ptr, byte * src_ptr) {
int flags = src_ptr[0];
int t1, t2, t3, t4, time;
@@ -1362,7 +1364,7 @@ int ScummEngine::convert_extraflags(byte * ptr, byte * src_ptr) {
}
#define kMIDIHeaderSize 46
-static inline byte *writeMIDIHeader(byte *ptr, const char *type, int ppqn, int total_size) {
+static byte *writeMIDIHeader(byte *ptr, const char *type, int ppqn, int total_size) {
uint32 dw = TO_BE_32(total_size);
memcpy(ptr, type, 4); ptr += 4;
@@ -1386,7 +1388,7 @@ static inline byte *writeMIDIHeader(byte *ptr, const char *type, int ppqn, int t
return ptr;
}
-static inline byte *writeVLQ(byte *ptr, int value) {
+static byte *writeVLQ(byte *ptr, int value) {
if (value > 0x7f) {
if (value > 0x3fff) {
*ptr++ = (value >> 14) | 0x80;
@@ -1399,7 +1401,7 @@ static inline byte *writeVLQ(byte *ptr, int value) {
return ptr;
}
-static inline byte Mac0ToGMInstrument(uint32 type, int &transpose) {
+static byte Mac0ToGMInstrument(uint32 type, int &transpose) {
transpose = 0;
switch (type) {
case MKID_BE('MARI'): return 12;
@@ -1421,7 +1423,7 @@ static inline byte Mac0ToGMInstrument(uint32 type, int &transpose) {
}
}
-void ScummEngine::convertMac0Resource(int type, int idx, byte *src_ptr, int size) {
+static void convertMac0Resource(ResourceManager &res, int type, int idx, byte *src_ptr, int size) {
/*
From Markus Magnuson (superqult) we got this information:
Mac0
@@ -1612,7 +1614,7 @@ void ScummEngine::convertMac0Resource(int type, int idx, byte *src_ptr, int size
#endif
}
-void ScummEngine::convertADResource(int type, int idx, byte *src_ptr, int size) {
+static void convertADResource(ResourceManager &res, const GameSettings& game, int type, int idx, byte *src_ptr, int size) {
// We will ignore the PPQN in the original resource, because
// it's invalid anyway. We use a constant PPQN of 480.
@@ -1660,10 +1662,10 @@ void ScummEngine::convertADResource(int type, int idx, byte *src_ptr, int size)
// Convert the ticks into a MIDI tempo.
// Unfortunate LOOM and INDY3 have different interpretation
// of the ticks value.
- if (_game.id == GID_INDY3) {
+ if (game.id == GID_INDY3) {
// Note: since we fix ppqn at 480, ppqn/473 is almost 1
dw = 500000 * 256 / 473 * ppqn / ticks;
- } else if (_game.id == GID_LOOM && _game.version == 3) {
+ } else if (game.id == GID_LOOM && game.version == 3) {
dw = 500000 * ppqn / 4 / ticks;
} else {
dw = 500000 * 256 / ticks;
@@ -2089,7 +2091,7 @@ int ScummEngine::readSoundResourceSmallHeader(int type, int idx) {
}
ptr = (byte *) calloc(ad_size, 1);
_fileHandle->read(ptr, ad_size);
- convertADResource(type, idx, ptr, ad_size);
+ convertADResource(res, _game, type, idx, ptr, ad_size);
free(ptr);
return 1;
} else if ((_musicType == MDT_PCSPK) && wa_offs != 0) {