Kyra2: Intro fixes
|Reported by:||bluegr||Owned by:||vinterstum|
I was playing around with the intro of Kyrandia 2. As far as I see, the whole sequence is almost there but the author of the code seemed to have abandoned it. Since noone has updated it in a while, I figured it would be good to do some work on it. The good thing is that the intro is actually a collection of smaller sequences (stored in wsa files) which are displayed one after the other
I still haven't figured out the opcode of the intro parts, so the missing last part is done with a bit of a hack, right where the unloading takes place (that's why the last scene ends prematurely). The correct way to do it would be to render the last part in its corresponding opcode, which I don't know yet
There are a couple of parts which still need work, as the WSA player doesn't handle them correctly, or they are not drawn at the correct screen coordinates. These parts are:
hand1a.wsa, hand1b.wsa, hand1c.wsa which show up as garbage and cause the WSA player to crash, stated as a comment too.
point.wsa which is the last part (and was missing) and ends prematurely (because it's not rendered when its corresponding opcode is called).
It seems that seq_waitForChatsToFinish should wait till the last scene is finished, but unfortunately this is not the case...
I also don't understand how the sequence control parameter works and I can't find any information regarding it. If anyone has information, it would be great
Anyway, this is just some premature work to whoever might be interested (lordhoto?). I can't find information regarding the format (perhaps I haven't looked thoroughly?) so I can't progress without disassembly or some further understanding on how WSA files work
Currently, the TODOs to make the intro fully working are:
- render over1.wsa properly (in its correct coordinates, the animation also seems to show some unexpected black mask around the frame, probably a badly drawn alpha channel?)
- render hand1a.wsa, hand1b.wsa and hand1c.wsa properly
- render point.wsa in its associated opcode
Ticket imported from: #1669536. Ticket imported from: patches/717.