aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kernel32.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2010-06-01 14:41:48 +0000
committerFilippos Karapetis2010-06-01 14:41:48 +0000
commite083c20da1aab0090a5fc3ea624c9810c63dad52 (patch)
tree8afe1c12bdba317e799049cdd49dec49281e728f /engines/sci/engine/kernel32.cpp
parent400542a1fe688bb702a89333c833bc1d89dd1ed4 (diff)
downloadscummvm-rg350-e083c20da1aab0090a5fc3ea624c9810c63dad52.tar.gz
scummvm-rg350-e083c20da1aab0090a5fc3ea624c9810c63dad52.tar.bz2
scummvm-rg350-e083c20da1aab0090a5fc3ea624c9810c63dad52.zip
The system strings segment is a fixed segment of the segment manager, which doesn't change during the game, thus move all the system strings code and variables inside the segment manager
svn-id: r49372
Diffstat (limited to 'engines/sci/engine/kernel32.cpp')
-rw-r--r--engines/sci/engine/kernel32.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/engines/sci/engine/kernel32.cpp b/engines/sci/engine/kernel32.cpp
index b705bbb794..3dd596494d 100644
--- a/engines/sci/engine/kernel32.cpp
+++ b/engines/sci/engine/kernel32.cpp
@@ -575,16 +575,16 @@ reg_t kString(EngineState *s, int argc, reg_t *argv) {
uint32 count = argv[5].toSint16() == -1 ? string2.size() - index2 + 1 : argv[5].toUint16();
// We have a special case here for argv[1] being a system string
- if (argv[1].segment == s->sys_strings_segment) {
+ if (argv[1].segment == s->_segMan->getSysStringsSegment()) {
// Resize if necessary
- if ((uint32)s->sys_strings->_strings[argv[1].toUint16()]._maxSize < index1 + count) {
- delete[] s->sys_strings->_strings[argv[1].toUint16()]._value;
- s->sys_strings->_strings[argv[1].toUint16()]._maxSize = index1 + count;
- s->sys_strings->_strings[argv[1].toUint16()]._value = new char[index1 + count];
- memset(s->sys_strings->_strings[argv[1].toUint16()]._value, 0, index1 + count);
+ if ((uint32)s->_segMan->sysStrings->_strings[argv[1].toUint16()]._maxSize < index1 + count) {
+ delete[] s->_segMan->sysStrings->_strings[argv[1].toUint16()]._value;
+ s->_segMan->sysStrings->_strings[argv[1].toUint16()]._maxSize = index1 + count;
+ s->_segMan->sysStrings->_strings[argv[1].toUint16()]._value = new char[index1 + count];
+ memset(s->_segMan->sysStrings->_strings[argv[1].toUint16()]._value, 0, index1 + count);
}
- strncpy(s->sys_strings->_strings[argv[1].toUint16()]._value + index1, string2.c_str() + index2, count);
+ strncpy(s->_segMan->sysStrings->_strings[argv[1].toUint16()]._value + index1, string2.c_str() + index2, count);
} else {
SciString *string1 = s->_segMan->lookupString(argv[1]);