Ticket #9021: kq1_demo_fix_updated.diff
File kq1_demo_fix_updated.diff, 3.6 KB (added by , 15 years ago) |
---|
-
sci.cpp
204 204 205 205 if (gamestate->flags & GF_SCI0_OLD || 206 206 gamestate->flags & GF_SCI0_OLDGFXFUNCS || 207 gamestate->flags & GF_SCI0_OLDGETTIME) { 207 gamestate->flags & GF_SCI0_OLDGETTIME || 208 gamestate->flags & GF_SCI0_NEWVOCAB) { 208 209 error("This game entry is erroneous. It's marked as SCI1, but it has SCI0 flags set"); 209 210 } 210 211 } else if (version == SCI_VERSION_1_1 || version == SCI_VERSION_32) { … … 217 218 218 219 if (gamestate->flags & GF_SCI0_OLD || 219 220 gamestate->flags & GF_SCI0_OLDGFXFUNCS || 220 gamestate->flags & GF_SCI0_OLDGETTIME) { 221 gamestate->flags & GF_SCI0_OLDGETTIME || 222 gamestate->flags & GF_SCI0_NEWVOCAB) { 221 223 error("This game entry is erroneous. It's marked as SCI1.1/SCI32, but it has SCI0 flags set"); 222 224 } 223 225 -
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) … … 991 991 {"resource.map", 0, "992ac7cc31d3717fe53818a9bb6d1dae", 594}, 992 992 {"resource.001", 0, "143e1c14f15ad0fbfc714f648a65f661", 205330}, 993 993 {NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO}, 994 GF_FOR_SCI0_BEFORE_ 629,994 GF_FOR_SCI0_BEFORE_502, 995 995 SCI_VERSION_AUTODETECT, 996 996 SCI_VERSION_0 997 997 }, -
sci.h
105 105 ** Older SCI versions had simpler code for GetTime() 106 106 */ 107 107 GF_SCI0_OLDGETTIME = (1 << 2), 108 109 /* Applies to the King's Quest I Demo 110 ** This requires the SCI1 vocabulary, but everything else is close to SCI0. 111 */ 112 GF_SCI0_NEWVOCAB = (1 << 3), 108 113 109 114 // ---------------------------------------------------------------------------- 110 115 … … 115 120 /* 116 121 ** Used to distinguish SCI1 EGA games 117 122 */ 118 GF_SCI1_EGA = (1 << 3),123 GF_SCI1_EGA = (1 << 4), 119 124 120 125 /* Applies to all SCI1 versions after 1.000.200 121 126 ** In late SCI1 versions, the argument of lofs[as] instructions 122 127 ** is absolute rather than relative. 123 128 */ 124 GF_SCI1_LOFSABSOLUTE = (1 << 4),129 GF_SCI1_LOFSABSOLUTE = (1 << 5), 125 130 126 131 /* Applies to all versions from 1.000.510 onwards 127 132 ** kDoSound() is different than in earlier SCI1 versions. 128 133 */ 129 GF_SCI1_NEWDOSOUND = (1 << 5),134 GF_SCI1_NEWDOSOUND = (1 << 6), 130 135 131 136 /* 132 137 ** Newer SCI1 games (like KQ5 CD and EcoQuest 1) use 133 138 ** different semantics in kSetCursor(), like SCI1.1 games 134 139 */ 135 GF_SCI1_NEWSETCURSOR = (1 << 6)140 GF_SCI1_NEWSETCURSOR = (1 << 7) 136 141 }; 137 142 138 143 class SciEngine : public Engine { -
engine/kernel.cpp
627 627 switch (resmgr->_sciVersion) { 628 628 case SCI_VERSION_0: 629 629 case SCI_VERSION_01: 630 vocab_get_knames0(resmgr, names); 630 // HACK: The KQ1 demo requires the SCI1 vocabulary. 631 if (((SciEngine*)g_engine)->getFlags() & GF_SCI0_NEWVOCAB) 632 vocab_get_knames1(resmgr, names); 633 else 634 vocab_get_knames0(resmgr, names); 631 635 break; 632 636 case SCI_VERSION_01_VGA: 633 637 case SCI_VERSION_01_VGA_ODD: