Commit Graph
211 Commits
Author SHA1 Message Date
Kari Salminen 650a9b9c49 Cine: executePlayerInput: Fix 'left and right mouse buttons are up'-case for Operation Stealth.
svn-id: r47509
2010-01-24 18:27:56 +00:00
Kari Salminen 7ce227b670 Cine: executePlayerInput: Combine 'left mouse button is up, right mouse button is down'-cases into one code part.
Additionally:
 - Operation Stealth specific: Make makeActionMenu() use canUseOnItemTable.
   This would seem to be the correct way according to disassembly
   (Although there is of course a possibility that I have overlooked
   some part of the code).

svn-id: r47508
2010-01-24 18:20:22 +00:00
Kari Salminen 40cb795fe7 Cine: executePlayerInput: Name used keys in switch-clause (F1-F10, Ins, Del).
svn-id: r47507
2010-01-24 17:56:23 +00:00
Kari Salminen 414eadfb2a Cine: executePlayerInput: Combine mouse handling plus a few other things.
- Combines mouse position and button state fetching
   from two branches (allowPlayerInput / !allowPlayerInput)
   into a single loop with a little more exotic while-clause.
   NOTE! Added manageEvents-call into the unified version although
   there was no manageEvents-call in one of the versions that was
   combined. Tested a little and didn't seem to matter, but hopefully
   won't cause any regressions!
 - Limit first possible 'renderer->setCommand(commandBuffer)' call
   to Future Wars only (Checked with FW & OS disassembly).
 - Combined all cases of 'left and right mouse buttons are down'
   into a single if-clause (All those cases call makeSystemMenu).

svn-id: r47505
2010-01-24 17:46:37 +00:00
Kari Salminen 34581f12e4 Cine: Document branches in executePlayerInput and remove dead code (if-clauses that are always true or always false).
svn-id: r47503
2010-01-24 16:40:37 +00:00
Kari Salminen 53d8bd9760 Cine: Cleanup (Use an enumeration for mouse button states rather than values 1 and 2).
svn-id: r47502
2010-01-24 16:25:08 +00:00
Max Horn 51933629d1 Changed foo(void) to foo() in almost all non-backend source files
svn-id: r45616
2009-11-02 21:54:57 +00:00
Max Horn 3399c3aeb6 Change doxygen inline comments from "//!" to "///" as proposed on -devel
svn-id: r44802
2009-10-08 21:28:57 +00:00
Johannes Schickel e591333d4b Implement menu stack to support all menu color effects, specific to the Amiga version of the game.
svn-id: r44263
2009-09-22 17:51:06 +00:00
Johannes Schickel cb41cea6f1 Changed AMIGA menu code to closer match the original. (The menu item highlight selection is still wrong though.)
svn-id: r44231
2009-09-21 01:15:34 +00:00
Johannes Schickel 756659b00e Add more shouldQuit checks in event loops.
svn-id: r44230
2009-09-21 01:15:11 +00:00
Kari Salminen 49dd58de45 Name Operation Stealth's global variables 251 and 252 and init them in main loop.
These are used as a sort of a backup for the
mouse position (x, y) variables 249 and 250.

Future Wars's VAR_MOUSE_Y_MODE and Operation Stealth's
VAR_MOUSE_X_POS_2ND (251) clash and that's possibly
why executePlayerInput currently works incorrectly
with Operation Stealth. More reverse engineering
is needed...

