[Scummvm-cvs-logs] CVS: scummvm/simon saveload.cpp,1.15,1.16 simon.cpp,1.514,1.515 vga.cpp,1.133,1.134 vga.h,1.11,1.12

kirben kirben at users.sourceforge.net
Fri Oct 7 00:00:50 CEST 2005


Update of /cvsroot/scummvm/scummvm/simon
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32405/simon

Modified Files:
	saveload.cpp simon.cpp vga.cpp vga.h 
Log Message:

FF starts VGA script.


Index: saveload.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/saveload.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- saveload.cpp	6 Oct 2005 14:34:24 -0000	1.15
+++ saveload.cpp	7 Oct 2005 06:59:49 -0000	1.16
@@ -487,7 +487,12 @@
 char *SimonEngine::gen_savename(int slot) {
 	static char buf[15];
 
-	if (_game & GF_SIMON2) {
+	if (_game == GAME_FEEBLEFILES) {
+		if (slot == 999)
+			sprintf(buf, "save.%.3d", slot);
+		else
+			sprintf(buf, "feeble.%.3d", slot);
+	} else if (_game & GF_SIMON2) {
 		sprintf(buf, "simon2.%.3d", slot);
 	} else {
 		sprintf(buf, "simon1.%.3d", slot);

Index: simon.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/simon.cpp,v
retrieving revision 1.514
retrieving revision 1.515
diff -u -d -r1.514 -r1.515
--- simon.cpp	6 Oct 2005 14:34:24 -0000	1.514
+++ simon.cpp	7 Oct 2005 06:59:49 -0000	1.515
@@ -75,7 +75,7 @@
 	{"simon2mac", "Simon the Sorcerer 2 Talkie (Amiga or Mac)", GAME_SIMON2WIN, 0},
 	{"simon1cd32", "Simon the Sorcerer 1 Talkie (Amiga CD32)", GAME_SIMON1CD32, "gameamiga"},
 	{"simon1demo", "Simon the Sorcerer 1 (DOS Demo)", GAME_SIMON1DEMO, "GDEMO"},
-	{"ff", "The Feeble Files", GAME_FEEBLEFILES, "GAME22"},
+	{"feeble", "The Feeble Files", GAME_FEEBLEFILES, "GAME22"},
 
 	{NULL, NULL, 0, NULL}
 };
@@ -2477,7 +2477,7 @@
 	uint num, num_lines;
 	VgaPointersEntry *vpe;
 	byte *bb, *b;
-	uint16 c;
+	// uint16 c;
 	const byte *vc_ptr_org;
 
 	_windowNum = mode;
@@ -2510,12 +2510,22 @@
 	// ensure flipping complete
 
 	bb = _curVgaFile1;
-	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);
 
-	while (READ_BE_UINT16(&((VgaFile1Struct0x8 *) b)->id) != vga_res_id)
-		b += sizeof(VgaFile1Struct0x8);
+	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);
+
+		while (READ_LE_UINT16(&((FFVgaFile1Struct0x8 *) b)->id) != vga_res_id)
+			b += sizeof(FFVgaFile1Struct0x8);
+	} 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);
+
+		while (READ_BE_UINT16(&((VgaFile1Struct0x8 *) b)->id) != vga_res_id)
+			b += sizeof(VgaFile1Struct0x8);
+	}
 
 	if (!(_game & GF_SIMON2)) {
 		if (num == 16300) {
@@ -2534,7 +2544,11 @@
 
 	vc_ptr_org = _vcPtr;
 
-	_vcPtr = _curVgaFile1 + READ_BE_UINT16(&((VgaFile1Struct0x8 *) b)->script_offs);
+	if (_game == GAME_FEEBLEFILES) {
+		_vcPtr = _curVgaFile1 + READ_LE_UINT16(&((FFVgaFile1Struct0x8 *) b)->script_offs);
+	} else {
+		_vcPtr = _curVgaFile1 + READ_BE_UINT16(&((VgaFile1Struct0x8 *) b)->script_offs);
+	}
 	//dump_vga_script(_vcPtr, num, vga_res_id);
 	run_vga_script();
 	_vcPtr = vc_ptr_org;

Index: vga.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/vga.cpp,v
retrieving revision 1.133
retrieving revision 1.134
diff -u -d -r1.133 -r1.134
--- vga.cpp	5 Oct 2005 12:16:49 -0000	1.133
+++ vga.cpp	7 Oct 2005 06:59:49 -0000	1.134
@@ -147,7 +147,12 @@
 }
 
 uint SimonEngine::vc_read_next_word() {
-	uint a = READ_BE_UINT16(_vcPtr);
+	uint a;
+	if (_game == GAME_FEEBLEFILES) {
+		a = READ_LE_UINT16(_vcPtr);
+	} else {
+ 		a = READ_BE_UINT16(_vcPtr);
+	}
 	_vcPtr += 2;
 	return a;
 }
@@ -623,10 +628,17 @@
 	p2 = _curVgaFile2 + state.image * 8;
 	state.depack_src = _curVgaFile2 + READ_BE_UINT32(p2);
 
-	width = READ_BE_UINT16(p2 + 6) >> 4;
+	if (_game == GAME_FEEBLEFILES) {
+		width = READ_LE_UINT16(p2 + 6);
+	} else {
+		width = READ_BE_UINT16(p2 + 6) >> 4;
+	}
+
 	height = p2[5];
 	flags = p2[4];
 
+	debug(1, "Width %d Height %d Flags 0x%x\n", width, height, flags);
+
 	if (height == 0 || width == 0)
 		return;
 

Index: vga.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/vga.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- vga.h	5 Oct 2005 11:37:26 -0000	1.11
+++ vga.h	7 Oct 2005 06:59:49 -0000	1.12
@@ -28,6 +28,32 @@
 	#pragma START_PACK_STRUCTS
 #endif
 
+// Feeble Files
+struct FFVgaFile1Header {
+	uint16 x_1;
+	uint16 hdr2_start;
+	uint16 x_2, x_3;
+} GCC_PACK;
+
+struct FFVgaFile1Header2 {
+	uint16 unk1;
+	uint16 x_2;
+	uint16 id_count;
+	uint16 x_3;
+	uint16 unk2_offs;
+	uint16 x_4;
+	uint16 id_table;
+	uint16 x_5;
+} GCC_PACK;
+
+struct FFVgaFile1Struct0x8 {
+	uint16 id;
+	uint16 x_1;
+	uint16 script_offs;
+	uint16 x_2;
+} GCC_PACK;
+
+// Simon 1/2
 struct VgaFile1Header {
 	uint16 x_1, x_2;
 	uint16 hdr2_start;





More information about the Scummvm-git-logs mailing list