1
0
Fork 0

(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).
release/0.5
Darkvater 2007-01-17 23:39:13 +00:00
parent 1a5957ef7f
commit c3fcb2ef2a
5 changed files with 25 additions and 11 deletions

View File

@ -1117,7 +1117,7 @@ STR_CONFIG_PATCHES_ENDING_YEAR :{LTBLUE}Afslut
STR_CONFIG_PATCHES_SMOOTH_ECONOMY :{LTBLUE}Aktiver rolig økonomi (flere små ændringer) 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_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_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_LEFT :Venstre
STR_CONFIG_PATCHES_TOOLBAR_POS_CENTER :Center STR_CONFIG_PATCHES_TOOLBAR_POS_CENTER :Center
STR_CONFIG_PATCHES_TOOLBAR_POS_RIGHT :Højre STR_CONFIG_PATCHES_TOOLBAR_POS_RIGHT :Højre

View File

@ -287,6 +287,8 @@ DEF_SERVER_SEND_COMMAND(PACKET_SERVER_MAP)
file_pointer = fopen(filename, "rb"); file_pointer = fopen(filename, "rb");
fseek(file_pointer, 0, SEEK_END); 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 // Now send the _frame_counter and how many packets are coming
p = NetworkSend_Init(PACKET_SERVER_MAP); p = NetworkSend_Init(PACKET_SERVER_MAP);
NetworkSend_uint8(p, MAP_PACKET_START); NetworkSend_uint8(p, MAP_PACKET_START);

View File

@ -1429,7 +1429,7 @@ static OTTDThread* save_thread;
/** We have written the whole game into memory, _Savegame_pool, now find /** We have written the whole game into memory, _Savegame_pool, now find
* and appropiate compressor and start writing to file. * and appropiate compressor and start writing to file.
*/ */
static void* SaveFileToDisk(void *arg) static SaveOrLoadResult SaveFileToDisk(bool threaded)
{ {
const SaveLoadFormat *fmt; const SaveLoadFormat *fmt;
uint32 hdr[2]; uint32 hdr[2];
@ -1441,12 +1441,12 @@ static void* SaveFileToDisk(void *arg)
_sl.excpt_uninit(); _sl.excpt_uninit();
fprintf(stderr, "Save game failed: %s.", _sl.excpt_msg); fprintf(stderr, "Save game failed: %s.", _sl.excpt_msg);
if (arg != NULL) { if (threaded) {
OTTD_SendThreadMessage(MSG_OTTD_SAVETHREAD_ERROR); OTTD_SendThreadMessage(MSG_OTTD_SAVETHREAD_ERROR);
} else { } else {
SaveFileError(); SaveFileError();
} }
return NULL; return SL_ERROR;
} }
fmt = GetSavegameFormat(_savegame_format); fmt = GetSavegameFormat(_savegame_format);
@ -1479,7 +1479,14 @@ static void* SaveFileToDisk(void *arg)
GetSavegameFormat("memory")->uninit_write(); // clean the memorypool GetSavegameFormat("memory")->uninit_write(); // clean the memorypool
fclose(_sl.fh); 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; return NULL;
} }
@ -1567,11 +1574,14 @@ SaveOrLoadResult SaveOrLoad(const char *filename, int mode)
SlWriteFill(); // flush the save buffer SlWriteFill(); // flush the save buffer
SaveFileStart(); SaveFileStart();
if (_network_server || if (_network_server || (save_thread = OTTDCreateThread(&SaveFileToDiskThread, NULL)) == NULL) {
(save_thread = OTTDCreateThread(&SaveFileToDisk, (void*)"")) == NULL) { SaveOrLoadResult result;
DEBUG(misc, 1) ("[Sl] Cannot create savegame thread, reverting to single-threaded mode...");
SaveFileToDisk(NULL); if (!_network_server) DEBUG(misc, 1) ("Cannot create savegame thread, reverting to single-threaded mode...");
result = SaveFileToDisk(false);
SaveFileDone(); SaveFileDone();
return result;
} }
} else { /* LOAD game */ } else { /* LOAD game */

View File

@ -9,7 +9,9 @@
#include "table/sprites.h" #include "table/sprites.h"
#include "fileio.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 #define WANT_NEW_LRU

View File

@ -2129,7 +2129,7 @@ static void DrawTile_Station(TileInfo *ti)
foreach_draw_tile_seq(dtss, t->seq) { foreach_draw_tile_seq(dtss, t->seq) {
image = dtss->image; image = dtss->image;
if (HASBIT(image, 30)) { if (relocation == 0 || HASBIT(image, 30)) {
CLRBIT(image, 30); CLRBIT(image, 30);
image += rti->total_offset; image += rti->total_offset;
} else { } else {