Ticket #9199: 0001-add-3-workarrounds-for-QFG4.patch

File 0001-add-3-workarrounds-for-QFG4.patch, 2.7 KB (added by SF/henne-nwh, 14 years ago)

3 QFG4 Workarrounds

  • engines/sci/engine/workarounds.cpp

    From 455527b4a509bbbe030edc40e2d84685af1ef51f Mon Sep 17 00:00:00 2001
    From: Henrik Kretzschmar <henne@nachtwindheim.de>
    Date: Thu, 5 Aug 2010 19:07:59 +0200
    Subject: [PATCH] add 3 workarrounds for QFG4
    
    This patch add 3 workarrounds for QFG4.
    All errors can happen in all rooms.
    
    They appear while:
    
    * accessing the game menu:
    
    	Uninitialized read for temp 3 from method controlPlane::setBitmap (script 64917, room 810, localCall ffffffff)!
    
    * while a fight
    
    	Uninitialized read for temp 3 from method Plane::setBitmap (script 64917, room 810, localCall ffffffff)!
    
    * open characterscreen
    
    	Uninitialized read for temp 5 from method charInitScreen::dispatchEvent (script 15, room 770, localCall ffffffff)!
    ---
     engines/sci/engine/workarounds.cpp |    3 +++
     1 files changed, 3 insertions(+), 0 deletions(-)
    
    diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp
    index c9df8e1..1af5965 100644
    a b const SciWorkaroundEntry uninitializedReadWorkarounds[] = {  
    128128        { GID_QFG2,           -1,   701, -1,              "Alley", "at",             -1,    0, { WORKAROUND_FAKE,   0 } }, // when walking inside the alleys in the town - bug #3035835 & #3038367
    129129        { GID_QFG2,           -1,   990,  0,            "Restore", "doit",           -1,  364, { WORKAROUND_FAKE,   0 } }, // when press enter in restore dialog w/o any saved games present
    130130        { GID_QFG3,          330,   330, -1,             "Teller", "doChild",        -1,   -1, { WORKAROUND_FAKE,   0 } }, // when talking to King Rajah about "Rajah" (bug #3036390, temp 1) or "Tarna" (temp 0), or when clicking on yourself and saying "Greet" (bug #3039774, temp 1)
     131        { GID_QFG4,           -1,    15, -1,     "charInitScreen", "dispatchEvent",  -1,    5, { WORKAROUND_FAKE,   0 } }, // when viewing the character screen
     132        { GID_QFG4,           -1, 64917, -1,       "controlPlane", "setBitmap",      -1,    3, { WORKAROUND_FAKE,   0 } }, // when entering the game menu
     133        { GID_QFG4,           -1, 64917, -1,              "Plane", "setBitmap",      -1,    3, { WORKAROUND_FAKE,   0 } }, // happen sometimes in fights
    131134        { GID_SQ1,           103,   103,  0,               "hand", "internalEvent",  -1,   -1, { WORKAROUND_FAKE,   0 } }, // Spanish (and maybe early versions?) only: when moving cursor over input pad, temps 1 and 2
    132135        { GID_SQ1,            -1,   703,  0,                   "", "export 1",       -1,    0, { WORKAROUND_FAKE,   0 } }, // sub that's called from several objects while on sarien battle cruiser
    133136        { GID_SQ1,            -1,   703,  0,         "firePulsar", "changeState", 0x18a,    0, { WORKAROUND_FAKE,   0 } }, // export 1, but called locally (when shooting at aliens)