diff options
Diffstat (limited to 'engines/cruise')
-rw-r--r-- | engines/cruise/cruise.h | 10 | ||||
-rw-r--r-- | engines/cruise/cruise_main.cpp | 32 | ||||
-rw-r--r-- | engines/cruise/module.mk | 1 | ||||
-rw-r--r-- | engines/cruise/saveload.cpp | 7 | ||||
-rw-r--r-- | engines/cruise/sound.cpp | 1 | ||||
-rw-r--r-- | engines/cruise/sound.h | 4 |
6 files changed, 29 insertions, 26 deletions
diff --git a/engines/cruise/cruise.h b/engines/cruise/cruise.h index 900f677975..94f8759d01 100644 --- a/engines/cruise/cruise.h +++ b/engines/cruise/cruise.h @@ -108,7 +108,15 @@ public: Common::RandomSource _rnd; - Common::List<byte *> _memList; + struct MemInfo { + int32 lineNum; + char fname[64]; + uint32 magic; + + static uint32 const cookie = 0x41424344; + }; + + Common::List<MemInfo*> _memList; typedef Common::List<Common::Rect> RectList; diff --git a/engines/cruise/cruise_main.cpp b/engines/cruise/cruise_main.cpp index 031c53b96a..ff4669607d 100644 --- a/engines/cruise/cruise_main.cpp +++ b/engines/cruise/cruise_main.cpp @@ -40,19 +40,21 @@ unsigned int timer = 0; gfxEntryStruct* linkedMsgList = NULL; +typedef CruiseEngine::MemInfo MemInfo; + void MemoryList() { if (!_vm->_memList.empty()) { debug("Current list of un-freed memory blocks:"); - Common::List<byte *>::iterator i; + Common::List<MemInfo*>::iterator i; for (i = _vm->_memList.begin(); i != _vm->_memList.end(); ++i) { - byte *v = *i; - debug("%s - %d", (const char *)(v - 68), *((int32 *)(v - 72))); + MemInfo const *const v = *i; + debug("%s - %d", v->fname, v->lineNum); } } } void *MemoryAlloc(uint32 size, bool clearFlag, int32 lineNum, const char *fname) { - byte *result; + void *result; if (gDebugLevel > 0) { // Find the point after the final slash @@ -61,17 +63,17 @@ void *MemoryAlloc(uint32 size, bool clearFlag, int32 lineNum, const char *fname) --fnameP; // Create the new memory block and add it to the memory list - byte *v = (byte *)malloc(size + 64 + 8); - *((int32 *) v) = lineNum; - strncpy((char *)v + 4, fnameP, 63); - *((char *)v + 4 + 63) = '\0'; - *((uint32 *) (v + 68)) = 0x41424344; + MemInfo *const v = (MemInfo *)malloc(sizeof(MemInfo) + size); + v->lineNum = lineNum; + strncpy(v->fname, fnameP, sizeof(v->fname)); + v->fname[ARRAYSIZE(v->fname) - 1] = '\0'; + v->magic = MemInfo::cookie; // Add the block to the memory list - result = v + 64 + 8; - _vm->_memList.push_back(result); + _vm->_memList.push_back(v); + result = v + 1; } else - result = (byte *)malloc(size); + result = malloc(size); if (clearFlag) memset(result, 0, size); @@ -84,11 +86,11 @@ void MemoryFree(void *v) { return; if (gDebugLevel > 0) { - byte *p = (byte *)v; - assert(*((uint32 *) (p - 4)) == 0x41424344); + MemInfo *const p = (MemInfo *)v - 1; + assert(p->magic == MemInfo::cookie); _vm->_memList.remove(p); - free(p - 8 - 64); + free(p); } else free(v); } diff --git a/engines/cruise/module.mk b/engines/cruise/module.mk index 5c36b2a7c1..ae07d20956 100644 --- a/engines/cruise/module.mk +++ b/engines/cruise/module.mk @@ -40,4 +40,3 @@ endif # Include common rules include $(srcdir)/rules.mk - diff --git a/engines/cruise/saveload.cpp b/engines/cruise/saveload.cpp index 6392009373..c3d1ea6643 100644 --- a/engines/cruise/saveload.cpp +++ b/engines/cruise/saveload.cpp @@ -62,12 +62,9 @@ bool readSavegameHeader(Common::InSaveFile *in, CruiseSavegameHeader &header) { while ((ch = (char)in->readByte()) != '\0') header.saveName += ch; // Get the thumbnail - header.thumbnail = new Graphics::Surface(); - if (!Graphics::loadThumbnail(*in, *header.thumbnail)) { - delete header.thumbnail; - header.thumbnail = NULL; + header.thumbnail = Graphics::loadThumbnail(*in); + if (!header.thumbnail) return false; - } return true; } diff --git a/engines/cruise/sound.cpp b/engines/cruise/sound.cpp index 290cc220d4..21d9a75297 100644 --- a/engines/cruise/sound.cpp +++ b/engines/cruise/sound.cpp @@ -31,6 +31,7 @@ #include "audio/audiostream.h" #include "audio/fmopl.h" +#include "audio/mixer.h" #include "audio/mods/soundfx.h" namespace Cruise { diff --git a/engines/cruise/sound.h b/engines/cruise/sound.h index 11aec0b04e..c1975dc579 100644 --- a/engines/cruise/sound.h +++ b/engines/cruise/sound.h @@ -23,10 +23,6 @@ #ifndef CRUISE_SOUND_H #define CRUISE_SOUND_H -#include "audio/mididrv.h" -#include "audio/midiparser.h" -#include "audio/mixer.h" - #include "common/config-manager.h" #include "common/serializer.h" |