--- 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 {