aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/imuse/imuse_internal.h
diff options
context:
space:
mode:
authorColin Snover2017-11-29 00:06:12 -0600
committerEugene Sandulenko2018-01-31 17:58:01 +0100
commit9916b263831f20e5841275051a8ed014de1f24eb (patch)
treebcd69585fa26cfa3c93ab60c7c480433fe9746f9 /engines/scumm/imuse/imuse_internal.h
parent157ee95f64380215c3e6b1fed53be99607479582 (diff)
downloadscummvm-rg350-9916b263831f20e5841275051a8ed014de1f24eb.tar.gz
scummvm-rg350-9916b263831f20e5841275051a8ed014de1f24eb.tar.bz2
scummvm-rg350-9916b263831f20e5841275051a8ed014de1f24eb.zip
SCUMM: Replace UB-triggering serialization code with Common::Serializer
Fixes Trac#10342.
Diffstat (limited to 'engines/scumm/imuse/imuse_internal.h')
-rw-r--r--engines/scumm/imuse/imuse_internal.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/engines/scumm/imuse/imuse_internal.h b/engines/scumm/imuse/imuse_internal.h
index fed716e300..7b1d2f65fa 100644
--- a/engines/scumm/imuse/imuse_internal.h
+++ b/engines/scumm/imuse/imuse_internal.h
@@ -24,6 +24,7 @@
#define SCUMM_IMUSE_INTERNAL
#include "common/scummsys.h"
+#include "common/serializer.h"
#include "scumm/imuse/imuse.h"
#include "scumm/imuse/instrument.h"
#include "scumm/saveload.h"
@@ -153,7 +154,7 @@ struct CommandQueue {
//
//////////////////////////////////////////////////
-class Player : public MidiDriver_BASE {
+class Player : public MidiDriver_BASE, public Common::Serializable {
/*
* External SysEx handler functions shall each be defined in
* a separate file. This header file shall be included at the
@@ -267,7 +268,7 @@ public:
void onTimer();
void removePart(Part *part);
int scan(uint totrack, uint tobeat, uint totick);
- void saveLoadWithSerializer(Serializer *ser);
+ void saveLoadWithSerializer(Common::Serializer &ser);
int setHook(byte cls, byte value, byte chan) { return _hook.set(cls, value, chan); }
void setDetune(int detune);
void setOffsetNote(int offset);
@@ -295,7 +296,7 @@ public:
//
//////////////////////////////////////////////////
-struct Part : public Serializable {
+struct Part : public Common::Serializable {
IMuseInternal *_se;
int _slot;
Part *_next, *_prev;
@@ -360,7 +361,7 @@ struct Part : public Serializable {
Part();
- void saveLoadWithSerializer(Serializer *ser);
+ void saveLoadWithSerializer(Common::Serializer &ser);
private:
void sendPitchBend();
@@ -518,7 +519,7 @@ protected:
public:
// IMuse interface
void pause(bool paused);
- int save_or_load(Serializer *ser, ScummEngine *scumm, bool fixAfterLoad = true);
+ void saveLoadWithSerializer(Common::Serializer &ser, ScummEngine *scumm, bool fixAfterLoad = true);
bool get_sound_active(int sound) const;
int32 doCommand(int numargs, int args[]);
uint32 property(int prop, uint32 value);