mirror of https://github.com/OpenTTD/OpenTTD
(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
parent
1a5957ef7f
commit
c3fcb2ef2a
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
26
saveload.c
26
saveload.c
|
@ -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 */
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
Loading…
Reference in New Issue