svn-id: r41915
2009-06-27 12:26:26 +00:00
Eugene Sandulenko d5b9437fb3 Fix bug #2055836: "FW: Music is not restarted when loading a saved game"
svn-id: r40465
2009-05-11 19:31:55 +00:00
Eugene Sandulenko 696897b058 Whoa! Removing trailing spaces.
svn-id: r35648
2009-01-01 15:06:43 +00:00
Filippos Karapetis 162634cc95 Started moving Save/Load code to saveload.cpp/.h
svn-id: r35033
2008-11-13 08:59:17 +00:00
Filippos Karapetis 28da377ccb Saving and loading from the GMM is now supported in the cine engine
svn-id: r35031
2008-11-12 23:21:05 +00:00
Max Horn 6a2f3dc0b9 Added new type Engine::Feature; pushed down some #include dependencies
svn-id: r34755
2008-10-06 12:48:52 +00:00
Max Horn 655ce26b3f Big patch changing the signature of various Stream methods (some ports may need to be slightly tweaked to fix overloading errors/warnings)
svn-id: r34514
2008-09-13 16:51:46 +00:00
Max Horn a41c681d9d Merging more of the GSoC 2008 RTL branch: CINE
svn-id: r34244
2008-09-01 17:47:36 +00:00
Kari Salminen 4d6101cff9 Fix typo.
svn-id: r34084
2008-08-21 14:43:03 +00:00
Christopher Page 909b66ef54 Merged revisions 33777,33781-33788,33790,33792-33793,33795,33797,33805,33807-33812,33815-33817,33819,33822,33826,33829,33837,33839,33844,33847,33858-33861,33864,33871-33873,33875,33877-33879,33886,33889-33892,33894,33896,33900,33902-33903,33919 via svnmerge from
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk

svn-id: r33924
2008-08-16 04:30:01 +00:00
Kari Salminen c2c2e940d0 Fix for bugging moving at the bottom of the ocean when trying to free the girl from the ropes and swimming to the surface. Some global variables related to mouse position weren't being updated in executePlayerInput, now they are and things seem to work. Also enables moving in the labyrinth arcade sequence at the palace.
svn-id: r33872
2008-08-14 20:49:34 +00:00
Kari Salminen eb9633ee1e Implemented Operation Stealth's makeCommandLine.
svn-id: r33805
2008-08-12 19:33:17 +00:00
Kari Salminen 811e4b3128 Implemented Operation Stealth specific parts of processInventory and added another mouse button waiting loop into the function's end (It's in both Future Wars and Operation Stealth). Fixes inventory showing in Operation Stealth.
svn-id: r33795
2008-08-12 14:44:44 +00:00
Kari Salminen c935a09ef5 Changed commandBuffer from a char[80] to Common::String and made FWRenderer::setCommand use a Common::String. Hopefully this might help with the command buffer overflow stuff, although this isn't a fix for the problem behind it, just a bandaid.
svn-id: r33793
2008-08-12 00:13:27 +00:00
Christopher Page fcc00f20b9 Merged revisions 33719,33721-33723,33725-33727,33729-33730,33733,33736,33742,33754,33756,33758,33761,33763,33766 via svnmerge from
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk

svn-id: r33769
2008-08-10 21:58:18 +00:00
Kari Salminen ef3b72d5e4 Converted zoneData and zoneQuery tables from plain array types to Common::Array. Should help catch out of bounds access errors that may cause memory corruption.
svn-id: r33727
2008-08-09 22:38:03 +00:00
Kari Salminen 0911982954 Converted objectTable from a plain array to a Common::Array. Should help to catch out of bounds access errors that may cause memory corruption.
svn-id: r33725
2008-08-09 20:50:10 +00:00
Christopher Page ce3d1e1a7d Merged revisions 33632-33633,33635,33637,33639-33640,33642-33645,33648,33654-33655,33664,33667-33670,33673-33674,33678,33682,33686-33691,33693,33696,33698,33700,33703,33708,33710,33712-33714,33716 via svnmerge from
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk

svn-id: r33720
2008-08-09 19:03:29 +00:00
Kari Salminen 5cb08bd1e5 Added basic moving using keyboard (Only works in Operation Stealth at the moment):
- Should make it possible to complete the first arcade sequence legitimately
Renamed input variables (Their names were mixed up between Future Wars and Operation Stealth):
- Future Wars's inputVar1 -> egoMovedWithKeyboard
- Future Wars's inputVar2 -> xMoveKeyb
- Future Wars's inputVar3 -> yMoveKeyb
- Operation Stealth's inputVar0 -> xMoveKeyb
- Operation Stealth's inputVar1 -> yMoveKeyb

