aboutsummaryrefslogtreecommitdiff
path: root/scumm/costume.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2005-05-31 22:09:35 +0000
committerEugene Sandulenko2005-05-31 22:09:35 +0000
commit6d0082d29da1a3adb05743d70f11904a282e0938 (patch)
tree0a772ecfcc5988bc7968fd0678593dc9e6d3beeb /scumm/costume.cpp
parentd1ffc9df2d3a907e2de871a9b9b4c81d4af3e55c (diff)
downloadscummvm-rg350-6d0082d29da1a3adb05743d70f11904a282e0938.tar.gz
scummvm-rg350-6d0082d29da1a3adb05743d70f11904a282e0938.tar.bz2
scummvm-rg350-6d0082d29da1a3adb05743d70f11904a282e0938.zip
Some stubs for C64 MM costume code
svn-id: r18304
Diffstat (limited to 'scumm/costume.cpp')
-rw-r--r--scumm/costume.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/scumm/costume.cpp b/scumm/costume.cpp
index e939fc4d93..29e701bd34 100644
--- a/scumm/costume.cpp
+++ b/scumm/costume.cpp
@@ -1009,9 +1009,25 @@ void C64CostumeRenderer::setCostume(int costume) {
_loaded.loadCostume(costume);
}
+static const byte actorColorsMMC64[] = {
+ 0, 7, 2, 6, 9, 1, 3, 7, 7, 1, 1, 9, 1, 4, 5, 5,
+ 4, 1, 0, 5, 4, 2, 2, 7, 7, 0, 6, 6, 6, 6, 6, 6
+};
+
void C64CostumeLoader::loadCostume(int id) {
+ const byte *ptr = _vm->getResourceAddress(rtCostume, id);
_id = id;
- _baseptr = _vm->getResourceAddress(rtCostume, id);
+ _baseptr = ptr + 9;
+
+ _format = 0x57;
+ _numColors = 0;
+ _numAnim = 0;
+ _mirror = 0;
+ _palette = &actorColorsMMC64[id];
+
+ _frameOffsets = _baseptr + READ_LE_UINT16(ptr + 5);
+ _dataOffsets = ptr;
+ _animCmds = _baseptr + READ_LE_UINT16(ptr + 7);
}
void C64CostumeLoader::costumeDecodeData(Actor *a, int frame, uint usemask) {