[Scummvm-git-logs] scummvm master -> 216376477a5b3eb35e3f3450461b284ecfed8244

csnover csnover at users.noreply.github.com
Fri Nov 10 16:57:21 CET 2017


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

Summary:
2de83e0937 COMMON: Use C++11 static_assert when available
51329c0dc6 ALL: Fix misuse of comma operator
972c453986 BBVS: Remove all bit shifts of potentially negative integers
216376477a CGE: Remove garbage character from comments


Commit: 2de83e09374abd10700e5f2bc4671318f182980b
    https://github.com/scummvm/scummvm/commit/2de83e09374abd10700e5f2bc4671318f182980b
Author: Colin Snover (github.com at zetafleet.com)
Date: 2017-11-10T09:56:43-06:00

Commit Message:
COMMON: Use C++11 static_assert when available

This improves the output of static assertions in all compilers,
and prevents problems in MSVC 2015 where the mechanism for
triggering a compilation error in C++98 mode may cause errors when
that compiler builds in release mode.

Fixes Trac#10154.

Changed paths:
    common/scummsys.h


diff --git a/common/scummsys.h b/common/scummsys.h
index 4740127..5486ba2 100644
--- a/common/scummsys.h
+++ b/common/scummsys.h
@@ -154,6 +154,7 @@
 #endif
 
 #ifndef STATIC_ASSERT
+#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER > 1600)
 	/**
 	 * Generates a compile-time assertion.
 	 *
@@ -162,8 +163,21 @@
 	 * time if the expression evaluates to false.
 	 */
 	#define STATIC_ASSERT(expression, message) \
