52 Commits

Author SHA1 Message Date
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
3416f67b89 AGI: Fix invalid coordinate warnings for sprites 2016-02-09 19:56:13 +01:00
Martin Kiewitz
587c1ad310 AGI: Check xPos/yPos when building sprite lists
And ignore sprites, that are placed outside of visual screen
Fixes memory corruption during intro of fan made Get Outta SQ game.
Original AGI did not do checks at all.
2016-02-09 17:37:28 +01:00
Martin Kiewitz
f5a83adc01 AGI: Fix various CIDs
CID 1350104: regression from graphics rewrite in C64 picture drawing
CID 1350101: potential buffer overflow in set.simple command
CID 1350112: uninitialized variable in TextMgr
CID 1350113: false positive uninitialized variable in SystemUI
CID 1350114: potentially uninitialized variable in IIgsSample
CID 1350117: false positive uninitialized variable in InventoryMgr
CID 1350103: code bug in CGA rendering TextMgr::charAttrib_Set()
CID 1350109: false positive in GfxFont::loadFontAmigaPseudoTopaz()
CID 1350111: original AGI uninitialized memory issue
             in SpritesMgr::showObject
2016-02-09 12:47:45 +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
4bc01ab7d5 AGI: getflag/setflag/etc. cleanup
renamed getflag() to getFlag()
renamed setflag() to setFlag()
renamed flipflag() to flipFlag()
preagi: renamed setFlag for this engine to setWinnieFlag
2016-01-31 17:56:53 +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
6aac905dfd AGI: Make GPL headers consistent in themselves. 2014-02-18 02:39:32 +01:00
Tarek Soliman
a4798602d7 JANITORIAL: Fix missing whitespace in pointer cast
find -name '*.h' -or -name '*.cpp' | xargs sed -r -i 's@\(([A-Za-z0-9]+)\*\)@(\1 *)@g'

This seems to have caught some params as well which is not undesirable IMO.
It also caught some strings containing this which is undesirable so I
excluded them manually. (engines/sci/engine/kernel_tables.h)
2012-02-15 10:07:10 -06:00
Filippos Karapetis
62c8d82560 AGI: Fixed the actual cause of bug #3295652, and partially fixed bug #3080415 2011-09-26 03:50:58 +03:00
Eugene Sandulenko
b83cf61bfb Checked V1 instructions till 0x42 2011-08-14 21:40:07 +01:00
Eugene Sandulenko
273e37f726 AGI: Renamed some #defines to our code conventions and moved them to enums 2011-08-14 18:48:59 +01:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Max Horn
2d1c8a3533 ALL: Fix whitespaces / indention
svn-id: r55818
2011-02-07 23:01:06 +00:00
Eugene Sandulenko
e4bc0c3a18 AGI: Fix crash on exit thanks to valgrind
svn-id: r51311
2010-07-26 14:21:59 +00:00
Eugene Sandulenko
afc872cba8 AGI: Fix bug #3017911
Bug #3017911: "AGI (Fan): SQ0 - Ego flickering". It is a regression from r49745,
as it appeared, some of the screen updates were too much.

svn-id: r51223
2010-07-23 21:11:56 +00:00
Max Horn
e62169c383 AGI: Specify bug reference for workaround
svn-id: r49845
2010-06-15 12:34:12 +00:00
Eugene Sandulenko
88421532aa AGI: Implemented immediate update for most of gfx to match original.
This fixes many subtle effects as in many cases there were no
special pausing and engine relied only on the slowliness of the
machine.

svn-id: r49745
2010-06-15 10:32:25 +00:00
Eugene Sandulenko
ffc390e64c AGI: Fix bug #1945716.
Bug #1945716: "AGI: Fan(Kings Quest 2 1/4) - Sprite not erased".
Added a workaround, since it is design flaw of our rendering
system.

