Commit graph

3874 commits

Author SHA1 Message Date
Eugene Sandulenko
76c6bcef2b
Revert "COMMON: Add an optional parameter to tag2str() for printing non-printables"
This reverts commit c11fedb47e.

It is a C++11 feature...
2021-06-29 22:12:25 +02:00
Eugene Sandulenko
c11fedb47e
COMMON: Add an optional parameter to tag2str() for printing non-printables 2021-06-29 20:42:40 +02:00
D G Turner
e83f23f264 COMMON: Fix Development Tools Build
This is not the best solution as it removes the warning when this
code is used by devtools such as create_titanic, but getting this to
link would need inclusion of textconsole.o via shim and then still
breaks on g_system, so fastest solution to restore build.
2021-06-29 15:39:27 +01:00
Torbjörn Andersson
a420aa9594 COMMON: Include textconsole.h in base-str.cpp
While it's not needed to build ScummVM, apparently some of the other
tools that use String do not include textconsole.h and complain that
warning() is undefined.
2021-06-29 15:12:20 +02:00
Torbjörn Andersson
ab06f27d43 COMMON: Add warning when adding \0 to a String
Some engines do this, and it's not really known what should happen. We
need to decide on a behavior, and stick to that. This warning is to help
find where it happens.

From my own tests, it can happen in at least ADL, Avalanche, Chewy,
Director, Blazing Dragons, MacVenture, MADS, Prince, Stark, Startrek,
and Trecision. Only ADL is known to be broken by the current behavior.

The result of my test can be found at
http://www.update.uu.se/~d91tan/tmp/string.txt
2021-06-29 13:37:05 +02:00
Donovan Watteau
183e946ec8 ACHIEVEMENTS: Fix compilation when translations are disabled 2021-06-27 17:47:17 +02:00
Fiodar Stryzhniou
58b1c0cb5e COMMON: LUA: Fix warnings for header search failure.
WARNING: Can't find following headers in User or System Include Paths "luaconf.h" "lua.h" "lua.h"
2021-06-26 08:41:47 +03:00
Orgad Shaneh
780c4568c1 GUI: Fix compiler warning
../scummvm/gui/options.cpp: In member function 'virtual void GUI::OptionsDialog::apply()':
../scummvm/gui/options.cpp:647:82: warning: comparison of integer expressions of different signedness: 'uint' {aka 'unsigned int'} and 'int' [-Wsign-compare]
  647 |     else if (scalerPlugins[defaultScaler]->get<ScalerPluginObject>().getFactor() != g_system->getDefaultScaleFactor())
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2021-06-24 11:34:45 +03:00
Cameron Cawley
da5d773924 BACKENDS: Add getDefaultScaler and getDefaultScaleFactor to OSystem 2021-06-23 21:29:53 +02:00
Cameron Cawley
0e6b9c2bb6 SDL: Begin refactoring the API for selecting scalers 2021-06-23 21:29:53 +02:00
lb_ii
6f8764b14c COMMON: Rewrite BASESTRING::contains() with algorithm from BASESTRING::find() 2021-06-21 02:29:05 +03:00
lb_ii
b886c238fe COMMON: Fix BASESTRING::contains() 2021-06-21 02:29:05 +03:00
Cameron Cawley
cba6f05d71 COMMON: Fix compilation with C++98 2021-06-19 17:22:26 +01:00
Martin Gerhardy
adc2671449 COMMON: fixed endless loop in recordings with only one screenshot
the stream was read after its end and the err() state wasn't checked properly
2021-06-19 14:34:52 +02:00
Martin Gerhardy
5af1192580 BACKENDS: fixed segfault in EventRecorder with buffer out of bounds writes
==3124361== Invalid write of size 8
==3124361==    at 0x483F803: memmove (vg_replace_strmem.c:1270)
==3124361==    by 0x4DBF61: SurfaceSdlGraphicsManager::grabOverlay(void*, int) const (surfacesdl-graphics.cpp:1753)
==3124361==    by 0x482051: ModularGraphicsBackend::grabOverlay(void*, int) (modular-backend.cpp:215)
==3124361==    by 0x434EE1: GUI::ThemeEngine::clearAll() (ThemeEngine.cpp:376)
==3124361==    by 0x40128E: GUI::EventRecorder::preDrawOverlayGui() (EventRecorder.cpp:558)
==3124361==    by 0x481DB2: ModularGraphicsBackend::updateScreen() (modular-backend.cpp:173)
==3124361==    by 0x559967: Graphics::Screen::updateScreen() (screen.cpp:62)
==3124361==    by 0x55991C: Graphics::Screen::update() (screen.cpp:56)
==3124361==    by 0x38AFC7: TwinE::TwineScreen::update() (twine.cpp:126)
==3124361==    by 0x3B8759: TwinE::Screens::adjustPalette(unsigned char, unsigned char, unsigned char, unsigned int const*, int) (screens.cpp:150)
==3124361==    by 0x3B8A89: TwinE::Screens::fadeToPal(unsigned int const*) (screens.cpp:207)
==3124361==    by 0x3B8403: TwinE::Screens::loadImage(int, int, bool) (screens.cpp:80)
==3124361==  Address 0x31453050 is 16 bytes after a block of size 512,000 alloc'd
==3124361==    at 0x483AB65: calloc (vg_replace_malloc.c:760)
==3124361==    by 0x55B38C: Graphics::Surface::create(unsigned short, unsigned short, Graphics::PixelFormat const&) (surface.cpp:75)
==3124361==    by 0x551111: Graphics::ManagedSurface::create(unsigned short, unsigned short, Graphics::PixelFormat const&) (managed_surface.cpp:153)
==3124361==    by 0x4352D5: GUI::ThemeEngine::setGraphicsMode(GUI::ThemeEngine::GraphicsMode) (ThemeEngine.cpp:453)
==3124361==    by 0x434A52: GUI::ThemeEngine::init() (ThemeEngine.cpp:324)
==3124361==    by 0x43501B: GUI::ThemeEngine::refresh() (ThemeEngine.cpp:394)
==3124361==    by 0x405780: GUI::GuiManager::screenChange() (gui-manager.cpp:603)
==3124361==    by 0x405C6B: GUI::GuiManager::processEvent(Common::Event const&, GUI::Dialog*) (gui-manager.cpp:677)
==3124361==    by 0x404EBA: GUI::GuiManager::runLoop() (gui-manager.cpp:429)
==3124361==    by 0x3FD847: GUI::Dialog::runModal() (dialog.cpp:77)
==3124361==    by 0x36D747: launcherDialog() (main.cpp:106)
==3124361==    by 0x36FF92: scummvm_main (main.cpp:552)

