0, AD_ENTRY1s("WESTERN", "1c85e82712d24f1d5c1ea2a66ddd75c2", 47730038), Common::DE_DEU, Common::kPlatformDOS, ADGF_DEMO, GUIO1(GUIO_NONE) }, }, { AD_TABLE_END_MARKER } }; } // End of namespace Toltecs static const ExtraGuiOption toltecsExtraGuiOption = { _s("Use original save/load screens"), _s("Use the original save/load screens, instead of the ScummVM ones"), "originalsaveload", false }; class ToltecsMetaEngine : public AdvancedMetaEngine { public: ToltecsMetaEngine() : AdvancedMetaEngine(Toltecs::gameDescriptions, sizeof(Toltecs::ToltecsGameDescription), toltecsGames) { _singleid = "toltecs"; } virtual const char *getName() const { return "Toltecs Engine"; }
const char *getName() const { return _s("Apple II GS Emulator (NOT IMPLEMENTED)"); }
const char *getPlatformDescription(Platform id) { const PlatformDescription *l = g_platforms; for (; l->code; ++l) { if (l->id == id) return l->description; } return l->description; } #pragma mark - const RenderModeDescription g_renderModes[] = { { "hercGreen", _s("Hercules Green"), kRenderHercG }, { "hercAmber", _s("Hercules Amber"), kRenderHercA }, { "cga", "CGA", kRenderCGA }, { "ega", "EGA", kRenderEGA }, { "amiga", "Amiga", kRenderAmiga }, {0, 0, kRenderDefault} }; DECLARE_TRANSLATION_ADDITIONAL_CONTEXT("Hercules Green", "lowres") DECLARE_TRANSLATION_ADDITIONAL_CONTEXT("Hercules Amber", "lowres") RenderMode parseRenderMode(const String &str) { if (str.empty()) return kRenderDefault; const RenderModeDescription *l = g_renderModes;
namespace GUI { // SumthinWicked says: we either split our Actions like WinCE did with Pocket/Smartphone // or we put them in this file separated by #ifdefs, this one is up to you, AnotherGuest :) const Common::String actionNames[] = { _s("Up"), _s("Down"), _s("Left"), _s("Right"), _s("Left Click"), _s("Right Click"), _s("Save"), _s("Skip"), _s("Zone"), _s("Multi Function"), _s("Swap character"), _s("Skip text"), _s("Pause"), _s("Fast mode"), _s("Quit"), _s("Debugger"), _s("Global menu"), _s("Virtual keyboard"), _s("Key mapper") }; #ifdef UIQ static const int ACTIONS_DEFAULT[ACTION_LAST] = { SDLK_UP, SDLK_DOWN, SDLK_LEFT, SDLK_RIGHT, SDLK_F1, SDLK_F2, SDLK_F5, SDLK_PAGEDOWN, '9', 0, 0, SDLK_PAGEUP, 0, 0, 0, 0, 0, 0, 0}; #elif defined(S60) const int ACTIONS_DEFAULT[ACTION_LAST] = { 0, 0, 0, 0, 0, 0, '*', '#', '9', 0, 0, 0, 0, 0, 0, 0, '0', 0, 0}; #elif defined(S90) const int ACTIONS_DEFAULT[ACTION_LAST] = { SDLK_UP, SDLK_DOWN, SDLK_LEFT, SDLK_RIGHT, 0, 0, SDLK_MENU, SDLK_ESCAPE, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0 ,0}; #else const int ACTIONS_DEFAULT[ACTION_LAST] = { SDLK_UP, SDLK_DOWN, SDLK_LEFT, SDLK_RIGHT, SDLK_F1, SDLK_F2, SDLK_MENU, SDLK_ESCAPE, 0, 0, 0, 0, 0, 0, 0, 0, '1', 0 ,0}; #endif // creator function according to Factory Pattern void SymbianActions::init() { _instance = new SymbianActions(); } Common::String SymbianActions::actionName(ActionType action) { return _(actionNames[action]); } int SymbianActions::size() { return ACTION_LAST; } Common::String SymbianActions::domain() { return Common::ConfigManager::kApplicationDomain; } int SymbianActions::version() { return ACTION_VERSION; } SymbianActions::SymbianActions() : Actions() { int i; for (i = 0; i < ACTION_LAST; i++) { _action_mapping[i] = ACTIONS_DEFAULT[i]; _action_enabled[i] = false; } } void SymbianActions::initInstanceMain(OSystem *mainSystem) { int i; // Need to do this since all old mappings are reset after engineDone _initialized = false; Actions::initInstanceMain(mainSystem); // Disable all mappings before setting main mappings again for (i = 0; i < ACTION_LAST; i++) { _action_enabled[i] = false; } // Mouse Up _action_enabled[ACTION_UP] = true; // Mouse Down _action_enabled[ACTION_DOWN] = true; // Mouse Left _action_enabled[ACTION_LEFT] = true; // Mouse Right _action_enabled[ACTION_RIGHT] = true; // Left Click _action_enabled[ACTION_LEFTCLICK] = true; // Right Click _action_enabled[ACTION_RIGHTCLICK] = true; // Skip _action_enabled[ACTION_SKIP] = true; _key_action[ACTION_SKIP].setKey(SDLK_ESCAPE); // Enable keymappings _action_enabled[ACTION_KEYMAPPER] = true; _key_action[ACTION_KEYMAPPER].setKey(Common::ASCII_F8, Common::KEYCODE_F8); // Enable VKB _action_enabled[ACTION_VKB] = true; _key_action[ACTION_VKB].setKey(Common::ASCII_F7, Common::KEYCODE_F7); } void SymbianActions::initInstanceGame() { Common::String gameid(ConfMan.get("gameid")); bool is_simon = (strncmp(gameid.c_str(), "simon", 5) == 0); bool is_sword1 = (gameid == "sword1"); bool is_sword2 = (strcmp(gameid.c_str(), "sword2") == 0); bool is_queen = (gameid == "queen"); bool is_sky = (gameid == "sky"); bool is_comi = (strncmp(gameid.c_str(), "comi", 4) == 0); bool is_gob = (strncmp(gameid.c_str(), "gob", 3) == 0); bool is_saga = (gameid == "saga"); bool is_kyra = (strncmp(gameid.c_str(), "kyra",4) == 0); bool is_samnmax = (gameid == "samnmax"); bool is_cine = (gameid == "cine"); bool is_touche = (gameid == "touche"); bool is_agi = (gameid == "agi"); bool is_parallaction = (gameid == "parallaction"); bool is_lure = (gameid == "lure"); bool is_feeble = (gameid == "feeble"); bool is_drascula = (strncmp(gameid.c_str(), "drascula",8) == 0); bool is_tucker = (gameid == "tucker"); bool is_groovie = (gameid == "groovie"); bool is_tinsel = (gameid == "tinsel"); bool is_cruise = (gameid == "cruise"); bool is_made = (gameid == "made"); Actions::initInstanceGame(); // Initialize keys for different actions // Pause if(is_cruise) { _key_action[ACTION_PAUSE].setKey('P'); } else { _key_action[ACTION_PAUSE].setKey(' '); } _action_enabled[ACTION_PAUSE] = true; // Save if (is_simon || is_sword2 || is_gob || is_kyra || is_feeble || is_tucker || is_groovie) _action_enabled[ACTION_SAVE] = false; else { _action_enabled[ACTION_SAVE] = true; if (is_queen) { _key_action[ACTION_SAVE].setKey(Common::ASCII_F1, Common::KEYCODE_F1); // F1 key for FOTAQ } else if (is_sky) { _key_action[ACTION_SAVE].setKey(Common::ASCII_F5, Common::KEYCODE_F5); } else if (is_cine || is_drascula || is_cruise) { _key_action[ACTION_SAVE].setKey(Common::ASCII_F10, Common::KEYCODE_F10); // F10 } else if (is_agi) { _key_action[ACTION_SAVE].setKey(Common::ASCII_ESCAPE, Common::KEYCODE_ESCAPE); } else if (is_parallaction) { _key_action[ACTION_SAVE].setKey('s', Common::KEYCODE_s); } else if (is_tinsel) { _key_action[ACTION_SAVE].setKey(Common::ASCII_F1, SDLK_F1); } else { _key_action[ACTION_SAVE].setKey(Common::ASCII_F5, Common::KEYCODE_F5); // F5 key } } // Quit _action_enabled[ACTION_QUIT] = true; // Skip text if (!is_cine && !is_parallaction && !is_groovie && !is_cruise && !is_made) _action_enabled[ACTION_SKIP_TEXT] = true; if (is_simon || is_sky || is_sword2 || is_queen || is_sword1 || is_gob || is_tinsel || is_saga || is_kyra || is_touche || is_lure || is_feeble || is_drascula || is_tucker) _key_action[ACTION_SKIP_TEXT].setKey(Common::KEYCODE_ESCAPE, Common::KEYCODE_ESCAPE); // Escape key else { _key_action[ACTION_SKIP_TEXT].setKey(SDLK_PERIOD); } // Enable fast mode _action_enabled[ACTION_FASTMODE] = true; _key_action[ACTION_FASTMODE].setKey('f', Common::KEYCODE_f, KMOD_CTRL); // Swap character _action_enabled[ACTION_SWAPCHAR] = true; _key_action[ACTION_SWAPCHAR].setKey('b'); // b // Zone _action_enabled[ACTION_ZONE] = true; // Multi function key _action_enabled[ACTION_MULTI] = true; if (is_agi) _key_action[ACTION_MULTI].setKey(SDLK_PAUSE); // agi: show predictive dialog else if (is_gob) _key_action[ACTION_MULTI].setKey(Common::ASCII_F1, Common::KEYCODE_F1); // bargon : F1 to start else if (gameid == "atlantis") _key_action[ACTION_MULTI].setKey('0', Common::KEYCODE_KP0); // fate of atlantis : Ins to sucker-punch else _key_action[ACTION_MULTI].setKey('V', SDLK_v, KMOD_SHIFT); // FT cheat : shift-V // Enable debugger _action_enabled[ACTION_DEBUGGER] = true; _key_action[ACTION_DEBUGGER].setKey('d', Common::KEYCODE_d, KMOD_CTRL); // Enable global menu _action_enabled[ACTION_MAINMENU] = true; _key_action[ACTION_MAINMENU].setKey(Common::ASCII_F5, Common::KEYCODE_F5, KMOD_CTRL); } SymbianActions::~SymbianActions() { } bool SymbianActions::perform(ActionType /*action*/, bool /*pushed*/) { return false; } } // namespace GUI
GUIO1(GUIO_NONE) }, 0, 0, 0, 0, }, #endif { AD_TABLE_END_MARKER, 0, 0, 0, 0 } }; } // End of namespace Neverhood static const ExtraGuiOption neverhoodExtraGuiOption1 = { _s("Use original save/load screens"), _s("Use the original save/load screens, instead of the ScummVM ones"), "originalsaveload", false }; static const ExtraGuiOption neverhoodExtraGuiOption2 = { _s("Skip the Hall of Records storyboard scenes"), _s("Allows the player to skip past the Hall of Records storyboard scenes"), "skiphallofrecordsscenes", false }; static const ExtraGuiOption neverhoodExtraGuiOption3 = { _s("Scale the making of videos to full screen"), _s("Scale the making of videos, so that they use the whole screen"),
namespace Adl { // Mystery House was designed for monochrome display, so we default to // monochrome mode there. All the other games default to color mode. #define GAMEOPTION_COLOR_DEFAULT_OFF GUIO_GAMEOPTIONS1 #define GAMEOPTION_SCANLINES GUIO_GAMEOPTIONS2 #define GAMEOPTION_COLOR_DEFAULT_ON GUIO_GAMEOPTIONS3 static const ADExtraGuiOptionsMap optionsList[] = { { GAMEOPTION_COLOR_DEFAULT_OFF, { _s("Color mode"), _s("Use color graphics"), "color", false } }, { GAMEOPTION_COLOR_DEFAULT_ON, { _s("Color mode"), _s("Use color graphics"), "color", true } }, { GAMEOPTION_SCANLINES, { _s("Scanlines"), _s("Show scanlines"), "scanlines", false } }, AD_EXTRA_GUI_OPTIONS_TERMINATOR }; static const PlainGameDescriptor adlGames[] = { { "hires0", "Hi-Res Adventure #0: Mission Asteroid" }, { "hires1", "Hi-Res Adventure #1: Mystery House" }, { "hires2", "Hi-Res Adventure #2: Wizard and the Princess" }, { "hires3", "Hi-Res Adventure #3: Cranston Manor" }, { "hires4", "Hi-Res Adventure #4: Ulysses and the Golden Fleece" }, { "hires5", "Hi-Res Adventure #5: Time Zone" }, { "hires6", "Hi-Res Adventure #6: The Dark Crystal" }, { 0, 0 } }; struct AdlGameDescription { ADGameDescription desc; GameType gameType; GameVersion version; }; static const AdlGameDescription gameFileDescriptions[] = { { // Hi-Res Adventure #1: Mystery House - Apple II - Contains Simi Valley address { "hires1", 0, { { "ADVENTURE", 0, "22d9e63a11d69fa033ba1738715ad09a", 29952 }, { "AUTO LOAD OBJ", 0, "a2ab7be25842e1fa9f1343b0894a8b6f", 4095 }, AD_LISTEND }, Common::EN_ANY, Common::kPlatformApple2, ADGF_NO_FLAGS, GUIO2(GAMEOPTION_COLOR_DEFAULT_OFF, GAMEOPTION_SCANLINES) }, GAME_TYPE_HIRES1, GAME_VER_HR1_SIMI }, { // Hi-Res Adventure #1: Mystery House - Apple II - Contains Coarsegold address { "hires1", 0, { { "ADVENTURE", 0, "22d9e63a11d69fa033ba1738715ad09a", 29952 }, { "AUTO LOAD OBJ", 0, "f6a6ac60c04c6ba6dff68b92cc279ba2", 12291 }, AD_LISTEND }, Common::EN_ANY, Common::kPlatformApple2, ADGF_NO_FLAGS, GUIO2(GAMEOPTION_COLOR_DEFAULT_OFF, GAMEOPTION_SCANLINES) }, GAME_TYPE_HIRES1, GAME_VER_HR1_COARSE }, { // Hi-Res Adventure #1: Mystery House - Apple II - Roberta Williams Anthology { "hires1", 0, { { "ADVENTURE", 0, "22d9e63a11d69fa033ba1738715ad09a", 29952 }, { "AUTO LOAD OBJ", 0, "23bfccfe9fcff9b22cf6c41bde9078ac", 12291 }, { "MYSTERY.HELLO", 0, "2289b7fea300b506e902a4c597968369", 836 }, AD_LISTEND }, Common::EN_ANY, Common::kPlatformApple2, ADGF_NO_FLAGS, GUIO2(GAMEOPTION_COLOR_DEFAULT_OFF, GAMEOPTION_SCANLINES) }, GAME_TYPE_HIRES1, GAME_VER_HR1_PD }, { AD_TABLE_END_MARKER, GAME_TYPE_NONE, GAME_VER_NONE } }; static const AdlGameDescription gameDiskDescriptions[] = { { // Hi-Res Adventure #1: Mystery House - Apple II - Contains Coarsegold address { "hires1", 0, { { "mysthous", 0, "8df0b3b3e609a2e40237e2419c1cb767", 116480 }, AD_LISTEND }, Common::EN_ANY, Common::kPlatformApple2, ADGF_NO_FLAGS, GUIO2(GAMEOPTION_COLOR_DEFAULT_OFF, GAMEOPTION_SCANLINES) }, GAME_TYPE_HIRES1, GAME_VER_HR1_COARSE }, { // Hi-Res Adventure #1: Mystery House - Apple II - Roberta Williams Anthology { "hires1", 0, { { "mysthous", 0, "54d20eb1ef0084ac3c2d16c31c5b7eb7", 143360 }, AD_LISTEND }, Common::EN_ANY, Common::kPlatformApple2, ADGF_NO_FLAGS, GUIO2(GAMEOPTION_COLOR_DEFAULT_OFF, GAMEOPTION_SCANLINES) }, GAME_TYPE_HIRES1, GAME_VER_HR1_PD }, { // Hi-Res Adventure #2: Wizard and the Princess - Apple II - Roberta Williams Anthology { "hires2", 0, { { "wizard", 0, "72b114bf8f94fafe5672daac2a70c765", 143360 }, AD_LISTEND }, Common::EN_ANY, Common::kPlatformApple2, ADGF_NO_FLAGS, GUIO2(GAMEOPTION_COLOR_DEFAULT_ON, GAMEOPTION_SCANLINES) }, GAME_TYPE_HIRES2, GAME_VER_NONE }, { // Hi-Res Adventure #0: Mission Asteroid - Apple II - Roberta Williams Anthology { "hires0", 0, { { "mission", 0, "6bc53f51a3c8ee65c020af55fb8bd875", 116480 }, AD_LISTEND }, Common::EN_ANY, Common::kPlatformApple2, ADGF_NO_FLAGS, GUIO2(GAMEOPTION_COLOR_DEFAULT_ON, GAMEOPTION_SCANLINES) }, GAME_TYPE_HIRES0, GAME_VER_NONE }, { // Hi-Res Adventure #3: Cranston Manor - Apple II { "hires3", 0, { { "cranston", 0, "e4d35440791a36e55299c7be1ccd2b04", 116480 }, AD_LISTEND }, Common::EN_ANY, Common::kPlatformApple2, ADGF_NO_FLAGS, GUIO2(GAMEOPTION_COLOR_DEFAULT_ON, GAMEOPTION_SCANLINES) }, GAME_TYPE_HIRES3, GAME_VER_NONE }, { // Hi-Res Adventure #4: Ulysses and the Golden Fleece - Apple II - Load 'N' Go { "hires4", 0, { { "ulyssesa", 0, "1eaeb2f1a773ce2d1cb9f16b2ef09049", 143360 }, { "ulyssesb", 1, "9fa8552255ae651b252844168b8b6617", 143360 }, AD_LISTEND }, Common::EN_ANY, Common::kPlatformApple2, ADGF_NO_FLAGS, GUIO2(GAMEOPTION_COLOR_DEFAULT_ON, GAMEOPTION_SCANLINES) }, GAME_TYPE_HIRES4, GAME_VER_NONE }, { // Hi-Res Adventure #4: Ulysses and the Golden Fleece - Atari 8-bit - Re-release { "hires4", 0, { { "ulys1b", 0, "bb6aab9a35b41d160b6eefa088165f56", 92160 }, { "ulys1a", 0, "c227eeee34d0bacd62b2d6231c409204", 92160 }, // Load 'N' Go Software release XAG-0646 appears to be missing the second disk { "ulys2c", 0, "8c6a76d1767e4ffa2f0118c9c56c0e90", 92160 }, AD_LISTEND }, Common::EN_ANY, Common::kPlatformAtari8Bit, ADGF_UNSTABLE, GUIO2(GAMEOPTION_COLOR_DEFAULT_ON, GAMEOPTION_SCANLINES) }, GAME_TYPE_HIRES4, GAME_VER_NONE }, { // Hi-Res Adventure #5: Time Zone - Apple II - Version 1.1 - Roberta Williams Anthology { "hires5", 0, { { "tzone1a", 2, "731844b1d19c2801e3a5bc61d109af54", 143360 }, { "tzone1b", 3, "4eaf8d790e3f93097cca9ddbe863df50", 143360 }, { "tzone2c", 4, "e3aa4f56e727339b1ec00978ce9d435b", 143360 }, { "tzone2d", 5, "77b8219a380410015c986fa192d4c3bf", 143360 }, { "tzone3e", 6, "f7acc03edd8d8aecb90711cd5f9e5593", 143360 }, { "tzone3f", 7, "ed74c056976ecea2eab07448c8a72eb8", 143360 }, { "tzone4g", 8, "de7bda8a641169fc2dedd8a7b0b7e7de", 143360 }, { "tzone4h", 9, "21cf76d97505ff09fff5d5e4711bc47c", 143360 }, { "tzone5i", 10, "d665df374e594cd0978b73c3490e5de2", 143360 }, { "tzone5j", 11, "5095be23d13201d0897b9169c4e473df", 143360 }, { "tzone6k", 12, "bef044503f21af5f0a4088e99aa778b1", 143360 }, { "tzone6l", 13, "84801b7c2ab6c09e62a2a0809b94d16a", 143360 }, AD_LISTEND }, Common::EN_ANY, Common::kPlatformApple2, ADGF_NO_FLAGS, GUIO2(GAMEOPTION_COLOR_DEFAULT_ON, GAMEOPTION_SCANLINES) }, GAME_TYPE_HIRES5, GAME_VER_NONE }, { // Hi-Res Adventure #6: The Dark Crystal - Apple II - Roberta Williams Anthology / SierraVenture { "hires6", 0, { { "dark1a", 0, "9a5968a8f378c84454d88f4cd4e143a9", 143360 }, { "dark1b", 3, "1271ff9c3e1bdb4942301dd37dd0ef87", 143360 }, { "dark2a", 4, "090e77563add7b4c9ab25f444d727316", 143360 }, { "dark2b", 5, "f2db96af0955324900b800505af4d91f", 143360 }, AD_LISTEND }, Common::EN_ANY, Common::kPlatformApple2, ADGF_NO_FLAGS, GUIO2(GAMEOPTION_COLOR_DEFAULT_ON, GAMEOPTION_SCANLINES) }, GAME_TYPE_HIRES6, GAME_VER_NONE }, { AD_TABLE_END_MARKER, GAME_TYPE_NONE, GAME_VER_NONE } }; struct DiskImageExt { Common::Platform platform; const char *extension; }; const DiskImageExt diskImageExts[] = { { Common::kPlatformApple2, ".nib" }, { Common::kPlatformApple2, ".dsk" }, { Common::kPlatformApple2, ".d13" }, { Common::kPlatformAtari8Bit, ".xfd" } }; class AdlMetaEngine : public AdvancedMetaEngine { public: AdlMetaEngine() : AdvancedMetaEngine(gameFileDescriptions, sizeof(AdlGameDescription), adlGames, optionsList) { } const char *getName() const { return "ADL"; } const char *getOriginalCopyright() const { return "Copyright (C) Sierra On-Line"; } bool hasFeature(MetaEngineFeature f) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; int getMaximumSaveSlot() const { return 'O' - 'A'; } SaveStateList listSaves(const char *target) const; void removeSaveState(const char *target, int slot) const; ADDetectedGames detectGame(const Common::FSNode &parent, const FileMap &allFiles, Common::Language language, Common::Platform platform, const Common::String &extra) const override; bool addFileProps(const FileMap &allFiles, Common::String fname, FilePropertiesMap &filePropsMap) const; bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *gd) const; }; bool AdlMetaEngine::hasFeature(MetaEngineFeature f) const { switch(f) { case kSupportsListSaves: case kSupportsLoadingDuringStartup: case kSupportsDeleteSave: case kSavesSupportMetaInfo: case kSavesSupportThumbnail: case kSavesSupportCreationDate: case kSavesSupportPlayTime: case kSimpleSavesNames: return true; default: return false; } } SaveStateDescriptor AdlMetaEngine::querySaveMetaInfos(const char *target, int slot) const { Common::String fileName = Common::String::format("%s.s%02d", target, slot); Common::InSaveFile *inFile = g_system->getSavefileManager()->openForLoading(fileName); if (!inFile) return SaveStateDescriptor(); if (inFile->readUint32BE() != MKTAG('A', 'D', 'L', ':')) { delete inFile; return SaveStateDescriptor(); } byte saveVersion = inFile->readByte(); if (saveVersion != SAVEGAME_VERSION) { delete inFile; return SaveStateDescriptor(); } char name[SAVEGAME_NAME_LEN] = { }; inFile->read(name, sizeof(name) - 1); inFile->readByte(); if (inFile->eos() || inFile->err()) { delete inFile; return SaveStateDescriptor(); } SaveStateDescriptor sd(slot, name); int year = inFile->readUint16BE(); int month = inFile->readByte(); int day = inFile->readByte(); sd.setSaveDate(year + 1900, month + 1, day); int hour = inFile->readByte(); int minutes = inFile->readByte(); sd.setSaveTime(hour, minutes); uint32 playTime = inFile->readUint32BE(); sd.setPlayTime(playTime); if (inFile->eos() || inFile->err()) { delete inFile; return SaveStateDescriptor(); } Graphics::Surface *thumbnail; if (!Graphics::loadThumbnail(*inFile, thumbnail)) { delete inFile; return SaveStateDescriptor(); } sd.setThumbnail(thumbnail); delete inFile; return sd; } SaveStateList AdlMetaEngine::listSaves(const char *target) const { Common::SaveFileManager *saveFileMan = g_system->getSavefileManager(); Common::StringArray files = saveFileMan->listSavefiles(Common::String(target) + ".s##"); SaveStateList saveList; for (uint i = 0; i < files.size(); ++i) { const Common::String &fileName = files[i]; Common::InSaveFile *inFile = saveFileMan->openForLoading(fileName); if (!inFile) { warning("Cannot open save file '%s'", fileName.c_str()); continue; } if (inFile->readUint32BE() != MKTAG('A', 'D', 'L', ':')) { warning("No header found in '%s'", fileName.c_str()); delete inFile; continue; } byte saveVersion = inFile->readByte(); if (saveVersion != SAVEGAME_VERSION) { warning("Unsupported save game version %i found in '%s'", saveVersion, fileName.c_str()); delete inFile; continue; } char name[SAVEGAME_NAME_LEN] = { }; inFile->read(name, sizeof(name) - 1); delete inFile; int slotNum = atoi(fileName.c_str() + fileName.size() - 2); SaveStateDescriptor sd(slotNum, name); saveList.push_back(sd); } // Sort saves based on slot number. Common::sort(saveList.begin(), saveList.end(), SaveStateDescriptorSlotComparator()); return saveList; } void AdlMetaEngine::removeSaveState(const char *target, int slot) const { Common::String fileName = Common::String::format("%s.s%02d", target, slot); g_system->getSavefileManager()->removeSavefile(fileName); } Common::String getDiskImageName(const AdlGameDescription &adlDesc, byte volume) { const ADGameDescription &desc = adlDesc.desc; for (uint i = 0; desc.filesDescriptions[i].fileName; ++i) { const ADGameFileDescription &fDesc = desc.filesDescriptions[i]; if (fDesc.fileType == volume) { for (uint e = 0; e < ARRAYSIZE(diskImageExts); ++e) { if (diskImageExts[e].platform == desc.platform) { Common::String testFileName(fDesc.fileName); testFileName += diskImageExts[e].extension; if (Common::File::exists(testFileName)) return testFileName; } } error("Failed to find disk image '%s'", fDesc.fileName); } } error("Disk volume %d not found", volume); } GameType getGameType(const AdlGameDescription &adlDesc) { return adlDesc.gameType; } GameVersion getGameVersion(const AdlGameDescription &adlDesc) { return adlDesc.version; } Common::Platform getPlatform(const AdlGameDescription &adlDesc) { return adlDesc.desc.platform; } bool AdlMetaEngine::addFileProps(const FileMap &allFiles, Common::String fname, FilePropertiesMap &filePropsMap) const { if (filePropsMap.contains(fname)) return true; if (!allFiles.contains(fname)) return false; FileProperties fileProps; fileProps.size = computeMD5(allFiles[fname], fileProps.md5, 16384); if (fileProps.size != -1) { debug(3, "> '%s': '%s'", fname.c_str(), fileProps.md5.c_str()); filePropsMap[fname] = fileProps; } return true; } // Based on AdvancedMetaEngine::detectGame ADDetectedGames AdlMetaEngine::detectGame(const Common::FSNode &parent, const FileMap &allFiles, Common::Language language, Common::Platform platform, const Common::String &extra) const { // We run the file-based detector first and then add to the returned list ADDetectedGames matched = AdvancedMetaEngine::detectGame(parent, allFiles, language, platform, extra); debug(3, "Starting disk image detection in dir '%s'", parent.getPath().c_str()); FilePropertiesMap filesProps; bool gotAnyMatchesWithAllFiles = false; for (uint g = 0; gameDiskDescriptions[g].desc.gameId != 0; ++g) { ADDetectedGame game(&gameDiskDescriptions[g].desc); // Skip games that don't meet the language/platform/extra criteria if (language != Common::UNK_LANG && game.desc->language != Common::UNK_LANG) { if (game.desc->language != language && !(language == Common::EN_ANY && (game.desc->flags & ADGF_ADDENGLISH))) continue; } if (platform != Common::kPlatformUnknown && game.desc->platform != Common::kPlatformUnknown && game.desc->platform != platform) continue; if ((_flags & kADFlagUseExtraAsHint) && !extra.empty() && game.desc->extra != extra) continue; bool allFilesPresent = true; for (uint f = 0; game.desc->filesDescriptions[f].fileName; ++f) { const ADGameFileDescription &fDesc = game.desc->filesDescriptions[f]; Common::String fileName; bool foundDiskImage = false; for (uint e = 0; e < ARRAYSIZE(diskImageExts); ++e) { if (diskImageExts[e].platform == game.desc->platform) { Common::String testFileName(fDesc.fileName); testFileName += diskImageExts[e].extension; if (addFileProps(allFiles, testFileName, filesProps)) { if (foundDiskImage) { warning("Ignoring '%s' (already found '%s')", testFileName.c_str(), fileName.c_str()); filesProps.erase(testFileName); } else { foundDiskImage = true; fileName = testFileName; } } } } if (!foundDiskImage) { allFilesPresent = false; break; } game.matchedFiles[fileName] = filesProps[fileName]; if (game.hasUnknownFiles) continue; if (fDesc.md5 && fDesc.md5 != filesProps[fileName].md5) { debug(3, "MD5 Mismatch. Skipping (%s) (%s)", fDesc.md5, filesProps[fileName].md5.c_str()); game.hasUnknownFiles = true; continue; } if (fDesc.fileSize != -1 && fDesc.fileSize != filesProps[fileName].size) { debug(3, "Size Mismatch. Skipping"); game.hasUnknownFiles = true; continue; } debug(3, "Matched file: %s", fileName.c_str()); } if (allFilesPresent && !game.hasUnknownFiles) { debug(2, "Found game: %s (%s/%s) (%d)", game.desc->gameId, getPlatformDescription(game.desc->platform), getLanguageDescription(game.desc->language), g); gotAnyMatchesWithAllFiles = true; matched.push_back(game); } else { if (allFilesPresent && !gotAnyMatchesWithAllFiles) { if (matched.empty() || strcmp(matched.back().desc->gameId, game.desc->gameId) != 0) matched.push_back(game); } debug(5, "Skipping game: %s (%s/%s) (%d)", game.desc->gameId, getPlatformDescription(game.desc->platform), getLanguageDescription(game.desc->language), g); } } return matched; } Engine *HiRes1Engine_create(OSystem *syst, const AdlGameDescription *gd); Engine *HiRes2Engine_create(OSystem *syst, const AdlGameDescription *gd); Engine *HiRes0Engine_create(OSystem *syst, const AdlGameDescription *gd); Engine *HiRes3Engine_create(OSystem *syst, const AdlGameDescription *gd); Engine *HiRes4Engine_create(OSystem *syst, const AdlGameDescription *gd); Engine *HiRes5Engine_create(OSystem *syst, const AdlGameDescription *gd); Engine *HiRes6Engine_create(OSystem *syst, const AdlGameDescription *gd); bool AdlMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *gd) const { if (!gd) return false; const AdlGameDescription *adlGd = (const AdlGameDescription *)gd; switch (adlGd->gameType) { case GAME_TYPE_HIRES1: *engine = HiRes1Engine_create(syst, adlGd); break; case GAME_TYPE_HIRES2: *engine = HiRes2Engine_create(syst, adlGd); break; case GAME_TYPE_HIRES0: *engine = HiRes0Engine_create(syst, adlGd); break; case GAME_TYPE_HIRES3: *engine = HiRes3Engine_create(syst, adlGd); break; case GAME_TYPE_HIRES4: *engine = HiRes4Engine_create(syst, adlGd); break; case GAME_TYPE_HIRES5: *engine = HiRes5Engine_create(syst, adlGd); break; case GAME_TYPE_HIRES6: *engine = HiRes6Engine_create(syst, adlGd); break; default: error("Unknown GameType"); } return true; } } // End of namespace Adl
#define FORBIDDEN_SYMBOL_ALLOW_ALL #include "backends/platform/wince/wince-sdl.h" #include "CEActionsSmartphone.h" #include "EventsBuffer.h" #include "gui/message.h" #include "common/config-manager.h" #include "gui/KeysDialog.h" #include "common/translation.h" #define KEY_ALL_SKIP 3457 const String smartphoneActionNames[] = { _s("Up"), _s("Down"), _s("Left"), _s("Right"), _s("Left Click"), _s("Right Click"), _s("Save"), _s("Skip"), _s("Zone"), _s("Multi Function"), _s("Bind Keys"), _s("Keyboard"), _s("Rotate"), _s("Quit") };
return "qfg4"; // Otherwise it's qfg3 return "qfg3"; } return sierraId; } #include "sci/detection_tables.h" static const ADExtraGuiOptionsMap optionsList[] = { { GAMEOPTION_EGA_UNDITHER, { _s("Skip EGA dithering pass (full color backgrounds)"), _s("Skip dithering pass in EGA games, graphics are shown with full colors"), "disable_dithering", false } }, { GAMEOPTION_PREFER_DIGITAL_SFX, { _s("Prefer digital sound effects"), _s("Prefer digital sound effects instead of synthesized ones"), "prefer_digitalsfx", true } },
}; } // End of namespace Queen static const PlainGameDescriptor queenGames[] = { {"queen", "Flight of the Amazon Queen"}, {0, 0} }; #define GAMEOPTION_ALT_INTRO GUIO_GAMEOPTIONS1 static const ADExtraGuiOptionsMap optionsList[] = { { GAMEOPTION_ALT_INTRO, { _s("Alternative intro"), _s("Use an alternative game intro (CD version only)"), "alt_intro", false } }, AD_EXTRA_GUI_OPTIONS_TERMINATOR }; namespace Queen { static const QueenGameDescription gameDescriptions[] = { // Amiga Demo - English { {
static std::string json_escape( const std::string &s ) { std::string _s( s ); _s = json_replace( _s, "\\", "\\\\" ); _s = json_replace( _s, "\"", "\\\"" ); return _s; }
void muzzley::HTTPTokenizerLexer::name() { string _s(this->matched()); muzzley::trim(_s); this->__param_name.assign(_s); }
static std::string json_replace( const std::string &s, const std::string &a, const std::string &b ) { std::string _s( s ); std::string::size_type i = 0; while( std::string::npos != ( i = _s.find_first_of( a, i ) ) ) _s.replace( i, a.length(), b ), i += b.length(); return _s; }
const char *getName() const { return _s("MT-32 Emulator"); }
namespace CGE2 { #define GAMEOPTION_COLOR_BLIND_DEFAULT_OFF GUIO_GAMEOPTIONS1 static const PlainGameDescriptor CGE2Games[] = { { "sfinx", "Sfinx" }, { 0, 0 } }; static const ADGameDescription gameDescriptions[] = { { "sfinx", "Freeware", { { "vol.cat", 0, "21197b287d397c53261b6616bf0dd880", 129024 }, { "vol.dat", 0, "de14291869a8eb7c2732ab783c7542ef", 34180844 }, AD_LISTEND }, Common::PL_POL, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_COLOR_BLIND_DEFAULT_OFF) }, { "sfinx", "Freeware v1.0", { {"vol.cat", 0, "aa402aed24a72c53a4d1211c456b79dd", 129024}, {"vol.dat", 0, "5966ac26d91d664714349669f9dd09b5", 34180164}, AD_LISTEND }, Common::PL_POL, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_COLOR_BLIND_DEFAULT_OFF) }, { "sfinx", "Freeware v0.3", { {"vol.cat", 0, "f158e469dccbebc5a632eb848df89779", 129024}, {"vol.dat", 0, "d40a6b4ae173d6930be54ba56bee15d5", 34183430}, AD_LISTEND }, Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_COLOR_BLIND_DEFAULT_OFF) }, { "sfinx", "Freeware v1.0", { {"vol.cat", 0, "f158e469dccbebc5a632eb848df89779", 129024}, {"vol.dat", 0, "d40a6b4ae173d6930be54ba56bee15d5", 34183443}, AD_LISTEND }, Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_COLOR_BLIND_DEFAULT_OFF) }, { "sfinx", "Freeware v1.1", { {"vol.cat", 0, "f158e469dccbebc5a632eb848df89779", 129024}, {"vol.dat", 0, "d40a6b4ae173d6930be54ba56bee15d5", 34182773}, AD_LISTEND }, Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_COLOR_BLIND_DEFAULT_OFF) }, AD_TABLE_END_MARKER }; static const ADExtraGuiOptionsMap optionsList[] = { { GAMEOPTION_COLOR_BLIND_DEFAULT_OFF, { _s("Color Blind Mode"), _s("Enable Color Blind Mode by default"), "enable_color_blind", false } }, AD_EXTRA_GUI_OPTIONS_TERMINATOR }; class CGE2MetaEngine : public AdvancedMetaEngine { public: CGE2MetaEngine() : AdvancedMetaEngine(gameDescriptions, sizeof(ADGameDescription), CGE2Games, optionsList) { _singleId = "sfinx"; } virtual const char *getName() const { return "CGE2"; } virtual const char *getOriginalCopyright() const { return "Sfinx (C) 1994-1997 Janus B. Wisniewski and L.K. Avalon"; } virtual const ADGameDescription *fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool hasFeature(MetaEngineFeature f) const; virtual int getMaximumSaveSlot() const; virtual SaveStateList listSaves(const char *target) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const; }; static const ADFileBasedFallback fileBasedFallback[] = { { &gameDescriptions[0], { "vol.cat", "vol.dat", 0 } }, { 0, { 0 } } }; static ADGameDescription s_fallbackDesc = { "Sfinx", "Unknown version", AD_ENTRY1(0, 0), // This should always be AD_ENTRY1(0, 0) in the fallback descriptor Common::UNK_LANG, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_COLOR_BLIND_DEFAULT_OFF) }; // This fallback detection looks identical to the one used for CGE. In fact, the difference resides // in the ResourceManager which handles a different archive format. The rest of the detection is identical. const ADGameDescription *CGE2MetaEngine::fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const { ADFilePropertiesMap filesProps; const ADGameDescription *game; game = detectGameFilebased(allFiles, fslist, CGE2::fileBasedFallback, &filesProps); if (!game) return 0; SearchMan.clear(); SearchMan.addDirectory(fslist.begin()->getParent().getPath(), fslist.begin()->getParent()); ResourceManager *resman; resman = new ResourceManager(); bool result = resman->exist("CGE.SAY"); delete resman; if (!result) return 0; reportUnknown(fslist.begin()->getParent(), filesProps); return &s_fallbackDesc; } bool CGE2MetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const { if (desc) *engine = new CGE2::CGE2Engine(syst, desc); return desc != 0; } bool CGE2MetaEngine::hasFeature(MetaEngineFeature f) const { return (f == kSupportsDeleteSave) || (f == kSavesSupportMetaInfo) || (f == kSavesSupportThumbnail) || (f == kSavesSupportCreationDate) || (f == kSupportsListSaves) || (f == kSupportsLoadingDuringStartup) || (f == kSimpleSavesNames); } int CGE2MetaEngine::getMaximumSaveSlot() const { return 99; } SaveStateList CGE2MetaEngine::listSaves(const char *target) const { Common::SaveFileManager *saveFileMan = g_system->getSavefileManager(); Common::StringArray filenames; Common::String pattern = target; pattern += ".###"; filenames = saveFileMan->listSavefiles(pattern); SaveStateList saveList; for (Common::StringArray::const_iterator filename = filenames.begin(); filename != filenames.end(); ++filename) { // Obtain the last 3 digits of the filename, since they correspond to the save slot int slotNum = atoi(filename->c_str() + filename->size() - 3); if (slotNum >= 0 && slotNum <= 99) { Common::InSaveFile *file = saveFileMan->openForLoading(*filename); if (file) { CGE2::SavegameHeader header; // Check to see if it's a ScummVM savegame or not char buffer[kSavegameStrSize + 1]; file->read(buffer, kSavegameStrSize + 1); if (!strncmp(buffer, kSavegameStr, kSavegameStrSize + 1)) { // Valid savegame if (CGE2::CGE2Engine::readSavegameHeader(file, header)) { saveList.push_back(SaveStateDescriptor(slotNum, header.saveName)); if (header.thumbnail) { header.thumbnail->free(); delete header.thumbnail; } } } else { // Must be an original format savegame saveList.push_back(SaveStateDescriptor(slotNum, "Unknown")); } delete file; } } } // Sort saves based on slot number. Common::sort(saveList.begin(), saveList.end(), SaveStateDescriptorSlotComparator()); return saveList; } SaveStateDescriptor CGE2MetaEngine::querySaveMetaInfos(const char *target, int slot) const { Common::String fileName = Common::String::format("%s.%03d", target, slot); Common::InSaveFile *f = g_system->getSavefileManager()->openForLoading(fileName); if (f) { CGE2::SavegameHeader header; // Check to see if it's a ScummVM savegame or not char buffer[kSavegameStrSize + 1]; f->read(buffer, kSavegameStrSize + 1); bool hasHeader = !strncmp(buffer, kSavegameStr, kSavegameStrSize + 1) && CGE2::CGE2Engine::readSavegameHeader(f, header); delete f; if (!hasHeader) { // Original savegame perhaps? SaveStateDescriptor desc(slot, "Unknown"); return desc; } else { // Create the return descriptor SaveStateDescriptor desc(slot, header.saveName); desc.setThumbnail(header.thumbnail); desc.setSaveDate(header.saveYear, header.saveMonth, header.saveDay); desc.setSaveTime(header.saveHour, header.saveMinutes); // Slot 0 is used for the 'automatic save on exit' save in Soltys, thus // we prevent it from being deleted or overwritten by accident. desc.setDeletableFlag(slot != 0); desc.setWriteProtectedFlag(slot == 0); return desc; } } return SaveStateDescriptor(); } void CGE2MetaEngine::removeSaveState(const char *target, int slot) const { Common::String fileName = Common::String::format("%s.%03d", target, slot); g_system->getSavefileManager()->removeSavefile(fileName); } } // End of namespace CGE2
} _bitmaps.clear(); delete _parser; delete _themeEval; delete[] _cursor; delete _themeArchive; } /********************************************************** * Rendering mode management *********************************************************/ const ThemeEngine::Renderer ThemeEngine::_rendererModes[] = { { _s("Disabled GFX"), _sc("Disabled GFX", "lowres"), "none", kGfxDisabled }, { _s("Standard Renderer (16bpp)"), _s("Standard (16bpp)"), "normal_16bpp", kGfxStandard16bit }, #ifndef DISABLE_FANCY_THEMES { _s("Antialiased Renderer (16bpp)"), _s("Antialiased (16bpp)"), "aa_16bpp", kGfxAntialias16bit } #endif }; const uint ThemeEngine::_rendererModesSize = ARRAYSIZE(ThemeEngine::_rendererModes); const ThemeEngine::GraphicsMode ThemeEngine::_defaultRendererMode = #ifndef DISABLE_FANCY_THEMES ThemeEngine::kGfxAntialias16bit; #else ThemeEngine::kGfxStandard16bit; #endif
EV_Menu_ActionSet * AP_CreateMenuActionSet(void) { // This should only be called once by the application. // Everyone should share the set we create. EV_Menu_ActionSet * pActionSet = new EV_Menu_ActionSet(AP_MENU_ID__BOGUS1__, AP_MENU_ID__BOGUS2__); UT_return_val_if_fail (pActionSet, NULL); // The following is a list of all menu id's that we define, // the actions that they should be bound to, and various // other small details. This creates the ActionSet of all // possible menu actions. Order here is not significant and // does not necessarily correspond to any actual menu. // Elsewhere we define one or more MenuLayouts using these // verbs.... // // szMethodName is the name of a "call-by-name" EditMethod that we will // call when the menu item is selected. if it is null, the // menu item doesn't do anything (we set it null for separators // and the popup name). // // fnGetState is a function pointer to be called to return the enabled/disabled // and/or checked/unchecked state of the menu item. this will be // called on each item when the menu (bar) is activated (on Win32 // this is in response to an WM_INITMENU message). // // fnGetLabel is a function pointer to compute a "dynamic menu item name" for // the item. it returns a string which will be stuffed into the // menu as the label for this item. the returned label will be // decorated in platform-code to include the usual i-raise-a-dialog "..." // and any other platform-specific decoration. if this function returns // a null string, we temporarily hide/remove this item from the layout. // (this feature is used by the window list manager.) #define _s(id,bHoldsSubMenu,bRaisesDialog,bCheckable,bRadio,szMethodName,pfnGetState,pfnGetLabel) \ pActionSet->setAction(id,bHoldsSubMenu,bRaisesDialog,bCheckable,bRadio,szMethodName,pfnGetState,pfnGetLabel) //( __id__, bSub,bDlg,bCheck,bRadio, szMethodName, fnGetState, fnGetLabel) _s(AP_MENU_ID__BOGUS1__, 0,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_FILE, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_FILE_NEW, 0,0,0,0, "fileNew", NULL, NULL); _s(AP_MENU_ID_FILE_NEW_USING_TEMPLATE, 0,1,0,0, "fileNewUsingTemplate", NULL, NULL); _s(AP_MENU_ID_FILE_OPEN, 0,1,0,0, "fileOpen", NULL, NULL); _s(AP_MENU_ID_FILE_IMPORTSTYLES, 0,1,0,0, "importStyles", NULL, NULL); _s(AP_MENU_ID_FILE_SAVE, 0,0,0,0, "fileSave", ap_GetState_Changes, NULL); _s(AP_MENU_ID_FILE_SAVEAS, 0,1,0,0, "fileSaveAs", NULL, NULL); _s(AP_MENU_ID_FILE_SAVEIMAGE, 0,1,0,0, "fileSaveImage", NULL, NULL); _s(AP_MENU_ID_FILE_SAVE_TEMPLATE, 0,1,0,0, "fileSaveTemplate", NULL, NULL); _s(AP_MENU_ID_FILE_IMPORT, 0,1,0,0, "fileImport", NULL, NULL); _s(AP_MENU_ID_FILE_EXPORT, 0,1,0,0, "fileExport", NULL, NULL); _s(AP_MENU_ID_FILE_PROPERTIES, 0,1,0,0, "dlgMetaData", NULL, NULL); _s(AP_MENU_ID_FILE_CLOSE, 0,0,0,0, "closeWindow", NULL, NULL); _s(AP_MENU_ID_FILE_PAGESETUP, 0,1,0,0, "pageSetup", NULL, NULL); #if TOOLKIT_GTK _s(AP_MENU_ID_FILE_PRINT, 0,1,0,0, "cairoPrint",NULL,NULL); _s(AP_MENU_ID_FILE_PRINT_PREVIEW, 0,1,0,0, "cairoPrintPreview", NULL, NULL); _s(AP_MENU_ID_FILE_PRINT_DIRECTLY, 0,1,0,0, "cairoPrintDirectly", NULL, NULL); #else _s(AP_MENU_ID_FILE_PRINT, 0,1,0,0, "print", NULL, NULL); _s(AP_MENU_ID_FILE_PRINT_PREVIEW, 0,1,0,0, "printPreview", NULL, NULL); #endif _s(AP_MENU_ID_FILE_RECENT, 1,0,0,0, NULL, ap_GetState_Recent,NULL); _s(AP_MENU_ID_FILE_RECENT_1, 0,0,0,0, "openRecent_1", NULL, ap_GetLabel_Recent); _s(AP_MENU_ID_FILE_RECENT_2, 0,0,0,0, "openRecent_2", NULL, ap_GetLabel_Recent); _s(AP_MENU_ID_FILE_RECENT_3, 0,0,0,0, "openRecent_3", NULL, ap_GetLabel_Recent); _s(AP_MENU_ID_FILE_RECENT_4, 0,0,0,0, "openRecent_4", NULL, ap_GetLabel_Recent); _s(AP_MENU_ID_FILE_RECENT_5, 0,0,0,0, "openRecent_5", NULL, ap_GetLabel_Recent); _s(AP_MENU_ID_FILE_RECENT_6, 0,0,0,0, "openRecent_6", NULL, ap_GetLabel_Recent); _s(AP_MENU_ID_FILE_RECENT_7, 0,0,0,0, "openRecent_7", NULL, ap_GetLabel_Recent); _s(AP_MENU_ID_FILE_RECENT_8, 0,0,0,0, "openRecent_8", NULL, ap_GetLabel_Recent); _s(AP_MENU_ID_FILE_RECENT_9, 0,0,0,0, "openRecent_9", NULL, ap_GetLabel_Recent); _s(AP_MENU_ID_FILE_REVERT, 0,0,0,0, "fileRevert", ap_GetState_Changes, NULL); _s(AP_MENU_ID_FILE_EXIT, 0,0,0,0, "querySaveAndExit", NULL, NULL); _s(AP_MENU_ID_FILE_SAVEEMBED, 0,1,0,0, "fileSaveEmbed", NULL, NULL); _s(AP_MENU_ID_OPEN_TEMPLATE, 0,1,0,0, "openTemplate", NULL, NULL); _s(AP_MENU_ID_EDIT, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_EDIT_UNDO, 0,0,0,0, "undo", ap_GetState_Changes, NULL); _s(AP_MENU_ID_EDIT_REDO, 0,0,0,0, "redo", ap_GetState_Changes, NULL); _s(AP_MENU_ID_EDIT_CUT, 0,0,0,0, "cut", ap_GetState_Selection, NULL); _s(AP_MENU_ID_EDIT_LATEXEQUATION, 0,1,0,0, "editLatexAtPos", ap_GetState_Selection, NULL); _s(AP_MENU_ID_EDIT_COPY, 0,0,0,0, "copy", ap_GetState_Selection, NULL); _s(AP_MENU_ID_EDIT_PASTE, 0,0,0,0, "paste", ap_GetState_Clipboard, NULL); _s(AP_MENU_ID_EDIT_PASTE_SPECIAL,0,0,0,0, "pasteSpecial", ap_GetState_Clipboard, NULL); _s(AP_MENU_ID_EDIT_CLEAR, 0,0,0,0, "delRight", NULL, NULL); _s(AP_MENU_ID_EDIT_SELECTALL, 0,0,0,0, "selectAll", NULL, NULL); _s(AP_MENU_ID_EDIT_FIND, 0,1,0,0, "find", NULL, NULL); _s(AP_MENU_ID_EDIT_REPLACE, 0,1,0,0, "replace", NULL, NULL); _s(AP_MENU_ID_EDIT_GOTO, 0,1,0,0, "go", NULL, NULL); _s(AP_MENU_ID_EDIT_EDITHEADER, 0,0,0,0, "editHeader", ap_GetState_Changes, NULL); _s(AP_MENU_ID_EDIT_EDITFOOTER, 0,0,0,0, "editFooter", ap_GetState_Changes, NULL); _s(AP_MENU_ID_EDIT_REMOVEHEADER, 0,0,0,0,"removeHeader",ap_GetState_Changes , NULL); _s(AP_MENU_ID_EDIT_REMOVEFOOTER, 0,0,0,0, "removeFooter",ap_GetState_Changes, NULL); _s(AP_MENU_ID_EDIT_DELETEFRAME, 0,0,0,0, "deleteFrame", NULL,NULL); _s(AP_MENU_ID_EDIT_DELETEIMAGE, 0,0,0,0, "deleteFrame", NULL,NULL); _s(AP_MENU_ID_FMT_POSIMAGE, 0,1,0,0, "dlgFmtPosImage", NULL,NULL); _s(AP_MENU_ID_EDIT_CUTIMAGE, 0,0,0,0, "cut", NULL,NULL); _s(AP_MENU_ID_EDIT_COPYIMAGE, 0,0,0,0, "copy", NULL,NULL); _s(AP_MENU_ID_EDIT_CUT_FRAME, 0,0,0,0, "cutFrame", NULL,NULL); _s(AP_MENU_ID_EDIT_COPY_FRAME, 0,0,0,0, "copyFrame",NULL,NULL); _s(AP_MENU_ID_EDIT_SELECT_FRAME, 0,0,0,0, "selectFrame",NULL,NULL); _s(AP_MENU_ID_EDIT_CUTEMBED, 0,0,0,0, "cut",NULL,NULL); _s(AP_MENU_ID_EDIT_COPYEMBED, 0,0,0,0, "copy",NULL,NULL); _s(AP_MENU_ID_EDIT_DELETEEMBED, 0,0,0,0, "delLeft",NULL,NULL); _s(AP_MENU_ID_VIEW, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_VIEW_NORMAL, 0,0,0,1, "viewNormalLayout", ap_GetState_View, NULL); _s(AP_MENU_ID_VIEW_WEB, 0,0,0,1, "viewWebLayout", ap_GetState_View, NULL); _s(AP_MENU_ID_VIEW_PRINT, 0,0,0,1, "viewPrintLayout", ap_GetState_View, NULL); _s(AP_MENU_ID_VIEW_TOOLBARS, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_VIEW_TB_1, 0,0,1,0, "viewTB1", ap_GetState_View, ap_GetLabel_Toolbar); _s(AP_MENU_ID_VIEW_TB_2, 0,0,1,0, "viewTB2", ap_GetState_View, ap_GetLabel_Toolbar); _s(AP_MENU_ID_VIEW_TB_3, 0,0,1,0, "viewTB3", ap_GetState_View, ap_GetLabel_Toolbar); _s(AP_MENU_ID_VIEW_TB_4, 0,0,1,0, "viewTB4", ap_GetState_View, ap_GetLabel_Toolbar); _s(AP_MENU_ID_VIEW_LOCK_TB_LAYOUT, 0,0,1,0, "lockToolbarLayout", ap_GetState_View, NULL); _s(AP_MENU_ID_VIEW_DEFAULT_TB_LAYOUT, 0,0,0,0, "defaultToolbarLayout", ap_GetState_View, NULL); _s(AP_MENU_ID_VIEW_RULER, 0,0,1,0, "viewRuler", ap_GetState_View, NULL); _s(AP_MENU_ID_VIEW_STATUSBAR, 0,0,1,0, "viewStatus", ap_GetState_View, NULL); _s(AP_MENU_ID_VIEW_LOCKSTYLES, 0,0,1,0, "viewLockStyles", ap_GetState_View, NULL); _s(AP_MENU_ID_VIEW_SHOWPARA, 0,0,1,0, "viewPara", ap_GetState_View, NULL); _s(AP_MENU_ID_VIEW_FULLSCREEN, 0,0,1,0, "viewFullScreen", ap_GetState_View, NULL); _s(AP_MENU_ID_VIEW_ZOOM_MENU, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_VIEW_ZOOM, 0,1,0,0, "dlgZoom", NULL, NULL); _s(AP_MENU_ID_VIEW_ZOOM_200, 0,0,0,1, "zoom200", ap_GetState_Zoom, NULL); _s(AP_MENU_ID_VIEW_ZOOM_100, 0,0,0,1, "zoom100", ap_GetState_Zoom, NULL); _s(AP_MENU_ID_VIEW_ZOOM_75, 0,0,0,1, "zoom75", ap_GetState_Zoom, NULL); _s(AP_MENU_ID_VIEW_ZOOM_50, 0,0,0,1, "zoom50", ap_GetState_Zoom, NULL); _s(AP_MENU_ID_VIEW_ZOOM_WHOLE, 0,0,0,1, "zoomWhole", ap_GetState_Zoom, NULL); _s(AP_MENU_ID_VIEW_ZOOM_WIDTH, 0,0,0,1, "zoomWidth", ap_GetState_Zoom, NULL); _s(AP_MENU_ID_INSERT, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_INSERT_BREAK, 0,1,0,0, "insBreak", ap_GetState_BreakOK, NULL); _s(AP_MENU_ID_INSERT_BOOKMARK, 0,1,0,0, "insertBookmark", ap_GetState_BookmarkOK, NULL); _s(AP_MENU_ID_INSERT_HYPERLINK, 0,1,0,0, "insertHyperlink", ap_GetState_HyperlinkOK, NULL); _s(AP_MENU_ID_INSERT_GOTO_HYPERLINK, 0,1,0,0, "hyperlinkJumpPos", ap_GetState_HyperlinkOK, NULL); _s(AP_MENU_ID_INSERT_EDIT_HYPERLINK, 0,1,0,0, "insertHyperlink", ap_GetState_HyperlinkOK, NULL); _s(AP_MENU_ID_EDIT_COPY_HYPERLINK_LOCATION, 0,0,0,0, "hyperlinkCopyLocation", NULL, NULL); _s(AP_MENU_ID_INSERT_DELETE_HYPERLINK, 0,0,0,0, "deleteHyperlink", NULL, NULL); _s(AP_MENU_ID_INSERT_PAGENO, 0,1,0,0, "insPageNo", NULL, NULL); _s(AP_MENU_ID_INSERT_DATETIME, 0,1,0,0, "insDateTime", NULL, NULL); _s(AP_MENU_ID_INSERT_FIELD, 0,1,0,0, "insField", NULL, NULL); _s(AP_MENU_ID_INSERT_TEXTBOX, 0,0,0,0, "insTextBox", ap_GetState_InsTextBox, NULL); _s(AP_MENU_ID_INSERT_MAILMERGE, 0,1,0,0, "insMailMerge", NULL, NULL); _s(AP_MENU_ID_INSERT_FILE, 0,1,0,0, "insFile", NULL, NULL); _s(AP_MENU_ID_INSERT_SYMBOL, 0,1,0,0, "insSymbol", NULL, NULL); _s(AP_MENU_ID_INSERT_TABLEOFCONTENTS, 0,0,0,0, "insTOC", ap_GetState_TOCOK, NULL); _s(AP_MENU_ID_INSERT_FOOTNOTE, 0,0,0,0, "insFootnote", ap_GetState_InFootnote, NULL); _s(AP_MENU_ID_INSERT_ENDNOTE, 0,0,0,0, "insEndnote", ap_GetState_InFootnote, NULL); _s(AP_MENU_ID_INSERT_HEADER, 0,0,0,0, "editHeader", ap_GetState_Changes, NULL); _s(AP_MENU_ID_INSERT_FOOTER, 0,0,0,0, "editFooter", ap_GetState_Changes, NULL); _s(AP_MENU_ID_INSERT_CLIPART, 0,1,0,0, "insertClipart", NULL, NULL); _s(AP_MENU_ID_INSERT_GRAPHIC, 0,1,0,0, "fileInsertGraphic",NULL, NULL); _s(AP_MENU_ID_INSERT_DIRECTIONMARKER, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_INSERT_DIRECTIONMARKER_LRM,0,0,0,0, "insertLRM", NULL, NULL); _s(AP_MENU_ID_INSERT_DIRECTIONMARKER_RLM,0,0,0,0, "insertRLM", NULL, NULL); _s(AP_MENU_ID_FORMAT, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_FMT, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_FMT_LANGUAGE, 0,1,0,0, "dlgLanguage", ap_GetState_StylesLocked, NULL); _s(AP_MENU_ID_FMT_FONT, 0,1,0,0, "dlgFont", ap_GetState_StylesLocked, NULL); _s(AP_MENU_ID_FMT_PARAGRAPH, 0,1,0,0, "dlgParagraph", ap_GetState_StylesLocked, NULL); _s(AP_MENU_ID_FMT_BULLETS, 0,1,0,0, "dlgBullets", ap_GetState_Lists, NULL); _s(AP_MENU_ID_FMT_DOCUMENT, 0,1,0,0, "pageSetup", NULL, NULL); _s(AP_MENU_ID_FMT_BORDERS, 0,1,0,0, "dlgBorders", NULL, NULL); _s(AP_MENU_ID_FMT_COLUMNS, 0,1,0,0, "dlgColumns", ap_GetState_ColumnsActive, NULL); _s(AP_MENU_ID_FMT_BACKGROUND, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_FMT_BACKGROUND_PAGE_COLOR, 0,1,0,0, "dlgBackground", NULL, NULL); _s(AP_MENU_ID_FMT_BACKGROUND_PAGE_IMAGE, 0,1,0,0, "fileInsertPageBackgroundGraphic", NULL, NULL); _s(AP_MENU_ID_FMT_HDRFTR, 0,1,0,0, "dlgHdrFtr", ap_GetState_FmtHdrFtr, NULL); _s(AP_MENU_ID_FMT_TABLEOFCONTENTS, 0,1,0,0, "formatTOC", ap_GetState_InTOC, NULL); _s(AP_MENU_ID_FMT_FOOTNOTES, 0,1,0,0, "formatFootnotes", NULL, NULL); _s(AP_MENU_ID_FMT_IMAGE, 0,1,0,0, "dlgFmtImage", ap_GetState_InImage, NULL); _s(AP_MENU_ID_FMT_SETPOSIMAGE, 0,0,0,0, "setPosImage", ap_GetState_SetPosImage, NULL); _s(AP_MENU_ID_FMT_STYLE_DEFINE, 0,1,0,0, "dlgStyle", NULL, NULL); _s(AP_MENU_ID_FMT_STYLE, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_FMT_STYLIST, 0,1,0,0, "dlgStylist", NULL, NULL); _s(AP_MENU_ID_FMT_TABS, 0,1,0,0, "dlgTabs", NULL, NULL); _s(AP_MENU_ID_FMT_BOLD, 0,0,1,0, "toggleBold", ap_GetState_CharFmt, NULL); _s(AP_MENU_ID_FMT_ITALIC, 0,0,1,0, "toggleItalic", ap_GetState_CharFmt, NULL); _s(AP_MENU_ID_FMT_UNDERLINE, 0,0,1,0, "toggleUline", ap_GetState_CharFmt, NULL); _s(AP_MENU_ID_FMT_OVERLINE, 0,0,1,0, "toggleOline", ap_GetState_CharFmt, NULL); _s(AP_MENU_ID_FMT_STRIKE, 0,0,1,0, "toggleStrike", ap_GetState_CharFmt, NULL); _s(AP_MENU_ID_FMT_TOPLINE, 0,0,1,0, "toggleTopline", ap_GetState_CharFmt, NULL); _s(AP_MENU_ID_FMT_BOTTOMLINE, 0,0,1,0, "toggleBottomline", ap_GetState_CharFmt, NULL); _s(AP_MENU_ID_FMT_SUPERSCRIPT, 0,0,1,0, "toggleSuper", ap_GetState_CharFmt, NULL); _s(AP_MENU_ID_FMT_SUBSCRIPT, 0,0,1,0, "toggleSub", ap_GetState_CharFmt, NULL); _s(AP_MENU_ID_FMT_TOGGLECASE, 0,1,0,0, "dlgToggleCase", ap_GetState_SomethingSelected, NULL); _s(AP_MENU_ID_FMT_FRAME, 0,1,0,0, "dlgFormatFrame", ap_GetState_InFrame, NULL); _s(AP_MENU_ID_FMT_DIRECTION, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_FMT_DIRECTION_DD_RTL,0,0,1,0, "toggleDomDirection", ap_GetState_BlockFmt, NULL); _s(AP_MENU_ID_FMT_DIRECTION_SD_RTL,0,0,1,0, "toggleDomDirectionSect", ap_GetState_SectFmt, NULL); _s(AP_MENU_ID_FMT_DIRECTION_DOCD_RTL,0,0,1,0, "toggleDomDirectionDoc", ap_GetState_DocFmt, NULL); _s(AP_MENU_ID_FMT_DIRECTION_DO_LTR,0,0,1,0, "toggleDirOverrideLTR", ap_GetState_CharFmt, NULL); _s(AP_MENU_ID_FMT_DIRECTION_DO_RTL,0,0,1,0, "toggleDirOverrideRTL", ap_GetState_CharFmt, NULL); _s(AP_MENU_ID_FMT_EMBED,0,1,0,0, "editEmbed", NULL, NULL); _s(AP_MENU_ID_ALIGN, 1,0,0,0, NULL, ap_GetState_StylesLocked, NULL); _s(AP_MENU_ID_ALIGN_LEFT, 0,0,0,1, "alignLeft", ap_GetState_BlockFmt, NULL); _s(AP_MENU_ID_ALIGN_CENTER, 0,0,0,1, "alignCenter", ap_GetState_BlockFmt, NULL); _s(AP_MENU_ID_ALIGN_RIGHT, 0,0,0,1, "alignRight", ap_GetState_BlockFmt, NULL); _s(AP_MENU_ID_ALIGN_JUSTIFY, 0,0,0,1, "alignJustify", ap_GetState_BlockFmt, NULL); _s(AP_MENU_ID_TOOLS, 1,0,0,0, NULL, NULL, NULL); #ifdef ENABLE_SPELL _s(AP_MENU_ID_TOOLS_SPELLING, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_TOOLS_SPELL, 0,1,0,0, "dlgSpell", ap_GetState_Spelling, NULL); _s(AP_MENU_ID_TOOLS_SPELLPREFS, 0,1,0,0, "dlgSpellPrefs", NULL, NULL); _s(AP_MENU_ID_TOOLS_AUTOSPELL, 0,0,1,0, "toggleAutoSpell", ap_GetState_Prefs, NULL); #endif _s(AP_MENU_ID_TOOLS_LANGUAGE, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_TOOLS_WORDCOUNT, 0,1,0,0, "dlgWordCount", NULL, NULL); _s(AP_MENU_ID_TOOLS_PLUGINS, 0,1,0,0, "dlgPlugins", NULL, NULL); _s(AP_MENU_ID_TOOLS_OPTIONS, 0,1,0,0, "dlgOptions", NULL, NULL); _s(AP_MENU_ID_TOOLS_SCRIPTS, 0,1,0,0, "scriptPlay", ap_GetState_ScriptsActive, NULL); _s(AP_MENU_ID_TOOLS_MAILMERGE, 0,1,0,0, "mailMerge", ap_GetState_MailMerge, NULL); _s(AP_MENU_ID_TOOLS_REVISIONS, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_TOOLS_REVISIONS_MARK, 0,0,1,0, "toggleMarkRevisions", ap_GetState_MarkRevisionsCheck,NULL); _s(AP_MENU_ID_TOOLS_REVISIONS_NEW_REVISION, 0,0,0,0, "startNewRevision", ap_GetState_MarkRevisions,NULL); _s(AP_MENU_ID_TOOLS_REVISIONS_SHOW, 0,0,1,0, "toggleShowRevisions", ap_GetState_ShowRevisions,NULL); _s(AP_MENU_ID_TOOLS_REVISIONS_SHOW_AFTERPREV, 0,0,1,0, "toggleShowRevisionsAfterPrevious", ap_GetState_ShowRevisionsAfterPrev,NULL); _s(AP_MENU_ID_TOOLS_REVISIONS_SHOW_AFTER, 0,0,1,0, "toggleShowRevisionsAfter", ap_GetState_ShowRevisionsAfter,NULL); _s(AP_MENU_ID_TOOLS_REVISIONS_SHOW_BEFORE, 0,0,1,0, "toggleShowRevisionsBefore", ap_GetState_ShowRevisionsBefore,NULL); _s(AP_MENU_ID_TOOLS_REVISIONS_ACCEPT_REVISION, 0,0,0,0, "revisionAccept", ap_GetState_RevisionPresent,NULL); _s(AP_MENU_ID_TOOLS_REVISIONS_REJECT_REVISION, 0,0,0,0, "revisionReject", ap_GetState_RevisionPresent,NULL); _s(AP_MENU_ID_TOOLS_REVISIONS_PURGE, 0,0,0,0, "purgeAllRevisions", ap_GetState_HasRevisions,NULL); _s(AP_MENU_ID_TOOLS_REVISIONS_COMPARE_DOCUMENTS, 0,1,0,0, "revisionCompareDocuments",NULL,NULL); _s(AP_MENU_ID_TOOLS_REVISIONS_AUTO, 0,0,1,0, "toggleAutoRevision",ap_GetState_AutoRevision,NULL); _s(AP_MENU_ID_TOOLS_REVISIONS_FIND_NEXT, 0,0,0,0, "revisionFindNext", ap_GetState_HasRevisions,NULL); _s(AP_MENU_ID_TOOLS_REVISIONS_FIND_PREV, 0,0,0,0, "revisionFindPrev", ap_GetState_HasRevisions,NULL); // RIVERA _s(AP_MENU_ID_TOOLS_ANNOTATIONS, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_TOOLS_ANNOTATIONS_INSERT, 0,1,0,0, "insAnnotation", ap_GetState_InAnnotation, NULL); _s(AP_MENU_ID_TOOLS_ANNOTATIONS_INSERT_FROMSEL, 0,1,0,0, "insAnnotationFromSel", ap_GetState_InAnnotation, NULL); _s(AP_MENU_ID_TOOLS_ANNOTATIONS_TOGGLE_DISPLAY, 0,0,1,0, "toggleDisplayAnnotations", ap_GetState_ToggleAnnotations, NULL); _s(AP_MENU_ID_GOTO_ANNOTATION, 0,0,0,0, "hyperlinkJumpPos", ap_GetState_AnnotationJumpOK, NULL); _s(AP_MENU_ID_EDIT_ANNOTATION, 0,1,0,0, "editAnnotation", ap_GetState_HyperlinkOK, NULL); _s(AP_MENU_ID_DELETE_ANNOTATION, 0,0,0,0, "deleteHyperlink", NULL, NULL); _s(AP_MENU_ID_TABLE,1,0,0,0,NULL,NULL,NULL); _s(AP_MENU_ID_TABLE_INSERT,1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_TABLE_INSERT_TABLE,0,1,0,0, "insertTable",ap_GetState_TableOK, NULL); _s(AP_MENU_ID_TABLE_INSERTTABLE,0,1,0,0, "insertTable",ap_GetState_TableOK , NULL); _s(AP_MENU_ID_TABLE_INSERT_COLUMNS_BEFORE,0,0,0,0, "insertColsBefore", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_INSERT_COLUMNS_AFTER,0,0,0,0, "insertColsAfter", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_INSERTCOLUMN,0,0,0,0, "insertColsAfter", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_INSERT_ROWS_BEFORE,0,0,0,0,"insertRowsBefore", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_INSERT_ROWS_AFTER,0,0,0,0,"insertRowsAfter", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_INSERTROW,0,0,0,0,"insertRowsAfter", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_INSERT_CELLS,0,0,0,0, NULL, ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_INSERT_SUMROWS,0,0,0,0, "insertSumRows", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_INSERT_SUMCOLS,0,0,0,0, "insertSumCols", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_DELETE,1,0,0,0, NULL, ap_GetState_PointOrAnchorInTable, NULL); _s(AP_MENU_ID_TABLE_DELETE_TABLE,0,0,0,0, "deleteTable", ap_GetState_PointOrAnchorInTable, NULL); _s(AP_MENU_ID_TABLE_DELETETABLE,0,0,0,0, "deleteTable", ap_GetState_PointOrAnchorInTable, NULL); _s(AP_MENU_ID_TABLE_DELETE_COLUMNS,0,0,0,0, "deleteColumns", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_DELETECOLUMN,0,0,0,0, "deleteColumns", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_DELETE_ROWS,0,0,0,0, "deleteRows", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_DELETEROW,0,0,0,0, "deleteRows", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_DELETE_CELLS,0,0,0,0, "deleteCell", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_TEXTTOTABLE_ALL,1,0,0,0, "textToTable", ap_GetState_TextToTableOK, NULL); _s(AP_MENU_ID_TABLE_TEXTTOTABLE_NOSPACES,1,0,0,0, "textToTableNoSpaces", ap_GetState_TextToTableOK, NULL); _s(AP_MENU_ID_TABLE_SORTROWSASCEND,1,0,0,0, "sortRowsAscend", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_SORTROWSDESCEND,1,0,0,0, "sortRowsDescend", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_SORTCOLSASCEND,1,0,0,0, "sortColsAscend", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_SORTCOLSDESCEND,1,0,0,0, "sortColsDescend", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_TABLETOTEXTCOMMAS,1,0,0,0, "tableToTextCommas", ap_GetState_PointOrAnchorInTable, NULL); _s(AP_MENU_ID_TABLE_TABLETOTEXTTABS,1,0,0,0, "tableToTextTabs", ap_GetState_PointOrAnchorInTable, NULL); _s(AP_MENU_ID_TABLE_TABLETOTEXTCOMMASTABS,1,0,0,0, "tableToTextCommasTabs", ap_GetState_PointOrAnchorInTable, NULL); _s(AP_MENU_ID_TABLE_SELECT,1,0,0,0, NULL, ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_SELECT_TABLE,0,0,0,0, "selectTable", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_SELECT_COLUMN,0,0,0,0, "selectColumn", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_SELECT_ROW,0,0,0,0, "selectRow", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_SELECT_CELL,0,0,0,0, "selectCell", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_MERGE_CELLS,0,1,0,0, "mergeCells", ap_GetState_InTable, NULL); _s(AP_MENU_ID_TABLE_SPLIT_CELLS,0,1,0,0, "splitCells", ap_GetState_InTableMerged, NULL); _s(AP_MENU_ID_TABLE_SPLIT_TABLE,0,0,0,0, NULL, ap_GetState_AlwaysDisabled, NULL); _s(AP_MENU_ID_TABLE_FORMAT,0,1,0,0, "formatTable", ap_GetState_PointOrAnchorInTable, NULL); _s(AP_MENU_ID_TABLE_AUTOFIT,0,0,0,0, "autoFitTable", ap_GetState_PointInTable, NULL); _s(AP_MENU_ID_TABLE_TABLETOTEXT,0,0,0,0, NULL, ap_GetState_PointInTable, NULL); _s(AP_MENU_ID_TABLE_HEADING_ROWS_REPEAT,0,0,0,0, NULL, ap_GetState_PointInTable, NULL); _s(AP_MENU_ID_TABLE_HEADING_ROWS_REPEAT_THIS,0,0,0,0, "repeatThisRow", ap_GetState_PointInTable, NULL); _s(AP_MENU_ID_TABLE_HEADING_ROWS_REPEAT_REMOVE,0,0,0,0, "removeThisRowRepeat", ap_GetState_InTableIsRepeat, NULL); _s(AP_MENU_ID_TABLE_SORT,0,0,0,0, NULL, ap_GetState_PointOrAnchorInTable, NULL); _s(AP_MENU_ID_TABLE_TEXTTOTABLE,0,0,0,0, NULL, ap_GetState_TextToTableOK, NULL); _s(AP_MENU_ID_CONTEXT_REVISIONS_ACCEPT_REVISION, 0,0,0,0, "revisionAccept", ap_GetState_RevisionPresent,NULL); _s(AP_MENU_ID_CONTEXT_REVISIONS_REJECT_REVISION, 0,0,0,0, "revisionReject", ap_GetState_RevisionPresent, NULL); _s(AP_MENU_ID_CONTEXT_REVISIONS_FIND_NEXT, 0,0,0,0, "revisionFindNext", ap_GetState_HasRevisions,NULL); _s(AP_MENU_ID_CONTEXT_REVISIONS_FIND_PREV, 0,0,0,0, "revisionFindPrev", ap_GetState_HasRevisions,NULL); _s(AP_MENU_ID_TOOLS_REVISIONS_SET_VIEW_LEVEL, 0,1,0,0, "revisionSetViewLevel", ap_GetState_RevisionsSelectLevel, NULL); _s(AP_MENU_ID_TOOLS_HISTORY, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_TOOLS_HISTORY_SHOW, 0,1,0,0, "history", ap_GetState_History, NULL); _s(AP_MENU_ID_TOOLS_HISTORY_PURGE, 0,0,0,0, "purgeAllRevisions", ap_GetState_HasRevisions, NULL); _s(AP_MENU_ID_WINDOW, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_WINDOW_NEW, 0,0,0,0, "newWindow", NULL, NULL); _s(AP_MENU_ID_WINDOW_1, 0,0,0,0, "activateWindow_1", ap_GetState_Window, ap_GetLabel_Window); _s(AP_MENU_ID_WINDOW_2, 0,0,0,0, "activateWindow_2", ap_GetState_Window, ap_GetLabel_Window); _s(AP_MENU_ID_WINDOW_3, 0,0,0,0, "activateWindow_3", ap_GetState_Window, ap_GetLabel_Window); _s(AP_MENU_ID_WINDOW_4, 0,0,0,0, "activateWindow_4", ap_GetState_Window, ap_GetLabel_Window); _s(AP_MENU_ID_WINDOW_5, 0,0,0,0, "activateWindow_5", ap_GetState_Window, ap_GetLabel_Window); _s(AP_MENU_ID_WINDOW_6, 0,0,0,0, "activateWindow_6", ap_GetState_Window, ap_GetLabel_Window); _s(AP_MENU_ID_WINDOW_7, 0,0,0,0, "activateWindow_7", ap_GetState_Window, ap_GetLabel_Window); _s(AP_MENU_ID_WINDOW_8, 0,0,0,0, "activateWindow_8", ap_GetState_Window, ap_GetLabel_Window); _s(AP_MENU_ID_WINDOW_9, 0,0,0,0, "activateWindow_9", ap_GetState_Window, ap_GetLabel_Window); _s(AP_MENU_ID_WINDOW_MORE, 0,1,0,0, "dlgMoreWindows", NULL, ap_GetLabel_WindowMore); _s(AP_MENU_ID_WEB_SAVEASWEB, 0,1,0,0, "fileSaveAsWeb", NULL, NULL); _s(AP_MENU_ID_WEB_WEBPREVIEW, 0,0,0,0, "filePreviewWeb", NULL, NULL); _s(AP_MENU_ID_HELP, 1,0,0,0, NULL, NULL, NULL); _s(AP_MENU_ID_HELP_CONTENTS, 0,0,0,0, "helpContents", NULL, ap_GetLabel_Contents); _s(AP_MENU_ID_HELP_INTRO, 0,0,0,0, "helpIntro", NULL, ap_GetLabel_Intro); _s(AP_MENU_ID_HELP_CHECKVER, 0,0,0,0, "helpCheckVer", NULL, ap_GetLabel_Checkver); _s(AP_MENU_ID_HELP_SEARCH, 0,0,0,0, "helpSearch", NULL, ap_GetLabel_Search); _s(AP_MENU_ID_HELP_ABOUT, 0,1,0,0, "dlgAbout", NULL, ap_GetLabel_About); _s(AP_MENU_ID_HELP_ABOUT_GNOMEOFFICE, 0,0,0,0, "helpAboutGnomeOffice", NULL, NULL); _s(AP_MENU_ID_HELP_CREDITS, 0,0,0,0, "helpCredits", NULL, NULL); _s(AP_MENU_ID_HELP_REPORT_BUG, 0,0,0,0, "helpReportBug", NULL, NULL); #ifdef ENABLE_SPELL _s(AP_MENU_ID_SPELL_SUGGEST_1, 0,0,0,0, "spellSuggest_1", ap_GetState_Suggest, ap_GetLabel_Suggest); _s(AP_MENU_ID_SPELL_SUGGEST_2, 0,0,0,0, "spellSuggest_2", ap_GetState_Suggest, ap_GetLabel_Suggest); _s(AP_MENU_ID_SPELL_SUGGEST_3, 0,0,0,0, "spellSuggest_3", ap_GetState_Suggest, ap_GetLabel_Suggest); _s(AP_MENU_ID_SPELL_SUGGEST_4, 0,0,0,0, "spellSuggest_4", ap_GetState_Suggest, ap_GetLabel_Suggest); _s(AP_MENU_ID_SPELL_SUGGEST_5, 0,0,0,0, "spellSuggest_5", ap_GetState_Suggest, ap_GetLabel_Suggest); _s(AP_MENU_ID_SPELL_SUGGEST_6, 0,0,0,0, "spellSuggest_6", ap_GetState_Suggest, ap_GetLabel_Suggest); _s(AP_MENU_ID_SPELL_SUGGEST_7, 0,0,0,0, "spellSuggest_7", ap_GetState_Suggest, ap_GetLabel_Suggest); _s(AP_MENU_ID_SPELL_SUGGEST_8, 0,0,0,0, "spellSuggest_8", ap_GetState_Suggest, ap_GetLabel_Suggest); _s(AP_MENU_ID_SPELL_SUGGEST_9, 0,0,0,0, "spellSuggest_9", ap_GetState_Suggest, ap_GetLabel_Suggest); _s(AP_MENU_ID_SPELL_IGNOREALL, 0,0,0,0, "spellIgnoreAll", NULL, NULL); _s(AP_MENU_ID_SPELL_ADD, 0,0,0,0, "spellAdd", NULL, NULL); #endif // ... add others here ... _s(AP_MENU_ID__BOGUS2__, 0,0,0,0, NULL, NULL, NULL); #undef _s return pActionSet; }
void Renderer::_write_pfxhair(liqRibPfxHairData* pData, const structJob ¤tJob__) { CM_TRACE_FUNC("_write_pfxhair("<<pData->getFullPathName()<<","<<currentJob__.name<<")"); // if( pData->isEmpty() ) { liquidMessage2(messageWarning, "pfxHair is empty: %s", pData->getFullPathName()); return; } // liqRibNodePtr ribNode__ = liqRibTranslator::getInstancePtr()->htable->find( pData->objDagPath.fullPathName(), pData->objDagPath, MRT_Unknown ); assert( ribNode__!=0 ); assert( ribNode__->path().fullPathName() == pData->objDagPath.fullPathName() ); const bool bMotionBlur = ribNode__->motion.transformationBlur && ( ribNode__->object( 1 ) ) && //( ribNode__->object(0)->type != MRT_Locator ) && // Why the f**k do we not allow motion blur for locators? ( !currentJob__.isShadow || currentJob__.deepShadows ); bool bGeometryMotion = liqglo.liqglo_doDef && bMotionBlur && ( ribNode__->object(0)->type != MRT_RibGen ); unsigned int sample_first = 0; unsigned int sample_last = bGeometryMotion? (liqglo.liqglo_motionSamples - 1):sample_first; _s("\n// Renderer::exportOneGeometry_Mesh("<<ribNode__->name.asChar()<<","<<sample_first<<","<<sample_last<<")"); const liqRibDataPtr data = ribNode__->object(sample_first)->getDataPtr(); // // // MStatus status; int degree; MFnDagNode fnDN(data->objDagPath); IfMErrorWarn( liquidGetPlugValue(fnDN, "degree", degree, status) ); // // MIntArray triangleCounts,triangleVertices; // IfMErrorWarn(fnMesh.getTriangles(triangleCounts, triangleVertices)); // // MString currentUVsetName; // IfMErrorWarn(fnMesh.getCurrentUVSetName(currentUVsetName)); // // geometry data (shape) _s("\n//############################### mesh #"); _s("//shape full path name="<<data->getFullPathName()); #ifdef TRANSFORM_SHAPE_PAIR const std::string objectName(ribNode__->name.asChar());//shape #else// SHAPE SHAPE_object PAIR const std::string objectName(getObjectName(ribNode__->name.asChar()));//shape+"_object" #endif //todo }
namespace OPL { // Config implementation enum OplEmulator { kAuto = 0, kMame = 1, kDOSBox = 2 }; OPL::OPL() { if (_hasInstance) error("There are multiple OPL output instances running"); _hasInstance = true; } const Config::EmulatorDescription Config::_drivers[] = { { "auto", "<default>", kAuto, kFlagOpl2 | kFlagDualOpl2 | kFlagOpl3 }, { "mame", _s("MAME OPL emulator"), kMame, kFlagOpl2 }, #ifndef DISABLE_DOSBOX_OPL { "db", _s("DOSBox OPL emulator"), kDOSBox, kFlagOpl2 | kFlagDualOpl2 | kFlagOpl3 }, #endif { 0, 0, 0, 0 } }; Config::DriverId Config::parse(const Common::String &name) { for (int i = 0; _drivers[i].name; ++i) { if (name.equalsIgnoreCase(_drivers[i].name)) return _drivers[i].id; } return -1; } Config::DriverId Config::detect(OplType type) { uint32 flags = 0; switch (type) { case kOpl2: flags = kFlagOpl2; break; case kDualOpl2: flags = kFlagDualOpl2; break; case kOpl3: flags = kFlagOpl3; break; } DriverId drv = parse(ConfMan.get("opl_driver")); // When a valid driver is selected, check whether it supports // the requested OPL chip. if (drv != -1 && drv != kAuto) { // If the chip is supported, just use the driver. if ((flags & _drivers[drv].flags)) { return drv; } else { // Else we will output a warning and just // return that no valid driver is found. warning("Your selected OPL driver \"%s\" does not support type %d emulation, which is requested by your game", _drivers[drv].description, type); return -1; } } // Detect the first matching emulator drv = -1; for (int i = 1; _drivers[i].name; ++i) { if (_drivers[i].flags & flags) { drv = _drivers[i].id; break; } } return drv; } OPL *Config::create(OplType type) { return create(kAuto, type); } OPL *Config::create(DriverId driver, OplType type) { // On invalid driver selection, we try to do some fallback detection if (driver == -1) { warning("Invalid OPL driver selected, trying to detect a fallback emulator"); driver = kAuto; } // If autodetection is selected, we search for a matching // driver. if (driver == kAuto) { driver = detect(type); // No emulator for the specified OPL chip could // be found, thus stop here. if (driver == -1) { warning("No OPL emulator available for type %d", type); return 0; } } switch (driver) { case kMame: if (type == kOpl2) return new MAME::OPL(); else warning("MAME OPL emulator only supports OPL2 emulation"); return 0; #ifndef DISABLE_DOSBOX_OPL case kDOSBox: return new DOSBox::OPL(type); #endif default: warning("Unsupported OPL emulator %d", driver); // TODO: Maybe we should add some dummy emulator too, which just outputs // silence as sound? return 0; } } bool OPL::_hasInstance = false; } // End of namespace OPL