Moved class File and the MD5 stuff to namespace Common

svn-id: r18037
This commit is contained in:
Max Horn 2005-05-10 22:56:25 +00:00
parent 55c37c18ce
commit b75c969e66
90 changed files with 291 additions and 242 deletions

View File

@ -42,13 +42,13 @@ Engine::Engine(OSystem *syst)
_timer = g_timer;
// Add default file directory
File::addDefaultDirectory(_gameDataPath);
Common::File::addDefaultDirectory(_gameDataPath);
_saveFileMan = _system->getSavefileManager();
}
Engine::~Engine() {
File::resetDefaultDirectories();
Common::File::resetDefaultDirectories();
delete _mixer;
delete _saveFileMan;

View File

@ -279,10 +279,10 @@ static int runGame(GameDetector &detector, OSystem &system) {
// Add extrapath (if any) to the directory search list
if (ConfMan.hasKey("extrapath"))
File::addDefaultDirectory(ConfMan.get("extrapath"));
Common::File::addDefaultDirectory(ConfMan.get("extrapath"));
if (ConfMan.hasKey("extrapath", Common::ConfigManager::kApplicationDomain))
File::addDefaultDirectory(ConfMan.get("extrapath", Common::ConfigManager::kApplicationDomain));
Common::File::addDefaultDirectory(ConfMan.get("extrapath", Common::ConfigManager::kApplicationDomain));
int result;

View File

@ -22,8 +22,9 @@
#include "common/file.h"
#include "common/util.h"
namespace Common {
Common::StringList File::_defaultDirectories;
StringList File::_defaultDirectories;
static FILE *fopenNoCase(const char *filename, const char *directory, const char *mode) {
@ -99,7 +100,7 @@ static FILE *fopenNoCase(const char *filename, const char *directory, const char
return file;
}
void File::addDefaultDirectory(const Common::String &directory) {
void File::addDefaultDirectory(const String &directory) {
_defaultDirectories.push_back(directory);
}
@ -153,7 +154,7 @@ bool File::open(const char *filename, AccessMode mode, const char *directory) {
if (mode == kFileWriteMode || directory) {
_handle = fopenNoCase(filename, directory ? directory : "", modeStr);
} else {
Common::StringList::const_iterator x;
StringList::const_iterator x;
// Try all default directories
for (x = _defaultDirectories.begin(); _handle == NULL && x != _defaultDirectories.end(); ++x) {
_handle = fopenNoCase(filename, x->c_str(), modeStr);
@ -282,3 +283,5 @@ uint32 File::write(const void *ptr, uint32 len) {
return len;
}
} // End of namespace Common

View File

@ -27,7 +27,9 @@
#include "common/str.h"
#include "common/stream.h"
class File : public Common::SeekableReadStream, public Common::WriteStream {
namespace Common {
class File : public SeekableReadStream, public WriteStream {
protected:
/** POSIX file handle to the actual file; 0 if no file is open. */
FILE *_handle;
@ -39,10 +41,10 @@ protected:
int32 _refcount;
/** The name of this file, for debugging. */
Common::String _name;
String _name;
static Common::StringList _defaultDirectories;
static StringList _defaultDirectories;
public:
enum AccessMode {
@ -50,7 +52,7 @@ public:
kFileWriteMode = 2
};
static void addDefaultDirectory(const Common::String &directory);
static void addDefaultDirectory(const String &directory);
static void resetDefaultDirectories();
File();
@ -76,4 +78,6 @@ public:
uint32 write(const void *dataPtr, uint32 dataSize);
};
} // End of namespace Common
#endif

View File

@ -30,6 +30,8 @@
#include "common/md5.h"
#include "common/util.h"
namespace Common {
#define GET_UINT32(n,b,i) (n) = READ_LE_UINT32(b + i)
#define PUT_UINT32(n,b,i) WRITE_LE_UINT32(b + i, n)
@ -278,6 +280,8 @@ bool md5_file( const char *name, uint8 digest[16], const char *directory, uint32
return true;
}
} // End of namespace Common
#ifdef TEST
#include <stdlib.h>

View File

@ -23,6 +23,8 @@
#include "common/scummsys.h"
namespace Common {
typedef struct
{
uint32 total[2];
@ -37,4 +39,6 @@ void md5_finish( md5_context *ctx, uint8 digest[16] );
bool md5_file( const char *name, uint8 digest[16], const char *directory = NULL, uint32 length = 0 );
} // End of namespace Common
#endif

View File

@ -30,7 +30,7 @@ int16 file_write(int16 handle, char *buf, int16 size) {
return filesHandles[handle].write(buf, size);
}
int16 file_open(const char *path, File::AccessMode mode) {
int16 file_open(const char *path, Common::File::AccessMode mode) {
int16 i;
for (i = 0; i < MAX_FILES; i++) {
@ -48,7 +48,7 @@ int16 file_open(const char *path, File::AccessMode mode) {
return -1;
}
File *file_getHandle(int16 handle) {
Common::File *file_getHandle(int16 handle) {
return &filesHandles[handle];
}
@ -284,10 +284,10 @@ void data_closeData(int16 handle) {
file_getHandle(handle)->close();
}
int16 data_openData(const char *path, File::AccessMode mode) {
int16 data_openData(const char *path, Common::File::AccessMode mode) {
int16 handle;
if (mode != File::kFileReadMode)
if (mode != Common::File::kFileReadMode)
return file_open(path, mode);
handle = data_getChunk(path);
@ -320,7 +320,7 @@ void data_seekData(int16 handle, int32 pos, int16 from) {
int32 data_getDataSize(const char *name) {
char buf[128];
int32 chunkSz;
File file;
Common::File file;
strcpy(buf, name);
chunkSz = data_getChunkSize(buf);

View File

@ -36,8 +36,8 @@ struct ChunkDesc {
byte packed;
};
int16 file_open(const char *path, File::AccessMode mode = File::kFileReadMode);
File *file_getHandle(int16 handle);
int16 file_open(const char *path, Common::File::AccessMode mode = Common::File::kFileReadMode);
Common::File *file_getHandle(int16 handle);
int16 data_getChunk(const char *chunkName);
char data_freeChunk(int16 handle);
int32 data_readChunk(int16 handle, char *buf, int16 size);
@ -47,7 +47,7 @@ void data_openDataFile(const char *src);
void data_closeDataFile(void);
char *data_getUnpackedData(const char *name);
void data_closeData(int16 handle);
int16 data_openData(const char *path, File::AccessMode mode = File::kFileReadMode);
int16 data_openData(const char *path, Common::File::AccessMode mode = Common::File::kFileReadMode);
int32 data_readData(int16 handle, char *buf, int16 size);
void data_seekData(int16 handle, int32 pos, int16 from);
int32 data_getDataSize(const char *name);

View File

@ -92,7 +92,7 @@ char useJoystick = 1;
/* Files */
int16 filesCount = 0;
File filesHandles[MAX_FILES];
Common::File filesHandles[MAX_FILES];
/* Data files */
struct ChunkDesc *dataFiles[MAX_DATA_FILES];

View File

@ -116,7 +116,7 @@ extern char useJoystick;
#define MAX_FILES 30
extern int16 filesCount;
extern File filesHandles[MAX_FILES];
extern Common::File filesHandles[MAX_FILES];
/* Data files */
extern struct ChunkDesc *dataFiles[MAX_DATA_FILES];

View File

@ -97,7 +97,7 @@ DetectedGameList Engine_GOB_detectGames(const FSList &fslist) {
uint8 md5sum[16];
char md5str[32 + 1];
if (md5_file(file->path().c_str(), md5sum, NULL, kMD5FileSizeLimit)) {
if (Common::md5_file(file->path().c_str(), md5sum, NULL, kMD5FileSizeLimit)) {
for (int i = 0; i < 16; i++) {
sprintf(md5str + i * 2, "%02x", (int)md5sum[i]);
}

View File

@ -489,7 +489,7 @@ void inter_writeData(void) {
offset = parse_parseValExpr();
WRITE_VAR(1, 1);
handle = data_openData(inter_resStr, File::kFileWriteMode);
handle = data_openData(inter_resStr, Common::File::kFileWriteMode);
if (handle < 0)
return;

View File

@ -71,7 +71,7 @@ bool BaseAnimationState::init(const char *name, void *audioArg) {
// Load lookup palettes
sprintf(tempFile, "%s.pal", name);
File f;
Common::File f;
if (!f.open(tempFile)) {
warning("Cutscene: %s palette missing", tempFile);
@ -120,7 +120,7 @@ bool BaseAnimationState::init(const char *name, void *audioArg) {
#endif
// Open MPEG2 stream
_mpegFile = new File();
_mpegFile = new Common::File();
sprintf(tempFile, "%s.mp2", name);
if (!_mpegFile->open(tempFile)) {
warning("Cutscene: Could not open %s", tempFile);

View File

@ -63,6 +63,10 @@ typedef sequence_t mpeg2_sequence_t;
#define BUFFER_SIZE 4096
namespace Common {
class File;
}
namespace Graphics {
class BaseAnimationState {
@ -82,7 +86,7 @@ protected:
const mpeg2_info_t *_mpegInfo;
#endif
File *_mpegFile;
Common::File *_mpegFile;
SoundHandle _bgSound;
AudioStream *_bgSoundStream;

View File

@ -90,7 +90,7 @@ Resourcemanager::~Resourcemanager() {
uint8* Resourcemanager::fileData(const char* file, uint32* size) {
uint8* buffer = 0;
File file_;
Common::File file_;
// test to open it in the main dir
if (file_.open(file)) {
@ -183,11 +183,11 @@ 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) {
File pakfile;
Common::File pakfile;
_buffer = 0;
_open = false;
if (!pakfile.open(file.c_str())){ /*, File::kFileReadMode, path.c_str())) {*/
if (!pakfile.open(file.c_str())){ /*, Common::File::kFileReadMode, path.c_str())) {*/
printf("pakfile couldn't open %s\n", file.c_str());
return;
}

View File

@ -95,7 +95,7 @@ DetectedGameList Engine_QUEEN_detectGames(const FSList &fslist) {
const char *gameName = file->displayName().c_str();
if (0 == scumm_stricmp("queen.1", gameName) || 0 == scumm_stricmp("queen.1c", gameName)) {
File dataFile;
Common::File dataFile;
dataFile.open(file->path().c_str());
assert(dataFile.isOpen());

View File

@ -54,7 +54,7 @@ static int compareResourceEntry(const void *a, const void *b) {
Resource::Resource()
: _resourceEntries(0), _resourceTable(NULL) {
_resourceFile = new File();
_resourceFile = new Common::File();
if (!findCompressedVersion() && !findNormalVersion())
error("Could not open resource file '%s'", "queen.1");
checkJASVersion();
@ -190,7 +190,7 @@ Language Resource::getLanguage() const {
}
bool Resource::readTableFile(const GameVersion *gameVersion) {
File tableFile;
Common::File tableFile;
tableFile.open(_tableFilename);
if (tableFile.isOpen() && tableFile.readUint32BE() == 'QTBL') {
if (tableFile.readUint32BE() != CURRENT_TBL_VERSION)
@ -214,7 +214,7 @@ void Resource::readTableCompResource() {
readTableEntries(_resourceFile);
}
void Resource::readTableEntries(File *file) {
void Resource::readTableEntries(Common::File *file) {
_resourceEntries = file->readUint16BE();
_resourceTable = new ResourceEntry[_resourceEntries];
for (uint16 i = 0; i < _resourceEntries; ++i) {
@ -237,7 +237,7 @@ const GameVersion *Resource::detectGameVersion(uint32 size) const {
return NULL;
}
File *Resource::giveCompressedSound(const char *filename, uint32 *size) {
Common::File *Resource::giveCompressedSound(const char *filename, uint32 *size) {
assert(strstr(filename, ".SB"));
ResourceEntry *re = resourceEntry(filename);
assert(re != NULL);

View File

@ -68,7 +68,7 @@ public:
bool fileExists(const char *filename) const { return resourceEntry(filename) != NULL; }
//! returns a reference to a sound file
File *giveCompressedSound(const char *filename, uint32 *size);
Common::File *giveCompressedSound(const char *filename, uint32 *size);
bool isDemo() const { return !strcmp(_versionString, "PE100"); }
bool isInterview() const { return !strcmp(_versionString, "PEint"); }
@ -114,7 +114,7 @@ public:
protected:
File *_resourceFile;
Common::File *_resourceFile;
//! compression type for audio files
uint8 _compression;
@ -146,7 +146,7 @@ protected:
void readTableCompResource();
//! read the resource table from the specified file
void readTableEntries(File *file);
void readTableEntries(Common::File *file);
//! detect game version based on queen.1 datafile size
const GameVersion *detectGameVersion(uint32 size) const;

View File

@ -200,7 +200,7 @@ void SBSound::sfxPlay(const char *name, bool isSpeech) {
#ifdef USE_MAD
void MP3Sound::sfxPlay(const char *name, bool isSpeech) {
uint32 size;
File *f = _vm->resource()->giveCompressedSound(name, &size);
Common::File *f = _vm->resource()->giveCompressedSound(name, &size);
_mixer->playInputStream(SoundMixer::kSFXSoundType, isSpeech ? &_speechHandle : &_sfxHandle, makeMP3Stream(f, size));
}
#endif
@ -208,7 +208,7 @@ void MP3Sound::sfxPlay(const char *name, bool isSpeech) {
#ifdef USE_VORBIS
void OGGSound::sfxPlay(const char *name, bool isSpeech) {
uint32 size;
File *f = _vm->resource()->giveCompressedSound(name, &size);
Common::File *f = _vm->resource()->giveCompressedSound(name, &size);
_mixer->playInputStream(SoundMixer::kSFXSoundType, isSpeech ? &_speechHandle : &_sfxHandle, makeVorbisStream(f, size));
}
#endif
@ -216,7 +216,7 @@ void OGGSound::sfxPlay(const char *name, bool isSpeech) {
#ifdef USE_FLAC
void FLACSound::sfxPlay(const char *name, bool isSpeech) {
uint32 size;
File *f = _vm->resource()->giveCompressedSound(name, &size);
Common::File *f = _vm->resource()->giveCompressedSound(name, &size);
_mixer->playInputStream(SoundMixer::kSFXSoundType, isSpeech ? &_speechHandle : &_sfxHandle, makeFlacStream(f, size));
}
#endif

View File

@ -355,7 +355,7 @@ byte *Talk::loadDialogFile(const char *filename) {
for (int i = 0; i < ARRAYSIZE(dogFiles); ++i) {
if (!scumm_stricmp(filename, dogFiles[i].filename) &&
_vm->resource()->getLanguage() == dogFiles[i].lang) {
File fdog;
Common::File fdog;
fdog.open(filename);
if (fdog.isOpen()) {
debug(6, "Loading dog file '%s' from game data path", filename);

View File

@ -2296,7 +2296,7 @@ void Actor::drawPathTest() {
#endif
}
void Actor::saveState(File& out) {
void Actor::saveState(Common::File& out) {
uint16 i;
out.writeSint16LE(getProtagState());
@ -2312,7 +2312,7 @@ void Actor::saveState(File& out) {
}
}
void Actor::loadState(File& in) {
void Actor::loadState(Common::File& in) {
int32 i;
setProtagState(in.readSint16LE());

View File

@ -141,12 +141,12 @@ struct Location {
Location() {
x = y = z = 0;
}
void saveState(File& out) {
void saveState(Common::File& out) {
out.writeSint32LE(x);
out.writeSint32LE(y);
out.writeSint32LE(z);
}
void loadState(File& in) {
void loadState(Common::File& in) {
x = in.readSint32LE();
y = in.readSint32LE();
z = in.readSint32LE();
@ -222,7 +222,7 @@ public:
int32 screenDepth; //
int32 screenScale; //
void saveState(File& out) {
void saveState(Common::File& out) {
out.writeUint16LE(flags);
out.writeSint32LE(nameIndex);
out.writeSint32LE(sceneNumber);
@ -232,7 +232,7 @@ public:
out.writeSint32LE(screenDepth);
out.writeSint32LE(screenScale);
}
void loadState(File& in) {
void loadState(Common::File& in) {
flags = in.readUint16LE();
nameIndex = in.readSint32LE();
sceneNumber = in.readSint32LE();
@ -297,7 +297,7 @@ public:
Location partialTarget;
int32 walkFrameSequence;
void saveState(File& out) {
void saveState(Common::File& out) {
CommonObjectData::saveState(out);
out.writeUint16LE(actorFlags);
out.writeSint32LE(currentAction);
@ -330,7 +330,7 @@ public:
partialTarget.saveState(out);
out.writeSint32LE(walkFrameSequence);
}
void loadState(File& in) {
void loadState(Common::File& in) {
CommonObjectData::loadState(in);
actorFlags = in.readUint16LE();
currentAction = in.readSint32LE();
@ -495,8 +495,8 @@ public:
return _activeSpeech.stringsCount > 0;
}
void saveState(File& out);
void loadState(File& in);
void saveState(Common::File& out);
void loadState(Common::File& in);
void setProtagState(int state);
int getProtagState() { return _protagState; }

View File

@ -761,7 +761,7 @@ int detectGame(const FSList &fslist, bool mode) {
uint16 file_count;
uint16 file_n;
File test_file;
Common::File test_file;
bool file_missing;
Common::String tstr, tstr1;
@ -790,7 +790,7 @@ int detectGame(const FSList &fslist, bool mode) {
tstr.toLowercase();
if (filesList.contains(tstr) || filesList.contains(tstr1)) {
if (md5_file(file->path().c_str(), md5sum, NULL, FILE_MD5_BYTES)) {
if (Common::md5_file(file->path().c_str(), md5sum, NULL, FILE_MD5_BYTES)) {
for (int j = 0; j < 16; j++) {
sprintf(md5str + j*2, "%02x", (int)md5sum[j]);
}
@ -801,12 +801,12 @@ int detectGame(const FSList &fslist, bool mode) {
}
}
} else {
File testFile;
Common::File testFile;
for (StringSet::const_iterator file = filesList.begin(); file != filesList.end(); ++file) {
if (testFile.open(file->_key.c_str())) {
testFile.close();
if (md5_file(file->_key.c_str(), md5sum, NULL, FILE_MD5_BYTES)) {
if (Common::md5_file(file->_key.c_str(), md5sum, NULL, FILE_MD5_BYTES)) {
for (int j = 0; j < 16; j++) {
sprintf(md5str + j*2, "%02x", (int)md5sum[j]);
}

View File

@ -42,7 +42,7 @@ namespace Saga {
class RAWInputStream : public AudioStream {
private:
File *_file;
Common::File *_file;
uint32 _file_pos;
uint32 _start_pos;
uint32 _end_pos;
@ -56,7 +56,7 @@ private:
inline bool eosIntern() const;
public:
RAWInputStream(File *file, int size, bool looping);
RAWInputStream(Common::File *file, int size, bool looping);
~RAWInputStream();
int readBuffer(int16 *buffer, const int numSamples);
@ -66,7 +66,7 @@ public:
int getRate() const { return 11025; }
};
RAWInputStream::RAWInputStream(File *file, int size, bool looping)
RAWInputStream::RAWInputStream(Common::File *file, int size, bool looping)
: _file(file), _finished(false), _looping(looping),
_bufferEnd(_buf + BUFFER_SIZE) {
@ -147,7 +147,7 @@ void RAWInputStream::refill() {
}
AudioStream *makeRAWStream(const char *filename, uint32 pos, int size, bool looping) {
File *file = new File();
Common::File *file = new Common::File();
if (!file->open(filename)) {
delete file;
@ -285,7 +285,7 @@ Music::Music(SoundMixer *mixer, MidiDriver *driver, int enabled) : _mixer(mixer)
_mixer->setVolumeForSoundType(SoundMixer::kMusicSoundType, ConfMan.getInt("music_volume"));
if (_vm->getGameType() == GType_ITE) {
File file;
Common::File file;
byte footerBuf[ARRAYSIZE(_digiTableITECD) * 8];
// The lookup table is stored at the end of music.rsc. I don't
@ -400,7 +400,7 @@ int Music::play(uint32 music_rn, uint16 flags) {
AudioStream *audioStream = NULL;
MidiParser *parser;
File midiFile;
Common::File midiFile;
if (_vm->getGameType() == GType_ITE) {
if (music_rn >= 9 && music_rn <= 34) {

View File

@ -50,7 +50,7 @@ RSCFILE_CONTEXT *RSC_CreateContext() {
empty_context.rc_file_loaded = 0;
empty_context.rc_res_table = NULL;
empty_context.rc_res_ct = 0;
empty_context.rc_file = new File();
empty_context.rc_file = new Common::File();
RSCFILE_CONTEXT *new_context;
new_context = (RSCFILE_CONTEXT *)malloc(sizeof(*new_context));
@ -257,7 +257,7 @@ int RSC_LoadResource(RSCFILE_CONTEXT *rsc, uint32 res_num, byte **res_p, size_t
substnum = -1;
if (substnum != -1) {
File in;
Common::File in;
if (in.open(substitutes[substnum].fname)) {
res_size = in.size();

View File

@ -44,7 +44,7 @@ struct RSCFILE_RESOURCE {
struct RSCFILE_CONTEXT {
const char *rc_file_fspec;
File *rc_file;
Common::File *rc_file;
int rc_file_loaded;
RSCFILE_RESOURCE *rc_res_table;
size_t rc_res_ct;

View File

@ -142,16 +142,16 @@ SagaEngine::SagaEngine(GameDetector *detector, OSystem *syst)
// The Linux version of Inherit the Earth puts all data files in an
// 'itedata' sub-directory, except for voices.rsc
File::addDefaultDirectory(_gameDataPath + "itedata/");
Common::File::addDefaultDirectory(_gameDataPath + "itedata/");
// The Windows version of Inherit the Earth puts various data files in
// other subdirectories.
File::addDefaultDirectory(_gameDataPath + "graphics/");
File::addDefaultDirectory(_gameDataPath + "music/");
File::addDefaultDirectory(_gameDataPath + "sound/");
Common::File::addDefaultDirectory(_gameDataPath + "graphics/");
Common::File::addDefaultDirectory(_gameDataPath + "music/");
Common::File::addDefaultDirectory(_gameDataPath + "sound/");
// Mac CD Wyrmkeep
File::addDefaultDirectory(_gameDataPath + "patch/");
Common::File::addDefaultDirectory(_gameDataPath + "patch/");
// Setup mixer
if (!_mixer->isReady()) {
@ -202,15 +202,15 @@ int SagaEngine::init(GameDetector &detector) {
// Add some default directories
// Win32 demo & full game
File::addDefaultDirectory("graphics");
File::addDefaultDirectory("music");
File::addDefaultDirectory("sound");
Common::File::addDefaultDirectory("graphics");
Common::File::addDefaultDirectory("music");
Common::File::addDefaultDirectory("sound");
// Linux demo
File::addDefaultDirectory("itedata");
Common::File::addDefaultDirectory("itedata");
// Mac demos & full game
File::addDefaultDirectory("patch");
Common::File::addDefaultDirectory("patch");
// Process command line

View File

@ -40,9 +40,9 @@
namespace Saga {
void SagaEngine::save(const char *fileName) {
File out;
Common::File out;
out.open(fileName, File::kFileWriteMode);
out.open(fileName, Common::File::kFileWriteMode);
//TODO: version number
// Surrounding scene
@ -67,7 +67,7 @@ void SagaEngine::save(const char *fileName) {
}
void SagaEngine::load(const char *fileName) {
File in;
Common::File in;
int commonBufferSize;
int sceneNumber, insetSceneNumber;
int mapx, mapy;

View File

@ -83,7 +83,7 @@ int SndRes::playVoice(uint32 voice_rn) {
// separate file (p2_a.voc or P2_A.iaf), to correct voice 4 in
// the intro. Use that, if available.
File f;
Common::File f;
uint32 size;
bool voc = false;
@ -235,7 +235,7 @@ int SndRes::getVoiceLength(uint32 voice_rn) {
assert(_init);
File f;
Common::File f;
// The Wyrmkeep release of Inherit the Earth provides a separate file
// (p2_a.voc or P2_A.iaf), to correct voice 4 in the intro. Use that,

View File

@ -28,14 +28,14 @@
namespace Scumm {
void ScummEngine::loadCJKFont() {
File fp;
Common::File fp;
_useCJKMode = false;
if (_language == Common::JA_JPN && _version <= 5) { // FM-TOWNS v3 / v5 Kanji
int numChar = 256 * 32;
_2byteWidth = 16;
_2byteHeight = 16;
// use FM-TOWNS font rom, since game files don't have kanji font resources
if (fp.open("fmt_fnt.rom", File::kFileReadMode)) {
if (fp.open("fmt_fnt.rom", Common::File::kFileReadMode)) {
_useCJKMode = true;
debug(2, "Loading FM-TOWNS Kanji rom");
_2byteFontPtr = new byte[((_2byteWidth + 7) / 8) * _2byteHeight * numChar];

View File

@ -289,7 +289,7 @@ bool ScummDebugger::Cmd_Script(int argc, const char** argv) {
}
bool ScummDebugger::Cmd_ImportRes(int argc, const char** argv) {
File file;
Common::File file;
uint32 size;
int resnum;
@ -302,7 +302,7 @@ bool ScummDebugger::Cmd_ImportRes(int argc, const char** argv) {
// FIXME add bounds check
if (!strncmp(argv[1], "scr", 3)) {
file.open(argv[2], File::kFileReadMode);
file.open(argv[2], Common::File::kFileReadMode);
if (file.isOpen() == false) {
DebugPrintf("Could not open file %s\n", argv[2]);
return true;

View File

@ -71,7 +71,7 @@ int BundleDirCache::matchFile(const char *filename) {
}
if (!found) {
File file;
Common::File file;
if (file.open(filename) == false) {
warning("BundleDirCache::matchFile() Can't open bundle file: %s", filename);
@ -135,7 +135,7 @@ BundleMgr::~BundleMgr() {
close();
}
File *BundleMgr::getFile(const char *filename, int32 &offset, int32 &size) {
Common::File *BundleMgr::getFile(const char *filename, int32 &offset, int32 &size) {
for (int i = 0; i < _numFiles; i++) {
if (!scumm_stricmp(filename, _bundleTable[i].filename)) {
_file.seek(_bundleTable[i].offset, SEEK_SET);

View File

@ -67,7 +67,7 @@ private:
int _numFiles;
int _numCompItems;
int _curSample;
File _file;
Common::File _file;
bool _compTableLoaded;
int _fileBundleId;
byte _compOutput[0x2000];
@ -84,7 +84,7 @@ public:
bool open(const char *filename, bool &compressed);
void close();
File *getFile(const char *filename, int32 &offset, int32 &size);
Common::File *getFile(const char *filename, int32 &offset, int32 &size);
int32 decompressSampleByName(const char *name, int32 offset, int32 size, byte **comp_final, bool header_outside);
int32 decompressSampleByIndex(int32 index, int32 offset, int32 size, byte **comp_final, int header_size, bool header_outside);
int32 decompressSampleByCurIndex(int32 offset, int32 size, byte **comp_final, int header_size, bool header_outside);

View File

@ -84,7 +84,7 @@ void ImuseDigiSndMgr::countElements(byte *ptr, int &numRegions, int &numJumps, i
} while (tag != MKID_BE('DATA'));
}
void ImuseDigiSndMgr::prepareSoundFromRMAP(File *file, soundStruct *sound, int32 offset, int32 size) {
void ImuseDigiSndMgr::prepareSoundFromRMAP(Common::File *file, soundStruct *sound, int32 offset, int32 size) {
int l;
file->seek(offset, SEEK_SET);
@ -368,7 +368,7 @@ ImuseDigiSndMgr::soundStruct *ImuseDigiSndMgr::openSound(int32 soundId, const ch
char fileName[24];
int32 offset = 0, size = 0;
sprintf(fileName, "%s.map", soundName);
File *rmapFile = sound->bundle->getFile(fileName, offset, size);
Common::File *rmapFile = sound->bundle->getFile(fileName, offset, size);
if (!rmapFile) {
closeSound(sound);
return NULL;
@ -577,7 +577,7 @@ int32 ImuseDigiSndMgr::getDataFromRegion(soundStruct *soundHandle, int region, b
sprintf(fileName, "%s_reg%03d", soundHandle->name, region);
if (scumm_stricmp(fileName, soundHandle->lastFileName) != 0) {
int32 offs = 0, len = 0;
File *cmpFile;
Common::File *cmpFile;
bool oggMode = false;
sprintf(fileName, "%s_reg%03d.mp3", soundHandle->name, region);
cmpFile = soundHandle->bundle->getFile(fileName, offs, len);

View File

@ -96,7 +96,7 @@ private:
bool checkForProperHandle(soundStruct *soundHandle);
soundStruct *allocSlot();
void prepareSound(byte *ptr, soundStruct *sound);
void prepareSoundFromRMAP(File *file, soundStruct *sound, int32 offset, int32 size);
void prepareSoundFromRMAP(Common::File *file, soundStruct *sound, int32 offset, int32 size);
ScummEngine *_vm;
byte _disk;

View File

@ -675,7 +675,7 @@ protected:
const OpcodeEntryv60he *_opcodesv60he;
File _hFileTable[17];
Common::File _hFileTable[17];
public:
ScummEngine_v60he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16]) : ScummEngine_v6(detector, syst, gs, md5sum) {}

View File

@ -1227,7 +1227,7 @@ void ScummEngine::allocateArrays() {
void ScummEngine::dumpResource(const char *tag, int idx, const byte *ptr, int length) {
char buf[256];
File out;
Common::File out;
uint32 size;
if (length >= 0)
@ -1245,7 +1245,7 @@ void ScummEngine::dumpResource(const char *tag, int idx, const byte *ptr, int le
sprintf(buf, "dumps/%s%d.dmp", tag, idx);
#endif
out.open(buf, File::kFileWriteMode);
out.open(buf, Common::File::kFileWriteMode);
if (out.isOpen() == false)
return;
out.write(ptr, size);

View File

@ -104,7 +104,7 @@ void ScummEngine_v3::loadCharset(int no) {
checkRange(2, 0, no, "Loading illegal charset %d");
closeRoom();
File file;
Common::File file;
char buf[20];
sprintf(buf, "%02d.LFL", 99 - no);

View File

@ -136,7 +136,7 @@ void ScummEngine_v4::loadCharset(int no) {
checkRange(4, 0, no, "Loading illegal charset %d");
closeRoom();
File file;
Common::File file;
char buf[20];
sprintf(buf, "%03d.LFL", 900 + no);

View File

@ -142,7 +142,7 @@ int Win32ResExtractor::extractResource(const char *resType, char *resName, byte
/* initiate stuff */
fi.memory = NULL;
fi.file = new File;
fi.file = new Common::File;
if (!_fileName[0]) { // We are running for the first time
snprintf(_fileName, 256, "%s.he3", _vm->getGameName());
@ -1279,7 +1279,7 @@ void MacResExtractor::setCursor(int id) {
int cursorsize;
int w = 0, h = 0, hotspot_x = 0, hotspot_y = 0;
int keycolor;
File f;
Common::File f;
if (!_fileName[0]) // We are running for the first time
if (_vm->_substResFileNameIndex > 0) {
@ -1314,7 +1314,7 @@ void MacResExtractor::setCursor(int id) {
}
int MacResExtractor::extractResource(int id, byte **buf) {
File in;
Common::File in;
int size;
in.open(_fileName);
@ -1345,7 +1345,7 @@ int MacResExtractor::extractResource(int id, byte **buf) {
#define MBI_RFLEN 87
#define MAXNAMELEN 63
bool MacResExtractor::init(File in) {
bool MacResExtractor::init(Common::File in) {
byte infoHeader[MBI_INFOHDR];
int32 data_size, rsrc_size;
int32 data_size_pad, rsrc_size_pad;
@ -1397,7 +1397,7 @@ bool MacResExtractor::init(File in) {
return true;
}
byte *MacResExtractor::getResource(File in, const char *typeID, int16 resID, int *size) {
byte *MacResExtractor::getResource(Common::File in, const char *typeID, int16 resID, int *size) {
int i;
int typeNum = -1;
int resNum = -1;
@ -1434,7 +1434,7 @@ byte *MacResExtractor::getResource(File in, const char *typeID, int16 resID, int
return buf;
}
void MacResExtractor::readMap(File in) {
void MacResExtractor::readMap(Common::File in) {
int i, j, len;
in.seek(_mapOffset + 22);

View File

@ -156,7 +156,7 @@ class Win32ResExtractor {
#endif
struct WinLibrary {
File *file;
Common::File *file;
byte *memory;
byte *first_resource;
bool is_PE_binary;
@ -490,9 +490,9 @@ public:
private:
int extractResource(int id, byte **buf);
bool init(File in);
void readMap(File in);
byte *getResource(File in, const char *typeID, int16 resID, int *size);
bool init(Common::File in);
void readMap(Common::File in);
byte *getResource(Common::File in, const char *typeID, int16 resID, int *size);
void convertIcons(byte *data, int datasize, byte **cursor, int *w, int *h,
int *hotspot_x, int *hotspot_y, int *keycolor);

View File

@ -1007,12 +1007,12 @@ void ScummEngine_v60he::o60_openFile() {
if (slot != -1) {
switch(mode) {
case 1:
_hFileTable[slot].open((char*)filename + r, File::kFileReadMode, _saveFileMan->getSavePath());
_hFileTable[slot].open((char*)filename + r, Common::File::kFileReadMode, _saveFileMan->getSavePath());
if (_hFileTable[slot].isOpen() == false)
_hFileTable[slot].open((char*)filename + r, File::kFileReadMode);
_hFileTable[slot].open((char*)filename + r, Common::File::kFileReadMode);
break;
case 2:
_hFileTable[slot].open((char*)filename + r, File::kFileWriteMode, _saveFileMan->getSavePath());
_hFileTable[slot].open((char*)filename + r, Common::File::kFileWriteMode, _saveFileMan->getSavePath());
break;
default:
error("o60_openFile(): wrong open file mode %d", mode);

View File

@ -538,7 +538,7 @@ int ScummEngine_v72he::convertFilePath(byte *dst, bool setFilePath) {
}
if (setFilePath) {
File f;
Common::File f;
char filePath[256], newFilePath[256];
sprintf(filePath, "%s%s", _gameDataPath.c_str(), dst + r);
@ -1752,12 +1752,12 @@ void ScummEngine_v72he::o72_openFile() {
if (slot != -1) {
switch(mode) {
case 1:
_hFileTable[slot].open((char*)filename + r, File::kFileReadMode, _saveFileMan->getSavePath());
_hFileTable[slot].open((char*)filename + r, Common::File::kFileReadMode, _saveFileMan->getSavePath());
if (_hFileTable[slot].isOpen() == false)
_hFileTable[slot].open((char*)filename + r, File::kFileReadMode, _gameDataPath.c_str());
_hFileTable[slot].open((char*)filename + r, Common::File::kFileReadMode, _gameDataPath.c_str());
break;
case 2:
_hFileTable[slot].open((char*)filename + r, File::kFileWriteMode, _saveFileMan->getSavePath());
_hFileTable[slot].open((char*)filename + r, Common::File::kFileWriteMode, _saveFileMan->getSavePath());
break;
default:
error("o72_openFile(): wrong open file mode %d", mode);

View File

@ -406,7 +406,7 @@ void ScummEngine_v80he::o80_getFileSize() {
copyScriptString(filename, sizeof(filename));
File f;
Common::File f;
if (f.open((char *)filename) == false) {
push(-1);
return;

View File

@ -72,6 +72,8 @@ extern bool isSmartphone(void);
static int generateSubstResFileName_(const char *filename, char *buf, int bufsize, int index);
using Common::File;
namespace Scumm {
// Use g_scumm from error() ONLY
@ -2628,7 +2630,7 @@ DetectedGameList Engine_SCUMM_detectGames(const FSList &fslist) {
uint8 md5sum[16];
const char *name = iter->_key.c_str();
if (md5_file(name, md5sum, 0, kMD5FileSizeLimit)) {
if (Common::md5_file(name, md5sum, 0, kMD5FileSizeLimit)) {
char md5str[32+1];
for (int j = 0; j < 16; j++) {
sprintf(md5str + j*2, "%02x", (int)md5sum[j]);
@ -2772,7 +2774,7 @@ Engine *Engine_SCUMM_create(GameDetector *detector, OSystem *syst) {
game.platform = Common::kPlatformMacintosh;
}
if (md5_file(detectName, md5sum, ConfMan.get("path").c_str(), kMD5FileSizeLimit)) {
if (Common::md5_file(detectName, md5sum, ConfMan.get("path").c_str(), kMD5FileSizeLimit)) {
for (int j = 0; j < 16; j++) {
sprintf(gameMD5 + j*2, "%02x", (int)md5sum[j]);
}

View File

@ -61,7 +61,7 @@ private:
SoundHandle _compressedFileSoundHandle;
bool _compressedFileMode;
File _compressedFile;
Common::File _compressedFile;
byte _IACToutput[4096];
int32 _IACTpos;
bool _storeFrame;

View File

@ -165,7 +165,7 @@ void Sound::setOverrideFreq(int freq) {
void Sound::setupHEMusicFile() {
int i, total_size;
char buf[32], buf1[128];
File musicFile;
Common::File musicFile;
sprintf(buf, "%s.he4", _vm->getGameName());
@ -238,7 +238,7 @@ void Sound::playSound(int soundID, int heOffset, int heChannel, int heFlags) {
int music_offs;
char buf[32], buf1[128];
File musicFile;
Common::File musicFile;
sprintf(buf, "%s.he4", _vm->getGameName());
@ -1397,7 +1397,7 @@ int ScummEngine::readSoundResource(int type, int idx) {
// Used in 3DO version of puttputt joins the parade and probably others
// Specifies a separate file to be used for music from what I gather.
int tmpsize;
File dmuFile;
Common::File dmuFile;
char buffer[128];
debugC(DEBUG_SOUND, "Found base tag FMUS in sound %d, size %d", idx, total_size);
debugC(DEBUG_SOUND, "It was at position %d", _fileHandle->pos());

View File

@ -25,7 +25,9 @@
#include "sound/audiostream.h"
#include "sound/mixer.h"
class File;
namespace Common {
class File;
}
namespace Scumm {

View File

@ -23,6 +23,8 @@
#include "common/util.h"
#include "common/md5.h"
using Common::File;
namespace Scumm {
#pragma mark -
@ -1197,7 +1199,7 @@ bool ScummNESFile::open(const char *filename, AccessMode mode) {
uint8 md5sum[16];
if (_ROMset == kROMsetNum) {
if (md5_file(filename, md5sum)) {
if (Common::md5_file(filename, md5sum)) {
char md5str[32+1];
for (int j = 0; j < 16; j++) {
sprintf(md5str + j*2, "%02x", (int)md5sum[j]);

View File

@ -27,7 +27,7 @@
namespace Scumm {
class BaseScummFile : public File {
class BaseScummFile : public Common::File {
public:
virtual void setEnc(byte value) = 0;

View File

@ -603,7 +603,7 @@ void ScummEngine::initScummVars() {
&& (_platform == Common::kPlatformPC)) {
if (_gameId == GID_LOOM) {
char buf[50];
File f;
Common::File f;
for (int i = 82; i < 86; i++) {
sprintf(buf, "%d.LFL", i);
f.open(buf);
@ -612,7 +612,7 @@ void ScummEngine::initScummVars() {
f.close();
}
} else if (_gameId == GID_MONKEY_EGA) {
File f;
Common::File f;
f.open("DISK09.LEC");
if (f.isOpen() == false)
error("Native MIDI support requires Roland patch from LucasArts");

View File

@ -1713,7 +1713,7 @@ void ScummEngine_v90he::processWizImage(const WizParameters *params) {
break;
case 3:
if (params->processFlags & kWPFUseFile) {
File f;
Common::File f;
// Convert Windows path separators to something more portable
strncpy(buf, (const char *)params->filename, 512);
@ -1722,7 +1722,7 @@ void ScummEngine_v90he::processWizImage(const WizParameters *params) {
buf[i] = '/';
}
if (f.open((const char *)buf, File::kFileReadMode)) {
if (f.open((const char *)buf, Common::File::kFileReadMode)) {
uint32 id = f.readUint32LE();
if (id == TO_LE_32(MKID('AWIZ')) || id == TO_LE_32(MKID('MULT'))) {
uint32 size = f.readUint32BE();
@ -1751,7 +1751,7 @@ void ScummEngine_v90he::processWizImage(const WizParameters *params) {
break;
case 4:
if (params->processFlags & kWPFUseFile) {
File f;
Common::File f;
switch(params->fileWriteMode) {
case 2:
@ -1768,7 +1768,7 @@ void ScummEngine_v90he::processWizImage(const WizParameters *params) {
buf[i] = '/';
}
if (!f.open((const char *)buf, File::kFileWriteMode)) {
if (!f.open((const char *)buf, Common::File::kFileWriteMode)) {
warning("Unable to open for write '%s'", buf);
VAR(119) = -3;
} else {

View File

@ -29,7 +29,7 @@
namespace Simon {
void SimonEngine::loadIconFile() {
File in;
Common::File in;
if (_game & GF_ACORN)
in.open("ICONDATA");
else if (_game & GF_AMIGA)

View File

@ -335,7 +335,7 @@ static int simon1_gmf_size[] = {
17256, 5103, 8794, 4884, 16
};
void MidiPlayer::loadSMF (File *in, int song, bool sfx) {
void MidiPlayer::loadSMF (Common::File *in, int song, bool sfx) {
Common::StackLock lock(_mutex);
MusicInfo *p = sfx ? &_sfx : &_music;
@ -409,7 +409,7 @@ void MidiPlayer::loadSMF (File *in, int song, bool sfx) {
p->parser = parser; // That plugs the power cord into the wall
}
void MidiPlayer::loadMultipleSMF (File *in, bool sfx) {
void MidiPlayer::loadMultipleSMF (Common::File *in, bool sfx) {
// This is a special case for Simon 2 Windows.
// Instead of having multiple sequences as
// separate tracks in a Type 2 file, simon2win
@ -465,7 +465,7 @@ void MidiPlayer::loadMultipleSMF (File *in, bool sfx) {
}
}
void MidiPlayer::loadXMIDI(File *in, bool sfx) {
void MidiPlayer::loadXMIDI(Common::File *in, bool sfx) {
Common::StackLock lock(_mutex);
MusicInfo *p = sfx ? &_sfx : &_music;
clearConstructs(*p);
@ -512,7 +512,7 @@ void MidiPlayer::loadXMIDI(File *in, bool sfx) {
p->parser = parser; // That plugs the power cord into the wall
}
void MidiPlayer::loadS1D (File *in, bool sfx) {
void MidiPlayer::loadS1D (Common::File *in, bool sfx) {
Common::StackLock lock(_mutex);
MusicInfo *p = sfx ? &_sfx : &_music;
clearConstructs(*p);

View File

@ -26,7 +26,9 @@
#include "sound/midiparser.h"
#include "common/mutex.h"
class File;
namespace Common {
class File;
}
namespace Simon {
@ -83,10 +85,10 @@ public:
MidiPlayer (OSystem *system);
virtual ~MidiPlayer();
void loadSMF (File *in, int song, bool sfx = false);
void loadMultipleSMF (File *in, bool sfx = false);
void loadXMIDI (File *in, bool sfx = false);
void loadS1D (File *in, bool sfx = false);
void loadSMF (Common::File *in, int song, bool sfx = false);
void loadMultipleSMF (Common::File *in, bool sfx = false);
void loadXMIDI (Common::File *in, bool sfx = false);
void loadS1D (Common::File *in, bool sfx = false);
void mapMT32toGM (bool map);
void setLoop (bool loop);

View File

@ -97,7 +97,7 @@ static const char *const opcode_arg_table_simon2dos[256] = {
};
void SimonEngine::loadGamePcFile(const char *filename) {
File in;
Common::File in;
int num_inited_objects;
int i, file_size;
@ -164,7 +164,7 @@ void SimonEngine::loadGamePcFile(const char *filename) {
in.close();
}
void SimonEngine::readGamePcText(File *in) {
void SimonEngine::readGamePcText(Common::File *in) {
uint text_size;
byte *text_mem;
@ -178,7 +178,7 @@ void SimonEngine::readGamePcText(File *in) {
setupStringTable(text_mem, _stringTabNum);
}
void SimonEngine::readItemFromGamePc(File *in, Item *item) {
void SimonEngine::readItemFromGamePc(Common::File *in, Item *item) {
uint32 type;
item->unk2 = in->readUint16BE();
@ -199,7 +199,7 @@ void SimonEngine::readItemFromGamePc(File *in, Item *item) {
}
}
void SimonEngine::readItemChildren(File *in, Item *item, uint type) {
void SimonEngine::readItemChildren(Common::File *in, Item *item, uint type) {
if (type == 1) {
uint fr1 = in->readUint16BE();
uint fr2 = in->readUint16BE();
@ -246,14 +246,14 @@ void SimonEngine::readItemChildren(File *in, Item *item, uint type) {
}
}
uint fileReadItemID(File *in) {
uint fileReadItemID(Common::File *in) {
uint32 val = in->readUint32BE();
if (val == 0xFFFFFFFF)
return 0;
return val + 2;
}
byte *SimonEngine::readSingleOpcode(File *in, byte *ptr) {
byte *SimonEngine::readSingleOpcode(Common::File *in, byte *ptr) {
int i, l;
const char *string_ptr;
uint val;

View File

@ -46,6 +46,8 @@
#include "globals.h"
#endif
using Common::File;
struct SimonGameSettings {
const char *name;
const char *description;
@ -128,7 +130,7 @@ DetectedGameList Engine_SIMON_detectGames(const FSList &fslist) {
for (StringSet::const_iterator iter = fileSet.begin(); iter != fileSet.end(); ++iter) {
uint8 md5sum[16];
const char *name = iter->_key.c_str();
if (md5_file(name, md5sum)) {
if (Common::md5_file(name, md5sum)) {
char md5str[32+1];
for (int j = 0; j < 16; j++) {
sprintf(md5str + j*2, "%02x", (int)md5sum[j]);
@ -317,7 +319,7 @@ SimonEngine::SimonEngine(GameDetector *detector, OSystem *syst)
if (f.isOpen() == false)
strcat(buf, ".");
if (md5_file(buf, md5sum)) {
if (Common::md5_file(buf, md5sum)) {
char md5str[32+1];
for (int j = 0; j < 16; j++) {
sprintf(md5str + j*2, "%02x", (int)md5sum[j]);

View File

@ -36,7 +36,7 @@ namespace Simon {
//#define DUMP_FILE_NR 8
//#define DUMP_BITMAPS_FILE_NR 8
uint fileReadItemID(File *in);
uint fileReadItemID(Common::File *in);
#define CHECK_BOUNDS(x, y) assert((uint)(x) < ARRAYSIZE(y))
#define NUM_PALETTE_FADEOUT 32
@ -138,7 +138,7 @@ protected:
FORMAT_VOC
} SoundFormat;
File *_gameFile;
Common::File *_gameFile;
byte *_strippedTxtMem;
uint _textSize;
@ -376,15 +376,15 @@ public:
virtual ~SimonEngine();
protected:
int allocGamePcVars(File *in);
int allocGamePcVars(Common::File *in);
void loginPlayerHelper(Item *item, int a, int b);
void loginPlayer();
void allocateStringTable(int num);
void setupStringTable(byte *mem, int num);
void setupLocalStringTable(byte *mem, int num);
void readGamePcText(File *in);
void readItemChildren(File *in, Item *item, uint tmp);
void readItemFromGamePc(File *in, Item *item);
void readGamePcText(Common::File *in);
void readItemChildren(Common::File *in, Item *item, uint tmp);
void readItemFromGamePc(Common::File *in, Item *item);
void loadGamePcFile(const char *filename);
byte *allocateItem(uint size);
@ -398,11 +398,11 @@ protected:
void allocTablesHeap();
Subroutine *createSubroutine(uint a);
void readSubroutine(File *in, Subroutine *sub);
void readSubroutine(Common::File *in, Subroutine *sub);
SubroutineLine *createSubroutineLine(Subroutine *sub, int a);
void readSubroutineLine(File *in, SubroutineLine *new_table, Subroutine *sub);
byte *readSingleOpcode(File *in, byte *ptr);
void readSubroutineBlock(File *in);
void readSubroutineLine(Common::File *in, SubroutineLine *new_table, Subroutine *sub);
byte *readSingleOpcode(Common::File *in, byte *ptr);
void readSubroutineBlock(Common::File *in);
Subroutine *getSubroutineByID(uint subroutine_id);
@ -524,14 +524,14 @@ protected:
uint loadTextFile(const char *filename, byte *dst);
File *openTablesFile(const char *filename);
void closeTablesFile(File *in);
Common::File *openTablesFile(const char *filename);
void closeTablesFile(Common::File *in);
uint loadTextFile_simon1(const char *filename, byte *dst);
File *openTablesFile_simon1(const char *filename);
Common::File *openTablesFile_simon1(const char *filename);
uint loadTextFile_gme(const char *filename, byte *dst);
File *openTablesFile_gme(const char *filename);
Common::File *openTablesFile_gme(const char *filename);
void invokeTimeEvent(TimeEvent *te);
bool kickoffTimeEvents();

View File

@ -30,6 +30,8 @@
#include "sound/vorbis.h"
#include "sound/wave.h"
using Common::File;
namespace Simon {
#define SOUND_BIG_ENDIAN true

View File

@ -57,7 +57,7 @@ public:
~Sound();
void readSfxFile(const char *filename);
void loadSfxTable(File *gameFile, uint32 base);
void loadSfxTable(Common::File *gameFile, uint32 base);
void readVoiceFile(const char *filename);
void playVoice(uint sound);

View File

@ -118,7 +118,7 @@ static const uint32 turnTableOffsets[] = {
#define TURNTABLE_SIZE (sizeof(turnTableOffsets)/sizeof(uint32))
SkyCompact::SkyCompact(void) {
_cptFile = new File();
_cptFile = new Common::File();
if (!_cptFile->open("sky.cpt")) {
GUI::MessageDialog dialog("Unable to find \"sky.cpt\" file!\n"
"Please download it from www.scummvm.org", "OK", NULL);

View File

@ -26,7 +26,9 @@
#include "sky/struc.h"
#include "sky/skydefs.h"
class File;
namespace Common {
class File;
}
enum CptIds {
CPT_JOEY = 1,
@ -79,7 +81,7 @@ private:
char ***_cptNames;
uint16 **_cptSizes;
uint16 **_cptTypes;
File *_cptFile;
Common::File *_cptFile;
uint32 _resetDataPos;
};

View File

@ -41,8 +41,8 @@ static const char *dinnerFilename = "sky.dnr";
Disk::Disk(const Common::String &gameDataPath) {
_prefRoot = NULL;
_dataDiskHandle = new File();
_dnrHandle = new File();
_dataDiskHandle = new Common::File();
_dnrHandle = new Common::File();
uint32 entriesRead;
@ -404,14 +404,14 @@ void Disk::fnFlushBuffers(void) {
void Disk::dumpFile(uint16 fileNr) {
char buf[128];
File out;
Common::File out;
byte* filePtr;
filePtr = loadFile(fileNr);
sprintf(buf, "dumps/file-%d.dmp", fileNr);
if (!out.exists(buf, "")) {
if (out.open(buf, File::kFileWriteMode, ""))
if (out.open(buf, Common::File::kFileWriteMode, ""))
out.write(filePtr, _lastLoadedFileSize);
}
free(filePtr);

View File

@ -27,7 +27,9 @@
#include "common/str.h"
#include "sky/rnc_deco.h"
class File;
namespace Common {
class File;
}
namespace Sky {
@ -73,8 +75,8 @@ protected:
uint32 _dinnerTableEntries;
uint8 *_dinnerTableArea;
File *_dataDiskHandle;
File *_dnrHandle;
Common::File *_dataDiskHandle;
Common::File *_dnrHandle;
RncDecoder _rncDecoder;
uint16 _buildList[MAX_FILES_IN_LIST];

View File

@ -36,7 +36,7 @@ struct StreamFileFormat {
* Pointer to a function which tries to open a file of type StreamFormat.
* Return NULL in case of an error (invalid/nonexisting file).
*/
AudioStream* (*openStreamFile)(File *file, uint32 size);
AudioStream* (*openStreamFile)(Common::File *file, uint32 size);
};
static const StreamFileFormat STREAM_FILEFORMATS[] = {
@ -66,7 +66,7 @@ AudioStream* AudioStream::openStreamFile(const char *filename)
char *ext = &buffer[len+1];
AudioStream* stream = NULL;
File *fileHandle = new File();
Common::File *fileHandle = new Common::File();
for (int i = 0; i < ARRAYSIZE(STREAM_FILEFORMATS)-1 && stream == NULL; ++i) {
strcpy(ext, STREAM_FILEFORMATS[i].fileExtension);

View File

@ -32,6 +32,10 @@
#define FLAC__NO_DLL // that MS-magic gave me headaches - just link the library you like
#include <FLAC/seekable_stream_decoder.h>
using Common::File;
#pragma mark -
#pragma mark --- Flac stream ---
#pragma mark -

View File

@ -29,11 +29,13 @@
class AudioStream;
class DigitalTrackInfo;
class File;
namespace Common {
class File;
}
DigitalTrackInfo *getFlacTrack(int track);
AudioStream *makeFlacStream(File *file, uint32 size);
AudioStream *makeFlacStream(Common::File *file, uint32 size);
#endif // #ifdef USE_FLAC
#endif // #ifndef SOUND_FLAC_H

View File

@ -30,7 +30,6 @@
class AudioStream;
class Channel;
class File;
class OSystem;
class SoundHandle {

View File

@ -32,6 +32,9 @@
#include <mad.h>
using Common::File;
#pragma mark -
#pragma mark --- MP3 (MAD) stream ---
#pragma mark -

View File

@ -29,11 +29,13 @@
class AudioStream;
class DigitalTrackInfo;
class File;
namespace Common {
class File;
}
DigitalTrackInfo *getMP3Track(int track);
AudioStream *makeMP3Stream(File *file, uint32 size);
AudioStream *makeMP3Stream(Common::File *file, uint32 size);
#endif

View File

@ -74,13 +74,11 @@ public:
int getRate() const { return _outputRate; }
};
typedef File SFile;
class MT32File: public MT32Emu::File {
SFile file;
Common::File file;
public:
bool open(const char *filename, OpenMode mode) {
SFile::AccessMode accessMode = mode == OpenMode_read ? SFile::kFileReadMode : SFile::kFileWriteMode;
Common::File::AccessMode accessMode = mode == OpenMode_read ? Common::File::kFileReadMode : Common::File::kFileWriteMode;
return file.open(filename, accessMode);
}
void close() {
@ -473,7 +471,7 @@ void MidiDriver_ThreadedMT32::onTimer() {
MidiDriver *MidiDriver_MT32_create(SoundMixer *mixer) {
// HACK: It will stay here until engine plugin loader overhaul
if (ConfMan.hasKey("extrapath"))
File::addDefaultDirectory(ConfMan.get("extrapath"));
Common::File::addDefaultDirectory(ConfMan.get("extrapath"));
return new MidiDriver_MT32(mixer);
}

View File

@ -32,9 +32,11 @@
#include <vorbis/vorbisfile.h>
static AudioStream *makeVorbisStream(OggVorbis_File *file, int duration);
using Common::File;
static AudioStream *makeVorbisStream(OggVorbis_File *file, int duration);
#pragma mark -
#pragma mark --- Ogg Vorbis Audio CD emulation ---
#pragma mark -

View File

@ -29,11 +29,13 @@
class AudioStream;
class DigitalTrackInfo;
class File;
namespace Common {
class File;
}
DigitalTrackInfo *getVorbisTrack(int track);
AudioStream *makeVorbisStream(File *file, uint32 size);
AudioStream *makeVorbisStream(Common::File *file, uint32 size);
#endif

View File

@ -108,7 +108,7 @@ void MoviePlayer::play(uint32 id) {
// these sequences are language specific
char sndName[20];
sprintf(sndName, "%s.snd", _sequenceList[id]);
File *oggSource = new File();
Common::File *oggSource = new Common::File();
if (oggSource->open(sndName)) {
SplittedAudioStream *sStream = new SplittedAudioStream();
uint32 numSegs = oggSource->readUint32LE(); // number of audio segments, either 1 or 2.

View File

@ -186,7 +186,7 @@ void Control::askForCd(void) {
_system->setPalette(palOut, 0, 256);
free(palOut);
File test;
Common::File test;
char fName[10];
uint8 textA[50];
sprintf(fName, "cd%d.id", SwordEngine::_systemVars.currentCD);

View File

@ -303,7 +303,7 @@ ArcFile::~ArcFile(void) {
}
bool ArcFile::open(const char *name) {
File arc;
Common::File arc;
if (!arc.open(name))
return false;
_bufPos = _buf = (uint8*)malloc(arc.size());

View File

@ -36,11 +36,11 @@
namespace Sword1 {
WaveAudioStream *makeWaveStream(File *source, uint32 size) {
WaveAudioStream *makeWaveStream(Common::File *source, uint32 size) {
return new WaveAudioStream(source, size);
}
WaveAudioStream::WaveAudioStream(File *source, uint32 pSize) {
WaveAudioStream::WaveAudioStream(Common::File *source, uint32 pSize) {
int rate, size;
byte flags;

View File

@ -43,14 +43,14 @@ enum MusicMode {
class WaveAudioStream : public AudioStream {
public:
WaveAudioStream(File *source, uint32 pSize);
WaveAudioStream(Common::File *source, uint32 pSize);
virtual ~WaveAudioStream();
virtual int readBuffer(int16 *buffer, const int numSamples);
virtual bool isStereo(void) const { return _isStereo; };
virtual bool endOfData(void) const;
virtual int getRate(void) const { return _rate; };
private:
File *_sourceFile;
Common::File *_sourceFile;
uint8 *_sampleBuf;
uint32 _rate;
bool _isStereo;
@ -60,7 +60,7 @@ private:
class MusicHandle : public AudioStream {
private:
File _file;
Common::File _file;
bool _looping;
int32 _fading;
int32 _fadeSamples;

View File

@ -79,7 +79,7 @@ ResMan::~ResMan(void) {
}
void ResMan::loadCluDescript(const char *fileName) {
File file;
Common::File file;
file.open(fileName);
if (!file.isOpen()) {
@ -205,8 +205,8 @@ void *ResMan::openFetchRes(uint32 id) {
void ResMan::dumpRes(uint32 id) {
char outn[30];
sprintf(outn, "DUMP%08X.BIN", id);
File outf;
if (outf.open(outn, File::kFileWriteMode)) {
Common::File outf;
if (outf.open(outn, Common::File::kFileWriteMode)) {
resOpen(id);
MemHandle *memHandle = resHandle(id);
outf.write(memHandle->data, memHandle->size);
@ -253,7 +253,7 @@ void ResMan::resOpen(uint32 id) { // load resource ID into memory
if (memHandle->cond == MEM_FREED) { // memory has been freed
uint32 size = resLength(id);
_memMan->alloc(memHandle, size);
File *clusFile = resFile(id);
Common::File *clusFile = resFile(id);
assert(clusFile);
clusFile->seek( resOffset(id) );
clusFile->read( memHandle->data, size);
@ -288,7 +288,7 @@ FrameHeader *ResMan::fetchFrame(void *resourceData, uint32 frameNo) {
return (FrameHeader*)frameFile;
}
File *ResMan::resFile(uint32 id) {
Common::File *ResMan::resFile(uint32 id) {
Clu *cluster = _prj.clu + ((id >> 24) - 1);
if (cluster->file == NULL) {
_openClus++;
@ -298,7 +298,7 @@ File *ResMan::resFile(uint32 id) {
_openCluEnd->nextOpen = cluster;
_openCluEnd = cluster;
}
cluster->file = new File();
cluster->file = new Common::File();
char fileName[15];
sprintf(fileName, "%s.CLU", _prj.clu[(id >> 24)-1].label);
cluster->file->open(fileName);

View File

@ -40,7 +40,7 @@ struct Grp {
struct Clu {
uint32 refCount;
File *file;
Common::File *file;
char label[MAX_LABEL_SIZE];
uint32 noGrp;
Grp *grp;
@ -70,7 +70,7 @@ private:
uint32 resLength(uint32 id);
MemHandle *resHandle(uint32 id);
uint32 resOffset(uint32 id);
File *resFile(uint32 id);
Common::File *resFile(uint32 id);
void openCptResourceBigEndian(uint32 id);
void openScriptResourceBigEndian(uint32 id);

View File

@ -96,7 +96,7 @@ private:
void calcWaveVolume(int16 *data, uint32 length);
bool _waveVolume[WAVE_VOL_TAB_LENGTH];
uint16 _waveVolPos;
File _cowFile;
Common::File _cowFile;
uint32 *_cowHeader;
uint32 _cowHeaderSize;
uint8 _currentCowFile;

View File

@ -131,14 +131,14 @@ SwordEngine::SwordEngine(GameDetector *detector, OSystem *syst)
warning("Sound initialization failed");
// Add default file directories
File::addDefaultDirectory(_gameDataPath + "CLUSTERS/");
File::addDefaultDirectory(_gameDataPath + "MUSIC/");
File::addDefaultDirectory(_gameDataPath + "SPEECH/");
File::addDefaultDirectory(_gameDataPath + "VIDEO/");
File::addDefaultDirectory(_gameDataPath + "clusters/");
File::addDefaultDirectory(_gameDataPath + "music/");
File::addDefaultDirectory(_gameDataPath + "speech/");
File::addDefaultDirectory(_gameDataPath + "video/");
Common::File::addDefaultDirectory(_gameDataPath + "CLUSTERS/");
Common::File::addDefaultDirectory(_gameDataPath + "MUSIC/");
Common::File::addDefaultDirectory(_gameDataPath + "SPEECH/");
Common::File::addDefaultDirectory(_gameDataPath + "VIDEO/");
Common::File::addDefaultDirectory(_gameDataPath + "clusters/");
Common::File::addDefaultDirectory(_gameDataPath + "music/");
Common::File::addDefaultDirectory(_gameDataPath + "speech/");
Common::File::addDefaultDirectory(_gameDataPath + "video/");
}
SwordEngine::~SwordEngine() {
@ -334,7 +334,7 @@ void SwordEngine::showFileErrorMsg(uint8 type, bool *fileExists) {
}
void SwordEngine::checkCdFiles(void) { // check if we're running from cd, hdd or what...
File test;
Common::File test;
bool fileExists[30];
bool isFullVersion = false; // default to demo version
bool missingTypes[8] = { false, false, false, false, false, false, false, false };

View File

@ -698,7 +698,7 @@ void Screen::rollCredits() {
// now, let's just the standard speech font instead.
SpriteInfo spriteInfo;
File f;
Common::File f;
int i;
// Read the "Smacker" logo

View File

@ -40,7 +40,7 @@
namespace Sword2 {
static AudioStream *makeCLUStream(File *fp, int size);
static AudioStream *makeCLUStream(Common::File *fp, int size);
static AudioStream *getAudioStream(SoundFileHandle *fh, const char *base, int cd, uint32 id, uint32 *numSamples) {
if (!fh->file->isOpen()) {
@ -64,7 +64,7 @@ static AudioStream *getAudioStream(SoundFileHandle *fh, const char *base, int cd
char filename[20];
for (int i = 0; i < ARRAYSIZE(file_types); i++) {
File f;
Common::File f;
sprintf(filename, "%s%d.%s", base, cd, file_types[i].ext);
if (f.open(filename)) {
@ -156,7 +156,7 @@ static AudioStream *getAudioStream(SoundFileHandle *fh, const char *base, int cd
#define GetCompressedSign(n) (((n) >> 3) & 1)
#define GetCompressedAmplitude(n) ((n) & 7)
CLUInputStream::CLUInputStream(File *file, int size)
CLUInputStream::CLUInputStream(Common::File *file, int size)
: _file(file), _firstTime(true), _bufferEnd(_outbuf + BUFFER_SIZE) {
_file->incRef();
@ -226,7 +226,7 @@ void CLUInputStream::refill() {
_bufferEnd = out;
}
AudioStream *makeCLUStream(File *file, int size) {
AudioStream *makeCLUStream(Common::File *file, int size) {
return new CLUInputStream(file, size);
}

View File

@ -68,7 +68,7 @@ ResourceManager::ResourceManager(Sword2Engine *vm) {
// within the clusters at this point it makes no difference. We only
// wish to know what resource files there are and what is in each
File file;
Common::File file;
uint32 size;
byte *temp;
@ -418,7 +418,7 @@ byte *ResourceManager::openResource(uint32 res, bool dump) {
// care which CD it's on. But if we can't find it, keep asking
// for the CD until we do.
File *file = openCluFile(cluFileNum);
Common::File *file = openCluFile(cluFileNum);
if (_resFiles[cluFileNum].entryTab == NULL) {
// we didn't read from this file before, get its index table
@ -443,7 +443,7 @@ byte *ResourceManager::openResource(uint32 res, bool dump) {
StandardHeader *header = (StandardHeader *) _resList[res].ptr;
char buf[256];
const char *tag;
File out;
Common::File out;
switch (header->fileType) {
case ANIMATION_FILE:
@ -497,7 +497,7 @@ byte *ResourceManager::openResource(uint32 res, bool dump) {
#endif
if (!out.exists(buf, "")) {
if (out.open(buf, File::kFileWriteMode, ""))
if (out.open(buf, Common::File::kFileWriteMode, ""))
out.write(_resList[res].ptr, len);
}
}
@ -563,8 +563,8 @@ void ResourceManager::addToCacheList(Resource *res) {
_cacheEnd = res;
}
File *ResourceManager::openCluFile(uint16 fileNum) {
File *file = new File;
Common::File *ResourceManager::openCluFile(uint16 fileNum) {
Common::File *file = new Common::File;
while (!file->open(_resFiles[fileNum].fileName)) {
// HACK: We have to check for this, or it'll be impossible to
// quit while the game is asking for the user to insert a CD.
@ -585,7 +585,7 @@ File *ResourceManager::openCluFile(uint16 fileNum) {
return file;
}
void ResourceManager::readCluIndex(uint16 fileNum, File *file) {
void ResourceManager::readCluIndex(uint16 fileNum, Common::File *file) {
if (_resFiles[fileNum].entryTab == NULL) {
// we didn't read from this file before, get its index table
if (file == NULL)

View File

@ -21,7 +21,9 @@
#ifndef RESMAN_H
#define RESMAN_H
class File;
namespace Common {
class File;
}
#define MAX_MEM_CACHE (8 * 1024 * 1024) // we keep up to 8 megs of resource data files in memory
#define MAX_res_files 20
@ -54,8 +56,8 @@ struct ResourceFile {
class ResourceManager {
private:
File *openCluFile(uint16 fileNum);
void readCluIndex(uint16 fileNum, File *file = NULL);
Common::File *openCluFile(uint16 fileNum);
void readCluIndex(uint16 fileNum, Common::File *file = NULL);
void removeFromCacheList(Resource *res);
void addToCacheList(Resource *res);
void checkMemUsage();

View File

@ -53,14 +53,14 @@ Sound::Sound(Sword2Engine *vm) {
for (i = 0; i < MAXMUS; i++) {
_music[i] = NULL;
_musicFile[i].file = new File;
_musicFile[i].file = new Common::File;
_musicFile[i].idxTab = NULL;
_musicFile[i].idxLen = 0;
_musicFile[i].fileSize = 0;
_musicFile[i].fileType = 0;
_musicFile[i].inUse = false;
_speechFile[i].file = new File;
_speechFile[i].file = new Common::File;
_speechFile[i].idxTab = NULL;
_speechFile[i].idxLen = 0;
_speechFile[i].fileSize = 0;

View File

@ -80,7 +80,7 @@ enum {
class CLUInputStream : public AudioStream {
private:
File *_file;
Common::File *_file;
bool _firstTime;
uint32 _file_pos;
uint32 _end_pos;
@ -98,7 +98,7 @@ private:
}
public:
CLUInputStream(File *file, int size);
CLUInputStream(Common::File *file, int size);
~CLUInputStream();
int readBuffer(int16 *buffer, const int numSamples);
@ -109,7 +109,7 @@ public:
};
struct SoundFileHandle {
File *file;
Common::File *file;
uint32 *idxTab;
uint32 idxLen;
uint32 fileSize;
@ -120,7 +120,7 @@ struct SoundFileHandle {
class MusicInputStream : public AudioStream {
private:
int _cd;
//File *_file;
//Common::File *_file;
SoundFileHandle *_fh;
uint32 _musicId;
AudioStream *_decoder;
@ -201,7 +201,7 @@ private:
SoundHandle _soundHandleSpeech;
MusicInputStream *_music[MAXMUS];
//File _musicFile[MAXMUS];
//Common::File _musicFile[MAXMUS];
SoundFileHandle _musicFile[MAXMUS];
SoundFileHandle _speechFile[MAXMUS];

View File

@ -40,7 +40,7 @@ bool Sword2Engine::initStartMenu() {
// We query each in turn and setup an array of start structures.
// If the file doesn't exist then we say so and return a 0.
File fp;
Common::File fp;
// ok, load in the master screen manager file

View File

@ -109,12 +109,12 @@ namespace Sword2 {
Sword2Engine::Sword2Engine(GameDetector *detector, OSystem *syst) : Engine(syst) {
// Add default file directories
File::addDefaultDirectory(_gameDataPath + "CLUSTERS/");
File::addDefaultDirectory(_gameDataPath + "SWORD2/");
File::addDefaultDirectory(_gameDataPath + "VIDEO/");
File::addDefaultDirectory(_gameDataPath + "clusters/");
File::addDefaultDirectory(_gameDataPath + "sword2/");
File::addDefaultDirectory(_gameDataPath + "video/");
Common::File::addDefaultDirectory(_gameDataPath + "CLUSTERS/");
Common::File::addDefaultDirectory(_gameDataPath + "SWORD2/");
Common::File::addDefaultDirectory(_gameDataPath + "VIDEO/");
Common::File::addDefaultDirectory(_gameDataPath + "clusters/");
Common::File::addDefaultDirectory(_gameDataPath + "sword2/");
Common::File::addDefaultDirectory(_gameDataPath + "video/");
_features = detector->_game.features;
_targetName = detector->_targetName;