[Scummvm-git-logs] scummvm master -> 46118c2100b3c6e59491c245b2897d7698720f69
OMGPizzaGuy
noreply at scummvm.org
Fri Feb 3 00:24:34 UTC 2023
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
992c25793e ULTIMA8: Replace CANT_HAPPEN macro usage with warning or error
f0bd3fb39f ULTIMA8: Replace FORGET_OBJECT macro with delete and nullptr assignment where needed
46118c2100 ULTIMA8: Cleanup shutdown methods
Commit: 992c25793ea8181a7df3042c385a8dc84e1b1f41
https://github.com/scummvm/scummvm/commit/992c25793ea8181a7df3042c385a8dc84e1b1f41
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2023-02-02T18:23:32-06:00
Commit Message:
ULTIMA8: Replace CANT_HAPPEN macro usage with warning or error
Changed paths:
engines/ultima/ultima8/games/game.cpp
engines/ultima/ultima8/games/start_crusader_process.cpp
engines/ultima/ultima8/games/start_u8_process.cpp
engines/ultima/ultima8/graphics/shape_info.cpp
engines/ultima/ultima8/gumps/book_gump.cpp
engines/ultima/ultima8/gumps/computer_gump.cpp
engines/ultima/ultima8/gumps/desktop_gump.cpp
engines/ultima/ultima8/gumps/game_map_gump.cpp
engines/ultima/ultima8/gumps/keypad_gump.cpp
engines/ultima/ultima8/gumps/main_menu_process.cpp
engines/ultima/ultima8/gumps/main_menu_process.h
engines/ultima/ultima8/gumps/message_box_gump.cpp
engines/ultima/ultima8/gumps/modal_gump.cpp
engines/ultima/ultima8/gumps/paged_gump.cpp
engines/ultima/ultima8/gumps/quit_gump.cpp
engines/ultima/ultima8/gumps/readable_gump.cpp
engines/ultima/ultima8/gumps/scroll_gump.cpp
engines/ultima/ultima8/gumps/shape_viewer_gump.cpp
engines/ultima/ultima8/gumps/slider_gump.cpp
engines/ultima/ultima8/gumps/target_gump.cpp
engines/ultima/ultima8/kernel/mouse.cpp
engines/ultima/ultima8/misc/pent_include.h
engines/ultima/ultima8/ultima8.cpp
engines/ultima/ultima8/usecode/uc_machine.cpp
engines/ultima/ultima8/usecode/usecode.cpp
engines/ultima/ultima8/usecode/usecode_flex.cpp
engines/ultima/ultima8/world/actors/avatar_mover_process.cpp
engines/ultima/ultima8/world/current_map.cpp
engines/ultima/ultima8/world/item.cpp
diff --git a/engines/ultima/ultima8/games/game.cpp b/engines/ultima/ultima8/games/game.cpp
index ee740dda80c..76fd077e2e1 100644
--- a/engines/ultima/ultima8/games/game.cpp
+++ b/engines/ultima/ultima8/games/game.cpp
@@ -52,7 +52,7 @@ Game *Game::createGame(const GameInfo *info) {
case GameInfo::GAME_REGRET:
return new CruGame();
default:
- CANT_HAPPEN_MSG("createGame: invalid _game");
+ error("createGame: invalid game tyoe");
}
return nullptr;
diff --git a/engines/ultima/ultima8/games/start_crusader_process.cpp b/engines/ultima/ultima8/games/start_crusader_process.cpp
index 967ea9ea78d..d35deabaf8e 100644
--- a/engines/ultima/ultima8/games/start_crusader_process.cpp
+++ b/engines/ultima/ultima8/games/start_crusader_process.cpp
@@ -146,7 +146,7 @@ void StartCrusaderProcess::run() {
}
void StartCrusaderProcess::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN();
+ warning("Attempted save of process with prevent save flag");
Process::saveData(ws);
}
diff --git a/engines/ultima/ultima8/games/start_u8_process.cpp b/engines/ultima/ultima8/games/start_u8_process.cpp
index 6b9ad8e147d..cac7bbf4eda 100644
--- a/engines/ultima/ultima8/games/start_u8_process.cpp
+++ b/engines/ultima/ultima8/games/start_u8_process.cpp
@@ -116,7 +116,7 @@ void StartU8Process::run() {
}
void StartU8Process::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN();
+ warning("Attempted save of process with prevent save flag");
Process::saveData(ws);
}
diff --git a/engines/ultima/ultima8/graphics/shape_info.cpp b/engines/ultima/ultima8/graphics/shape_info.cpp
index c5ff807b400..bca4258eb0b 100644
--- a/engines/ultima/ultima8/graphics/shape_info.cpp
+++ b/engines/ultima/ultima8/graphics/shape_info.cpp
@@ -32,7 +32,7 @@ bool ShapeInfo::getTypeFlag(int typeFlag) const {
return getTypeFlagU8(typeFlag);
else if (GAME_IS_CRUSADER)
return getTypeFlagCrusader(typeFlag);
- CANT_HAPPEN_MSG("Invalid game type");
+ warning("Invalid game type for shape info");
return false;
}
diff --git a/engines/ultima/ultima8/gumps/book_gump.cpp b/engines/ultima/ultima8/gumps/book_gump.cpp
index aa94f37b644..1e9cc1da819 100644
--- a/engines/ultima/ultima8/gumps/book_gump.cpp
+++ b/engines/ultima/ultima8/gumps/book_gump.cpp
@@ -134,11 +134,11 @@ uint32 BookGump::I_readBook(const uint8 *args, unsigned int /*argsize*/) {
}
void BookGump::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN_MSG("Trying to save ModalGump");
+ warning("Trying to save ModalGump");
}
bool BookGump::loadData(Common::ReadStream *rs, uint32 version) {
- CANT_HAPPEN_MSG("Trying to load ModalGump");
+ warning("Trying to load ModalGump");
return false;
}
diff --git a/engines/ultima/ultima8/gumps/computer_gump.cpp b/engines/ultima/ultima8/gumps/computer_gump.cpp
index 30f87a6a612..10e2f5b7bb3 100644
--- a/engines/ultima/ultima8/gumps/computer_gump.cpp
+++ b/engines/ultima/ultima8/gumps/computer_gump.cpp
@@ -260,11 +260,11 @@ uint32 ComputerGump::I_readComputer(const uint8 *args, unsigned int /*argsize*/)
}
void ComputerGump::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN_MSG("Trying to load ModalGump");
+ warning("Trying to save ModalGump");
}
bool ComputerGump::loadData(Common::ReadStream *rs, uint32 version) {
- CANT_HAPPEN_MSG("Trying to load ModalGump");
+ warning("Trying to load ModalGump");
return false;
}
diff --git a/engines/ultima/ultima8/gumps/desktop_gump.cpp b/engines/ultima/ultima8/gumps/desktop_gump.cpp
index 09906ad9b55..fbfdb68225e 100644
--- a/engines/ultima/ultima8/gumps/desktop_gump.cpp
+++ b/engines/ultima/ultima8/gumps/desktop_gump.cpp
@@ -90,11 +90,11 @@ void DesktopGump::RenderSurfaceChanged() {
}
void DesktopGump::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN_MSG("Trying to save DesktopGump");
+ warning("Trying to save DesktopGump");
}
bool DesktopGump::loadData(Common::ReadStream *rs, uint32 version) {
- CANT_HAPPEN_MSG("Trying to save DesktopGump");
+ warning("Trying to load DesktopGump");
return false;
}
diff --git a/engines/ultima/ultima8/gumps/game_map_gump.cpp b/engines/ultima/ultima8/gumps/game_map_gump.cpp
index f0e4bbc3a2c..717fd460baa 100644
--- a/engines/ultima/ultima8/gumps/game_map_gump.cpp
+++ b/engines/ultima/ultima8/gumps/game_map_gump.cpp
@@ -544,11 +544,11 @@ void GameMapGump::RenderSurfaceChanged() {
}
void GameMapGump::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN_MSG("Trying to save GameMapGump");
+ warning("Trying to save GameMapGump");
}
bool GameMapGump::loadData(Common::ReadStream *rs, uint32 version) {
- CANT_HAPPEN_MSG("Trying to load GameMapGump");
+ warning("Trying to load GameMapGump");
return false;
}
diff --git a/engines/ultima/ultima8/gumps/keypad_gump.cpp b/engines/ultima/ultima8/gumps/keypad_gump.cpp
index 7bf6dedf300..2f51d64a71e 100644
--- a/engines/ultima/ultima8/gumps/keypad_gump.cpp
+++ b/engines/ultima/ultima8/gumps/keypad_gump.cpp
@@ -256,12 +256,12 @@ uint32 KeypadGump::I_showKeypad(const uint8 *args, unsigned int /*argsize*/) {
}
bool KeypadGump::loadData(Common::ReadStream *rs) {
- CANT_HAPPEN_MSG("Trying to load ModalGump");
+ warning("Trying to load ModalGump");
return true;
}
void KeypadGump::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN_MSG("Trying to save ModalGump");
+ warning("Trying to save ModalGump");
}
} // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/gumps/main_menu_process.cpp b/engines/ultima/ultima8/gumps/main_menu_process.cpp
index 9844f82518e..cda1fb71643 100644
--- a/engines/ultima/ultima8/gumps/main_menu_process.cpp
+++ b/engines/ultima/ultima8/gumps/main_menu_process.cpp
@@ -32,7 +32,7 @@ namespace Ultima8 {
DEFINE_RUNTIME_CLASSTYPE_CODE(MainMenuProcess)
MainMenuProcess::MainMenuProcess() : Process() {
- _init = false;
+ _flags |= PROC_PREVENT_SAVE;
}
@@ -49,7 +49,7 @@ void MainMenuProcess::run() {
}
void MainMenuProcess::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN();
+ warning("Attempted save of process with prevent save flag");
Process::saveData(ws);
}
diff --git a/engines/ultima/ultima8/gumps/main_menu_process.h b/engines/ultima/ultima8/gumps/main_menu_process.h
index ac88af9cdef..b591d413e7e 100644
--- a/engines/ultima/ultima8/gumps/main_menu_process.h
+++ b/engines/ultima/ultima8/gumps/main_menu_process.h
@@ -40,9 +40,6 @@ public:
bool loadData(Common::ReadStream *rs, uint32 version);
void saveData(Common::WriteStream *ws) override;
-
-protected:
- bool _init;
};
} // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/gumps/message_box_gump.cpp b/engines/ultima/ultima8/gumps/message_box_gump.cpp
index dde173cbc9e..3a40b2d8f62 100644
--- a/engines/ultima/ultima8/gumps/message_box_gump.cpp
+++ b/engines/ultima/ultima8/gumps/message_box_gump.cpp
@@ -153,11 +153,11 @@ ProcId MessageBoxGump::Show(Std::string _title, Std::string _message, uint32 tit
}
void MessageBoxGump::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN_MSG("Trying to load ModalGump");
+ warning("Trying to save ModalGump");
}
bool MessageBoxGump::loadData(Common::ReadStream *rs, uint32 version) {
- CANT_HAPPEN_MSG("Trying to load ModalGump");
+ warning("Trying to load ModalGump");
return false;
}
diff --git a/engines/ultima/ultima8/gumps/modal_gump.cpp b/engines/ultima/ultima8/gumps/modal_gump.cpp
index 36d3b34beec..59320447df9 100644
--- a/engines/ultima/ultima8/gumps/modal_gump.cpp
+++ b/engines/ultima/ultima8/gumps/modal_gump.cpp
@@ -88,11 +88,11 @@ Gump *ModalGump::onMouseDown(int button, int32 mx, int32 my) {
void ModalGump::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN_MSG("Trying to save ModalGump");
+ warning("Trying to save ModalGump");
}
bool ModalGump::loadData(Common::ReadStream *rs, uint32 version) {
- CANT_HAPPEN_MSG("Trying to load ModalGump");
+ warning("Trying to load ModalGump");
return false;
}
diff --git a/engines/ultima/ultima8/gumps/paged_gump.cpp b/engines/ultima/ultima8/gumps/paged_gump.cpp
index 86ea9ff7fb8..06f3594982a 100644
--- a/engines/ultima/ultima8/gumps/paged_gump.cpp
+++ b/engines/ultima/ultima8/gumps/paged_gump.cpp
@@ -153,12 +153,12 @@ void PagedGump::addPage(Gump *g) {
}
bool PagedGump::loadData(Common::ReadStream *rs) {
- CANT_HAPPEN_MSG("Trying to load ModalGump");
+ warning("Trying to load ModalGump");
return false;
}
void PagedGump::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN_MSG("Trying to save ModalGump");
+ warning("Trying to save ModalGump");
}
} // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/gumps/quit_gump.cpp b/engines/ultima/ultima8/gumps/quit_gump.cpp
index 020eca0d171..12c19aade6a 100644
--- a/engines/ultima/ultima8/gumps/quit_gump.cpp
+++ b/engines/ultima/ultima8/gumps/quit_gump.cpp
@@ -194,12 +194,12 @@ void QuitGump::verifyQuit() {
}
bool QuitGump::loadData(Common::ReadStream *rs) {
- CANT_HAPPEN_MSG("Trying to load ModalGump");
+ warning("Trying to load ModalGump");
return true;
}
void QuitGump::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN_MSG("Trying to save ModalGump");
+ warning("Trying to save ModalGump");
}
} // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/gumps/readable_gump.cpp b/engines/ultima/ultima8/gumps/readable_gump.cpp
index 1e50a6b3fdb..0789edba315 100644
--- a/engines/ultima/ultima8/gumps/readable_gump.cpp
+++ b/engines/ultima/ultima8/gumps/readable_gump.cpp
@@ -115,11 +115,11 @@ uint32 ReadableGump::I_readPlaque(const uint8 *args, unsigned int /*argsize*/) {
}
void ReadableGump::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN_MSG("Trying to load ModalGump");
+ warning("Trying to load ModalGump");
}
bool ReadableGump::loadData(Common::ReadStream *rs, uint32 version) {
- CANT_HAPPEN_MSG("Trying to load ModalGump");
+ warning("Trying to load ModalGump");
return false;
}
diff --git a/engines/ultima/ultima8/gumps/scroll_gump.cpp b/engines/ultima/ultima8/gumps/scroll_gump.cpp
index dcf5a004cab..2afb4efc9a6 100644
--- a/engines/ultima/ultima8/gumps/scroll_gump.cpp
+++ b/engines/ultima/ultima8/gumps/scroll_gump.cpp
@@ -109,11 +109,11 @@ uint32 ScrollGump::I_readScroll(const uint8 *args, unsigned int /*argsize*/) {
}
void ScrollGump::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN_MSG("Trying to save ModalGump");
+ warning("Trying to save ModalGump");
}
bool ScrollGump::loadData(Common::ReadStream *rs, uint32 version) {
- CANT_HAPPEN_MSG("Trying to load ModalGump");
+ warning("Trying to load ModalGump");
return false;
}
diff --git a/engines/ultima/ultima8/gumps/shape_viewer_gump.cpp b/engines/ultima/ultima8/gumps/shape_viewer_gump.cpp
index 9fdf723a4e4..bb21273a9f9 100644
--- a/engines/ultima/ultima8/gumps/shape_viewer_gump.cpp
+++ b/engines/ultima/ultima8/gumps/shape_viewer_gump.cpp
@@ -340,12 +340,12 @@ void ShapeViewerGump::U8ShapeViewer() {
}
bool ShapeViewerGump::loadData(Common::ReadStream *rs) {
- CANT_HAPPEN_MSG("Trying to load ModalGump");
+ warning("Trying to load ModalGump");
return false;
}
void ShapeViewerGump::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN_MSG("Trying to save ModalGump");
+ warning("Trying to save ModalGump");
}
} // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/gumps/slider_gump.cpp b/engines/ultima/ultima8/gumps/slider_gump.cpp
index 51244709f5e..fbda0050611 100644
--- a/engines/ultima/ultima8/gumps/slider_gump.cpp
+++ b/engines/ultima/ultima8/gumps/slider_gump.cpp
@@ -219,11 +219,11 @@ void SliderGump::setUsecodeNotify(UCProcess *ucp) {
}
void SliderGump::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN_MSG("Trying to save ModalGump");
+ warning("Trying to save ModalGump");
}
bool SliderGump::loadData(Common::ReadStream *rs, uint32 version) {
- CANT_HAPPEN_MSG("Trying to load ModalGump");
+ warning("Trying to load ModalGump");
return false;
}
diff --git a/engines/ultima/ultima8/gumps/target_gump.cpp b/engines/ultima/ultima8/gumps/target_gump.cpp
index 4cbc9c01644..caad8730c65 100644
--- a/engines/ultima/ultima8/gumps/target_gump.cpp
+++ b/engines/ultima/ultima8/gumps/target_gump.cpp
@@ -104,11 +104,11 @@ uint32 TargetGump::I_target(const uint8 * /*args*/, unsigned int /*argsize*/) {
void TargetGump::saveData(Common::WriteStream *ws) {
- CANT_HAPPEN_MSG("Trying to save ModalGump");
+ warning("Trying to save ModalGump");
}
bool TargetGump::loadData(Common::ReadStream *rs, uint32 versin) {
- CANT_HAPPEN_MSG("Trying to load ModalGump");
+ warning("Trying to load ModalGump");
return false;
}
diff --git a/engines/ultima/ultima8/kernel/mouse.cpp b/engines/ultima/ultima8/kernel/mouse.cpp
index 33a54da0ec6..efd41cb07b7 100644
--- a/engines/ultima/ultima8/kernel/mouse.cpp
+++ b/engines/ultima/ultima8/kernel/mouse.cpp
@@ -430,37 +430,35 @@ void Mouse::moveDragging(int mx, int my) {
setMouseCursor(MOUSE_NORMAL);
- // for a gump, notify Gump's parent that it was dragged
if (gump) {
+ // for a gump, notify Gump's parent that it was dragged
Gump *parent = gump->GetParent();
assert(parent); // can't drag root gump
int32 px = mx, py = my;
parent->ScreenSpaceToGump(px, py);
gump->onDrag(px, py);
- } else {
+ } else if (item) {
// for an item, notify the gump it's on
- if (item) {
- Gump *desktopGump = Ultima8Engine::get_instance()->getDesktopGump();
- gump = desktopGump->FindGump(mx, my);
- assert(gump);
-
- if (gump->getObjId() != _draggingItem_lastGump) {
- // item switched gump, so notify previous gump item left
- Gump *last = getGump(_draggingItem_lastGump);
- if (last) last->DraggingItemLeftGump(item);
- }
- _draggingItem_lastGump = gump->getObjId();
- int32 gx = mx, gy = my;
- gump->ScreenSpaceToGump(gx, gy);
- bool ok = gump->DraggingItem(item, gx, gy);
- if (!ok) {
- _dragging = DRAG_TEMPFAIL;
- } else {
- _dragging = DRAG_OK;
- }
+ Gump *desktopGump = Ultima8Engine::get_instance()->getDesktopGump();
+ gump = desktopGump->FindGump(mx, my);
+ assert(gump);
+
+ if (gump->getObjId() != _draggingItem_lastGump) {
+ // item switched gump, so notify previous gump item left
+ Gump *last = getGump(_draggingItem_lastGump);
+ if (last) last->DraggingItemLeftGump(item);
+ }
+ _draggingItem_lastGump = gump->getObjId();
+ int32 gx = mx, gy = my;
+ gump->ScreenSpaceToGump(gx, gy);
+ bool ok = gump->DraggingItem(item, gx, gy);
+ if (!ok) {
+ _dragging = DRAG_TEMPFAIL;
} else {
- CANT_HAPPEN();
+ _dragging = DRAG_OK;
}
+ } else {
+ warning("Unknown object id on mouse drag");
}
if (_dragging == DRAG_TEMPFAIL) {
diff --git a/engines/ultima/ultima8/misc/pent_include.h b/engines/ultima/ultima8/misc/pent_include.h
index 40c58edd4e6..88931e3e2e2 100644
--- a/engines/ultima/ultima8/misc/pent_include.h
+++ b/engines/ultima/ultima8/misc/pent_include.h
@@ -51,18 +51,4 @@
// double deletes (note that "delete 0" is a no-op).
#define FORGET_OBJECT(x) do { delete x; x = 0; } while(0)
-//
-// Can't happen.
-// For things that really can't happen. Or shouldn't anyway.
-//
-#define CANT_HAPPEN() do { assert(false); } while(0)
-
-//
-// Can't happen with a message
-//
-// Allows a message to be supplied.
-// May not work on all compilers or runtimes as expected
-//
-#define CANT_HAPPEN_MSG(msg) do { assert(msg && false); } while(0)
-
#endif
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 424544b12ad..0eea2a64dcc 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -356,7 +356,7 @@ Common::Error Ultima8Engine::startup() {
return result;
} else {
// Couldn't setup the game, should never happen?
- CANT_HAPPEN_MSG("game failed to initialize");
+ warning("game failed to initialize");
}
paint();
return Common::kNoError;
@@ -493,7 +493,7 @@ Common::Error Ultima8Engine::startupGame() {
break;
}
} else {
- CANT_HAPPEN_MSG("Invalid game type.");
+ warning("Invalid game type.");
}
_inBetweenFrame = false;
diff --git a/engines/ultima/ultima8/usecode/uc_machine.cpp b/engines/ultima/ultima8/usecode/uc_machine.cpp
index aafdaf9f8a7..ee73d2fa4a7 100644
--- a/engines/ultima/ultima8/usecode/uc_machine.cpp
+++ b/engines/ultima/ultima8/usecode/uc_machine.cpp
@@ -2157,7 +2157,7 @@ bool UCMachine::assignPointer(uint32 ptr, const uint8 *data, uint32 size) {
}
} else if (segment == SEG_GLOBAL) {
if (!GAME_IS_CRUSADER)
- CANT_HAPPEN_MSG("Global pointers not supported in U8");
+ warning("Global pointers not supported in U8");
if (size == 1) {
_globals->setEntries(offset, 1, data[0]);
@@ -2165,7 +2165,7 @@ bool UCMachine::assignPointer(uint32 ptr, const uint8 *data, uint32 size) {
uint16 val = ((data[1] << 8) | data[0]);
_globals->setEntries(offset, 2, val);
} else {
- CANT_HAPPEN_MSG("Global pointers must be size 1 or 2");
+ warning("Global pointers must be size 1 or 2");
}
} else {
warning("Trying to access segment %04X", segment);
@@ -2211,7 +2211,7 @@ bool UCMachine::dereferencePointer(uint32 ptr, uint8 *data, uint32 size) {
}
} else if (segment == SEG_GLOBAL) {
if (!GAME_IS_CRUSADER)
- CANT_HAPPEN_MSG("Global pointers not supported in U8");
+ warning("Global pointers not supported in U8");
if (size == 1) {
data[0] = static_cast<uint8>(_globals->getEntries(offset, 1));
@@ -2220,7 +2220,7 @@ bool UCMachine::dereferencePointer(uint32 ptr, uint8 *data, uint32 size) {
data[0] = static_cast<uint8>(val);
data[1] = static_cast<uint8>(val >> 8);
} else {
- CANT_HAPPEN_MSG("Global pointers must be size 1 or 2");
+ warning("Global pointers must be size 1 or 2");
}
} else {
warning("Trying to access segment %04X", segment);
diff --git a/engines/ultima/ultima8/usecode/usecode.cpp b/engines/ultima/ultima8/usecode/usecode.cpp
index 96fbab0d826..584ded4cad3 100644
--- a/engines/ultima/ultima8/usecode/usecode.cpp
+++ b/engines/ultima/ultima8/usecode/usecode.cpp
@@ -33,7 +33,6 @@ uint32 Usecode::get_class_event(uint32 classid, uint32 eventid) {
if (eventid >= get_class_event_count(classid)) {
warning("eventid too high: %u >= %u for class %u",
eventid, get_class_event_count(classid), classid);
- CANT_HAPPEN();
}
const uint8 *data = get_class(classid);
@@ -50,7 +49,7 @@ uint32 Usecode::get_class_event(uint32 classid, uint32 eventid) {
offset += data[20 + (eventid * 6) + 4] << 16;
offset += data[20 + (eventid * 6) + 5] << 24;
} else {
- CANT_HAPPEN_MSG("Invalid game type.");
+ warning("Invalid game type.");
}
return offset;
diff --git a/engines/ultima/ultima8/usecode/usecode_flex.cpp b/engines/ultima/ultima8/usecode/usecode_flex.cpp
index a8362ba29d5..8ab16d4fb1a 100644
--- a/engines/ultima/ultima8/usecode/usecode_flex.cpp
+++ b/engines/ultima/ultima8/usecode/usecode_flex.cpp
@@ -60,7 +60,7 @@ uint32 UsecodeFlex::get_class_base_offset(uint32 classid) {
offset--;
return offset;
} else {
- CANT_HAPPEN_MSG("Invalid game type.");
+ warning("Invalid game type.");
return 0;
}
}
@@ -73,7 +73,7 @@ uint32 UsecodeFlex::get_class_event_count(uint32 classid) {
} else if (GAME_IS_CRUSADER) {
return (get_class_base_offset(classid) + 19) / 6;
} else {
- CANT_HAPPEN_MSG("Invalid game type.");
+ warning("Invalid game type.");
return 0;
}
}
diff --git a/engines/ultima/ultima8/world/actors/avatar_mover_process.cpp b/engines/ultima/ultima8/world/actors/avatar_mover_process.cpp
index 68618112257..a984ecf12a1 100644
--- a/engines/ultima/ultima8/world/actors/avatar_mover_process.cpp
+++ b/engines/ultima/ultima8/world/actors/avatar_mover_process.cpp
@@ -191,7 +191,7 @@ void AvatarMoverProcess::onMouseDown(int button, int32 mx, int32 my) {
break;
}
default:
- CANT_HAPPEN_MSG("invalid MouseDown passed to AvatarMoverProcess");
+ warning("Invalid MouseDown passed to AvatarMoverProcess");
break;
};
@@ -209,7 +209,7 @@ void AvatarMoverProcess::onMouseUp(int button) {
} else if (button == Mouse::BUTTON_RIGHT) {
bid = 1;
} else {
- CANT_HAPPEN_MSG("invalid MouseUp passed to AvatarMoverProcess");
+ warning("Invalid MouseUp passed to AvatarMoverProcess");
}
_mouseButton[bid].clearState(MBS_DOWN);
diff --git a/engines/ultima/ultima8/world/current_map.cpp b/engines/ultima/ultima8/world/current_map.cpp
index a78bd77c51b..3c68d8fbdd6 100644
--- a/engines/ultima/ultima8/world/current_map.cpp
+++ b/engines/ultima/ultima8/world/current_map.cpp
@@ -60,7 +60,7 @@ CurrentMap::CurrentMap() : _currentMap(0), _eggHatcher(0),
} else if (GAME_IS_CRUSADER) {
_mapChunkSize = 1024;
} else {
- CANT_HAPPEN_MSG("Unknown game type in CurrentMap constructor.");
+ warning("Unknown game type in CurrentMap constructor.");
}
for (unsigned int i = 0; i < MAP_NUM_TARGET_ITEMS; i++) {
diff --git a/engines/ultima/ultima8/world/item.cpp b/engines/ultima/ultima8/world/item.cpp
index 24f59c79468..675ebc69ea8 100644
--- a/engines/ultima/ultima8/world/item.cpp
+++ b/engines/ultima/ultima8/world/item.cpp
@@ -125,7 +125,6 @@ Container *Item::getParentAsContainer() const {
if (!p) {
warning("Item %u _parent (%u) is an invalid Container ObjID", getObjId(), _parent);
- CANT_HAPPEN();
}
return p;
@@ -378,7 +377,6 @@ void Item::returnFromEtherealVoid() {
Container *p = getParentAsContainer();
if (!p) {
warning("Item %u FLG_CONTAINED or FLG_EQUIPPED set but item has no _parent", getObjId());
- CANT_HAPPEN();
}
moveToContainer(p);
}
Commit: f0bd3fb39f6666af4a52870c1feede156248c4a0
https://github.com/scummvm/scummvm/commit/f0bd3fb39f6666af4a52870c1feede156248c4a0
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2023-02-02T18:23:33-06:00
Commit Message:
ULTIMA8: Replace FORGET_OBJECT macro with delete and nullptr assignment where needed
Changed paths:
engines/ultima/ultima8/gumps/inverter_gump.cpp
engines/ultima/ultima8/gumps/widgets/edit_widget.cpp
engines/ultima/ultima8/misc/pent_include.h
engines/ultima/ultima8/ultima8.cpp
diff --git a/engines/ultima/ultima8/gumps/inverter_gump.cpp b/engines/ultima/ultima8/gumps/inverter_gump.cpp
index e49e8b726cf..c9ff6d3f4ef 100644
--- a/engines/ultima/ultima8/gumps/inverter_gump.cpp
+++ b/engines/ultima/ultima8/gumps/inverter_gump.cpp
@@ -129,7 +129,8 @@ void InverterGump::GumpToParent(int32 &gx, int32 &gy, PointRoundDir) {
void InverterGump::RenderSurfaceChanged() {
DesktopGump::RenderSurfaceChanged();
- FORGET_OBJECT(_buffer);
+ delete _buffer;
+ _buffer = nullptr;
}
} // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/gumps/widgets/edit_widget.cpp b/engines/ultima/ultima8/gumps/widgets/edit_widget.cpp
index b337da34105..a610dd49faa 100644
--- a/engines/ultima/ultima8/gumps/widgets/edit_widget.cpp
+++ b/engines/ultima/ultima8/gumps/widgets/edit_widget.cpp
@@ -69,7 +69,8 @@ Font *EditWidget::getFont() const {
void EditWidget::setText(const Std::string &t) {
_text = t;
_cursor = _text.size();
- FORGET_OBJECT(_cachedText);
+ delete _cachedText;
+ _cachedText = nullptr;
}
void EditWidget::ensureCursorVisible() {
@@ -124,7 +125,8 @@ void EditWidget::renderText() {
}
if (cv != _cursorVisible) {
- FORGET_OBJECT(_cachedText);
+ delete _cachedText;
+ _cachedText = nullptr;
_cursorVisible = cv;
}
@@ -196,27 +198,31 @@ bool EditWidget::OnKeyDown(int key, int mod) {
case Common::KEYCODE_BACKSPACE:
if (_cursor > 0) {
_text.erase(--_cursor, 1);
- FORGET_OBJECT(_cachedText);
+ delete _cachedText;
+ _cachedText = nullptr;
ensureCursorVisible();
}
break;
case Common::KEYCODE_DELETE:
if (_cursor != _text.size()) {
_text.erase(_cursor, 1);
- FORGET_OBJECT(_cachedText);
+ delete _cachedText;
+ _cachedText = nullptr;
}
break;
case Common::KEYCODE_LEFT:
if (_cursor > 0) {
_cursor--;
- FORGET_OBJECT(_cachedText);
+ delete _cachedText;
+ _cachedText = nullptr;
ensureCursorVisible();
}
break;
case Common::KEYCODE_RIGHT:
if (_cursor < _text.size()) {
_cursor++;
- FORGET_OBJECT(_cachedText);
+ delete _cachedText;
+ _cachedText = nullptr;
ensureCursorVisible();
}
break;
@@ -247,7 +253,8 @@ bool EditWidget::OnTextInput(int unicode) {
if (textFits(newtext)) {
_text = newtext;
_cursor++;
- FORGET_OBJECT(_cachedText);
+ delete _cachedText;
+ _cachedText = nullptr;
}
return true;
diff --git a/engines/ultima/ultima8/misc/pent_include.h b/engines/ultima/ultima8/misc/pent_include.h
index 88931e3e2e2..2b0f8a9d682 100644
--- a/engines/ultima/ultima8/misc/pent_include.h
+++ b/engines/ultima/ultima8/misc/pent_include.h
@@ -45,10 +45,4 @@
//
#include "ultima/ultima8/misc/debugger.h"
-
-// Two very useful macros that one should use instead of pure delete; they
-// will additionally set the old object pointer to 0, thus helping prevent
-// double deletes (note that "delete 0" is a no-op).
-#define FORGET_OBJECT(x) do { delete x; x = 0; } while(0)
-
#endif
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 0eea2a64dcc..62f2c1aed55 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -142,20 +142,20 @@ Ultima8Engine::Ultima8Engine(OSystem *syst, const Ultima::UltimaGameDescription
}
Ultima8Engine::~Ultima8Engine() {
- FORGET_OBJECT(_kernel);
- FORGET_OBJECT(_objectManager);
- FORGET_OBJECT(_audioMixer);
- FORGET_OBJECT(_ucMachine);
- FORGET_OBJECT(_paletteManager);
- FORGET_OBJECT(_mouse);
- FORGET_OBJECT(_gameData);
- FORGET_OBJECT(_world);
- FORGET_OBJECT(_ucMachine);
- FORGET_OBJECT(_fontManager);
- FORGET_OBJECT(_screen);
- FORGET_OBJECT(_fileSystem);
- FORGET_OBJECT(_configFileMan);
- FORGET_OBJECT(_gameInfo);
+ delete _kernel;
+ delete _objectManager;
+ delete _audioMixer;
+ delete _ucMachine;
+ delete _paletteManager;
+ delete _mouse;
+ delete _gameData;
+ delete _world;
+ delete _ucMachine;
+ delete _fontManager;
+ delete _screen;
+ delete _fileSystem;
+ delete _configFileMan;
+ delete _gameInfo;
_instance = nullptr;
}
@@ -546,20 +546,29 @@ void Ultima8Engine::shutdownGame(bool reloading) {
_mouse->popAllCursors();
_mouse->pushMouseCursor(Mouse::MOUSE_NORMAL);
- FORGET_OBJECT(_world);
+ delete _world;
+ _world = nullptr;
+
_objectManager->reset();
- FORGET_OBJECT(_ucMachine);
+
+ delete _ucMachine;
+ _ucMachine = nullptr;
+
_kernel->reset();
_paletteManager->reset();
_fontManager->resetGameFonts();
- FORGET_OBJECT(_game);
- FORGET_OBJECT(_gameData);
+ delete _game;
+ _game = nullptr;
+
+ delete _gameData;
+ _gameData = nullptr;
if (_audioMixer) {
_audioMixer->closeMidiOutput();
_audioMixer->reset();
- FORGET_OBJECT(_audioMixer);
+ delete _audioMixer;
+ _audioMixer = nullptr;
}
_desktopGump = nullptr;
Commit: 46118c2100b3c6e59491c245b2897d7698720f69
https://github.com/scummvm/scummvm/commit/46118c2100b3c6e59491c245b2897d7698720f69
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2023-02-02T18:23:33-06:00
Commit Message:
ULTIMA8: Cleanup shutdown methods
Changed paths:
engines/ultima/ultima8/ultima8.cpp
engines/ultima/ultima8/ultima8.h
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 62f2c1aed55..38c3f0884b5 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -534,10 +534,6 @@ Common::Error Ultima8Engine::startupGame() {
}
void Ultima8Engine::shutdown() {
- shutdownGame(false);
-}
-
-void Ultima8Engine::shutdownGame(bool reloading) {
debug(MM_INFO, "-- Shutting down Game -- ");
// Save config here....
@@ -588,22 +584,6 @@ void Ultima8Engine::shutdownGame(bool reloading) {
_gameInfo = nullptr;
debug(MM_INFO, "-- Game Shutdown -- ");
-
- if (reloading) {
- Rect dims;
- _screen->GetSurfaceDims(dims);
-
- debugN(MM_INFO, "Creating Desktop...\n");
- _desktopGump = new DesktopGump(0, 0, dims.width(), dims.height());
- _desktopGump->InitGump(0);
- _desktopGump->MakeFocus();
-
- if (GAME_IS_U8) {
- debugN(MM_INFO, "Creating Inverter...\n");
- _inverterGump = new InverterGump(0, 0, dims.width(), dims.height());
- _inverterGump->InitGump(0);
- }
- }
}
//
diff --git a/engines/ultima/ultima8/ultima8.h b/engines/ultima/ultima8/ultima8.h
index 4fda211c363..5af6d936423 100644
--- a/engines/ultima/ultima8/ultima8.h
+++ b/engines/ultima/ultima8/ultima8.h
@@ -196,7 +196,6 @@ public:
bool setupGame();
Common::Error startupGame();
- void shutdownGame(bool reloading = true);
void changeVideoMode(int width, int height);
More information about the Scummvm-git-logs
mailing list