(svn r8222) [0.5] -Backport from trunk (lang, r8171, r8186, r8218): 0.5
authorDarkvater
Wed, 17 Jan 2007 23:39:13 +0000
branch0.5
changeset 5421 96c2e24bfe30
parent 5420 e3317580e46a
child 5422 bd6873dd1c40
(svn r8222) [0.5] -Backport from trunk (lang, r8171, r8186, r8218):
- last missed chunk of danish language changes (lang)
- (FS#556) return SL_ERROR when unthreaded saves failed (r8171)
- (FS#557) apply railtype offset to station graphics if no custom station is in use (r8186)
- Increase spritecache size to 2MB (r8218).
lang/danish.txt
network_server.c
saveload.c
spritecache.c
station_cmd.c
--- a/lang/danish.txt	Wed Jan 17 23:13:19 2007 +0000
+++ b/lang/danish.txt	Wed Jan 17 23:39:13 2007 +0000
@@ -1117,7 +1117,7 @@
 STR_CONFIG_PATCHES_SMOOTH_ECONOMY                               :{LTBLUE}Aktiver rolig økonomi (flere små ændringer)
 STR_CONFIG_PATCHES_ALLOW_SHARES                                 :{LTBLUE}Tillad at købe aktier i andre selskaber
 STR_CONFIG_PATCHES_DRAG_SIGNALS_DENSITY                         :{LTBLUE}Ved trækning placer signal hvert: {ORANGE}{STRING} felt
-STR_CONFIG_PATCHES_TOOLBAR_POS                                  :{LTBLUE}Placering af værktøjslinie: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TOOLBAR_POS                                  :{LTBLUE}Placering af værktøjslinje: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT                             :Venstre
 STR_CONFIG_PATCHES_TOOLBAR_POS_CENTER                           :Center
 STR_CONFIG_PATCHES_TOOLBAR_POS_RIGHT                            :Højre
--- a/network_server.c	Wed Jan 17 23:13:19 2007 +0000
+++ b/network_server.c	Wed Jan 17 23:39:13 2007 +0000
@@ -287,6 +287,8 @@
 		file_pointer = fopen(filename, "rb");
 		fseek(file_pointer, 0, SEEK_END);
 
+		if (ftell(file_pointer) == 0) error("network savedump failed - zero sized savegame?");
+
 		// Now send the _frame_counter and how many packets are coming
 		p = NetworkSend_Init(PACKET_SERVER_MAP);
 		NetworkSend_uint8(p, MAP_PACKET_START);
--- a/saveload.c	Wed Jan 17 23:13:19 2007 +0000
+++ b/saveload.c	Wed Jan 17 23:39:13 2007 +0000
@@ -1429,7 +1429,7 @@
 /** We have written the whole game into memory, _Savegame_pool, now find
  * and appropiate compressor and start writing to file.
  */
-static void* SaveFileToDisk(void *arg)
+static SaveOrLoadResult SaveFileToDisk(bool threaded)
 {
 	const SaveLoadFormat *fmt;
 	uint32 hdr[2];
@@ -1441,12 +1441,12 @@
 		_sl.excpt_uninit();
 
 		fprintf(stderr, "Save game failed: %s.", _sl.excpt_msg);
-		if (arg != NULL) {
+		if (threaded) {
 			OTTD_SendThreadMessage(MSG_OTTD_SAVETHREAD_ERROR);
 		} else {
 			SaveFileError();
 		}
-		return NULL;
+		return SL_ERROR;
 	}
 
 	fmt = GetSavegameFormat(_savegame_format);
@@ -1479,7 +1479,14 @@
 	GetSavegameFormat("memory")->uninit_write(); // clean the memorypool
 	fclose(_sl.fh);
 
-	if (arg != NULL) OTTD_SendThreadMessage(MSG_OTTD_SAVETHREAD_DONE);
+	if (threaded) OTTD_SendThreadMessage(MSG_OTTD_SAVETHREAD_DONE);
+
+	return SL_OK;
+}
+
+static void* SaveFileToDiskThread(void *arg)
+{
+	SaveFileToDisk(true);
 	return NULL;
 }
 
@@ -1567,11 +1574,14 @@
 		SlWriteFill(); // flush the save buffer
 
 		SaveFileStart();
-		if (_network_server ||
-					(save_thread = OTTDCreateThread(&SaveFileToDisk, (void*)"")) == NULL) {
-			DEBUG(misc, 1) ("[Sl] Cannot create savegame thread, reverting to single-threaded mode...");
-			SaveFileToDisk(NULL);
+		if (_network_server || (save_thread = OTTDCreateThread(&SaveFileToDiskThread, NULL)) == NULL) {
+			SaveOrLoadResult result;
+
+			if (!_network_server) DEBUG(misc, 1) ("Cannot create savegame thread, reverting to single-threaded mode...");
+			result = SaveFileToDisk(false);
 			SaveFileDone();
+
+			return result;
 		}
 
 	} else { /* LOAD game */
--- a/spritecache.c	Wed Jan 17 23:13:19 2007 +0000
+++ b/spritecache.c	Wed Jan 17 23:39:13 2007 +0000
@@ -9,7 +9,9 @@
 #include "table/sprites.h"
 #include "fileio.h"
 
-#define SPRITE_CACHE_SIZE 1024*1024
+#ifndef SPRITE_CACHE_SIZE
+# define SPRITE_CACHE_SIZE 2*1024*1024
+#endif /* SPRITE_CACHE_SIZE */
 
 #define WANT_NEW_LRU
 
--- a/station_cmd.c	Wed Jan 17 23:13:19 2007 +0000
+++ b/station_cmd.c	Wed Jan 17 23:39:13 2007 +0000
@@ -2129,7 +2129,7 @@
 
 	foreach_draw_tile_seq(dtss, t->seq) {
 		image = dtss->image;
-		if (HASBIT(image, 30)) {
+		if (relocation == 0 || HASBIT(image, 30)) {
 			CLRBIT(image, 30);
 			image += rti->total_offset;
 		} else {