saveload.c
changeset 2927 15690f1a9bb8
parent 2916 8f1aa489701f
child 2952 6a26eeda9679
child 9956 341e963c63c4
equal deleted inserted replaced
2926:d503d725d7d4 2927:15690f1a9bb8
  1288 /** We have written the whole game into memory, _save_pool, now find
  1288 /** We have written the whole game into memory, _save_pool, now find
  1289  * and appropiate compressor and start writing to file.
  1289  * and appropiate compressor and start writing to file.
  1290  */
  1290  */
  1291 static void* SaveFileToDisk(void *arg)
  1291 static void* SaveFileToDisk(void *arg)
  1292 {
  1292 {
  1293 	const SaveLoadFormat *fmt = GetSavegameFormat(_savegame_format);
  1293 	const SaveLoadFormat *fmt;
  1294 	uint32 hdr[2];
  1294 	uint32 hdr[2];
  1295 
  1295 
  1296 	if (arg != NULL) OTTD_SendThreadMessage(MSG_OTTD_SAVETHREAD_START);
  1296 	if (arg != NULL) OTTD_SendThreadMessage(MSG_OTTD_SAVETHREAD_START);
  1297 
  1297 
  1298 	/* XXX - Setup setjmp error handler if an error occurs anywhere deep during
  1298 	/* XXX - Setup setjmp error handler if an error occurs anywhere deep during
  1304 		fprintf(stderr, "Save game failed: %s.", _sl.excpt_msg);
  1304 		fprintf(stderr, "Save game failed: %s.", _sl.excpt_msg);
  1305 		if (arg != NULL) OTTD_SendThreadMessage(MSG_OTTD_SAVETHREAD_ERROR);
  1305 		if (arg != NULL) OTTD_SendThreadMessage(MSG_OTTD_SAVETHREAD_ERROR);
  1306 		else SaveFileError();
  1306 		else SaveFileError();
  1307 		return NULL;
  1307 		return NULL;
  1308 	}
  1308 	}
       
  1309 
       
  1310 	fmt = GetSavegameFormat(_savegame_format);
  1309 
  1311 
  1310 	/* We have written our stuff to memory, now write it to file! */
  1312 	/* We have written our stuff to memory, now write it to file! */
  1311 	hdr[0] = fmt->tag;
  1313 	hdr[0] = fmt->tag;
  1312 	hdr[1] = TO_BE32(SAVEGAME_VERSION << 16);
  1314 	hdr[1] = TO_BE32(SAVEGAME_VERSION << 16);
  1313 	if (fwrite(hdr, sizeof(hdr), 1, _sl.fh) != 1) SlError("file write failed");
  1315 	if (fwrite(hdr, sizeof(hdr), 1, _sl.fh) != 1) SlError("file write failed");