aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kmovement.cpp
AgeCommit message (Collapse)Author
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-04-21SCI: Avoid (unused) sqrt of a negative numberWillem Jan Palenstijn
This fixes bug #3289799.
2011-03-19ALL: s/PI/M_PI/dhewg
Tip of the day: git grep -w PI
2011-03-14SCI: Removed obsolete comment about kDoBresen()md5
2011-03-13SCI: Restore full object state after collision in DoBresenWillem Jan Palenstijn
This makes the workaround for the hang in the Colonel's Bequest shower scene (bug #3122075) unnecessary.
2011-02-27SCI: Remove kDoBresen special case for SCI_VERSION_1_EGA_ONLYWillem Jan Palenstijn
Confirmed with QfG2 disassembly (the only 1_EGA_ONLY game) that it behaves the same as SCI_VERSION_1_EARLY games, except for the uninitialized read already mentioned in kDoBresen.
2011-02-27SCI: Renamed SCI_VERSION_1_EGA to SCI_VERSION_1_EGA_ONLYmd5
This renaming allows us to better distinguish that this version is for games that only had an EGA version, and avoid confusion with newer SCI1 game releases with EGA graphics (e.g. KQ5 EGA). The only game with this SCI version is QFG2, a SCI1 EGA game with a parser. Also, added some games for each SCI version.
2011-02-27SCI: Improved the readability of the kDoBresen code a bitmd5
2011-02-27SCI: Don't set b_movCnt to moveSpeed while walkingWillem Jan Palenstijn
This fixes moonwalking in LSL1 and movement speed in KQ5. It appears to be have been a RE bug.
2011-01-15SCI: Added a hack to fix bug #3122075 - "LB1: Game play freezes when taking ↵Filippos Karapetis
shower" This is a regression from the new kInitBresen/kDoBresen functions, enabled in r52467. Many thanks to waltervn for his work in bisecting this. The actual bug should be found, but since only this death scene has an issue, it's not really worth the effort. The old functions are based on observations, so there are many differences in the way that they behave. If another test case is found, then this shall be examined further. Until then, this simple and unobtrusive hack will do. svn-id: r55251
2011-01-01SCI: debugC calls no longer require a debug level of 2 to show outputFilippos Karapetis
svn-id: r55086
2010-09-05SCI: reuse kGetAngle from kDoAvoiderMartin Kiewitz
svn-id: r52560
2010-09-04SCI: kDoBresen changes for sci1early+Martin Kiewitz
including change to compare dest and current position directly, otherwise we would trigger ::moveDone one cycle too late in case the current move completed - fixes lsl5 patti upside down bug #3059336 and lb2cd (cd only!) laura bow getting transformed into a boiler-flame (bug #3050602) - lsl5 was not a real regression, the timing of previous kDoBresen way just off, so it didn't happen in that scene, but happened in lb2cd svn-id: r52531
2010-09-04SCI: fixing typo in kDoAvoiderMartin Kiewitz
svn-id: r52520
2010-09-04SCI: properly reversed kDoAvoiderMartin Kiewitz
getAngle()-code is missing though. Still fixes lsl2early hang on airport (bug #3037036), fixes kq4early unicorn doing moonwalk (kq4late still works as well) svn-id: r52512
2010-09-03SCI: kDirLoop freshly reversedMartin Kiewitz
svn-id: r52510
2010-08-31SCI: enable new kDoBresen/InitBresenMartin Kiewitz
enable replacement of save/load dialogs per default add config-var "sci_originalsaveload" for not replacing dialogs add config-var "sci_dither" for enabling dithering in EGA games new kDoBresen fix qfg2 walk against wall bug (#3053131) and hoyle3 unreadable dice bug (#3036922) svn-id: r52467
2010-08-30SCI: ability to ignore movecount for new DoBresenMartin Kiewitz
fixes later sci games, when using new kDoBresen/kInitBresen svn-id: r52454
2010-08-30SCI: freshly reversed kDoBresen/kInitBresenMartin Kiewitz
fixes qfg2 walking against wall, etc. BUT its currently disabled by default. You need to comment out the #define USE_OLD_BRESEN line in kmovement.cpp svn-id: r52453
2010-08-30SCI: adding comments for kDoBresenMartin Kiewitz
svn-id: r52452
2010-08-29SCI: cleanup kDoBresen (no real code change)Martin Kiewitz
svn-id: r52446
2010-08-29SCI: fix typo in commentMartin Kiewitz
svn-id: r52445
2010-08-19SCI: Fixed bug #3039768 - "QFG3: Glitch When Making Thief Sign to Rope ↵Filippos Karapetis
Maker", by fixing the implementation of kSetJump, based on Greg's SCI code. kSetJump returned an incorrect result, causing the actor to jump outside the screen svn-id: r52207
2010-08-18SCI: CleanupFilippos Karapetis
svn-id: r52181
2010-08-15SCI: Change abs() to ABS()Torbjörn Andersson
I'm not sure why we define our own ABS(), but I assume we have some compelling reason for it. svn-id: r52105
2010-08-07SCI: removing kDoBresen hack for sq5Martin Kiewitz
adding detailed comment about sq5 scrubbing issue not 100% fixed (waltervn should look into it), but at least it works now svn-id: r51833
2010-08-06SCI: Fixed an off-by one error in the kDoBresen sanity checkFilippos Karapetis
svn-id: r51804
2010-08-05SCI: Added bug number for the floor scrubbing bugFilippos Karapetis
svn-id: r51770
2010-08-05Added a sanity check inside kDoBresen, thanks to lskovlun. Fixes the random ↵Filippos Karapetis
crashes in the floor scrubbing scene in SQ5 svn-id: r51768
2010-07-30SCI: Switch to Common::RandomSource.Johannes Schickel
Since I got no response to my mail to -devel, I just assume that there is no specific reason for using rand() in SCI. As explained in my mail to -devel about why SCI uses rand, this might allow SCI to work with our event recording, when that ever gets finished. I adapted kRandom so that it also supports negative random numbers. And furthermore that the toNumber argument is smaller than the fromNumber argument. I am not sure whether that really happens though, but it should be safer to have this. I marked that place with an TODO/CHECKME. svn-id: r51521
2010-07-29SCI: fixing hoyle 3Martin Kiewitz
hoyle 3 is using kCanBeHere, but it has cantBeHere and canBeHere selectors so our auto detection would fail it also has a cantBeHere stub in Actor, thus it won't set acc at all. We reset acc because of that before calling cantBeHere selector (!) of the actors (canBeHere isnt used) so that we wont get a collision otherwise because acc is non zero when calling kDoBresen (fixes all sorts of bugs, clone2727 should clean it up :P svn-id: r51485
2010-07-29SCI: reverting r51479 and adding TODOs for fixing the hoyle issue (fixing ↵Martin Kiewitz
this properly should make credits etc. appear and solve all the other issues that clone submitted) svn-id: r51484
2010-07-29SCI: Fixed Hoyle 3 bugs #3035077, #3035080, #3035081 and #3035242, by using ↵Filippos Karapetis
the "completed" case removed in rev #50921 for Hoyle 3 svn-id: r51479
2010-07-19SCI: kDoBresen - check xLast/yLast selectorsMartin Kiewitz
fixed mixed-up fairy tales demo svn-id: r51035
2010-07-16SCI: enable r50931 for sci1late+ only, lsl1vga doesn't like it (ego gets stuck)Martin Kiewitz
svn-id: r50935
2010-07-16SCI: added comments about when xLast/yLast were exactly introducedMartin Kiewitz
svn-id: r50934
2010-07-16SCI: only use xLast/yLast in kDoBresen for sci1middle+ only. qfg1 ega has ↵Martin Kiewitz
those selector names, but doesn't use them inside mover objects svn-id: r50933
2010-07-16SCI: kDoBresen - save last position of client inside mover - fixes lsl6 tram ↵Martin Kiewitz
still shaking while gotten stopped due ego svn-id: r50931
2010-07-15SCI: kDoBresen now returns result of CantBeHere() like sierra sci does it, ↵Martin Kiewitz
also adding another comment about r50921 svn-id: r50922
2010-07-15SCI: solved lsl1 casino door, lsl6 tram disappearing and qfg1 vga gate issue ↵Martin Kiewitz
- i hope this won't cause regressions, but calling the method in collision case is definitely wrong svn-id: r50921
2010-06-18SCI: Rewrap some overlong commentsMax Horn
svn-id: r50012
2010-06-17Strict mode: Changed several warnings due to logic bugs into errors. If an ↵Filippos Karapetis
error pops up from these ones, please add the game where it occurred and the steps to reproduce the error before turning it into a warning svn-id: r49973
2010-06-10Fixed regression from commit #49564Filippos Karapetis
svn-id: r49569
2010-06-10Unified invokeSelector() and invokeSelectorArgv(), and removed the INV_SEL ↵Filippos Karapetis
kludge. Also, removed the selectorInvocation parameter - if invokeSelector() fails, the error is in most cases unrecoverable, and the error description thrown covers all cases where kContinueOnInvalidSelector was used. This uncovered a bug too: in some places, non reg_t parameters were parsed svn-id: r49564
2010-05-29Mass renaming of selector-related functions, and removed some defines which ↵Filippos Karapetis
were just cloaking functions with a different name - GET_SEL32 -> readSelector - GET_SEL32V -> readSelectorValue - PUT_SEL32 -> writeSelector - PUT_SEL32V -> writeSelectorValue Also, changed some selector-related function names and variables to CamelCase svn-id: r49317
2010-05-23SCI: removed hack for iceman in kDoBresen - fixes all sorts of automatic ↵Martin Kiewitz
walking issues (like rescueing ambassador) in iceman, dancing at the beginning also still works - thx to [md5] svn-id: r49163
2010-05-23Cleaned up the game ID code:Filippos Karapetis
- 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-03-08SCI: Make EngineState parameter to INV_SEL explicitMax Horn
svn-id: r48202
2010-02-13SCI: Remove EngineState::_kernel, use SciEngine::_kernel insteadMax Horn
svn-id: r48050
2010-02-13SCI: Move GameFeatures from EngineState to SciEngineMax Horn
svn-id: r48049