diff options
author | Vincent Hamm | 2002-02-21 22:48:13 +0000 |
---|---|---|
committer | Vincent Hamm | 2002-02-21 22:48:13 +0000 |
commit | 1ba81a102eb9a59165638589f36cac034699188e (patch) | |
tree | dd53222c39bcab66db7be663f9016f523e7ce712 /costume.cpp | |
parent | 3f0e2ed2f23f66fb4c5a04c863ea45ae8eceed4a (diff) | |
download | scummvm-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.cpp | 18 |
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; |