87 Commits

Author SHA1 Message Date
Willem Jan Palenstijn
95b080f60b Fix compile errors
svn-id: r49535
2010-06-09 08:49:37 +00:00
Filippos Karapetis
9304b5fbeb Merged the restarting_flags, script_abort_flag, and restoring members of the EngineState class into one variable, abortScriptProcessing. The flag kept to signify a game restart has been placed in a boolean, gameWasRestarted
svn-id: r49518
2010-06-08 21:05:46 +00:00
Filippos Karapetis
3c82b6578f Now that EngineState is not deleted when loading games, we can move some more state-related variables to it, and remove several FIXME's about non-const global variables. Also, the entries in the data stack are now deleted when loading (fixes a memory leak - thanks to digitall for this).
svn-id: r49465
2010-06-06 23:00:33 +00:00
Filippos Karapetis
5d21ff280a Silenced some superfluous warnings in KQ5CD
svn-id: r49294
2010-05-28 16:47:30 +00:00
Martin Kiewitz
830d17ed31 SCI: renaming MacIconBar to GfxMacIconBar
svn-id: r49202
2010-05-24 21:47:06 +00:00
Matthew Hoops
d49fb8f42d Add support for showing the icon bar in SCI1.1 Mac.
svn-id: r49196
2010-05-24 17:21:11 +00:00
Filippos Karapetis
7cd9a23c0d Remove the unused SCI_GAME_WAS_RESTARTED_AT_LEAST_ONCE flag
svn-id: r49161
2010-05-23 17:03:16 +00:00
Filippos Karapetis
9be4f6250c Made shrink_execution_stack() a member of EngineState
svn-id: r49159
2010-05-23 16:44:36 +00:00
Filippos Karapetis
c874ff15a8 Cleaned up the game ID code:
- The game ID is now obtained from ScummVM ID directly, not by converting Sierra's internal ID
- Moved the code which reads the internal Sierra ID inside the resource manager
- Moved the code which converts the internal Sierra ID to ScummVM's IDs together with the rest of the detection code

svn-id: r49152
2010-05-23 10:28:03 +00:00
Matthew Hoops
3dda73d9a2 Add initial support for KQ6 Mac. Wrapper functions for read/writing to pointers are now used (found in util.*) for code that has different endianness in SCI1.1+ Mac games. Add support for Mac 'snd ' and 'CURS' resources. QFG1 Mac is not yet playable due to script compression.
svn-id: r49070
2010-05-18 04:17:58 +00:00
Martin Kiewitz
4119fdb9a9 SCI: adding speed throttler special case for iceman / submarine control room
svn-id: r49056
2010-05-17 09:32:16 +00:00
Max Horn
2e68de1e5a SCI: Turn kernel_sleep() into SciEvent::sleep()
svn-id: r48119
2010-02-23 22:47:53 +00:00
Max Horn
ac4d325e0d SCI: Add global g_sci pointer to the active SciEngine instance
svn-id: r48046
2010-02-13 17:42:49 +00:00
Walter van Niftrik
1e67b56eee SCI: Revert r47925 and put fix inside GC instead.
svn-id: r47940
2010-02-06 19:41:55 +00:00
Walter van Niftrik
38b0a148e6 SCI: Don't call garbage collector directly from kFlushResources() as this is no longer safe.
svn-id: r47925
2010-02-06 04:13:00 +00:00
Matthew Hoops
c72c2ff711 kPlatform(0) should return the SCI platform number. Fixes playing AVI's in KQ7 Windows. Also, adding/updating detection entries for KQ7 Windows.
svn-id: r47791
2010-02-01 04:14:16 +00:00
Walter van Niftrik
a92bb6193b SCI: Implement kMemorySegment().
svn-id: r47776
2010-01-31 19:47:54 +00:00
Walter van Niftrik
473d8b7c2f SCI: Add string support for odd-offset pointers into reg_t-based segments.
svn-id: r47572
2010-01-26 19:51:08 +00:00
Johannes Schickel
aed02365ec Strip trailing spaces/tabs.
svn-id: r47541
2010-01-25 01:39:44 +00:00
Eugene Sandulenko
fb178c0a62 Mark lsl3 as a workaround.
svn-id: r47347
2010-01-17 20:23:11 +00:00
Martin Kiewitz
35c2469c0b SCI: speed throttler - hardcoded exception for room 290/lsl3, should fix pushup count later in the game
svn-id: r47346
2010-01-17 20:17:00 +00:00
Martin Kiewitz
3e44180e47 SCI: speed throttler changed, now gets triggered by kAnimate, removed initial no-delay, i'm still getting animation now in iceman and sq3, slow palette animation in longbow fixed
svn-id: r47343
2010-01-17 18:41:28 +00:00
Filippos Karapetis
84cd8d2dc7 Renamed /gui to /graphics and /sfx to /sound, to better illustrate their purpose
svn-id: r47007
2010-01-05 01:22:16 +00:00
Matthew Hoops
1f2c92076b Fix the GK1 CD intro sequence (regression from r46839, which fixed a regression from r46656). kPlatform with no arguments is different in SCI32.
svn-id: r46874
2010-01-02 03:44:40 +00:00
Filippos Karapetis
763c59bd46 Fixed KQ5CD (regression from rev. 46656)
svn-id: r46839
2010-01-01 17:16:12 +00:00
Matthew Hoops
264bec306a Implement kPlatform subfunctions 0 and 2, and stub 1 and 3 (CD speed and CD check). This fixes the DOS version of GK1 CD to play the SEQ's instead of the AVI's.
svn-id: r46656
2009-12-27 19:16:06 +00:00
Martin Kiewitz
a5f1808c83 SCI: SciEvent created, kernel_sleep() created
svn-id: r46252
2009-12-04 17:38:24 +00:00
Johannes Schickel
0867129399 Formatting.
svn-id: r45553
2009-10-30 23:44:12 +00:00
Filippos Karapetis
1c158c52a1 Cleaned up kPlatform() a bit, and changed it to return appropriate values for the CD hires version of KQ6
svn-id: r45551
2009-10-30 22:53:00 +00:00
Martin Kiewitz
fa627f4233 SCI: kGameIsRestarting - another change, setting back delay back to 30msecs, but no delay during initial 50 calls. This seems to make qfg2 and iceman happy.
svn-id: r45376
2009-10-25 20:12:12 +00:00
Martin Kiewitz
c0235a268d SCI: kGameIsRestarting - changing speed throttler to 10 msecs, lsl5 is still "somewhat" playable, codename iceman and qfg2 didnt show some animations cause of the higher delay
svn-id: r45375
2009-10-25 20:03:10 +00:00
Martin Kiewitz
9c9181eed6 SCI: speed throttler moved to kGameIsRestarting for all games. Also made the delay shorter. sq3 now seems to work fine, kq1 also has animations and lsl5 mud wrestling is also working correctly.
svn-id: r45345
2009-10-23 11:25:48 +00:00
Martin Kiewitz
8e6291f7bb SCI: kGameIsRestarting - implemented speed throttler in here for sci0/sci01 games, test only!
svn-id: r45342
2009-10-22 21:30:30 +00:00
Filippos Karapetis
d95ed75789 Removed the wrong code for kGetTime case 1 in some SCI0 games - that case has always remained the same in all SCI versions. Added a warning in case we got some other case than 0 or 1 in SCI0 games
svn-id: r44855
2009-10-09 23:15:54 +00:00
Max Horn
42120ed626 Introduce a new struct TimeDate, replacing struct tm in client code. May lead to compilation issues in ports, which should be trivial to fix, though
svn-id: r44793
2009-10-08 19:41:38 +00:00
Filippos Karapetis
c17495d895 - Fixed kGetTime() again
- Removed the odd way of calculating elapsed time in SciGui(). We got _system->getMillis() for that purpose
- Replaced the code in SciGui::wait() with the one in SciGui32::wait (which works fine, and is correct). The code in SciGui() was not polling for events while waiting, either