svn-id: r33698
2008-08-08 13:30:01 +00:00
Kari Salminen b8bfd5d04f Fix for popup boxes sometimes blocking animation when they shouldn't in Operation Stealth:
- Made waitForPlayerClick updating more like in the original.
- Moved removeMessages to after the frame drawing in main loop hoping to be more like the original.
- Added an additional test to Operation Stealth's implementation of overlay type 2 drawing.
- Added an additional parameter incrementing and testing to Operation Stealth's removeMessages.
Hopefully this won't cause any regressions in Future Wars!

svn-id: r33686
2008-08-07 19:04:19 +00:00
Kari Salminen 966b5eb94e Fix prompt updating regression introduced in r32257:
Previously prompt didn't get updated all the time,
like e.g. when selecting EXAMINE and moving the
cursor over to DOOR and then moving the cursor to
a place where there was no selectable object. The
prompt would've still shown "EXAMINE DOOR", now
it shows just "EXAMINE" which is correct AFAIK.

svn-id: r33637
2008-08-05 12:58:23 +00:00
Christopher Page 4198ee9623 Merged revisions 33188-33189,33191-33193,33196,33198,33202-33203,33206,33210,33212,33218-33220,33222,33224-33226,33229-33243,33246,33248-33250,33252,33258-33261,33263,33266,33270,33272-33283,33285,33287-33290,33295-33298,33321,33325-33330,33332-33335,33337-33340,33342,33345,33347,33349-33350,33352-33357,33359-33367,33369-33371,33373,33375-33377,33379-33380,33383-33385,33387-33389,33392-33394,33400-33402,33404-33405,33407-33410,33412-33416,33418-33419,33425-33427,33432,33436-33438,33444,33446,33452-33453,33455-33459,33463-33464,33466-33471,33473-33474,33478,33490,33492,33495-33496,33509-33512,33518-33519,33522-33527,33529-33530,33537,33541,33544,33546,33550,33552-33554,33556,33558,33561-33562,33565,33568,33570,33574,33576,33578-33581,33584-33587,33590,33596,33604-33611,33614-33615,33617-33618,33620-33621 via svnmerge from
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk
 

svn-id: r33624
2008-08-04 22:34:07 +00:00
Kari Salminen 99addb709c Fix for misplaced objects in mouse object selection (Operation Stealth specific).
- Implemented Operation Stealth specific part of getObjectUnderCursor
  which handles negative frame values.
- Fixed a test case (Should test for ydif <= 0 although tested for ydif < 0).
- Made part-value be anded with 0x0F in a test case to comply with disassembly.
- Added comment about a test case which isn't present in the disassembly.
  Removing it makes things crash sometimes so letting it be.

svn-id: r33620
2008-08-04 19:32:52 +00:00
Kari Salminen 81cb493158 Debug printing a couple more relevant variables in addAni.
svn-id: r33446
2008-07-30 11:36:14 +00:00
Kari Salminen 4210defa29 Added some debug aids related to addAni and the processSeqList crashing.
svn-id: r33444
2008-07-30 11:03:52 +00:00
Kari Salminen d83c6d7d68 Added purgeSeqList function (Used in mainloop now). Let's see if this helps any...
Renamed functions:
* addScriptToList0 -> addScriptToGlobalScripts
* executeList0     -> executeGlobalScripts
* executeList1     -> executeObjectScripts
* purgeList1       -> purgeObjectScripts (Also added a clarifying TODO to this function)
* purgeList0       -> purgeGlobalScripts (Also added a clarifying TODO to this function)

