diff options
Diffstat (limited to 'engines/agos/script_pn.cpp')
-rw-r--r-- | engines/agos/script_pn.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/engines/agos/script_pn.cpp b/engines/agos/script_pn.cpp index bde59b71b8..196350b9bf 100644 --- a/engines/agos/script_pn.cpp +++ b/engines/agos/script_pn.cpp @@ -23,6 +23,7 @@ #include "agos/agos.h" #include "agos/vga.h" +#include "common/endian.h" #include "common/textconsole.h" namespace AGOS { @@ -465,8 +466,8 @@ void AGOSEngine_PN::opn_opcode35() { void AGOSEngine_PN::opn_opcode36() { for (int i = 0; i < _dataBase[57] + 1; ++i) _wordcp[i] = 0; - if (isspace(*_inpp)) - while ((*_inpp) && (isspace(*_inpp))) + if (isspace(static_cast<unsigned char>(*_inpp))) + while ((*_inpp) && (isspace(static_cast<unsigned char>(*_inpp)))) _inpp++; if (*_inpp == 0) { setScriptReturn(false); @@ -480,7 +481,7 @@ void AGOSEngine_PN::opn_opcode36() { } int ct = 1; - while ((*_inpp != '.') && (*_inpp != ',') && (!isspace(*_inpp)) && (*_inpp != '\0') && + while ((*_inpp != '.') && (*_inpp != ',') && (!isspace(static_cast<unsigned char>(*_inpp))) && (*_inpp != '\0') && (*_inpp!='"')) { if (ct < _dataBase[57]) _wordcp[ct++] = *_inpp; @@ -580,7 +581,7 @@ void AGOSEngine_PN::opn_opcode46() { return; } x++; - while ((*x != '.') && (*x != ',') && (*x != '"') && (!isspace(*x)) && (*x != '\0')) + while ((*x != '.') && (*x != ',') && (*x != '"') && (!isspace(static_cast<unsigned char>(*x))) && (*x != '\0')) pcf(*x++); setScriptReturn(true); } |