[Scummvm-cvs-logs] CVS: scummvm/gob map.cpp,1.6,1.7

Max Horn fingolfin at users.sourceforge.net
Mon Apr 11 13:38:43 CEST 2005


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

Modified Files:
	map.cpp 
Log Message:
Endian fixes, getting past the 'Please wait...' loading screen now

Index: map.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/map.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- map.cpp	11 Apr 2005 20:04:14 -0000	1.6
+++ map.cpp	11 Apr 2005 20:38:17 -0000	1.7
@@ -394,6 +394,12 @@
 	map_avoDataPtr += size;
 }
 
+uint16 map_loadFromAvo_LE_UINT16() {
+	uint16 tmp = READ_LE_UINT16(map_avoDataPtr);
+	map_avoDataPtr += 2;
+	return tmp;
+}
+
 void map_loadItemToObject(void) {
 	int16 flag;
 	int16 count;
@@ -533,21 +539,26 @@
 				if (gob_goblins[i]->stateMach[state][col] == 0)
 					continue;
 
-				gob_goblins[i]->stateMach[state][col] = (Gob_State *)malloc(sizeof(Gob_State));
+				Gob_State *tmpState = (Gob_State *)malloc(sizeof(Gob_State));
+				gob_goblins[i]->stateMach[state][col] = tmpState;
 
-				map_loadDataFromAvo((char *)gob_goblins[i]->stateMach[state][col], 4);
+				tmpState->animation = map_loadFromAvo_LE_UINT16();
+				tmpState->layer = map_loadFromAvo_LE_UINT16();
 				map_avoDataPtr += 8;
-				map_loadDataFromAvo(((char *)gob_goblins[i]->stateMach[state][col]) + 4, 4);
+				tmpState->unk0 = map_loadFromAvo_LE_UINT16();
+				tmpState->unk1 = map_loadFromAvo_LE_UINT16();
 
 				map_avoDataPtr += 2;
 				if (READ_LE_UINT32(map_avoDataPtr) != 0) {
 					map_avoDataPtr += 4;
-					map_loadDataFromAvo((char *)(&gob_goblins[i]->stateMach[state][col]->sndItem), 2);
+					tmpState->sndItem = map_loadFromAvo_LE_UINT16();
 				} else {
 					map_avoDataPtr += 6;
-					gob_goblins[i]->stateMach[state][col]->sndItem = -1;
+					tmpState->sndItem = -1;
 				}
-				map_loadDataFromAvo((char *)(&gob_goblins[i]->stateMach[state][col]->freq), 6);
+				tmpState->freq = map_loadFromAvo_LE_UINT16();
+				tmpState->repCount = map_loadFromAvo_LE_UINT16();
+				tmpState->unk2 = map_loadFromAvo_LE_UINT16();
 			}
 		}
 	}
@@ -595,8 +606,7 @@
 		pState->unk2 = 0;
 	}
 
-	map_loadDataFromAvo((char *)&gob_objCount, 2);
-	gob_objCount = FROM_LE_16(gob_objCount);
+	gob_objCount = map_loadFromAvo_LE_UINT16();
 	for (i = 0; i < gob_objCount; i++) {
 		gob_objects[i] =
 		    (Gob_Object *) malloc(sizeof(Gob_Object));
@@ -626,21 +636,26 @@
 				if (gob_objects[i]->stateMach[state][col] == 0)
 					continue;
 
-				gob_objects[i]->stateMach[state][col] = (Gob_State *)malloc(sizeof(Gob_State));
+				Gob_State *tmpState = (Gob_State *)malloc(sizeof(Gob_State));
+				gob_objects[i]->stateMach[state][col] = tmpState;
 
-				map_loadDataFromAvo((char *)gob_objects[i]->stateMach[state][col], 4);
+				tmpState->animation = map_loadFromAvo_LE_UINT16();
+				tmpState->layer = map_loadFromAvo_LE_UINT16();
 				map_avoDataPtr += 8;
-				map_loadDataFromAvo(((char *)gob_objects[i]->stateMach[state][col]) + 4, 4);
+				tmpState->unk0 = map_loadFromAvo_LE_UINT16();
+				tmpState->unk1 = map_loadFromAvo_LE_UINT16();
 
 				map_avoDataPtr += 2;
 				if (READ_LE_UINT32(map_avoDataPtr) != 0) {
 					map_avoDataPtr += 4;
-					map_loadDataFromAvo((char *)(&gob_objects[i]->stateMach[state][col]->sndItem), 2);
+					tmpState->sndItem = map_loadFromAvo_LE_UINT16();
 				} else {
 					map_avoDataPtr += 6;
-					gob_objects[i]->stateMach[state][col]->sndItem = -1;
+					tmpState->sndItem = -1;
 				}
-				map_loadDataFromAvo((char *)(&gob_objects[i]->stateMach[state][col]->freq), 6);
+				tmpState->freq = map_loadFromAvo_LE_UINT16();
+				tmpState->repCount = map_loadFromAvo_LE_UINT16();
+				tmpState->unk2 = map_loadFromAvo_LE_UINT16();
 			}
 		}
 
@@ -669,8 +684,7 @@
 	gob_objects[10]->type = 1;
 	gob_objects[10]->unk14 = 1;
 
-	map_loadDataFromAvo((char *)&state, 2);
-	state = FROM_LE_16(state);
+	state = map_loadFromAvo_LE_UINT16();
 	for (i = 0; i < state; i++) {
 		map_avoDataPtr += 30;
 





More information about the Scummvm-git-logs mailing list