[Scummvm-git-logs] scummvm master -> ebe014f4be5ef81c95b8c2bdae7928b18ce61c1c

Strangerke Strangerke at scummvm.org
Sun Sep 18 11:28:28 CEST 2016


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
ebe014f4be DM: Rename Creature masks, move SoundMode to sound.h


Commit: ebe014f4be5ef81c95b8c2bdae7928b18ce61c1c
    https://github.com/scummvm/scummvm/commit/ebe014f4be5ef81c95b8c2bdae7928b18ce61c1c
Author: Strangerke (strangerke at scummvm.org)
Date: 2016-09-18T11:18:11+02:00

Commit Message:
DM: Rename Creature masks, move SoundMode to sound.h

Changed paths:
    engines/dm/gfx.cpp
    engines/dm/group.cpp
    engines/dm/group.h
    engines/dm/menus.cpp
    engines/dm/movesens.cpp
    engines/dm/projexpl.cpp
    engines/dm/sounds.h
    engines/dm/timeline.cpp



diff --git a/engines/dm/gfx.cpp b/engines/dm/gfx.cpp
index 974e949..9195258 100644
--- a/engines/dm/gfx.cpp
+++ b/engines/dm/gfx.cpp
@@ -3283,7 +3283,7 @@ T0115015_DrawProjectileAsObject:
 			activeGroup = &_vm->_groupMan->_activeGroups[group->getActiveGroupIndex()];
 			CreatureInfo *creatureInfo = &_vm->_dungeonMan->_creatureInfos[group->_type];
 			creatureAspectStruct = &_creatureAspects219[creatureInfo->_creatureAspectIndex];
-			creatureSize = getFlag(creatureInfo->_attributes, k0x0003_MaskCreatureInfo_size);
+			creatureSize = getFlag(creatureInfo->_attributes, kDMCreatureMaskSize);
 			creatureGraphicInfoGreen = creatureInfo->_graphicInfo;
 		}
 		objectAspect = (ObjectAspect *)creatureAspectStruct;
