diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/parallaction/animation.cpp | 7 | ||||
-rw-r--r-- | engines/parallaction/walk.cpp | 6 | ||||
-rw-r--r-- | engines/parallaction/zone.h | 8 |
3 files changed, 14 insertions, 7 deletions
diff --git a/engines/parallaction/animation.cpp b/engines/parallaction/animation.cpp index e6b7523649..53021dfbec 100644 --- a/engines/parallaction/animation.cpp +++ b/engines/parallaction/animation.cpp @@ -127,7 +127,6 @@ Animation *Parallaction::parseAnimation(Script& script, Node *list, char *name) strcat(vC8, "tras"); } } - _disk->loadFrames(vC8, &vD0->_cnv); // int16 _ax = _vm->_gfx->loadCnv(vC8, &vD0->_cnv); // if (_ax == -1) exit(-1); @@ -193,8 +192,8 @@ void jobDisplayAnimations(void *parm, Job *j) { if ((v18->_zone._flags & kFlagsActive) && ((v18->_zone._flags & kFlagsRemove) == 0)) { v14._width = v18->width(); v14._height = v18->height(); - v14._data0 = v18->_cnv._array[v18->_frame]; -// v14._data1 = v18->_cnv.field_8[v18->_frame]; + v14._data0 = v18->getFrameData(v18->_frame); +// v14._data1 = v18->_cnv->field_8[v18->_frame]; if (v18->_zone._flags & kFlagsNoMasked) _si = 3; @@ -573,7 +572,7 @@ void jobRunScripts(void *parm, Job *j) { case INST_PUT: // put v18._width = inst->_opBase._a->width(); v18._height = inst->_opBase._a->height(); - v18._data0 = inst->_opBase._a->_cnv._array[inst->_opBase._a->_frame]; + v18._data0 = inst->_opBase._a->getFrameData(inst->_opBase._a->_frame); v18._data1 = NULL; // inst->_opBase._a->_cnv.field_8[inst->_opBase._a->_frame]; if (inst->_flags & kInstMaskedPut) { diff --git a/engines/parallaction/walk.cpp b/engines/parallaction/walk.cpp index d8fb254d36..3529b838e7 100644 --- a/engines/parallaction/walk.cpp +++ b/engines/parallaction/walk.cpp @@ -94,7 +94,7 @@ WalkNode *buildWalkPath(uint16 x, uint16 y) { if (close == right) { to.x += right; - walkData3 = (_vm->_char._ani._cnv._count == 20) ? 7 : 9; + walkData3 = (_vm->_char._ani.getFrameNum() == 20) ? 7 : 9; } else if (close == left) { to.x -= left; @@ -105,7 +105,7 @@ WalkNode *buildWalkPath(uint16 x, uint16 y) { } else if (close == bottom) { to.y += bottom; - walkData3 = (_vm->_char._ani._cnv._count == 20) ? 17 : 21; + walkData3 = (_vm->_char._ani.getFrameNum() == 20) ? 17 : 21; } } @@ -333,7 +333,7 @@ void jobWalk(void *parm, Job *j) { // walk frame selection int16 v16; - if (_vm->_char._ani._cnv._count == 20) { + if (_vm->_char._ani.getFrameNum() == 20) { if (dist.x > dist.y) { walkData2 = (node->_x > _si) ? 0 : 7; diff --git a/engines/parallaction/zone.h b/engines/parallaction/zone.h index b2b109e1f8..f4e8f6fa1f 100644 --- a/engines/parallaction/zone.h +++ b/engines/parallaction/zone.h @@ -227,6 +227,14 @@ struct Animation { uint16 height() const { return _cnv._height; } + + uint16 getFrameNum() { + return _cnv._count; + } + + byte* getFrameData(uint32 index) { + return _cnv.getFramePtr(index); + } }; extern Node _zones; |