diff options
author | Alexander Tkachev | 2016-08-15 18:58:09 +0600 |
---|---|---|
committer | Eugene Sandulenko | 2016-08-30 23:26:29 +0200 |
commit | d7377c43edb818580213b7da1e78b68647065e45 (patch) | |
tree | 0d371ff157a5aea6feb13d335ca5cb402460c393 /engines/scumm/he/script_v72he.cpp | |
parent | aafc1ba145149b063c3c4f96c0f666eb98b522d5 (diff) | |
download | scummvm-rg350-d7377c43edb818580213b7da1e78b68647065e45.tar.gz scummvm-rg350-d7377c43edb818580213b7da1e78b68647065e45.tar.bz2 scummvm-rg350-d7377c43edb818580213b7da1e78b68647065e45.zip |
HE: Add getStringFromArray()
It's ARRAY_GetStringFromArray(), which was used in Moonbase networking
code as SPUTM_CStringArrayFromScummString().
Diffstat (limited to 'engines/scumm/he/script_v72he.cpp')
-rw-r--r-- | engines/scumm/he/script_v72he.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/engines/scumm/he/script_v72he.cpp b/engines/scumm/he/script_v72he.cpp index d32eb766cb..192675190c 100644 --- a/engines/scumm/he/script_v72he.cpp +++ b/engines/scumm/he/script_v72he.cpp @@ -1484,6 +1484,26 @@ void ScummEngine_v72he::writeFileFromArray(int slot, int32 resID) { } } +void ScummEngine_v72he::getStringFromArray(int arrayNumber, char *buffer, int maxLength) { + // I'm not really sure it belongs here and not some other version + // this is ARRAY_GetStringFromArray() from ARRAYS.cpp of SPUTM + + // this function makes a C-string out of <arrayNumber> contents + + VAR(0) = arrayNumber; // it was 0 in original code, but I've seen ScummVM Moonbase code which uses VAR_U32_ARRAY_UNK + + int i, ch; + for (i = 0; i < maxLength; ++i) { + if (!(ch = readArray(0, 0, i))) { + break; + } + + buffer[i] = ch; + } + + buffer[i] = 0; +} + void ScummEngine_v72he::o72_writeFile() { int32 resID = pop(); int slot = pop(); |