svn-id: r49742
2010-06-15 10:31:18 +00:00
Eugene Sandulenko
7034d071b6 AGI: proper fix for sprite leftover-related bugs. Removed workarounds.
svn-id: r49741
2010-06-15 10:30:54 +00:00
Eugene Sandulenko
295edafdc4 AGI: improve script-related debug output.
svn-id: r49740
2010-06-15 10:30:26 +00:00
Eugene Sandulenko
409fe0bd56 AGI: made sprite-related debug output more informative
svn-id: r49739
2010-06-15 10:30:01 +00:00
Joost Peters
7cf43b9dda Fix AGI crashes on 64-bit systems that require alignment
svn-id: r43011
2009-08-02 21:22:46 +00:00
Eugene Sandulenko
45764de138 Cleanup
svn-id: r41251
2009-06-06 17:44:24 +00:00
Eugene Sandulenko
93d62da652 Whitespace fixes and C++ comments
svn-id: r41239
2009-06-06 17:39:13 +00:00
Max Horn
ac59693be2 A ton of code formatting fixes; also fixed warnings about single line loops like 'while(cond);' by inserting newlines
svn-id: r36127
2009-01-29 05:26:12 +00:00
Jordi Vilalta Prat
66e9d4f5e8 Removed trailing spaces.
svn-id: r30664
2008-01-27 19:47:41 +00:00
Kari Salminen
c10f74411e Show objects always using priority 15. Fixes bug #1858037 (AGI: show.obj priority error).
svn-id: r29984
2007-12-25 16:17:22 +00:00
Filippos Karapetis
40661e5698 Use CLIP template for clipping in the AGI engine
svn-id: r29854
2007-12-13 19:44:27 +00:00
Kari Salminen
a741f3c010 Fix priority screen showing when using AGI256 or AGI256-2.
svn-id: r27707
2007-06-25 14:40:40 +00:00
Kari Salminen
c8bbb6140f Add AGI256-2 support (On top of already present AGI256 support).
AGI256-2 means handling 256 color views/sprites (AGI256 means handling 256 color picture resources).
The code can now handle both 16 color and 256 color views/sprites in the same game.
FIXME: Background in AGI256-2 demo may be incorrect.

svn-id: r27572
2007-06-20 23:56:08 +00:00
Kari Salminen
dbac0054c1 Make drawing & blitting always use the correct screen
(Always 16 color screen for vector stuff, 256 color screen for everything else in AGI256 mode).

svn-id: r27570
2007-06-20 23:36:59 +00:00
Max Horn
218e132e37 Updated legal headers in source files, based on what Pidgin (the IM client formerly knowns as Gaim) does; added new (incomplete) COPYRIGHT file; updated copyright dates in a few spots
svn-id: r27024
2007-05-30 21:56:52 +00:00
Filippos Karapetis
3413dda0e9 Fixed some comments
svn-id: r26771
2007-05-07 05:06:22 +00:00
Filippos Karapetis
d4d04a150d Added a game ID field for all Sierra AGI games. Removed many types which are now obsolete from the game features field
svn-id: r26764
2007-05-06 14:36:02 +00:00
Filippos Karapetis
aa8fa78f62 Patch #1705791: Patch for #1648396 - AGI : SQ2 / 2.0F / IBM / priority line
Modify a workaround made for SQ1 to work on SQ1 only, not all AGI games. This fixes bug #1648396 with SQ2, a bug with LSL1 (Sarien bug #925074) and possibly others

svn-id: r26589
2007-04-24 15:43:16 +00:00
David Symonds
a2f49d31fb Remove #include "agi/text.h"; fixes build. Pointyhat to aquadran.
svn-id: r25103
2007-01-16 13:09:42 +00:00
Paweł Kołodziejski
b47eb95316 Formating names in source code
svn-id: r25101
2007-01-16 12:40:51 +00:00
Eugene Sandulenko
1403c8e6b0 Slighty modified patch #1631229: "Revamp of AGI savegame system"
svn-id: r25069
2007-01-12 02:29:20 +00:00
David Symonds
ee1d36b915 Removed almost all the remaining hires code.
svn-id: r25037
2007-01-06 17:53:15 +00:00
David Symonds
e2ff69d230 More hires removal, this time from sprites.
svn-id: r25035
2007-01-06 17:17:27 +00:00
Paweł Kołodziejski
1d3ca2e409 first phase of objectisation of agi engine
svn-id: r24808
2006-12-06 19:27:02 +00:00
James Brown
f5fdbcddfb Pop AGIs text.cpp into a class, for later cleanup.
svn-id: r23011
2006-06-10 13:20:29 +00:00
Willem Jan Palenstijn
9644171a7b Don't let blocking rectangle extend below baseline (see Sarien bugs 810331 and 925074)
svn-id: r22808
2006-05-31 19:55:54 +00:00
Willem Jan Palenstijn
a9dc501ee0 cleanup
svn-id: r22783
2006-05-30 19:48:47 +00:00
Chris Apers
cbfc7bfc1a objectify AGI sprite.h/cpp
svn-id: r22781
2006-05-30 18:53:01 +00:00
Willem Jan Palenstijn
7e287a08ce replace agi/list.h by Common::List; cleanup
svn-id: r22666
2006-05-26 17:38:12 +00:00
Willem Jan Palenstijn
a11eddeb0b replace agi/list.h by Common::List
svn-id: r22658
2006-05-26 11:28:03 +00:00
Paweł Kołodziejski
383b598c5c converted to scummvm console style
svn-id: r22618
2006-05-24 21:40:24 +00:00
Torbjörn Andersson
4a583216fb Fixed most - not all - GCC warnings.
svn-id: r22614
2006-05-24 19:51:37 +00:00