diff options
| -rw-r--r-- | scumm/script_v2.cpp | 24 | ||||
| -rw-r--r-- | scumm/scumm.h | 4 | 
2 files changed, 22 insertions, 6 deletions
| diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp index 838fb0dff6..df5c0cb286 100644 --- a/scumm/script_v2.cpp +++ b/scumm/script_v2.cpp @@ -302,8 +302,8 @@ void Scumm::setupOpcodes2()  		/* D4 */  		&Scumm::o6_invalid,  		&Scumm::o6_jumpToScript, -		&Scumm::o6_land, -		&Scumm::o6_lor, +		&Scumm::o6_band, +		&Scumm::o6_bor,  		/* D8 */  		&Scumm::o6_isRoomScriptRunning,  		&Scumm::o6_invalid, @@ -625,8 +625,8 @@ void Scumm::setupOpcodes2()  		/* D4 */  		"o6_invalid",  		"o6_jumpToScript", -		"o6_land", -		"o6_lor", +		"o6_band", +		"o6_bor",  		/* D8 */  		"o6_isRoomScriptRunning",  		"o6_invalid", @@ -889,18 +889,30 @@ void Scumm::o6_div()  	push(pop() / a);  } -void Scumm::o6_land() +void Scumm::o6_land()	// Logical And  {  	int a = pop();  	push(pop() && a);  } -void Scumm::o6_lor() +void Scumm::o6_lor()	// Logical Or  {  	int a = pop();  	push(pop() || a);  } +void Scumm::o6_bor()	// Bitwise Or +{ +	int a = pop(); +	push(pop() | a); +} + +void Scumm::o6_band()	// Bitwise And +{ +	int a = pop(); +	push(pop() | a); +} +  void Scumm::o6_kill()  {  	pop(); diff --git a/scumm/scumm.h b/scumm/scumm.h index 9117c44d7a..f800ceb2b7 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -541,6 +541,7 @@ public:  	void runAllScripts();  	void setupOpcodes();  	void setupOpcodes2();	 +	//void setupOpcodes3();	  	void cutscene(int16 *args);  	void endCutscene();  	void exitCutscene(); @@ -1224,6 +1225,9 @@ public:  	void o6_drawBlastObject();  	void o6_getActorPriority();  	void o6_unknownCD(); +	void o6_bor(); +	void o6_band(); +	// void o7_userfaceOps();  	/* Scumm Vars */  	byte VAR_EGO; | 
