Commit Graph
110 Commits
Author SHA1 Message Date
Le Philousophe a91558aefd AGI: Don't use unsafe sprintf and vsprintf 2022-10-23 22:46:19 +02:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh f1f4657b10 AGI: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
sluicebox 93eeffc84d JANITORIAL: Update old bug tracker numbers 2021-03-03 02:15:05 +02:00
D G Turner c8b98dd41c AGI: Clamp Graphics Blit into Screen Area.
Some games, especially fangames appear to blit to co-ordinates outside
the screen area, which caused an assertion in the graphics backend.

To prevent this and allow further debugging in these cases, we clamp
this to the screen area. Note that there are several other locations
which do backend graphics calls, so this may need to be applied
elsewhere in the general case.

This fixes bug Trac #10736.
2018-10-11 10:18:48 +01:00
Colin Snover 432fd522d2 ENGINES: Remove default1x scaler flag
This flag is removed for a few reasons:

* Engines universally set this flag to true for widths > 320,
  which made it redundant everywhere;
* This flag functioned primarily as a "force 1x scaler" flag,
  since its behaviour was almost completely undocumented and users
  would need to figure out that they'd need an explicit non-default
  scaler set to get a scaler to operate at widths > 320;
* (Most importantly) engines should not be in the business of
  deciding how the backend may choose to render its virtual screen.
  The choice of rendering behaviour belongs to the user, and the
  backend, in that order.

A nearby future commit restores the default1x scaler behaviour in
the SDL backend code for the moment, but in the future it is my
hope that there will be a better configuration UI to allow users
to specify how they want scaling to work for high resolutions.
2017-10-07 12:30:29 -05:00
Torbjörn Andersson 14525bb412 JANITORIAL: Silence some GCC 7 warnings
We have lots and lots of -Wimplicit-fallthrough warnings, and I
don't know if it's worth fixing them or not. But if we want to,
this is how it can be done.
2017-08-06 11:48:14 +02:00
Eugene Sandulenko 159d993f8e AGI: More class initialization 2016-06-05 23:11:10 +02:00
Torbjörn Andersson 85e55d0c6e JANITORIAL: Remove unnecessary semicolons 2016-05-25 05:37:07 +02:00
Martin Kiewitz 018828ba90 AGI: Fix invalid read (/crash), when shaking screen
Was a regression caused by commit
e1c36a52b5
(upscaling + hercules font support)
Thanks to salty-horse for reporting this issue
2016-05-22 22:52:11 +02:00
Martin Kiewitz 7a169c90f6 AGI: Hercules rendering for game screen 2016-02-28 11:23:31 +01:00
Martin Kiewitz e1c36a52b5 AGI: Add support for upscaling and Hercules hires font
- User option to force Hercules hires font for any rendering mode
- Also change mouse cursor hotspots from 1,1 to 0,0
- Fix inaccuracy in mouse controlled game menu
- Change render_Block(), drawBox(), drawDisplayRect() to use
  upper Y instead of lower Y. Original AGI uses lower Y, but
  upper Y makes upscaling way easier.
2016-02-27 21:44:21 +01:00
Martin Kiewitz e24fbf7d6e AGI: Fix another comment about dynamic priority table
Available also in 2.425, then removed until 2.936, yada yada.
priorityToY-Glitch is definitely present in 2.425 as well.
2016-02-14 02:06:50 +01:00
Martin Kiewitz b727e8da08 AGI: Fix new createDefaultPriorityTable() code 2016-02-13 21:16:32 +01:00
Martin Kiewitz 9f59b5ed7c AGI: Fix priority band handling
- Fix saving/loading priority bands table. Now saving the actual raw
  data
- Now also saving the flag, that defines if the priority table got
  modified by scripts
- For older saved games it will try to figure out the state of that
  flag
- Blocking set.pri.base for AGI below 2.936
- set.pri.base was actually introduced in 2.936 and not AGI3
- The set.pri.base bug was present in 2.936 as well
- Saved games created between the graphics rewrite and this
  commit may have priority issues for games, that used AGI2.936+
2016-02-13 20:42:30 +01:00
Martin Kiewitz 808d622ed5 AGI: Remove unused method 2016-02-10 20:14:02 +01:00
Martin Kiewitz ccf328d725 AGI: Cleanup 2016-02-10 19:54:03 +01:00
Martin Kiewitz fb90140bee AGI: Use special Apple IIgs SQ1 palette for SQ1
Was already documented inside palette.h, but wasn't used yet
2016-02-09 22:58:28 +01:00
Martin Kiewitz bb9052bf6f AGI: Switch to CLUT3 for Macintosh as default 2016-02-06 00:03:17 +01:00
Martin Kiewitz 088c4d118c AGI: Adding Macintosh palettes for GR+SQ2
But not actually using the GR palette, because it looks horrible.
2016-02-05 23:53:26 +01:00
Martin Kiewitz a7ffda3ba1 AGI: fix build powf() -> pow() 2016-02-05 17:03:38 +01:00
Martin Kiewitz f09a15f276 AGI: Render mode Macintosh added
Palette + mouse cursor + box frame color only atm
Thanks to wjp for gamma correction
Not sure, if our current color adjustment is correct
Should be checked by using actual hardware
2016-02-05 16:41:02 +01:00
Martin Kiewitz f954603f8d AGI: GfxMgr::drawBox now using kRenderMacintosh 2016-02-05 14:23:23 +01:00
Martin Kiewitz 9f7ff8351b AGI: Fix mouse code for transitions
Do not show mouse cursor after transition, when it's currently
switched to hidden. Do the same for hide/show.mouse opcodes.
2016-02-04 21:21:52 +01:00
Martin Kiewitz c17cd72bae AGI: Add Amiga system UI buttons
Also adjust window frames for Amiga. Amiga also uses hi-res ones.
2016-02-04 13:38:18 +01:00
Martin Kiewitz dbdf77660e AGI: Fix disabled look to work properly in menus 2016-02-04 00:55:53 +01:00
Martin Kiewitz f6c9cffa26 AGI: Add different window frames for Macintosh
Also work on drawCharacter code for SystemUI usage
2016-02-03 22:47:58 +01:00
Martin Kiewitz 0f026c7766 AGI: Add different window frames for Apple IIgs
Only slightly different than on PC
2016-02-03 22:25:52 +01:00
Martin Kiewitz 920bea0fd9 AGI: add drawCharacterOnDisplay() 2016-02-02 23:27:13 +01:00
Johannes Schickel 6778175f6d AGI: Fix formatting.
This mostly enforces tabs for indentation and spaces for formatting. But also
fixes spaces on empty lines, some extra/missing spaces.

