aboutsummaryrefslogtreecommitdiff
path: root/costume.cpp
diff options
context:
space:
mode:
authorVincent Hamm2002-02-21 22:48:13 +0000
committerVincent Hamm2002-02-21 22:48:13 +0000
commit1ba81a102eb9a59165638589f36cac034699188e (patch)
treedd53222c39bcab66db7be663f9016f523e7ce712 /costume.cpp
parent3f0e2ed2f23f66fb4c5a04c863ea45ae8eceed4a (diff)
downloadscummvm-rg350-1ba81a102eb9a59165638589f36cac034699188e.tar.gz
scummvm-rg350-1ba81a102eb9a59165638589f36cac034699188e.tar.bz2
scummvm-rg350-1ba81a102eb9a59165638589f36cac034699188e.zip
Partial fix for Zak's costume system
svn-id: r3617
Diffstat (limited to 'costume.cpp')
-rw-r--r--costume.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/costume.cpp b/costume.cpp
index 6f22ca8190..468e056104 100644
--- a/costume.cpp
+++ b/costume.cpp
@@ -786,7 +786,7 @@ void Scumm::cost_decodeData(Actor *a, int frame, uint usemask) {
int anim;
LoadedCostume lc;
- if(_features & GF_OLD256) /*FIXME*/
+ if(_gameId == GID_INDY3_256) /*FIXME*/
return;
loadCostume(&lc, a->costume);
@@ -802,16 +802,24 @@ void Scumm::cost_decodeData(Actor *a, int frame, uint usemask) {
if (r==p) {
return;
}
-
- dataptr = p + READ_LE_UINT16(p + lc._numColors + 8);
+
+ if(_features & GF_OLD256)
+ dataptr = p + *(p + lc._numColors + 8);
+ else
+ dataptr = p + READ_LE_UINT16(p + lc._numColors + 8);
mask = READ_LE_UINT16(r);
r+=2;
i = 0;
do {
if (mask&0x8000) {
- j = READ_LE_UINT16(r);
- r+=2;
+ if(_features & GF_OLD256) {
+ j = *(r);
+ r++;
+ } else {
+ j = READ_LE_UINT16(r);
+ r+=2;
+ }
if (usemask&0x8000) {
if (j==0xFFFF) {
a->cost.curpos[i] = 0xFFFF;