diff options
author | Max Horn | 2004-08-01 02:07:57 +0000 |
---|---|---|
committer | Max Horn | 2004-08-01 02:07:57 +0000 |
commit | 2d5bfca892f613ea752425215bb2fa82e6552354 (patch) | |
tree | 16898d8a64e32e78e91cec8972b6589438aa4666 /scumm | |
parent | c87d33a1028afbf45eb8785021d51ffa0051baf4 (diff) | |
download | scummvm-rg350-2d5bfca892f613ea752425215bb2fa82e6552354.tar.gz scummvm-rg350-2d5bfca892f613ea752425215bb2fa82e6552354.tar.bz2 scummvm-rg350-2d5bfca892f613ea752425215bb2fa82e6552354.zip |
Even more array code cleanup
svn-id: r14407
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/script_v6he.cpp | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/scumm/script_v6he.cpp b/scumm/script_v6he.cpp index b2f634ec77..712be5b040 100644 --- a/scumm/script_v6he.cpp +++ b/scumm/script_v6he.cpp @@ -1191,16 +1191,16 @@ void ScummEngine_v6he::o6_redimArray() { newY = pop(); newX = pop(); - if (newY == 0) + if (newY == 0) SWAP(newX, newY); subcode = fetchScriptByte(); switch (subcode) { case 199: - redimArray(fetchScriptWord(), newX, newY, rtInventory); + redimArray(fetchScriptWord(), newX, newY, kIntArray); break; case 202: - redimArray(fetchScriptWord(), newX, newY, rtCostume); + redimArray(fetchScriptWord(), newX, newY, kByteArray); break; default: break; @@ -1209,7 +1209,7 @@ void ScummEngine_v6he::o6_redimArray() { void ScummEngine_v6he::redimArray(int arrayId, int newX, int newY, int type) { // Used in mini game at Cosmic Dust Diner in puttmoon - int var_2, var_4, ax, cx; + int newSize, oldSize; if (readVar(arrayId) == 0) error("redimArray: Reference to zeroed array pointer"); @@ -1219,20 +1219,13 @@ void ScummEngine_v6he::redimArray(int arrayId, int newX, int newY, int type) { if (!ah) error("redimArray: Invalid array (%d) reference", readVar(arrayId)); - if (type == rtInventory) - var_2 = 2; - else // rtCostume - var_2 = 1; + newSize = (type == kIntArray) ? 2 : 1; + oldSize = (ah->type == kIntArray) ? 2 : 1; - if (FROM_LE_16(ah->type) == rtInventory) - var_4 = 2; - else - var_4 = 1; + newSize *= (newX + 1) * (newY + 1); + oldSize *= FROM_LE_16(ah->dim1) * FROM_LE_16(ah->dim2); - cx = var_2 * (newX + 1) * (newY + 1); - ax = var_4 * FROM_LE_16(ah->dim1) * FROM_LE_16(ah->dim2); - - if (ax != cx) + if (newSize != oldSize) error("redimArray: array %d redim mismatch", readVar(arrayId)); ah->type = TO_LE_16(type); |