Ticket #9021: kq1_demo_fix_v2.diff
File kq1_demo_fix_v2.diff, 3.1 KB (added by , 15 years ago) |
---|
-
vocabulary.cpp
953 953 switch (_resmgr->_sciVersion) { 954 954 case SCI_VERSION_0: 955 955 case SCI_VERSION_01: 956 vocab_get_knames0(_resmgr, _kernelNames); 956 // HACK: The KQ1 demo requires the SCI1 vocabulary. 957 if (((SciEngine*)g_engine)->getFlags() & GF_SCI0_NEWVOCAB) 958 vocab_get_knames1(_resmgr, _kernelNames); 959 else 960 vocab_get_knames0(_resmgr, _kernelNames); 957 961 break; 958 962 case SCI_VERSION_01_VGA: 959 963 case SCI_VERSION_01_VGA_ODD: -
detection.cpp
950 950 {"resource.map", 0, "59b13619078bd47011421468959ee5d4", 954}, 951 951 {"resource.001", 0, "4cfb9040db152868f7cb6a1e8151c910", 296555}, 952 952 {NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO}, 953 0,953 GF_SCI0_NEWVOCAB, 954 954 SCI_VERSION_AUTODETECT, 955 SCI_VERSION_0 1955 SCI_VERSION_0 956 956 }, 957 957 958 958 // King's Quest 1 SCI Remake - English DOS (from the King's Quest Collection) -
sci.cpp
164 164 165 165 if (gamestate->flags & GF_SCI0_OLD || 166 166 gamestate->flags & GF_SCI0_OLDGFXFUNCS || 167 gamestate->flags & GF_SCI0_OLDGETTIME) { 167 gamestate->flags & GF_SCI0_OLDGETTIME || 168 gamestate->flags & GF_SCI0_NEWVOCAB) { 168 169 error("This game entry is erroneous. It's marked as SCI1, but it has SCI0 flags set"); 169 170 } 170 171 } else if (version == SCI_VERSION_1_1 || version == SCI_VERSION_32) { … … 176 177 177 178 if (gamestate->flags & GF_SCI0_OLD || 178 179 gamestate->flags & GF_SCI0_OLDGFXFUNCS || 179 gamestate->flags & GF_SCI0_OLDGETTIME) { 180 gamestate->flags & GF_SCI0_OLDGETTIME || 181 gamestate->flags & GF_SCI0_NEWVOCAB) { 180 182 error("This game entry is erroneous. It's marked as SCI1.1/SCI32, but it has SCI0 flags set"); 181 183 } 182 184 -
sci.h
108 108 ** Older SCI versions had simpler code for GetTime() 109 109 */ 110 110 GF_SCI0_OLDGETTIME = (1 << 2), 111 112 /* Applies to the King's Quest I Demo 113 ** This requires the SCI1 vocabulary, but everything else is close to SCI0. 114 */ 115 GF_SCI0_NEWVOCAB = (1 << 3), 111 116 112 117 // ---------------------------------------------------------------------------- 113 118 … … 118 123 /* 119 124 ** Used to distinguish SCI1 EGA games 120 125 */ 121 GF_SCI1_EGA = (1 << 3),126 GF_SCI1_EGA = (1 << 4), 122 127 123 128 /* Applies to all SCI1 versions after 1.000.200 124 129 ** In late SCI1 versions, the argument of lofs[as] instructions 125 130 ** is absolute rather than relative. 126 131 */ 127 GF_SCI1_LOFSABSOLUTE = (1 << 4),132 GF_SCI1_LOFSABSOLUTE = (1 << 5), 128 133 129 134 /* Applies to all versions from 1.000.510 onwards 130 135 ** kDoSound() is different than in earlier SCI1 versions. 131 136 */ 132 GF_SCI1_NEWDOSOUND = (1 << 5)137 GF_SCI1_NEWDOSOUND = (1 << 6) 133 138 }; 134 139 135 140 class SciEngine : public Engine {