diff options
| author | Travis Howell | 2005-04-09 06:26:12 +0000 | 
|---|---|---|
| committer | Travis Howell | 2005-04-09 06:26:12 +0000 | 
| commit | 2d40caf7adf24c3b3045563d73e10d7ad3f0c1c7 (patch) | |
| tree | e1adedac38540d3de64c090c3188f03489f06941 | |
| parent | f623a5595cb201ab0d34e710f5c820d2719a8045 (diff) | |
| download | scummvm-rg350-2d40caf7adf24c3b3045563d73e10d7ad3f0c1c7.tar.gz scummvm-rg350-2d40caf7adf24c3b3045563d73e10d7ad3f0c1c7.tar.bz2 scummvm-rg350-2d40caf7adf24c3b3045563d73e10d7ad3f0c1c7.zip | |
Add opcode stub for chase
svn-id: r17468
| -rw-r--r-- | TODO | 1 | ||||
| -rw-r--r-- | scumm/intern.h | 1 | ||||
| -rw-r--r-- | scumm/script_v100he.cpp | 6 | ||||
| -rw-r--r-- | scumm/script_v90he.cpp | 26 | 
4 files changed, 27 insertions, 7 deletions
| @@ -268,6 +268,7 @@ SCUMM    - Add support for o80_unknownE0 type1 (For binoculars in pajama2)    - Add support for o80_unknownE0 type2 (For black board in freddi2 and paper in spyfox)    - Add support for o80_readConfigFile (For loading map.ini details in mustard) +  - Add support for o90_unknown39 (For chase/soccer2004)    - Add support for IMA ADPCM compression for speech files (For soccer2004)    - Add support for U32 code, triggered by case 2001 of kernelGet/Set (For footdemo/soccer2004)      The U32 code seems to control the players movements on field. diff --git a/scumm/intern.h b/scumm/intern.h index 5fd1fa0055..f68e1eb8d3 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -1084,6 +1084,7 @@ protected:  	void o90_cond();  	void o90_dim2dim2Array();  	void o90_redim2dimArray(); +	void o90_unknown39();  	void o90_sortArray();  	void o90_getObjectData();  	void o90_getPaletteData(); diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp index cffc1f16e7..eabe2f8eca 100644 --- a/scumm/script_v100he.cpp +++ b/scumm/script_v100he.cpp @@ -263,7 +263,7 @@ void ScummEngine_v100he::setupOpcodes() {  		/* B0 */  		OPCODE(o72_findObjectWithClassOf),  		OPCODE(o70_polygonHit), -		OPCODE(o6_invalid), +		OPCODE(o90_unknown39),  		OPCODE(o6_invalid),  		/* B4 */  		OPCODE(o72_getNumFreeArrays), @@ -1377,7 +1377,7 @@ void ScummEngine_v100he::o100_wizImageOps() {  	default:  		error("o100_wizImageOps: Unknown case %d", subOp);  	} -	debug(1,"o100_wizImageOps stub (%d)", subOp); +	debug(1,"o100_wizImageOps (%d)", subOp);  }  void ScummEngine_v100he::o100_dim2dim2Array() { @@ -1513,7 +1513,7 @@ void ScummEngine_v100he::o100_paletteOps() {  	default:  		error("o100_paletteOps: Unknown case %d", subOp);  	} -	debug(1, "o100_paletteOps stub (%d)", subOp); +	debug(1, "o100_paletteOps (%d)", subOp);  }  void ScummEngine_v100he::o100_jumpToScriptUnk() { diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp index 979458731e..5f6bbea38d 100644 --- a/scumm/script_v90he.cpp +++ b/scumm/script_v90he.cpp @@ -112,7 +112,7 @@ void ScummEngine_v90he::setupOpcodes() {  		OPCODE(o90_dim2dim2Array),  		/* 38 */  		OPCODE(o90_redim2dimArray), -		OPCODE(o6_invalid), +		OPCODE(o90_unknown39),  		OPCODE(o90_sortArray),  		OPCODE(o6_invalid),  		/* 3C */ @@ -692,7 +692,7 @@ void ScummEngine_v90he::o90_wizImageOps() {  		error("o90_wizImageOps: unhandled case %d", subOp);  	} -	debug(1,"o90_wizImageOps stub (%d)", subOp); +	debug(1,"o90_wizImageOps (%d)", subOp);  }  void ScummEngine_v90he::o90_getDistanceBetweenPoints() { @@ -1962,6 +1962,24 @@ void ScummEngine_v90he::o90_redim2dimArray() {  	}  } +void ScummEngine_v90he::o90_unknown39() { +	// TODO: Array related + +	int array1 = fetchScriptWord(); +	int array2 = fetchScriptWord(); +	int a2_dim1end = pop(); +	int a2_dim1start = pop(); +	int a2_dim2end = pop(); +	int a2_dim2start = pop(); +	int a1_dim1end = pop(); +	int a1_dim1start = pop(); +	int a1_dim2end = pop(); +	int a1_dim2start = pop(); + +	push(0); +	debug(1,"o90_unknown39 stub array1 %d (%d, %d, %d, %d) array2 %d (%d, %d, %d, %d)", array1, a2_dim2start, a2_dim2end, a2_dim1start, a2_dim1end, array2, a1_dim2start, a1_dim2end, a1_dim1start, a1_dim1end); +} +  void ScummEngine_v90he::getArrayDim(int array, int *dim2start, int *dim2end, int *dim1start, int *dim1end) {  	ArrayHeader *ah = (ArrayHeader *)getResourceAddress(rtString, readVar(array));  	assert(ah); @@ -2129,7 +2147,7 @@ void ScummEngine_v90he::o90_getObjectData() {  	default:  		error("o90_getObjectData: Unknown case %d", subOp);  	} -	debug(1,"o90_getObjectData stub (%d)", subOp); +	debug(1,"o90_getObjectData (%d)", subOp);  }  void ScummEngine_v90he::o90_getPaletteData() { @@ -2245,7 +2263,7 @@ void ScummEngine_v90he::o90_paletteOps() {  	default:  		error("o90_paletteOps: Unknown case %d", subOp);  	} -	debug(0,"o90_paletteOps stub (%d)", subOp); +	debug(0,"o90_paletteOps (%d)", subOp);  } | 
