aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/vm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/engine/vm.cpp')
-rw-r--r--engines/sci/engine/vm.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp
index a9fddac956..1c3917fc69 100644
--- a/engines/sci/engine/vm.cpp
+++ b/engines/sci/engine/vm.cpp
@@ -2075,11 +2075,18 @@ Object *obj_get(EngineState *s, reg_t offset) {
const char *obj_get_name(EngineState *s, reg_t pos) {
Object *obj = obj_get(s, pos);
-
if (!obj)
return "<no such object>";
- return (const char *)(obj->base + obj->_variables[SCRIPT_NAME_SELECTOR].offset);
+ reg_t nameReg = obj->_variables[SCRIPT_NAME_SELECTOR];
+ if (nameReg.isNull())
+ return "<no name>";
+
+ const char *name = (const char*)s->seg_manager->dereference(obj->_variables[SCRIPT_NAME_SELECTOR], NULL);
+ if (!name)
+ return "<invalid name>";
+
+ return name;
}
void quit_vm() {