svn-id: r44712
2009-10-06 17:45:57 +00:00
Max Horn
db8c6e3f6c SCI: Really remove sci/gui/gui.h include from engine/state.h
svn-id: r44644
2009-10-04 22:43:30 +00:00
Max Horn
6ad5840181 SCI: Rename EngineState::segMan to _segMan
svn-id: r44629
2009-10-04 18:38:18 +00:00
Willem Jan Palenstijn
b9cdb1abb7 SCI: Merge new GUI code written by m_kiewitz.
This is a major rewrite of the graphics code. A slightly adapted
version of the old code is still available and currently the default.
The new code is selectable in sci.cpp, but is not yet finished.

svn-id: r44565
2009-10-03 20:49:18 +00:00
Filippos Karapetis
30084d72a5 Added a new special reg_t, SIGNAL_REG, for signaling when an error occurs (usually), or to signal success in some special occasions
svn-id: r44505
2009-09-30 23:00:03 +00:00
Filippos Karapetis
f9296a6445 - Changed the unimplemented debug SCI kernel functions (InspectObj, ShowSends, ShowObjs, ShowFree, StackUsage and Profiler) to be dummy functions - we have our own debugger, and don't use these functions for debugging
- Removed the function number parameter from all kernel functions, as it's no longer needed, and removed the FAKE_FUNCT_NR hack
- Removed kUnknown() and kStub()
- Dummy/unknown kernel functions are no longer invoked, and a warning is shown instead, with the paremeters passed to them

Note: there is an evil hack used for debugging scripts in invoke_selector(), which probably no longer works now

svn-id: r44461
2009-09-29 14:24:07 +00:00
Willem Jan Palenstijn
d3c1916384 SCI: Major string handling update.
All string access to segments should now work with both raw and non-raw
(reg_t) segments, using the new utility functions in segMan.

There will likely be regressions.

svn-id: r44388
2009-09-27 01:50:26 +00:00
Filippos Karapetis
180b3f1247 Create a define for the special "signal" offset used throughout the engine, and fixed the arbitrary 0 values from commit #44294, set when some math functions do invalid calculations
svn-id: r44359
2009-09-25 16:15:57 +00:00
Max Horn
4221773f6a SCI: Pedantic cleanup
svn-id: r44356
2009-09-25 13:01:35 +00:00
Max Horn
5f440854b7 SCI: Add EngineState::_kernel member for convenience
svn-id: r44173
2009-09-17 17:00:36 +00:00
Max Horn
b2c386ed00 SCI: Move parts of struct ScriptState into a new struct DebugState
svn-id: r44151
2009-09-17 13:21:19 +00:00
Max Horn
10f898c90e SCI: Rename MemObject -> SegmentObj
svn-id: r44130
2009-09-17 00:45:12 +00:00
Max Horn
b26f744e23 SCI: cleanup
svn-id: r44128
2009-09-16 23:55:11 +00:00
Filippos Karapetis
e1de3d0f3f Removed some unused variables from the engine state
svn-id: r44099
2009-09-15 07:59:48 +00:00
Max Horn
bfe1538715 SCI: Misc cleanup
svn-id: r44093
2009-09-14 22:34:53 +00:00