diff --git a/scumm/instrument.cpp b/scumm/instrument.cpp index e2d78d815c2..8d65368674b 100644 --- a/scumm/instrument.cpp +++ b/scumm/instrument.cpp @@ -135,7 +135,6 @@ public: void send (MidiChannel *mc); void copy_to (Instrument *dest) { dest->program (_program, _mt32); } bool is_valid() { return (_program < 128) && ((_native_mt32 == _mt32) || _native_mt32 ? (MidiDriver::_gmToMt32[_program] < 128) : (MidiDriver::_mt32ToGm[_program] < 128)); } - operator int() { return (_program < 128) ? _program : 255; } }; class Instrument_Adlib : public InstrumentInternal { diff --git a/scumm/instrument.h b/scumm/instrument.h index b51160f4184..cd2cfacbc60 100644 --- a/scumm/instrument.h +++ b/scumm/instrument.h @@ -62,19 +62,6 @@ public: void clear(); void copy_to (Instrument *dest) { if (_instrument) _instrument->copy_to (dest); else dest->clear(); } - // FIXME: This is evil! We cast a pointer to an int. Besides not being - // portable to 64bit systems, it is unclear why this is needed. - // If the only reason is to supply a unique identifier of that - // instrument: there are better ways do do that. - // OTOH, maybe the code is simply wrong, and what is really meant - // here is to first dereference _instrument, then cast it? Like - // this: (int)*_instrument - // At least this would explain the otherwise unused operator int() - // supplied by class Instrument_Program. - // If that is the case, the operator int() should all be replaced by - // a proper method, like "get_something()" - operator int() { return (_instrument ? (int) _instrument : 255); } - void program (byte program, bool mt32); void adlib (byte *instrument); void roland (byte *instrument);