This doesn't make any practical difference, since the search
manager already guards against duplicate paths, but it does get rid
of a slightly confusing warning message when you have a global
extra path configured.
It was badly broken after refactoring into EventObserver.
Fitst, deinit() method was never called which lead to bad record
files. Then, the concept of counting pollEvent() calls was ignored.
Introduced dispatchPoll() method of EventObserver which is implemented
in EventRecorder. It counts calls so is able to inject events at
more proper time.
Additionally now event times are recorded.
Now SaveStateDescriptor no longer subclasses HashMap. Instead all possible
saved meta data is included directly into SaveStateDescriptor.
This is slightly less flexible, but we never needed that flexibility so far.
On the other hand it should reduce the memory usage. At least on my system
(Linux/amd64) the old SaveStateDescriptor had a size of 928 and the new
SaveStateDescriptor has a size of 200.
Silences the clang warning:
static data member specialization of '_singleton' must
originally be declared in namespace 'Common'; accepted as a C++0x
extension [-Wc++0x-extensions]
Wrapping "namespace Common {}" around the macro assignment causes clang
to complain about a spurious semicolon, and removing the semicolon at
the end of the macro causes some editors to misbehave.
Changing the requirement of using the macro in one namespace (the
global) to another (Common) seems a small price to pay to
silence a warning.
WinCE's strtol can't actually do proper error handling because it is
lacking errno, so just check the bounds instead. If you really have
some need to pass LONG_MIN/LONG_MAX as command-line parameters then
it could always be #ifdeffed, but I'm assuming no-one cares.
- endptr needs not be initialised before calling strtol(), it is always set by strtol().
- endptr is never a null pointer after calling strtol().
- There is no need to rely on strtol() setting EINVAL (which is not guaranteed).
Testing whether strtol() parsed till the end of the string is sufficient (it is guaranteed that the string is not empty at this point).
- It is sufficient to just test for ERANGE without inspecting the return value, because a successful call to strtol() does not change errno.
Signed-off-by: Alyssa Milburn <fuzzie@fuzzie.org>
This tries to make our code a bit more compliant with our code formatting
conventions. For future use, this is the command I used:
git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
ADGF_UNSTABLE is always warned about.
ADGF_TESTING is only warned about when running
configure with --enable-relase.
Both warnings are subject to the enable_wip_game_warning
config option.
I manually resolved all conflicts, and inspected every single change.
Many were due to the version string mismatch and thus easily resolved.
The MSVC project files add in the 1-3-0 branch were not merged,
neither where the changes to gui/themes/translations.dat.
Conflicts:
NEWS
backends/base-backend.cpp
backends/graphics/samsungtvsdl/samsungtvsdl-graphics.cpp
backends/module.mk
backends/platform/ds/arm9/makefile
backends/platform/psp/README.PSP
backends/platform/samsungtv/main.cpp
backends/platform/samsungtv/samsungtv.cpp
backends/saves/posix/posix-saves.cpp
base/commandLine.cpp
base/internal_version.h
base/main.cpp
common/array.h
configure
devtools/create_project/create_project.cpp
dists/android/AndroidManifest.xml
dists/android/plugin-manifest.xml
dists/iphone/Info.plist
dists/irix/scummvm.spec
dists/macosx/Info.plist
dists/redhat/scummvm-tools.spec
dists/redhat/scummvm.spec
dists/scummvm.rc
dists/slackware/scummvm.SlackBuild
dists/wii/meta.xml
engines/sci/parser/vocabulary.cpp
engines/tinsel/handle.cpp
gui/themes/translations.dat
Instead of defining a hacked up Common::Error code, split the return
value of processSettings into two parts: An error code, and a value
which indicates whether the specified command was completely handled
by processSettings or not.
"DS: Prevent the command line help string from being included in the binary."
5f3a90a5f6911188b8d1ded08dbdf6d233e9eb7b
"GUI: Allow disabling of Mass Add dialog. Saves a few Kb of binary size on the DS, and is not particularly useful on that platform."
240ff87cf4472538d25a1c5628c8d15f1791ab1c
"GUI: Don't search for theme zip files on startup when running on the DS. Themes aren't supported anyway, and the search severely delays startup."
fe3b18ce0df03117081e83d99f4a2cbd864d3286
Right now, a few places in the frontend code still use printf and
consorts. We mark the affected files with a FIXME for now, and
add a dedicated exception for each. To be fixed!
Also tweak FORBIDDEN_SYMBOL_REPLACEMENT to hopefully really always
enforce a compiler error
Replace existing environment variable based revision number support by a file-based method
- Generate a special header file in the build output folder with the current revision number
- Include the new header file from internal_version.h when a specific define is set
- Update create_project to define SCUMMVM_INTERNAL_REVISION as needed and add the build output folder to the include path
- Remove support for git-svn clones in the revision script (not useful anymore after the switch to git)
Based on the SONiVOX® Embedded Audio Synthesis (EAS™) library, which is
part of the base Android OS.
CPU stats (Cortex A8 1GHz, monkey1 intro, peak values):
MAME OPL: 30%
DosBox OPL: 26%
EAS: 19%
This fixes the case where an MT-32 music type is erroneously returned with
the default GUI audio settings if an engine specifies MDT_PREFER_MT32. Many
thanks to wjp and fuzzie for their help and work on this
There are some calls to EngineManager::findGame() from within games, such as when loading saved games. It's critical not to unload the plugin from memory or other threads may crash. Therefore, we first scan using any plugin that's already in memory.
svn-id: r55089
After searching for the right plugin once, the filename will be saved to the config file under the domain 'plugin_files'. The key is the gameid and the value is the plugin file. The backup mechanism is searching plugin by plugin.
svn-id: r55061
The reason for this was that I found issues where the wrong functions were called in EngineManager for single plugin operation. Rather than inserting more messy #defines, I preferred to change the PluginManager to use virtual functions, which also makes EngineManager simpler.
svn-id: r55024
The reason to load each plugin was to figure out if it's a sound or engine plugin. Since all our plugin files are currently engines, there's no reason to load every file. If we get dynamic sound plugins, it'd be a good idea to make a quick and easy way to know which kind of plugin it is (e.g. a prefix or suffix in the filename).
svn-id: r55021
This should fix missing debugC output when the engine object uses debugC etc.
in its destructor (or functions called from there).
In theory all the engines should do that themselves, but to avoid any issues
because of them not doing it we still do it here to be safe.
svn-id: r54757
create_project will now use a different approach than recreating
base/internal_version.h. This is also because recreating this file might
result in accidental commits of the modified file and thus "screw up" the
version string on different systems.
svn-id: r54383
This makes it possible to write
DECLARE_SINGLETON(foo);
instead of
DECLARE_SINGLETON(foo)
without causing a warning about an extra semicolon.
The extra semicolon helps some editors at parsing the C++ code.
svn-id: r54258
One-plugin-at-a-time can have fragmentation caused by the ConfigManager if a game changes any configuration value. By reallocating and copying over the ConfigManager, we avoid this problem.
svn-id: r54243
This commit contains the AudioCDManager changes from the gsoc2010-opengl
branch. The other changes in that branch are restricted to the backends
directory only (plus configure).
The Nintendo DS and Dreamcast ports still need to be ported over to
the new Audio CD system, but that should be fairly easy to do.
svn-id: r54147
I reduced memory fragmentation using 2 principles: Plugins should be loaded for as little time as possible, and long lasting memory allocations should be allocated before plugins are loaded. There might still be a little fragmentation left.
Note that command line settings that require plugins to be loaded don't work yet, but they didn't work (properly) before either.
svn-id: r54097
- Changed the new dithering checkbox to be more generic (i.e. relevant for all engines that may support such a feature in the future)
- Changed the checkbox to be unchecked by default. As discussed on -devel, game enhancements in ScummVM should be off by default, and opt-in
- Changed the option from "sci_undither" to "disable_dithering"
- Changed theme version style to X.Y.Z and bumped it to 0.8.2
svn-id: r54090
From our current stance, this is a game enhancement, and should be on by default, like the rest of the game enhancements (AGI mouse, save/load replacement etc)
svn-id: r54070
This merge was extremely difficult to carry out. It wasn't entirely SVN's fault -- there were several merges to the branch that were done by hand. Please check for any issues and regressions. Also note that the DS makefile was not copied over since the "one at a time" plugin mode currently has too much fragmentation ie. it doesn't work.
svn-id: r54051
This is a first step towards getting rid of all uses of regular printf,
fprintf, vprintf, vfprintf, puts, fputs, etc. in our codebase.
The name format() reflects the purpose of the function, and parallels
String.format() in Java, boost::format, and others.
svn-id: r54004
This code should be enabled, when we decide to enable m_kiewitz' code to
disable the console window. Also we should add the command to the --help
output etc.
svn-id: r53769
This includes an rather hacky attempt to merge all the recent gp2x backend
changes into the branch. I suppose the gp2x backend and probably all new
backends, i.e. gph, dingux etc., might not compile anymore.
Since I have no way of testing those it would be nice if porters could look
into getting those up to speed in this branch.
svn-id: r53399
When the locale font are not found when loading the theme, it now
fallbacks to default language (i.e. English) and default font. For this to work
I had to move the TranslationManager initialization before the Theme is
loaded. Therefore it is now initialized when the GuiManager is constructed.
svn-id: r52896
The ELF loader does not have access to the symbols of the main
executable, it just relocates symbols to it via fixed offsets. We need
to make sure that loaded plugins are from the same link process to
prevent crashes. An embedded build date is used for that.
svn-id: r52730
Avoid linking all plugins against libstdc++ to free up some memory
(about ~40kb on Wii per plugin). Enable it on GameCube, Wii, DS and PSP
(PS2 doesn't have __cxa_atexit support in its libc).
svn-id: r52607
These devices are not able to create appropriate drivers.
The only purpose for now is having proper gui options and flags and music types for the device detector.
The corresponding GUIO flags for the new devices have been added, too.
svn-id: r51995
Only #define SCUMMVM_SVN_REVISION for base/version.cpp (at most), to
avoid having all source files implicitly depend on the SVN revision.
Also add a safeguard to prevent code from accidentally using the
internal header file base/internal_version.h.
svn-id: r51978
An #include was missing, causing the driver to never be built. Also fixed what
looked like a cut-and-paste error in generating the features string.
svn-id: r51056
* Added a yes/no variable _unix to configure, which controls when
-DUNIX is added to DEFINES
* Enable SEQ MIDI via _seq_midi by default on UNIX type systems,
except for those which override that.
* Switch SEQ MIDI code to check #define USE_SEQ_MIDI
(alternatively, we could compile it only conditionally...)
svn-id: r51055
Along with it documented that "0" is a special device handle
for the invalid device. Now getDeviceHandle returns 0, when
the identified device could not be found.
Also getMusicType now returns MT_INVALID (newly introduced),
when a non existing device was specified.
svn-id: r50470
This is a regression from r50158:
"LAUNCHER: hopefully fixed music driver selection via command line".
The problem here was that the code used operator[] of HashMap
to check whether "music-driver" was specified on command line,
but that on the other hand inserted a (key, value) pair with
a default constructed Common::String as value.
svn-id: r50469
In recent discussions on -devel it turned out, that this
feature is rather superfluous and instead we should rather
implement a proper error reporting in our GUI.
I also removed the dependency on iconv along with this.
svn-id: r50335
Based on patch #2903830: "Updated Translation Prototype" by alexbevi
which in turn is based on patch #1739965 by jvprat.
Currently it builds all translations right into ScummVM. Once the
feature will be accepted more widely, i.e. more translations will
pop up, it will be trivial to move translation strings to external
file.
Finished translation: Russian
Unfinished translation: Hungarian
Things which are nice to do:
- Language code -> language mapping for more user friendness
- Specifying fonts to be used with language
- Updating of interface language without restart. It will require
moving of much code to reflowLayout() methods for each dialog
The .po files must be in single byte encodings. I.e. no support
for Unicode.
svn-id: r49759
- Removed AudioCDManager Singleton, and changed code for using AudioCDManager in OSystem.
- Added initialization code for new AudioCDManager in BaseBackend and OSystem_SDL.
svn-id: r49548
Targets don't list savestates, plugins do; and since the user specified
a target, we should always list that first, and give the gameid only
as additional information.
svn-id: r48925
This removes the dependency on array.h from str.h.
Also, begun migration from the confusing type name "StringList" to
the more appropriate StringArray.
svn-id: r48282
We need to use a namespace Common { } there to make strict C++ compilers
like clang++ and comeau happy. I also added a slight comment about why
that is needed to the macro definition and a note that you need to use
it from the global namespace.
svn-id: r48254
- Introduced new OSystem method getHardwareKeySet() with default implementation
- Moved global keymap creation to base/main.cpp
- Moved GUI keymap creation to gui/GuiManager.cpp
- Added various safeguard checks to various keymapper methods
Now it is really possible to add keymapper to all backends.
svn-id: r40439