diff --git a/engines/dm/group.cpp b/engines/dm/group.cpp
index 364523f..95d1188 100644
--- a/engines/dm/group.cpp
+++ b/engines/dm/group.cpp
@@ -110,7 +110,7 @@ int16 GroupMan::getCreatureOrdinalInCell(Group *group, uint16 cell) {
 
 	int retval = 0;
 	byte creatureIndex = group->getCount();
-	if (getFlag(_vm->_dungeonMan->_creatureInfos[group->_type]._attributes, k0x0003_MaskCreatureInfo_size) == k1_MaskCreatureSizeHalf) {
+	if (getFlag(_vm->_dungeonMan->_creatureInfos[group->_type]._attributes, kDMCreatureMaskSize) == k1_MaskCreatureSizeHalf) {
 		if ((getGroupDirections(group, currMapIndex) & 1) == (cell & 1))
 			cell = _vm->turnDirLeft(cell);
 
@@ -140,7 +140,7 @@ uint16 GroupMan::getCreatureValue(uint16 groupVal, uint16 creatureIndex) {
 void GroupMan::dropGroupPossessions(int16 mapX, int16 mapY, Thing groupThing, SoundMode soundMode) {
 	Group *group = (Group *)_vm->_dungeonMan->getThingData(groupThing);
 	CreatureType creatureType = group->_type;
-	if ((soundMode != kDMSoundModeDoNotPlaySound) && getFlag(_vm->_dungeonMan->_creatureInfos[creatureType]._attributes, k0x0200_MaskCreatureInfo_dropFixedPoss)) {
+	if ((soundMode != kDMSoundModeDoNotPlaySound) && getFlag(_vm->_dungeonMan->_creatureInfos[creatureType]._attributes, kDMCreatureMaskDropFixedPoss)) {
 		int16 creatureIndex = group->getCount();
 		uint16 groupCells = getGroupCells(group, _vm->_dungeonMan->_currMapIndex);
 		do {
@@ -388,7 +388,7 @@ Thing GroupMan::groupGetThing(int16 mapX, int16 mapY) {
 int16 GroupMan::groupGetDamageCreatureOutcome(Group *group, uint16 creatureIndex, int16 mapX, int16 mapY, int16 damage, bool notMoving) {
 	CreatureType creatureType = group->_type;
 	CreatureInfo *creatureInfo = &_vm->_dungeonMan->_creatureInfos[creatureType];
-	if (getFlag(creatureInfo->_attributes, k0x2000_MaskCreatureInfo_archenemy)) /* Lord Chaos cannot be damaged */
+	if (getFlag(creatureInfo->_attributes, kDMCreatureMaskArchenemy)) /* Lord Chaos cannot be damaged */
 		return k0_outcomeKilledNoCreaturesInGroup;
 
 	if (group->_health[creatureIndex] <= damage) {
@@ -405,7 +405,7 @@ int16 GroupMan::groupGetDamageCreatureOutcome(Group *group, uint16 creatureIndex
 			retVal = k2_outcomeKilledAllCreaturesInGroup;
 		} else { /* If there are several creatures in the group */
 			uint16 groupDirections = getGroupDirections(group, _vm->_dungeonMan->_currMapIndex);
-			if (getFlag(creatureInfo->_attributes, k0x0200_MaskCreatureInfo_dropFixedPoss)) {
+			if (getFlag(creatureInfo->_attributes, kDMCreatureMaskDropFixedPoss)) {
 				if (notMoving)
 					dropCreatureFixedPossessions(creatureType, mapX, mapY, cell, kDMSoundModePlayOneTickLater);
 				else
@@ -466,7 +466,7 @@ int16 GroupMan::groupGetDamageCreatureOutcome(Group *group, uint16 creatureIndex
 			retVal = k1_outcomeKilledSomeCreaturesInGroup;
 		}
 
-		uint16 creatureSize = getFlag(creatureInfo->_attributes, k0x0003_MaskCreatureInfo_size);
+		uint16 creatureSize = getFlag(creatureInfo->_attributes, kDMCreatureMaskSize);
 		uint16 attack;
 		if (creatureSize == kDMCreatureSizeQuarter)
 			attack = 110;
@@ -619,7 +619,7 @@ T0209005_AddEventAndReturn:
 		return;
 	}
 	/* If the creature is Lord Chaos then ignore the event if the game is won. Initialize data to analyze Fluxcages */
-	bool isArchEnemy = getFlag(creatureInfo._attributes, k0x2000_MaskCreatureInfo_archenemy);
+	bool isArchEnemy = getFlag(creatureInfo._attributes, kDMCreatureMaskArchenemy);
 	if (isArchEnemy) {
 		if (_vm->_gameWon)
 			return;
@@ -662,7 +662,7 @@ T0209005_AddEventAndReturn:
 	}
 	AL0447_i_Behavior = curGroup->getBehaviour();
 	uint16 creatureCount = curGroup->getCount();
-	int16 creatureSize = getFlag(creatureInfo._attributes, k0x0003_MaskCreatureInfo_size);
+	int16 creatureSize = getFlag(creatureInfo._attributes, kDMCreatureMaskSize);
 	AL0450_i_DistanceXToParty = ABS(eventMapX - _vm->_dungeonMan->_partyMapX);
 	AL0451_i_DistanceYToParty = ABS(eventMapY - _vm->_dungeonMan->_partyMapY);
 	_currentGroupMapX = eventMapX;
@@ -977,14 +977,14 @@ T0209096_SetBehavior0_Wander:
 				}
 				/* If the creature can see the party and is looking in the party direction or can attack in all direction */
 				if (distanceToVisibleParty &&
-					(getFlag(creatureInfo._attributes, k0x0004_MaskCreatureInfo_sideAttack) ||
+					(getFlag(creatureInfo._attributes, kDMCreatureMaskSideAttack) ||
 					 getCreatureValue(activeGroup->_directions, AL0447_i_CreatureIndex) == primaryDirectionToOrFromParty)) {
 					/* If the creature is in range to attack the party and random test succeeds */
 					if ((distanceToVisibleParty <= (AL0446_i_Range = creatureInfo.getAttackRange())) &&
 						(!AL0450_i_DistanceXToParty || !AL0451_i_DistanceYToParty) &&
 						(AL0446_i_Range <= (_vm->getRandomNumber(16) + 1))) {
 						if ((AL0446_i_Range == 1) &&
-							(!getFlag(AL0446_i_CreatureAttributes = creatureInfo._attributes, k0x0008_MaskCreatureInfo_preferBackRow) || !_vm->getRandomNumber(4) || !getFlag(AL0446_i_CreatureAttributes, k0x0010_MaskCreatureInfo_attackAnyChamp)) &&
+							(!getFlag(AL0446_i_CreatureAttributes = creatureInfo._attributes, kDMCreatureMaskPreferBackRow) || !_vm->getRandomNumber(4) || !getFlag(AL0446_i_CreatureAttributes, kDMCreatureMaskAttackAnyChamp)) &&
 							(creatureSize == kDMCreatureSizeQuarter) &&
 							(activeGroup->_cells != k255_CreatureTypeSingleCenteredCreature) &&
 							((AL0446_i_Cell = getCreatureValue(activeGroup->_cells, AL0447_i_CreatureIndex)) != primaryDirectionToOrFromParty) &&
@@ -1073,13 +1073,13 @@ bool GroupMan::isMovementPossible(CreatureInfo *creatureInfo, int16 mapX, int16
 		 ((mapY >= 0) && (mapY < _vm->_dungeonMan->_currMapHeight)) &&
 		  (curSquareType != kDMElementTypeWall) &&
 		  (curSquareType != kDMElementTypeStairs) &&
-		 ((curSquareType != kDMElementTypePit) || (getFlag(curSquare, kDMSquareMaskPitImaginary) && allowMovementOverImaginaryPitsAndFakeWalls) || !getFlag(curSquare, kDMSquareMaskPitOpen) || getFlag(creatureInfo->_attributes, k0x0020_MaskCreatureInfo_levitation)) &&
+		 ((curSquareType != kDMElementTypePit) || (getFlag(curSquare, kDMSquareMaskPitImaginary) && allowMovementOverImaginaryPitsAndFakeWalls) || !getFlag(curSquare, kDMSquareMaskPitOpen) || getFlag(creatureInfo->_attributes, kDMCreatureMaskLevitation)) &&
 		 ((curSquareType != kDMElementTypeFakeWall) || getFlag(curSquare, kDMSquareMaskFakeWallOpen) || (getFlag(curSquare, kDMSquareMaskFakeWallImaginary) && allowMovementOverImaginaryPitsAndFakeWalls)));
 
 	if (_groupMovBlockedByWallStairsPitFakeWalFluxCageTeleporter)
 		return false;
 
-	if (getFlag(creatureInfo->_attributes, k0x2000_MaskCreatureInfo_archenemy)) {
+	if (getFlag(creatureInfo->_attributes, kDMCreatureMaskArchenemy)) {
 		Thing curThing = _vm->_dungeonMan->getSquareFirstThing(mapX, mapY);
 		while (curThing != Thing::_endOfList) {
 			if ((curThing).getType() == kDMThingTypeExplosion) {
@@ -1108,7 +1108,7 @@ bool GroupMan::isMovementPossible(CreatureInfo *creatureInfo, int16 mapX, int16
 
 	if (curSquareType == kDMElementTypeDoor) {
 		Teleporter *curTeleporter = (Teleporter *)_vm->_dungeonMan->getSquareFirstThingData(mapX, mapY);
-		if (((Square(curSquare).getDoorState()) > (((Door *)curTeleporter)->opensVertically() ? CreatureInfo::getHeight(creatureInfo->_attributes) : 1)) && ((Square(curSquare).getDoorState()) != kDMDoorStateDestroyed) && !getFlag(creatureInfo->_attributes, k0x0040_MaskCreatureInfo_nonMaterial)) {
+		if (((Square(curSquare).getDoorState()) > (((Door *)curTeleporter)->opensVertically() ? CreatureInfo::getHeight(creatureInfo->_attributes) : 1)) && ((Square(curSquare).getDoorState()) != kDMDoorStateDestroyed) && !getFlag(creatureInfo->_attributes, kDMCreatureMaskNonMaterial)) {
 			_groupMovementBlockedByDoor = true;
 			return false;
 		}
@@ -1125,13 +1125,13 @@ int16 GroupMan::getDistanceBetweenSquares(int16 srcMapX, int16 srcMapY, int16 de
 int16 GroupMan::groupGetDistanceToVisibleParty(Group *group, int16 creatureIndex, int16 mapX, int16 mapY) {
 	uint16 groupDirections;
 	CreatureInfo *groupCreatureInfo = &_vm->_dungeonMan->_creatureInfos[group->_type];
-	if (_vm->_championMan->_party._event71Count_Invisibility && !getFlag(groupCreatureInfo->_attributes, k0x0800_MaskCreatureInfo_seeInvisible))
+	if (_vm->_championMan->_party._event71Count_Invisibility && !getFlag(groupCreatureInfo->_attributes, kDMCreatureMaskSeeInvisible))
 		return 0;
 
 	bool alwaysSee = false;
 	int16 checkDirectionsCount; /* Count of directions to test in L0425_ai_CreatureViewDirections */
 	int16 creatureViewDirections[4]; /* List of directions to test */
-	if (getFlag(groupCreatureInfo->_attributes, k0x0004_MaskCreatureInfo_sideAttack)) { /* If creature can see in all directions */
+	if (getFlag(groupCreatureInfo->_attributes, kDMCreatureMaskSideAttack)) { /* If creature can see in all directions */
 		alwaysSee = true;
 		checkDirectionsCount = 1;
 		creatureViewDirections[0] = kDMDirNorth;
@@ -1161,7 +1161,7 @@ int16 GroupMan::groupGetDistanceToVisibleParty(Group *group, int16 creatureIndex
 	while (checkDirectionsCount--) {
 		if (alwaysSee || isDestVisibleFromSource(creatureViewDirections[checkDirectionsCount], mapX, mapY, _vm->_dungeonMan->_partyMapX, _vm->_dungeonMan->_partyMapY)) {
 			int16 sightRange = groupCreatureInfo->getSightRange();
-			if (!getFlag(groupCreatureInfo->_attributes, k0x1000_MaskCreatureInfo_nightVision))
+			if (!getFlag(groupCreatureInfo->_attributes, kDMCreatureMaskNightVision))
 				sightRange -= _vm->_displayMan->_dungeonViewPaletteIndex >> 1;
 
 			if (_currGroupDistanceToParty > MAX<int16>(1, sightRange))
@@ -1478,7 +1478,7 @@ bool GroupMan::isCreatureAttacking(Group *group, int16 mapX, int16 mapY, uint16
 		_vm->_projexpl->createProjectile(projectileThing, mapX, mapY, targetCell, (Direction)_currGroupPrimaryDirToParty, CLIP<byte>(20, kineticEnergy, 255), creatureInfo->_dexterity, 8);
 	} else {
 		int16 championIndex;
-		if (getFlag(creatureInfo->_attributes, k0x0010_MaskCreatureInfo_attackAnyChamp)) {
+		if (getFlag(creatureInfo->_attributes, kDMCreatureMaskAttackAnyChamp)) {
 			championIndex = _vm->getRandomNumber(4);
 			int cpt;
 			for (cpt = 0; (cpt < 4) && !_vm->_championMan->_champions[championIndex]._currHealth; cpt++)
@@ -1752,7 +1752,7 @@ Thing GroupMan::groupGetGenerated(CreatureType creatureType, int16 healthMultipl
 		group->_health[creatureCount] = (baseHealth * healthMultiplier) + _vm->getRandomNumber((baseHealth >> 2) + 1);
 		if (severalCreaturesInGroup) {
 			groupCells = getGroupValueUpdatedWithCreatureValue(groupCells, creatureCount, cell++);
-			if (getFlag(creatureInfo->_attributes, k0x0003_MaskCreatureInfo_size) == k1_MaskCreatureSizeHalf)
+			if (getFlag(creatureInfo->_attributes, kDMCreatureMaskSize) == k1_MaskCreatureSizeHalf)
 				cell++;
 
 			cell &= 0x0003;
@@ -1814,7 +1814,7 @@ int16 GroupMan::getMeleeActionDamage(Champion *champ, int16 champIndex, Group *g
 	if (actionHitsNonMaterialCreatures)
 		clearFlag(actionHitProbability, k0x8000_hitNonMaterialCreatures);
 
-	if ((!getFlag(creatureInfo->_attributes, k0x0040_MaskCreatureInfo_nonMaterial) || actionHitsNonMaterialCreatures) &&
+	if ((!getFlag(creatureInfo->_attributes, kDMCreatureMaskNonMaterial) || actionHitsNonMaterialCreatures) &&
 		((_vm->_championMan->getDexterity(champ) > (_vm->getRandomNumber(32) + creatureInfo->_dexterity + doubledMapDifficulty - 16)) ||
 		(!_vm->getRandomNumber(4)) ||
 		 (_vm->_championMan->isLucky(champ, 75 - actionHitProbability)))) {
@@ -1854,7 +1854,7 @@ T0231009:
 		L0565_i_Damage >>= 2;
 		L0565_i_Damage += _vm->getRandomNumber(4) + 1;
 		if ((actionHandObjectIconIndex == kDMIconIndiceWeaponVorpalBlade)
-			&& !getFlag(creatureInfo->_attributes, k0x0040_MaskCreatureInfo_nonMaterial)
+			&& !getFlag(creatureInfo->_attributes, kDMCreatureMaskNonMaterial)
 			&& !(L0565_i_Damage >>= 1))
 			goto T0231015;
 
diff --git a/engines/dm/group.h b/engines/dm/group.h
index 8d63bd7..08ce611 100644
--- a/engines/dm/group.h
+++ b/engines/dm/group.h
@@ -29,6 +29,7 @@
 #define DM_GROUP_H
 
 #include "dm/dm.h"
+#include "dm/sounds.h"
 
 namespace DM {
 	class Champion;
@@ -73,30 +74,22 @@ enum CreatureSize {
 	k2_MaskCreatureSizeFull = 2 // @ C2_SIZE_FULL_SQUARE   
 };
 
-#define k0x0003_MaskCreatureInfo_size 0x0003 // @ MASK0x0003_SIZE                     
-#define k0x0004_MaskCreatureInfo_sideAttack 0x0004 // @ MASK0x0004_SIDE_ATTACK              
-#define k0x0008_MaskCreatureInfo_preferBackRow 0x0008 // @ MASK0x0008_PREFER_BACK_ROW          
-#define k0x0010_MaskCreatureInfo_attackAnyChamp 0x0010 // @ MASK0x0010_ATTACK_ANY_CHAMPION      
-#define k0x0020_MaskCreatureInfo_levitation 0x0020 // @ MASK0x0020_LEVITATION               
-#define k0x0040_MaskCreatureInfo_nonMaterial 0x0040 // @ MASK0x0040_NON_MATERIAL             
-#define k0x0200_MaskCreatureInfo_dropFixedPoss 0x0200 // @ MASK0x0200_DROP_FIXED_POSSESSIONS   
-#define k0x0400_MaskCreatureInfo_keepThrownSharpWeapon 0x0400 // @ MASK0x0400_KEEP_THROWN_SHARP_WEAPONS
-#define k0x0800_MaskCreatureInfo_seeInvisible 0x0800 // @ MASK0x0800_SEE_INVISIBLE            
-#define k0x1000_MaskCreatureInfo_nightVision 0x1000 // @ MASK0x1000_NIGHT_VISION             
-#define k0x2000_MaskCreatureInfo_archenemy 0x2000 // @ MASK0x2000_ARCHENEMY                
-#define k0x4000_MaskCreatureInfo_magicmap 0x4000 // @ MASK0x4000_MAGICMAP  
-
+#define kDMCreatureMaskSize 0x0003 // @ MASK0x0003_SIZE                     
+#define kDMCreatureMaskSideAttack 0x0004 // @ MASK0x0004_SIDE_ATTACK              
+#define kDMCreatureMaskPreferBackRow 0x0008 // @ MASK0x0008_PREFER_BACK_ROW          
+#define kDMCreatureMaskAttackAnyChamp 0x0010 // @ MASK0x0010_ATTACK_ANY_CHAMPION      
+#define kDMCreatureMaskLevitation 0x0020 // @ MASK0x0020_LEVITATION               
+#define kDMCreatureMaskNonMaterial 0x0040 // @ MASK0x0040_NON_MATERIAL             
+#define kDMCreatureMaskDropFixedPoss 0x0200 // @ MASK0x0200_DROP_FIXED_POSSESSIONS   
+#define kDMCreatureMaskKeepThrownSharpWeapon 0x0400 // @ MASK0x0400_KEEP_THROWN_SHARP_WEAPONS
+#define kDMCreatureMaskSeeInvisible 0x0800 // @ MASK0x0800_SEE_INVISIBLE            
+#define kDMCreatureMaskNightVision 0x1000 // @ MASK0x1000_NIGHT_VISION             
+#define kDMCreatureMaskArchenemy 0x2000 // @ MASK0x2000_ARCHENEMY                
+#define kDMCreatureMaskMagicMap 0x4000 // @ MASK0x4000_MAGICMAP  
 
 #define k0x0040_MaskActiveGroupFlipBitmap 0x0040 // @ MASK0x0040_FLIP_BITMAP  
 #define k0x0080_MaskActiveGroupIsAttacking 0x0080 // @ MASK0x0080_IS_ATTACKING 
 
-enum SoundMode {
-	kDMSoundModeDoNotPlaySound = -1, // @ CM1_MODE_DO_NOT_PLAY_SOUND
-	kDMSoundModePlayImmediately = 0, // @ C00_MODE_PLAY_IMMEDIATELY
-	kDMSoundModePlayIfPrioritized = 1, // @ C01_MODE_PLAY_IF_PRIORITIZED
-	kDMSoundModePlayOneTickLater = 2 // @ C02_MODE_PLAY_ONE_TICK_LATER
-};
-
 class ActiveGroup {
 public:
 	int16 _groupThingIndex;
diff --git a/engines/dm/menus.cpp b/engines/dm/menus.cpp
index 2e5f92f..4a41136 100644
--- a/engines/dm/menus.cpp
+++ b/engines/dm/menus.cpp
@@ -1502,7 +1502,7 @@ bool MenuMan::isMeleeActionPerformed(int16 champIndex, Champion *champ, int16 ac
 			break;
 		}
 
-		if ((actionIndex == kDMActionDisrupt) && !getFlag(_vm->_dungeonMan->getCreatureAttributes(_actionTargetGroupThing), k0x0040_MaskCreatureInfo_nonMaterial))
+		if ((actionIndex == kDMActionDisrupt) && !getFlag(_vm->_dungeonMan->getCreatureAttributes(_actionTargetGroupThing), kDMCreatureMaskNonMaterial))
 			return false;
 
 		uint16 actionHitProbability = actionHitProbabilityArray[actionIndex];
diff --git a/engines/dm/movesens.cpp b/engines/dm/movesens.cpp
index ee9b9e9..b80f006 100644
--- a/engines/dm/movesens.cpp
+++ b/engines/dm/movesens.cpp
@@ -487,7 +487,7 @@ bool MovesensMan::isLevitating(Thing thing) {
 	ThingType thingType = thing.getType();
 	bool retVal = false;
 	if (thingType == kDMThingTypeGroup)
-		retVal = getFlag(_vm->_dungeonMan->getCreatureAttributes(thing), k0x0020_MaskCreatureInfo_levitation);
+		retVal = getFlag(_vm->_dungeonMan->getCreatureAttributes(thing), kDMCreatureMaskLevitation);
 	else if ((thingType == kDMThingTypeProjectile) || (thingType == kDMThingTypeExplosion))
 	// Fix original bug involving explosions falling in pits
 		retVal = true;
@@ -655,7 +655,7 @@ int16 MovesensMan::getTeleporterRotatedGroupResult(Teleporter *teleporter, Thing
 	uint16 updatedGroupCells = _vm->_groupMan->getGroupCells(group, mapIndex);
 	if (updatedGroupCells != k255_CreatureTypeSingleCenteredCreature) {
 		int16 groupCells = updatedGroupCells;
-		int16 creatureSize = getFlag(_vm->_dungeonMan->_creatureInfos[group->_type]._attributes, k0x0003_MaskCreatureInfo_size);
+		int16 creatureSize = getFlag(_vm->_dungeonMan->_creatureInfos[group->_type]._attributes, kDMCreatureMaskSize);
 		int16 relativeRotation = _vm->normalizeModulo4(4 + updatedGroupDirections - groupDirections);
 		for (int16 creatureIdx = 0; creatureIdx <= group->getCount(); creatureIdx++) {
 			updatedGroupDirections = _vm->_groupMan->getGroupValueUpdatedWithCreatureValue(updatedGroupDirections, creatureIdx, absoluteRotation ? (uint16)rotation : _vm->normalizeModulo4(groupDirections + rotation));
diff --git a/engines/dm/projexpl.cpp b/engines/dm/projexpl.cpp
index d19247b..33ae021 100644
--- a/engines/dm/projexpl.cpp
+++ b/engines/dm/projexpl.cpp
@@ -170,7 +170,7 @@ bool ProjExpl::hasProjectileImpactOccurred(int16 impactType, int16 mapXCombo, in
 			*curCreatureHealth = MIN(1000, *curCreatureHealth + getProjectileImpactAttack(projectileThingData, projectileAssociatedThing));
 			goto T0217044;
 		}
-		if (getFlag(curCreatureInfo->_attributes, k0x0040_MaskCreatureInfo_nonMaterial) && (projectileAssociatedThing != Thing::_explHarmNonMaterial))
+		if (getFlag(curCreatureInfo->_attributes, kDMCreatureMaskNonMaterial) && (projectileAssociatedThing != Thing::_explHarmNonMaterial))
 			return false;
 
 		attack = (uint16)((unsigned long)getProjectileImpactAttack(projectileThingData, projectileAssociatedThing) << 6) / curCreatureInfo->_defense;
@@ -182,7 +182,7 @@ bool ProjExpl::hasProjectileImpactOccurred(int16 impactType, int16 mapXCombo, in
 			_creatureDamageOutcome = outcome;
 			if (!createExplosionOnImpact && (outcome == k0_outcomeKilledNoCreaturesInGroup)
 			&& (projectileAssociatedThingType == kDMThingTypeWeapon)
-			&& getFlag(curCreatureInfo->_attributes, k0x0400_MaskCreatureInfo_keepThrownSharpWeapon)) {
+			&& getFlag(curCreatureInfo->_attributes, kDMCreatureMaskKeepThrownSharpWeapon)) {
 				Weapon *weapon = (Weapon *)_vm->_dungeonMan->getThingData(projectileAssociatedThing);
 				WeaponType weaponType = weapon->getType();
 				if ((weaponType == kDMWeaponDagger) || (weaponType == kDMWeaponArrow)
@@ -334,7 +334,7 @@ void ProjExpl::createExplosion(Thing explThing, uint16 attack, uint16 mapXCombo,
 					CreatureInfo *creatureInfo = &_vm->_dungeonMan->_creatureInfos[creatureGroup->_type];
 					int16 creatureFireResistance = creatureInfo->getFireResistance();
 					if (creatureFireResistance != kDMImmuneToFire) {
-						if (getFlag(creatureInfo->_attributes, k0x0040_MaskCreatureInfo_nonMaterial))
+						if (getFlag(creatureInfo->_attributes, kDMCreatureMaskNonMaterial))
 							attack >>= 2;
 
 						if ((attack -= _vm->getRandomNumber((creatureFireResistance << 1) + 1)) > 0)
@@ -508,7 +508,7 @@ void ProjExpl::processEvent25(TimelineEvent *event) {
 
 		break;
 	case 0xFF83:
-		if ((groupThing != Thing::_endOfList) && getFlag(creatureInfo->_attributes, k0x0040_MaskCreatureInfo_nonMaterial)) {
+		if ((groupThing != Thing::_endOfList) && getFlag(creatureInfo->_attributes, kDMCreatureMaskNonMaterial)) {
 			if ((creatureType == kDMCreatureTypeMaterializerZytaz) && (_vm->_dungeonMan->_currMapIndex == _vm->_dungeonMan->_partyMapIndex)) {
 				int16 nonMaterialAdditionalAttack = attack >> 3;
 				attack -= nonMaterialAdditionalAttack;
diff --git a/engines/dm/sounds.h b/engines/dm/sounds.h
index 92b9340..fe0c0f4 100644
--- a/engines/dm/sounds.h
+++ b/engines/dm/sounds.h
@@ -32,6 +32,13 @@
 
 namespace DM {
 
+enum SoundMode {
+	kDMSoundModeDoNotPlaySound = -1, // @ CM1_MODE_DO_NOT_PLAY_SOUND
+	kDMSoundModePlayImmediately = 0, // @ C00_MODE_PLAY_IMMEDIATELY
+	kDMSoundModePlayIfPrioritized = 1, // @ C01_MODE_PLAY_IF_PRIORITIZED
+	kDMSoundModePlayOneTickLater = 2 // @ C02_MODE_PLAY_ONE_TICK_LATER
+};
+
 #define k34_D13_soundCount 34 // @ D13_SOUND_COUNT
 
 class SoundData {
diff --git a/engines/dm/timeline.cpp b/engines/dm/timeline.cpp
index c502481..8c3f11c 100644
--- a/engines/dm/timeline.cpp
+++ b/engines/dm/timeline.cpp
@@ -410,7 +410,7 @@ void Timeline::processEventDoorAnimation(TimelineEvent *event) {
 		}
 		Thing groupThing = _vm->_groupMan->groupGetThing(mapX, mapY);
 		uint16 creatureAttributes = _vm->_dungeonMan->getCreatureAttributes(groupThing);
-		if ((groupThing != Thing::_endOfList) && !getFlag(creatureAttributes, k0x0040_MaskCreatureInfo_nonMaterial)) {
+		if ((groupThing != Thing::_endOfList) && !getFlag(creatureAttributes, kDMCreatureMaskNonMaterial)) {
 			if (doorState >= (verticalDoorFl ? CreatureInfo::getHeight(creatureAttributes) : 1)) { /* Creature height or 1 */
 				if (_vm->_groupMan->getDamageAllCreaturesOutcome((Group *)_vm->_dungeonMan->getThingData(groupThing), mapX, mapY, 5, true) != k2_outcomeKilledAllCreaturesInGroup)
 					_vm->_groupMan->processEvents29to41(mapX, mapY, kM3_TMEventTypeCreateReactionEvent29DangerOnSquare, 0);
@@ -460,7 +460,7 @@ void Timeline::processEventSquareFakewall(TimelineEvent *event) {
 			addEventGetEventIndex(event);
 		} else {
 			Thing groupThing = _vm->_groupMan->groupGetThing(mapX, mapY);
-			if ((groupThing != Thing::_endOfList) && !getFlag(_vm->_dungeonMan->getCreatureAttributes(groupThing), k0x0040_MaskCreatureInfo_nonMaterial)) {
+			if ((groupThing != Thing::_endOfList) && !getFlag(_vm->_dungeonMan->getCreatureAttributes(groupThing), kDMCreatureMaskNonMaterial)) {
 				event->_mapTime++;
 				addEventGetEventIndex(event);
 			} else





More information about the Scummvm-git-logs mailing list