aboutsummaryrefslogtreecommitdiff
path: root/base/main.cpp
AgeCommit message (Collapse)Author
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
2012-09-18BASE: Close possible EngineManager memory leak.D G Turner
This singleton was omitted from fuzzie's memory leak fixes in 6bff611. Thanks to Tomaz^ for spotting this.
2012-05-03Merge pull request #213 from fuzzie/leak-fixesJohannes Schickel
The pull request in question is "Memory leak fixes".
2012-04-01BASE: Construct empty String instead of using "".Johannes Schickel
2012-03-31ENGINES: Return all available custom GUI options if no target is specifiedFilippos Karapetis
This is used to set default settings for all custom game options when an engine starts
2012-03-28BASE: Free TTFLibrary singleton on shutdown.Alyssa Milburn
This uses a helper function because TTFLibrary is internal.
2012-03-28BASE: Destroy singletons on exit.Alyssa Milburn
2012-03-19GUI: Add per-engine and per-game optionsFilippos Karapetis
2012-02-27KEYMAPPER: Rename HardwareKey to HardwareInputTarek Soliman
2012-02-22KEYMAPPER: Fix mistake in last commitTarek Soliman
2012-02-22KEYMAPPER: Minor cleanupTarek Soliman
2012-02-21KEYMAPPER: Remove automapping dead codeTarek Soliman
2012-02-20KEYMAPPER: Move F7 and F8 handling to DefaultEventMapperTarek Soliman
2012-02-13KEYMAPPER: Fix Action ctor args in most keymapsTarek Soliman
2012-02-12KEYMAPPER: Allow ports to define their own global keymapTarek Soliman
2012-02-04KEYMAPPER: Added Toggle FullScreen actionTarek Soliman