-		extern int STATIC_ASSERT_##message[(expression) ? 1 : -1]; \
-		(void)(STATIC_ASSERT_##message);
+		static_assert((expression), #message)
+#else
+	/**
+	 * Generates a compile-time assertion.
+	 *
+	 * @param expression An expression that can be evaluated at compile time.
+	 * @param message An underscore-delimited message to be presented at compile
+	 * time if the expression evaluates to false.
+	 */
+	#define STATIC_ASSERT(expression, message) \
+		do { \
+			extern int STATIC_ASSERT_##message[(expression) ? 1 : -1]; \
+			(void)(STATIC_ASSERT_##message); \
+		} while (false)
+#endif
 #endif
 
 // The following math constants are usually defined by the system math.h header, but


Commit: 51329c0dc6ee56d8b843f058aa3257ec9f30b71a
    https://github.com/scummvm/scummvm/commit/51329c0dc6ee56d8b843f058aa3257ec9f30b71a
Author: Colin Snover (github.com at zetafleet.com)
Date: 2017-11-10T09:57:03-06:00

Commit Message:
ALL: Fix misuse of comma operator

Changed paths:
    engines/cruise/actor.cpp
    engines/cruise/sound.cpp
    engines/director/detection.cpp
    engines/dm/champion.cpp
    engines/dm/dm.cpp
    engines/dm/eventman.cpp
    engines/dm/group.cpp
    engines/dm/menus.cpp
    engines/dm/movesens.cpp
    engines/dm/projexpl.cpp
    engines/gob/util.cpp
    engines/saga/isomap.cpp
    engines/scumm/scumm.cpp
    engines/sludge/transition.cpp
    engines/toon/script_func.cpp
    graphics/pixelformat.h
    gui/ThemeParser.cpp


diff --git a/engines/cruise/actor.cpp b/engines/cruise/actor.cpp
index 7d5c16c..84a8d4e 100644
--- a/engines/cruise/actor.cpp
+++ b/engines/cruise/actor.cpp
@@ -433,7 +433,8 @@ void chemin0(int depart, int arrivee) {
 	for (int i = 0; i < 20 + 1; i++)
 		fl[i] = -1;
 
-	X = 0, Y = 30;
+	X = 0;
+	Y = 30;
 
 	explore(depart, arrivee);
 }
diff --git a/engines/cruise/sound.cpp b/engines/cruise/sound.cpp
index b477dcd..57dcfce 100644
--- a/engines/cruise/sound.cpp
+++ b/engines/cruise/sound.cpp
@@ -41,7 +41,11 @@ class PCSoundDriver {
 public:
 	typedef void (*UpdateCallback)(void *);
 
-	PCSoundDriver() { _upCb = NULL, _upRef = NULL, _musicVolume = 0, _sfxVolume = 0; }
+	PCSoundDriver() :
+		_upCb(nullptr),
+		_upRef(nullptr),
+		_musicVolume(0),
+		_sfxVolume(0) {}
 	virtual ~PCSoundDriver() {}
 
 	virtual void setupChannel(int channel, const byte *data, int instrument, int volume) = 0;
diff --git a/engines/director/detection.cpp b/engines/director/detection.cpp
index a3f9b7c..16d838f 100644
--- a/engines/director/detection.cpp
+++ b/engines/director/detection.cpp
@@ -100,7 +100,7 @@ class DirectorMetaEngine : public AdvancedMetaEngine {
 public:
 	DirectorMetaEngine() : AdvancedMetaEngine(Director::gameDescriptions, sizeof(Director::DirectorGameDescription), directorGames) {
 		_singleId = "director";
-		_maxScanDepth = 2,
+		_maxScanDepth = 2;
 		_directoryGlobs = directoryGlobs;
 	}
 
diff --git a/engines/dm/champion.cpp b/engines/dm/champion.cpp
index 646e7ce..5c08acd 100644
--- a/engines/dm/champion.cpp
+++ b/engines/dm/champion.cpp
@@ -2015,7 +2015,8 @@ void ChampionMan::addCandidateChampionToParty(uint16 championPortraitIndex) {
 	int16 curMapX = dungeon._partyMapX;
 	int16 curMapY = dungeon._partyMapY;
 	uint16 championObjectsCell = _vm->returnOppositeDir(dungeon._partyDir);
-	curMapX += _vm->_dirIntoStepCountEast[dungeon._partyDir], curMapY += _vm->_dirIntoStepCountNorth[dungeon._partyDir];
+	curMapX += _vm->_dirIntoStepCountEast[dungeon._partyDir];
+	curMapY += _vm->_dirIntoStepCountNorth[dungeon._partyDir];
 	curThing = dungeon.getSquareFirstThing(curMapX, curMapY);
 	int16 slotIdx = kDMSlotBackpackLine1_1;
 	while (curThing != _vm->_thingEndOfList) {
diff --git a/engines/dm/dm.cpp b/engines/dm/dm.cpp
index 4c19ab0..29ba665 100644
--- a/engines/dm/dm.cpp
+++ b/engines/dm/dm.cpp
@@ -922,7 +922,8 @@ void DMEngine::fuseSequence() {
 	fuseSequenceUpdate();
 	int16 lordChaosMapX = _dungeonMan->_partyMapX;
 	int16 lordChaosMapY = _dungeonMan->_partyMapY;
-	lordChaosMapX += _dirIntoStepCountEast[_dungeonMan->_partyDir], lordChaosMapY += _dirIntoStepCountNorth[_dungeonMan->_partyDir];
+	lordChaosMapX += _dirIntoStepCountEast[_dungeonMan->_partyDir];
+	lordChaosMapY += _dirIntoStepCountNorth[_dungeonMan->_partyDir];
 	Thing lordChaosThing = _groupMan->groupGetThing(lordChaosMapX, lordChaosMapY);
 	Group *lordGroup = (Group*)_dungeonMan->getThingData(lordChaosThing);
 	lordGroup->_health[0] = 10000;
diff --git a/engines/dm/eventman.cpp b/engines/dm/eventman.cpp
index 3859fc9..f424672 100644
--- a/engines/dm/eventman.cpp
+++ b/engines/dm/eventman.cpp
@@ -1369,7 +1369,8 @@ void EventManager::processType80_clickInDungeonView_grabLeaderHandObject(uint16
 	int16 mapX = _vm->_dungeonMan->_partyMapX;
 	int16 mapY = _vm->_dungeonMan->_partyMapY;
 	if (viewCell >= kDMViewCellBackRight) {
-		mapX += _vm->_dirIntoStepCountEast[_vm->_dungeonMan->_partyDir], mapY += _vm->_dirIntoStepCountNorth[_vm->_dungeonMan->_partyDir];
+		mapX += _vm->_dirIntoStepCountEast[_vm->_dungeonMan->_partyDir];
+		mapY += _vm->_dirIntoStepCountNorth[_vm->_dungeonMan->_partyDir];
 		Thing groupThing = _vm->_groupMan->groupGetThing(mapX, mapY);
 		if ((groupThing != _vm->_thingEndOfList) &&
 			!_vm->_moveSens->isLevitating(groupThing) &&
@@ -1397,8 +1398,10 @@ void EventManager::clickInDungeonViewDropLeaderHandObject(uint16 viewCell) {
 	if (droppingIntoAnAlcove)
 		viewCell = kDMViewCellBackRight;
 
-	if (viewCell > kDMViewCellFrontRight)
-		mapX += _vm->_dirIntoStepCountEast[_vm->_dungeonMan->_partyDir], mapY += _vm->_dirIntoStepCountNorth[_vm->_dungeonMan->_partyDir];
+	if (viewCell > kDMViewCellFrontRight) {
+		mapX += _vm->_dirIntoStepCountEast[_vm->_dungeonMan->_partyDir];
+		mapY += _vm->_dirIntoStepCountNorth[_vm->_dungeonMan->_partyDir];
+	}
 
 	uint16 currCell = _vm->normalizeModulo4(_vm->_dungeonMan->_partyDir + viewCell);
 	Thing removedThing = _vm->_championMan->getObjectRemovedFromLeaderHand();
diff --git a/engines/dm/group.cpp b/engines/dm/group.cpp
index 9bfeb1d..dfdcdc0 100644
--- a/engines/dm/group.cpp
+++ b/engines/dm/group.cpp
@@ -819,7 +819,8 @@ T0209058_MoveInRandomDirection:
 							do {
 								AL0450_i_DestinationMapX = eventMapX;
 								AL0451_i_DestinationMapY = eventMapY;
-								AL0450_i_DestinationMapX += _vm->_dirIntoStepCountEast[AL0446_i_Direction], AL0451_i_DestinationMapY += _vm->_dirIntoStepCountNorth[AL0446_i_Direction];
+								AL0450_i_DestinationMapX += _vm->_dirIntoStepCountEast[AL0446_i_Direction];
+								AL0451_i_DestinationMapY += _vm->_dirIntoStepCountNorth[AL0446_i_Direction];
 								if (((activeGroup->_priorMapX != AL0450_i_DestinationMapX) ||
 									(activeGroup->_priorMapY != AL0451_i_DestinationMapY) ||
 									 (moveToPriorLocation = !_vm->getRandomNumber(4))) /* 1/4 chance of moving back to the square that the creature comes from */
@@ -910,7 +911,8 @@ T0209085_SingleSquareMove:
 						(!_vm->getRandomNumber(4) && isMovementPossible(&creatureInfo, eventMapX, eventMapY, AL0446_i_Direction = _vm->returnOppositeDir((Direction)primaryDirectionToOrFromParty), false))) {
 						AL0450_i_DestinationMapX = eventMapX;
 						AL0451_i_DestinationMapY = eventMapY;
-						AL0450_i_DestinationMapX += _vm->_dirIntoStepCountEast[AL0446_i_Direction], AL0451_i_DestinationMapY += _vm->_dirIntoStepCountNorth[AL0446_i_Direction];
+						AL0450_i_DestinationMapX += _vm->_dirIntoStepCountEast[AL0446_i_Direction];
+						AL0451_i_DestinationMapY += _vm->_dirIntoStepCountNorth[AL0446_i_Direction];
 						goto T0209061_MoveGroup;
 					}
 					if (isArchEnemy) {
@@ -922,7 +924,8 @@ T0209089_DoubleSquareMove:
 							((_fluxCageCount >= 2) && isArchenemyDoubleMovementPossible(&creatureInfo, eventMapX, eventMapY, AL0446_i_Direction = _vm->returnOppositeDir((Direction)primaryDirectionToOrFromParty)))) {
 							AL0450_i_DestinationMapX = eventMapX;
 							AL0451_i_DestinationMapY = eventMapY;
-							AL0450_i_DestinationMapX += _vm->_dirIntoStepCountEast[AL0446_i_Direction] * 2, AL0451_i_DestinationMapY += _vm->_dirIntoStepCountNorth[AL0446_i_Direction] * 2;
+							AL0450_i_DestinationMapX += _vm->_dirIntoStepCountEast[AL0446_i_Direction] * 2;
+							AL0451_i_DestinationMapY += _vm->_dirIntoStepCountNorth[AL0446_i_Direction] * 2;
 							_vm->_sound->requestPlay(kDMSoundIndexBuzz, AL0450_i_DestinationMapX, AL0451_i_DestinationMapY, kDMSoundModePlayIfPrioritized);
 							goto T0209061_MoveGroup;
 						}
@@ -1451,7 +1454,8 @@ bool GroupMan::isArchenemyDoubleMovementPossible(CreatureInfo *info, int16 mapX,
 	if (_fluxCages[dir])
 		return false;
 
-	mapX += _vm->_dirIntoStepCountEast[dir], mapY += _vm->_dirIntoStepCountNorth[dir];
+	mapX += _vm->_dirIntoStepCountEast[dir];
+	mapY += _vm->_dirIntoStepCountNorth[dir];
 	return isMovementPossible(info, mapX, mapY, dir, false);
 }
 
diff --git a/engines/dm/menus.cpp b/engines/dm/menus.cpp
index 9c8e219..1600f58 100644
--- a/engines/dm/menus.cpp
+++ b/engines/dm/menus.cpp
@@ -1263,7 +1263,8 @@ bool MenuMan::isActionPerformed(uint16 champIndex, int16 actionIndex) {
 		setChampionDirectionToPartyDirection(curChampion);
 		nextMapX = dungeon._partyMapX;
 		nextMapY = dungeon._partyMapY;
-		nextMapX += _vm->_dirIntoStepCountEast[dungeon._partyDir], nextMapY += _vm->_dirIntoStepCountNorth[dungeon._partyDir];
+		nextMapX += _vm->_dirIntoStepCountEast[dungeon._partyDir];
+		nextMapY += _vm->_dirIntoStepCountNorth[dungeon._partyDir];
 		_vm->_groupMan->fuseAction(nextMapX, nextMapY);
 		break;
 	case kDMActionHeal: {
diff --git a/engines/dm/movesens.cpp b/engines/dm/movesens.cpp
index 410ede7..1dc36f7 100644
--- a/engines/dm/movesens.cpp
+++ b/engines/dm/movesens.cpp
@@ -352,7 +352,8 @@ bool MovesensMan::getMoveResult(Thing thing, int16 mapX, int16 mapY, int16 destM
 						dungeon.setCurrentMap(mapIndexDestination);
 					}
 					direction = dungeon.getStairsExitDirection(destMapX, destMapY);
-					destMapX += _vm->_dirIntoStepCountEast[direction], destMapY += _vm->_dirIntoStepCountNorth[direction];
+					destMapX += _vm->_dirIntoStepCountEast[direction];
+					destMapY += _vm->_dirIntoStepCountNorth[direction];
 					direction = _vm->returnOppositeDir((Direction)direction);
 					thingCell = thing.getCell();
 					thingCell = _vm->normalizeModulo4((((thingCell - direction + 1) & 0x0002) >> 1) + direction);
diff --git a/engines/dm/projexpl.cpp b/engines/dm/projexpl.cpp
index 85767cd..e8b0f4a 100644
--- a/engines/dm/projexpl.cpp
+++ b/engines/dm/projexpl.cpp
@@ -429,7 +429,8 @@ void ProjExpl::processEvents48To49(TimelineEvent *event) {
 	if (projectileMovesToOtherSquare) {
 		sourceMapX = destinationMapX;
 		sourceMapY = destinationMapY;
-		destinationMapX += _vm->_dirIntoStepCountEast[projectileDirection], destinationMapY += _vm->_dirIntoStepCountNorth[projectileDirection];
+		destinationMapX += _vm->_dirIntoStepCountEast[projectileDirection];
+		destinationMapY += _vm->_dirIntoStepCountNorth[projectileDirection];
 		Square destSquare = _vm->_dungeonMan->getSquare(destinationMapX, destinationMapY);
 		ElementType destSquareType = destSquare.getType();
 		if ((destSquareType == kDMElementTypeWall) ||
diff --git a/engines/gob/util.cpp b/engines/gob/util.cpp
index 19e6e35..6bb4274 100644
--- a/engines/gob/util.cpp
+++ b/engines/gob/util.cpp
@@ -37,7 +37,7 @@
 namespace Gob {
 
 Util::Util(GobEngine *vm) : _vm(vm) {
-	_mouseButtons   = kMouseButtonsNone,
+	_mouseButtons   = kMouseButtonsNone;
 	_keyBufferHead  = 0;
 	_keyBufferTail  = 0;
 	_fastMode       = 0;
diff --git a/engines/saga/isomap.cpp b/engines/saga/isomap.cpp
index e50378b..cff4158 100644
--- a/engines/saga/isomap.cpp
+++ b/engines/saga/isomap.cpp
@@ -1350,7 +1350,7 @@ void IsoMap::findDragonTilePath(ActorData* actor,const Location &start, const Lo
 	bool first;
 
 	bestDistance = SAGA_DRAGON_SEARCH_DIAMETER;
-	bestU = SAGA_DRAGON_SEARCH_CENTER,
+	bestU = SAGA_DRAGON_SEARCH_CENTER;
 	bestV = SAGA_DRAGON_SEARCH_CENTER;
 
 	uBase = (start.u() >> 4) - SAGA_DRAGON_SEARCH_CENTER;
@@ -1505,7 +1505,7 @@ void IsoMap::findTilePath(ActorData* actor, const Location &start, const Locatio
 
 
 	bestDistance = SAGA_SEARCH_DIAMETER;
-	bestU = SAGA_SEARCH_CENTER,
+	bestU = SAGA_SEARCH_CENTER;
 	bestV = SAGA_SEARCH_CENTER;
 
 	uBase = (start.u() >> 4) - SAGA_SEARCH_CENTER;
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 767e85d..77d82c8 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -952,7 +952,7 @@ ScummEngine_v100he::~ScummEngine_v100he() {
 ScummEngine_vCUPhe::ScummEngine_vCUPhe(OSystem *syst, const DetectorResult &dr) : Engine(syst){
 	_syst = syst;
 	_game = dr.game;
-	_filenamePattern = dr.fp,
+	_filenamePattern = dr.fp;
 
 	_cupPlayer = new CUP_Player(syst, this, _mixer);
 }
diff --git a/engines/sludge/transition.cpp b/engines/sludge/transition.cpp
index 306a51c..3a768cb 100644
--- a/engines/sludge/transition.cpp
+++ b/engines/sludge/transition.cpp
@@ -152,7 +152,8 @@ void resetRandW() {
 		}
 	}
 
-	p1 = 0, p2 = 10;
+	p1 = 0;
+	p2 = 10;
 }
 
 #if 0
diff --git a/engines/toon/script_func.cpp b/engines/toon/script_func.cpp
index 5e8ff09..7a8925b 100644
--- a/engines/toon/script_func.cpp
+++ b/engines/toon/script_func.cpp
@@ -48,177 +48,177 @@ ScriptFunc::ScriptFunc(ToonEngine *vm) {
 	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
 	Opcode(sys_Cmd_Change_Actor_X_And_Y);                   //     dd offset sub_2A710
 	Opcode(sys_Cmd_Init_Talking_Character);             //     dd offset sub_2A4E0
-	Opcode(sys_Cmd_Draw_Actor_Standing),                    //     dd offset sub_2A650
-	Opcode(sys_Cmd_Get_Actor_X),                            //     dd offset sub_2ADC0
-	Opcode(sys_Cmd_Get_Actor_Y),                            //     dd offset sub_2ADD0
-	Opcode(sys_Cmd_Get_Actor_Facing),                       //     dd offset sub_2A790
-	Opcode(sys_Cmd_Get_Last_Scene),                     //     dd offset sub_29F80
-	Opcode(sys_Cmd_Debug_Print),                            //     dd offset sub_2A510
-	Opcode(sys_Cmd_Flip_Screens),                           //     dd offset sub_2A180
-	Opcode(sys_Cmd_Play_Flic),                              //     dd offset sub_2A080
-	Opcode(sys_Cmd_Force_Facing),                           //     dd offset sub_29F90
-	Opcode(sys_Cmd_Restart_Thread),                     //     dd offset sub_29F30
-	Opcode(sys_Cmd_Walk_Actor_To_Point),                    //     dd offset sub_2A440
-	Opcode(sys_Cmd_Set_Sack_Visible),                       //     dd offset sub_29920
-	Opcode(sys_Cmd_Set_Actor_Facing),                       //     dd offset sub_2AD60
-	Opcode(sys_Cmd_Confiscate_Inventory),                   //     dd offset sub_29EB0
-	Opcode(sys_Cmd_Character_Talks),                        //     dd offset sub_29F00
-	Opcode(sys_Cmd_Visited_Scene),                          //     dd offset sub_29E80
-	Opcode(sys_Cmd_Query_Rif_Flag),                     //     dd offset sub_29D20
-	Opcode(sys_Cmd_Query_Scroll),                           //     dd offset sub_29D60
-	Opcode(sys_Cmd_Set_Initial_Location),                   //     dd offset sub_2AD80
-	Opcode(sys_Cmd_Make_Line_Non_Walkable),             //     dd offset sub_29FC0
-	Opcode(sys_Cmd_Make_Line_Walkable),                 //     dd offset sub_2A050
-	Opcode(sys_Cmd_Walk_Actor_On_Condition),                //     dd offset sub_29D70
-	Opcode(sys_Cmd_Set_Actor_Facing_Point),             //     dd offset sub_29E60
-	Opcode(sys_Cmd_Set_Inventory_Slot),                 //     dd offset sub_2B0D0
-	Opcode(sys_Cmd_Get_Inventory_Slot),                 //     dd offset sub_2B0F0
-	Opcode(sys_Cmd_Add_Item_To_Inventory),                  //     dd offset sub_2AE50
-	Opcode(sys_Cmd_Set_Actor_RGB_Modifiers),                //     dd offset sub_29CA0
-	Opcode(sys_Cmd_Init_Conversation_AP),                   //     dd offset sub_2B130
-	Opcode(sys_Cmd_Actor_Talks),                            //     dd offset sub_2ADA0
-	Opcode(sys_Cmd_Say_Lines),                              //     dd offset sub_29B20
-	Opcode(sys_Cmd_Set_Rif_Flag),                           //     dd offset sub_2A320
-	Opcode(sys_Cmd_Empty_Inventory),                        //     dd offset sub_2AE10
-	Opcode(sys_Cmd_Set_Anim_Scale_Size),                    //     dd offset sub_29BD0
-	Opcode(sys_Cmd_Delete_Item_From_Inventory),         //     dd offset sub_2AE70
-	Opcode(sys_Cmd_Specific_Item_In_Inventory),         //     dd offset sub_2A740
-	Opcode(sys_Cmd_Run_Script),                         //     dd offset sub_29AF0
-	Opcode(sys_Cmd_Query_Game_Flag),                        //     dd offset sub_2A3E0
-	Opcode(sys_Cmd_Reset_Game_Flag),                        //     dd offset sub_2A420
-	Opcode(sys_Cmd_Set_Game_Flag),                          //     dd offset sub_2A400
-	Opcode(sys_Cmd_Create_Mouse_Item),                      //     dd offset sub_2A4B0
-	Opcode(sys_Cmd_Destroy_Mouse_Item),                 //     dd offset sub_2A4D0
-	Opcode(sys_Cmd_Get_Mouse_State),                        //     dd offset sub_2A860
-	Opcode(sys_Cmd_Hide_Mouse),                         //     dd offset sub_2A5D0
-	Opcode(sys_Cmd_Exit_Conversation),                      //     dd offset sub_29AE0
-	Opcode(sys_Cmd_Set_Mouse_Pos),                          //     dd offset sub_2A810
-	Opcode(sys_Cmd_Show_Mouse),                         //     dd offset sub_2A5F0
-	Opcode(sys_Cmd_In_Close_Up),                            //     dd offset sub_29FB0
-	Opcode(sys_Cmd_Set_Scroll_Lock),                        //     dd offset sub_298B0
-	Opcode(sys_Cmd_Fill_Area_Non_Walkable),             //     dd offset sub_29FF0
-	Opcode(sys_Cmd_Set_Scroll_Coords),                      //     dd offset sub_298D0
-	Opcode(sys_Cmd_Hide_Cutaway),                           //     dd offset sub_2A0F0
-	Opcode(sys_Cmd_Show_Cutaway),                           //     dd offset sub_2A100
-	Opcode(sys_Cmd_Pause_Ticks),                            //     dd offset sub_2A360
-	Opcode(sys_Cmd_In_Conversation),                        //     dd offset sub_29C60
-	Opcode(sys_Cmd_Character_Talking),                      //     dd offset sub_29C70
-	Opcode(sys_Cmd_Set_Flux_Facing_Point),                  //     dd offset sub_29980
-	Opcode(sys_Cmd_Set_Flux_Facing),                        //     dd offset sub_299A0
-	Opcode(sys_Cmd_Set_Flux_Coords),                        //     dd offset sub_299C0
-	Opcode(sys_Cmd_Set_Flux_Visible),                       //     dd offset sub_299F0
-	Opcode(sys_Cmd_Get_Flux_X),                         //     dd offset sub_29A40
-	Opcode(sys_Cmd_Get_Flux_Y),                         //     dd offset sub_29A50
-	Opcode(sys_Cmd_Get_Flux_Facing),                        //     dd offset sub_29A60
-	Opcode(sys_Cmd_Get_Flux_Flags),                     //     dd offset sub_29A70
-	Opcode(sys_Cmd_Query_Flux_Coords),                      //     dd offset sub_29A90
-	Opcode(sys_Cmd_Have_A_Conversation),                    //     dd offset sub_2B110
-	Opcode(sys_Cmd_Walk_Flux_To_Point),                 //     dd offset sub_29AC0
-	Opcode(sys_Cmd_Get_Actor_Final_X),                      //     dd offset sub_29940
-	Opcode(sys_Cmd_Get_Actor_Final_Y),                      //     dd offset sub_29960
-	Opcode(sys_Cmd_Query_Scene_Anim_Loaded),                //     dd offset sub_29870
-	Opcode(sys_Cmd_Play_Flux_Anim),                     //     dd offset sub_29820
-	Opcode(sys_Cmd_Set_Anim_Priority),                      //     dd offset sub_29790
-	Opcode(sys_Cmd_Place_Scene_Anim),                       //     dd offset sub_2A7A0
-	Opcode(sys_Cmd_Update_Scene_Animations),                //     dd offset sub_2AE30
-	Opcode(sys_Cmd_Get_Drew_Scale),                     //     dd offset sub_297E0
-	Opcode(sys_Cmd_Query_Drew_Flags),                       //     dd offset sub_29800
-	Opcode(sys_Cmd_Set_Music),                              //     dd offset sub_29720
-	Opcode(sys_Cmd_Query_Speech),                           //     dd offset sub_296D0
-	Opcode(sys_Cmd_Enter_New_Scene),                        //     dd offset sub_2A550
-	Opcode(sys_Cmd_Enter_Same_Scene),                       //     dd offset sub_2ADE0
-	Opcode(sys_Cmd_Is_Pixel_Walkable),                      //     dd offset sub_2A4F0
-	Opcode(sys_Cmd_Show_Screen),                            //     dd offset sub_2A0C0
-	Opcode(sys_Cmd_Hide_Screen),                            //     dd offset sub_2A0F0
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_295D0
-	Opcode(sys_Cmd_Set_Special_Enter_X_And_Y),              //     dd offset sub_2A590
-	Opcode(sys_Cmd_Get_Mouse_X),                            //     dd offset sub_296B0
-	Opcode(sys_Cmd_Get_Mouse_Y),                            //     dd offset sub_296C0
-	Opcode(sys_Cmd_Fade_Palette),                           //     dd offset sub_29650
-	Opcode(sys_Cmd_Music_Enabled),                          //     dd offset sub_29620
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_295F0
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_29610
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Random),                             //     dd offset sub_2A600
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Wait_Key),                               //     dd offset sub_2AE20
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Draw_Scene_Anim_WSA_Frame_To_Back),      //     dd offset sub_2A940
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Set_Scene_Anim_Wait),                    //     dd offset sub_2A870
-	Opcode(sys_Cmd_Init_Scene_Anim),                        //     dd offset sub_2AC60
-	Opcode(sys_Cmd_Set_Scene_Animation_Active_Flag),        //     dd offset sub_2AB10
-	Opcode(sys_Cmd_Draw_Scene_Anim_WSA_Frame),              //     dd offset sub_2A8D0
-	Opcode(sys_Cmd_Move_Scene_Anim),                        //     dd offset sub_2AA90
-	Opcode(sys_Cmd_Run_Actor_Default_Script),               //     dd offset sub_2A4E0
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Set_Location_Data),                      //     dd offset sub_2AE90
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Set_CountDown_Timer),                    //     dd offset sub_2AFC0
-	Opcode(sys_Cmd_Query_CountDown_Timer),                  //     dd offset sub_2AFE0
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Proceed_To_Next_Chapter),                //     dd offset sub_2AFF0
-	Opcode(sys_Cmd_Play_Sfx_Plus),                          //     dd offset sub_2A1D0
-	Opcode(sys_Cmd_Play_Sfx),                               //     dd offset sub_2A1A0
-	Opcode(sys_Cmd_Set_Ambient_Sfx),                        //     dd offset sub_2A260
-	Opcode(sys_Cmd_Kill_Ambient_Sfx),                       //     dd offset sub_2A300
-	Opcode(sys_Cmd_Set_Ambient_Sfx_Plus),                   //     dd offset sub_2A290
-	Opcode(sys_Cmd_Set_Ambient_Volume),                 //     dd offset sub_2A240
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Freeze_Scene_Animation),             //     dd offset sub_2AB90
-	Opcode(sys_Cmd_Unfreeze_Scene_Animation),               //     dd offset sub_2ABB0
-	Opcode(sys_Cmd_Scene_Animation_Frozen),             //     dd offset sub_2ABD0
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Set_Script_Game_Data_Global),            //     dd offset sub_2ABF0
-	Opcode(sys_Cmd_Get_Script_Game_Data_Global),            //     dd offset sub_2AC30
-	Opcode(sys_Cmd_Say_Line),                               //     dd offset loc_2A190
-	Opcode(sys_Cmd_Knight_Puzzle_Get_Coord),                //     dd offset sub_2A110
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Add_Scene_Anim),                     //     dd offset sub_2AC60
-	Opcode(sys_Cmd_Remove_Scene_Anim),                      //     dd offset sub_2ACE0
-	Opcode(sys_Cmd_Disable_Timer),                          //     dd offset sub_2AD00
-	Opcode(sys_Cmd_Enable_Timer),                           //     dd offset sub_2AD20
-	Opcode(sys_Cmd_Set_Timer),                              //     dd offset sub_2AD40
-	Opcode(sys_Cmd_Set_Palette_Color),                      //     dd offset sub_2B020
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Number_Of_NPCs),                     //     dd offset loc_2A190
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Dummy),                                  //     dd offset sub_2B160
-	Opcode(sys_Cmd_Get_Config_Language),                    //     dd offset sub_2B0C0
+	Opcode(sys_Cmd_Draw_Actor_Standing);                    //     dd offset sub_2A650
+	Opcode(sys_Cmd_Get_Actor_X);                            //     dd offset sub_2ADC0
+	Opcode(sys_Cmd_Get_Actor_Y);                            //     dd offset sub_2ADD0
+	Opcode(sys_Cmd_Get_Actor_Facing);                       //     dd offset sub_2A790
+	Opcode(sys_Cmd_Get_Last_Scene);                     //     dd offset sub_29F80
+	Opcode(sys_Cmd_Debug_Print);                            //     dd offset sub_2A510
+	Opcode(sys_Cmd_Flip_Screens);                           //     dd offset sub_2A180
+	Opcode(sys_Cmd_Play_Flic);                              //     dd offset sub_2A080
+	Opcode(sys_Cmd_Force_Facing);                           //     dd offset sub_29F90
+	Opcode(sys_Cmd_Restart_Thread);                     //     dd offset sub_29F30
+	Opcode(sys_Cmd_Walk_Actor_To_Point);                    //     dd offset sub_2A440
+	Opcode(sys_Cmd_Set_Sack_Visible);                       //     dd offset sub_29920
+	Opcode(sys_Cmd_Set_Actor_Facing);                       //     dd offset sub_2AD60
+	Opcode(sys_Cmd_Confiscate_Inventory);                   //     dd offset sub_29EB0
+	Opcode(sys_Cmd_Character_Talks);                        //     dd offset sub_29F00
+	Opcode(sys_Cmd_Visited_Scene);                          //     dd offset sub_29E80
+	Opcode(sys_Cmd_Query_Rif_Flag);                     //     dd offset sub_29D20
+	Opcode(sys_Cmd_Query_Scroll);                           //     dd offset sub_29D60
+	Opcode(sys_Cmd_Set_Initial_Location);                   //     dd offset sub_2AD80
+	Opcode(sys_Cmd_Make_Line_Non_Walkable);             //     dd offset sub_29FC0
+	Opcode(sys_Cmd_Make_Line_Walkable);                 //     dd offset sub_2A050
+	Opcode(sys_Cmd_Walk_Actor_On_Condition);                //     dd offset sub_29D70
+	Opcode(sys_Cmd_Set_Actor_Facing_Point);             //     dd offset sub_29E60
+	Opcode(sys_Cmd_Set_Inventory_Slot);                 //     dd offset sub_2B0D0
+	Opcode(sys_Cmd_Get_Inventory_Slot);                 //     dd offset sub_2B0F0
+	Opcode(sys_Cmd_Add_Item_To_Inventory);                  //     dd offset sub_2AE50
+	Opcode(sys_Cmd_Set_Actor_RGB_Modifiers);                //     dd offset sub_29CA0
+	Opcode(sys_Cmd_Init_Conversation_AP);                   //     dd offset sub_2B130
+	Opcode(sys_Cmd_Actor_Talks);                            //     dd offset sub_2ADA0
+	Opcode(sys_Cmd_Say_Lines);                              //     dd offset sub_29B20
+	Opcode(sys_Cmd_Set_Rif_Flag);                           //     dd offset sub_2A320
+	Opcode(sys_Cmd_Empty_Inventory);                        //     dd offset sub_2AE10
+	Opcode(sys_Cmd_Set_Anim_Scale_Size);                    //     dd offset sub_29BD0
+	Opcode(sys_Cmd_Delete_Item_From_Inventory);         //     dd offset sub_2AE70
+	Opcode(sys_Cmd_Specific_Item_In_Inventory);         //     dd offset sub_2A740
+	Opcode(sys_Cmd_Run_Script);                         //     dd offset sub_29AF0
+	Opcode(sys_Cmd_Query_Game_Flag);                        //     dd offset sub_2A3E0
+	Opcode(sys_Cmd_Reset_Game_Flag);                        //     dd offset sub_2A420
+	Opcode(sys_Cmd_Set_Game_Flag);                          //     dd offset sub_2A400
+	Opcode(sys_Cmd_Create_Mouse_Item);                      //     dd offset sub_2A4B0
+	Opcode(sys_Cmd_Destroy_Mouse_Item);                 //     dd offset sub_2A4D0
+	Opcode(sys_Cmd_Get_Mouse_State);                        //     dd offset sub_2A860
+	Opcode(sys_Cmd_Hide_Mouse);                         //     dd offset sub_2A5D0
+	Opcode(sys_Cmd_Exit_Conversation);                      //     dd offset sub_29AE0
+	Opcode(sys_Cmd_Set_Mouse_Pos);                          //     dd offset sub_2A810
+	Opcode(sys_Cmd_Show_Mouse);                         //     dd offset sub_2A5F0
+	Opcode(sys_Cmd_In_Close_Up);                            //     dd offset sub_29FB0
+	Opcode(sys_Cmd_Set_Scroll_Lock);                        //     dd offset sub_298B0
+	Opcode(sys_Cmd_Fill_Area_Non_Walkable);             //     dd offset sub_29FF0
+	Opcode(sys_Cmd_Set_Scroll_Coords);                      //     dd offset sub_298D0
+	Opcode(sys_Cmd_Hide_Cutaway);                           //     dd offset sub_2A0F0
+	Opcode(sys_Cmd_Show_Cutaway);                           //     dd offset sub_2A100
+	Opcode(sys_Cmd_Pause_Ticks);                            //     dd offset sub_2A360
+	Opcode(sys_Cmd_In_Conversation);                        //     dd offset sub_29C60
+	Opcode(sys_Cmd_Character_Talking);                      //     dd offset sub_29C70
+	Opcode(sys_Cmd_Set_Flux_Facing_Point);                  //     dd offset sub_29980
+	Opcode(sys_Cmd_Set_Flux_Facing);                        //     dd offset sub_299A0
+	Opcode(sys_Cmd_Set_Flux_Coords);                        //     dd offset sub_299C0
+	Opcode(sys_Cmd_Set_Flux_Visible);                       //     dd offset sub_299F0
+	Opcode(sys_Cmd_Get_Flux_X);                         //     dd offset sub_29A40
+	Opcode(sys_Cmd_Get_Flux_Y);                         //     dd offset sub_29A50
+	Opcode(sys_Cmd_Get_Flux_Facing);                        //     dd offset sub_29A60
+	Opcode(sys_Cmd_Get_Flux_Flags);                     //     dd offset sub_29A70
+	Opcode(sys_Cmd_Query_Flux_Coords);                      //     dd offset sub_29A90
+	Opcode(sys_Cmd_Have_A_Conversation);                    //     dd offset sub_2B110
+	Opcode(sys_Cmd_Walk_Flux_To_Point);                 //     dd offset sub_29AC0
+	Opcode(sys_Cmd_Get_Actor_Final_X);                      //     dd offset sub_29940
+	Opcode(sys_Cmd_Get_Actor_Final_Y);                      //     dd offset sub_29960
+	Opcode(sys_Cmd_Query_Scene_Anim_Loaded);                //     dd offset sub_29870
+	Opcode(sys_Cmd_Play_Flux_Anim);                     //     dd offset sub_29820
+	Opcode(sys_Cmd_Set_Anim_Priority);                      //     dd offset sub_29790
+	Opcode(sys_Cmd_Place_Scene_Anim);                       //     dd offset sub_2A7A0
+	Opcode(sys_Cmd_Update_Scene_Animations);                //     dd offset sub_2AE30
+	Opcode(sys_Cmd_Get_Drew_Scale);                     //     dd offset sub_297E0
+	Opcode(sys_Cmd_Query_Drew_Flags);                       //     dd offset sub_29800
+	Opcode(sys_Cmd_Set_Music);                              //     dd offset sub_29720
+	Opcode(sys_Cmd_Query_Speech);                           //     dd offset sub_296D0
+	Opcode(sys_Cmd_Enter_New_Scene);                        //     dd offset sub_2A550
+	Opcode(sys_Cmd_Enter_Same_Scene);                       //     dd offset sub_2ADE0
+	Opcode(sys_Cmd_Is_Pixel_Walkable);                      //     dd offset sub_2A4F0
+	Opcode(sys_Cmd_Show_Screen);                            //     dd offset sub_2A0C0
+	Opcode(sys_Cmd_Hide_Screen);                            //     dd offset sub_2A0F0
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_295D0
+	Opcode(sys_Cmd_Set_Special_Enter_X_And_Y);              //     dd offset sub_2A590
+	Opcode(sys_Cmd_Get_Mouse_X);                            //     dd offset sub_296B0
+	Opcode(sys_Cmd_Get_Mouse_Y);                            //     dd offset sub_296C0
+	Opcode(sys_Cmd_Fade_Palette);                           //     dd offset sub_29650
+	Opcode(sys_Cmd_Music_Enabled);                          //     dd offset sub_29620
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_295F0
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_29610
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Random);                             //     dd offset sub_2A600
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Wait_Key);                               //     dd offset sub_2AE20
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Draw_Scene_Anim_WSA_Frame_To_Back);      //     dd offset sub_2A940
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Set_Scene_Anim_Wait);                    //     dd offset sub_2A870
+	Opcode(sys_Cmd_Init_Scene_Anim);                        //     dd offset sub_2AC60
+	Opcode(sys_Cmd_Set_Scene_Animation_Active_Flag);        //     dd offset sub_2AB10
+	Opcode(sys_Cmd_Draw_Scene_Anim_WSA_Frame);              //     dd offset sub_2A8D0
+	Opcode(sys_Cmd_Move_Scene_Anim);                        //     dd offset sub_2AA90
+	Opcode(sys_Cmd_Run_Actor_Default_Script);               //     dd offset sub_2A4E0
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Set_Location_Data);                      //     dd offset sub_2AE90
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Set_CountDown_Timer);                    //     dd offset sub_2AFC0
+	Opcode(sys_Cmd_Query_CountDown_Timer);                  //     dd offset sub_2AFE0
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Proceed_To_Next_Chapter);                //     dd offset sub_2AFF0
+	Opcode(sys_Cmd_Play_Sfx_Plus);                          //     dd offset sub_2A1D0
+	Opcode(sys_Cmd_Play_Sfx);                               //     dd offset sub_2A1A0
+	Opcode(sys_Cmd_Set_Ambient_Sfx);                        //     dd offset sub_2A260
+	Opcode(sys_Cmd_Kill_Ambient_Sfx);                       //     dd offset sub_2A300
+	Opcode(sys_Cmd_Set_Ambient_Sfx_Plus);                   //     dd offset sub_2A290
+	Opcode(sys_Cmd_Set_Ambient_Volume);                 //     dd offset sub_2A240
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Freeze_Scene_Animation);             //     dd offset sub_2AB90
+	Opcode(sys_Cmd_Unfreeze_Scene_Animation);               //     dd offset sub_2ABB0
+	Opcode(sys_Cmd_Scene_Animation_Frozen);             //     dd offset sub_2ABD0
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Set_Script_Game_Data_Global);            //     dd offset sub_2ABF0
+	Opcode(sys_Cmd_Get_Script_Game_Data_Global);            //     dd offset sub_2AC30
+	Opcode(sys_Cmd_Say_Line);                               //     dd offset loc_2A190
+	Opcode(sys_Cmd_Knight_Puzzle_Get_Coord);                //     dd offset sub_2A110
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Add_Scene_Anim);                     //     dd offset sub_2AC60
+	Opcode(sys_Cmd_Remove_Scene_Anim);                      //     dd offset sub_2ACE0
+	Opcode(sys_Cmd_Disable_Timer);                          //     dd offset sub_2AD00
+	Opcode(sys_Cmd_Enable_Timer);                           //     dd offset sub_2AD20
+	Opcode(sys_Cmd_Set_Timer);                              //     dd offset sub_2AD40
+	Opcode(sys_Cmd_Set_Palette_Color);                      //     dd offset sub_2B020
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Number_Of_NPCs);                     //     dd offset loc_2A190
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
+	Opcode(sys_Cmd_Get_Config_Language);                    //     dd offset sub_2B0C0
 	Opcode(sys_Cmd_Dummy);                                  //     dd offset sub_2B160
 }
 
