From 73612b897934fd33183ebf3f93658e30f24314cf Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Thu, 28 Nov 2013 15:17:12 -0500 Subject: FULLPIPE: Fix crash at scene04 start --- engines/fullpipe/statics.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'engines/fullpipe/statics.cpp') diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp index c86d5abd08..d14c3d83e2 100644 --- a/engines/fullpipe/statics.cpp +++ b/engines/fullpipe/statics.cpp @@ -152,15 +152,19 @@ StaticANIObject::StaticANIObject(StaticANIObject *src) : GameObject(src) { _statics = 0; for (uint i = 0; i < src->_movements.size(); i++) { - Movement *mov; - if (((Movement *)src->_movements[i])->_currMovement) { - mov = new Movement(getMovementById(src->getMovementIdById(((Movement *)src->_movements[i])->_id)), this); - mov->_id = ((Movement *)src->_movements[i])->_id; + Movement *newmov; + Movement *mov = (Movement *)src->_movements[i]; + + if (mov->_currMovement) { + // WORKAROUND: Original uses weird construction here: + // new Movement(getMovementById(src->getMovementIdById(mov->_id)), this); + newmov = new Movement(src->getMovementById(src->getMovementIdById(mov->_id)), this); + newmov->_id = mov->_id; } else { - mov = new Movement(((Movement *)src->_movements[i]), 0, -1, this); + newmov = new Movement(mov, 0, -1, this); } - _movements.push_back(mov); + _movements.push_back(newmov); } } -- cgit v1.2.3 From 08457dda0d69c15347d9ac61d54f9e35942c32f5 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Fri, 29 Nov 2013 21:07:18 +0200 Subject: FULLPIPE: Fix warning --- engines/fullpipe/statics.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/fullpipe/statics.cpp') diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp index d14c3d83e2..b82875f638 100644 --- a/engines/fullpipe/statics.cpp +++ b/engines/fullpipe/statics.cpp @@ -1235,7 +1235,7 @@ Movement::Movement(Movement *src, int *oldIdxs, int newSize, StaticANIObject *an _m2y = src->_m2y; if (newSize != -1) { - if (newSize >= src->_dynamicPhases.size() + 1) + if (newSize >= (int)src->_dynamicPhases.size() + 1) newSize = src->_dynamicPhases.size() + 1; } else { newSize = src->_dynamicPhases.size(); -- cgit v1.2.3