aboutsummaryrefslogtreecommitdiff
path: root/base/main.cpp
AgeCommit message (Collapse)Author
2020-01-01ENGINES: Copy the data referenced by QualifiedGameDescriptorBastien Bouclet
The engineId, gameId and description come from static data in the game engines. When the game engines are compiled as dynamic plugins, the QGD structure may outlive the engine plugin. Making a copy ensures the data remains available. Fixes #11292.
2019-11-17BACKENDS: Remove the Windows CE portCameron Cawley
2019-11-03BASE: Change the command line interface to use engine-qualified game namesBastien Bouclet
Qualified game names have the following form: engineId:gameId. Unqualified game names are still supported as long as they are not ambiguous. However they are considered deprecated and are no longer displayed by the --list-games command.
2019-11-03ENGINES: Automatically upgrade the targets on launch to add an engine IDBastien Bouclet
2019-11-03ENGINES: Change targets to have an 'engine ID'Bastien Bouclet
The engine ID identifies which engine should be used to launch the target. Also remove the 'single ID' system. Different games from engines that used that system now have different game IDs. Also-By: Matthew Hoops <clone2727@gmail.com>
2019-10-14TTS: Fix "No voice available" warningJaromir Wysoglad
2019-09-14JANITORIAL: Fix indentationEugene Sandulenko
2019-09-01TTS: Implement tts state switching when needed.Jaromir Wysoglad
The state has to be pushed and poped when there is a transition between game and gui code.
2019-09-01TTS: Make sure that TTS lang matches transMan langJaromir Wysoglad
2019-03-10BASE: Only reload engine plugins after return to launcherEric Culp
The other plugins do not need to be reloaded. Reloading the scaler plugins breaks the graphics.
2018-12-02GUI: Add an option to set the GUI language to the game languageBastien Bouclet
2018-07-08BASE: Add command line stretch mode argThierry Crozat
2018-06-13JANITORIAL: Fix comment typoTorbjörn Andersson
2018-06-03BASE: Remove temporary targets when they fail to launchBastien Bouclet
Prevents invalid targets created from the command line to show up in the launcher. Fixes Trac#2788.
2018-05-10ENGINES: Change MetaEngine::findGame to return a plain game descriptorBastien Bouclet
2018-04-15JANITORIAL: Fix whitespaceAdrian Frühwirth
2017-12-03BASE: Remove bad casts between incompatible Plugin typesColin Snover
Previously, a C-style cast was used to convert a Common::Array<Plugin *>, populated with pointers to StaticPlugin and DynamicPlugin instances, to a Common::Array<PluginSubclass<T> *>, but PluginSubclass<T> is a *sibling* class to StaticPlugin/DynamicPlugin, so this cast was invalid and the results undefined. The methods for retrieving subclasses of plugins can't be easily changed to just generate an array of temporary wrapper objects that expose an identical API which dereferences to the preferred PluginObject subclass because pointers to these objects are retained by other parts of ScummVM, so the wrappers would needed to be persisted or they would need to just re-expose the underlying Plugin object again. This indicated that a way to solve this problem is to have the callers receive Plugin objects and get the PluginObject from the Plugin by explicitly stating their desired type, in a similar manner to std::get(std::variant), so that the pattern used by this patch to solve the problem. Closes gh-1051.
2017-09-08UPDATES: Fix crash when compiling with updates enabled but without an ↵Thierry Crozat
UpdateManager This can happen when Sparkle was not found during configure which results in USE_UPDATES being defined but USE_SPARKLE not being defined.
2016-10-29COMMON: Add referencing and destruction of the OSDMessageQueue instanceThierry Crozat
Registering the OSDMessageQueue instance as an event source is now done right after the event manager is initialised. This ensures that it is created in a sensible place and not for example in another thread). Also registering the event source is moved to a separate function instead of being in the constructor to remove any issue in case some code tries to display a OSD Message very early on (the instance would be created then, but it would be registered as an event source later).
2016-10-17ALL: Fix compilation with disabled cloud but enabled libcurlEugene Sandulenko
2016-10-13GUI: Add checkbox and config option to enable/disable graphics filteringThierry Crozat
2016-10-09JANITORIAL: Remove more trailing spacesEugene Sandulenko
2016-08-24CLOUD: Do some refactoring/cleanupAlexander Tkachev
Nothing really major.
2016-08-24CLOUD: Replace USE_CLOUD with USE_LIBCURLAlexander Tkachev
In most cases that's the right one to check. USE_CLOUD is defined when either USE_LIBCURL or USE_SDL_NET are, which means if there is no curl, USE_CLOUD still could be defined and linking errors would appear.
2016-08-24CLOUD: Add LocalWebserverAlexander Tkachev
Available as LocalServer singleton. It's being started and stopped by StorageWizardDialog. It doesn't handle clients yet, though.
2016-08-24CLOUD: Make CloudManager singletonAlexander Tkachev
It's needed to ::destroy() it in main().
2016-08-24CLOUD: Fix ConnectionManager's destructorAlexander Tkachev
It now terminates active Requests.
2016-08-24CLOUD: Add DropboxCreateDirectoryRequestAlexander Tkachev
Also add CloudManager::testFeature(), because syncSaves() now works fine and I don't want to break it again and again with my testing requests.
2016-08-24CLOUD: Add Dropbox into CloudManager's configsAlexander Tkachev
This commit adds: * ConfMan's new "cloud" domain; * CloudManager's init() method, where it loads keys from "cloud" configs domain; * CurlJsonRequest's addHeader() and addPostField() methods; * temporary Storage's printInfo() method; * DropboxStorage's implementation of printInfo(), which is using access token and user id; * DropboxStorage's loadFromConfig() static method to load access token and user id from configs and create a Storage instance with those; * temporary DropboxStorage's authThroughConsole() static method, which guides user through auth process from the console. So, in CloudManager's init() implementation ScummVM checks that there is "current_storage_type" key in "cloud" domain of configs, and loads corresponding storage if there is such key. If there is no such key, ScummVM offers user to auth with Dropbox. That's done through console, and thus it's temporary (it also requires restarting ScummVM twice and manually editing config.ini file).
2016-08-24CLOUD: Add USE_CLOUD featureAlexander Tkachev
Adds USE_CLOUD in both configure and create_project.
2016-08-24CLOUD: Add Cloud::Manager and Cloud::StorageAlexander Tkachev
This commit introduces Common::CloudManager, which can be accessed from OSystem. The backend for this manager is Cloud::Manager (defined in backends/cloud/manager.h). It should load all users storages from configs and provide access to current Storage instance. For now it just creates a new one. Cloud::Storage (backends/cloud/storage.h) provides an API to interact with cloud storage, for example, create new directory or sync files. Right now it's not ready and has only two dummy methods: listDirectory() and syncSaves(). There is Cloud::Dropbox::DropboxStorage backend (backends/cloud/dropbox/dropboxstorage.h) for Cloud::Storage. Right now it implements both listDirectory() and syncSaves() with starting timer task and handling it by printing out some JSON examples.
2016-08-24CLOUD: Integrate CloudThread into OSystemAlexander Tkachev
Would be changed soon.
2016-08-24CLOUD: Add SimpleJSON library as Common::JSONAlexander Tkachev
This commit also adds CloudThread class, which work() method is called every second by TimerManager. Right now it prints JSON examples on the console, so that's why it's introduced with SimpleJSON library.
2016-08-13COMMON: Introduce --debug-channels-only command line flag.Eugene Sandulenko
Many of our systems currently generate significant amount of debug output on deeper levels. Now, when your engine is using Debug Channels, you might want to show that debug information only, which is currently not possible, as the generic output will be mixed in your output. Alternative solution would be to implement possibility to specify per-channel debug levels.
2016-06-05BASE: Allow setting the debug flags from the configuration fileBastien Bouclet
Useful for devices where passing command line arguments is not possible.
2016-05-16Merge pull request #710 from vandalo/masterEugene Sandulenko
COMMON: Fix wrong warning message
2016-04-16COMMON: Fix wrong error messagevandalo
The error message was not correct. When you add a game data dir to launcher and after do this rename game data dir the error was wrong. It said that the "path wasn't a directory", the expected error message was "Path does not exists" because we had changed. How to solve this: We split in two the validation of the path, first we check if it's a existing path and then if the path is a directory. if (!dir.exists()) err = Common::kPathDoesNotExist; else if (!dir.isDirectory()) err = Common::kPathNotDirectory; Solve Bug: 6765 Wrong error code if directory missing
2016-03-30UPDATES: Plug updates dialog in.Eugene Sandulenko
Launched when ScummVM is run first time with updates feature.
2016-01-17BASE: Initialize default GUI option values before engine instantiation.Johannes Schickel
This fixes engines (like AGI) which query the configuration options inside their constructor.
2015-02-22BASE: Fix infinite loop upon trying to play a game and not finding the engineMatthew Hoops
A regression from f74ba29753de23bad9a07f531fc4c03ea3375594
2014-12-30SCUMM: Add a "chained games manager"Torbjörn Andersson
This replaces the somewhat ugly use of the config manager to store the chained games.
2014-12-30SCUMM: Enable Day of the Tentacle easter eggTorbjörn Andersson
Instead of returning to the launcher, a game may now specify a list of "chained" games and optional save slots. The first game is popped from the list and started. Quitting still quits the entire ScummVM. It seemed like the sensible thing to do.
2014-08-28GUI: change FullScreen into fullscreenBen Castricum
This makes it consistant with other references to fullscreen.
2014-06-05BASE: Allow 'all' to enable all debug channels via CLI too.Johannes Schickel
2014-02-18BASE: Make GPL headers consistent in themselves.Johannes Schickel
2014-01-22ENGINES: Introduce method Engine::initializePath which sets up SearchMan.Johannes Schickel
This replaces the hardcoded addition of the game path in runGame in base/main.cpp by an engine configurable one.
2013-10-19BASE: Add hack to switch graphics manager in runGame.Johannes Schickel
This is a (temporary) hack to assure that when the launcher is set up as an SurfaceSDL graphics mode and the game is using an OpenGL graphics mode everything will work as expected.
2013-07-06ALL: Don't use EventRecorder at all when not compiled inMatthew Hoops
2013-05-17RECORDER: Implement Events RecorderEugene Sandulenko
2012-09-17GRAPHICS: Rework YUV->RGB code a bitMatthew Hoops