SCI: reverting r48787 port updates were actually introduced (heard that before) in SCI1. I used the outdated wiki before and that one lists qfg2 and xmas90ega being SCI01. They are actually SCI1
svn-id: r48789
This commit is contained in:
parent
8f9dd90a87
commit
194bdd9b83
7 changed files with 15 additions and 27 deletions
|
@ -36,8 +36,9 @@ namespace Sci {
|
|||
|
||||
#define SCANCODE_ROWS_NR 3
|
||||
|
||||
SciEvent::SciEvent(bool fontIsExtended)
|
||||
: _fontIsExtended(fontIsExtended) {
|
||||
SciEvent::SciEvent(ResourceManager *resMan) {
|
||||
// Check, if font of current game includes extended chars
|
||||
_fontIsExtended = resMan->detectFontExtended();
|
||||
}
|
||||
|
||||
SciEvent::~SciEvent() {
|
||||
|
|
|
@ -113,7 +113,7 @@ struct sciEvent {
|
|||
|
||||
class SciEvent {
|
||||
public:
|
||||
SciEvent(bool fontIsExtended);
|
||||
SciEvent(ResourceManager *resMgr);
|
||||
~SciEvent();
|
||||
|
||||
sciEvent get(unsigned int mask);
|
||||
|
|
|
@ -42,8 +42,8 @@
|
|||
|
||||
namespace Sci {
|
||||
|
||||
GfxAnimate::GfxAnimate(EngineState *state, GfxCache *cache, GfxPorts *ports, GfxPaint16 *paint16, GfxScreen *screen, GfxPalette *palette, GfxCursor *cursor, GfxTransitions *transitions, bool fontIsExtended)
|
||||
: _s(state), _cache(cache), _ports(ports), _paint16(paint16), _screen(screen), _palette(palette), _cursor(cursor), _transitions(transitions), _fontIsExtended(fontIsExtended) {
|
||||
GfxAnimate::GfxAnimate(EngineState *state, GfxCache *cache, GfxPorts *ports, GfxPaint16 *paint16, GfxScreen *screen, GfxPalette *palette, GfxCursor *cursor, GfxTransitions *transitions)
|
||||
: _s(state), _cache(cache), _ports(ports), _paint16(paint16), _screen(screen), _palette(palette), _cursor(cursor), _transitions(transitions) {
|
||||
init();
|
||||
}
|
||||
|
||||
|
@ -66,14 +66,6 @@ void GfxAnimate::init() {
|
|||
// (found in larry 1)
|
||||
if (!_s->_segMan->findObjectByName("fastCast").isNull())
|
||||
_ignoreFastCast = true;
|
||||
|
||||
// SCI01 introduced port-update calls, although only the non multilingual games qfg2 and xmas90ega
|
||||
// So we enable those for SCI1+ games all the time and for SCI01 games that don't have extended fonts
|
||||
_doPortUpdate = false;
|
||||
if ((getSciVersion() == SCI_VERSION_01) && (!_fontIsExtended))
|
||||
_doPortUpdate = true;
|
||||
if (getSciVersion() > SCI_VERSION_01)
|
||||
_doPortUpdate = true;
|
||||
}
|
||||
|
||||
void GfxAnimate::disposeLastCast() {
|
||||
|
@ -639,13 +631,13 @@ void GfxAnimate::kernelAnimate(reg_t listReference, bool cycle, int argc, reg_t
|
|||
fill(old_picNotValid);
|
||||
|
||||
if (old_picNotValid) {
|
||||
// beginUpdate()/endUpdate() were introduced SCI01 (xmas90ega and qfg2 only), in SCI1+ all the time
|
||||
// beginUpdate()/endUpdate() were introduced SCI1
|
||||
// calling those for SCI0 will work most of the time but breaks minor stuff like percentage bar of qfg1ega
|
||||
// at the character skill screen
|
||||
if (_doPortUpdate)
|
||||
if (getSciVersion() >= SCI_VERSION_1_EGA)
|
||||
_ports->beginUpdate(_ports->_picWind);
|
||||
update();
|
||||
if (_doPortUpdate)
|
||||
if (getSciVersion() >= SCI_VERSION_1_EGA)
|
||||
_ports->endUpdate(_ports->_picWind);
|
||||
}
|
||||
|
||||
|
|
|
@ -86,7 +86,7 @@ class GfxTransitions;
|
|||
*/
|
||||
class GfxAnimate {
|
||||
public:
|
||||
GfxAnimate(EngineState *state, GfxCache *cache, GfxPorts *ports, GfxPaint16 *paint16, GfxScreen *screen, GfxPalette *palette, GfxCursor *cursor, GfxTransitions *transitions, bool fontIsExtended);
|
||||
GfxAnimate(EngineState *state, GfxCache *cache, GfxPorts *ports, GfxPaint16 *paint16, GfxScreen *screen, GfxPalette *palette, GfxCursor *cursor, GfxTransitions *transitions);
|
||||
virtual ~GfxAnimate();
|
||||
|
||||
// FIXME: Don't store EngineState
|
||||
|
@ -133,8 +133,6 @@ private:
|
|||
AnimateEntry *_lastCastData;
|
||||
|
||||
bool _ignoreFastCast;
|
||||
bool _fontIsExtended;
|
||||
bool _doPortUpdate;
|
||||
};
|
||||
|
||||
} // End of namespace Sci
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
|
||||
namespace Sci {
|
||||
|
||||
SciGui::SciGui(EngineState *state, GfxScreen *screen, GfxPalette *palette, GfxCache *cache, GfxCursor *cursor, GfxPorts *ports, AudioPlayer *audio, bool fontIsExtended)
|
||||
SciGui::SciGui(EngineState *state, GfxScreen *screen, GfxPalette *palette, GfxCache *cache, GfxCursor *cursor, GfxPorts *ports, AudioPlayer *audio)
|
||||
: _s(state), _screen(screen), _palette(palette), _cache(cache), _cursor(cursor), _ports(ports), _audio(audio) {
|
||||
|
||||
// FIXME/TODO: If SciGui inits all the stuff below, then it should *own* it,
|
||||
|
@ -66,7 +66,7 @@ SciGui::SciGui(EngineState *state, GfxScreen *screen, GfxPalette *palette, GfxCa
|
|||
_paint16 = new GfxPaint16(g_sci->getResMan(), _s->_segMan, g_sci->getKernel(), this, _cache, _ports, _coordAdjuster, _screen, _palette, _transitions);
|
||||
g_sci->_gfxPaint = _paint16;
|
||||
g_sci->_gfxPaint16 = _paint16;
|
||||
_animate = new GfxAnimate(_s, _cache, _ports, _paint16, _screen, _palette, _cursor, _transitions, fontIsExtended);
|
||||
_animate = new GfxAnimate(_s, _cache, _ports, _paint16, _screen, _palette, _cursor, _transitions);
|
||||
g_sci->_gfxAnimate = _animate;
|
||||
_text16 = new GfxText16(g_sci->getResMan(), _cache, _ports, _paint16, _screen);
|
||||
_controls = new GfxControls(_s->_segMan, _ports, _paint16, _text16, _screen);
|
||||
|
|
|
@ -46,7 +46,7 @@ class GfxTransitions;
|
|||
|
||||
class SciGui {
|
||||
public:
|
||||
SciGui(EngineState *s, GfxScreen *screen, GfxPalette *palette, GfxCache *cache, GfxCursor *cursor, GfxPorts *ports, AudioPlayer *audio, bool fontIsExtended);
|
||||
SciGui(EngineState *s, GfxScreen *screen, GfxPalette *palette, GfxCache *cache, GfxCursor *cursor, GfxPorts *ports, AudioPlayer *audio);
|
||||
virtual ~SciGui();
|
||||
|
||||
virtual void init(bool usesOldGfxFunctions);
|
||||
|
|
|
@ -182,10 +182,7 @@ Common::Error SciEngine::run() {
|
|||
|
||||
_gamestate = new EngineState(_vocabulary, segMan);
|
||||
|
||||
// Detect extended font used in multilingual games
|
||||
bool fontIsExtended = _resMan->detectFontExtended();
|
||||
|
||||
_gamestate->_event = new SciEvent(fontIsExtended);
|
||||
_gamestate->_event = new SciEvent(_resMan);
|
||||
|
||||
if (script_init_engine(_gamestate))
|
||||
return Common::kUnknownError;
|
||||
|
@ -202,7 +199,7 @@ Common::Error SciEngine::run() {
|
|||
} else {
|
||||
#endif
|
||||
_gfxPorts = new GfxPorts(segMan, screen);
|
||||
_gui = new SciGui(_gamestate, screen, palette, cache, cursor, _gfxPorts, _audio, fontIsExtended);
|
||||
_gui = new SciGui(_gamestate, screen, palette, cache, cursor, _gfxPorts, _audio);
|
||||
#ifdef ENABLE_SCI32
|
||||
_gui32 = 0;
|
||||
_gfxFrameout = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue