<div dir="ltr">The SCI music code has been based on Greg's SCI implementation (plus a lot of parts from FreeSCI itself).<div><br></div><div>Greg implemented the initial custom MidiParser (MidiParser_SCI), so the reason why everything is processed in parseNextEvent() is because Greg did it that way...</div>
<div><br></div><div>In retrospect, the best place for processing the signals should have been placed in sendToDriver() indeed, so IMHO, that's what should be done....</div><div><br></div><div>As mentioned, this is a rather invasive change, especially because a lot of animations in SCI are synchronized with custom signals in the game music itself, so we would need to check known places that were problematic with that signal synchronization.</div>
<div><br></div><div>Do not that there are a couple of cases related to music that are inherently broken, because the associated game scripts have timer issues. A notable example is the synchronization of the song and the little ball in the intro of Freddy Pharkas (Floppy version).</div>
<div><br></div><div>Regards</div><div>Filippos</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Sep 20, 2013 at 12:34 PM, Willem Jan Palenstijn <span dir="ltr"><<a href="mailto:wjp@usecode.org" target="_blank">wjp@usecode.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
This is a bit of an historical/design question:<br>
<br>
Is there any reason the SCI midiparser does processing of signals, cues, loops<br>
and such in the parseNextEvent() function instead of in the sendToDriver()<br>
function?<br>
<br>
Putting that processing in the parseNextEvent means it gets done _before_ the<br>
delay associated to the event, which means we now have all these hacks to delay<br>
things at the top of parseNextEvent.<br>
<br>
I was thinking of changing this, but it's a rather invasive change, so any<br>
insights or historical perspective would be welcome.<br>
<br>
It may require putting the "META Event" processing from MidiParser::onTimer in<br>
a new virtual function to allow us to override it for SCI's looping behaviour,<br>
but that shouldn't be a problem.<br>
<br>
<br>
-Willem Jan<br>
<br>
------------------------------------------------------------------------------<br>
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!<br>
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint<br>
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes<br>
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13.<br>
<a href="http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk" target="_blank">http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk</a><br>
_______________________________________________<br>
Scummvm-devel mailing list<br>
<a href="mailto:Scummvm-devel@lists.sourceforge.net">Scummvm-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/scummvm-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/scummvm-devel</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>"Experience is the name every one gives to their mistakes" - Oscar Wilde 
</div>