diff options
Diffstat (limited to 'engines/illusions/actorresource.cpp')
| -rw-r--r-- | engines/illusions/actorresource.cpp | 19 | 
1 files changed, 13 insertions, 6 deletions
diff --git a/engines/illusions/actorresource.cpp b/engines/illusions/actorresource.cpp index 058b093ac6..d3762f96b6 100644 --- a/engines/illusions/actorresource.cpp +++ b/engines/illusions/actorresource.cpp @@ -32,7 +32,7 @@ void ActorResourceLoader::load(Resource *resource) {  	debug("ActorResourceLoader::load() Loading actor %08X from %s...", resource->_resId, resource->_filename.c_str());  	ActorResource *actorResource = new ActorResource(); -	actorResource->load(resource->_data, resource->_dataSize); +	actorResource->load(resource);  	resource->_refId = actorResource;  	ActorItem *actorItem = _vm->_actorItems->allocActorItem(); @@ -151,7 +151,10 @@ ActorResource::ActorResource() {  ActorResource::~ActorResource() {  } -void ActorResource::load(byte *data, uint32 dataSize) { +void ActorResource::load(Resource *resource) { +	byte *data = resource->_data; +	uint32 dataSize = resource->_dataSize; +	  	Common::MemoryReadStream stream(data, dataSize, DisposeAfterUse::NO);  	_totalSize = stream.readUint32LE(); @@ -196,10 +199,14 @@ void ActorResource::load(byte *data, uint32 dataSize) {  	}  	// Load named points -	// The count isn't stored explicitly so calculate it -	uint namedPointsCount = (actorTypesOffs - 0x20) / 8; -	stream.seek(0x20); -	_namedPoints.load(namedPointsCount, stream); +	if (resource->_gameId == kGameIdBBDOU) { +		// The count isn't stored explicitly so calculate it +		uint namedPointsCount = (actorTypesOffs - 0x20) / 8; +		stream.seek(0x20); +		_namedPoints.load(namedPointsCount, stream); +	} +	 +	debug("ActorResource(%08X) framesCount: %d", resource->_resId, framesCount);  }  | 
