diff options
author | Gregory Montoir | 2005-08-19 22:12:09 +0000 |
---|---|---|
committer | Gregory Montoir | 2005-08-19 22:12:09 +0000 |
commit | 24265fd3dd1681835f63e3c901158adef1ec5bc5 (patch) | |
tree | 36a28654b271ca5d8f12006f95f4990deaf371f8 /kyra/resource.cpp | |
parent | ed2a18569a68d5be78d5a893d66979eef9fe06cd (diff) | |
download | scummvm-rg350-24265fd3dd1681835f63e3c901158adef1ec5bc5.tar.gz scummvm-rg350-24265fd3dd1681835f63e3c901158adef1ec5bc5.tar.bz2 scummvm-rg350-24265fd3dd1681835f63e3c901158adef1ec5bc5.zip |
some WIP code to start introduction (with glitches) in Kyrandia 1 :
- the decoders have been rewritten due to crashes I encountered with the previous ones in Compression::
- the wsa code loader for v1 have been rewritten too, to handle the same flags as the original
- some cleanup
- this has only been tested with the floppy version
svn-id: r18704
Diffstat (limited to 'kyra/resource.cpp')
-rw-r--r-- | kyra/resource.cpp | 45 |
1 files changed, 14 insertions, 31 deletions
diff --git a/kyra/resource.cpp b/kyra/resource.cpp index 7da8772db3..ea2dd35055 100644 --- a/kyra/resource.cpp +++ b/kyra/resource.cpp @@ -20,14 +20,13 @@ */ #include "common/stdafx.h" -#include "kyra/resource.h" -#include "kyra/wsamovie.h" - #include "common/file.h" +#include "kyra/resource.h" #include "kyra/script.h" +#include "kyra/wsamovie.h" namespace Kyra { -Resourcemanager::Resourcemanager(KyraEngine* engine) { +Resource::Resource(KyraEngine* engine) { _engine = engine; // prefetches all PAK Files @@ -79,7 +78,7 @@ Resourcemanager::Resourcemanager(KyraEngine* engine) { } } -Resourcemanager::~Resourcemanager() { +Resource::~Resource() { Common::List<PAKFile*>::iterator start = _pakfiles.begin(); for (;start != _pakfiles.end(); ++start) { @@ -88,7 +87,7 @@ Resourcemanager::~Resourcemanager() { } } -uint8* Resourcemanager::fileData(const char* file, uint32* size) { +uint8* Resource::fileData(const char* file, uint32* size) { uint8* buffer = 0; Common::File file_; @@ -131,10 +130,9 @@ uint8* Resourcemanager::fileData(const char* file, uint32* size) { return buffer; } -Palette* Resourcemanager::loadPalette(const char* file) { +Palette* Resource::loadPalette(const char* file) { uint32 size = 0; - uint8* buffer = 0; - buffer = fileData(file, &size); + uint8 *buffer = fileData(file, &size); if (!buffer) { warning("ResMgr: Failed loading palette %s", file); return 0; @@ -142,38 +140,23 @@ Palette* Resourcemanager::loadPalette(const char* file) { return new Palette(buffer, size); } -CPSImage* Resourcemanager::loadImage(const char* file) { +CPSImage* Resource::loadImage(const char* file) { uint32 size = 0; - uint8* buffer = 0; - buffer = fileData(file, &size); + uint8 *buffer = fileData(file, &size); if (!buffer) return 0; return new CPSImage(buffer, size); } -Font* Resourcemanager::loadFont(const char* file) { +Font* Resource::loadFont(const char* file) { uint32 size = 0; - uint8* buffer = 0; - buffer = fileData(file, &size); + uint8 *buffer = fileData(file, &size); if (!buffer) return 0; return new Font(buffer, size); } -Movie* Resourcemanager::loadMovie(const char* file) { - // TODO: we have to check the Extenion to create the right movie - uint32 size = 0; - uint8* buffer = 0; - buffer = fileData(file, &size); - if (!buffer || !size) - return 0; - if (_engine->game() == KYRA1 || _engine->game() == KYRA1CD) - return new WSAMovieV1(buffer, size, _engine->game()); - else - return new WSAMovieV2(buffer, size); -} - -VMContext* Resourcemanager::loadScript(const char* file) { +VMContext* Resource::loadScript(const char* file) { VMContext* context = new VMContext(_engine); context->loadScript(file); return context; @@ -182,12 +165,12 @@ VMContext* Resourcemanager::loadScript(const char* file) { /////////////////////////////////////////// // Pak file manager #define PAKFile_Iterate Common::List<PakChunk*>::iterator start=_files.begin();start != _files.end(); ++start -PAKFile::PAKFile(/*const Common::String &path, */const Common::String& file) { +PAKFile::PAKFile(const Common::String& file) { Common::File pakfile; _buffer = 0; _open = false; - if (!pakfile.open(file.c_str())){ /*, Common::File::kFileReadMode, path.c_str())) {*/ + if (!pakfile.open(file.c_str())) { printf("pakfile couldn't open %s\n", file.c_str()); return; } |