svn-id: r33409
2008-07-29 13:44:14 +00:00
Kari Salminen 52700d59fd Added a debug message to loadTempSaveOS's to check whether we loaded the whole savefile. Made objectStruct's clearing also clear x and y member variables in resetEngine.
svn-id: r33407
2008-07-29 12:56:32 +00:00
Kari Salminen 0365c45b8c Rearranged parts of the Operation Stealth savegame loading routine.
- Emulating the Future Wars savegame loading routine and hoping for the best.
- Fixes an array out of bounds access when loading the global scripts.
Now the loading crashes in the mainloop in processSeqList!
But at least we got a bit farther this time. More fixing to come...

svn-id: r33404
2008-07-29 10:13:53 +00:00
Max Horn 09f70b6408 Fixing 'warning: comparison of unsigned expression < 0 is always false'
svn-id: r33383
2008-07-28 22:21:11 +00:00
Kari Salminen add07fceaa Added loading of temporary Operation Stealth savegames. Needs testing!
- Music related settings and adBgVar0 & adBgVar1 aren't loaded currently.
Modified resetEngine to also reset more of the Operation Stealth specific variables.
Added getter for background scrolling value.
Changed additional background indices 1 & 2 from byte to uint16.
Made savegame loading functions return !in.ioFailed() as return value instead of true as previously.

svn-id: r33379
2008-07-28 16:02:40 +00:00
Kari Salminen b08288c1cd Added remaining load functions needed for the Operation Stealth savegame format loading (loadSeqList and loadZoneQuery). Not used yet.
svn-id: r33367
2008-07-28 10:54:53 +00:00
Kari Salminen c23f805a7f Cut Future Wars savegame loading routine into parts that can be reused when loading the Operation Stealth savegame format.
svn-id: r33366
2008-07-28 10:44:54 +00:00
Kari Salminen 50088df80f Now detects temporary Operation Stealth savegame format and saves it. No loading yet.
svn-id: r33365
2008-07-28 10:09:00 +00:00
Kari Salminen 16fe053ab4 Made the savegame loading routine choose between loading a Future Wars or an Operation Stealth savegame format.
Added a stub for loading the Operation Stealth's temporary savegame format (Not yet implemented).
Made mouse cursor change to a disk icon when loading a savegame and back to normal after its done.

svn-id: r33362
2008-07-28 08:44:49 +00:00
Kari Salminen 06a45c49c7 Added a preliminary saving routine for Operation Stealth (Disabled by default, needs more work still. WIP!).
Added backgrounds' name saving (8 names in Operation Stealth instead of just 1 like in Future Wars).
Added 256 color palette saving and restoring (One of the palettes isn't properly handled yet though).

svn-id: r33349
2008-07-27 22:50:36 +00:00
Kari Salminen cedbb6b2b2 Clear the confusing usage of NUM_MAX_VAR (It's 255 actually, not 256).
svn-id: r33339
2008-07-27 14:36:53 +00:00
Kari Salminen 955d0700f5 Cut savegame loading into smaller functional parts (resetEngine, loadPlainSave etc).
svn-id: r33338
2008-07-27 14:33:37 +00:00
Max Horn c92f154b90 Fix warnings in CINE
svn-id: r33202
2008-07-22 14:38:54 +00:00
Kari Salminen 2a90435e5d Fix for bug #2019355 (FW: broken compatibility with 0.11.1 saves):
- Changed savegame loading related functions to use SeekableReadStream
  rather than InSaveFile so MemoryReadStream can be used transparently.
- Fixed loadResourcesFromSave to load multiframe animations correctly
  and to load 0.11.0/0.11.1 Future Wars savegames which used a slightly
  different format.
- Added a savegame format detector that tries to detect between the old
  Future Wars savegame format, the new one and a broken revision of the
  new one.
- Changed makeLoad to first load the savegame fully into memory and only
  then handle it (If the savegame's packed then it's unpacked first). If
  the packed savegame can't tell its unpacked size (i.e. it's using zlib
  format) then we'll try to load up to 256kB of the savegame data.
Thanks to wjp for his help with nailing this release critical bug.

svn-id: r33192
2008-07-22 10:15:58 +00:00