It looks like the _videoMode.overlayHeight in SurfaceSdlGraphicsManager::grabOverlay and ThemeEngine::_backBuffer::h are somehow out of sync after
starting the game in a different resolution as the gui was started with. So the overlayHeight is updated - but the backbuffer (Surface) is not resized.

This is with event recorder being active - right after starting the game and switching the resolution.
2021-06-19 14:34:52 +02:00
lb_ii
9eef2c954d COMMON: Support Farsi at convertBiDiString(input, lang, dir) 2021-06-18 23:03:36 +03:00
lb_ii
dce92c8e41 COMMON: Introduce BiDi paragraph direction types 2021-06-18 23:03:36 +03:00
lb_ii
9cd8bbafa9 COMMON: Remove unused UnicodeBiDiText constructor 2021-06-18 23:03:36 +03:00
Martin Gerhardy
dfd6b6a9a4 COMMON: moved AchievementDescriptionList into Common namespace
getAchievementsInfo is also moved into the MetaEngine to reduce code duplication
2021-06-16 00:25:14 +03:00
sluicebox
f2f28c4549 COMMON: Rename DebugManager methods, update comments 2021-06-14 12:42:38 -05:00
sluicebox
efd4f9ff9d COMMON: Remove DebugManager::debugFlagsClear() 2021-06-14 12:42:38 -05:00
sluicebox
fa247d13de COMMON: Rename DebugManager global/member names 2021-06-14 12:42:38 -05:00
lb_ii
0975ab0eaf COMMON: Rename "Persian (Iran)" to "Persian", since there are no other regions in the list 2021-06-13 00:25:53 +03:00
Le Philousophe
3b61377f6b ACHIEVEMENTS: Remove C++11 constructs 2021-06-12 17:06:31 +02:00
lb_ii
8aa6911cca ACHIEVEMENTS: Fix codacy issues 2021-06-10 01:56:23 +03:00
lb_ii
a556ccf894 ACHIEVEMENTS: Use TransMan to decide which achievements language to use 2021-06-10 01:56:23 +03:00
lb_ii
fa018b4b84 ACHIEVEMENTS: Check VERSION at achievements.dat 2021-06-10 01:56:23 +03:00
lb_ii
dea2085eb2 ACHIEVEMENTS: Add API to get stats and achivements descriptions 2021-06-10 01:56:23 +03:00
lb_ii
629e5c2783 ACHIEVEMENTS: Load achivements descriptions from achievements.dat 2021-06-10 01:56:23 +03:00
trembyle
30dfb37623 COMMON: Add Pippin platform for Director engine
Differences with Mac platform include disc authentication and the
presence of Mac System 7 files on disc.
2021-06-09 21:49:28 +02:00
Martin Gerhardy
6772dabd9a COMMON: replaced NULL with nullptr in wrapCompressedReadStream 2021-06-07 01:36:30 +03:00
Martin Gerhardy
b259e168a4 COMMON: fixed invalid read in zlib read stream
==1313424== Conditional jump or move depends on uninitialised value(s)
==1313424==    at 0x682225: Common::wrapCompressedReadStream(Common::SeekableReadStream*, unsigned int) (zlib.cpp:498)
==1313424==    by 0x46CDB9: DefaultSaveFileManager::openForLoading(Common::String const&) (default-saves.cpp:134)
==1313424==    by 0x68334D: Common::PlaybackFile::openRead(Common::String const&) (recorderfile.cpp:74)
==1313424==    by 0x444558: GUI::RecorderDialog::updateList() (recorderdialog.cpp:206)
==1313424==    by 0x4446BD: GUI::RecorderDialog::runModal(Common::String&) (recorderdialog.cpp:218)
==1313424==    by 0x3DF0E5: GUI::LauncherDialog::recordGame(int) (launcher.cpp:461)
==1313424==    by 0x3E0397: GUI::LauncherDialog::handleCommand(GUI::CommandSender*, unsigned int, unsigned int) (launcher.cpp:671)
==1313424==    by 0x400BF8: GUI::CommandSender::sendCommand(unsigned int, unsigned int) (object.h:55)
==1313424==    by 0x42DAB8: GUI::DropdownButtonWidget::handleMouseUp(int, int, int, int) (widget.cpp:497)
==1313424==    by 0x3D3A37: GUI::Dialog::handleMouseUp(int, int, int, int) (dialog.cpp:228)
==1313424==    by 0x3DB72C: GUI::GuiManager::processEvent(Common::Event const&, GUI::Dialog*) (gui-manager.cpp:668)
==1313424==    by 0x3DA9EA: GUI::GuiManager::runLoop() (gui-manager.cpp:429)

