From 63c62d25e11a82988efb11186309db1ef98b5903 Mon Sep 17 00:00:00 2001 From: Joseph-Eugene Winzer Date: Sat, 26 Aug 2017 06:51:46 +0200 Subject: [PATCH] SUPERNOVA: Adds explicitly invalid state for Objects --- engines/supernova/msn_def.h | 5 +++-- engines/supernova/state.cpp | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/engines/supernova/msn_def.h b/engines/supernova/msn_def.h index cf85efce0cb..3b2bd494cbc 100644 --- a/engines/supernova/msn_def.h +++ b/engines/supernova/msn_def.h @@ -382,7 +382,8 @@ enum RoomID { }; enum ObjectID { - NULLOBJECT, + INVALIDOBJECT = -1, + NULLOBJECT = 0, KEYCARD,KNIFE,WATCH, SOCKET, BUTTON,HATCH1, @@ -463,7 +464,7 @@ struct Object { Object() : _name("") , _description(Object::defaultDescription) - , _id(NULLOBJECT) + , _id(INVALIDOBJECT) , _type(NULLTYPE) , _click(0) , _click2(0) diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp index d236019adfe..521f90b53da 100644 --- a/engines/supernova/state.cpp +++ b/engines/supernova/state.cpp @@ -458,7 +458,8 @@ void GameManager::processInput() { } /* normal item */ else { - for (int i = 0; (_currentRoom->getObject(i)->_name.c_str()[0] != '\0') && (field == -1) && i < kMaxObject; i++) { + for (int i = 0; (_currentRoom->getObject(i)->_id != INVALIDOBJECT) && + (field == -1) && i < kMaxObject; i++) { click = _currentRoom->getObject(i)->_click; if (click != 255) { MSNImageDecoder::ClickField *clickField = _vm->_currentImage->_clickField;