diff options
| author | Travis Howell | 2005-10-09 12:12:24 +0000 | 
|---|---|---|
| committer | Travis Howell | 2005-10-09 12:12:24 +0000 | 
| commit | 0006c3f3950e9a78f956e68e1c4e12f9733c8d43 (patch) | |
| tree | 89058cec43d64ce9193eaf3a45e5f42987cb8224 /simon/simon.cpp | |
| parent | 6b897dd90b26baf4453cd116ed25bb122a3232c8 (diff) | |
| download | scummvm-rg350-0006c3f3950e9a78f956e68e1c4e12f9733c8d43.tar.gz scummvm-rg350-0006c3f3950e9a78f956e68e1c4e12f9733c8d43.tar.bz2 scummvm-rg350-0006c3f3950e9a78f956e68e1c4e12f9733c8d43.zip  | |
Clean up VGA headers.
More changes for FF.
svn-id: r18988
Diffstat (limited to 'simon/simon.cpp')
| -rw-r--r-- | simon/simon.cpp | 99 | 
1 files changed, 65 insertions, 34 deletions
diff --git a/simon/simon.cpp b/simon/simon.cpp index d13501c52a..52b76683bb 100644 --- a/simon/simon.cpp +++ b/simon/simon.cpp @@ -365,11 +365,11 @@ SimonEngine::SimonEngine(GameDetector *detector, OSystem *syst)  	if (_game == GAME_FEEBLEFILES) {  		NUM_VIDEO_OP_CODES = 85;  #ifndef __PALM_OS__ -		VGA_MEM_SIZE = 2000000; +		VGA_MEM_SIZE = 7500000;  #else  		VGA_MEM_SIZE = gVars->memory[kMemSimon2Games];  #endif -		TABLES_MEM_SIZE = 100000; +		TABLES_MEM_SIZE = 200000;  	} else if (_game & GF_SIMON2) {  		TABLE_INDEX_BASE = 1580 / 4;  		TEXT_INDEX_BASE = 1500 / 4; @@ -2498,7 +2498,7 @@ void SimonEngine::set_video_mode_internal(uint mode, uint vga_res_id) {  	uint num, num_lines;  	VgaPointersEntry *vpe;  	byte *bb, *b; -	// uint16 c; +	// uint16 count;  	const byte *vc_ptr_org;  	_windowNum = mode; @@ -2533,19 +2533,19 @@ void SimonEngine::set_video_mode_internal(uint mode, uint vga_res_id) {  	bb = _curVgaFile1;  	if (_game == GAME_FEEBLEFILES) { -		b = bb + READ_LE_UINT16(&((FFVgaFile1Header *) bb)->hdr2_start); -		//c = READ_LE_UINT16(&((FFVgaFile1Header2 *) b)->unk1); -		b = bb + READ_LE_UINT16(&((FFVgaFile1Header2 *) b)->unk2_offs); +		b = bb + READ_LE_UINT16(&((VgaFileHeader_Feeble *) bb)->hdr2_start); +		//count = READ_LE_UINT16(&((VgaFileHeader2_Feeble *) b)->imageCount); +		b = bb + READ_LE_UINT16(&((VgaFileHeader2_Feeble *) b)->imageTable); -		while (READ_LE_UINT16(&((FFVgaFile1Struct0x8 *) b)->id) != vga_res_id) -			b += sizeof(FFVgaFile1Struct0x8); +		while (READ_LE_UINT16(&((ImageHeader_Feeble *) b)->id) != vga_res_id) +			b += sizeof(ImageHeader_Feeble);  	} else { -		b = bb + READ_BE_UINT16(&((VgaFile1Header *) bb)->hdr2_start); -		//c = READ_BE_UINT16(&((VgaFile1Header2 *) b)->unk1); -		b = bb + READ_BE_UINT16(&((VgaFile1Header2 *) b)->unk2_offs); +		b = bb + READ_BE_UINT16(&((VgaFileHeader_Simon *) bb)->hdr2_start); +		//count = READ_BE_UINT16(&((VgaFileHeader2_Simon *) b)->imageCount); +		b = bb + READ_BE_UINT16(&((VgaFileHeader2_Simon *) b)->imageTable); -		while (READ_BE_UINT16(&((VgaFile1Struct0x8 *) b)->id) != vga_res_id) -			b += sizeof(VgaFile1Struct0x8); +		while (READ_BE_UINT16(&((ImageHeader_Simon *) b)->id) != vga_res_id) +			b += sizeof(ImageHeader_Simon);  	}  	if (!(_game & GF_SIMON2)) { @@ -2566,9 +2566,9 @@ void SimonEngine::set_video_mode_internal(uint mode, uint vga_res_id) {  	vc_ptr_org = _vcPtr;  	if (_game == GAME_FEEBLEFILES) { -		_vcPtr = _curVgaFile1 + READ_LE_UINT16(&((FFVgaFile1Struct0x8 *) b)->script_offs); +		_vcPtr = _curVgaFile1 + READ_LE_UINT16(&((ImageHeader_Feeble *) b)->scriptOffs);  	} else { -		_vcPtr = _curVgaFile1 + READ_BE_UINT16(&((VgaFile1Struct0x8 *) b)->script_offs); +		_vcPtr = _curVgaFile1 + READ_BE_UINT16(&((ImageHeader_Simon *) b)->scriptOffs);  	}  	//dump_vga_script(_vcPtr, num, vga_res_id);  	run_vga_script(); @@ -2825,10 +2825,17 @@ void SimonEngine::timer_vga_sprites() {  		_windowNum = vsp->windowNum;  		_vgaCurSpriteId = vsp->id; -		params[0] = READ_BE_UINT16(&vsp->image); -		params[1] = READ_BE_UINT16(&vsp->palette); -		params[2] = READ_BE_UINT16(&vsp->x); -		params[3] = READ_BE_UINT16(&vsp->y); +		if (_game == GAME_FEEBLEFILES) { +			params[0] = READ_LE_UINT16(&vsp->image); +			params[1] = READ_LE_UINT16(&vsp->palette); +			params[2] = READ_LE_UINT16(&vsp->x); +			params[3] = READ_LE_UINT16(&vsp->y); +		} else { +			params[0] = READ_BE_UINT16(&vsp->image); +			params[1] = READ_BE_UINT16(&vsp->palette); +			params[2] = READ_BE_UINT16(&vsp->x); +			params[3] = READ_BE_UINT16(&vsp->y); +		}  		if (_game & GF_SIMON2) {  			*(byte *)(¶ms[4]) = (byte)vsp->flags; @@ -2906,11 +2913,19 @@ void SimonEngine::timer_vga_sprites_2() {  		if (vsp->image)  			fprintf(_dumpFile, "id:%5d image:%3d base-color:%3d x:%3d y:%3d flags:%x\n",  							vsp->id, vsp->image, vsp->palette, vsp->x, vsp->y, vsp->flags); -		params[0] = READ_BE_UINT16(&vsp->image); -		params[1] = READ_BE_UINT16(&vsp->palette); -		params[2] = READ_BE_UINT16(&vsp->x); -		params[3] = READ_BE_UINT16(&vsp->y); -		params[4] = READ_BE_UINT16(&vsp->flags); +		if (_game == GAME_FEEBLEFILES) { +			params[0] = READ_LE_UINT16(&vsp->image); +			params[1] = READ_LE_UINT16(&vsp->palette); +			params[2] = READ_LE_UINT16(&vsp->x); +			params[3] = READ_LE_UINT16(&vsp->y); +			params[4] = READ_LE_UINT16(&vsp->flags); +		} else { +			params[0] = READ_BE_UINT16(&vsp->image); +			params[1] = READ_BE_UINT16(&vsp->palette); +			params[2] = READ_BE_UINT16(&vsp->x); +			params[3] = READ_BE_UINT16(&vsp->y); +			params[4] = READ_BE_UINT16(&vsp->flags); +		}  		_vcPtr = (const byte *)params;  		vc10_draw(); @@ -3469,21 +3484,37 @@ void SimonEngine::loadSprite(uint windowNum, uint fileId, uint vgaSpriteId, uint  	}  	pp = _curVgaFile1; -	p = pp + READ_BE_UINT16(&((VgaFile1Header *) pp)->hdr2_start); - -	count = READ_BE_UINT16(&((VgaFile1Header2 *) p)->id_count); -	p = pp + READ_BE_UINT16(&((VgaFile1Header2 *) p)->id_table); +	if (_game == GAME_FEEBLEFILES) { +		p = pp + READ_LE_UINT16(&((VgaFileHeader_Feeble *) pp)->hdr2_start); +		count = READ_LE_UINT16(&((VgaFileHeader2_Feeble *) p)->animationCount); +		p = pp + READ_LE_UINT16(&((VgaFileHeader2_Feeble *) p)->animationTable); +	} else { +		p = pp + READ_BE_UINT16(&((VgaFileHeader_Simon *) pp)->hdr2_start); +		count = READ_BE_UINT16(&((VgaFileHeader2_Simon *) p)->animationCount); +		p = pp + READ_BE_UINT16(&((VgaFileHeader2_Simon *) p)->animationTable); +	}  	for (;;) { -		if (READ_BE_UINT16(&((VgaFile1Struct0x6 *) p)->id) == vgaSpriteId) { +		if (_game == GAME_FEEBLEFILES) { +			if (READ_LE_UINT16(&((AnimationHeader_Feeble *) p)->id) == vgaSpriteId) { +				if (_startVgaScript) +					dump_vga_script(pp + READ_LE_UINT16(&((AnimationHeader_Feeble*)p)->scriptOffs), fileId, vgaSpriteId); -			if (_startVgaScript) -				dump_vga_script(pp + READ_BE_UINT16(&((VgaFile1Struct0x6*)p)->script_offs), fileId, vgaSpriteId); +				add_vga_timer(VGA_DELAY_BASE, pp + READ_LE_UINT16(&((AnimationHeader_Feeble *) p)->scriptOffs), vgaSpriteId, fileId); +				break; +			} +			p += sizeof(AnimationHeader_Feeble); +		} else { +			if (READ_BE_UINT16(&((AnimationHeader_Simon *) p)->id) == vgaSpriteId) { +				if (_startVgaScript) +					dump_vga_script(pp + READ_BE_UINT16(&((AnimationHeader_Simon*)p)->scriptOffs), fileId, vgaSpriteId); -			add_vga_timer(VGA_DELAY_BASE, pp + READ_BE_UINT16(&((VgaFile1Struct0x6 *) p)->script_offs), vgaSpriteId, fileId); -			break; +				add_vga_timer(VGA_DELAY_BASE, pp + READ_BE_UINT16(&((AnimationHeader_Simon *) p)->scriptOffs), vgaSpriteId, fileId); +				break; +			} +			p += sizeof(AnimationHeader_Simon);  		} -		p += sizeof(VgaFile1Struct0x6); +  		if (!--count) {  			vsp->id = 0;  			break;  | 
