mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-13 12:39:56 +00:00
Add FF table.
svn-id: r18948
This commit is contained in:
parent
ccaaeecc1c
commit
e91503cb1c
@ -160,14 +160,17 @@ enum {
|
||||
|
||||
enum {
|
||||
GAME_SIMON1DOS = GF_SIMON1 | GF_OLD_BUNDLE,
|
||||
GAME_SIMON2DOS = GF_SIMON2,
|
||||
GAME_SIMON1TALKIE = GF_SIMON1 | GF_TALKIE,
|
||||
GAME_SIMON2TALKIE = GF_SIMON2 | GF_TALKIE,
|
||||
GAME_SIMON2WIN = GF_SIMON2 | GF_WIN | GF_TALKIE,
|
||||
GAME_SIMON1DEMO = GF_SIMON1 | GF_DEMO | GF_OLD_BUNDLE,
|
||||
GAME_SIMON1AMIGA = GF_SIMON1 | GF_AMIGA | GF_OLD_BUNDLE,
|
||||
GAME_SIMON1CD32 = GF_SIMON1 | GF_TALKIE | GF_AMIGA | GF_OLD_BUNDLE,
|
||||
GAME_SIMON1ACORN = GF_SIMON1 | GF_TALKIE | GF_ACORN
|
||||
GAME_SIMON1ACORN = GF_SIMON1 | GF_TALKIE | GF_ACORN,
|
||||
GAME_SIMON1TALKIE = GF_SIMON1 | GF_TALKIE,
|
||||
|
||||
GAME_SIMON2DOS = GF_SIMON2,
|
||||
GAME_SIMON2TALKIE = GF_SIMON2 | GF_TALKIE,
|
||||
GAME_SIMON2WIN = GF_SIMON2 | GF_WIN | GF_TALKIE,
|
||||
|
||||
GAME_FEEBLEFILES = GF_SIMON2 | GF_WIN | GF_TALKIE | GF_OLD_BUNDLE
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -96,6 +96,23 @@ static const char *const opcode_arg_table_simon2dos[256] = {
|
||||
" ", " ", "BT ", " ", "B "
|
||||
};
|
||||
|
||||
static const char *const opcode_arg_table_feeblefiles[256] = {
|
||||
" ", "I ", "I ", "I ", "I ", "I ", "I ", "II ", "II ", "II ", "II ", "B ", "B ", "BN ", "BN ",
|
||||
"BN ", "BN ", "BB ", "BB ", "BB ", "BB ", "II ", "II ", "N ", "I ", "I ", "I ", "IN ", "IB ",
|
||||
"II ", "I ", "I ", "II ", "II ", "IBB ", "BIB ", "BB ", "B ", "BI ", "IB ", "B ", "B ", "BN ",
|
||||
"BN ", "BN ", "BB ", "BB ", "BN ", "BN ", "BB ", "BB ", "BN ", "BB ", "BN ", "B ", "I ", "IB ",
|
||||
"IB ", "II ", "I ", "I ", "IN ", "B ", "T ", "T ", "NNNNNB ", "BT ", "BTS ", "T ", " ", "B ",
|
||||
"N ", "IBN ", "I ", "I ", "I ", "NN ", " ", " ", "IT ", "II ", "I ", "B ", " ", "IB ", "IBB ",
|
||||
"IIB ", "T ", " ", " ", "IB ", "IB ", "IB ", "B ", "BB ", "IBB ", "NB ", "N ", "NNBNNN ", "NN ",
|
||||
" ", "BNNNNNN ", "B ", " ", "B ", "B ", "BB ", "NNNNNIN ", "N ", "N ", "N ", "NNN ", "NBNN ",
|
||||
"IBNN ", "IB ", "IB ", "IB ", "IB ", "N ", "N ", "N ", "BI ", " ", " ", "N ", "I ", "IBB ",
|
||||
"NNB ", "N ", "N ", "Ban ", " ", " ", " ", " ", " ", "IB ", "B ", " ", "II ", " ", "BI ",
|
||||
"N ", "I ", "IB ", "IB ", "IB ", "IB ", "IB ", "IB ", "IB ", "BI ", "BB ", "B ", "B ", "B ",
|
||||
"B ", "IBB ", "IBN ", "IB ", "B ", "BNNN ", "BBTS ", "N ", " ", "Ian ", "B ", "B ", "B ", "B ",
|
||||
"T ", "N ", " ", " ", "I ", " ", " ", "BBI ", "NNBB ", "BBB ", " ", " ", "T ", " ", "N ", "N ",
|
||||
" ", " ", "BT ", " ", "B ", " ", "BBBB ", " ", " ", "BBBB ", "B ", "B ", "B ", "B "
|
||||
};
|
||||
|
||||
void SimonEngine::loadGamePcFile(const char *filename) {
|
||||
Common::File in;
|
||||
int num_inited_objects;
|
||||
@ -148,6 +165,9 @@ void SimonEngine::loadGamePcFile(const char *filename) {
|
||||
_tablesHeapPtrOrg = _tablesHeapPtr;
|
||||
_tablesHeapCurPosOrg = _tablesHeapCurPos;
|
||||
|
||||
if (_game == GAME_FEEBLEFILES)
|
||||
return;
|
||||
|
||||
/* Read list of TEXT resources */
|
||||
if (_game == GAME_SIMON1ACORN)
|
||||
in.open("STRIPPED");
|
||||
@ -260,7 +280,9 @@ byte *SimonEngine::readSingleOpcode(Common::File *in, byte *ptr) {
|
||||
|
||||
const char *const *table;
|
||||
|
||||
if ((_game & GF_SIMON2) && (_game & GF_TALKIE))
|
||||
if (_game == GAME_FEEBLEFILES) {
|
||||
table = opcode_arg_table_feeblefiles;
|
||||
} else if ((_game & GF_SIMON2) && (_game & GF_TALKIE))
|
||||
table = opcode_arg_table_simon2win;
|
||||
else if (_game & GF_SIMON2)
|
||||
table = opcode_arg_table_simon2dos;
|
||||
|
@ -496,7 +496,7 @@ char *SimonEngine::gen_savename(int slot) {
|
||||
}
|
||||
|
||||
bool SimonEngine::load_game(uint slot) {
|
||||
char ident[18];
|
||||
char ident[100];
|
||||
Common::InSaveFile *f;
|
||||
uint num, item_index, i, j;
|
||||
|
||||
@ -508,7 +508,11 @@ bool SimonEngine::load_game(uint slot) {
|
||||
return false;
|
||||
}
|
||||
|
||||
f->read(ident, 18);
|
||||
if (_game == GAME_FEEBLEFILES) {
|
||||
f->read(ident, 18);
|
||||
} else {
|
||||
f->read(ident, 100);
|
||||
}
|
||||
|
||||
num = f->readUint32BE();
|
||||
|
||||
|
@ -75,6 +75,7 @@ static const SimonGameSettings simon_settings[] = {
|
||||
{"simon2mac", "Simon the Sorcerer 2 Talkie (Amiga or Mac)", GAME_SIMON2WIN, 0},
|
||||
{"simon1cd32", "Simon the Sorcerer 1 Talkie (Amiga CD32)", GAME_SIMON1CD32, "gameamiga"},
|
||||
{"simon1demo", "Simon the Sorcerer 1 (DOS Demo)", GAME_SIMON1DEMO, "GDEMO"},
|
||||
{"ff", "The Feeble Files", GAME_FEEBLEFILES, "GAME22"},
|
||||
|
||||
{NULL, NULL, 0, NULL}
|
||||
};
|
||||
@ -261,6 +262,20 @@ static const GameSpecificSettings simon2dos_settings = {
|
||||
"", // flac_effects_filename
|
||||
"GAME32", // gamepc_filename
|
||||
};
|
||||
|
||||
static const GameSpecificSettings feeblefiles_settings = {
|
||||
"", // gme_filename
|
||||
"", // wav_filename
|
||||
"", // voc_filename
|
||||
"", // mp3_filename
|
||||
"", // vorbis_filename
|
||||
"", // flac_filename
|
||||
"", // voc_effects_filename
|
||||
"", // mp3_effects_filename
|
||||
"", // vorbis_effects_filename
|
||||
"", // flac_effects_filename
|
||||
"GAME22", // gamepc_filename
|
||||
};
|
||||
#endif
|
||||
|
||||
static const char* bad_versions[3] = {
|
||||
@ -378,7 +393,9 @@ SimonEngine::SimonEngine(GameDetector *detector, OSystem *syst)
|
||||
}
|
||||
|
||||
_language = Common::parseLanguage(ConfMan.get("language"));
|
||||
if (_game & GF_SIMON2) {
|
||||
if (_game == GAME_FEEBLEFILES) {
|
||||
gss = PTR(feeblefiles_settings);
|
||||
} else if (_game & GF_SIMON2) {
|
||||
if (_game & GF_TALKIE) {
|
||||
gss = PTR(simon2win_settings);
|
||||
|
||||
@ -1367,9 +1384,9 @@ void SimonEngine::loadTablesIntoMem(uint subr_id) {
|
||||
readSubroutineBlock(in);
|
||||
closeTablesFile(in);
|
||||
|
||||
if (_game & GF_SIMON2) {
|
||||
if (_game == GAME_SIMON2DOS || _game == GAME_SIMON2WIN) {
|
||||
_sound->loadSfxTable(_gameFile, _gameOffsetsPtr[atoi(filename + 6) - 1 + SOUND_INDEX_BASE]);
|
||||
} else if (_game & GF_TALKIE) {
|
||||
} else if (_game == GAME_SIMON1TALKIE) {
|
||||
memcpy(filename, "SFXXXX", 6);
|
||||
_sound->readSfxFile(filename);
|
||||
}
|
||||
@ -3815,7 +3832,8 @@ void SimonEngine::openGameFile() {
|
||||
#endif
|
||||
}
|
||||
|
||||
loadIconFile();
|
||||
if (_game != GAME_FEEBLEFILES)
|
||||
loadIconFile();
|
||||
|
||||
vc34_setMouseOff();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user