Age | Commit message (Collapse) | Author |
|
|
|
This also should fix some regressions from the previous
commits, related to MidiParser's either being leaked,
or being deleted and then used again (i.e., crashing).
I tested as many games as I had available, but further
testing of all affected engines is called for anyway.
|
|
|
|
|
|
The regression affected AGOS and maybe some others; specifically,
the real MidiDriver would have been deleted twice -- I previously
missed that the Engine instances takes care of freeing the real
MidiDriver, not the MidiPlayer wrapping it.
This commit should clarify the ownership of the real MidiDriver for
most pseudo MidiDrivers.
|
|
Many engines follow the advice in audio/midiparser.h and create a
"pseudo-MidiDriver" subclass. But MidiParser really only needs a tiny
subset of the MidiDriver capabilities, namely those found in
MidiDriver_BASE. So we try to subclass from that whenever possible; this
allows us to remove many stub methods, and enables further future
simplifications.
|
|
This in turn enables modifying MidiDriver_MPU401::close() to allow
it to be called on a midi driver that has not yet been opened.
The specific issue that triggered me to make these changes was a
crash-upon-quit in HUGO, caused by it instantiating a midi driver,
then encountering an error (missing hugo.dat) *before* having
opened the new midi driver; the general cleanup code then tries
to close the (not yet opened) midi driver -> kaboom
Also fixed some engines which were leaking MidiDriver instances.
|
|
|
|
svn-id: r55897
|
|
svn-id: r55887
|
|
svn-id: r55850
|
|
This also fixes the multiple-RTL related music bug reported by D. Gray
svn-id: r55758
|
|
svn-id: r55741
|
|
This fixes the speaker music stopped by message boxes, and the speaker music itself.
svn-id: r55700
|
|
Suppress almost all defines, rename constants
svn-id: r55451
|
|
svn-id: r55145
|
|
svn-id: r55132
|
|
svn-id: r55084
|
|
svn-id: r55018
|
|
svn-id: r55008
|
|
svn-id: r55000
|
|
svn-id: r54923
|
|
svn-id: r54504
|
|
Destructor added to SoundHandler and added delete for _intro in engine destructor.
svn-id: r54225
|
|
svn-id: r53825
|
|
also suppressed some dereferencing
svn-id: r53674
|
|
* Add a mask in each call of Warn(), Error() and Box() not using one
* cleanup: use the same wording for 'End of namespace Hugo' in all files
svn-id: r52406
|
|
svn-id: r52404
|
|
svn-id: r52403
|
|
755->644
svn-id: r52177
|
|
svn-id: r52137
|