diff options
| -rw-r--r-- | engines/dreamweb/object.cpp | 6 | ||||
| -rw-r--r-- | engines/dreamweb/structs.h | 8 | ||||
| -rw-r--r-- | engines/dreamweb/stubs.cpp | 16 | 
3 files changed, 17 insertions, 13 deletions
| diff --git a/engines/dreamweb/object.cpp b/engines/dreamweb/object.cpp index 5bdfc07496..e4abac14f2 100644 --- a/engines/dreamweb/object.cpp +++ b/engines/dreamweb/object.cpp @@ -311,11 +311,11 @@ byte DreamGenContext::getOpenedSizeCPP() {  	byte obj = data.byte(kOpenedob);  	switch (data.byte(kOpenedtype)) {  	case 4: -		return getExAd(obj)->b8; +		return getExAd(obj)->slotCount;  	case 2: -		return getFreeAd(obj)->b8; +		return getFreeAd(obj)->slotCount;  	default: -		return getSetAd(obj)->b4; +		return getSetAd(obj)->slotCount;  	}  } diff --git a/engines/dreamweb/structs.h b/engines/dreamweb/structs.h index 30962a272c..28c462ef7d 100644 --- a/engines/dreamweb/structs.h +++ b/engines/dreamweb/structs.h @@ -76,8 +76,8 @@ struct SetObject {  	uint8 b0;  	uint8 b1;  	uint8 b2; -	uint8 b3; -	uint8 b4; +	uint8 slotSize; +	uint8 slotCount;  	uint8 priority;  	uint8 b6;  	uint8 delay; @@ -125,8 +125,8 @@ struct DynObject {  	uint8 currentLocation;  	uint8 index;  	uint8 mapad[5]; -	uint8 b7; -	uint8 b8; +	uint8 slotSize; +	uint8 slotCount;  	uint8 b9;  	uint8 b10;  	uint8 initialLocation; diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 21d1038f3c..1ba88405bc 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -1363,18 +1363,22 @@ DynObject *DreamBase::getEitherAdCPP() {  void *DreamBase::getAnyAd(uint8 *value1, uint8 *value2) {  	if (data.byte(kObjecttype) == 4) {  		DynObject *exObject = getExAd(data.byte(kCommand)); -		*value1 = exObject->b7; -		*value2 = exObject->b8; +		*value1 = exObject->slotSize; +		*value2 = exObject->slotCount;  		return exObject;  	} else if (data.byte(kObjecttype) == 2) {  		DynObject *freeObject = getFreeAd(data.byte(kCommand)); -		*value1 = freeObject->b7; -		*value2 = freeObject->b8; +		*value1 = freeObject->slotSize; +		*value2 = freeObject->slotCount;  		return freeObject;  	} else {  		SetObject *setObject = getSetAd(data.byte(kCommand)); -		*value1 = setObject->b4; -		*value2 = setObject->priority; +		// Note: the original returned slotCount/priority (bytes 4 and 5) +		// instead of slotSize/slotCount (bytes 3 and 4). +		// Changed this for consistency with the Ex/Free cases, and also +		// with getOpenedSize() +		*value1 = setObject->slotSize; +		*value2 = setObject->slotCount;  		return setObject;  	}  } | 
