aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/palette.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2014-04-12 11:08:50 -0400
committerPaul Gilbert2014-04-12 11:08:50 -0400
commitbb82a344a96bcf63c63ab6a297b83eaefa0383d6 (patch)
tree9a94871d5111b6924ccc58b68f3adfb7e9fe1850 /engines/mads/palette.cpp
parent2a979e59a0481f62d67b8b323c79cccaa6552d0a (diff)
downloadscummvm-rg350-bb82a344a96bcf63c63ab6a297b83eaefa0383d6.tar.gz
scummvm-rg350-bb82a344a96bcf63c63ab6a297b83eaefa0383d6.tar.bz2
scummvm-rg350-bb82a344a96bcf63c63ab6a297b83eaefa0383d6.zip
MADS: Further refactoring for PaletteUsage data arrays
Diffstat (limited to 'engines/mads/palette.cpp')
-rw-r--r--engines/mads/palette.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/engines/mads/palette.cpp b/engines/mads/palette.cpp
index a307a08848..8dfd8f6525 100644
--- a/engines/mads/palette.cpp
+++ b/engines/mads/palette.cpp
@@ -84,6 +84,10 @@ int PaletteUsage::process(Common::Array<RGB6> &palette, uint flags) {
int palHigh = (flags & 0x800) ? 0x100 : 0xFC;
int palIdx;
+ PaletteUsage tempUsage(_vm);
+ Common::Array<UsageEntry> tempUsageData;
+ tempUsage.load(&tempUsageData);
+
if (flags & 0x4000) {
palLow = 0;
palIdx = palHigh;
@@ -111,12 +115,12 @@ int PaletteUsage::process(Common::Array<RGB6> &palette, uint flags) {
}
if (hasUsage) {
- getKeyEntries(palette);
- prioritize(palette);
+ tempUsage.getKeyEntries(palette);
+ tempUsage.prioritize(palette);
}
int freeIndex;
- int palCount = getGamePalFreeIndex(&freeIndex);
+ int palCount = tempUsage.getGamePalFreeIndex(&freeIndex);
Common::Array<UsageRange> palRange;
for (uint palIndex = 0; palIndex < palette.size(); ++palIndex) {
@@ -148,8 +152,8 @@ int PaletteUsage::process(Common::Array<RGB6> &palette, uint flags) {
}
if (hasUsage && palette[v1]._flags & 0x10) {
- for (uint usageIndex = 0; usageIndex < _data->size() && !var48; ++usageIndex) {
- if ((*_data)[usageIndex]._palIndex == palIndex) {
+ for (uint usageIndex = 0; usageIndex < tempUsage._data->size() && !var48; ++usageIndex) {
+ if ((*tempUsage._data)[usageIndex]._palIndex == palIndex) {
var48 = true;
int dataIndex = MIN(usageIndex, _data->size() - 1);
var4 = (*_data)[dataIndex]._palIndex;