diff --git a/graphics/pixelformat.h b/graphics/pixelformat.h
index 6b22a14..af964b0 100644
--- a/graphics/pixelformat.h
+++ b/graphics/pixelformat.h
@@ -149,8 +149,14 @@ struct PixelFormat {
 						byte RBits, byte GBits, byte BBits, byte ABits,
 						byte RShift, byte GShift, byte BShift, byte AShift) {
 		bytesPerPixel = BytesPerPixel;
-		rLoss = 8 - RBits, gLoss = 8 - GBits, bLoss = 8 - BBits, aLoss = 8 - ABits;
-		rShift = RShift, gShift = GShift, bShift = BShift, aShift = AShift;
+		rLoss = 8 - RBits;
+		gLoss = 8 - GBits;
+		bLoss = 8 - BBits;
+		aLoss = 8 - ABits;
+		rShift = RShift;
+		gShift = GShift;
+		bShift = BShift;
+		aShift = AShift;
 	}
 
 	static inline PixelFormat createFormatCLUT8() {
diff --git a/gui/ThemeParser.cpp b/gui/ThemeParser.cpp
index bd0d2c4..64a9aa7 100644
--- a/gui/ThemeParser.cpp
+++ b/gui/ThemeParser.cpp
@@ -622,11 +622,12 @@ bool ThemeParser::parseDrawStep(ParserNode *stepNode, Graphics::DrawStep *drawst
 	if (stepNode->values.contains("padding")) {
 		val = stepNode->values["padding"];
 		int pr, pt, pl, pb;
-		if (parseIntegerKey(val, 4, &pl, &pt, &pr, &pb))
-			drawstep->padding.left = pl,
-			drawstep->padding.top = pt,
-			drawstep->padding.right = pr,
+		if (parseIntegerKey(val, 4, &pl, &pt, &pr, &pb)) {
+			drawstep->padding.left = pl;
+			drawstep->padding.top = pt;
+			drawstep->padding.right = pr;
 			drawstep->padding.bottom = pb;
+		}
 	}
 
 #undef PARSER_ASSIGN_INT


Commit: 972c45398679fb4e983d6092122939389487fa55
    https://github.com/scummvm/scummvm/commit/972c45398679fb4e983d6092122939389487fa55
Author: Colin Snover (github.com at zetafleet.com)
Date: 2017-11-10T09:57:03-06:00

Commit Message:
BBVS: Remove all bit shifts of potentially negative integers

Previous patches that removed shifts of constant negative values
to eliminate UB were valid, but did not correct all places where
this engine was potentially bit shifting negative values. There is
no reason to not just use multiplication and division and let the
compiler make the right choice for optimisation for an
architecture, so that is what this patch does.

Changed paths:
    engines/bbvs/bbvs.cpp
    engines/bbvs/logic.cpp
    engines/bbvs/minigames/bbant.cpp
    engines/bbvs/scene.cpp
    engines/bbvs/walk.cpp


diff --git a/engines/bbvs/bbvs.cpp b/engines/bbvs/bbvs.cpp
index 74518d5..f5daa60 100644
--- a/engines/bbvs/bbvs.cpp
+++ b/engines/bbvs/bbvs.cpp
@@ -496,8 +496,8 @@ void BbvsEngine::buildDrawList(DrawList &drawList) {
 			Animation *anim = sceneObject->anim;
 			if (anim) {
 				drawList.add(anim->frameSpriteIndices[sceneObject->frameIndex],
-					(sceneObject->x >> 16) - _cameraPos.x, (sceneObject->y >> 16) - _cameraPos.y,
-					sceneObject->y >> 16);
+					(sceneObject->x / 65536) - _cameraPos.x, (sceneObject->y / 65536) - _cameraPos.y,
+					sceneObject->y / 65536);
 			}
 		}
 
@@ -774,8 +774,8 @@ void BbvsEngine::updateScene(bool clicked) {
 		SceneObject *sceneObject = &_sceneObjects[i];
 		if (sceneObject->anim) {
 			Common::Rect frameRect = sceneObject->anim->frameRects1[sceneObject->frameIndex];
-			const int objY = sceneObject->y >> 16;
-			frameRect.translate(sceneObject->x >> 16, objY);
+			const int objY = sceneObject->y / 65536;
+			frameRect.translate(sceneObject->x / 65536, objY);
 			if (lastPriority <= objY && frameRect.width() > 0 && frameRect.contains(_mousePos)) {
 				lastPriority = objY;
 				_activeItemIndex = i;
@@ -898,7 +898,7 @@ void BbvsEngine::updateScene(bool clicked) {
 
 		if (_beavisObject->anim) {
 			Common::Rect frameRect = _beavisObject->anim->frameRects2[_beavisObject->frameIndex];
-			frameRect.translate(_beavisObject->x >> 16, (_beavisObject->y >> 16) + 1);
+			frameRect.translate(_beavisObject->x / 65536, (_beavisObject->y / 65536) + 1);
 			if (!frameRect.isEmpty() && frameRect.contains(_walkMousePos))
 				_walkMousePos.y = frameRect.bottom;
 		}
@@ -938,7 +938,7 @@ bool BbvsEngine::performActionCommand(ActionCommand *actionCommand) {
 		{
 			SceneObject *sceneObject = &_sceneObjects[actionCommand->sceneObjectIndex];
 			debug(5, "[%s] walks from (%d, %d) to (%d, %d)", sceneObject->sceneObjectDef->name,
-				sceneObject->x >> 16, sceneObject->y >> 16, actionCommand->walkDest.x, actionCommand->walkDest.y);
+				sceneObject->x / 65536, sceneObject->y / 65536, actionCommand->walkDest.x, actionCommand->walkDest.y);
 			walkObject(sceneObject, actionCommand->walkDest, actionCommand->param);
 		}
 		return true;
@@ -946,8 +946,8 @@ bool BbvsEngine::performActionCommand(ActionCommand *actionCommand) {
 	case kActionCmdMoveObject:
 		{
 			SceneObject *sceneObject = &_sceneObjects[actionCommand->sceneObjectIndex];
-			sceneObject->x = actionCommand->walkDest.x << 16;
-			sceneObject->y = actionCommand->walkDest.y << 16;
+			sceneObject->x = actionCommand->walkDest.x * 65536;
+			sceneObject->y = actionCommand->walkDest.y * 65536;
 			sceneObject->xIncr = 0;
 			sceneObject->yIncr = 0;
 			sceneObject->walkCount = 0;
@@ -1074,7 +1074,7 @@ bool BbvsEngine::processCurrAction() {
 		if (sceneObject->walkDestPt.x != -1) {
 			debug(5, "waiting for walk to finish");
 			actionsFinished = false;
-		} else if ((int16)(sceneObject->x >> 16) != soAction->walkDest.x || (int16)(sceneObject->y >> 16) != soAction->walkDest.y) {
+		} else if ((int16)(sceneObject->x / 65536) != soAction->walkDest.x || (int16)(sceneObject->y / 65536) != soAction->walkDest.y) {
 			debug(5, "starting to walk");
 			sceneObject->walkDestPt = soAction->walkDest;
 			actionsFinished = false;
@@ -1214,8 +1214,8 @@ void BbvsEngine::updateCommon() {
 	}
 
 	if (!_currAction && _buttheadObject) {
-		int16 buttheadX = _buttheadObject->x >> 16;
-		int16 buttheadY = _buttheadObject->y >> 16;
+		int16 buttheadX = _buttheadObject->x / 65536;
+		int16 buttheadY = _buttheadObject->y / 65536;
 		CameraInit *cameraInit = _gameModule->getCameraInit(_currCameraNum);
 		for (int i = 0; i < 8; ++i) {
 			if (cameraInit->rects[i].contains(buttheadX, buttheadY)) {
@@ -1252,8 +1252,8 @@ void BbvsEngine::updateCommon() {
 
 	// Check if Butthead is inside a scene exit
 	if (_newSceneNum == 0 && !_currAction && _buttheadObject) {
-		int16 buttheadX = _buttheadObject->x >> 16;
-		int16 buttheadY = _buttheadObject->y >> 16;
+		int16 buttheadX = _buttheadObject->x / 65536;
+		int16 buttheadY = _buttheadObject->y / 65536;
 		for (int i = 0; i < _gameModule->getSceneExitsCount(); ++i) {
 			SceneExit *sceneExit = _gameModule->getSceneExit(i);
 			if (sceneExit->rect.contains(buttheadX, buttheadY)) {
diff --git a/engines/bbvs/logic.cpp b/engines/bbvs/logic.cpp
index 2f9925f..47f8dd9 100644
--- a/engines/bbvs/logic.cpp
+++ b/engines/bbvs/logic.cpp
@@ -82,7 +82,7 @@ bool BbvsEngine::evalCondition(Conditions &conditions) {
 			break;
 		case kCondIsButtheadAtBgObject:
 			result = _buttheadObject &&
-				_gameModule->getBgObject(condition.value2)->rect.contains(_buttheadObject->x >> 16, _buttheadObject->y >> 16);
+				_gameModule->getBgObject(condition.value2)->rect.contains(_buttheadObject->x / 65536, _buttheadObject->y / 65536);
 			break;
 		case kCondIsNotSceneVisited:
 			result = _sceneVisited[_currSceneNum] == 0;
@@ -209,7 +209,7 @@ int BbvsEngine::evalDialogCondition(Conditions &conditions) {
 			break;
 		case kCondIsButtheadAtBgObject:
 			success = _buttheadObject &&
-				_gameModule->getBgObject(condition.value2)->rect.contains(_buttheadObject->x >> 16, _buttheadObject->y >> 16);
+				_gameModule->getBgObject(condition.value2)->rect.contains(_buttheadObject->x / 65536, _buttheadObject->y / 65536);
 			break;
 		case kCondIsNotSceneVisited:
 			success = _sceneVisited[_currSceneNum] == 0;
diff --git a/engines/bbvs/minigames/bbant.cpp b/engines/bbvs/minigames/bbant.cpp
index 72c2d62..5310d53 100644
--- a/engines/bbvs/minigames/bbant.cpp
+++ b/engines/bbvs/minigames/bbant.cpp
@@ -85,7 +85,7 @@ void MinigameBbAnt::buildDrawList1(DrawList &drawList) {
 		Obj *obj = &_objects[i];
 		if (obj->kind) {
 			drawList.add(obj->anim->frameIndices[obj->frameIndex],
-				_stompX + (obj->x >> 16), _stompY + (obj->y >> 16),
+				_stompX + (obj->x / 65536), _stompY + (obj->y / 65536),
 				obj->priority);
 		}
 	}
@@ -256,8 +256,8 @@ void MinigameBbAnt::initObjects1() {
 	for (int i = 3; i < 12; ++i) {
 		const ObjInit *objInit = getObjInit(i - 3);
 		_objects[i].kind = 6;
-		_objects[i].x = objInit->x << 16;
-		_objects[i].y = objInit->y << 16;
+		_objects[i].x = objInit->x * 65536;
+		_objects[i].y = objInit->y * 65536;
 		_objects[i].xIncr = 0;
 		_objects[i].yIncr = 0;
 		_objects[i].anim = objInit->anim1;
@@ -429,7 +429,7 @@ bool MinigameBbAnt::updateStatus1(int mouseX, int mouseY, uint mouseButtons) {
 	if ((mouseButtons & kLeftButtonClicked) && _objects[2].status == 0 && isMagGlassAtBeavisLeg(2)) {
 		if (_vm->getRandom(10) == 1 && !isAnySoundPlaying(kSoundTbl4, 10))
 			playSound(16);
-		insertSmokeObj(_objects[0].x << 16, _objects[0].y << 16);
+		insertSmokeObj(_objects[0].x * 65536, _objects[0].y * 65536);
 	}
 
 	if (_skullBugCtr > 0) {
@@ -515,8 +515,8 @@ bool MinigameBbAnt::updateStatus2(int mouseX, int mouseY, uint mouseButtons) {
 					Obj *obj = &_objects[i];
 					if (obj->status == 13) {
 						const ObjInit *objInit = getObjInit(i - 3);
-						obj->x = objInit->x << 16;
-						obj->y = objInit->y << 16;
+						obj->x = objInit->x * 65536;
+						obj->y = objInit->y * 65536;
 						obj->anim = objInit->anim3;
 						obj->frameIndex = 0;
 						obj->ticks = _objects[0].anim->frameTicks[0];
@@ -588,7 +588,7 @@ void MinigameBbAnt::insertBugSmokeObj(int x, int y, int bugObjIndex) {
 		obj->priority = 950;
 		if (bugObj->status >= 4 && (bugObj->status <= 6 || bugObj->status == 8)) {
 			obj->xIncr = 0;
-			obj->yIncr = -0x10000;
+			obj->yIncr = (-1 * 65536);
 		} else {
 			obj->xIncr = bugObj->xIncr / 8;
 			obj->yIncr = bugObj->yIncr / 8;
@@ -648,11 +648,11 @@ void MinigameBbAnt::insertBugObj(int kind, int animIndexIncr, int always0, int x
 		obj->field30 = field30;
 		obj->animIndexIncr = animIndexIncr;
 		obj->kind = kind;
-		obj->x = x << 16;
-		obj->y = y << 16;
+		obj->x = x * 65536;
+		obj->y = y * 65536;
 		obj->priority = 610;
-		obj->xIncr = kPosIncrTbl1[0].x << 16;
-		obj->yIncr = kPosIncrTbl1[0].y << 16;
+		obj->xIncr = kPosIncrTbl1[0].x * 65536;
+		obj->yIncr = kPosIncrTbl1[0].y * 65536;
 		obj->anim = objKindAnimTable[0];
 		obj->frameIndex = 0;
 		obj->ticks = obj->anim->frameTicks[0];
@@ -692,8 +692,8 @@ void MinigameBbAnt::updateBugObjAnim(int objIndex) {
 		break;
 	}
 	const ObjAnimation * const *objKindAnimTable = getObjKindAnimTable(obj->kind);
-	obj->xIncr = kPosIncrTbl1[obj->animIndexIncr].x << 16;
-	obj->yIncr = kPosIncrTbl1[obj->animIndexIncr].y << 16;
+	obj->xIncr = kPosIncrTbl1[obj->animIndexIncr].x * 65536;
+	obj->yIncr = kPosIncrTbl1[obj->animIndexIncr].y * 65536;
 	obj->anim = objKindAnimTable[obj->animIndexIncr];
 	obj->frameIndex = 0;
 	obj->ticks = obj->anim->frameTicks[0];
@@ -711,8 +711,8 @@ void MinigameBbAnt::updateObjAnim2(int objIndex) {
 	if (obj->animIndexIncr >= 8)
 		obj->animIndexIncr %= 8;
 	const ObjAnimation * const *objKindAnimTable = getObjKindAnimTable(obj->kind);
-	obj->xIncr = kPosIncrTbl1[obj->animIndex + obj->animIndexIncr].x << 16;
-	obj->yIncr = kPosIncrTbl1[obj->animIndex + obj->animIndexIncr].y << 16;
+	obj->xIncr = kPosIncrTbl1[obj->animIndex + obj->animIndexIncr].x * 65536;
+	obj->yIncr = kPosIncrTbl1[obj->animIndex + obj->animIndexIncr].y * 65536;
 	obj->anim = objKindAnimTable[obj->animIndex + obj->animIndexIncr];
 	obj->frameIndex = 0;
 	obj->ticks = obj->anim->frameTicks[0];
@@ -730,8 +730,8 @@ bool MinigameBbAnt::isBugOutOfScreen(int objIndex) {
 	Obj *obj = &_objects[objIndex];
 
 	return
-		obj->x < -0xa0000 || obj->x > (330 << 16) ||
-		obj->y < -0xa0000 || obj->y > (250 << 16);
+		obj->x < (-10 * 65536) || obj->x > (330 * 65536) ||
+		obj->y < (-10 * 65536) || obj->y > (250 * 65536);
 }
 
 void MinigameBbAnt::updateObjAnim3(int objIndex) {
@@ -743,8 +743,8 @@ void MinigameBbAnt::updateObjAnim3(int objIndex) {
 	if (obj->animIndexIncr > 7)
 		obj->animIndexIncr = 0;
 	const ObjAnimation * const *objKindAnimTable = getObjKindAnimTable(obj->kind);
-	obj->xIncr = kPosIncrTbl1[obj->animIndexIncr].x << 16;
-	obj->yIncr = kPosIncrTbl1[obj->animIndexIncr].y << 16;
+	obj->xIncr = kPosIncrTbl1[obj->animIndexIncr].x * 65536;
+	obj->yIncr = kPosIncrTbl1[obj->animIndexIncr].y * 65536;
 	obj->anim = objKindAnimTable[obj->animIndexIncr];
 }
 
@@ -824,8 +824,8 @@ void MinigameBbAnt::updateBugObj1(int objIndex) {
 		_objects[obj->otherObjIndex].y = obj->y;
 		if (isBugOutOfScreen(objIndex)) {
 			_objects[obj->otherObjIndex].status = 13;
-			_objects[obj->otherObjIndex].x = (500 << 16);
-			_objects[obj->otherObjIndex].y = (500 << 16);
+			_objects[obj->otherObjIndex].x = (500 * 65536);
+			_objects[obj->otherObjIndex].y = (500 * 65536);
 			removeBugObj(objIndex);
 			--_counter1;
 		}
@@ -847,8 +847,8 @@ void MinigameBbAnt::updateBugObj1(int objIndex) {
 		if (flag1) {
 			const ObjAnimation * const *objKindAnimTable = getObjKindAnimTable(obj->kind);
 			obj->status = 7;
-			obj->xIncr = kPosIncrTbl2[obj->animIndexIncr].x << 16;
-			obj->yIncr = kPosIncrTbl2[obj->animIndexIncr].y << 16;
+			obj->xIncr = kPosIncrTbl2[obj->animIndexIncr].x * 65536;
+			obj->yIncr = kPosIncrTbl2[obj->animIndexIncr].y * 65536;
 			obj->anim = objKindAnimTable[obj->animIndexIncr + 8];
 			obj->frameIndex = 0;
 			obj->ticks = obj->anim->frameTicks[0];
@@ -873,8 +873,8 @@ void MinigameBbAnt::updateBugObj1(int objIndex) {
 			obj->anim = obj->anim2;
 			obj->frameIndex = obj->frameIndex2;
 			obj->ticks = obj->ticks2;
-			obj->xIncr = kPosIncrTbl1[obj->animIndex + obj->animIndexIncr].x << 16;
-			obj->yIncr = kPosIncrTbl1[obj->animIndex + obj->animIndexIncr].y << 16;
+			obj->xIncr = kPosIncrTbl1[obj->animIndex + obj->animIndexIncr].x * 65536;
+			obj->yIncr = kPosIncrTbl1[obj->animIndex + obj->animIndexIncr].y * 65536;
 			obj->priority = 610;
 		}
 		break;
@@ -931,7 +931,7 @@ void MinigameBbAnt::updateFootObj(int objIndex) {
 
 	case 1:
 		obj->xIncr = -0x8000;
-		obj->yIncr = -0x40000;
+		obj->yIncr = (-4 * 65536);
 		obj->status = 2;
 		_stompCounter1 += 5;
 		_stompCounter2 = 100;
@@ -941,9 +941,9 @@ void MinigameBbAnt::updateFootObj(int objIndex) {
 		obj->x += obj->xIncr;
 		obj->y += obj->yIncr;
 		obj->yIncr += 0x2000;
-		if (obj->y < (20 << 16)) {
+		if (obj->y < (20 * 65536)) {
 			obj->xIncr = 0x8000;
-			obj->yIncr = (7 << 16);
+			obj->yIncr = (7 * 65536);
 			obj->status = 3;
 		}
 		break;
@@ -953,8 +953,8 @@ void MinigameBbAnt::updateFootObj(int objIndex) {
 		obj->y += obj->yIncr;
 		obj->yIncr += 0x2000;
 		if (obj->y >= 0x4B0000) {
-			obj->x = (40 << 16);
-			obj->y = (75 << 16);
+			obj->x = (40 * 65536);
+			obj->y = (75 * 65536);
 			obj->status = 4;
 			_stompDelay1 = 6;
 			_stompY = 0;
@@ -1023,15 +1023,15 @@ bool MinigameBbAnt::isBugAtCandy(int objIndex, int &candyObjIndex) {
 
 	if (obj->kind >= 1 && obj->kind <= 4) {
 		const BBRect &frameRect1 = obj->anim->frameRects[obj->frameIndex];
-		const int obj1X1 = frameRect1.x + (obj->x >> 16);
-		const int obj1Y1 = frameRect1.y + (obj->y >> 16);
+		const int obj1X1 = frameRect1.x + (obj->x / 65536);
+		const int obj1Y1 = frameRect1.y + (obj->y / 65536);
 		const int obj1X2 = obj1X1 + frameRect1.width;
 		const int obj1Y2 = obj1Y1 + frameRect1.height;
 		for (int i = 3; i < 12 && !result; ++i) {
 			Obj *obj2 = &_objects[i];
 			const BBRect &frameRect2 = obj->anim->frameRects[obj2->frameIndex]; // sic
-			const int obj2X1 = (obj2->x >> 16) + frameRect2.x;
-			const int obj2Y1 = (obj2->y >> 16) + frameRect2.y;
+			const int obj2X1 = (obj2->x / 65536) + frameRect2.x;
+			const int obj2Y1 = (obj2->y / 65536) + frameRect2.y;
 			const int obj2X2 = obj2X1 + frameRect2.width;
 			const int obj2Y2 = obj2Y1 + frameRect2.height;
 			if (obj2->status == 9 && obj1X1 <= obj2X2 && obj1X2 >= obj2X1 && obj1Y1 <= obj2Y2 && obj1Y2 >= obj2Y1) {
@@ -1055,8 +1055,8 @@ bool MinigameBbAnt::isMagGlassAtBug(int objIndex) {
 		const int obj1X2 = obj1X1 + frameRect1.width;
 		const int obj1Y2 = obj1Y1 + frameRect1.height;
 		const BBRect &frameRect2 = obj->anim->frameRects[obj->frameIndex];
-		const int obj2X1 = (obj->x >> 16) + frameRect2.x;
-		const int obj2Y1 = (obj->y >> 16) + frameRect2.y;
+		const int obj2X1 = (obj->x / 65536) + frameRect2.x;
+		const int obj2Y1 = (obj->y / 65536) + frameRect2.y;
 		const int obj2X2 = obj2X1 + frameRect2.width;
 		const int obj2Y2 = obj2Y1 + frameRect2.height;
 		if (obj2X2 >= obj1X1 && obj1X2 >= obj2X1 && obj1Y1 <= obj2Y2 && obj1Y2 >= obj2Y1)
@@ -1076,8 +1076,8 @@ bool MinigameBbAnt::isMagGlassAtBeavisLeg(int objIndex) {
 	const int obj1X2 = obj1X1 + frameRect1.width;
 	const int obj1Y2 = obj1Y1 + frameRect1.height;
 	const BBRect &frameRect2 = obj->anim->frameRects[obj->frameIndex];
-	const int obj2X1 = (obj->x >> 16) + frameRect2.x;
-	const int obj2Y1 = (obj->y >> 16) + frameRect2.y;
+	const int obj2X1 = (obj->x / 65536) + frameRect2.x;
+	const int obj2Y1 = (obj->y / 65536) + frameRect2.y;
 	const int obj2X2 = obj2X1 + frameRect2.width;
 	const int obj2Y2 = obj2Y1 + frameRect2.height;
 	if (obj2X2 >= obj1X1 && obj1X2 >= obj2X1 && obj1Y1 <= obj2Y2 && obj1Y2 >= obj2Y1)
@@ -1089,8 +1089,8 @@ bool MinigameBbAnt::testObj5(int objIndex) {
 	Obj *obj = &_objects[objIndex];
 	bool result = false;
 	if (obj->kind >= 1 && obj->kind <= 5) {
-		const int x = obj->x >> 16;
-		const int y = obj->y >> 16;
+		const int x = obj->x / 65536;
+		const int y = obj->y / 65536;
 		if (x < 0 || x >= 110 || y < 0 || y >= 110) {
 			obj->flag = 0;
 		} else if (!obj->flag) {
diff --git a/engines/bbvs/scene.cpp b/engines/bbvs/scene.cpp
index 5d22ba0..74bbe06 100644
--- a/engines/bbvs/scene.cpp
+++ b/engines/bbvs/scene.cpp
@@ -118,8 +118,8 @@ void BbvsEngine::initScene(bool sounds) {
 			sceneObject->animIndex = soInit->animIndex;
 			sceneObject->frameIndex = sceneObject->anim->frameCount - 1;
 			sceneObject->frameTicks = 1;
-			sceneObject->x = soInit->x << 16;
-			sceneObject->y = soInit->y << 16;
+			sceneObject->x = soInit->x * 65536;
+			sceneObject->y = soInit->y * 65536;
 		}
 	}
 
@@ -142,7 +142,7 @@ void BbvsEngine::initScene(bool sounds) {
 		int minDistance = 0xFFFFFF;
 		for (int cameraNum = 0; cameraNum < 4; ++cameraNum) {
 			CameraInit *cameraInit = _gameModule->getCameraInit(cameraNum);
-			int curDistance = ABS(cameraInit->cameraPos.x - (int)(_buttheadObject->x >> 16) + 160);
+			int curDistance = ABS(cameraInit->cameraPos.x - (int)(_buttheadObject->x / 65536) + 160);
 			if (curDistance < minDistance) {
 				minDistance = curDistance;
 				_currCameraNum = cameraNum;
diff --git a/engines/bbvs/walk.cpp b/engines/bbvs/walk.cpp
index f3207be..ea47c24 100644
--- a/engines/bbvs/walk.cpp
+++ b/engines/bbvs/walk.cpp
@@ -48,8 +48,8 @@ void BbvsEngine::startWalkObject(SceneObject *sceneObject) {
 		return;
 
 	initWalkAreas(sceneObject);
-	_sourceWalkAreaPt.x = sceneObject->x >> 16;
-	_sourceWalkAreaPt.y = sceneObject->y >> 16;
+	_sourceWalkAreaPt.x = sceneObject->x / 65536;
+	_sourceWalkAreaPt.y = sceneObject->y / 65536;
 
 	_sourceWalkArea = getWalkAreaAtPos(_sourceWalkAreaPt);
 	if (!_sourceWalkArea)
@@ -107,8 +107,8 @@ void BbvsEngine::updateWalkObject(SceneObject *sceneObject) {
 }
 
 void BbvsEngine::walkObject(SceneObject *sceneObject, const Common::Point &destPt, int walkSpeed) {
-	int deltaX = destPt.x - (sceneObject->x >> 16);
-	int deltaY = destPt.y - (sceneObject->y >> 16);
+	int deltaX = destPt.x - (sceneObject->x / 65536);
+	int deltaY = destPt.y - (sceneObject->y / 65536);
 	float distance = (float)sqrt((double)(deltaX * deltaX + deltaY * deltaY));
 	// NOTE The original doesn't have this check but without it the whole pathfinding breaks
 	if (distance > 0.0f) {
@@ -190,19 +190,19 @@ WalkInfo *BbvsEngine::addWalkInfo(int16 x, int16 y, int delta, int direction, in
 }
 
 void BbvsEngine::initWalkAreas(SceneObject *sceneObject) {
-	int16 objX = sceneObject->x >> 16;
-	int16 objY = sceneObject->y >> 16;
+	int16 objX = sceneObject->x / 65536;
+	int16 objY = sceneObject->y / 65536;
 	Common::Rect rect;
 	bool doRect = false;
 	Common::Rect *workWalkableRects;
 
 	if (_buttheadObject == sceneObject && _beavisObject->anim) {
 		rect = _beavisObject->anim->frameRects2[_beavisObject->frameIndex];
-		rect.translate(_beavisObject->x >> 16, 1 + (_beavisObject->y >> 16));
+		rect.translate(_beavisObject->x / 65536, 1 + (_beavisObject->y / 65536));
 		doRect = !rect.isEmpty();
 	} else if (_buttheadObject->anim) {
 		rect = _buttheadObject->anim->frameRects2[_buttheadObject->frameIndex];
-		rect.translate(_buttheadObject->x >> 16, 1 + (_buttheadObject->y >> 16));
+		rect.translate(_buttheadObject->x / 65536, 1 + (_buttheadObject->y / 65536));
 		doRect = !rect.isEmpty();
 	}
 
@@ -293,8 +293,8 @@ bool BbvsEngine::canButtheadWalkToDest(const Common::Point &destPt) {
 
 	_walkReachedDestArea = false;
 	initWalkAreas(_buttheadObject);
-	srcPt.x = _buttheadObject->x >> 16;
-	srcPt.y = _buttheadObject->y >> 16;
+	srcPt.x = _buttheadObject->x / 65536;
+	srcPt.y = _buttheadObject->y / 65536;
 	_sourceWalkArea = getWalkAreaAtPos(srcPt);
 	if (_sourceWalkArea) {
 		_destWalkArea = getWalkAreaAtPos(destPt);
@@ -441,7 +441,7 @@ void BbvsEngine::updateWalkableRects() {
 		Animation *anim = sceneObject->anim;
 		if (anim && _buttheadObject != sceneObject && _beavisObject != sceneObject) {
 			Common::Rect rect = sceneObject->anim->frameRects2[sceneObject->frameIndex];
-			rect.translate(sceneObject->x >> 16, sceneObject->y >> 16);
+			rect.translate(sceneObject->x / 65536, sceneObject->y / 65536);
 			int count = _walkableRectsCount;
 			_walkableRectsCount = 0;
 			for (int j = 0; j < count; ++j)


Commit: 216376477a5b3eb35e3f3450461b284ecfed8244
    https://github.com/scummvm/scummvm/commit/216376477a5b3eb35e3f3450461b284ecfed8244
Author: Colin Snover (github.com at zetafleet.com)
Date: 2017-11-10T09:57:03-06:00

Commit Message:
CGE: Remove garbage character from comments

Changed paths:
    engines/cge/snail.cpp


diff --git a/engines/cge/snail.cpp b/engines/cge/snail.cpp
index 1a6ca07..bfeb436 100644
--- a/engines/cge/snail.cpp
+++ b/engines/cge/snail.cpp
@@ -550,7 +550,7 @@ void CGEEngine::snGame(Sprite *spr, int num) {
 		switch (spr->_ref) {
 		case 1:
 			_commandHandler->addCommand(kCmdSay,   20001, 20011, NULL);        // Say "It'a my turn"
-			_commandHandler->addCommand(kCmdSeq,   20001,     1, NULL);        // Throw dice
+			_commandHandler->addCommand(kCmdSeq,   20001,     1, NULL);        // Throw dice
 			_commandHandler->addCommand(kCmdWait,  20001,     1, NULL);        // wait
 			_commandHandler->addCommand(kCmdSetZ,  20700,     2, NULL);        // hide dice
 			_commandHandler->addCommand(kCmdHide,  20007,     1, NULL);        // hide dice
@@ -564,7 +564,7 @@ void CGEEngine::snGame(Sprite *spr, int num) {
 
 		case 20001:
 			_commandHandler->addCommand(kCmdSay,   20002, 20012, NULL);        // Say "Now it's mine"
-			_commandHandler->addCommand(kCmdSeq,   20002,     1, NULL);        // Throw dice
+			_commandHandler->addCommand(kCmdSeq,   20002,     1, NULL);        // Throw dice
 			_commandHandler->addCommand(kCmdWait,  20002,     3, NULL);        // wait
 			_commandHandler->addCommand(kCmdSetZ,  20700,     2, NULL);        // hide dice
 			_commandHandler->addCommand(kCmdHide,  20007,     1, NULL);        // hide dice
@@ -581,7 +581,7 @@ void CGEEngine::snGame(Sprite *spr, int num) {
 			_commandHandler->addCommand(kCmdWalk,  20005,    -1, NULL);        // Walk to table
 			_commandHandler->addCommand(kCmdWait,      1,    -1, NULL);        // Wait
 			_commandHandler->addCommand(kCmdCover,     1, 20101, NULL);        // grasol ??
-			_commandHandler->addCommand(kCmdSeq,   20101,     1, NULL);        // Start Chief animation (20solgra)
+			_commandHandler->addCommand(kCmdSeq,   20101,     1, NULL);        // Start Chief animation (20solgra)
 			_commandHandler->addCommand(kCmdWait,  20101,     5, NULL);        // Wait
 			_commandHandler->addCommand(kCmdSetZ,  20700,     2, NULL);        // Hide dice
 			_commandHandler->addCommand(kCmdHide,  20007,     1, NULL);        // Hide dice





More information about the Scummvm-git-logs mailing list