[Scummvm-git-logs] scummvm master -> 46ba0500cebf4ed6334d43b6b48b2079f06d05d0
mduggan
mgithub at guarana.org
Mon May 25 07:28:33 UTC 2020
This automated email contains information about 8 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
a7d3ffe629 ULTIMA8: Alter process class to make kernel responsible for writing the name on save as it must be responsible for readi
0471207c95 ULTIMA8: Make saveData method public on remaining process classes
1781f5e10d ULTIMA8: Make saveData method public on object classes
9dbc637489 ULTIMA8: make saveData public on Gump class
ac67b2195d ULTIMA8: Alter object class to make object manager responsible for writing the name on save as it must be responsible fo
20e95ab50b ULTIMA8: log error and skip save of process or object that cannot be loaded.
f6002eb3ee ULTIMA8: remove uses of strlen in object / process classname save
46ba0500ce ULTIMA8: Change saving of unregisistered classname to an error
Commit: a7d3ffe6297eb5033c20170ec30737d4852c7992
https://github.com/scummvm/scummvm/commit/a7d3ffe6297eb5033c20170ec30737d4852c7992
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2020-05-25T16:28:25+09:00
Commit Message:
ULTIMA8: Alter process class to make kernel responsible for writing the name on save as it must be responsible for reading the name on load.
Changed paths:
engines/ultima/ultima8/audio/audio_process.h
engines/ultima/ultima8/games/start_crusader_process.h
engines/ultima/ultima8/games/start_u8_process.h
engines/ultima/ultima8/graphics/inverter_process.h
engines/ultima/ultima8/graphics/palette_fader_process.h
engines/ultima/ultima8/gumps/gump_notify_process.h
engines/ultima/ultima8/gumps/main_menu_process.h
engines/ultima/ultima8/kernel/delay_process.h
engines/ultima/ultima8/kernel/kernel.cpp
engines/ultima/ultima8/kernel/process.cpp
engines/ultima/ultima8/kernel/process.h
engines/ultima/ultima8/usecode/uc_process.h
engines/ultima/ultima8/world/actors/actor_anim_process.h
engines/ultima/ultima8/world/actors/ambush_process.h
engines/ultima/ultima8/world/actors/avatar_death_process.h
engines/ultima/ultima8/world/actors/avatar_mover_process.h
engines/ultima/ultima8/world/actors/clear_feign_death_process.h
engines/ultima/ultima8/world/actors/combat_process.h
engines/ultima/ultima8/world/actors/grant_peace_process.h
engines/ultima/ultima8/world/actors/heal_process.h
engines/ultima/ultima8/world/actors/loiter_process.h
engines/ultima/ultima8/world/actors/pathfinder_process.h
engines/ultima/ultima8/world/actors/quick_avatar_mover_process.h
engines/ultima/ultima8/world/actors/resurrection_process.h
engines/ultima/ultima8/world/actors/scheduler_process.h
engines/ultima/ultima8/world/actors/teleport_to_egg_process.h
engines/ultima/ultima8/world/camera_process.h
engines/ultima/ultima8/world/create_item_process.h
engines/ultima/ultima8/world/destroy_item_process.h
engines/ultima/ultima8/world/egg_hatcher_process.h
engines/ultima/ultima8/world/fireball_process.h
engines/ultima/ultima8/world/gravity_process.h
engines/ultima/ultima8/world/split_item_process.h
engines/ultima/ultima8/world/sprite_process.h
diff --git a/engines/ultima/ultima8/audio/audio_process.h b/engines/ultima/ultima8/audio/audio_process.h
index bf19e482a0..4641c80e20 100644
--- a/engines/ultima/ultima8/audio/audio_process.h
+++ b/engines/ultima/ultima8/audio/audio_process.h
@@ -120,9 +120,9 @@ public:
void stopAllExceptSpeech();
bool loadData(Common::ReadStream *rs, uint32 version);
+ void saveData(Common::WriteStream *ws) override;
private:
- void saveData(Common::WriteStream *ws) override;
uint32 _paused;
//! play the next speech sample for the text in this SampleInfo
diff --git a/engines/ultima/ultima8/games/start_crusader_process.h b/engines/ultima/ultima8/games/start_crusader_process.h
index da958a27c7..42b13c9b69 100644
--- a/engines/ultima/ultima8/games/start_crusader_process.h
+++ b/engines/ultima/ultima8/games/start_crusader_process.h
@@ -44,7 +44,6 @@ protected:
bool _skipStart;
int _saveSlot;
- void saveData(Common::WriteStream *ws) override;
public:
StartCrusaderProcess(int saveSlot = -1);
@@ -54,6 +53,7 @@ public:
void run() override;
bool loadData(Common::ReadStream *rs, uint32 version);
+ void saveData(Common::WriteStream *ws) override;
};
} // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/games/start_u8_process.h b/engines/ultima/ultima8/games/start_u8_process.h
index 8a863f329a..b629ade995 100644
--- a/engines/ultima/ultima8/games/start_u8_process.h
+++ b/engines/ultima/ultima8/games/start_u8_process.h
@@ -37,7 +37,6 @@ protected:
bool _skipStart;
int _saveSlot;
- void saveData(Common::WriteStream *ws) override;
public:
StartU8Process(int saveSlot = -1);
@@ -47,6 +46,7 @@ public:
void run() override;
bool loadData(Common::ReadStream *rs, uint32 version);
+ void saveData(Common::WriteStream *ws) override;
};
} // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/graphics/inverter_process.h b/engines/ultima/ultima8/graphics/inverter_process.h
index 43ff4772fb..4ca226fe66 100644
--- a/engines/ultima/ultima8/graphics/inverter_process.h
+++ b/engines/ultima/ultima8/graphics/inverter_process.h
@@ -50,9 +50,9 @@ public:
INTRINSIC(I_invertScreen);
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
static InverterProcess *_inverter;
unsigned int _targetState;
};
diff --git a/engines/ultima/ultima8/graphics/palette_fader_process.h b/engines/ultima/ultima8/graphics/palette_fader_process.h
index 098d3905f7..05855db645 100644
--- a/engines/ultima/ultima8/graphics/palette_fader_process.h
+++ b/engines/ultima/ultima8/graphics/palette_fader_process.h
@@ -58,7 +58,6 @@ public:
INTRINSIC(I_lightningBolt);
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/gumps/gump_notify_process.h b/engines/ultima/ultima8/gumps/gump_notify_process.h
index 9cfa703185..4d566998b0 100644
--- a/engines/ultima/ultima8/gumps/gump_notify_process.h
+++ b/engines/ultima/ultima8/gumps/gump_notify_process.h
@@ -55,7 +55,6 @@ public:
void dumpInfo() const override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/gumps/main_menu_process.h b/engines/ultima/ultima8/gumps/main_menu_process.h
index 3add7e6cb4..1033e388ad 100644
--- a/engines/ultima/ultima8/gumps/main_menu_process.h
+++ b/engines/ultima/ultima8/gumps/main_menu_process.h
@@ -41,9 +41,9 @@ public:
void run() override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
bool _init;
};
diff --git a/engines/ultima/ultima8/kernel/delay_process.h b/engines/ultima/ultima8/kernel/delay_process.h
index b232846616..eead897303 100644
--- a/engines/ultima/ultima8/kernel/delay_process.h
+++ b/engines/ultima/ultima8/kernel/delay_process.h
@@ -43,9 +43,9 @@ public:
void dumpInfo() const override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
int _count;
};
diff --git a/engines/ultima/ultima8/kernel/kernel.cpp b/engines/ultima/ultima8/kernel/kernel.cpp
index 401080ea2a..9031ec4897 100644
--- a/engines/ultima/ultima8/kernel/kernel.cpp
+++ b/engines/ultima/ultima8/kernel/kernel.cpp
@@ -324,7 +324,12 @@ void Kernel::save(Common::WriteStream *ws) {
_pIDs->save(ws);
ws->writeUint32LE(_processes.size());
for (ProcessIterator it = _processes.begin(); it != _processes.end(); ++it) {
- (*it)->save(ws);
+ const char *cname = (*it)->GetClassType()._className; // virtual
+ uint16 clen = strlen(cname);
+
+ ws->writeUint16LE(clen);
+ ws->write(cname, clen);
+ (*it)->saveData(ws);
}
}
diff --git a/engines/ultima/ultima8/kernel/process.cpp b/engines/ultima/ultima8/kernel/process.cpp
index 926c67a4e3..c66d56ba34 100644
--- a/engines/ultima/ultima8/kernel/process.cpp
+++ b/engines/ultima/ultima8/kernel/process.cpp
@@ -117,19 +117,6 @@ void Process::dumpInfo() const {
g_debugger->debugPrintf("%s\n", info.c_str());
}
-void Process::save(Common::WriteStream *ws) {
- writeProcessHeader(ws);
- saveData(ws); // virtual
-}
-
-void Process::writeProcessHeader(Common::WriteStream *ws) {
- const char *cname = GetClassType()._className; // virtual
- uint16 clen = strlen(cname);
-
- ws->writeUint16LE(clen);
- ws->write(cname, clen);
-}
-
void Process::saveData(Common::WriteStream *ws) {
ws->writeUint16LE(_pid);
ws->writeUint32LE(_flags);
diff --git a/engines/ultima/ultima8/kernel/process.h b/engines/ultima/ultima8/kernel/process.h
index b77215b8c6..80a47a09f4 100644
--- a/engines/ultima/ultima8/kernel/process.h
+++ b/engines/ultima/ultima8/kernel/process.h
@@ -109,18 +109,13 @@ public:
//! dump some info about this process to pout
virtual void dumpInfo() const;
- //! save this process
- void save(Common::WriteStream *ods);
-
//! load Process data
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
- //! save the Process data
+ //! save Process data
virtual void saveData(Common::WriteStream *ws);
- void writeProcessHeader(Common::WriteStream *ods);
-
+protected:
//! process id
ProcId _pid;
diff --git a/engines/ultima/ultima8/usecode/uc_process.h b/engines/ultima/ultima8/usecode/uc_process.h
index 16b4a24fb9..f95893f463 100644
--- a/engines/ultima/ultima8/usecode/uc_process.h
+++ b/engines/ultima/ultima8/usecode/uc_process.h
@@ -58,9 +58,9 @@ public:
void dumpInfo() const override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
void load(uint16 classid_, uint16 offset_, uint32 this_ptr = 0,
int thissize = 0, const uint8 *args = 0, int argsize = 0);
void call(uint16 classid_, uint16 offset_);
diff --git a/engines/ultima/ultima8/world/actors/actor_anim_process.h b/engines/ultima/ultima8/world/actors/actor_anim_process.h
index 8e89141c15..aadd056cf1 100644
--- a/engines/ultima/ultima8/world/actors/actor_anim_process.h
+++ b/engines/ultima/ultima8/world/actors/actor_anim_process.h
@@ -57,9 +57,9 @@ public:
}
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
virtual bool init();
//! perform special action for an animation
diff --git a/engines/ultima/ultima8/world/actors/ambush_process.h b/engines/ultima/ultima8/world/actors/ambush_process.h
index a9daf72893..77ee841d0e 100644
--- a/engines/ultima/ultima8/world/actors/ambush_process.h
+++ b/engines/ultima/ultima8/world/actors/ambush_process.h
@@ -41,9 +41,9 @@ public:
void run() override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
uint32 _delayCount;
};
diff --git a/engines/ultima/ultima8/world/actors/avatar_death_process.h b/engines/ultima/ultima8/world/actors/avatar_death_process.h
index 8103e2b7d6..919d61f8d3 100644
--- a/engines/ultima/ultima8/world/actors/avatar_death_process.h
+++ b/engines/ultima/ultima8/world/actors/avatar_death_process.h
@@ -40,7 +40,6 @@ public:
void run() override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/world/actors/avatar_mover_process.h b/engines/ultima/ultima8/world/actors/avatar_mover_process.h
index a3430d3be7..d687e819f1 100644
--- a/engines/ultima/ultima8/world/actors/avatar_mover_process.h
+++ b/engines/ultima/ultima8/world/actors/avatar_mover_process.h
@@ -48,6 +48,7 @@ public:
}
bool loadData(Common::ReadStream *rs, uint32 version);
+ void saveData(Common::WriteStream *ws) override;
void setFakeBothButtonClick() {
_fakeBothButtonClick = true;
@@ -59,8 +60,6 @@ public:
void tryMoveBack(bool b);
private:
- void saveData(Common::WriteStream *ws) override;
-
void handleHangingMode();
void handleCombatMode();
void handleNormalMode();
diff --git a/engines/ultima/ultima8/world/actors/clear_feign_death_process.h b/engines/ultima/ultima8/world/actors/clear_feign_death_process.h
index 22e8f40240..e039d67181 100644
--- a/engines/ultima/ultima8/world/actors/clear_feign_death_process.h
+++ b/engines/ultima/ultima8/world/actors/clear_feign_death_process.h
@@ -41,7 +41,6 @@ public:
void run() override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/world/actors/combat_process.h b/engines/ultima/ultima8/world/actors/combat_process.h
index 8af11b9f9f..ff944c2786 100644
--- a/engines/ultima/ultima8/world/actors/combat_process.h
+++ b/engines/ultima/ultima8/world/actors/combat_process.h
@@ -49,9 +49,9 @@ public:
void dumpInfo() const override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
bool isValidTarget(Actor *target_);
bool isEnemy(Actor *target_);
bool inAttackRange();
diff --git a/engines/ultima/ultima8/world/actors/grant_peace_process.h b/engines/ultima/ultima8/world/actors/grant_peace_process.h
index f0d27c128d..de16e0996c 100644
--- a/engines/ultima/ultima8/world/actors/grant_peace_process.h
+++ b/engines/ultima/ultima8/world/actors/grant_peace_process.h
@@ -44,9 +44,9 @@ public:
INTRINSIC(I_castGrantPeace);
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
bool _haveTarget;
};
diff --git a/engines/ultima/ultima8/world/actors/heal_process.h b/engines/ultima/ultima8/world/actors/heal_process.h
index c26c68c41c..ea5828a936 100644
--- a/engines/ultima/ultima8/world/actors/heal_process.h
+++ b/engines/ultima/ultima8/world/actors/heal_process.h
@@ -41,9 +41,9 @@ public:
INTRINSIC(I_feedAvatar);
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
void feedAvatar(uint16 food);
uint16 _healCounter;
diff --git a/engines/ultima/ultima8/world/actors/loiter_process.h b/engines/ultima/ultima8/world/actors/loiter_process.h
index 9282b147c5..f961bc6765 100644
--- a/engines/ultima/ultima8/world/actors/loiter_process.h
+++ b/engines/ultima/ultima8/world/actors/loiter_process.h
@@ -41,9 +41,9 @@ public:
void run() override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
int32 _count;
};
diff --git a/engines/ultima/ultima8/world/actors/pathfinder_process.h b/engines/ultima/ultima8/world/actors/pathfinder_process.h
index 986ed66c92..729bd3560f 100644
--- a/engines/ultima/ultima8/world/actors/pathfinder_process.h
+++ b/engines/ultima/ultima8/world/actors/pathfinder_process.h
@@ -48,9 +48,9 @@ public:
// virtual void terminate();
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
int32 _targetX, _targetY, _targetZ;
ObjId _targetItem;
bool _hitMode;
diff --git a/engines/ultima/ultima8/world/actors/quick_avatar_mover_process.h b/engines/ultima/ultima8/world/actors/quick_avatar_mover_process.h
index 195221fcb8..c2e04ce34f 100644
--- a/engines/ultima/ultima8/world/actors/quick_avatar_mover_process.h
+++ b/engines/ultima/ultima8/world/actors/quick_avatar_mover_process.h
@@ -58,9 +58,9 @@ public:
static void startMover(int x, int y, int z, int _dir);
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
int _dx, _dy, _dz, _dir;
static ProcId _amp[6];
static bool _clipping;
diff --git a/engines/ultima/ultima8/world/actors/resurrection_process.h b/engines/ultima/ultima8/world/actors/resurrection_process.h
index 6a4920ec2d..542f3e4b40 100644
--- a/engines/ultima/ultima8/world/actors/resurrection_process.h
+++ b/engines/ultima/ultima8/world/actors/resurrection_process.h
@@ -41,7 +41,6 @@ public:
void run() override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/world/actors/scheduler_process.h b/engines/ultima/ultima8/world/actors/scheduler_process.h
index bf15df7316..a40812635c 100644
--- a/engines/ultima/ultima8/world/actors/scheduler_process.h
+++ b/engines/ultima/ultima8/world/actors/scheduler_process.h
@@ -39,9 +39,9 @@ public:
void run() override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
uint32 _lastRun;
uint16 _nextActor;
};
diff --git a/engines/ultima/ultima8/world/actors/teleport_to_egg_process.h b/engines/ultima/ultima8/world/actors/teleport_to_egg_process.h
index cb4c137e4d..f3207a5d03 100644
--- a/engines/ultima/ultima8/world/actors/teleport_to_egg_process.h
+++ b/engines/ultima/ultima8/world/actors/teleport_to_egg_process.h
@@ -41,9 +41,9 @@ public:
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
int _mapNum;
int _teleportId;
};
diff --git a/engines/ultima/ultima8/world/camera_process.h b/engines/ultima/ultima8/world/camera_process.h
index a5f8e45db4..3aa6e5027e 100644
--- a/engines/ultima/ultima8/world/camera_process.h
+++ b/engines/ultima/ultima8/world/camera_process.h
@@ -84,9 +84,9 @@ public:
void terminate() override; // Terminate NOW!
bool loadData(Common::ReadStream *rs, uint32 version);
-private:
void saveData(Common::WriteStream *ws) override;
+private:
int32 _sx, _sy, _sz;
int32 _ex, _ey, _ez;
int32 _time;
diff --git a/engines/ultima/ultima8/world/create_item_process.h b/engines/ultima/ultima8/world/create_item_process.h
index 863334e2df..fcac9aa43d 100644
--- a/engines/ultima/ultima8/world/create_item_process.h
+++ b/engines/ultima/ultima8/world/create_item_process.h
@@ -43,9 +43,9 @@ public:
void run() override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
uint32 _shape;
uint32 _frame;
uint16 _quality;
diff --git a/engines/ultima/ultima8/world/destroy_item_process.h b/engines/ultima/ultima8/world/destroy_item_process.h
index 25fc8503be..060fc1142b 100644
--- a/engines/ultima/ultima8/world/destroy_item_process.h
+++ b/engines/ultima/ultima8/world/destroy_item_process.h
@@ -45,7 +45,6 @@ public:
void run() override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/world/egg_hatcher_process.h b/engines/ultima/ultima8/world/egg_hatcher_process.h
index 1841ac788d..56428c8068 100644
--- a/engines/ultima/ultima8/world/egg_hatcher_process.h
+++ b/engines/ultima/ultima8/world/egg_hatcher_process.h
@@ -45,9 +45,9 @@ public:
void addEgg(uint16 egg);
bool loadData(Common::ReadStream *rs, uint32 version);
-private:
void saveData(Common::WriteStream *ws) override;
+private:
Std::vector<uint16> _eggs;
};
diff --git a/engines/ultima/ultima8/world/fireball_process.h b/engines/ultima/ultima8/world/fireball_process.h
index baf0723819..4a2ed7264f 100644
--- a/engines/ultima/ultima8/world/fireball_process.h
+++ b/engines/ultima/ultima8/world/fireball_process.h
@@ -46,9 +46,9 @@ public:
INTRINSIC(I_TonysBalls);
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
void explode();
int _xSpeed, _ySpeed;
diff --git a/engines/ultima/ultima8/world/gravity_process.h b/engines/ultima/ultima8/world/gravity_process.h
index c60de80257..9297e17d65 100644
--- a/engines/ultima/ultima8/world/gravity_process.h
+++ b/engines/ultima/ultima8/world/gravity_process.h
@@ -50,9 +50,9 @@ public:
void dumpInfo() const override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
void fallStopped();
int _gravity;
diff --git a/engines/ultima/ultima8/world/split_item_process.h b/engines/ultima/ultima8/world/split_item_process.h
index 13493002ed..655ea95bbb 100644
--- a/engines/ultima/ultima8/world/split_item_process.h
+++ b/engines/ultima/ultima8/world/split_item_process.h
@@ -41,9 +41,9 @@ public:
void run() override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
ObjId _target;
};
diff --git a/engines/ultima/ultima8/world/sprite_process.h b/engines/ultima/ultima8/world/sprite_process.h
index ee6e0e843c..cb37447352 100644
--- a/engines/ultima/ultima8/world/sprite_process.h
+++ b/engines/ultima/ultima8/world/sprite_process.h
@@ -74,7 +74,6 @@ protected:
public:
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
Commit: 0471207c95665e7bc63d780ba0822cb84cf44e7c
https://github.com/scummvm/scummvm/commit/0471207c95665e7bc63d780ba0822cb84cf44e7c
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2020-05-25T16:28:25+09:00
Commit Message:
ULTIMA8: Make saveData method public on remaining process classes
Changed paths:
engines/ultima/ultima8/audio/remorse_music_process.h
engines/ultima/ultima8/audio/u8_music_process.h
engines/ultima/ultima8/world/actors/actor_bark_notify_process.h
engines/ultima/ultima8/world/actors/avatar_gravity_process.h
engines/ultima/ultima8/world/actors/targeted_anim_process.h
diff --git a/engines/ultima/ultima8/audio/remorse_music_process.h b/engines/ultima/ultima8/audio/remorse_music_process.h
index eac7f3275a..cf4214c290 100644
--- a/engines/ultima/ultima8/audio/remorse_music_process.h
+++ b/engines/ultima/ultima8/audio/remorse_music_process.h
@@ -40,8 +40,6 @@ class RemorseMusicProcess : public MusicProcess {
friend class Debugger;
protected:
- void saveData(Common::WriteStream *ws) override;
-
//! Play a music track
//! \param track The track number to play. Pass 0 to stop music
void playMusic_internal(int track) override;
@@ -86,6 +84,7 @@ public:
void run() override;
bool loadData(Common::ReadStream *rs, uint32 version);
+ void saveData(Common::WriteStream *ws) override;
};
} // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/audio/u8_music_process.h b/engines/ultima/ultima8/audio/u8_music_process.h
index 75c209e45d..1c87cd44ff 100644
--- a/engines/ultima/ultima8/audio/u8_music_process.h
+++ b/engines/ultima/ultima8/audio/u8_music_process.h
@@ -60,8 +60,6 @@ public:
};
private:
- void saveData(Common::WriteStream *ws) override;
-
//! Play a music track
//! \param track The track number to play. Pass 0 to stop music
void playMusic_internal(int track) override;
@@ -117,6 +115,7 @@ public:
void run() override;
bool loadData(Common::ReadStream *rs, uint32 version);
+ void saveData(Common::WriteStream *ws) override;
};
} // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/world/actors/actor_bark_notify_process.h b/engines/ultima/ultima8/world/actors/actor_bark_notify_process.h
index f8d959a1ec..2c7b0a19b6 100644
--- a/engines/ultima/ultima8/world/actors/actor_bark_notify_process.h
+++ b/engines/ultima/ultima8/world/actors/actor_bark_notify_process.h
@@ -39,7 +39,6 @@ public:
void run() override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/world/actors/avatar_gravity_process.h b/engines/ultima/ultima8/world/actors/avatar_gravity_process.h
index db664d92bf..55ead2bf43 100644
--- a/engines/ultima/ultima8/world/actors/avatar_gravity_process.h
+++ b/engines/ultima/ultima8/world/actors/avatar_gravity_process.h
@@ -41,7 +41,6 @@ public:
void run() override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/world/actors/targeted_anim_process.h b/engines/ultima/ultima8/world/actors/targeted_anim_process.h
index e46ef36ed5..fdd8f780d4 100644
--- a/engines/ultima/ultima8/world/actors/targeted_anim_process.h
+++ b/engines/ultima/ultima8/world/actors/targeted_anim_process.h
@@ -41,9 +41,9 @@ public:
ENABLE_RUNTIME_CLASSTYPE()
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
bool init() override;
int32 _x, _y, _z;
Commit: 1781f5e10d6df1f21e323acb224818e591bfd5be
https://github.com/scummvm/scummvm/commit/1781f5e10d6df1f21e323acb224818e591bfd5be
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2020-05-25T16:28:25+09:00
Commit Message:
ULTIMA8: Make saveData method public on object classes
Changed paths:
engines/ultima/ultima8/gumps/ask_gump.h
engines/ultima/ultima8/gumps/bark_gump.h
engines/ultima/ultima8/gumps/book_gump.h
engines/ultima/ultima8/gumps/container_gump.h
engines/ultima/ultima8/gumps/cru_ammo_gump.h
engines/ultima/ultima8/gumps/cru_energy_gump.h
engines/ultima/ultima8/gumps/cru_health_gump.h
engines/ultima/ultima8/gumps/cru_inventory_gump.h
engines/ultima/ultima8/gumps/cru_stat_gump.h
engines/ultima/ultima8/gumps/cru_status_gump.h
engines/ultima/ultima8/gumps/cru_weapon_gump.h
engines/ultima/ultima8/gumps/desktop_gump.h
engines/ultima/ultima8/gumps/game_map_gump.h
engines/ultima/ultima8/gumps/message_box_gump.h
engines/ultima/ultima8/gumps/mini_stats_gump.h
engines/ultima/ultima8/gumps/minimap_gump.h
engines/ultima/ultima8/gumps/modal_gump.h
engines/ultima/ultima8/gumps/movie_gump.h
engines/ultima/ultima8/gumps/paged_gump.h
engines/ultima/ultima8/gumps/paperdoll_gump.h
engines/ultima/ultima8/gumps/quit_gump.h
engines/ultima/ultima8/gumps/readable_gump.h
engines/ultima/ultima8/gumps/scroll_gump.h
engines/ultima/ultima8/gumps/shape_viewer_gump.h
engines/ultima/ultima8/gumps/slider_gump.h
engines/ultima/ultima8/gumps/target_gump.h
engines/ultima/ultima8/gumps/widgets/button_widget.h
engines/ultima/ultima8/gumps/widgets/sliding_widget.h
engines/ultima/ultima8/gumps/widgets/text_widget.h
engines/ultima/ultima8/world/actors/actor.h
engines/ultima/ultima8/world/actors/main_actor.h
engines/ultima/ultima8/world/container.h
engines/ultima/ultima8/world/egg.h
engines/ultima/ultima8/world/glob_egg.h
engines/ultima/ultima8/world/item.h
engines/ultima/ultima8/world/monster_egg.h
engines/ultima/ultima8/world/teleport_egg.h
diff --git a/engines/ultima/ultima8/gumps/ask_gump.h b/engines/ultima/ultima8/gumps/ask_gump.h
index d05d714c64..640ca067c5 100644
--- a/engines/ultima/ultima8/gumps/ask_gump.h
+++ b/engines/ultima/ultima8/gumps/ask_gump.h
@@ -50,7 +50,6 @@ public:
void ChildNotify(Gump *child, uint32 message) override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/gumps/bark_gump.h b/engines/ultima/ultima8/gumps/bark_gump.h
index 9d67bcbe8a..e877840e5d 100644
--- a/engines/ultima/ultima8/gumps/bark_gump.h
+++ b/engines/ultima/ultima8/gumps/bark_gump.h
@@ -69,7 +69,6 @@ protected:
public:
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/gumps/book_gump.h b/engines/ultima/ultima8/gumps/book_gump.h
index 8d817a0ccc..2acd1da5d8 100644
--- a/engines/ultima/ultima8/gumps/book_gump.h
+++ b/engines/ultima/ultima8/gumps/book_gump.h
@@ -60,7 +60,6 @@ protected:
public:
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/gumps/container_gump.h b/engines/ultima/ultima8/gumps/container_gump.h
index 8c9b31f9c7..d26f0a4328 100644
--- a/engines/ultima/ultima8/gumps/container_gump.h
+++ b/engines/ultima/ultima8/gumps/container_gump.h
@@ -77,9 +77,9 @@ public:
void onMouseDouble(int button, int32 mx, int32 my) override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
void GetItemLocation(int32 lerp_factor) override;
virtual Container *getTargetContainer(Item *item, int mx, int my);
diff --git a/engines/ultima/ultima8/gumps/cru_ammo_gump.h b/engines/ultima/ultima8/gumps/cru_ammo_gump.h
index bfc9c01b80..ee13a666e1 100644
--- a/engines/ultima/ultima8/gumps/cru_ammo_gump.h
+++ b/engines/ultima/ultima8/gumps/cru_ammo_gump.h
@@ -47,7 +47,6 @@ public:
void PaintThis(RenderSurface *, int32 lerp_factor, bool scaled) override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
private:
diff --git a/engines/ultima/ultima8/gumps/cru_energy_gump.h b/engines/ultima/ultima8/gumps/cru_energy_gump.h
index 03af1f6758..40d6d36b66 100644
--- a/engines/ultima/ultima8/gumps/cru_energy_gump.h
+++ b/engines/ultima/ultima8/gumps/cru_energy_gump.h
@@ -47,7 +47,6 @@ public:
void PaintThis(RenderSurface *, int32 lerp_factor, bool scaled) override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/gumps/cru_health_gump.h b/engines/ultima/ultima8/gumps/cru_health_gump.h
index 9debca5391..3bfab54987 100644
--- a/engines/ultima/ultima8/gumps/cru_health_gump.h
+++ b/engines/ultima/ultima8/gumps/cru_health_gump.h
@@ -47,7 +47,6 @@ public:
void PaintThis(RenderSurface *, int32 lerp_factor, bool scaled) override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/gumps/cru_inventory_gump.h b/engines/ultima/ultima8/gumps/cru_inventory_gump.h
index 6ccda89398..674f464c08 100644
--- a/engines/ultima/ultima8/gumps/cru_inventory_gump.h
+++ b/engines/ultima/ultima8/gumps/cru_inventory_gump.h
@@ -47,7 +47,6 @@ public:
void PaintThis(RenderSurface *, int32 lerp_factor, bool scaled) override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
private:
diff --git a/engines/ultima/ultima8/gumps/cru_stat_gump.h b/engines/ultima/ultima8/gumps/cru_stat_gump.h
index da4d683a41..1a4da94ab3 100644
--- a/engines/ultima/ultima8/gumps/cru_stat_gump.h
+++ b/engines/ultima/ultima8/gumps/cru_stat_gump.h
@@ -47,7 +47,6 @@ public:
void PaintThis(RenderSurface *, int32 lerp_factor, bool scaled) override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/gumps/cru_status_gump.h b/engines/ultima/ultima8/gumps/cru_status_gump.h
index 80abf54927..5abaa36c41 100644
--- a/engines/ultima/ultima8/gumps/cru_status_gump.h
+++ b/engines/ultima/ultima8/gumps/cru_status_gump.h
@@ -49,7 +49,6 @@ public:
void PaintThis(RenderSurface *, int32 lerp_factor, bool scaled) override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/gumps/cru_weapon_gump.h b/engines/ultima/ultima8/gumps/cru_weapon_gump.h
index eb0fd222f9..69b8833d8e 100644
--- a/engines/ultima/ultima8/gumps/cru_weapon_gump.h
+++ b/engines/ultima/ultima8/gumps/cru_weapon_gump.h
@@ -47,7 +47,6 @@ public:
void PaintThis(RenderSurface *, int32 lerp_factor, bool scaled) override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
private:
diff --git a/engines/ultima/ultima8/gumps/desktop_gump.h b/engines/ultima/ultima8/gumps/desktop_gump.h
index ac44b9d0bb..ca8909901d 100644
--- a/engines/ultima/ultima8/gumps/desktop_gump.h
+++ b/engines/ultima/ultima8/gumps/desktop_gump.h
@@ -49,6 +49,7 @@ public:
void StopDraggingChild(Gump *gump) override;
bool loadData(Common::ReadStream *rs, uint32 version);
+ void saveData(Common::WriteStream *ws) override;
void RenderSurfaceChanged(RenderSurface *surf);
@@ -57,7 +58,6 @@ public:
}
protected:
- void saveData(Common::WriteStream *ws) override;
void RenderSurfaceChanged() override;
};
diff --git a/engines/ultima/ultima8/gumps/game_map_gump.h b/engines/ultima/ultima8/gumps/game_map_gump.h
index 7d5218f9d3..c6678b14af 100644
--- a/engines/ultima/ultima8/gumps/game_map_gump.h
+++ b/engines/ultima/ultima8/gumps/game_map_gump.h
@@ -79,6 +79,7 @@ public:
void IncSortOrder(int count);
bool loadData(Common::ReadStream *rs, uint32 version);
+ void saveData(Common::WriteStream *ws) override;
static void Set_highlightItems(bool highlight) {
_highlightItems = highlight;
@@ -90,8 +91,6 @@ public:
void RenderSurfaceChanged() override;
protected:
- void saveData(Common::WriteStream *ws) override;
-
bool _displayDragging;
uint32 _draggingShape;
uint32 _draggingFrame;
diff --git a/engines/ultima/ultima8/gumps/message_box_gump.h b/engines/ultima/ultima8/gumps/message_box_gump.h
index 292380f05b..5323a7fcb1 100644
--- a/engines/ultima/ultima8/gumps/message_box_gump.h
+++ b/engines/ultima/ultima8/gumps/message_box_gump.h
@@ -53,6 +53,7 @@ public:
void Close(bool no_del = false) override;
bool loadData(Common::ReadStream *rs, uint32 version);
+ void saveData(Common::WriteStream *ws) override;
void PaintThis(RenderSurface *, int32 lerp_factor, bool scaled) override;
@@ -68,9 +69,6 @@ public:
}
void ChildNotify(Gump *child, uint32 msg) override;
-
-protected:
- void saveData(Common::WriteStream *ws) override;
};
} // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/gumps/mini_stats_gump.h b/engines/ultima/ultima8/gumps/mini_stats_gump.h
index c93d1812b3..fb4e250613 100644
--- a/engines/ultima/ultima8/gumps/mini_stats_gump.h
+++ b/engines/ultima/ultima8/gumps/mini_stats_gump.h
@@ -54,7 +54,6 @@ public:
void onMouseDouble(int button, int32 mx, int32 my) override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/gumps/minimap_gump.h b/engines/ultima/ultima8/gumps/minimap_gump.h
index 7e5a08049b..93efb93079 100644
--- a/engines/ultima/ultima8/gumps/minimap_gump.h
+++ b/engines/ultima/ultima8/gumps/minimap_gump.h
@@ -52,7 +52,6 @@ public:
uint16 TraceObjId(int32 mx, int32 my) override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/gumps/modal_gump.h b/engines/ultima/ultima8/gumps/modal_gump.h
index 723817b0eb..6be2e3e0ca 100644
--- a/engines/ultima/ultima8/gumps/modal_gump.h
+++ b/engines/ultima/ultima8/gumps/modal_gump.h
@@ -53,7 +53,6 @@ public:
Gump *onMouseDown(int button, int32 mx, int32 my) override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/gumps/movie_gump.h b/engines/ultima/ultima8/gumps/movie_gump.h
index e090c766e6..3130162bc0 100644
--- a/engines/ultima/ultima8/gumps/movie_gump.h
+++ b/engines/ultima/ultima8/gumps/movie_gump.h
@@ -55,9 +55,9 @@ public:
static ProcId U8MovieViewer(Common::SeekableReadStream *rs, bool fade, bool introMusicHack = false);
bool loadData(Common::ReadStream *rs);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
MoviePlayer *_player;
};
diff --git a/engines/ultima/ultima8/gumps/paged_gump.h b/engines/ultima/ultima8/gumps/paged_gump.h
index 7d5f9c8254..d085e109e2 100644
--- a/engines/ultima/ultima8/gumps/paged_gump.h
+++ b/engines/ultima/ultima8/gumps/paged_gump.h
@@ -57,8 +57,9 @@ public:
}
bool loadData(Common::ReadStream *rs);
-protected:
void saveData(Common::WriteStream *ws) override;
+
+protected:
int _leftOff, _rightOff, _topOff, _gumpShape;
Std::vector<Gump *> _gumps;
Gump *_nextButton;
diff --git a/engines/ultima/ultima8/gumps/paperdoll_gump.h b/engines/ultima/ultima8/gumps/paperdoll_gump.h
index 1b9ffe23a6..58bc042fc5 100644
--- a/engines/ultima/ultima8/gumps/paperdoll_gump.h
+++ b/engines/ultima/ultima8/gumps/paperdoll_gump.h
@@ -67,9 +67,9 @@ public:
void DropItem(Item *item, int mx, int my) override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
//! Paint the stats
void PaintStats(RenderSurface *, int32 lerp_factor);
diff --git a/engines/ultima/ultima8/gumps/quit_gump.h b/engines/ultima/ultima8/gumps/quit_gump.h
index e78422f801..08dacb447d 100644
--- a/engines/ultima/ultima8/gumps/quit_gump.h
+++ b/engines/ultima/ultima8/gumps/quit_gump.h
@@ -50,8 +50,9 @@ public:
static void verifyQuit();
bool loadData(Common::ReadStream *rs);
-protected:
void saveData(Common::WriteStream *ws) override;
+
+protected:
ObjId _yesWidget, _noWidget;
uint32 _gumpShape; //! shape number for the dialog
diff --git a/engines/ultima/ultima8/gumps/readable_gump.h b/engines/ultima/ultima8/gumps/readable_gump.h
index 3ab763e5d7..ce528a0ca6 100644
--- a/engines/ultima/ultima8/gumps/readable_gump.h
+++ b/engines/ultima/ultima8/gumps/readable_gump.h
@@ -55,7 +55,6 @@ public:
INTRINSIC(I_readPlaque);
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/gumps/scroll_gump.h b/engines/ultima/ultima8/gumps/scroll_gump.h
index 3bde5cc698..9817797cf2 100644
--- a/engines/ultima/ultima8/gumps/scroll_gump.h
+++ b/engines/ultima/ultima8/gumps/scroll_gump.h
@@ -59,7 +59,6 @@ protected:
public:
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/gumps/shape_viewer_gump.h b/engines/ultima/ultima8/gumps/shape_viewer_gump.h
index 6ad762d7e7..c10498824a 100644
--- a/engines/ultima/ultima8/gumps/shape_viewer_gump.h
+++ b/engines/ultima/ultima8/gumps/shape_viewer_gump.h
@@ -57,9 +57,9 @@ public:
static void U8ShapeViewer();
bool loadData(Common::ReadStream *rs);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
Std::vector<Std::pair<Std::string, ShapeArchive *> > _flexes;
unsigned int _curFlex;
ShapeArchive *_flex;
diff --git a/engines/ultima/ultima8/gumps/slider_gump.h b/engines/ultima/ultima8/gumps/slider_gump.h
index c05427ff1c..f3c87ebacd 100644
--- a/engines/ultima/ultima8/gumps/slider_gump.h
+++ b/engines/ultima/ultima8/gumps/slider_gump.h
@@ -59,9 +59,9 @@ public:
bool OnKeyDown(int key, int mod) override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
+protected:
int16 _min;
int16 _max;
int16 _delta;
diff --git a/engines/ultima/ultima8/gumps/target_gump.h b/engines/ultima/ultima8/gumps/target_gump.h
index 2a97cc1496..bc7b33e2b7 100644
--- a/engines/ultima/ultima8/gumps/target_gump.h
+++ b/engines/ultima/ultima8/gumps/target_gump.h
@@ -50,7 +50,6 @@ public:
INTRINSIC(I_target);
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
private:
diff --git a/engines/ultima/ultima8/gumps/widgets/button_widget.h b/engines/ultima/ultima8/gumps/widgets/button_widget.h
index 58670cfb20..b68ecb80ab 100644
--- a/engines/ultima/ultima8/gumps/widgets/button_widget.h
+++ b/engines/ultima/ultima8/gumps/widgets/button_widget.h
@@ -79,7 +79,6 @@ protected:
public:
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/gumps/widgets/sliding_widget.h b/engines/ultima/ultima8/gumps/widgets/sliding_widget.h
index 12ac43e016..6cec9384b0 100644
--- a/engines/ultima/ultima8/gumps/widgets/sliding_widget.h
+++ b/engines/ultima/ultima8/gumps/widgets/sliding_widget.h
@@ -41,7 +41,6 @@ public:
uint16 TraceObjId(int32 mx, int32 my) override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/gumps/widgets/text_widget.h b/engines/ultima/ultima8/gumps/widgets/text_widget.h
index 1c041a2b2f..709e222e82 100644
--- a/engines/ultima/ultima8/gumps/widgets/text_widget.h
+++ b/engines/ultima/ultima8/gumps/widgets/text_widget.h
@@ -100,8 +100,6 @@ protected:
public:
bool loadData(Common::ReadStream *rs, uint32 version);
-
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/world/actors/actor.h b/engines/ultima/ultima8/world/actors/actor.h
index 5110310551..0c74e91f8e 100644
--- a/engines/ultima/ultima8/world/actors/actor.h
+++ b/engines/ultima/ultima8/world/actors/actor.h
@@ -217,8 +217,8 @@ public:
void dumpInfo() const override;
bool loadData(Common::ReadStream *rs, uint32 version);
+ void saveData(Common::WriteStream *ws) override;
- // p_dynamic_cast stuff
ENABLE_RUNTIME_CLASSTYPE()
INTRINSIC(I_isNPC);
@@ -292,8 +292,6 @@ public:
};
protected:
- void saveData(Common::WriteStream *ws) override;
-
int16 _strength;
int16 _dexterity;
int16 _intelligence;
diff --git a/engines/ultima/ultima8/world/actors/main_actor.h b/engines/ultima/ultima8/world/actors/main_actor.h
index 5480eef8c5..4035cb731d 100644
--- a/engines/ultima/ultima8/world/actors/main_actor.h
+++ b/engines/ultima/ultima8/world/actors/main_actor.h
@@ -91,8 +91,8 @@ public:
}
bool loadData(Common::ReadStream *rs, uint32 version);
+ void saveData(Common::WriteStream *ws) override;
- // p_dynamic_cast stuff
ENABLE_RUNTIME_CLASSTYPE()
INTRINSIC(I_teleportToEgg);
@@ -107,8 +107,6 @@ public:
protected:
- void saveData(Common::WriteStream *ws) override;
-
void useInventoryItem(uint32 shapenum);
bool _justTeleported;
diff --git a/engines/ultima/ultima8/world/container.h b/engines/ultima/ultima8/world/container.h
index a5954c304a..4255181c04 100644
--- a/engines/ultima/ultima8/world/container.h
+++ b/engines/ultima/ultima8/world/container.h
@@ -109,14 +109,12 @@ public:
void dumpInfo() const override;
bool loadData(Common::ReadStream *rs, uint32 version);
+ void saveData(Common::WriteStream *ws) override;
INTRINSIC(I_removeContents);
INTRINSIC(I_destroyContents);
protected:
- //! save Container data
- void saveData(Common::WriteStream *ws) override;
-
Std::list<Item *> _contents;
};
diff --git a/engines/ultima/ultima8/world/egg.h b/engines/ultima/ultima8/world/egg.h
index fe65ee99a8..e531003301 100644
--- a/engines/ultima/ultima8/world/egg.h
+++ b/engines/ultima/ultima8/world/egg.h
@@ -66,6 +66,7 @@ public:
void dumpInfo() const override;
bool loadData(Common::ReadStream *rs, uint32 version);
+ void saveData(Common::WriteStream *ws) override;
INTRINSIC(I_getEggXRange);
INTRINSIC(I_getEggYRange);
@@ -75,8 +76,6 @@ public:
INTRINSIC(I_setEggId);
protected:
- void saveData(Common::WriteStream *ws) override;
-
bool _hatched;
};
diff --git a/engines/ultima/ultima8/world/glob_egg.h b/engines/ultima/ultima8/world/glob_egg.h
index 869585dc77..15ade7a61c 100644
--- a/engines/ultima/ultima8/world/glob_egg.h
+++ b/engines/ultima/ultima8/world/glob_egg.h
@@ -43,7 +43,6 @@ public:
void enterFastArea() override;
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
diff --git a/engines/ultima/ultima8/world/item.h b/engines/ultima/ultima8/world/item.h
index c7d0cd7bde..a52e482b6b 100644
--- a/engines/ultima/ultima8/world/item.h
+++ b/engines/ultima/ultima8/world/item.h
@@ -448,6 +448,7 @@ public:
void dumpInfo() const override;
bool loadData(Common::ReadStream *rs, uint32 version);
+ void saveData(Common::WriteStream *ws) override;
// Intrinsics
INTRINSIC(I_touch);
@@ -566,9 +567,6 @@ protected:
ObjId _gump; // Item's gump
ProcId _gravityPid; // Item's GravityTracker (or 0)
- //! save the actual Item data
- void saveData(Common::WriteStream *ws) override;
-
private:
//! Call a Usecode Event. Use the separate functions instead!
diff --git a/engines/ultima/ultima8/world/monster_egg.h b/engines/ultima/ultima8/world/monster_egg.h
index 2c12df33f6..56a55d4975 100644
--- a/engines/ultima/ultima8/world/monster_egg.h
+++ b/engines/ultima/ultima8/world/monster_egg.h
@@ -50,12 +50,10 @@ public:
uint16 hatch();
bool loadData(Common::ReadStream *rs, uint32 version);
+ void saveData(Common::WriteStream *ws) override;
INTRINSIC(I_monsterEggHatch);
INTRINSIC(I_getMonId);
-
-protected:
- void saveData(Common::WriteStream *ws) override;
};
} // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/world/teleport_egg.h b/engines/ultima/ultima8/world/teleport_egg.h
index ae569bbf5b..65a6ce09c1 100644
--- a/engines/ultima/ultima8/world/teleport_egg.h
+++ b/engines/ultima/ultima8/world/teleport_egg.h
@@ -44,11 +44,9 @@ public:
}
bool loadData(Common::ReadStream *rs, uint32 version);
-
- uint16 hatch() override;
-protected:
void saveData(Common::WriteStream *ws) override;
+ uint16 hatch() override;
};
} // End of namespace Ultima8
Commit: 9dbc6374892ae9d348e23ea045d8c6e1c225f2e7
https://github.com/scummvm/scummvm/commit/9dbc6374892ae9d348e23ea045d8c6e1c225f2e7
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2020-05-25T16:28:25+09:00
Commit Message:
ULTIMA8: make saveData public on Gump class
Changed paths:
engines/ultima/ultima8/gumps/gump.h
diff --git a/engines/ultima/ultima8/gumps/gump.h b/engines/ultima/ultima8/gumps/gump.h
index 7fed3d80e3..2ec7d443cc 100644
--- a/engines/ultima/ultima8/gumps/gump.h
+++ b/engines/ultima/ultima8/gumps/gump.h
@@ -458,7 +458,6 @@ public:
};
bool loadData(Common::ReadStream *rs, uint32 version);
-protected:
void saveData(Common::WriteStream *ws) override;
};
Commit: ac67b2195de5790e26225d5c097496dfd3fea0e2
https://github.com/scummvm/scummvm/commit/ac67b2195de5790e26225d5c097496dfd3fea0e2
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2020-05-25T16:28:25+09:00
Commit Message:
ULTIMA8: Alter object class to make object manager responsible for writing the name on save as it must be responsible for reading the name on load.
Changed paths:
engines/ultima/ultima8/gumps/gump.cpp
engines/ultima/ultima8/kernel/object.cpp
engines/ultima/ultima8/kernel/object.h
engines/ultima/ultima8/kernel/object_manager.cpp
engines/ultima/ultima8/kernel/object_manager.h
engines/ultima/ultima8/world/container.cpp
engines/ultima/ultima8/world/map.cpp
diff --git a/engines/ultima/ultima8/gumps/gump.cpp b/engines/ultima/ultima8/gumps/gump.cpp
index 8a9180856b..0ee9dd5d53 100644
--- a/engines/ultima/ultima8/gumps/gump.cpp
+++ b/engines/ultima/ultima8/gumps/gump.cpp
@@ -818,7 +818,7 @@ void Gump::saveData(Common::WriteStream *ws) {
for (it = _children.begin(); it != _children.end(); ++it) {
if (!(*it)->mustSave(false)) continue;
- (*it)->save(ws);
+ ObjectManager::get_instance()->saveObject(ws, *it);
}
}
diff --git a/engines/ultima/ultima8/kernel/object.cpp b/engines/ultima/ultima8/kernel/object.cpp
index b2afaefc4f..214f247b57 100644
--- a/engines/ultima/ultima8/kernel/object.cpp
+++ b/engines/ultima/ultima8/kernel/object.cpp
@@ -65,20 +65,6 @@ ProcId Object::callUsecode(uint16 classid, uint16 offset,
return Kernel::get_instance()->addProcess(p);
}
-
-void Object::save(Common::WriteStream *ws) {
- writeObjectHeader(ws);
- saveData(ws); // virtual
-}
-
-void Object::writeObjectHeader(Common::WriteStream *ws) const {
- const char *cname = GetClassType()._className; // note: virtual
- uint16 clen = strlen(cname);
-
- ws->writeUint16LE(clen);
- ws->write(cname, clen);
-}
-
void Object::saveData(Common::WriteStream *ws) {
// note: Object is unversioned. If we ever want to version it,
// increase the global savegame version
diff --git a/engines/ultima/ultima8/kernel/object.h b/engines/ultima/ultima8/kernel/object.h
index 87d8627050..67af51fda0 100644
--- a/engines/ultima/ultima8/kernel/object.h
+++ b/engines/ultima/ultima8/kernel/object.h
@@ -54,9 +54,6 @@ public:
//! dump some info about this object to pout
virtual void dumpInfo() const;
- //! save this object
- void save(Common::WriteStream *ws);
-
//! Spawn a usecode function on this object
//! \param classid The usecode class to run
//! \param offset The offset in that class to run
@@ -68,14 +65,9 @@ public:
const uint8 *args = 0, int argsize = 0);
bool loadData(Common::ReadStream *rs, uint32 version);
-
-protected:
- //! write the Object savegame header (mainly consisting of the classname)
- void writeObjectHeader(Common::WriteStream *ws) const;
-
- //! save the actual Object data
virtual void saveData(Common::WriteStream *ws);
+protected:
ObjId _objId;
};
diff --git a/engines/ultima/ultima8/kernel/object_manager.cpp b/engines/ultima/ultima8/kernel/object_manager.cpp
index 216e9a04cc..6e65adc463 100644
--- a/engines/ultima/ultima8/kernel/object_manager.cpp
+++ b/engines/ultima/ultima8/kernel/object_manager.cpp
@@ -227,7 +227,7 @@ void ObjectManager::save(Common::WriteStream *ws) {
// FIXME: This leaks _objIDs. See comment in ObjectManager::load().
if (gump && !gump->mustSave(true)) continue;
- object->save(ws);
+ saveObject(ws, object);
}
ws->writeUint16LE(0);
@@ -288,6 +288,15 @@ bool ObjectManager::load(Common::ReadStream *rs, uint32 version) {
return true;
}
+void ObjectManager::saveObject(Common::WriteStream *ws, Object *obj) const {
+ const char *cname = obj->GetClassType()._className; // note: virtual
+ uint16 clen = strlen(cname);
+
+ ws->writeUint16LE(clen);
+ ws->write(cname, clen);
+ obj->saveData(ws);
+}
+
Object *ObjectManager::loadObject(Common::ReadStream *rs, uint32 version) {
uint16 classlen = rs->readUint16LE();
char *buf = new char[classlen + 1];
diff --git a/engines/ultima/ultima8/kernel/object_manager.h b/engines/ultima/ultima8/kernel/object_manager.h
index e6d57bb318..e7d2d94a94 100644
--- a/engines/ultima/ultima8/kernel/object_manager.h
+++ b/engines/ultima/ultima8/kernel/object_manager.h
@@ -65,6 +65,7 @@ public:
void save(Common::WriteStream *ws);
bool load(Common::ReadStream *rs, uint32 version);
+ void saveObject(Common::WriteStream *ws, Object *obj) const;
Object *loadObject(Common::ReadStream *rs, uint32 version);
Std::vector<Object *> _objects;
diff --git a/engines/ultima/ultima8/world/container.cpp b/engines/ultima/ultima8/world/container.cpp
index 5b259d3b92..dc14ec6552 100644
--- a/engines/ultima/ultima8/world/container.cpp
+++ b/engines/ultima/ultima8/world/container.cpp
@@ -308,7 +308,7 @@ void Container::saveData(Common::WriteStream *ws) {
ws->writeUint32LE(static_cast<uint32>(_contents.size()));
Std::list<Item *>::iterator iter;
for (iter = _contents.begin(); iter != _contents.end(); ++iter) {
- (*iter)->save(ws);
+ ObjectManager::get_instance()->saveObject(ws, *iter);
}
}
diff --git a/engines/ultima/ultima8/world/map.cpp b/engines/ultima/ultima8/world/map.cpp
index 1b8528fd05..95573553a4 100644
--- a/engines/ultima/ultima8/world/map.cpp
+++ b/engines/ultima/ultima8/world/map.cpp
@@ -290,7 +290,7 @@ void Map::save(Common::WriteStream *ws) {
Std::list<Item *>::iterator iter;
for (iter = _dynamicItems.begin(); iter != _dynamicItems.end(); ++iter) {
- (*iter)->save(ws);
+ ObjectManager::get_instance()->saveObject(ws, *iter);
}
}
Commit: 20e95ab50bdaf7c0c6589fa9c31e681c7ab18894
https://github.com/scummvm/scummvm/commit/20e95ab50bdaf7c0c6589fa9c31e681c7ab18894
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2020-05-25T16:28:25+09:00
Commit Message:
ULTIMA8: log error and skip save of process or object that cannot be loaded.
Changed paths:
engines/ultima/ultima8/kernel/kernel.cpp
engines/ultima/ultima8/kernel/object_manager.cpp
diff --git a/engines/ultima/ultima8/kernel/kernel.cpp b/engines/ultima/ultima8/kernel/kernel.cpp
index 9031ec4897..c9cc0637ac 100644
--- a/engines/ultima/ultima8/kernel/kernel.cpp
+++ b/engines/ultima/ultima8/kernel/kernel.cpp
@@ -327,6 +327,14 @@ void Kernel::save(Common::WriteStream *ws) {
const char *cname = (*it)->GetClassType()._className; // virtual
uint16 clen = strlen(cname);
+ Std::map<Common::String, ProcessLoadFunc>::iterator iter;
+ iter = _processLoaders.find(cname);
+
+ if (iter == _processLoaders.end()) {
+ perr << "Process class cannot save without registered loader: " << cname << Std::endl;
+ continue;
+ }
+
ws->writeUint16LE(clen);
ws->write(cname, clen);
(*it)->saveData(ws);
diff --git a/engines/ultima/ultima8/kernel/object_manager.cpp b/engines/ultima/ultima8/kernel/object_manager.cpp
index 6e65adc463..a11461d106 100644
--- a/engines/ultima/ultima8/kernel/object_manager.cpp
+++ b/engines/ultima/ultima8/kernel/object_manager.cpp
@@ -292,6 +292,13 @@ void ObjectManager::saveObject(Common::WriteStream *ws, Object *obj) const {
const char *cname = obj->GetClassType()._className; // note: virtual
uint16 clen = strlen(cname);
+ Std::map<Common::String, ObjectLoadFunc>::iterator iter;
+ iter = _objectLoaders.find(cname);
+ if (iter == _objectLoaders.end()) {
+ perr << "Object class cannot save without registered loader: " << cname << Std::endl;
+ return;
+ }
+
ws->writeUint16LE(clen);
ws->write(cname, clen);
obj->saveData(ws);
Commit: f6002eb3eea289496125f306324140fff1fe313f
https://github.com/scummvm/scummvm/commit/f6002eb3eea289496125f306324140fff1fe313f
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2020-05-25T16:28:25+09:00
Commit Message:
ULTIMA8: remove uses of strlen in object / process classname save
Changed paths:
engines/ultima/ultima8/kernel/kernel.cpp
engines/ultima/ultima8/kernel/object_manager.cpp
diff --git a/engines/ultima/ultima8/kernel/kernel.cpp b/engines/ultima/ultima8/kernel/kernel.cpp
index c9cc0637ac..9596e06ca2 100644
--- a/engines/ultima/ultima8/kernel/kernel.cpp
+++ b/engines/ultima/ultima8/kernel/kernel.cpp
@@ -324,19 +324,18 @@ void Kernel::save(Common::WriteStream *ws) {
_pIDs->save(ws);
ws->writeUint32LE(_processes.size());
for (ProcessIterator it = _processes.begin(); it != _processes.end(); ++it) {
- const char *cname = (*it)->GetClassType()._className; // virtual
- uint16 clen = strlen(cname);
+ Std::string classname = (*it)->GetClassType()._className; // virtual
Std::map<Common::String, ProcessLoadFunc>::iterator iter;
- iter = _processLoaders.find(cname);
+ iter = _processLoaders.find(classname);
if (iter == _processLoaders.end()) {
- perr << "Process class cannot save without registered loader: " << cname << Std::endl;
+ perr << "Process class cannot save without registered loader: " << classname << Std::endl;
continue;
}
- ws->writeUint16LE(clen);
- ws->write(cname, clen);
+ ws->writeUint16LE(classname.size());
+ ws->write(classname.c_str(), classname.size());
(*it)->saveData(ws);
}
}
diff --git a/engines/ultima/ultima8/kernel/object_manager.cpp b/engines/ultima/ultima8/kernel/object_manager.cpp
index a11461d106..1368b75f87 100644
--- a/engines/ultima/ultima8/kernel/object_manager.cpp
+++ b/engines/ultima/ultima8/kernel/object_manager.cpp
@@ -289,18 +289,17 @@ bool ObjectManager::load(Common::ReadStream *rs, uint32 version) {
}
void ObjectManager::saveObject(Common::WriteStream *ws, Object *obj) const {
- const char *cname = obj->GetClassType()._className; // note: virtual
- uint16 clen = strlen(cname);
+ Std::string classname = obj->GetClassType()._className; // note: virtual
Std::map<Common::String, ObjectLoadFunc>::iterator iter;
- iter = _objectLoaders.find(cname);
+ iter = _objectLoaders.find(classname);
if (iter == _objectLoaders.end()) {
- perr << "Object class cannot save without registered loader: " << cname << Std::endl;
+ perr << "Object class cannot save without registered loader: " << classname << Std::endl;
return;
}
- ws->writeUint16LE(clen);
- ws->write(cname, clen);
+ ws->writeUint16LE(classname.size());
+ ws->write(classname.c_str(), classname.size());
obj->saveData(ws);
}
Commit: 46ba0500cebf4ed6334d43b6b48b2079f06d05d0
https://github.com/scummvm/scummvm/commit/46ba0500cebf4ed6334d43b6b48b2079f06d05d0
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2020-05-25T16:28:25+09:00
Commit Message:
ULTIMA8: Change saving of unregisistered classname to an error
Changed paths:
engines/ultima/ultima8/kernel/kernel.cpp
engines/ultima/ultima8/kernel/object_manager.cpp
diff --git a/engines/ultima/ultima8/kernel/kernel.cpp b/engines/ultima/ultima8/kernel/kernel.cpp
index 9596e06ca2..75f5c25f21 100644
--- a/engines/ultima/ultima8/kernel/kernel.cpp
+++ b/engines/ultima/ultima8/kernel/kernel.cpp
@@ -324,14 +324,13 @@ void Kernel::save(Common::WriteStream *ws) {
_pIDs->save(ws);
ws->writeUint32LE(_processes.size());
for (ProcessIterator it = _processes.begin(); it != _processes.end(); ++it) {
- Std::string classname = (*it)->GetClassType()._className; // virtual
+ const Std::string & classname = (*it)->GetClassType()._className; // virtual
Std::map<Common::String, ProcessLoadFunc>::iterator iter;
iter = _processLoaders.find(classname);
if (iter == _processLoaders.end()) {
- perr << "Process class cannot save without registered loader: " << classname << Std::endl;
- continue;
+ error("Process class cannot save without registered loader: %s", classname.c_str());
}
ws->writeUint16LE(classname.size());
diff --git a/engines/ultima/ultima8/kernel/object_manager.cpp b/engines/ultima/ultima8/kernel/object_manager.cpp
index 1368b75f87..6190db2557 100644
--- a/engines/ultima/ultima8/kernel/object_manager.cpp
+++ b/engines/ultima/ultima8/kernel/object_manager.cpp
@@ -289,13 +289,12 @@ bool ObjectManager::load(Common::ReadStream *rs, uint32 version) {
}
void ObjectManager::saveObject(Common::WriteStream *ws, Object *obj) const {
- Std::string classname = obj->GetClassType()._className; // note: virtual
+ const Std::string & classname = obj->GetClassType()._className; // note: virtual
Std::map<Common::String, ObjectLoadFunc>::iterator iter;
iter = _objectLoaders.find(classname);
if (iter == _objectLoaders.end()) {
- perr << "Object class cannot save without registered loader: " << classname << Std::endl;
- return;
+ error("Object class cannot save without registered loader: %s", classname.c_str());
}
ws->writeUint16LE(classname.size());
More information about the Scummvm-git-logs
mailing list