- When these files are included for the second time, a warning is shown that the previous recipes will be overriden.
- Use_Rules helps with a workaround to disable these warnings.
For each engine:
- Make a new folder detection
- Move detection-related files inside the folder
- Add a new module "enginename/detection"
- Add DETECT_OBJS here
- Adjust the normal engine module to remove detect_objs
- Adjust every file for the new changes.
This also (hopefully) involves most of the necessary graphics code. Text support is still missing. Otherwise, the intro and outro play mostly fine (except for some special opcodes).
Initial file handling, palette and graphics support. The opening credits get played satisfactory. Following up with the cinematics player will be much easier now...
* MIDI/KYRA: Add channel locking and GM to XMIDI
This improves support for XMIDI channel locking and moves it from the KYRA
engine to the generic Miles MIDI driver. To support this, a source parameter
is added to the XMIDI parser and Miles driver so the driver can distinguish
several XMIDI parser instances sending MIDI events. I've also added GM support
to the generic Miles MIDI driver.
The previous implementation of channel locking did not always track and restore
controller values properly when unlocking a channel. Specifically, at the start
of Legend of Kyrandia, when Brandon talks to the tree, the tree "creaking"
sound effect uses some channels from the background music. The volume of the
music channels was not correctly restored, resulting in some instruments being
much louder then others.
Another issue was that volume was not always properly set when locking a
channel. In the Legend of Kyrandia intro, when Brandon is lifted up to the
house, some sound effects were missing because MIDI channel volume was 0.
This new implementation fixes these issues.
* MIDI: Suppress Miles controller warnings
Several Miles controller MIDI messages generate warnings in the XMIDI parser,
even though they are handled by the Miles drivers. I've removed these.
* MIDI: Fix Codacy issues
Rename files which are only used for one target.
This is actually wrong for my renaming of sound_towns.
But I'll move the code for other targets to different files in another commit. I want to do just the renaming here, so that Git might be better at preserving the history.
Reorganize all files in sub directories. The file placement isn't as intuitive as it might be for other engines, which is probably the reason why this hasn't been done before.
- Change default build system to support LoL as a subengine of KYRA. LoL is currently disabled by default.
(- Minor enum name fixes for Lands of Lore code.)
svn-id: r39099