astyle + manual fixup
2016-02-02 20:15:18 +01:00
Martin Kiewitz fd9c46831d AGI: remove timer hack, implement in game timer
in game timer is now updated, when scripts read in game timer
VM variables and during main loop. ScummVM total play time feature
is used for it. Game cycle syncing is done at the same time.
2016-01-31 20:53:36 +01:00
Martin Kiewitz 0f15ec2ce8 AGI: use Common::RenderMode instead of its own
AppleIIgs + Atari ST weren't available back then in the enum.
They now are, so I can use the Common one.
2016-01-29 15:43:45 +01:00
Martin Kiewitz ccfd870c81 AGI: adjust mouse pos using render start Y
instead of having it hardcoded.
2016-01-29 14:03:47 +01:00
Martin Kiewitz 8a595e7771 AGI: graphics rewrite + cleanup
- graphics code fully rewritten
- Apple IIgs font support
- Amiga Topaz support
- Word parser rewritten
- menu code rewritten
- removed forced 2 second delay on all room changes
  replaced with heuristic to detect situations, where it's required
- lots of naming cleanup
- new console commands show_map, screenobj, vmvars and vmflags
- all sorts of hacks/workarounds removed
- added SCI wait mouse cursor
- added Apple IIgs mouse cursor
- added Atari ST mouse cursor
- added Amiga/Apple IIgs transition
- added Atari ST transition
- user can select another render mode and
  use Apple IIgs palette + transition for PC versions
- inventory screen rewritten
- SetSimple command now properly implemented
- PreAGI Mickey: Sierra logo now shown
- saved games: now saving controller key mapping
  also saving automatic save data (SetSimple command)
- fixed invalid memory access when saving games (31 bytes were saved
  using Common::String c_ptr()

Special Thanks to:
- fuzzie for helping out with the Apple IIgs font + valgrind
- eriktorbjorn for helping out with valgrind
- LordHoto for figuring out the code, that caused invalid memory
  access in the original code, when saving a game
- sev for help out with reversing the Amiga transition

currently missing:
- mouse support for menu
- mouse support for system dialogs
- predictive dialog support
2016-01-29 13:22:22 +01:00
Johannes Schickel 29ade784e4 AGI: Give a nicer error message on invalid render mode. 2016-01-21 23:41:30 +01:00
Max Horn fad3b425b9 AGI: Disable unused palettes for compilation 2015-07-19 17:13:38 +02:00
Martin Kiewitz a709596b48 AGI: implement original sierra font, fix bug #6405
custom font is still used for fanmade games
i cannot test preAGI games, because I don't own
those.
2015-05-19 12:39:39 +02:00
Filippos Karapetis b3e45ccc68 AGI: Disable/remove unused code
This is code that isn't used currently. Thanks to fingolfin for
pointing out these parts of the code
2014-12-07 15:33:11 +02:00
Filippos Karapetis 6ec077e1b9 AGI: Set the correct palette to use for each Amiga game
The Amiga palettes were added in 16529e58e6, but were never used.
A new game-specific option has been added for the old Amiga palette
2014-12-07 14:40:53 +02:00
Johannes Schickel 6aac905dfd AGI: Make GPL headers consistent in themselves. 2014-02-18 02:39:32 +01:00
Eugene Sandulenko d0bb81f566 AGI: Fix warnings 2011-11-02 22:20:40 +00:00
Filippos Karapetis ba7d71d553 AGI: doUpdate() already calls updateScreen() 2011-09-26 01:43:14 +03:00
Matthew Hoops eea482fa43 ALL: behaviour -> behavior 2011-05-25 10:50:46 -04:00
strangerke 69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Ori Avtalion 9414d7a6e2 JANITORIAL: Reduce header dependencies in shared code
Some backends may break as I only compiled SDL
2011-04-28 15:08:58 +03:00
Max Horn 84184aabc0 ALL: colour -> color 2011-04-14 14:12:35 +02:00
Johannes Schickel bb2daae936 AGI: Remove leftover RGBA reference in comments. 2011-02-20 21:39:29 +01:00
Johannes Schickel 021ecca3b0 AGI: Adapt to setPalette RGBA->RGB change. 2011-02-14 17:08:31 +01:00
Max Horn ab039812e7 COMMON: OSystem now has a PaletteManager
svn-id: r55806
2011-02-07 17:52:38 +00:00
Torbjörn Andersson c4106653a8 Fixed bug #2924968, "AGI: Can't click "cancel" in Save/Restore Game Menu". This
regression was probably introduced with r45260, "AGI: cleanup
GfxMgr::testButton".

svn-id: r47030
2010-01-05 18:52:39 +00:00