On some systems, passing signed chars to macros like isspace() etc. lead
to a runtime error. Hence, mark these macros as forbidden by default,
and introduce otherwise equivalent alternatives for them.
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