Happens when you start with the event recorder compiled into scummvm and open the dialog to start
a new record.
2021-06-07 01:36:30 +03:00
SupSuper
fa5149e3ac COMMON: Fix old GCC compilation 2021-06-03 03:50:51 +01:00
SupSuper
e3d082df65 MSVC: Add compiler printf validation 2021-06-02 08:35:31 +03:00
lb_ii
b9f4e1a6bd ACHIEVEMENTS: Mark const methods as const 2021-06-02 01:21:37 +03:00
lb_ii
9c699358ea ACHIEVEMENTS: Make getStatRaw() const 2021-06-01 02:20:53 +03:00
lb_ii
e11ef2f21e ACHIEVEMENTS: Add more traces 2021-06-01 02:20:53 +03:00
lb_ii
2cfbc9bd43 ACHIEVEMENTS: Add API for getting raw string value for stats 2021-06-01 02:20:53 +03:00
lb_ii
ea18561650 ACHIEVEMENTS: Extend AchievementsInfo, set stats initial value 2021-06-01 02:20:53 +03:00
SupSuper
721b7376bb COMMON: Clean up ReadStream::readString 2021-05-31 23:04:06 +01:00
SupSuper
48b9f54bfc COMMON: Add support for fixed-size strings in ReadStream::readString 2021-05-31 06:40:05 +01:00
SupSuper
5daeab2e76 COMMON: Add floating-point functions to ReadStreamEndian 2021-05-31 06:40:03 +01:00
lb_ii
6513bab7af ACHIEVEMENTS: Add an API to store platform-specific special strings like ClientSecret 2021-05-30 20:15:55 +03:00
Filippos Karapetis
6c47cb0ec5 COMMON: Add serializers for float and double types 2021-05-29 21:23:20 +01:00
SupSuper
8bc861cb1a VIDEO: Added dirty rects to SmackerDecoder
This emulates the "slow" render mode of the Smacker lib,
which returns the blocks changed each frame instead of full frames.
Nightlong relies on this to correctly refresh its screen buffer.
2021-05-29 21:22:58 +01:00
lb_ii
65a8943624 ACHIEVEMENTS: add average rate statistics API 2021-05-29 22:40:05 +03:00
lb_ii
3fe4d8fc0f ACHIEVEMENTS: Remove old API methods 2021-05-28 21:07:08 +03:00
lb_ii
a4aa95b2b3 ACHIEVEMENTS: Minor refactoring 2021-05-28 21:07:08 +03:00
lb_ii
6ed025dd89 ACHIEVEMENTS: Add API methods that are easy to use 2021-05-28 21:07:08 +03:00
ysj1173886760
361c723e8a ENGINE: introduce kDebugGlobalDetection which is used for print debug messages of advancedDetector 2021-05-22 01:34:57 +02:00