diff options
| author | Eugene Sandulenko | 2019-07-17 14:32:02 +0200 | 
|---|---|---|
| committer | Eugene Sandulenko | 2019-09-03 17:17:22 +0200 | 
| commit | 9ab298748e15aff4c1c015d2a1590611e75ecece (patch) | |
| tree | b674f9dc72dbae342a5434ba255414a095a73a48 | |
| parent | 5cf1f6a2f9834c8f52bd8e376140ef9882654324 (diff) | |
| download | scummvm-rg350-9ab298748e15aff4c1c015d2a1590611e75ecece.tar.gz scummvm-rg350-9ab298748e15aff4c1c015d2a1590611e75ecece.tar.bz2 scummvm-rg350-9ab298748e15aff4c1c015d2a1590611e75ecece.zip | |
HDB: Fix flag checking across the engien
| -rw-r--r-- | engines/hdb/ai-funcs.cpp | 14 | ||||
| -rw-r--r-- | engines/hdb/map.cpp | 6 | 
2 files changed, 10 insertions, 10 deletions
| diff --git a/engines/hdb/ai-funcs.cpp b/engines/hdb/ai-funcs.cpp index af55d86586..761be53680 100644 --- a/engines/hdb/ai-funcs.cpp +++ b/engines/hdb/ai-funcs.cpp @@ -948,7 +948,7 @@ void AI::animateEntity(AIEntity *e) {  		bgTileFlags = g_hdb->_map->getMapBGTileFlags(e->tileX, e->tileY);  		fgTileFlags = g_hdb->_map->getMapFGTileFlags(e->tileX, e->tileY); -		if (e->level == 1 ? (bgTileFlags & kFlagIce) : ((bgTileFlags & kFlagIce) && !(fgTileFlags & kFlagGrating))) { +		if (e->level == 1 ? ((bgTileFlags & kFlagIce) == kFlagIce) : (((bgTileFlags & kFlagIce) == kFlagIce) && !(fgTileFlags & kFlagGrating))) {  			int xva[] = {9, 0, 0, -1, 1}, yva[] = {9, -1, 1, 0, 0};  			int nx, ny, moveOK = 0;  			AIEntity *hit; @@ -1042,9 +1042,9 @@ void AI::animateEntity(AIEntity *e) {  		bgTileFlags = g_hdb->_map->getMapBGTileFlags(cx, cy);  		fgTileFlags = g_hdb->_map->getMapFGTileFlags(cx, cy);  		if ((bgTileFlags & kFlagPlayerDie) && !(checkFloating(cx, cy)) && !(fgTileFlags & kFlagGrating)) { -			if (bgTileFlags & kFlagEnergyFloor) +			if ((bgTileFlags & kFlagEnergyFloor) == kFlagEnergyFloor)  				killPlayer(DEATH_SHOCKED); -			else if ((bgTileFlags & kFlagPlasmaFloor) || (bgTileFlags & kFlagRadFloor)) +			else if (((bgTileFlags & kFlagPlasmaFloor) == kFlagPlasmaFloor) || ((bgTileFlags & kFlagRadFloor) == kFlagRadFloor))  				killPlayer(DEATH_FRIED);  			else  				killPlayer(DEATH_NORMAL); @@ -1189,7 +1189,7 @@ void AI::animateEntity(AIEntity *e) {  				// If it is a light barrel on a melting floor  				// If it is supposed to slide across the floor  				// If it is being pushed on a floating entity, don't float it -				if (flags & kFlagSlime) { +				if ((flags & kFlagSlime) == kFlagSlime) {  					// unless its a Heavy Barrel in which case it floats in slime  					if ((e->type == AI_CRATE || e->type == AI_HEAVYBARREL) && !checkFloating(e->tileX, e->tileY)) {  						addAnimateTarget(e->x, e->y, 0, 3, ANIM_NORMAL, false, false, GROUP_SLIME_SPLASH_SIT); @@ -1227,7 +1227,7 @@ void AI::animateEntity(AIEntity *e) {  					hit = findEntityIgnore(e->tileX + xv, e->tileY + yv, &_dummyLaser);  					if (!hit) {  						e->state = STATE_SLIDING; -						if (flags & kFlagAnimFast) +						if ((flags & kFlagAnimFast) == kFlagAnimFast)  							e->moveSpeed = kPlayerMoveSpeed << 1;  						else if (flags & kFlagAnimSlow)  							e->moveSpeed = kPlayerMoveSpeed >> 1; @@ -1274,7 +1274,7 @@ void AI::animateEntity(AIEntity *e) {  					}  					if (!checkFloating(e->tileX + xv, e->tileY + yv)) { -						if (flags & kFlagAnimFast) +						if ((flags & kFlagAnimFast) == kFlagAnimFast)  							e->moveSpeed = kPlayerMoveSpeed << 1;  						else if (flags & kFlagAnimMedium)  							e->moveSpeed = kPlayerMoveSpeed; @@ -1319,7 +1319,7 @@ void AI::animateEntity(AIEntity *e) {  			} else if (((flags = g_hdb->_map->getMapBGTileFlags(e->tileX, e->tileY)) & kFlagWater) && (e->type == AI_MAGIC_EGG || e->type == AI_ICE_BLOCK)) {  				// And no foreground tile is there  				if (g_hdb->_map->getMapFGTileIndex(e->tileX, e->tileY) < 0 && !checkFloating(e->tileX, e->tileY)) { -					if (flags & kFlagSlime) { +					if ((flags & kFlagSlime) == kFlagSlime) {  						// Evaporates in Slime  						addAnimateTarget(e->x, e->y, 0, 3, ANIM_NORMAL, false, false, GROUP_STEAM_PUFF_SIT);  						removeEntity(e); diff --git a/engines/hdb/map.cpp b/engines/hdb/map.cpp index fbaa4c98e2..b209332c94 100644 --- a/engines/hdb/map.cpp +++ b/engines/hdb/map.cpp @@ -1021,11 +1021,11 @@ void Map::addFGTileAnimation(int x, int y) {  	uint32 flags = tile->_flags;  	// FOREGROUND -	if (flags & kFlagAnimFast) { +	if ((flags & kFlagAnimFast) == kFlagAnimFast) {  		_listFGAnimFast.push_back(i); -	} else if (flags & kFlagAnimSlow) { +	} else if ((flags & kFlagAnimSlow) == kFlagAnimSlow) {  		_listFGAnimSlow.push_back(i); -	} else if (flags & kFlagAnimMedium) { +	} else if ((flags & kFlagAnimMedium) == kFlagAnimMedium) {  		_listFGAnimMedium.push_back(i);  	}  } | 
