Merge branch 'save_ext' into jgrpp
# Conflicts: # Makefile.src.in # findversion.sh # projects/determineversion.vbs # src/gamelog.cpp # src/gamelog_internal.h # src/lang/german.txt # src/lang/korean.txt # src/network/core/config.h # src/network/network.cpp # src/network/network_udp.cpp # src/rev.h # src/saveload/afterload.cpp # src/saveload/company_sl.cpp # src/saveload/depot_sl.cpp # src/saveload/gamelog_sl.cpp # src/saveload/misc_sl.cpp # src/saveload/order_sl.cpp # src/saveload/saveload.cpp # src/saveload/station_sl.cpp # src/saveload/town_sl.cpp # src/saveload/vehicle_sl.cpp # src/table/settings.ini # src/viewport.cpp
This commit is contained in:
@@ -92,6 +92,7 @@ MODIFIED := $(shell echo "$(VERSIONS)" | cut -f 3 -d' ')
|
|||||||
# Use autodetected revisions
|
# Use autodetected revisions
|
||||||
VERSION := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ')
|
VERSION := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ')
|
||||||
ISODATE := $(shell echo "$(VERSIONS)" | cut -f 2 -d' ')
|
ISODATE := $(shell echo "$(VERSIONS)" | cut -f 2 -d' ')
|
||||||
|
GITHASH := $(shell echo "$(VERSIONS)" | cut -f 3 -d' ')
|
||||||
|
|
||||||
# Make sure we have something in VERSION and ISODATE
|
# Make sure we have something in VERSION and ISODATE
|
||||||
ifeq ($(VERSION),)
|
ifeq ($(VERSION),)
|
||||||
@@ -278,11 +279,11 @@ endif
|
|||||||
|
|
||||||
# Revision files
|
# Revision files
|
||||||
|
|
||||||
$(SRC_DIR)/rev.cpp: $(CONFIG_CACHE_VERSION) $(CONFIG_CACHE_INVOCATION) $(SRC_DIR)/rev.cpp.in
|
$(SRC_DIR)/rev.cpp: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/rev.cpp.in
|
||||||
$(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!MODIFIED!!@$(MODIFIED)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@\!\!CONFIGURE_INVOCATION\!\!@$(CONFIGURE_INVOCATION)@g;" > $(SRC_DIR)/rev.cpp
|
$(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!MODIFIED!!@$(MODIFIED)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g;s@\!\!CONFIGURE_INVOCATION\!\!@$(CONFIGURE_INVOCATION)@g;" > $(SRC_DIR)/rev.cpp
|
||||||
|
|
||||||
$(SRC_DIR)/os/windows/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/os/windows/ottdres.rc.in
|
$(SRC_DIR)/os/windows/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/os/windows/ottdres.rc.in
|
||||||
$(Q)cat $(SRC_DIR)/os/windows/ottdres.rc.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!DATE!!@`date +%d.%m.%y`@g" > $(SRC_DIR)/os/windows/ottdres.rc
|
$(Q)cat $(SRC_DIR)/os/windows/ottdres.rc.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g" > $(SRC_DIR)/os/windows/ottdres.rc
|
||||||
|
|
||||||
FORCE:
|
FORCE:
|
||||||
|
|
||||||
|
@@ -67,15 +67,23 @@ if [ -d "$ROOT_DIR/.git" ]; then
|
|||||||
MODIFIED="2"
|
MODIFIED="2"
|
||||||
fi
|
fi
|
||||||
HASH=`LC_ALL=C git rev-parse --verify HEAD 2>/dev/null`
|
HASH=`LC_ALL=C git rev-parse --verify HEAD 2>/dev/null`
|
||||||
SHORTHASH=`echo ${HASH} | cut -c1-8`
|
SHORTHASH=`echo ${HASH} | cut -c1-10`
|
||||||
ISODATE=`LC_ALL=C git show -s --pretty='format:%ci' HEAD | "$AWK" '{ gsub("-", "", $1); print $1 }'`
|
ISODATE=`LC_ALL=C git show -s --pretty='format:%ci' HEAD | "$AWK" '{ gsub("-", "", $1); print $1 }'`
|
||||||
BRANCH="`git symbolic-ref -q HEAD 2>/dev/null | sed 's@.*/@@'`"
|
BRANCH="`git symbolic-ref -q HEAD 2>/dev/null | sed 's@.*/@@'`"
|
||||||
TAG="`git describe --tags 2>/dev/null`"
|
TAG="`git describe --tags 2>/dev/null`"
|
||||||
|
|
||||||
|
if [ "$MODIFIED" -eq "0" ]; then
|
||||||
|
hashprefix="-g"
|
||||||
|
elif [ "$MODIFIED" -eq "2" ]; then
|
||||||
|
hashprefix="-m"
|
||||||
|
else
|
||||||
|
hashprefix="-u"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$TAG" ]; then
|
if [ -n "$TAG" ]; then
|
||||||
VERSION="${TAG}"
|
VERSION="${TAG}"
|
||||||
else
|
else
|
||||||
VERSION="${ISODATE}-${BRANCH}-g${SHORTHASH}"
|
VERSION="${ISODATE}-${BRANCH}${hashprefix}${SHORTHASH}"
|
||||||
fi
|
fi
|
||||||
elif [ -f "$ROOT_DIR/.ottdrev-vc" ]; then
|
elif [ -f "$ROOT_DIR/.ottdrev-vc" ]; then
|
||||||
VERSION_DATA="`cat "$ROOT_DIR/.ottdrev-vc" | sed -n -e '1 p;'`"
|
VERSION_DATA="`cat "$ROOT_DIR/.ottdrev-vc" | sed -n -e '1 p;'`"
|
||||||
|
@@ -21,32 +21,35 @@ Sub FindReplaceInFile(filename, to_find, replacement)
|
|||||||
file.Close
|
file.Close
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub UpdateFile(modified, isodate, version, cur_date, filename)
|
Sub UpdateFile(modified, isodate, version, cur_date, githash, filename)
|
||||||
FSO.CopyFile filename & ".in", filename
|
FSO.CopyFile filename & ".in", filename
|
||||||
FindReplaceInFile filename, "!!MODIFIED!!", modified
|
FindReplaceInFile filename, "!!MODIFIED!!", modified
|
||||||
FindReplaceInFile filename, "!!ISODATE!!", isodate
|
FindReplaceInFile filename, "!!ISODATE!!", isodate
|
||||||
FindReplaceInFile filename, "!!VERSION!!", version
|
FindReplaceInFile filename, "!!VERSION!!", version
|
||||||
FindReplaceInFile filename, "!!DATE!!", cur_date
|
FindReplaceInFile filename, "!!DATE!!", cur_date
|
||||||
|
FindReplaceInFile filename, "!!GITHASH!!", githash
|
||||||
FindReplaceInFile filename, "!!CONFIGURE_INVOCATION!!", ""
|
FindReplaceInFile filename, "!!CONFIGURE_INVOCATION!!", ""
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub UpdateFiles(version)
|
Sub UpdateFiles(version)
|
||||||
Dim modified, isodate, cur_date
|
Dim modified, isodate, cur_date, githash
|
||||||
cur_date = DatePart("D", Date) & "." & DatePart("M", Date) & "." & DatePart("YYYY", Date)
|
cur_date = DatePart("D", Date) & "." & DatePart("M", Date) & "." & DatePart("YYYY", Date)
|
||||||
|
|
||||||
If InStr(version, Chr(9)) Then
|
If InStr(version, Chr(9)) Then
|
||||||
isodate = Mid(version, InStr(version, Chr(9)) + 1)
|
isodate = Mid(version, InStr(version, Chr(9)) + 1)
|
||||||
modified = Mid(isodate, InStr(isodate, Chr(9)) + 1)
|
modified = Mid(isodate, InStr(isodate, Chr(9)) + 1)
|
||||||
|
githash = Mid(modified, InStr(modified, Chr(9)) + 1)
|
||||||
isodate = Mid(isodate, 1, InStr(isodate, Chr(9)) - 1)
|
isodate = Mid(isodate, 1, InStr(isodate, Chr(9)) - 1)
|
||||||
modified = Mid(modified, 1, InStr(modified, Chr(9)) - 1)
|
modified = Mid(modified, 1, InStr(modified, Chr(9)) - 1)
|
||||||
version = Mid(version, 1, InStr(version, Chr(9)) - 1)
|
version = Mid(version, 1, InStr(version, Chr(9)) - 1)
|
||||||
Else
|
Else
|
||||||
isodate = 0
|
isodate = 0
|
||||||
modified = 1
|
modified = 1
|
||||||
|
githash = ""
|
||||||
End If
|
End If
|
||||||
|
|
||||||
UpdateFile modified, isodate, version, cur_date, "../src/rev.cpp"
|
UpdateFile modified, isodate, version, cur_date, githash, "../src/rev.cpp"
|
||||||
UpdateFile modified, isodate, version, cur_date, "../src/os/windows/ottdres.rc"
|
UpdateFile modified, isodate, version, cur_date, githash, "../src/os/windows/ottdres.rc"
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Function DetermineVersion()
|
Function DetermineVersion()
|
||||||
@@ -54,7 +57,7 @@ Function DetermineVersion()
|
|||||||
Set WshShell = CreateObject("WScript.Shell")
|
Set WshShell = CreateObject("WScript.Shell")
|
||||||
On Error Resume Next
|
On Error Resume Next
|
||||||
|
|
||||||
modified = 1
|
modified = 0
|
||||||
hash = ""
|
hash = ""
|
||||||
shorthash = ""
|
shorthash = ""
|
||||||
branch = ""
|
branch = ""
|
||||||
@@ -72,7 +75,7 @@ Function DetermineVersion()
|
|||||||
|
|
||||||
If oExec.ExitCode = 0 Then
|
If oExec.ExitCode = 0 Then
|
||||||
hash = oExec.StdOut.ReadLine()
|
hash = oExec.StdOut.ReadLine()
|
||||||
shorthash = Mid(hash, 1, 8)
|
shorthash = Mid(hash, 1, 10)
|
||||||
' Make sure index is in sync with disk
|
' Make sure index is in sync with disk
|
||||||
Set oExec = WshShell.Exec("git update-index --refresh")
|
Set oExec = WshShell.Exec("git update-index --refresh")
|
||||||
If Err.Number = 0 Then
|
If Err.Number = 0 Then
|
||||||
@@ -133,18 +136,21 @@ Function DetermineVersion()
|
|||||||
rev_file.Close()
|
rev_file.Close()
|
||||||
ElseIf hash = "" Then
|
ElseIf hash = "" Then
|
||||||
DetermineVersion = "norev000"
|
DetermineVersion = "norev000"
|
||||||
|
modified = 1
|
||||||
Else
|
Else
|
||||||
Dim version
|
Dim version, hashprefix
|
||||||
If tag <> "" Then
|
If modified = 0 Then
|
||||||
version = tag
|
hashprefix = "-g"
|
||||||
ElseIf branch = "master" Then
|
ElseIf modified = 2 Then
|
||||||
version = isodate & "-g" & shorthash
|
hashprefix = "-m"
|
||||||
Else
|
Else
|
||||||
version = isodate & "-" & branch & "-g" & shorthash
|
hashprefix = "-u"
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If modified = 2 Then
|
If tag <> "" Then
|
||||||
version = version & "M"
|
version = tag
|
||||||
|
Else
|
||||||
|
version = isodate & "-" & branch & hashprefix & shorthash
|
||||||
End If
|
End If
|
||||||
|
|
||||||
DetermineVersion = version & Chr(9) & isodate & Chr(9) & modified & Chr(9) & hash
|
DetermineVersion = version & Chr(9) & isodate & Chr(9) & modified & Chr(9) & hash
|
||||||
|
@@ -32,7 +32,7 @@ public:
|
|||||||
START_NEXT_EASY = DAYS_IN_YEAR * 2,
|
START_NEXT_EASY = DAYS_IN_YEAR * 2,
|
||||||
START_NEXT_MEDIUM = DAYS_IN_YEAR,
|
START_NEXT_MEDIUM = DAYS_IN_YEAR,
|
||||||
START_NEXT_HARD = DAYS_IN_YEAR / 2,
|
START_NEXT_HARD = DAYS_IN_YEAR / 2,
|
||||||
START_NEXT_MIN = 1,
|
START_NEXT_MIN = 0,
|
||||||
START_NEXT_MAX = 3600,
|
START_NEXT_MAX = 3600,
|
||||||
START_NEXT_DEVIATION = 60,
|
START_NEXT_DEVIATION = 60,
|
||||||
};
|
};
|
||||||
|
@@ -118,3 +118,14 @@ void AIConfig::SetSetting(const char *name, int value)
|
|||||||
|
|
||||||
ScriptConfig::SetSetting(name, value);
|
ScriptConfig::SetSetting(name, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AIConfig::AddRandomDeviation()
|
||||||
|
{
|
||||||
|
int start_date = this->GetSetting("start_date");
|
||||||
|
|
||||||
|
ScriptConfig::AddRandomDeviation();
|
||||||
|
|
||||||
|
/* start_date = 0 is a special case, where random deviation does not occur.
|
||||||
|
* If start_date was not already 0, then a minimum value of 1 must apply. */
|
||||||
|
this->SetSetting("start_date", start_date != 0 ? max(1, this->GetSetting("start_date")) : 0);
|
||||||
|
}
|
||||||
|
@@ -34,6 +34,7 @@ public:
|
|||||||
|
|
||||||
/* virtual */ int GetSetting(const char *name) const;
|
/* virtual */ int GetSetting(const char *name) const;
|
||||||
/* virtual */ void SetSetting(const char *name, int value);
|
/* virtual */ void SetSetting(const char *name, int value);
|
||||||
|
/* virtual */ void AddRandomDeviation();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* When ever the AI Scanner is reloaded, all infos become invalid. This
|
* When ever the AI Scanner is reloaded, all infos become invalid. This
|
||||||
|
@@ -603,10 +603,10 @@ void StartupCompanies()
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Start a new competitor company if possible. */
|
/** Start a new competitor company if possible. */
|
||||||
static void MaybeStartNewCompany()
|
static bool MaybeStartNewCompany()
|
||||||
{
|
{
|
||||||
#ifdef ENABLE_NETWORK
|
#ifdef ENABLE_NETWORK
|
||||||
if (_networking && Company::GetNumItems() >= _settings_client.network.max_companies) return;
|
if (_networking && Company::GetNumItems() >= _settings_client.network.max_companies) return false;
|
||||||
#endif /* ENABLE_NETWORK */
|
#endif /* ENABLE_NETWORK */
|
||||||
|
|
||||||
Company *c;
|
Company *c;
|
||||||
@@ -620,8 +620,10 @@ static void MaybeStartNewCompany()
|
|||||||
if (n < (uint)_settings_game.difficulty.max_no_competitors) {
|
if (n < (uint)_settings_game.difficulty.max_no_competitors) {
|
||||||
/* Send a command to all clients to start up a new AI.
|
/* Send a command to all clients to start up a new AI.
|
||||||
* Works fine for Multiplayer and Singleplayer */
|
* Works fine for Multiplayer and Singleplayer */
|
||||||
DoCommandP(0, 1 | INVALID_COMPANY << 16, 0, CMD_COMPANY_CTRL);
|
return DoCommandP(0, 1 | INVALID_COMPANY << 16, 0, CMD_COMPANY_CTRL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Initialize the pool of companies. */
|
/** Initialize the pool of companies. */
|
||||||
@@ -722,11 +724,15 @@ void OnTick_Companies()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (_next_competitor_start == 0) {
|
if (_next_competitor_start == 0) {
|
||||||
_next_competitor_start = AI::GetStartNextTime() * DAY_TICKS;
|
/* AI::GetStartNextTime() can return 0. */
|
||||||
|
_next_competitor_start = max(1, AI::GetStartNextTime() * DAY_TICKS);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (AI::CanStartNew() && _game_mode != GM_MENU && --_next_competitor_start == 0) {
|
if (_game_mode != GM_MENU && AI::CanStartNew() && --_next_competitor_start == 0) {
|
||||||
MaybeStartNewCompany();
|
/* Allow multiple AIs to possibly start in the same tick. */
|
||||||
|
do {
|
||||||
|
if (!MaybeStartNewCompany()) break;
|
||||||
|
} while (AI::GetStartNextTime() == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
_cur_company_tick_index = (_cur_company_tick_index + 1) % MAX_COMPANIES;
|
_cur_company_tick_index = (_cur_company_tick_index + 1) % MAX_COMPANIES;
|
||||||
|
@@ -704,9 +704,6 @@ public:
|
|||||||
this->CreateNestedTree();
|
this->CreateNestedTree();
|
||||||
this->vscroll = this->GetScrollbar(WID_SCL_MATRIX_SCROLLBAR);
|
this->vscroll = this->GetScrollbar(WID_SCL_MATRIX_SCROLLBAR);
|
||||||
|
|
||||||
this->square = GetSpriteSize(SPR_SQUARE);
|
|
||||||
this->line_height = max(this->square.height, (uint)FONT_HEIGHT_NORMAL) + 4;
|
|
||||||
|
|
||||||
if (group == INVALID_GROUP) {
|
if (group == INVALID_GROUP) {
|
||||||
this->livery_class = LC_OTHER;
|
this->livery_class = LC_OTHER;
|
||||||
this->sel = 1;
|
this->sel = 1;
|
||||||
@@ -774,6 +771,9 @@ public:
|
|||||||
|
|
||||||
case WID_SCL_MATRIX: {
|
case WID_SCL_MATRIX: {
|
||||||
/* 11 items in the default rail class */
|
/* 11 items in the default rail class */
|
||||||
|
this->square = GetSpriteSize(SPR_SQUARE);
|
||||||
|
this->line_height = max(this->square.height, (uint)FONT_HEIGHT_NORMAL) + 4;
|
||||||
|
|
||||||
size->height = 11 * this->line_height;
|
size->height = 11 * this->line_height;
|
||||||
resize->width = 1;
|
resize->width = 1;
|
||||||
resize->height = this->line_height;
|
resize->height = this->line_height;
|
||||||
@@ -788,6 +788,7 @@ public:
|
|||||||
FALLTHROUGH;
|
FALLTHROUGH;
|
||||||
|
|
||||||
case WID_SCL_PRI_COL_DROPDOWN: {
|
case WID_SCL_PRI_COL_DROPDOWN: {
|
||||||
|
this->square = GetSpriteSize(SPR_SQUARE);
|
||||||
int padding = this->square.width + NWidgetScrollbar::GetVerticalDimension().width + 10;
|
int padding = this->square.width + NWidgetScrollbar::GetVerticalDimension().width + 10;
|
||||||
for (const StringID *id = _colour_dropdown; id != endof(_colour_dropdown); id++) {
|
for (const StringID *id = _colour_dropdown; id != endof(_colour_dropdown); id++) {
|
||||||
size->width = max(size->width, GetStringBoundingBox(*id).width + padding);
|
size->width = max(size->width, GetStringBoundingBox(*id).width + padding);
|
||||||
|
@@ -23,12 +23,12 @@
|
|||||||
|
|
||||||
#include "safeguards.h"
|
#include "safeguards.h"
|
||||||
|
|
||||||
extern const uint16 SAVEGAME_VERSION; ///< current savegame version
|
extern const SaveLoadVersion SAVEGAME_VERSION; ///< current savegame version
|
||||||
|
|
||||||
extern SavegameType _savegame_type; ///< type of savegame we are loading
|
extern SavegameType _savegame_type; ///< type of savegame we are loading
|
||||||
|
|
||||||
extern uint32 _ttdp_version; ///< version of TTDP savegame (if applicable)
|
extern uint32 _ttdp_version; ///< version of TTDP savegame (if applicable)
|
||||||
extern uint16 _sl_version; ///< the major savegame version identifier
|
extern SaveLoadVersion _sl_version; ///< the major savegame version identifier
|
||||||
extern byte _sl_minor_version; ///< the minor savegame version, DO NOT USE!
|
extern byte _sl_minor_version; ///< the minor savegame version, DO NOT USE!
|
||||||
|
|
||||||
|
|
||||||
|
@@ -12,7 +12,6 @@
|
|||||||
#ifndef GAMELOG_INTERNAL_H
|
#ifndef GAMELOG_INTERNAL_H
|
||||||
#define GAMELOG_INTERNAL_H
|
#define GAMELOG_INTERNAL_H
|
||||||
|
|
||||||
#include "network/core/config.h"
|
|
||||||
#include "gamelog.h"
|
#include "gamelog.h"
|
||||||
|
|
||||||
/** Type of logged change */
|
/** Type of logged change */
|
||||||
@@ -33,6 +32,8 @@ enum GamelogChangeType {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static const uint GAMELOG_REVISION_LENGTH = 15;
|
||||||
|
|
||||||
/** Contains information about one logged change */
|
/** Contains information about one logged change */
|
||||||
struct LoggedChange {
|
struct LoggedChange {
|
||||||
GamelogChangeType ct; ///< Type of change logged in this struct
|
GamelogChangeType ct; ///< Type of change logged in this struct
|
||||||
|
@@ -718,6 +718,8 @@ CommandCost CmdSetGroupLivery(TileIndex tile, DoCommandFlag flags, uint32 p1, ui
|
|||||||
|
|
||||||
if (g == NULL || g->owner != _current_company) return CMD_ERROR;
|
if (g == NULL || g->owner != _current_company) return CMD_ERROR;
|
||||||
|
|
||||||
|
if (colour >= COLOUR_END && colour != INVALID_COLOUR) return CMD_ERROR;
|
||||||
|
|
||||||
if (flags & DC_EXEC) {
|
if (flags & DC_EXEC) {
|
||||||
if (primary) {
|
if (primary) {
|
||||||
SB(g->livery.in_use, 0, 1, colour != INVALID_COLOUR);
|
SB(g->livery.in_use, 0, 1, colour != INVALID_COLOUR);
|
||||||
|
@@ -286,6 +286,7 @@ STR_COLOUR_BROWN :Smeđa
|
|||||||
STR_COLOUR_GREY :Siva
|
STR_COLOUR_GREY :Siva
|
||||||
STR_COLOUR_WHITE :Bijela
|
STR_COLOUR_WHITE :Bijela
|
||||||
STR_COLOUR_RANDOM :Nasumično
|
STR_COLOUR_RANDOM :Nasumično
|
||||||
|
STR_COLOUR_DEFAULT :Osnovna postavka
|
||||||
|
|
||||||
# Units used in OpenTTD
|
# Units used in OpenTTD
|
||||||
STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph
|
STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph
|
||||||
@@ -2872,6 +2873,8 @@ STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Nema dos
|
|||||||
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
||||||
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
|
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
|
||||||
STR_SAVELOAD_FILTER_TITLE :{BLACK}Filtriraj niz:
|
STR_SAVELOAD_FILTER_TITLE :{BLACK}Filtriraj niz:
|
||||||
|
STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Presnimi datoteku
|
||||||
|
STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}Jeste li sigurano da želite presnimiti postojeću datoteku?
|
||||||
|
|
||||||
STR_SAVELOAD_OSKTITLE :{BLACK}Upiši ime za spremanje igre
|
STR_SAVELOAD_OSKTITLE :{BLACK}Upiši ime za spremanje igre
|
||||||
|
|
||||||
@@ -3516,6 +3519,7 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupe -
|
|||||||
STR_GROUP_CREATE_TOOLTIP :{BLACK}Klikni za kreiranje grupe
|
STR_GROUP_CREATE_TOOLTIP :{BLACK}Klikni za kreiranje grupe
|
||||||
STR_GROUP_DELETE_TOOLTIP :{BLACK}Obriši odabranu grupu
|
STR_GROUP_DELETE_TOOLTIP :{BLACK}Obriši odabranu grupu
|
||||||
STR_GROUP_RENAME_TOOLTIP :{BLACK}Preimenuj odabranu grupu
|
STR_GROUP_RENAME_TOOLTIP :{BLACK}Preimenuj odabranu grupu
|
||||||
|
STR_GROUP_LIVERY_TOOLTIP :{BLACK}Promijeni livreju odabrane grupe
|
||||||
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klikni kako bi zaštitio ovu grupu od globalne automatske zamjene
|
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klikni kako bi zaštitio ovu grupu od globalne automatske zamjene
|
||||||
|
|
||||||
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Izbriši grupu
|
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Izbriši grupu
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -1861,7 +1861,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Muuda jo
|
|||||||
STR_CHEAT_SETUP_PROD :{LTBLUE}Tootmisväärtuste muutmine: {ORANGE}{STRING}
|
STR_CHEAT_SETUP_PROD :{LTBLUE}Tootmisväärtuste muutmine: {ORANGE}{STRING}
|
||||||
|
|
||||||
# Livery window
|
# Livery window
|
||||||
STR_LIVERY_CAPTION :{WHITE}Uus värvivalik
|
STR_LIVERY_CAPTION :{WHITE}{COMPANY} - Värvivalik
|
||||||
|
|
||||||
STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Näita üldiseid värvistikke
|
STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Näita üldiseid värvistikke
|
||||||
STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Näita rongide värvistikke
|
STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Näita rongide värvistikke
|
||||||
|
@@ -132,7 +132,7 @@ STR_QUANTITY_N_A :-
|
|||||||
STR_ABBREV_NOTHING :
|
STR_ABBREV_NOTHING :
|
||||||
STR_ABBREV_PASSENGERS :{TINY_FONT}MA
|
STR_ABBREV_PASSENGERS :{TINY_FONT}MA
|
||||||
STR_ABBREV_COAL :{TINY_FONT}HL
|
STR_ABBREV_COAL :{TINY_FONT}HL
|
||||||
STR_ABBREV_MAIL :{TINY_FONT}SP
|
STR_ABBREV_MAIL :{TINY_FONT}PO
|
||||||
STR_ABBREV_OIL :{TINY_FONT}ÖL
|
STR_ABBREV_OIL :{TINY_FONT}ÖL
|
||||||
STR_ABBREV_LIVESTOCK :{TINY_FONT}KA
|
STR_ABBREV_LIVESTOCK :{TINY_FONT}KA
|
||||||
STR_ABBREV_GOODS :{TINY_FONT}TA
|
STR_ABBREV_GOODS :{TINY_FONT}TA
|
||||||
@@ -1816,7 +1816,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Muuta ny
|
|||||||
STR_CHEAT_SETUP_PROD :{LTBLUE}Salli tuotantomäärien muuttaminen: {ORANGE}{STRING}
|
STR_CHEAT_SETUP_PROD :{LTBLUE}Salli tuotantomäärien muuttaminen: {ORANGE}{STRING}
|
||||||
|
|
||||||
# Livery window
|
# Livery window
|
||||||
STR_LIVERY_CAPTION :{WHITE}Uusi väriteema
|
STR_LIVERY_CAPTION :{WHITE}{COMPANY}: Väriteema
|
||||||
|
|
||||||
STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Näytä yleiset väriteemat
|
STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Näytä yleiset väriteemat
|
||||||
STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Näytä junan väriteemat
|
STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Näytä junan väriteemat
|
||||||
@@ -3832,7 +3832,7 @@ STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Miten ku
|
|||||||
STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :on yhtä kuin
|
STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :on yhtä kuin
|
||||||
STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :ei ole yhtä kuin
|
STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :ei ole yhtä kuin
|
||||||
STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :on pienempi kuin
|
STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :on pienempi kuin
|
||||||
STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :on suurempi kuin
|
STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :on pienempi tai yhtä kuin
|
||||||
STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :on enemmän kuin
|
STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :on enemmän kuin
|
||||||
STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :on enemmän tai yhtä kuin
|
STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :on enemmän tai yhtä kuin
|
||||||
STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :on tosi
|
STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :on tosi
|
||||||
|
@@ -190,6 +190,7 @@ STR_COLOUR_ORANGE :Orange
|
|||||||
STR_COLOUR_BROWN :Braun
|
STR_COLOUR_BROWN :Braun
|
||||||
STR_COLOUR_GREY :Grau
|
STR_COLOUR_GREY :Grau
|
||||||
STR_COLOUR_WHITE :Weiß
|
STR_COLOUR_WHITE :Weiß
|
||||||
|
STR_COLOUR_RANDOM :Zufällig
|
||||||
STR_COLOUR_DEFAULT :Standard
|
STR_COLOUR_DEFAULT :Standard
|
||||||
|
|
||||||
# Units used in OpenTTD
|
# Units used in OpenTTD
|
||||||
@@ -483,6 +484,7 @@ STR_ABOUT_MENU_SCREENSHOT :Screenshot (Sta
|
|||||||
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Screenshot in Nahaufnahme
|
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Screenshot in Nahaufnahme
|
||||||
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Screenshot mit normalem Zoom
|
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Screenshot mit normalem Zoom
|
||||||
STR_ABOUT_MENU_GIANT_SCREENSHOT :Riesiger Screenshot (Standard: Strg+G)
|
STR_ABOUT_MENU_GIANT_SCREENSHOT :Riesiger Screenshot (Standard: Strg+G)
|
||||||
|
STR_ABOUT_MENU_SHOW_FRAMERATE :Bildwiederholrate anzeigen
|
||||||
STR_ABOUT_MENU_ABOUT_OPENTTD :Über OpenTTD
|
STR_ABOUT_MENU_ABOUT_OPENTTD :Über OpenTTD
|
||||||
STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite-Ausrichtung
|
STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite-Ausrichtung
|
||||||
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Hüllquader anzeigen/ausblenden
|
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Hüllquader anzeigen/ausblenden
|
||||||
@@ -679,10 +681,12 @@ STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Zufälli
|
|||||||
STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION :{BLACK}Zeige Musiktitelauswahl
|
STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION :{BLACK}Zeige Musiktitelauswahl
|
||||||
|
|
||||||
# Playlist window
|
# Playlist window
|
||||||
|
STR_PLAYLIST_MUSIC_SELECTION_SETNAME :{WHITE}Musikprogramm - '{STRING}'
|
||||||
STR_PLAYLIST_TRACK_NAME :{TINY_FONT}{LTBLUE}{ZEROFILL_NUM} "{STRING}"
|
STR_PLAYLIST_TRACK_NAME :{TINY_FONT}{LTBLUE}{ZEROFILL_NUM} "{STRING}"
|
||||||
STR_PLAYLIST_TRACK_INDEX :{TINY_FONT}{BLACK}Track Inhalt
|
STR_PLAYLIST_TRACK_INDEX :{TINY_FONT}{BLACK}Track Inhalt
|
||||||
STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLACK}Programm - '{STRING}'
|
STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLACK}Programm - '{STRING}'
|
||||||
STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Bereinigen
|
STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Bereinigen
|
||||||
|
STR_PLAYLIST_CHANGE_SET :{BLACK}Set ändern
|
||||||
STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Lösche laufendes Programm (nur für Benutzerdefiniert 1 und 2)
|
STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Lösche laufendes Programm (nur für Benutzerdefiniert 1 und 2)
|
||||||
STR_PLAYLIST_TOOLTIP_CHANGE_SET :{BLACK}Ein anderes Musik-Set auswählen)
|
STR_PLAYLIST_TOOLTIP_CHANGE_SET :{BLACK}Ein anderes Musik-Set auswählen)
|
||||||
STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Klicke auf einen Musiktitel, um ihn in das laufende Programm zu übernehmen (nur für Benutzerdefiniert 1 und 2)
|
STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Klicke auf einen Musiktitel, um ihn in das laufende Programm zu übernehmen (nur für Benutzerdefiniert 1 und 2)
|
||||||
@@ -822,6 +826,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC
|
|||||||
STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Manager)
|
STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Manager)
|
||||||
|
|
||||||
STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} finanziert die Gründung der Stadt {TOWN}!
|
STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} finanziert die Gründung der Stadt {TOWN}!
|
||||||
|
STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}Eine neue Stadt mit dem Namen {TOWN} wurde errichtet!
|
||||||
|
|
||||||
STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Neue{G r "" s ""} {STRING} {G 0 wird wird wird werden} nahe {TOWN} gebaut!
|
STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Neue{G r "" s ""} {STRING} {G 0 wird wird wird werden} nahe {TOWN} gebaut!
|
||||||
STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Neue{G r "" s ""} {STRING} {G 0 wird wird wird werden} nahe {TOWN} angepflanzt!
|
STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Neue{G r "" s ""} {STRING} {G 0 wird wird wird werden} nahe {TOWN} angepflanzt!
|
||||||
@@ -889,9 +894,9 @@ STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION :{BIG_FONT}{BLAC
|
|||||||
|
|
||||||
# Extra view window
|
# Extra view window
|
||||||
STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Ansicht {COMMA}
|
STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Ansicht {COMMA}
|
||||||
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}In Zusatzansicht kopieren
|
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Zusatzansicht ändern
|
||||||
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Aktuelle Position der Hauptansicht in diese Zusatzansicht kopieren
|
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Aktuelle Position der Hauptansicht in diese Zusatzansicht kopieren
|
||||||
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Aus Zusatzansicht einfügen
|
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Hauptansicht ändern
|
||||||
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Hauptansicht zur Position dieser Zusatzansicht scrollen
|
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Hauptansicht zur Position dieser Zusatzansicht scrollen
|
||||||
|
|
||||||
# Game options window
|
# Game options window
|
||||||
@@ -921,7 +926,7 @@ STR_GAME_OPTIONS_CURRENCY_NLG :Niederländisch
|
|||||||
STR_GAME_OPTIONS_CURRENCY_NOK :Norwegische Kronen (NOK)
|
STR_GAME_OPTIONS_CURRENCY_NOK :Norwegische Kronen (NOK)
|
||||||
STR_GAME_OPTIONS_CURRENCY_PLN :Polnische Zloty (PLN)
|
STR_GAME_OPTIONS_CURRENCY_PLN :Polnische Zloty (PLN)
|
||||||
STR_GAME_OPTIONS_CURRENCY_RON :Rumänische Lei (RON)
|
STR_GAME_OPTIONS_CURRENCY_RON :Rumänische Lei (RON)
|
||||||
STR_GAME_OPTIONS_CURRENCY_RUR :Russische Rubel (RUR)
|
STR_GAME_OPTIONS_CURRENCY_RUR :Alte Russische Rubel (RUR)
|
||||||
STR_GAME_OPTIONS_CURRENCY_SIT :Slovenische Taler (SIT)
|
STR_GAME_OPTIONS_CURRENCY_SIT :Slovenische Taler (SIT)
|
||||||
STR_GAME_OPTIONS_CURRENCY_SEK :Schwedische Kronen (SEK)
|
STR_GAME_OPTIONS_CURRENCY_SEK :Schwedische Kronen (SEK)
|
||||||
STR_GAME_OPTIONS_CURRENCY_TRY :Türkische Lire (TRY)
|
STR_GAME_OPTIONS_CURRENCY_TRY :Türkische Lire (TRY)
|
||||||
@@ -934,6 +939,8 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :Südafrikanisch
|
|||||||
STR_GAME_OPTIONS_CURRENCY_CUSTOM :Eigene...
|
STR_GAME_OPTIONS_CURRENCY_CUSTOM :Eigene...
|
||||||
STR_GAME_OPTIONS_CURRENCY_GEL :Georgischer Lari (GEL)
|
STR_GAME_OPTIONS_CURRENCY_GEL :Georgischer Lari (GEL)
|
||||||
STR_GAME_OPTIONS_CURRENCY_IRR :Iranischer Rial (IRR)
|
STR_GAME_OPTIONS_CURRENCY_IRR :Iranischer Rial (IRR)
|
||||||
|
STR_GAME_OPTIONS_CURRENCY_RUB :Russische Rubel (RUB)
|
||||||
|
STR_GAME_OPTIONS_CURRENCY_MXN :Mexikanischer Peso (MXN)
|
||||||
############ end of currency region
|
############ end of currency region
|
||||||
|
|
||||||
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Fahrzeuge
|
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Fahrzeuge
|
||||||
@@ -1233,7 +1240,7 @@ STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :in der Mitte
|
|||||||
STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :am Ende
|
STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :am Ende
|
||||||
STR_CONFIG_SETTING_IMPROVED_BREAKDOWNS :aktiviere verbesserte Pannen: {STRING}
|
STR_CONFIG_SETTING_IMPROVED_BREAKDOWNS :aktiviere verbesserte Pannen: {STRING}
|
||||||
STR_CONFIG_SETTING_AUTOSCROLL :Spielfeld scrollen, wenn die Maus am Bildrand anstößt: {STRING}
|
STR_CONFIG_SETTING_AUTOSCROLL :Spielfeld scrollen, wenn die Maus am Bildrand anstößt: {STRING}
|
||||||
STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Falls aktiv wird der Kartenausschnit scrollen, wenn die Maus nahe dem Fensterrand ist
|
STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Falls aktiv, wird der Kartenausschnitt scrollen, wenn die Maus nahe dem Fensterrand ist
|
||||||
STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Ausgeschaltet
|
STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Ausgeschaltet
|
||||||
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Hauptfenster, nur bei Vollbildschirm
|
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Hauptfenster, nur bei Vollbildschirm
|
||||||
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Hauptfenster
|
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Hauptfenster
|
||||||
@@ -1274,6 +1281,7 @@ STR_CONFIG_SETTING_CHUNNEL_HELPTEXT :Wenn aktiviert,
|
|||||||
STR_CONFIG_SETTING_NO_TRAIN_CRASH_OTHER_COMPANY :Züge verschiedener Firmen stoßen nicht mehr zusammen: {STRING}
|
STR_CONFIG_SETTING_NO_TRAIN_CRASH_OTHER_COMPANY :Züge verschiedener Firmen stoßen nicht mehr zusammen: {STRING}
|
||||||
STR_CONFIG_SETTING_NO_TRAIN_CRASH_OTHER_COMPANY_HELPTEXT :Diese Einstellung ist in erster Linie dafür da um zu verhindern, dass Spielern denen man nicht vertraut bewusst Zusammenstöße mit Zügen anderer Firmen in Multiplayer-Spielen mit Infrastructure Sharing provozieren.
|
STR_CONFIG_SETTING_NO_TRAIN_CRASH_OTHER_COMPANY_HELPTEXT :Diese Einstellung ist in erster Linie dafür da um zu verhindern, dass Spielern denen man nicht vertraut bewusst Zusammenstöße mit Zügen anderer Firmen in Multiplayer-Spielen mit Infrastructure Sharing provozieren.
|
||||||
|
|
||||||
|
STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR :Firmenfarbe zu Spielbeginn: {STRING}
|
||||||
STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT :Wähle die Firmenfarbe zu Spielbeginn
|
STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT :Wähle die Firmenfarbe zu Spielbeginn
|
||||||
|
|
||||||
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Flughäfen veralten nie: {STRING}
|
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Flughäfen veralten nie: {STRING}
|
||||||
@@ -1371,6 +1379,12 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Farbe von Landf
|
|||||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Grün
|
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Grün
|
||||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Dunkelgrün
|
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Dunkelgrün
|
||||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Lila
|
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Lila
|
||||||
|
STR_CONFIG_SETTING_SCROLLMODE :Verhalten beim Verschieben der Zusatzansicht: {STRING}
|
||||||
|
STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Verhalten beim Verschieben der Karte
|
||||||
|
STR_CONFIG_SETTING_SCROLLMODE_DEFAULT :Bewege Zusatzansicht mit rechter Maustaste, Mausposition fixiert
|
||||||
|
STR_CONFIG_SETTING_SCROLLMODE_RMB_LOCKED :Bewege die Karte mit rechter Maustaste, Mausposition fixiert
|
||||||
|
STR_CONFIG_SETTING_SCROLLMODE_RMB :Bewege die Karte mit rechter Maustaste
|
||||||
|
STR_CONFIG_SETTING_SCROLLMODE_LMB :Bewege die Karte mit linker Maustaste
|
||||||
STR_CONFIG_SETTING_SMOOTH_SCROLLING :Weicher Bildlauf beim Springen zu einer Position: {STRING}
|
STR_CONFIG_SETTING_SMOOTH_SCROLLING :Weicher Bildlauf beim Springen zu einer Position: {STRING}
|
||||||
STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Lege fest, auf welche Weise die Hauptansicht an eine bestimmte Position wechselt (z.B. wenn ein Punkt auf der Weltkarte angeklickt wird oder der Standort eines Bahnhofs angezeigt werden soll). Ist diese Option eingeschaltet, schwenkt die Ansicht über die Karte, bis sie am gewünschten Punkt angekommen ist. Ist sie ausgeschaltet, springt die Ansicht sofort an die gewünschte Position
|
STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Lege fest, auf welche Weise die Hauptansicht an eine bestimmte Position wechselt (z.B. wenn ein Punkt auf der Weltkarte angeklickt wird oder der Standort eines Bahnhofs angezeigt werden soll). Ist diese Option eingeschaltet, schwenkt die Ansicht über die Karte, bis sie am gewünschten Punkt angekommen ist. Ist sie ausgeschaltet, springt die Ansicht sofort an die gewünschte Position
|
||||||
STR_CONFIG_SETTING_MEASURE_TOOLTIP :Beim Bauen Tooltip mit Abmessungen anzeigen: {STRING}
|
STR_CONFIG_SETTING_MEASURE_TOOLTIP :Beim Bauen Tooltip mit Abmessungen anzeigen: {STRING}
|
||||||
@@ -1972,7 +1986,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Ändert
|
|||||||
STR_CHEAT_SETUP_PROD :{LTBLUE}Erlaube manuelles Ändern der Produktionsleistungen: {ORANGE}{STRING}
|
STR_CHEAT_SETUP_PROD :{LTBLUE}Erlaube manuelles Ändern der Produktionsleistungen: {ORANGE}{STRING}
|
||||||
|
|
||||||
# Livery window
|
# Livery window
|
||||||
STR_LIVERY_CAPTION :{WHITE}Neues Farbschema
|
STR_LIVERY_CAPTION :{WHITE}{COMPANY} - Farbschema
|
||||||
|
|
||||||
STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Allgemeines Farbschema anzeigen
|
STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Allgemeines Farbschema anzeigen
|
||||||
STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Zugfarbschema anzeigen
|
STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Zugfarbschema anzeigen
|
||||||
@@ -3143,20 +3157,51 @@ STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD
|
|||||||
|
|
||||||
# Framerate display window
|
# Framerate display window
|
||||||
STR_FRAMERATE_CAPTION :{WHITE}Bildwiederholrate
|
STR_FRAMERATE_CAPTION :{WHITE}Bildwiederholrate
|
||||||
|
STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x)
|
||||||
|
STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Simulationsrate: {STRING}
|
||||||
|
STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Anzahl an simulierten Ticks pro Sekunde.
|
||||||
|
STR_FRAMERATE_RATE_BLITTER :{BLACK}Bildwiederholrate: {STRING}
|
||||||
|
STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Anzahl an Einzelbildern, die pro Sekunde gerendert werden.
|
||||||
|
STR_FRAMERATE_SPEED_FACTOR :{BLACK}Aktueller Geschwindigkeitsfaktor des Spiels: {DECIMAL}x
|
||||||
|
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Wie schnell das Spiel aktuell läuft, verglichen mit der erwarteten Geschwindigkeit bei normaler Simulationsrate.
|
||||||
|
STR_FRAMERATE_CURRENT :{WHITE}Momentan
|
||||||
|
STR_FRAMERATE_AVERAGE :{WHITE}Durchschnitt
|
||||||
|
STR_FRAMERATE_DATA_POINTS :{BLACK}Daten basierend auf {COMMA} Messungen
|
||||||
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
|
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
|
||||||
|
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms
|
||||||
|
STR_FRAMERATE_MS_BAD :{RED}{DECIMAL} ms
|
||||||
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} Bilder/s
|
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} Bilder/s
|
||||||
|
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} Bilder/s
|
||||||
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} Bilder/s
|
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} Bilder/s
|
||||||
|
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
|
||||||
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
|
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
|
||||||
############ Leave those lines in this order!!
|
############ Leave those lines in this order!!
|
||||||
|
STR_FRAMERATE_GAMELOOP :{BLACK}Spielschleifen insgesamt:
|
||||||
|
STR_FRAMERATE_GL_ECONOMY :{BLACK}Warenumschlag:
|
||||||
|
STR_FRAMERATE_GL_TRAINS :{BLACK}Ticks (Züge):
|
||||||
|
STR_FRAMERATE_GL_ROADVEHS :{BLACK}Ticks (Straßenfahrzeuge):
|
||||||
STR_FRAMERATE_GL_SHIPS :{BLACK}Ticks (Schiffe):
|
STR_FRAMERATE_GL_SHIPS :{BLACK}Ticks (Schiffe):
|
||||||
STR_FRAMERATE_GL_AIRCRAFT :{BLACK}Ticks (Luftfahrzeuge)
|
STR_FRAMERATE_GL_AIRCRAFT :{BLACK}Ticks (Luftfahrzeuge)
|
||||||
|
STR_FRAMERATE_GL_LANDSCAPE :{BLACK}Welt-Ticks:
|
||||||
|
STR_FRAMERATE_GL_LINKGRAPH :{BLACK}Intervall für Neuberechnung des Verteilungsgraphen:
|
||||||
STR_FRAMERATE_DRAWING :{BLACK}Grafik-Rendering:
|
STR_FRAMERATE_DRAWING :{BLACK}Grafik-Rendering:
|
||||||
|
STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK}Kartenansichten:
|
||||||
|
STR_FRAMERATE_VIDEO :{BLACK}Videoausgabe:
|
||||||
|
STR_FRAMERATE_SOUND :{BLACK}Sound-Abmischung:
|
||||||
############ End of leave-in-this-order
|
############ End of leave-in-this-order
|
||||||
############ Leave those lines in this order!!
|
############ Leave those lines in this order!!
|
||||||
STR_FRAMETIME_CAPTION_GAMELOOP :Spiel-Schleife
|
STR_FRAMETIME_CAPTION_GAMELOOP :Spielschleife
|
||||||
|
STR_FRAMETIME_CAPTION_GL_ECONOMY :Warenumschlag
|
||||||
STR_FRAMETIME_CAPTION_GL_TRAINS :Ticks (Züge)
|
STR_FRAMETIME_CAPTION_GL_TRAINS :Ticks (Züge)
|
||||||
|
STR_FRAMETIME_CAPTION_GL_ROADVEHS :Ticks (Straßenfahrzeuge)
|
||||||
|
STR_FRAMETIME_CAPTION_GL_SHIPS :Ticks (Schiffe)
|
||||||
|
STR_FRAMETIME_CAPTION_GL_AIRCRAFT :Ticks (Luftfahrzeuge)
|
||||||
|
STR_FRAMETIME_CAPTION_GL_LANDSCAPE :Welt-Ticks
|
||||||
|
STR_FRAMETIME_CAPTION_GL_LINKGRAPH :Intervall für Neuberechnung des Verteilungsgraphen
|
||||||
STR_FRAMETIME_CAPTION_DRAWING :Grafik-Rendering
|
STR_FRAMETIME_CAPTION_DRAWING :Grafik-Rendering
|
||||||
STR_FRAMETIME_CAPTION_SOUND :Sound mixing
|
STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Karten-Rendering
|
||||||
|
STR_FRAMETIME_CAPTION_VIDEO :Videoausgabe
|
||||||
|
STR_FRAMETIME_CAPTION_SOUND :Sound-Abmischung
|
||||||
############ End of leave-in-this-order
|
############ End of leave-in-this-order
|
||||||
|
|
||||||
|
|
||||||
@@ -3182,6 +3227,9 @@ STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Spielsta
|
|||||||
STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Keine Informationen verfügbar
|
STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Keine Informationen verfügbar
|
||||||
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
||||||
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
|
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
|
||||||
|
STR_SAVELOAD_FILTER_TITLE :{BLACK}Suchtext:
|
||||||
|
STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Datei überschreiben
|
||||||
|
STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}Existierende Datei wirklich überschreiben?
|
||||||
|
|
||||||
STR_SAVELOAD_OSKTITLE :{BLACK}Namen für den Spielstand eingeben
|
STR_SAVELOAD_OSKTITLE :{BLACK}Namen für den Spielstand eingeben
|
||||||
|
|
||||||
@@ -3300,8 +3348,12 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Version:
|
|||||||
STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Min. kompatible Version: {SILVER}{NUM}
|
STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Min. kompatible Version: {SILVER}{NUM}
|
||||||
STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5-Summe: {SILVER}{STRING}
|
STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5-Summe: {SILVER}{STRING}
|
||||||
STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Farbpalette: {SILVER}{STRING}
|
STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Farbpalette: {SILVER}{STRING}
|
||||||
|
STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Standard (D)
|
||||||
|
STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Standard (D) / 32 bpp
|
||||||
STR_NEWGRF_SETTINGS_PALETTE_LEGACY :veraltet (W)
|
STR_NEWGRF_SETTINGS_PALETTE_LEGACY :veraltet (W)
|
||||||
|
STR_NEWGRF_SETTINGS_PALETTE_LEGACY_32BPP :veraltet (W) / 32 bpp
|
||||||
STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parameter: {SILVER}{STRING}
|
STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parameter: {SILVER}{STRING}
|
||||||
|
STR_NEWGRF_SETTINGS_PARAMETER_NONE :Keine
|
||||||
|
|
||||||
STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Keine Informationen verfügbar
|
STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Keine Informationen verfügbar
|
||||||
STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Zugehörige Datei nicht gefunden
|
STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Zugehörige Datei nicht gefunden
|
||||||
@@ -3374,7 +3426,7 @@ STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :der NewGRF-Date
|
|||||||
STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Zu viele NewGRFs geladen
|
STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Zu viele NewGRFs geladen
|
||||||
STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Das Laden von {1:STRING} als statisches NewGRF mit {STRING} könnte Synchronisationsfehler hervorrufen
|
STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Das Laden von {1:STRING} als statisches NewGRF mit {STRING} könnte Synchronisationsfehler hervorrufen
|
||||||
STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Unerwartetes Sprite (Sprite {3:NUM})
|
STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Unerwartetes Sprite (Sprite {3:NUM})
|
||||||
STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Unbekannte Action 0 - Property {4:HEX} (Sprite {3:NUM})
|
STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Unbekannte Action 0 - Eigenschaft {4:HEX} (Sprite {3:NUM})
|
||||||
STR_NEWGRF_ERROR_INVALID_ID :Zugriff auf eine ungültige ID (Sprite {3:NUM})
|
STR_NEWGRF_ERROR_INVALID_ID :Zugriff auf eine ungültige ID (Sprite {3:NUM})
|
||||||
STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} enthält fehlerhafte Grafiken. Diese werden als Fragezeichen (?) dargestellt
|
STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} enthält fehlerhafte Grafiken. Diese werden als Fragezeichen (?) dargestellt
|
||||||
STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Enthält mehrere Action 8 - Einträge (Sprite {3:NUM})
|
STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Enthält mehrere Action 8 - Einträge (Sprite {3:NUM})
|
||||||
@@ -3382,6 +3434,8 @@ STR_NEWGRF_ERROR_READ_BOUNDS :Lesezugriff üb
|
|||||||
STR_NEWGRF_ERROR_GRM_FAILED :Die angeforderte GRF-Ressource ist nicht verfügbar (Sprite {3:NUM})
|
STR_NEWGRF_ERROR_GRM_FAILED :Die angeforderte GRF-Ressource ist nicht verfügbar (Sprite {3:NUM})
|
||||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} wurde von {STRING} deaktiviert
|
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} wurde von {STRING} deaktiviert
|
||||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ungültiges oder unbekanntes Format für Spritelayout (Sprite {3:NUM})
|
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ungültiges oder unbekanntes Format für Spritelayout (Sprite {3:NUM})
|
||||||
|
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Zu viele Elemente in Eigenschaftswert-Liste (Sprite {3:NUM}, Eigenschaft {4:HEX})
|
||||||
|
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Ungültige Produktions-Rückruffunktion (Sprite {3:NUM}, "{1:STRING}")
|
||||||
|
|
||||||
# NewGRF related 'general' warnings
|
# NewGRF related 'general' warnings
|
||||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Achtung!
|
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Achtung!
|
||||||
@@ -3411,7 +3465,7 @@ STR_BROKEN_VEHICLE_LENGTH :{WHITE}Zug '{VE
|
|||||||
|
|
||||||
STR_NEWGRF_BUGGY :{WHITE}NewGRF '{0:STRING}' liefert falsche Informationen
|
STR_NEWGRF_BUGGY :{WHITE}NewGRF '{0:STRING}' liefert falsche Informationen
|
||||||
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Fracht / Ersetzungs - Informationen für '{1:ENGINE}' weichen von der Einkaufsliste nach dem Kauf ab. Das kann dazu führen, dass das Umrüsten beim autmatisches Ersetzen oder Erneuern nicht korrekt funktioniert
|
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Fracht / Ersetzungs - Informationen für '{1:ENGINE}' weichen von der Einkaufsliste nach dem Kauf ab. Das kann dazu führen, dass das Umrüsten beim autmatisches Ersetzen oder Erneuern nicht korrekt funktioniert
|
||||||
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' verursachte eine Endlosschleife im 'Production callback'
|
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' verursachte eine Endlosschleife in Produktions-Rückruffunktion
|
||||||
STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}Callback {1:HEX} lieferte des unbekannte und ungülte Resultat {2:HEX}
|
STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}Callback {1:HEX} lieferte des unbekannte und ungülte Resultat {2:HEX}
|
||||||
|
|
||||||
STR_NEWGRF_TOO_MANY_STRINGS :{WHITE}Nicht genügend String-IDs für alle NewGRFs vorhanden.
|
STR_NEWGRF_TOO_MANY_STRINGS :{WHITE}Nicht genügend String-IDs für alle NewGRFs vorhanden.
|
||||||
@@ -3420,7 +3474,7 @@ STR_NEWGRF_TOO_MANY_STRINGS_DETAIL :{WHITE}Einige N
|
|||||||
# 'User removed essential NewGRFs'-placeholders for stuff without specs
|
# 'User removed essential NewGRFs'-placeholders for stuff without specs
|
||||||
STR_NEWGRF_INVALID_CARGO :<ungültige Frachtart>
|
STR_NEWGRF_INVALID_CARGO :<ungültige Frachtart>
|
||||||
STR_NEWGRF_INVALID_CARGO_ABBREV :??
|
STR_NEWGRF_INVALID_CARGO_ABBREV :??
|
||||||
STR_NEWGRF_INVALID_CARGO_QUANTITY :{COMMA} of <ungültige Frachtart>
|
STR_NEWGRF_INVALID_CARGO_QUANTITY :{COMMA} Einheiten <ungültige Frachtart>
|
||||||
STR_NEWGRF_INVALID_ENGINE :<ungültiger Fahrzeugtyp>
|
STR_NEWGRF_INVALID_ENGINE :<ungültiger Fahrzeugtyp>
|
||||||
STR_NEWGRF_INVALID_INDUSTRYTYPE :<ungültige Industrie>
|
STR_NEWGRF_INVALID_INDUSTRYTYPE :<ungültige Industrie>
|
||||||
|
|
||||||
@@ -3457,6 +3511,7 @@ STR_TOWN_POPULATION :{BLACK}Weltbev
|
|||||||
STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN}
|
STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN}
|
||||||
STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (Großstadt)
|
STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (Großstadt)
|
||||||
STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Einwohner: {ORANGE}{COMMA}{BLACK} Häuser: {ORANGE}{COMMA}
|
STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Einwohner: {ORANGE}{COMMA}{BLACK} Häuser: {ORANGE}{COMMA}
|
||||||
|
STR_TOWN_VIEW_CARGO_LAST_MONTH_MAX :{BLACK}{CARGO_LIST} im letzten Monat: {ORANGE}{COMMA}{BLACK} Max.: {ORANGE}{COMMA}
|
||||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Für Stadtwachstum benötigte Fracht:
|
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Für Stadtwachstum benötigte Fracht:
|
||||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED} benötigt
|
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED} benötigt
|
||||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} im Winter benötigt
|
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} im Winter benötigt
|
||||||
@@ -3863,6 +3918,7 @@ STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Diese I
|
|||||||
|
|
||||||
STR_INDUSTRY_VIEW_REQUIRES_N_CARGO :{BLACK}Benötigt: {YELLOW}{STRING}{STRING}
|
STR_INDUSTRY_VIEW_REQUIRES_N_CARGO :{BLACK}Benötigt: {YELLOW}{STRING}{STRING}
|
||||||
STR_INDUSTRY_VIEW_PRODUCES_N_CARGO :{BLACK}Produziert: {YELLOW}{STRING}{STRING}
|
STR_INDUSTRY_VIEW_PRODUCES_N_CARGO :{BLACK}Produziert: {YELLOW}{STRING}{STRING}
|
||||||
|
STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION :, {STRING}{STRING}
|
||||||
|
|
||||||
STR_INDUSTRY_VIEW_TRANSPORTED_TOOLTIP :{BLACK}{STRING}{STRING}
|
STR_INDUSTRY_VIEW_TRANSPORTED_TOOLTIP :{BLACK}{STRING}{STRING}
|
||||||
STR_INDUSTRY_VIEW_TRANSPORTED_TOOLTIP_EXTENSION :{}{BLACK}{CARGO_LONG} ({COMMA}%)
|
STR_INDUSTRY_VIEW_TRANSPORTED_TOOLTIP_EXTENSION :{}{BLACK}{CARGO_LONG} ({COMMA}%)
|
||||||
@@ -3935,6 +3991,7 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Gruppen
|
|||||||
STR_GROUP_CREATE_TOOLTIP :{BLACK}Neue Gruppe erstellen
|
STR_GROUP_CREATE_TOOLTIP :{BLACK}Neue Gruppe erstellen
|
||||||
STR_GROUP_DELETE_TOOLTIP :{BLACK}Ausgewählte Gruppe löschen
|
STR_GROUP_DELETE_TOOLTIP :{BLACK}Ausgewählte Gruppe löschen
|
||||||
STR_GROUP_RENAME_TOOLTIP :{BLACK}Ausgewählte Gruppe umbenennen
|
STR_GROUP_RENAME_TOOLTIP :{BLACK}Ausgewählte Gruppe umbenennen
|
||||||
|
STR_GROUP_LIVERY_TOOLTIP :{BLACK}Farbschema der ausgewählten Gruppe ändern
|
||||||
STR_GROUP_COLLAPSE :{BLACK}Einklappen
|
STR_GROUP_COLLAPSE :{BLACK}Einklappen
|
||||||
STR_GROUP_EXPAND :{BLACK}Ausklappen
|
STR_GROUP_EXPAND :{BLACK}Ausklappen
|
||||||
STR_GROUP_EXPAND_ALL :{BLACK}Alles ausklappen
|
STR_GROUP_EXPAND_ALL :{BLACK}Alles ausklappen
|
||||||
@@ -3984,6 +4041,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Kapazit
|
|||||||
STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Angetriebene Waggons: {GOLD}+{POWER}{BLACK} Gewicht: {GOLD}+{WEIGHT_SHORT}
|
STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Angetriebene Waggons: {GOLD}+{POWER}{BLACK} Gewicht: {GOLD}+{WEIGHT_SHORT}
|
||||||
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Umrüstbar auf: {GOLD}{STRING}
|
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Umrüstbar auf: {GOLD}{STRING}
|
||||||
STR_PURCHASE_INFO_ALL_TYPES :Alle Frachtarten
|
STR_PURCHASE_INFO_ALL_TYPES :Alle Frachtarten
|
||||||
|
STR_PURCHASE_INFO_NONE :Keine
|
||||||
STR_PURCHASE_INFO_ALL_BUT :Alles außer {CARGO_LIST}
|
STR_PURCHASE_INFO_ALL_BUT :Alles außer {CARGO_LIST}
|
||||||
STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Zugkraft: {GOLD}{FORCE}
|
STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Zugkraft: {GOLD}{FORCE}
|
||||||
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Reichweite: {GOLD}{COMMA} Felder
|
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Reichweite: {GOLD}{COMMA} Felder
|
||||||
@@ -4418,6 +4476,7 @@ STR_ORDER_CONDITIONAL_AGE :Fahrzeugalter (
|
|||||||
STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Wartung erforderlich
|
STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Wartung erforderlich
|
||||||
STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Immer
|
STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Immer
|
||||||
STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Verbleibende Laufzeit (Jahre)
|
STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Verbleibende Laufzeit (Jahre)
|
||||||
|
STR_ORDER_CONDITIONAL_MAX_RELIABILITY :Maximale Zuverlässigkeit
|
||||||
STR_ORDER_CONDITIONAL_CARGO_WAITING :Wartende Fracht
|
STR_ORDER_CONDITIONAL_CARGO_WAITING :Wartende Fracht
|
||||||
STR_ORDER_CONDITIONAL_ACCEPTANCE_DROPDOWN :Akzeptierte Fracht
|
STR_ORDER_CONDITIONAL_ACCEPTANCE_DROPDOWN :Akzeptierte Fracht
|
||||||
STR_ORDER_CONDITIONAL_FREE_PLATFORMS :Freie Bahnsteige
|
STR_ORDER_CONDITIONAL_FREE_PLATFORMS :Freie Bahnsteige
|
||||||
@@ -4954,6 +5013,7 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... dies
|
|||||||
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... Straße verläuft in die falsche Richtung
|
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... Straße verläuft in die falsche Richtung
|
||||||
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... Bus- und Lkw-Haltestellen können nicht um die Kurve gehen
|
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... Bus- und Lkw-Haltestellen können nicht um die Kurve gehen
|
||||||
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... Bus- und Lkw-Haltestellen können keine Abzweigung haben
|
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... Bus- und Lkw-Haltestellen können keine Abzweigung haben
|
||||||
|
STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}...Einbahnstraße oder blockierter Weg
|
||||||
|
|
||||||
# Station destruction related errors
|
# Station destruction related errors
|
||||||
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Dieser Teil der Station kann nicht entfernt werden...
|
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Dieser Teil der Station kann nicht entfernt werden...
|
||||||
|
@@ -190,6 +190,7 @@ STR_COLOUR_BROWN :갈색
|
|||||||
STR_COLOUR_GREY :회색
|
STR_COLOUR_GREY :회색
|
||||||
STR_COLOUR_WHITE :흰색
|
STR_COLOUR_WHITE :흰색
|
||||||
STR_COLOUR_RANDOM :무작위
|
STR_COLOUR_RANDOM :무작위
|
||||||
|
STR_COLOUR_DEFAULT :기본
|
||||||
|
|
||||||
# Units used in OpenTTD
|
# Units used in OpenTTD
|
||||||
STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph
|
STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph
|
||||||
@@ -3297,6 +3298,8 @@ STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}사용
|
|||||||
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
||||||
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
|
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
|
||||||
STR_SAVELOAD_FILTER_TITLE :{BLACK}검색할 문자열:
|
STR_SAVELOAD_FILTER_TITLE :{BLACK}검색할 문자열:
|
||||||
|
STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}파일 덮어쓰기
|
||||||
|
STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}정말로 이미 존재하는 파일에 덮어씌우시겠습니까?
|
||||||
|
|
||||||
STR_SAVELOAD_OSKTITLE :{BLACK}게임을 저장할 파일명을 입력하세요
|
STR_SAVELOAD_OSKTITLE :{BLACK}게임을 저장할 파일명을 입력하세요
|
||||||
|
|
||||||
@@ -4087,6 +4090,7 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}그룹 -
|
|||||||
STR_GROUP_CREATE_TOOLTIP :{BLACK}그룹 만들기
|
STR_GROUP_CREATE_TOOLTIP :{BLACK}그룹 만들기
|
||||||
STR_GROUP_DELETE_TOOLTIP :{BLACK}선택한 그룹 삭제
|
STR_GROUP_DELETE_TOOLTIP :{BLACK}선택한 그룹 삭제
|
||||||
STR_GROUP_RENAME_TOOLTIP :{BLACK}선택한 그룹 이름 바꾸기
|
STR_GROUP_RENAME_TOOLTIP :{BLACK}선택한 그룹 이름 바꾸기
|
||||||
|
STR_GROUP_LIVERY_TOOLTIP :{BLACK}선택한 그룹의 차량 색상을 변경합니다.
|
||||||
STR_GROUP_COLLAPSE :{BLACK}접기
|
STR_GROUP_COLLAPSE :{BLACK}접기
|
||||||
STR_GROUP_EXPAND :{BLACK}펼치기
|
STR_GROUP_EXPAND :{BLACK}펼치기
|
||||||
STR_GROUP_EXPAND_ALL :{BLACK}모두 펼치기
|
STR_GROUP_EXPAND_ALL :{BLACK}모두 펼치기
|
||||||
|
@@ -140,7 +140,7 @@ STR_ABBREV_GOODS :{TINY_FONT}BN
|
|||||||
STR_ABBREV_GRAIN :{TINY_FONT}CR
|
STR_ABBREV_GRAIN :{TINY_FONT}CR
|
||||||
STR_ABBREV_WOOD :{TINY_FONT}MD
|
STR_ABBREV_WOOD :{TINY_FONT}MD
|
||||||
STR_ABBREV_IRON_ORE :{TINY_FONT}FR
|
STR_ABBREV_IRON_ORE :{TINY_FONT}FR
|
||||||
STR_ABBREV_STEEL :{TINY_FONT}AÇ
|
STR_ABBREV_STEEL :{TINY_FONT}AC
|
||||||
STR_ABBREV_VALUABLES :{TINY_FONT}VL
|
STR_ABBREV_VALUABLES :{TINY_FONT}VL
|
||||||
STR_ABBREV_COPPER_ORE :{TINY_FONT}CO
|
STR_ABBREV_COPPER_ORE :{TINY_FONT}CO
|
||||||
STR_ABBREV_MAIZE :{TINY_FONT}ML
|
STR_ABBREV_MAIZE :{TINY_FONT}ML
|
||||||
@@ -263,7 +263,7 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP_TOOLTIP :{BLACK}Ao activ
|
|||||||
STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Ao activar este botão, os aviões ocultos também serão exibidos
|
STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Ao activar este botão, os aviões ocultos também serão exibidos
|
||||||
|
|
||||||
# Query window
|
# Query window
|
||||||
STR_BUTTON_DEFAULT :{BLACK}Por Omissão
|
STR_BUTTON_DEFAULT :{BLACK}Padrão
|
||||||
STR_BUTTON_CANCEL :{BLACK}Cancelar
|
STR_BUTTON_CANCEL :{BLACK}Cancelar
|
||||||
STR_BUTTON_OK :{BLACK}Confirmar
|
STR_BUTTON_OK :{BLACK}Confirmar
|
||||||
|
|
||||||
@@ -479,7 +479,7 @@ STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Captura com res
|
|||||||
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Captura com resolução normal
|
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Captura com resolução normal
|
||||||
STR_ABOUT_MENU_GIANT_SCREENSHOT :Captura de mapa
|
STR_ABOUT_MENU_GIANT_SCREENSHOT :Captura de mapa
|
||||||
STR_ABOUT_MENU_SHOW_FRAMERATE :Mostrar taxa de fotograma
|
STR_ABOUT_MENU_SHOW_FRAMERATE :Mostrar taxa de fotograma
|
||||||
STR_ABOUT_MENU_ABOUT_OPENTTD :Sobre o OpenTTD...
|
STR_ABOUT_MENU_ABOUT_OPENTTD :Sobre o 'OpenTTD'
|
||||||
STR_ABOUT_MENU_SPRITE_ALIGNER :Alinhador de gráficos
|
STR_ABOUT_MENU_SPRITE_ALIGNER :Alinhador de gráficos
|
||||||
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Alternar as caixas envolventes
|
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Alternar as caixas envolventes
|
||||||
STR_ABOUT_MENU_TOGGLE_DIRTY_BLOCKS :Ligar/Desligar coloração de blocos sujos
|
STR_ABOUT_MENU_TOGGLE_DIRTY_BLOCKS :Ligar/Desligar coloração de blocos sujos
|
||||||
@@ -606,7 +606,7 @@ STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_DIRECTOR :Director
|
|||||||
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHIEF_EXECUTIVE :Chefe Executivo
|
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHIEF_EXECUTIVE :Chefe Executivo
|
||||||
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHAIRMAN :Director Executivo
|
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHAIRMAN :Director Executivo
|
||||||
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_PRESIDENT :Presidente
|
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_PRESIDENT :Presidente
|
||||||
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TYCOON :Magnate
|
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TYCOON :Magnata
|
||||||
|
|
||||||
# Performance detail window
|
# Performance detail window
|
||||||
STR_PERFORMANCE_DETAIL :{WHITE}Detalhes de rendimentos
|
STR_PERFORMANCE_DETAIL :{WHITE}Detalhes de rendimentos
|
||||||
@@ -1173,11 +1173,11 @@ STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Escolha quanto
|
|||||||
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Altura máxima do mapa: {STRING}
|
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Altura máxima do mapa: {STRING}
|
||||||
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Define altura máxima permitida para montanhas no mapa
|
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Define altura máxima permitida para montanhas no mapa
|
||||||
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Pode aumentar a altura máxima do mapa para este valor. Pelo menos uma montanha no mapa é mais alta
|
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Pode aumentar a altura máxima do mapa para este valor. Pelo menos uma montanha no mapa é mais alta
|
||||||
STR_CONFIG_SETTING_AUTOSLOPE :Permitir formação de terra sob os edifícios, vias, etc. (auto-declive): {STRING}
|
STR_CONFIG_SETTING_AUTOSLOPE :Permite alteração de terra sob edifícios, vias, etc. (auto-declive): {STRING}
|
||||||
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permitir formação de terras debaixo de edifícios e linhas sem os remover
|
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permite alteração de terra sob edifícios e vias sem os remover
|
||||||
STR_CONFIG_SETTING_CATCHMENT :Dimensionamento mais realista de áreas de abrangência: {STRING}
|
STR_CONFIG_SETTING_CATCHMENT :Dimensionamento mais realista de áreas de abrangência: {STRING}
|
||||||
STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Haver diferentes áreas de cobertura para diferentes tipos de estações e aeroportos
|
STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Haver diferentes áreas de cobertura para diferentes tipos de estações e aeroportos
|
||||||
STR_CONFIG_SETTING_EXTRADYNAMITE :Permitir remover mais mais estradas, pontes e túneis detidos pela cidade: {STRING}
|
STR_CONFIG_SETTING_EXTRADYNAMITE :Permite remover mais estradas, pontes e túneis detidos pela cidade: {STRING}
|
||||||
STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Facilitar a remoçar de edifícios e infraestruturas detidas pela cidade
|
STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Facilitar a remoçar de edifícios e infraestruturas detidas pela cidade
|
||||||
STR_CONFIG_SETTING_TRAIN_LENGTH :Tamanho máximo de comboios: {STRING}
|
STR_CONFIG_SETTING_TRAIN_LENGTH :Tamanho máximo de comboios: {STRING}
|
||||||
STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT :Assignar o tamanho máximo dos comboios
|
STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT :Assignar o tamanho máximo dos comboios
|
||||||
@@ -1196,7 +1196,7 @@ STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :Declive de um q
|
|||||||
STR_CONFIG_SETTING_FORBID_90_DEG :Proibir comboios e barcos fazer curvas de 90º: {STRING}
|
STR_CONFIG_SETTING_FORBID_90_DEG :Proibir comboios e barcos fazer curvas de 90º: {STRING}
|
||||||
STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Curvas de 90 graus ocorrem quando uma pista horizontal é directamente seguida por outra vertical num quadrado adjacente, fazendo com que o combóio vire 90 graus quando atravessa a fronteira dos quadrados, ao invés dos habituais 45 graus para outras combinações de pistas. Também se aplica ao raio de curvatura dos navios
|
STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Curvas de 90 graus ocorrem quando uma pista horizontal é directamente seguida por outra vertical num quadrado adjacente, fazendo com que o combóio vire 90 graus quando atravessa a fronteira dos quadrados, ao invés dos habituais 45 graus para outras combinações de pistas. Também se aplica ao raio de curvatura dos navios
|
||||||
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Permitir juntar estações não adjacentes: {STRING}
|
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Permitir juntar estações não adjacentes: {STRING}
|
||||||
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Permitir adicionar novas partes a uma estação sem tocar nas partes já existentes. Requer pressionar CTRL+click para adicionar as novas partes
|
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Permite adicionar novas partes a uma estação sem tocar nas partes já existentes. Requer pressionar CTRL+click para adicionar as novas partes
|
||||||
STR_CONFIG_SETTING_INFLATION :Inflação: {STRING}
|
STR_CONFIG_SETTING_INFLATION :Inflação: {STRING}
|
||||||
STR_CONFIG_SETTING_INFLATION_HELPTEXT :Ativar inflação na economia, para que os preços subam ligeiramente mais rápido do que os pagamentos
|
STR_CONFIG_SETTING_INFLATION_HELPTEXT :Ativar inflação na economia, para que os preços subam ligeiramente mais rápido do que os pagamentos
|
||||||
STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Tamanho máximo de ponte: {STRING}
|
STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Tamanho máximo de ponte: {STRING}
|
||||||
@@ -1234,16 +1234,16 @@ STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Desligado
|
|||||||
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Visualizador principal, só ecrã cheio
|
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Visualizador principal, só ecrã cheio
|
||||||
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Visualizador principal
|
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Visualizador principal
|
||||||
STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :Todos os visualizadores
|
STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :Todos os visualizadores
|
||||||
STR_CONFIG_SETTING_BRIBE :Permitir o suborno da autoridade local: {STRING}
|
STR_CONFIG_SETTING_BRIBE :Permite o suborno da autoridade local: {STRING}
|
||||||
STR_CONFIG_SETTING_BRIBE_HELPTEXT :Permitir que as companhias subornem as autoridades locais. Se o suborno for descoberto por um inspector, a companhia não poderá construir nessa localidade durante seis meses
|
STR_CONFIG_SETTING_BRIBE_HELPTEXT :Permite que as companhias tentem subornar a autoridade local. Se o suborno for descoberto por um inspector, a companhia não poderá construir nessa localidade durante seis meses
|
||||||
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :Permitir comprar exclusivo dos direitos de transportes: {STRING}
|
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :Permite comprar direitos de transporte em exclusividade: {STRING}
|
||||||
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Se uma empresa compra direitos exclusivos de transporte para uma cidade, as estações dos concorrentes (passageiros e carga) não receberão cargo durante um ano
|
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Se uma empresa compra direitos exclusivos de transporte para uma cidade, as estações dos concorrentes (passageiros e carga) não receberão cargo durante um ano
|
||||||
STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS :Permitir investir em edificios: {STRING}
|
STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS :Permite investir em edifícios: {STRING}
|
||||||
STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Permitir que empresas doem dinheiro às cidades para financiar creação de novas casas
|
STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Permite que empresas doem dinheiro às cidades para financiar novas casas
|
||||||
STR_CONFIG_SETTING_ALLOW_FUND_ROAD :Permitir o financiamento de reconstrução de estradas locais:{STRING}
|
STR_CONFIG_SETTING_ALLOW_FUND_ROAD :Permite financiar a reconstrução de estradas locais:{STRING}
|
||||||
STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT :Permitir que as companhias financiem reparações de estradas para sabotar serviços rodoviários dos oponentes.
|
STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT :Permite que as companhias financiem reparações de estrada para sabotar serviços rodoviários dos oponentes.
|
||||||
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :Permitir enviar dinheiro para outras empresas: {STRING}
|
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :Permite enviar dinheiro para outras empresas: {STRING}
|
||||||
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Permitir transferencias de dinheiro entre empresas em modo multi-jogador
|
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Permite transferências de dinheiro entre empresas em modo multi-jogador
|
||||||
STR_CONFIG_SETTING_FREIGHT_TRAINS :Multiplicador de peso para simular comboios pesados: {STRING}
|
STR_CONFIG_SETTING_FREIGHT_TRAINS :Multiplicador de peso para simular comboios pesados: {STRING}
|
||||||
STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Define o impacto de carregar mercadoria nos combóios. Um valor superior torna o carregamento de meradoria mais exigente para os combóios, especialmente em terreno inclinado
|
STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Define o impacto de carregar mercadoria nos combóios. Um valor superior torna o carregamento de meradoria mais exigente para os combóios, especialmente em terreno inclinado
|
||||||
STR_CONFIG_SETTING_PLANE_SPEED :Fator de velocidade de avião: {STRING}
|
STR_CONFIG_SETTING_PLANE_SPEED :Fator de velocidade de avião: {STRING}
|
||||||
@@ -1254,9 +1254,9 @@ STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Indicar a hipó
|
|||||||
STR_CONFIG_SETTING_PLANE_CRASHES_NONE :Nenhum
|
STR_CONFIG_SETTING_PLANE_CRASHES_NONE :Nenhum
|
||||||
STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :Reduzido
|
STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :Reduzido
|
||||||
STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :Normal
|
STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :Normal
|
||||||
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Permitir estações de passagem em estradas das cidades: {STRING}
|
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Permite estações de passagem em estradas das cidades: {STRING}
|
||||||
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Permite construção de paragens drive-through em ruas que são prorpiedade das povoações
|
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Permite construção de paragens drive-through em ruas que são prorpiedade das povoações
|
||||||
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Permitir estações de passagem em estradas do adversário: {STRING}
|
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Permite estações de passagem em estradas do adversário: {STRING}
|
||||||
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Permite construção de paragens drive-through em ruas que são prorpiedade de outras companhias
|
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Permite construção de paragens drive-through em ruas que são prorpiedade de outras companhias
|
||||||
STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Não é possível mudar quando já existem veículos.
|
STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Não é possível mudar quando já existem veículos.
|
||||||
STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Manutenção de infraestruturas: {STRING}
|
STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Manutenção de infraestruturas: {STRING}
|
||||||
@@ -1283,8 +1283,8 @@ STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Auto-renovaçã
|
|||||||
STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Quando activo, um veículo a chegar ao fim de vida é automaticamente substituído quando as condições de renovação estão reunidas
|
STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Quando activo, um veículo a chegar ao fim de vida é automaticamente substituído quando as condições de renovação estão reunidas
|
||||||
STR_CONFIG_SETTING_AUTORENEW_MONTHS :Renovar automaticamente quando um veículo chega a {STRING} de idade
|
STR_CONFIG_SETTING_AUTORENEW_MONTHS :Renovar automaticamente quando um veículo chega a {STRING} de idade
|
||||||
STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Idade relativa a partir da qual um veículo deva ser indicado para auto-renovação
|
STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Idade relativa a partir da qual um veículo deva ser indicado para auto-renovação
|
||||||
STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} mês{P 0 "" es} antes
|
STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} {P "mês" "meses"} antes
|
||||||
STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} mês{P 0 "" es} após
|
STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} {P "mês" "meses"} após
|
||||||
STR_CONFIG_SETTING_AUTORENEW_MONEY :Dinheiro mínimo para fazer auto-renovação: {STRING}
|
STR_CONFIG_SETTING_AUTORENEW_MONEY :Dinheiro mínimo para fazer auto-renovação: {STRING}
|
||||||
STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Quantidade mínima de dinheiro que tem que estar no banco para auto-renovação de veículos ser considerada
|
STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Quantidade mínima de dinheiro que tem que estar no banco para auto-renovação de veículos ser considerada
|
||||||
STR_CONFIG_SETTING_ERRMSG_DURATION :Duração da mensagem de erro: {STRING}
|
STR_CONFIG_SETTING_ERRMSG_DURATION :Duração da mensagem de erro: {STRING}
|
||||||
@@ -1465,13 +1465,13 @@ STR_CONFIG_SETTING_AI_BUILDS_SHIPS :Desactivar barc
|
|||||||
STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :Activar esta preferência impossibilita a construção de navios por um jogador controlado pelo computador
|
STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :Activar esta preferência impossibilita a construção de navios por um jogador controlado pelo computador
|
||||||
|
|
||||||
STR_CONFIG_SETTING_AI_PROFILE :Perfil de preferências por omissão: {STRING}
|
STR_CONFIG_SETTING_AI_PROFILE :Perfil de preferências por omissão: {STRING}
|
||||||
STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT :Escolher o perfil de preferências a usar para AIs aleatórias ou para valores iniciais ao adicionar uma nova AI ou Game Script
|
STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT :Escolher o perfil de preferências a usar para AIs aleatórias ou para valores iniciais ao adicionar uma nova AI ou Script de Jogo
|
||||||
STR_CONFIG_SETTING_AI_PROFILE_EASY :Fácil
|
STR_CONFIG_SETTING_AI_PROFILE_EASY :Fácil
|
||||||
STR_CONFIG_SETTING_AI_PROFILE_MEDIUM :Média
|
STR_CONFIG_SETTING_AI_PROFILE_MEDIUM :Média
|
||||||
STR_CONFIG_SETTING_AI_PROFILE_HARD :Difícil
|
STR_CONFIG_SETTING_AI_PROFILE_HARD :Difícil
|
||||||
|
|
||||||
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Permitir IAs em multi-jogador: {STRING}
|
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Permite IAs em multi-jogador: {STRING}
|
||||||
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Permitir a jogadores controlados pelo computador a participação em jogos multijogador
|
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Permite a jogadores controlados pelo computador a participação em jogos multi-jogador
|
||||||
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes antes de os scripts serem suspensos: {STRING}
|
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes antes de os scripts serem suspensos: {STRING}
|
||||||
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Número máximo de passos computacionais que um script pode executar num turno
|
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Número máximo de passos computacionais que um script pode executar num turno
|
||||||
|
|
||||||
@@ -1566,7 +1566,7 @@ STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :grelha 2x2
|
|||||||
STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :grelha 3x3
|
STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :grelha 3x3
|
||||||
STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :Aleatório
|
STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :Aleatório
|
||||||
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :As cidades têm permissão para construir estradas: {STRING}
|
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :As cidades têm permissão para construir estradas: {STRING}
|
||||||
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Permitir às cidades a construção de estradas para crescimento. Desactivar para não permitir às autoridades a construção de estradas
|
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Permite às cidades a construção de estradas para crescimento. Desactivar para não permitir às autoridades a construção de estradas
|
||||||
STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Cidades podem construir passagens de nível: {STRING}
|
STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Cidades podem construir passagens de nível: {STRING}
|
||||||
STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Activar esta preferência permite às cidades construir cruzamentos nivelados
|
STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Activar esta preferência permite às cidades construir cruzamentos nivelados
|
||||||
STR_CONFIG_SETTING_NOISE_LEVEL :Permitir que a cidade controle o nível de ruído dos aeroportos: {STRING}
|
STR_CONFIG_SETTING_NOISE_LEVEL :Permitir que a cidade controle o nível de ruído dos aeroportos: {STRING}
|
||||||
@@ -1701,7 +1701,7 @@ STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Cidades
|
|||||||
STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrias
|
STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrias
|
||||||
STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribuição de Carga
|
STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribuição de Carga
|
||||||
STR_CONFIG_SETTING_AI :{ORANGE}Oponentes
|
STR_CONFIG_SETTING_AI :{ORANGE}Oponentes
|
||||||
STR_CONFIG_SETTING_AI_NPC :{ORANGE}Jogadores computador
|
STR_CONFIG_SETTING_AI_NPC :{ORANGE}Jogadores Computador
|
||||||
|
|
||||||
STR_CONFIG_SETTING_PATHFINDER_OPF :Original
|
STR_CONFIG_SETTING_PATHFINDER_OPF :Original
|
||||||
STR_CONFIG_SETTING_PATHFINDER_NPF :NPF
|
STR_CONFIG_SETTING_PATHFINDER_NPF :NPF
|
||||||
@@ -1805,7 +1805,7 @@ STR_ABANDON_SCENARIO_QUERY :{YELLOW}Tem a c
|
|||||||
# Cheat window
|
# Cheat window
|
||||||
STR_CHEATS :{WHITE}Truques
|
STR_CHEATS :{WHITE}Truques
|
||||||
STR_CHEATS_TOOLTIP :{BLACK}As caixas de verificação indicam se já usou este truque antes
|
STR_CHEATS_TOOLTIP :{BLACK}As caixas de verificação indicam se já usou este truque antes
|
||||||
STR_CHEATS_WARNING :{BLACK} Atenção! Está prestes a trair seus concorrentes. Tenha em mente que a desonra vai ser lembrada para a eternidade
|
STR_CHEATS_WARNING :{BLACK} Atenção! Está prestes a trair seus concorrentes. Tenha em mente que a desonra será lembrada para a eternidade
|
||||||
STR_CHEAT_MONEY :{LTBLUE}Aumentar dinheiro em {CURRENCY_LONG}
|
STR_CHEAT_MONEY :{LTBLUE}Aumentar dinheiro em {CURRENCY_LONG}
|
||||||
STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Jogando como empresa: {ORANGE}{COMMA}
|
STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Jogando como empresa: {ORANGE}{COMMA}
|
||||||
STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Bulldozer mágico (destrói indústrias, objectos amovíveis etc.): {ORANGE}{STRING}
|
STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Bulldozer mágico (destrói indústrias, objectos amovíveis etc.): {ORANGE}{STRING}
|
||||||
@@ -2392,10 +2392,10 @@ STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Selecç
|
|||||||
STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY_LONG}
|
STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY_LONG}
|
||||||
STR_SELECT_BRIDGE_SCENEDIT_INFO :{GOLD}{STRING},{} {VELOCITY}
|
STR_SELECT_BRIDGE_SCENEDIT_INFO :{GOLD}{STRING},{} {VELOCITY}
|
||||||
STR_BRIDGE_NAME_SUSPENSION_STEEL :Suspensa, Aço
|
STR_BRIDGE_NAME_SUSPENSION_STEEL :Suspensa, Aço
|
||||||
STR_BRIDGE_NAME_GIRDER_STEEL :Vigas, Aço
|
STR_BRIDGE_NAME_GIRDER_STEEL :Viga, Aço
|
||||||
STR_BRIDGE_NAME_CANTILEVER_STEEL :Cantilever, Aço
|
STR_BRIDGE_NAME_CANTILEVER_STEEL :Consola, Aço
|
||||||
STR_BRIDGE_NAME_SUSPENSION_CONCRETE :Suspensa, Betão
|
STR_BRIDGE_NAME_SUSPENSION_CONCRETE :Suspensa, Betão
|
||||||
STR_BRIDGE_NAME_WOODEN :De madeira
|
STR_BRIDGE_NAME_WOODEN :Madeira
|
||||||
STR_BRIDGE_NAME_CONCRETE :Betão
|
STR_BRIDGE_NAME_CONCRETE :Betão
|
||||||
STR_BRIDGE_NAME_TUBULAR_STEEL :Tubular, Aço
|
STR_BRIDGE_NAME_TUBULAR_STEEL :Tubular, Aço
|
||||||
STR_BRIDGE_TUBULAR_SILICON :Tubular, Silício
|
STR_BRIDGE_TUBULAR_SILICON :Tubular, Silício
|
||||||
@@ -2474,8 +2474,8 @@ STR_AIRPORT_INTERNATIONAL :Internacional
|
|||||||
STR_AIRPORT_COMMUTER :Transbordo
|
STR_AIRPORT_COMMUTER :Transbordo
|
||||||
STR_AIRPORT_INTERCONTINENTAL :Intercontinental
|
STR_AIRPORT_INTERCONTINENTAL :Intercontinental
|
||||||
STR_AIRPORT_HELIPORT :Heliporto
|
STR_AIRPORT_HELIPORT :Heliporto
|
||||||
STR_AIRPORT_HELIDEPOT :Heli-depósito
|
STR_AIRPORT_HELIDEPOT :Heli Hangar
|
||||||
STR_AIRPORT_HELISTATION :Heli-estação
|
STR_AIRPORT_HELISTATION :Heliponto
|
||||||
|
|
||||||
STR_AIRPORT_CLASS_SMALL :Aeroportos pequenos
|
STR_AIRPORT_CLASS_SMALL :Aeroportos pequenos
|
||||||
STR_AIRPORT_CLASS_LARGE :Aeroportos grandes
|
STR_AIRPORT_CLASS_LARGE :Aeroportos grandes
|
||||||
@@ -2677,17 +2677,17 @@ STR_LAI_TUNNEL_DESCRIPTION_RAILROAD :Túnel ferrovi
|
|||||||
STR_LAI_TUNNEL_DESCRIPTION_ROAD :Túnel rodoviário
|
STR_LAI_TUNNEL_DESCRIPTION_ROAD :Túnel rodoviário
|
||||||
|
|
||||||
STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_STEEL :Ponte ferroviária suspensa em aço
|
STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_STEEL :Ponte ferroviária suspensa em aço
|
||||||
STR_LAI_BRIDGE_DESCRIPTION_RAIL_GIRDER_STEEL :Ponte ferroviária com vigas em aço
|
STR_LAI_BRIDGE_DESCRIPTION_RAIL_GIRDER_STEEL :Ponte ferroviária em vigas de aço
|
||||||
STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL :Ponte ferroviária cantilever em aço
|
STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL :Ponte ferroviária em consolas de aço
|
||||||
STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_CONCRETE :Ponte ferroviária suspensa de betão reforçado
|
STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_CONCRETE :Ponte ferroviária suspensa de betão armado
|
||||||
STR_LAI_BRIDGE_DESCRIPTION_RAIL_WOODEN :Ponte ferroviária de madeira
|
STR_LAI_BRIDGE_DESCRIPTION_RAIL_WOODEN :Ponte ferroviária de madeira
|
||||||
STR_LAI_BRIDGE_DESCRIPTION_RAIL_CONCRETE :Ponte ferroviária de betão
|
STR_LAI_BRIDGE_DESCRIPTION_RAIL_CONCRETE :Ponte ferroviária de betão
|
||||||
STR_LAI_BRIDGE_DESCRIPTION_RAIL_TUBULAR_STEEL :Ponte rodoviária tubular
|
STR_LAI_BRIDGE_DESCRIPTION_RAIL_TUBULAR_STEEL :Ponte rodoviária tubular
|
||||||
|
|
||||||
STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_STEEL :Ponte rodoviária suspensa em aço
|
STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_STEEL :Ponte rodoviária suspensa em aço
|
||||||
STR_LAI_BRIDGE_DESCRIPTION_ROAD_GIRDER_STEEL :Ponte rodoviária com vigas em aço
|
STR_LAI_BRIDGE_DESCRIPTION_ROAD_GIRDER_STEEL :Ponte rodoviária com vigas em aço
|
||||||
STR_LAI_BRIDGE_DESCRIPTION_ROAD_CANTILEVER_STEEL :Ponte rodoviária cantilever em aço
|
STR_LAI_BRIDGE_DESCRIPTION_ROAD_CANTILEVER_STEEL :Ponte rodoviária em consolas de aço
|
||||||
STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_CONCRETE :Ponte rodoviária suspensa de betão reforçado
|
STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_CONCRETE :Ponte rodoviária suspensa de betão armado
|
||||||
STR_LAI_BRIDGE_DESCRIPTION_ROAD_WOODEN :Ponte rodoviária de madeira
|
STR_LAI_BRIDGE_DESCRIPTION_ROAD_WOODEN :Ponte rodoviária de madeira
|
||||||
STR_LAI_BRIDGE_DESCRIPTION_ROAD_CONCRETE :Ponte rodoviária de betão
|
STR_LAI_BRIDGE_DESCRIPTION_ROAD_CONCRETE :Ponte rodoviária de betão
|
||||||
STR_LAI_BRIDGE_DESCRIPTION_ROAD_TUBULAR_STEEL :Ponte rodoviária tubular
|
STR_LAI_BRIDGE_DESCRIPTION_ROAD_TUBULAR_STEEL :Ponte rodoviária tubular
|
||||||
@@ -2700,7 +2700,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_HEADQUARTERS :Sede de empresa
|
|||||||
STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno propriedade de uma empresa
|
STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno propriedade de uma empresa
|
||||||
|
|
||||||
# About OpenTTD window
|
# About OpenTTD window
|
||||||
STR_ABOUT_OPENTTD :{WHITE}Sobre o OpenTTD...
|
STR_ABOUT_OPENTTD :{WHITE}Sobre o OpenTTD
|
||||||
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Direitos de autor originais {COPYRIGHT} 1995 Chris Sawyer, Todos os direitos reservados
|
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Direitos de autor originais {COPYRIGHT} 1995 Chris Sawyer, Todos os direitos reservados
|
||||||
STR_ABOUT_VERSION :{BLACK}OpenTTD versão {REV}
|
STR_ABOUT_VERSION :{BLACK}OpenTTD versão {REV}
|
||||||
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 A equipa do OpenTTD
|
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 A equipa do OpenTTD
|
||||||
@@ -2778,6 +2778,8 @@ STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Nenhuma
|
|||||||
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
||||||
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
|
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
|
||||||
STR_SAVELOAD_FILTER_TITLE :{BLACK}Filtro de sequência:
|
STR_SAVELOAD_FILTER_TITLE :{BLACK}Filtro de sequência:
|
||||||
|
STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Substituir Ficheiro
|
||||||
|
STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}Tem a certeza que deseja substituir o ficheiro existente?
|
||||||
|
|
||||||
STR_SAVELOAD_OSKTITLE :{BLACK}Introduza um nome para o jogo gravado
|
STR_SAVELOAD_OSKTITLE :{BLACK}Introduza um nome para o jogo gravado
|
||||||
|
|
||||||
@@ -3295,10 +3297,10 @@ STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Nenhum
|
|||||||
STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Valor da empresa: {WHITE}{CURRENCY_LONG}
|
STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Valor da empresa: {WHITE}{CURRENCY_LONG}
|
||||||
STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% propriedade de {COMPANY})
|
STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% propriedade de {COMPANY})
|
||||||
STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infraestrutura:
|
STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infraestrutura:
|
||||||
STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} peça{P "" s} de caminho-de-ferro
|
STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} {P "secção" "secções" } de caminho-de-ferro
|
||||||
STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} peça{P "" s} de estrada
|
STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} {P "secção" "secções"} de estrada
|
||||||
STR_COMPANY_VIEW_INFRASTRUCTURE_WATER :{WHITE}{COMMA} quadrado{P "" s} de água
|
STR_COMPANY_VIEW_INFRASTRUCTURE_WATER :{WHITE}{COMMA} bloco{P "" s} de água
|
||||||
STR_COMPANY_VIEW_INFRASTRUCTURE_STATION :{WHITE}{COMMA} quadrado{P "" s} de estação
|
STR_COMPANY_VIEW_INFRASTRUCTURE_STATION :{WHITE}{COMMA} bloco{P "" s} de estação
|
||||||
STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT :{WHITE}{COMMA} aeroporto{P "" s}
|
STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT :{WHITE}{COMMA} aeroporto{P "" s}
|
||||||
STR_COMPANY_VIEW_INFRASTRUCTURE_NONE :{WHITE}Nenhum
|
STR_COMPANY_VIEW_INFRASTRUCTURE_NONE :{WHITE}Nenhum
|
||||||
|
|
||||||
@@ -3334,15 +3336,15 @@ STR_BUY_COMPANY_MESSAGE :{WHITE}Estamos
|
|||||||
|
|
||||||
# Company infrastructure window
|
# Company infrastructure window
|
||||||
STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Infraestrutura de {COMPANY}
|
STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Infraestrutura de {COMPANY}
|
||||||
STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Peças de caminho-de-ferro:
|
STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Secções de caminho-de-ferro:
|
||||||
STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Sinais
|
STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Sinais
|
||||||
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Peças de estrada:
|
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Secções de estrada:
|
||||||
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD :{WHITE}Estrada
|
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD :{WHITE}Estrada
|
||||||
STR_COMPANY_INFRASTRUCTURE_VIEW_TRAMWAY :{WHITE}Via para elétricos
|
STR_COMPANY_INFRASTRUCTURE_VIEW_TRAMWAY :{WHITE}Via para elétricos
|
||||||
STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Quadrados de água:
|
STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Blocos de água:
|
||||||
STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Canais
|
STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Canais
|
||||||
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Estações:
|
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Estações:
|
||||||
STR_COMPANY_INFRASTRUCTURE_VIEW_STATIONS :{WHITE}Quadrados de estações
|
STR_COMPANY_INFRASTRUCTURE_VIEW_STATIONS :{WHITE}Blocos de estações
|
||||||
STR_COMPANY_INFRASTRUCTURE_VIEW_AIRPORTS :{WHITE}Aeroportos
|
STR_COMPANY_INFRASTRUCTURE_VIEW_AIRPORTS :{WHITE}Aeroportos
|
||||||
STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENCY_LONG}/ano
|
STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENCY_LONG}/ano
|
||||||
|
|
||||||
@@ -3440,11 +3442,11 @@ STR_GROUP_OCCUPANCY_VALUE :{NUM}%
|
|||||||
|
|
||||||
# Build vehicle window
|
# Build vehicle window
|
||||||
STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Novos Veículos Ferroviários
|
STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Novos Veículos Ferroviários
|
||||||
STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Novos comboios para carris electrificados
|
STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Novos Veículos Ferroviários Elétricos
|
||||||
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Novos Veículos Monocarril
|
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Novos Veículos Monocarril
|
||||||
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Novos Veículos Maglev
|
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Novos Veículos Maglev
|
||||||
|
|
||||||
STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Novos Veículos Sobre Carris
|
STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Novos Veículos Ferroviários
|
||||||
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Novos Veículos Rodoviários
|
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Novos Veículos Rodoviários
|
||||||
STR_BUY_VEHICLE_SHIP_CAPTION :Novos Barcos
|
STR_BUY_VEHICLE_SHIP_CAPTION :Novos Barcos
|
||||||
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nova Aeronave
|
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nova Aeronave
|
||||||
@@ -3474,7 +3476,7 @@ STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipo de
|
|||||||
|
|
||||||
STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista de veículos ferroviários - clique num veículo para informações
|
STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista de veículos ferroviários - clique num veículo para informações
|
||||||
STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Lista de veículos rodoviários - clique num veículo para informações
|
STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Lista de veículos rodoviários - clique num veículo para informações
|
||||||
STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Lista de selecção de navios. Clique num navio para informações. Ctrl+Clique para alternar/ocultar o tipo de navio
|
STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Lista de selecção de barcos. Clique num navio para informações. Ctrl+Clique para alternar/ocultar o tipo de barco
|
||||||
STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Lista de aeronaves - clique na aeronave para informações
|
STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Lista de aeronaves - clique na aeronave para informações
|
||||||
|
|
||||||
STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_BUTTON :{BLACK}Comprar Veículo
|
STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_BUTTON :{BLACK}Comprar Veículo
|
||||||
@@ -4041,7 +4043,7 @@ STR_AI_DEBUG_NAME_TOOLTIP :{BLACK}Nome do
|
|||||||
STR_AI_DEBUG_SETTINGS :{BLACK}Definições
|
STR_AI_DEBUG_SETTINGS :{BLACK}Definições
|
||||||
STR_AI_DEBUG_SETTINGS_TOOLTIP :{BLACK}Alterar as definições do script
|
STR_AI_DEBUG_SETTINGS_TOOLTIP :{BLACK}Alterar as definições do script
|
||||||
STR_AI_DEBUG_RELOAD :{BLACK}Recarregar IA
|
STR_AI_DEBUG_RELOAD :{BLACK}Recarregar IA
|
||||||
STR_AI_DEBUG_RELOAD_TOOLTIP :{BLACK}Terminar a IA, recarrega o script e reinicia a IA
|
STR_AI_DEBUG_RELOAD_TOOLTIP :{BLACK}Termina a IA, recarrega o script e reinicia a IA
|
||||||
STR_AI_DEBUG_BREAK_STR_ON_OFF_TOOLTIP :{BLACK}Activar/desactivar paragem quando o registo da IA for igual à string de paragem
|
STR_AI_DEBUG_BREAK_STR_ON_OFF_TOOLTIP :{BLACK}Activar/desactivar paragem quando o registo da IA for igual à string de paragem
|
||||||
STR_AI_DEBUG_BREAK_ON_LABEL :{BLACK}Parar em:
|
STR_AI_DEBUG_BREAK_ON_LABEL :{BLACK}Parar em:
|
||||||
STR_AI_DEBUG_BREAK_STR_OSKTITLE :{BLACK}Parar em
|
STR_AI_DEBUG_BREAK_STR_OSKTITLE :{BLACK}Parar em
|
||||||
|
@@ -2963,6 +2963,8 @@ STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Нет
|
|||||||
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
||||||
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
|
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
|
||||||
STR_SAVELOAD_FILTER_TITLE :{BLACK}Фильтр:
|
STR_SAVELOAD_FILTER_TITLE :{BLACK}Фильтр:
|
||||||
|
STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Перезапись файла
|
||||||
|
STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}Перезаписать файл?
|
||||||
|
|
||||||
STR_SAVELOAD_OSKTITLE :{BLACK}Введите название сохраняемой игры
|
STR_SAVELOAD_OSKTITLE :{BLACK}Введите название сохраняемой игры
|
||||||
|
|
||||||
|
@@ -2778,6 +2778,8 @@ STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}No hay i
|
|||||||
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
||||||
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
|
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
|
||||||
STR_SAVELOAD_FILTER_TITLE :{BLACK}Filtrar palabras:
|
STR_SAVELOAD_FILTER_TITLE :{BLACK}Filtrar palabras:
|
||||||
|
STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Sobrescribir archivo
|
||||||
|
STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}¿Estás seguro de sobrescribir el archivo?
|
||||||
|
|
||||||
STR_SAVELOAD_OSKTITLE :{BLACK}Indicar un nombre para la partida a guardar
|
STR_SAVELOAD_OSKTITLE :{BLACK}Indicar un nombre para la partida a guardar
|
||||||
|
|
||||||
|
@@ -43,7 +43,7 @@ static const uint NETWORK_NAME_LENGTH = 80; ///< The maxim
|
|||||||
static const uint NETWORK_COMPANY_NAME_LENGTH = 128; ///< The maximum length of the company name, in bytes including '\0'
|
static const uint NETWORK_COMPANY_NAME_LENGTH = 128; ///< The maximum length of the company name, in bytes including '\0'
|
||||||
static const uint NETWORK_HOSTNAME_LENGTH = 80; ///< The maximum length of the host name, in bytes including '\0'
|
static const uint NETWORK_HOSTNAME_LENGTH = 80; ///< The maximum length of the host name, in bytes including '\0'
|
||||||
static const uint NETWORK_SERVER_ID_LENGTH = 33; ///< The maximum length of the network id of the servers, in bytes including '\0'
|
static const uint NETWORK_SERVER_ID_LENGTH = 33; ///< The maximum length of the network id of the servers, in bytes including '\0'
|
||||||
static const uint NETWORK_REVISION_LENGTH = 15; ///< The maximum length of the revision, in bytes including '\0'
|
static const uint NETWORK_REVISION_LENGTH = 33; ///< The maximum length of the revision, in bytes including '\0'
|
||||||
static const uint NETWORK_LONG_REVISION_LENGTH = 64; ///< The maximum length of the revision, in bytes including '\0'
|
static const uint NETWORK_LONG_REVISION_LENGTH = 64; ///< The maximum length of the revision, in bytes including '\0'
|
||||||
static const uint NETWORK_PASSWORD_LENGTH = 33; ///< The maximum length of the password, in bytes including '\0' (must be >= NETWORK_SERVER_ID_LENGTH)
|
static const uint NETWORK_PASSWORD_LENGTH = 33; ///< The maximum length of the password, in bytes including '\0' (must be >= NETWORK_SERVER_ID_LENGTH)
|
||||||
static const uint NETWORK_CLIENTS_LENGTH = 200; ///< The maximum length for the list of clients that controls a company, in bytes including '\0'
|
static const uint NETWORK_CLIENTS_LENGTH = 200; ///< The maximum length for the list of clients that controls a company, in bytes including '\0'
|
||||||
|
@@ -261,7 +261,7 @@ static void ShowHelp()
|
|||||||
|
|
||||||
static void WriteSavegameInfo(const char *name)
|
static void WriteSavegameInfo(const char *name)
|
||||||
{
|
{
|
||||||
extern uint16 _sl_version;
|
extern SaveLoadVersion _sl_version;
|
||||||
uint32 last_ottd_rev = 0;
|
uint32 last_ottd_rev = 0;
|
||||||
byte ever_modified = 0;
|
byte ever_modified = 0;
|
||||||
bool removed_newgrfs = false;
|
bool removed_newgrfs = false;
|
||||||
|
@@ -53,6 +53,11 @@ const char _openttd_build_date[] = __DATE__ " " __TIME__;
|
|||||||
*/
|
*/
|
||||||
const char _openttd_build_configure[] = "!!CONFIGURE_INVOCATION!!";
|
const char _openttd_build_configure[] = "!!CONFIGURE_INVOCATION!!";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The git revision hash of this version.
|
||||||
|
*/
|
||||||
|
const char _openttd_revision_hash[] = "!!GITHASH!!";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Let us know if current build was modified. This detection
|
* Let us know if current build was modified. This detection
|
||||||
* works even in the case when revision string is overridden by
|
* works even in the case when revision string is overridden by
|
||||||
|
@@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
extern const char _openttd_revision[];
|
extern const char _openttd_revision[];
|
||||||
extern const char _openttd_build_date[];
|
extern const char _openttd_build_date[];
|
||||||
|
extern const char _openttd_revision_hash[];
|
||||||
extern const char _openttd_build_configure[];
|
extern const char _openttd_build_configure[];
|
||||||
extern const byte _openttd_revision_modified;
|
extern const byte _openttd_revision_modified;
|
||||||
extern const uint32 _openttd_newgrf_version;
|
extern const uint32 _openttd_newgrf_version;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -30,8 +30,8 @@ static bool _ai_saveload_is_random;
|
|||||||
static const SaveLoad _ai_company[] = {
|
static const SaveLoad _ai_company[] = {
|
||||||
SLEG_STR(_ai_saveload_name, SLE_STRB),
|
SLEG_STR(_ai_saveload_name, SLE_STRB),
|
||||||
SLEG_STR(_ai_saveload_settings, SLE_STRB),
|
SLEG_STR(_ai_saveload_settings, SLE_STRB),
|
||||||
SLEG_CONDVAR(_ai_saveload_version, SLE_UINT32, 108, SL_MAX_VERSION),
|
SLEG_CONDVAR(_ai_saveload_version, SLE_UINT32, SLV_108, SL_MAX_VERSION),
|
||||||
SLEG_CONDVAR(_ai_saveload_is_random, SLE_BOOL, 136, SL_MAX_VERSION),
|
SLEG_CONDVAR(_ai_saveload_is_random, SLE_BOOL, SLV_136, SL_MAX_VERSION),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -35,10 +35,10 @@ static void Save_ANIT()
|
|||||||
static void Load_ANIT()
|
static void Load_ANIT()
|
||||||
{
|
{
|
||||||
/* Before version 80 we did NOT have a variable length animated tile table */
|
/* Before version 80 we did NOT have a variable length animated tile table */
|
||||||
if (IsSavegameVersionBefore(80)) {
|
if (IsSavegameVersionBefore(SLV_80)) {
|
||||||
/* In pre version 6, we has 16bit per tile, now we have 32bit per tile, convert it ;) */
|
/* In pre version 6, we has 16bit per tile, now we have 32bit per tile, convert it ;) */
|
||||||
TileIndex anim_list[256];
|
TileIndex anim_list[256];
|
||||||
SlArray(anim_list, 256, IsSavegameVersionBefore(6) ? (SLE_FILE_U16 | SLE_VAR_U32) : SLE_UINT32);
|
SlArray(anim_list, 256, IsSavegameVersionBefore(SLV_6) ? (SLE_FILE_U16 | SLE_VAR_U32) : SLE_UINT32);
|
||||||
|
|
||||||
for (int i = 0; i < 256; i++) {
|
for (int i = 0; i < 256; i++) {
|
||||||
if (anim_list[i] == 0) break;
|
if (anim_list[i] == 0) break;
|
||||||
|
@@ -21,8 +21,8 @@ static const SaveLoad _engine_renew_desc[] = {
|
|||||||
SLE_VAR(EngineRenew, to, SLE_UINT16),
|
SLE_VAR(EngineRenew, to, SLE_UINT16),
|
||||||
|
|
||||||
SLE_REF(EngineRenew, next, REF_ENGINE_RENEWS),
|
SLE_REF(EngineRenew, next, REF_ENGINE_RENEWS),
|
||||||
SLE_CONDVAR(EngineRenew, group_id, SLE_UINT16, 60, SL_MAX_VERSION),
|
SLE_CONDVAR(EngineRenew, group_id, SLE_UINT16, SLV_60, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(EngineRenew, replace_when_old, SLE_BOOL, 175, SL_MAX_VERSION),
|
SLE_CONDVAR(EngineRenew, replace_when_old, SLE_BOOL, SLV_175, SL_MAX_VERSION),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -45,9 +45,9 @@ static void Load_ERNW()
|
|||||||
SlObject(er, _engine_renew_desc);
|
SlObject(er, _engine_renew_desc);
|
||||||
|
|
||||||
/* Advanced vehicle lists, ungrouped vehicles got added */
|
/* Advanced vehicle lists, ungrouped vehicles got added */
|
||||||
if (IsSavegameVersionBefore(60)) {
|
if (IsSavegameVersionBefore(SLV_60)) {
|
||||||
er->group_id = ALL_GROUP;
|
er->group_id = ALL_GROUP;
|
||||||
} else if (IsSavegameVersionBefore(71)) {
|
} else if (IsSavegameVersionBefore(SLV_71)) {
|
||||||
if (er->group_id == DEFAULT_GROUP) er->group_id = ALL_GROUP;
|
if (er->group_id == DEFAULT_GROUP) er->group_id = ALL_GROUP;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,7 +25,7 @@ extern btree::btree_map<uint64, Money> _cargo_packet_deferred_payments;
|
|||||||
*/
|
*/
|
||||||
/* static */ void CargoPacket::AfterLoad()
|
/* static */ void CargoPacket::AfterLoad()
|
||||||
{
|
{
|
||||||
if (IsSavegameVersionBefore(44)) {
|
if (IsSavegameVersionBefore(SLV_44)) {
|
||||||
Vehicle *v;
|
Vehicle *v;
|
||||||
/* If we remove a station while cargo from it is still en route, payment calculation will assume
|
/* If we remove a station while cargo from it is still en route, payment calculation will assume
|
||||||
* 0, 0 to be the source of the cargo, resulting in very high payments usually. v->source_xy
|
* 0, 0 to be the source of the cargo, resulting in very high payments usually. v->source_xy
|
||||||
@@ -62,7 +62,7 @@ extern btree::btree_map<uint64, Money> _cargo_packet_deferred_payments;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(120)) {
|
if (IsSavegameVersionBefore(SLV_120)) {
|
||||||
/* CargoPacket's source should be either INVALID_STATION or a valid station */
|
/* CargoPacket's source should be either INVALID_STATION or a valid station */
|
||||||
CargoPacket *cp;
|
CargoPacket *cp;
|
||||||
FOR_ALL_CARGOPACKETS(cp) {
|
FOR_ALL_CARGOPACKETS(cp) {
|
||||||
@@ -70,7 +70,7 @@ extern btree::btree_map<uint64, Money> _cargo_packet_deferred_payments;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!IsSavegameVersionBefore(68)) {
|
if (!IsSavegameVersionBefore(SLV_68)) {
|
||||||
/* Only since version 68 we have cargo packets. Savegames from before used
|
/* Only since version 68 we have cargo packets. Savegames from before used
|
||||||
* 'new CargoPacket' + cargolist.Append so their caches are already
|
* 'new CargoPacket' + cargolist.Append so their caches are already
|
||||||
* correct and do not need rebuilding. */
|
* correct and do not need rebuilding. */
|
||||||
@@ -83,7 +83,7 @@ extern btree::btree_map<uint64, Money> _cargo_packet_deferred_payments;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(181)) {
|
if (IsSavegameVersionBefore(SLV_181)) {
|
||||||
Vehicle *v;
|
Vehicle *v;
|
||||||
FOR_ALL_VEHICLES(v) v->cargo.KeepAll();
|
FOR_ALL_VEHICLES(v) v->cargo.KeepAll();
|
||||||
}
|
}
|
||||||
@@ -103,11 +103,11 @@ const SaveLoad *GetCargoPacketDesc()
|
|||||||
SLE_VAR(CargoPacket, count, SLE_UINT16),
|
SLE_VAR(CargoPacket, count, SLE_UINT16),
|
||||||
SLE_VAR(CargoPacket, days_in_transit, SLE_UINT8),
|
SLE_VAR(CargoPacket, days_in_transit, SLE_UINT8),
|
||||||
SLE_VAR(CargoPacket, feeder_share, SLE_INT64),
|
SLE_VAR(CargoPacket, feeder_share, SLE_INT64),
|
||||||
SLE_CONDVAR(CargoPacket, source_type, SLE_UINT8, 125, SL_MAX_VERSION),
|
SLE_CONDVAR(CargoPacket, source_type, SLE_UINT8, SLV_125, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(CargoPacket, source_id, SLE_UINT16, 125, SL_MAX_VERSION),
|
SLE_CONDVAR(CargoPacket, source_id, SLE_UINT16, SLV_125, SL_MAX_VERSION),
|
||||||
|
|
||||||
/* Used to be paid_for, but that got changed. */
|
/* Used to be paid_for, but that got changed. */
|
||||||
SLE_CONDNULL(1, 0, 120),
|
SLE_CONDNULL(1, SL_MIN_VERSION, SLV_121),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
@@ -241,120 +241,120 @@ void AfterLoadCompanyStats()
|
|||||||
static const SaveLoad _company_desc[] = {
|
static const SaveLoad _company_desc[] = {
|
||||||
SLE_VAR(CompanyProperties, name_2, SLE_UINT32),
|
SLE_VAR(CompanyProperties, name_2, SLE_UINT32),
|
||||||
SLE_VAR(CompanyProperties, name_1, SLE_STRINGID),
|
SLE_VAR(CompanyProperties, name_1, SLE_STRINGID),
|
||||||
SLE_CONDSTR(CompanyProperties, name, SLE_STR | SLF_ALLOW_CONTROL, 0, 84, SL_MAX_VERSION),
|
SLE_CONDSTR(CompanyProperties, name, SLE_STR | SLF_ALLOW_CONTROL, 0, SLV_84, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_VAR(CompanyProperties, president_name_1, SLE_STRINGID),
|
SLE_VAR(CompanyProperties, president_name_1, SLE_STRINGID),
|
||||||
SLE_VAR(CompanyProperties, president_name_2, SLE_UINT32),
|
SLE_VAR(CompanyProperties, president_name_2, SLE_UINT32),
|
||||||
SLE_CONDSTR(CompanyProperties, president_name, SLE_STR | SLF_ALLOW_CONTROL, 0, 84, SL_MAX_VERSION),
|
SLE_CONDSTR(CompanyProperties, president_name, SLE_STR | SLF_ALLOW_CONTROL, 0, SLV_84, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_VAR(CompanyProperties, face, SLE_UINT32),
|
SLE_VAR(CompanyProperties, face, SLE_UINT32),
|
||||||
|
|
||||||
/* money was changed to a 64 bit field in savegame version 1. */
|
/* money was changed to a 64 bit field in savegame version 1. */
|
||||||
SLE_CONDVAR(CompanyProperties, money, SLE_VAR_I64 | SLE_FILE_I32, 0, 0),
|
SLE_CONDVAR(CompanyProperties, money, SLE_VAR_I64 | SLE_FILE_I32, SL_MIN_VERSION, SLV_1),
|
||||||
SLE_CONDVAR(CompanyProperties, money, SLE_INT64, 1, SL_MAX_VERSION),
|
SLE_CONDVAR(CompanyProperties, money, SLE_INT64, SLV_1, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDVAR(CompanyProperties, current_loan, SLE_VAR_I64 | SLE_FILE_I32, 0, 64),
|
SLE_CONDVAR(CompanyProperties, current_loan, SLE_VAR_I64 | SLE_FILE_I32, SL_MIN_VERSION, SLV_65),
|
||||||
SLE_CONDVAR(CompanyProperties, current_loan, SLE_INT64, 65, SL_MAX_VERSION),
|
SLE_CONDVAR(CompanyProperties, current_loan, SLE_INT64, SLV_65, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_VAR(CompanyProperties, colour, SLE_UINT8),
|
SLE_VAR(CompanyProperties, colour, SLE_UINT8),
|
||||||
SLE_VAR(CompanyProperties, money_fraction, SLE_UINT8),
|
SLE_VAR(CompanyProperties, money_fraction, SLE_UINT8),
|
||||||
SLE_CONDNULL(1, 0, 57), ///< avail_railtypes
|
SLE_CONDNULL(1, SL_MIN_VERSION, SLV_58), ///< avail_railtypes
|
||||||
SLE_VAR(CompanyProperties, block_preview, SLE_UINT8),
|
SLE_VAR(CompanyProperties, block_preview, SLE_UINT8),
|
||||||
|
|
||||||
SLE_CONDNULL(2, 0, 93), ///< cargo_types
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_94), ///< cargo_types
|
||||||
SLE_CONDNULL(4, 94, 169), ///< cargo_types
|
SLE_CONDNULL(4, SLV_94, SLV_170), ///< cargo_types
|
||||||
SLE_CONDVAR(CompanyProperties, location_of_HQ, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(CompanyProperties, location_of_HQ, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(CompanyProperties, location_of_HQ, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(CompanyProperties, location_of_HQ, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(CompanyProperties, last_build_coordinate, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(CompanyProperties, last_build_coordinate, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(CompanyProperties, last_build_coordinate, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(CompanyProperties, last_build_coordinate, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(CompanyProperties, inaugurated_year, SLE_FILE_U8 | SLE_VAR_I32, 0, 30),
|
SLE_CONDVAR(CompanyProperties, inaugurated_year, SLE_FILE_U8 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31),
|
||||||
SLE_CONDVAR(CompanyProperties, inaugurated_year, SLE_INT32, 31, SL_MAX_VERSION),
|
SLE_CONDVAR(CompanyProperties, inaugurated_year, SLE_INT32, SLV_31, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_ARR(CompanyProperties, share_owners, SLE_UINT8, 4),
|
SLE_ARR(CompanyProperties, share_owners, SLE_UINT8, 4),
|
||||||
|
|
||||||
SLE_VAR(CompanyProperties, num_valid_stat_ent, SLE_UINT8),
|
SLE_VAR(CompanyProperties, num_valid_stat_ent, SLE_UINT8),
|
||||||
|
|
||||||
SLE_VAR(CompanyProperties, months_of_bankruptcy, SLE_UINT8),
|
SLE_VAR(CompanyProperties, months_of_bankruptcy, SLE_UINT8),
|
||||||
SLE_CONDVAR(CompanyProperties, bankrupt_asked, SLE_FILE_U8 | SLE_VAR_U16, 0, 103),
|
SLE_CONDVAR(CompanyProperties, bankrupt_asked, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_104),
|
||||||
SLE_CONDVAR(CompanyProperties, bankrupt_asked, SLE_UINT16, 104, SL_MAX_VERSION),
|
SLE_CONDVAR(CompanyProperties, bankrupt_asked, SLE_UINT16, SLV_104, SL_MAX_VERSION),
|
||||||
SLE_VAR(CompanyProperties, bankrupt_timeout, SLE_INT16),
|
SLE_VAR(CompanyProperties, bankrupt_timeout, SLE_INT16),
|
||||||
SLE_CONDVAR(CompanyProperties, bankrupt_value, SLE_VAR_I64 | SLE_FILE_I32, 0, 64),
|
SLE_CONDVAR(CompanyProperties, bankrupt_value, SLE_VAR_I64 | SLE_FILE_I32, SL_MIN_VERSION, SLV_65),
|
||||||
SLE_CONDVAR(CompanyProperties, bankrupt_value, SLE_INT64, 65, SL_MAX_VERSION),
|
SLE_CONDVAR(CompanyProperties, bankrupt_value, SLE_INT64, SLV_65, SL_MAX_VERSION),
|
||||||
|
|
||||||
/* yearly expenses was changed to 64-bit in savegame version 2. */
|
/* yearly expenses was changed to 64-bit in savegame version 2. */
|
||||||
SLE_CONDARR(CompanyProperties, yearly_expenses, SLE_FILE_I32 | SLE_VAR_I64, 3 * 13, 0, 1),
|
SLE_CONDARR(CompanyProperties, yearly_expenses, SLE_FILE_I32 | SLE_VAR_I64, 3 * 13, SL_MIN_VERSION, SLV_2),
|
||||||
SLE_CONDARR_X(CompanyProperties, yearly_expenses, SLE_INT64, 3 * 13, 2, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_INFRA_SHARING, 0, 0)),
|
SLE_CONDARR_X(CompanyProperties, yearly_expenses, SLE_INT64, 3 * 13, SLV_2, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_INFRA_SHARING, 0, 0)),
|
||||||
SLE_CONDARR_X(CompanyProperties, yearly_expenses, SLE_INT64, 3 * 15, 2, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_INFRA_SHARING)),
|
SLE_CONDARR_X(CompanyProperties, yearly_expenses, SLE_INT64, 3 * 15, SLV_2, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_INFRA_SHARING)),
|
||||||
|
|
||||||
SLE_CONDVAR(CompanyProperties, is_ai, SLE_BOOL, 2, SL_MAX_VERSION),
|
SLE_CONDVAR(CompanyProperties, is_ai, SLE_BOOL, SLV_2, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL(1, 107, 111), ///< is_noai
|
SLE_CONDNULL(1, SLV_107, SLV_112), ///< is_noai
|
||||||
SLE_CONDNULL(1, 4, 99),
|
SLE_CONDNULL(1, SLV_4, SLV_100),
|
||||||
|
|
||||||
SLE_CONDVAR(CompanyProperties, terraform_limit, SLE_UINT32, 156, SL_MAX_VERSION),
|
SLE_CONDVAR(CompanyProperties, terraform_limit, SLE_UINT32, SLV_156, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(CompanyProperties, clear_limit, SLE_UINT32, 156, SL_MAX_VERSION),
|
SLE_CONDVAR(CompanyProperties, clear_limit, SLE_UINT32, SLV_156, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(CompanyProperties, tree_limit, SLE_UINT32, 175, SL_MAX_VERSION),
|
SLE_CONDVAR(CompanyProperties, tree_limit, SLE_UINT32, SLV_175, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR_X(CompanyProperties, purchase_land_limit, SLE_UINT32, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_BUY_LAND_RATE_LIMIT)),
|
SLE_CONDVAR_X(CompanyProperties, purchase_land_limit, SLE_UINT32, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_BUY_LAND_RATE_LIMIT)),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
static const SaveLoad _company_settings_desc[] = {
|
static const SaveLoad _company_settings_desc[] = {
|
||||||
/* Engine renewal settings */
|
/* Engine renewal settings */
|
||||||
SLE_CONDNULL(512, 16, 18),
|
SLE_CONDNULL(512, SLV_16, SLV_19),
|
||||||
SLE_CONDREF(Company, engine_renew_list, REF_ENGINE_RENEWS, 19, SL_MAX_VERSION),
|
SLE_CONDREF(Company, engine_renew_list, REF_ENGINE_RENEWS, SLV_19, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Company, settings.engine_renew, SLE_BOOL, 16, SL_MAX_VERSION),
|
SLE_CONDVAR(Company, settings.engine_renew, SLE_BOOL, SLV_16, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Company, settings.engine_renew_months, SLE_INT16, 16, SL_MAX_VERSION),
|
SLE_CONDVAR(Company, settings.engine_renew_months, SLE_INT16, SLV_16, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Company, settings.engine_renew_money, SLE_UINT32, 16, SL_MAX_VERSION),
|
SLE_CONDVAR(Company, settings.engine_renew_money, SLE_UINT32, SLV_16, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Company, settings.renew_keep_length, SLE_BOOL, 2, SL_MAX_VERSION),
|
SLE_CONDVAR(Company, settings.renew_keep_length, SLE_BOOL, SLV_2, SL_MAX_VERSION),
|
||||||
|
|
||||||
/* Default vehicle settings */
|
/* Default vehicle settings */
|
||||||
SLE_CONDVAR(Company, settings.vehicle.servint_ispercent, SLE_BOOL, 120, SL_MAX_VERSION),
|
SLE_CONDVAR(Company, settings.vehicle.servint_ispercent, SLE_BOOL, SLV_120, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Company, settings.vehicle.servint_trains, SLE_UINT16, 120, SL_MAX_VERSION),
|
SLE_CONDVAR(Company, settings.vehicle.servint_trains, SLE_UINT16, SLV_120, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Company, settings.vehicle.servint_roadveh, SLE_UINT16, 120, SL_MAX_VERSION),
|
SLE_CONDVAR(Company, settings.vehicle.servint_roadveh, SLE_UINT16, SLV_120, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Company, settings.vehicle.servint_aircraft, SLE_UINT16, 120, SL_MAX_VERSION),
|
SLE_CONDVAR(Company, settings.vehicle.servint_aircraft, SLE_UINT16, SLV_120, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Company, settings.vehicle.servint_ships, SLE_UINT16, 120, SL_MAX_VERSION),
|
SLE_CONDVAR(Company, settings.vehicle.servint_ships, SLE_UINT16, SLV_120, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR_X(Company, settings.vehicle.auto_timetable_by_default, SLE_BOOL, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_AUTO_TIMETABLE, 2, 2)),
|
SLE_CONDVAR_X(Company, settings.vehicle.auto_timetable_by_default, SLE_BOOL, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_AUTO_TIMETABLE, 2, 2)),
|
||||||
|
|
||||||
SLE_CONDNULL(63, 2, 143), // old reserved space
|
SLE_CONDNULL(63, SLV_2, SLV_144), // old reserved space
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
static const SaveLoad _company_settings_skip_desc[] = {
|
static const SaveLoad _company_settings_skip_desc[] = {
|
||||||
/* Engine renewal settings */
|
/* Engine renewal settings */
|
||||||
SLE_CONDNULL(512, 16, 18),
|
SLE_CONDNULL(512, SLV_16, SLV_19),
|
||||||
SLE_CONDNULL(2, 19, 68), // engine_renew_list
|
SLE_CONDNULL(2, SLV_19, SLV_69), // engine_renew_list
|
||||||
SLE_CONDNULL(4, 69, SL_MAX_VERSION), // engine_renew_list
|
SLE_CONDNULL(4, SLV_69, SL_MAX_VERSION), // engine_renew_list
|
||||||
SLE_CONDNULL(1, 16, SL_MAX_VERSION), // settings.engine_renew
|
SLE_CONDNULL(1, SLV_16, SL_MAX_VERSION), // settings.engine_renew
|
||||||
SLE_CONDNULL(2, 16, SL_MAX_VERSION), // settings.engine_renew_months
|
SLE_CONDNULL(2, SLV_16, SL_MAX_VERSION), // settings.engine_renew_months
|
||||||
SLE_CONDNULL(4, 16, SL_MAX_VERSION), // settings.engine_renew_money
|
SLE_CONDNULL(4, SLV_16, SL_MAX_VERSION), // settings.engine_renew_money
|
||||||
SLE_CONDNULL(1, 2, SL_MAX_VERSION), // settings.renew_keep_length
|
SLE_CONDNULL(1, SLV_2, SL_MAX_VERSION), // settings.renew_keep_length
|
||||||
|
|
||||||
/* Default vehicle settings */
|
/* Default vehicle settings */
|
||||||
SLE_CONDNULL(1, 120, SL_MAX_VERSION), // settings.vehicle.servint_ispercent
|
SLE_CONDNULL(1, SLV_120, SL_MAX_VERSION), // settings.vehicle.servint_ispercent
|
||||||
SLE_CONDNULL(2, 120, SL_MAX_VERSION), // settings.vehicle.servint_trains
|
SLE_CONDNULL(2, SLV_120, SL_MAX_VERSION), // settings.vehicle.servint_trains
|
||||||
SLE_CONDNULL(2, 120, SL_MAX_VERSION), // settings.vehicle.servint_roadveh
|
SLE_CONDNULL(2, SLV_120, SL_MAX_VERSION), // settings.vehicle.servint_roadveh
|
||||||
SLE_CONDNULL(2, 120, SL_MAX_VERSION), // settings.vehicle.servint_aircraft
|
SLE_CONDNULL(2, SLV_120, SL_MAX_VERSION), // settings.vehicle.servint_aircraft
|
||||||
SLE_CONDNULL(2, 120, SL_MAX_VERSION), // settings.vehicle.servint_ships
|
SLE_CONDNULL(2, SLV_120, SL_MAX_VERSION), // settings.vehicle.servint_ships
|
||||||
SLE_CONDNULL_X(1, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_AUTO_TIMETABLE, 2, 2)), // settings.vehicle.auto_timetable_by_default
|
SLE_CONDNULL_X(1, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_AUTO_TIMETABLE, 2, 2)), // settings.vehicle.auto_timetable_by_default
|
||||||
|
|
||||||
SLE_CONDNULL(63, 2, 143), // old reserved space
|
SLE_CONDNULL(63, SLV_2, SLV_144), // old reserved space
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
static const SaveLoad _company_economy_desc[] = {
|
static const SaveLoad _company_economy_desc[] = {
|
||||||
/* these were changed to 64-bit in savegame format 2 */
|
/* these were changed to 64-bit in savegame format 2 */
|
||||||
SLE_CONDVAR(CompanyEconomyEntry, income, SLE_FILE_I32 | SLE_VAR_I64, 0, 1),
|
SLE_CONDVAR(CompanyEconomyEntry, income, SLE_FILE_I32 | SLE_VAR_I64, SL_MIN_VERSION, SLV_2),
|
||||||
SLE_CONDVAR(CompanyEconomyEntry, income, SLE_INT64, 2, SL_MAX_VERSION),
|
SLE_CONDVAR(CompanyEconomyEntry, income, SLE_INT64, SLV_2, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(CompanyEconomyEntry, expenses, SLE_FILE_I32 | SLE_VAR_I64, 0, 1),
|
SLE_CONDVAR(CompanyEconomyEntry, expenses, SLE_FILE_I32 | SLE_VAR_I64, SL_MIN_VERSION, SLV_2),
|
||||||
SLE_CONDVAR(CompanyEconomyEntry, expenses, SLE_INT64, 2, SL_MAX_VERSION),
|
SLE_CONDVAR(CompanyEconomyEntry, expenses, SLE_INT64, SLV_2, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(CompanyEconomyEntry, company_value, SLE_FILE_I32 | SLE_VAR_I64, 0, 1),
|
SLE_CONDVAR(CompanyEconomyEntry, company_value, SLE_FILE_I32 | SLE_VAR_I64, SL_MIN_VERSION, SLV_2),
|
||||||
SLE_CONDVAR(CompanyEconomyEntry, company_value, SLE_INT64, 2, SL_MAX_VERSION),
|
SLE_CONDVAR(CompanyEconomyEntry, company_value, SLE_INT64, SLV_2, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDVAR(CompanyEconomyEntry, delivered_cargo[NUM_CARGO - 1], SLE_INT32, 0, 169),
|
SLE_CONDVAR(CompanyEconomyEntry, delivered_cargo[NUM_CARGO - 1], SLE_INT32, SL_MIN_VERSION, SLV_170),
|
||||||
SLE_CONDARR(CompanyEconomyEntry, delivered_cargo, SLE_UINT32, 32, 170, 198),
|
SLE_CONDARR(CompanyEconomyEntry, delivered_cargo, SLE_UINT32, 32, SLV_170, SLV_EXTEND_CARGOTYPES),
|
||||||
SLE_CONDARR(CompanyEconomyEntry, delivered_cargo, SLE_UINT32, NUM_CARGO, 199, SL_MAX_VERSION),
|
SLE_CONDARR(CompanyEconomyEntry, delivered_cargo, SLE_UINT32, NUM_CARGO, SLV_EXTEND_CARGOTYPES, SL_MAX_VERSION),
|
||||||
SLE_VAR(CompanyEconomyEntry, performance_history, SLE_INT32),
|
SLE_VAR(CompanyEconomyEntry, performance_history, SLE_INT32),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
@@ -366,49 +366,49 @@ struct CompanyOldAI {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static const SaveLoad _company_ai_desc[] = {
|
static const SaveLoad _company_ai_desc[] = {
|
||||||
SLE_CONDNULL(2, 0, 106),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_107),
|
||||||
SLE_CONDNULL(2, 0, 12),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_13),
|
||||||
SLE_CONDNULL(4, 13, 106),
|
SLE_CONDNULL(4, SLV_13, SLV_107),
|
||||||
SLE_CONDNULL(8, 0, 106),
|
SLE_CONDNULL(8, SL_MIN_VERSION, SLV_107),
|
||||||
SLE_CONDVAR(CompanyOldAI, num_build_rec, SLE_UINT8, 0, 106),
|
SLE_CONDVAR(CompanyOldAI, num_build_rec, SLE_UINT8, SL_MIN_VERSION, SLV_107),
|
||||||
SLE_CONDNULL(3, 0, 106),
|
SLE_CONDNULL(3, SL_MIN_VERSION, SLV_107),
|
||||||
|
|
||||||
SLE_CONDNULL(2, 0, 5),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDNULL(4, 6, 106),
|
SLE_CONDNULL(4, SLV_6, SLV_107),
|
||||||
SLE_CONDNULL(2, 0, 5),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDNULL(4, 6, 106),
|
SLE_CONDNULL(4, SLV_6, SLV_107),
|
||||||
SLE_CONDNULL(2, 0, 106),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_107),
|
||||||
|
|
||||||
SLE_CONDNULL(2, 0, 5),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDNULL(4, 6, 106),
|
SLE_CONDNULL(4, SLV_6, SLV_107),
|
||||||
SLE_CONDNULL(2, 0, 5),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDNULL(4, 6, 106),
|
SLE_CONDNULL(4, SLV_6, SLV_107),
|
||||||
SLE_CONDNULL(2, 0, 106),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_107),
|
||||||
|
|
||||||
SLE_CONDNULL(2, 0, 68),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_69),
|
||||||
SLE_CONDNULL(4, 69, 106),
|
SLE_CONDNULL(4, SLV_69, SLV_107),
|
||||||
|
|
||||||
SLE_CONDNULL(18, 0, 106),
|
SLE_CONDNULL(18, SL_MIN_VERSION, SLV_107),
|
||||||
SLE_CONDNULL(20, 0, 106),
|
SLE_CONDNULL(20, SL_MIN_VERSION, SLV_107),
|
||||||
SLE_CONDNULL(32, 0, 106),
|
SLE_CONDNULL(32, SL_MIN_VERSION, SLV_107),
|
||||||
|
|
||||||
SLE_CONDNULL(64, 2, 106),
|
SLE_CONDNULL(64, SLV_2, SLV_107),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
static const SaveLoad _company_ai_build_rec_desc[] = {
|
static const SaveLoad _company_ai_build_rec_desc[] = {
|
||||||
SLE_CONDNULL(2, 0, 5),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDNULL(4, 6, 106),
|
SLE_CONDNULL(4, SLV_6, SLV_107),
|
||||||
SLE_CONDNULL(2, 0, 5),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDNULL(4, 6, 106),
|
SLE_CONDNULL(4, SLV_6, SLV_107),
|
||||||
SLE_CONDNULL(8, 0, 106),
|
SLE_CONDNULL(8, SL_MIN_VERSION, SLV_107),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
static const SaveLoad _company_livery_desc[] = {
|
static const SaveLoad _company_livery_desc[] = {
|
||||||
SLE_CONDVAR(Livery, in_use, SLE_UINT8, 34, SL_MAX_VERSION),
|
SLE_CONDVAR(Livery, in_use, SLE_UINT8, SLV_34, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Livery, colour1, SLE_UINT8, 34, SL_MAX_VERSION),
|
SLE_CONDVAR(Livery, colour1, SLE_UINT8, SLV_34, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Livery, colour2, SLE_UINT8, 34, SL_MAX_VERSION),
|
SLE_CONDVAR(Livery, colour2, SLE_UINT8, SLV_34, SL_MAX_VERSION),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -425,7 +425,7 @@ static void SaveLoad_PLYR_common(Company *c, CompanyProperties *cprops)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Keep backwards compatible for savegames, so load the old AI block */
|
/* Keep backwards compatible for savegames, so load the old AI block */
|
||||||
if (IsSavegameVersionBefore(107) && cprops->is_ai) {
|
if (IsSavegameVersionBefore(SLV_107) && cprops->is_ai) {
|
||||||
CompanyOldAI old_ai;
|
CompanyOldAI old_ai;
|
||||||
char nothing;
|
char nothing;
|
||||||
|
|
||||||
@@ -445,8 +445,8 @@ static void SaveLoad_PLYR_common(Company *c, CompanyProperties *cprops)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Write each livery entry. */
|
/* Write each livery entry. */
|
||||||
int num_liveries = IsSavegameVersionBefore(63) ? LS_END - 4 : (IsSavegameVersionBefore(85) ? LS_END - 2: LS_END);
|
int num_liveries = IsSavegameVersionBefore(SLV_63) ? LS_END - 4 : (IsSavegameVersionBefore(SLV_85) ? LS_END - 2: LS_END);
|
||||||
bool update_in_use = IsSavegameVersionBefore(205);
|
bool update_in_use = IsSavegameVersionBefore(SLV_GROUP_LIVERIES);
|
||||||
if (c != NULL) {
|
if (c != NULL) {
|
||||||
for (i = 0; i < num_liveries; i++) {
|
for (i = 0; i < num_liveries; i++) {
|
||||||
SlObject(&c->livery[i], _company_livery_desc);
|
SlObject(&c->livery[i], _company_livery_desc);
|
||||||
@@ -522,7 +522,7 @@ static void Check_PLYR()
|
|||||||
SaveLoad_PLYR_common(NULL, cprops);
|
SaveLoad_PLYR_common(NULL, cprops);
|
||||||
|
|
||||||
/* We do not load old custom names */
|
/* We do not load old custom names */
|
||||||
if (IsSavegameVersionBefore(84)) {
|
if (IsSavegameVersionBefore(SLV_84)) {
|
||||||
if (GetStringTab(cprops->name_1) == TEXT_TAB_OLD_CUSTOM) {
|
if (GetStringTab(cprops->name_1) == TEXT_TAB_OLD_CUSTOM) {
|
||||||
cprops->name_1 = STR_GAME_SAVELOAD_NOT_AVAILABLE;
|
cprops->name_1 = STR_GAME_SAVELOAD_NOT_AVAILABLE;
|
||||||
}
|
}
|
||||||
|
@@ -20,14 +20,14 @@
|
|||||||
static TownID _town_index;
|
static TownID _town_index;
|
||||||
|
|
||||||
static const SaveLoad _depot_desc[] = {
|
static const SaveLoad _depot_desc[] = {
|
||||||
SLE_CONDVAR(Depot, xy, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(Depot, xy, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Depot, xy, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Depot, xy, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLEG_CONDVAR(_town_index, SLE_UINT16, 0, 140),
|
SLEG_CONDVAR(_town_index, SLE_UINT16, SL_MIN_VERSION, SLV_141),
|
||||||
SLE_CONDREF(Depot, town, REF_TOWN, 141, SL_MAX_VERSION),
|
SLE_CONDREF(Depot, town, REF_TOWN, SLV_141, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Depot, town_cn, SLE_UINT16, 141, SL_MAX_VERSION),
|
SLE_CONDVAR(Depot, town_cn, SLE_UINT16, SLV_141, SL_MAX_VERSION),
|
||||||
SLE_CONDSTR(Depot, name, SLE_STR, 0, 141, SL_MAX_VERSION),
|
SLE_CONDSTR(Depot, name, SLE_STR, 0, SLV_141, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Depot, build_date, SLE_INT32, 142, SL_MAX_VERSION),
|
SLE_CONDVAR(Depot, build_date, SLE_INT32, SLV_142, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL_X(4, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 5)),
|
SLE_CONDNULL_X(4, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 5)),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ static void Load_DEPT()
|
|||||||
SlObject(depot, _depot_desc);
|
SlObject(depot, _depot_desc);
|
||||||
|
|
||||||
/* Set the town 'pointer' so we can restore it later. */
|
/* Set the town 'pointer' so we can restore it later. */
|
||||||
if (IsSavegameVersionBefore(141)) depot->town = (Town *)(size_t)_town_index;
|
if (IsSavegameVersionBefore(SLV_141)) depot->town = (Town *)(size_t)_town_index;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ static void Ptrs_DEPT()
|
|||||||
|
|
||||||
FOR_ALL_DEPOTS(depot) {
|
FOR_ALL_DEPOTS(depot) {
|
||||||
SlObject(depot, _depot_desc);
|
SlObject(depot, _depot_desc);
|
||||||
if (IsSavegameVersionBefore(141)) depot->town = Town::Get((size_t)depot->town);
|
if (IsSavegameVersionBefore(SLV_141)) depot->town = Town::Get((size_t)depot->town);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -21,7 +21,7 @@
|
|||||||
static void Load_PRIC()
|
static void Load_PRIC()
|
||||||
{
|
{
|
||||||
/* Old games store 49 base prices, very old games store them as int32 */
|
/* Old games store 49 base prices, very old games store them as int32 */
|
||||||
int vt = IsSavegameVersionBefore(65) ? SLE_FILE_I32 : SLE_FILE_I64;
|
int vt = IsSavegameVersionBefore(SLV_65) ? SLE_FILE_I32 : SLE_FILE_I64;
|
||||||
SlArray(NULL, 49, vt | SLE_VAR_NULL);
|
SlArray(NULL, 49, vt | SLE_VAR_NULL);
|
||||||
SlArray(NULL, 49, SLE_FILE_U16 | SLE_VAR_NULL);
|
SlArray(NULL, 49, SLE_FILE_U16 | SLE_VAR_NULL);
|
||||||
}
|
}
|
||||||
@@ -29,25 +29,25 @@ static void Load_PRIC()
|
|||||||
/** Cargo payment rates in pre 126 savegames */
|
/** Cargo payment rates in pre 126 savegames */
|
||||||
static void Load_CAPR()
|
static void Load_CAPR()
|
||||||
{
|
{
|
||||||
uint num_cargo = IsSavegameVersionBefore(55) ? 12 : IsSavegameVersionBefore(199) ? 32 : NUM_CARGO;
|
uint num_cargo = IsSavegameVersionBefore(SLV_55) ? 12 : IsSavegameVersionBefore(SLV_EXTEND_CARGOTYPES) ? 32 : NUM_CARGO;
|
||||||
int vt = IsSavegameVersionBefore(65) ? SLE_FILE_I32 : SLE_FILE_I64;
|
int vt = IsSavegameVersionBefore(SLV_65) ? SLE_FILE_I32 : SLE_FILE_I64;
|
||||||
SlArray(NULL, num_cargo, vt | SLE_VAR_NULL);
|
SlArray(NULL, num_cargo, vt | SLE_VAR_NULL);
|
||||||
SlArray(NULL, num_cargo, SLE_FILE_U16 | SLE_VAR_NULL);
|
SlArray(NULL, num_cargo, SLE_FILE_U16 | SLE_VAR_NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const SaveLoad _economy_desc[] = {
|
static const SaveLoad _economy_desc[] = {
|
||||||
SLE_CONDNULL(4, 0, 64), // max_loan
|
SLE_CONDNULL(4, SL_MIN_VERSION, SLV_65), // max_loan
|
||||||
SLE_CONDNULL(8, 65, 143), // max_loan
|
SLE_CONDNULL(8, SLV_65, SLV_144), // max_loan
|
||||||
SLE_CONDVAR(Economy, old_max_loan_unround, SLE_FILE_I32 | SLE_VAR_I64, 0, 64),
|
SLE_CONDVAR(Economy, old_max_loan_unround, SLE_FILE_I32 | SLE_VAR_I64, SL_MIN_VERSION, SLV_65),
|
||||||
SLE_CONDVAR(Economy, old_max_loan_unround, SLE_INT64, 65, 125),
|
SLE_CONDVAR(Economy, old_max_loan_unround, SLE_INT64, SLV_65, SLV_126),
|
||||||
SLE_CONDVAR(Economy, old_max_loan_unround_fract, SLE_UINT16, 70, 125),
|
SLE_CONDVAR(Economy, old_max_loan_unround_fract, SLE_UINT16, SLV_70, SLV_126),
|
||||||
SLE_CONDVAR(Economy, inflation_prices, SLE_UINT64, 126, SL_MAX_VERSION),
|
SLE_CONDVAR(Economy, inflation_prices, SLE_UINT64, SLV_126, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Economy, inflation_payment, SLE_UINT64, 126, SL_MAX_VERSION),
|
SLE_CONDVAR(Economy, inflation_payment, SLE_UINT64, SLV_126, SL_MAX_VERSION),
|
||||||
SLE_VAR(Economy, fluct, SLE_INT16),
|
SLE_VAR(Economy, fluct, SLE_INT16),
|
||||||
SLE_VAR(Economy, interest_rate, SLE_UINT8),
|
SLE_VAR(Economy, interest_rate, SLE_UINT8),
|
||||||
SLE_VAR(Economy, infl_amount, SLE_UINT8),
|
SLE_VAR(Economy, infl_amount, SLE_UINT8),
|
||||||
SLE_VAR(Economy, infl_amount_pr, SLE_UINT8),
|
SLE_VAR(Economy, infl_amount_pr, SLE_UINT8),
|
||||||
SLE_CONDVAR(Economy, industry_daily_change_counter, SLE_UINT32, 102, SL_MAX_VERSION),
|
SLE_CONDVAR(Economy, industry_daily_change_counter, SLE_UINT32, SLV_102, SL_MAX_VERSION),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -61,14 +61,14 @@ static void Save_ECMY()
|
|||||||
static void Load_ECMY()
|
static void Load_ECMY()
|
||||||
{
|
{
|
||||||
SlObject(&_economy, _economy_desc);
|
SlObject(&_economy, _economy_desc);
|
||||||
StartupIndustryDailyChanges(IsSavegameVersionBefore(102)); // old savegames will need to be initialized
|
StartupIndustryDailyChanges(IsSavegameVersionBefore(SLV_102)); // old savegames will need to be initialized
|
||||||
}
|
}
|
||||||
|
|
||||||
static const SaveLoad _cargopayment_desc[] = {
|
static const SaveLoad _cargopayment_desc[] = {
|
||||||
SLE_REF(CargoPayment, front, REF_VEHICLE),
|
SLE_REF(CargoPayment, front, REF_VEHICLE),
|
||||||
SLE_VAR(CargoPayment, route_profit, SLE_INT64),
|
SLE_VAR(CargoPayment, route_profit, SLE_INT64),
|
||||||
SLE_VAR(CargoPayment, visual_profit, SLE_INT64),
|
SLE_VAR(CargoPayment, visual_profit, SLE_INT64),
|
||||||
SLE_CONDVAR(CargoPayment, visual_transfer, SLE_INT64, 181, SL_MAX_VERSION),
|
SLE_CONDVAR(CargoPayment, visual_transfer, SLE_INT64, SLV_181, SL_MAX_VERSION),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -18,10 +18,10 @@
|
|||||||
#include "../safeguards.h"
|
#include "../safeguards.h"
|
||||||
|
|
||||||
static const SaveLoad _engine_desc[] = {
|
static const SaveLoad _engine_desc[] = {
|
||||||
SLE_CONDVAR(Engine, intro_date, SLE_FILE_U16 | SLE_VAR_I32, 0, 30),
|
SLE_CONDVAR(Engine, intro_date, SLE_FILE_U16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31),
|
||||||
SLE_CONDVAR(Engine, intro_date, SLE_INT32, 31, SL_MAX_VERSION),
|
SLE_CONDVAR(Engine, intro_date, SLE_INT32, SLV_31, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Engine, age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30),
|
SLE_CONDVAR(Engine, age, SLE_FILE_U16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31),
|
||||||
SLE_CONDVAR(Engine, age, SLE_INT32, 31, SL_MAX_VERSION),
|
SLE_CONDVAR(Engine, age, SLE_INT32, SLV_31, SL_MAX_VERSION),
|
||||||
SLE_VAR(Engine, reliability, SLE_UINT16),
|
SLE_VAR(Engine, reliability, SLE_UINT16),
|
||||||
SLE_VAR(Engine, reliability_spd_dec, SLE_UINT16),
|
SLE_VAR(Engine, reliability_spd_dec, SLE_UINT16),
|
||||||
SLE_VAR(Engine, reliability_start, SLE_UINT16),
|
SLE_VAR(Engine, reliability_start, SLE_UINT16),
|
||||||
@@ -31,19 +31,19 @@ static const SaveLoad _engine_desc[] = {
|
|||||||
SLE_VAR(Engine, duration_phase_2, SLE_UINT16),
|
SLE_VAR(Engine, duration_phase_2, SLE_UINT16),
|
||||||
SLE_VAR(Engine, duration_phase_3, SLE_UINT16),
|
SLE_VAR(Engine, duration_phase_3, SLE_UINT16),
|
||||||
|
|
||||||
SLE_CONDNULL(1, 0, 120),
|
SLE_CONDNULL(1, SL_MIN_VERSION, SLV_121),
|
||||||
SLE_VAR(Engine, flags, SLE_UINT8),
|
SLE_VAR(Engine, flags, SLE_UINT8),
|
||||||
SLE_CONDNULL(1, 0, 178), // old preview_company_rank
|
SLE_CONDNULL(1, SL_MIN_VERSION, SLV_179), // old preview_company_rank
|
||||||
SLE_CONDVAR(Engine, preview_asked, SLE_UINT16, 179, SL_MAX_VERSION),
|
SLE_CONDVAR(Engine, preview_asked, SLE_UINT16, SLV_179, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Engine, preview_company, SLE_UINT8, 179, SL_MAX_VERSION),
|
SLE_CONDVAR(Engine, preview_company, SLE_UINT8, SLV_179, SL_MAX_VERSION),
|
||||||
SLE_VAR(Engine, preview_wait, SLE_UINT8),
|
SLE_VAR(Engine, preview_wait, SLE_UINT8),
|
||||||
SLE_CONDNULL(1, 0, 44),
|
SLE_CONDNULL(1, SL_MIN_VERSION, SLV_45),
|
||||||
SLE_CONDVAR(Engine, company_avail, SLE_FILE_U8 | SLE_VAR_U16, 0, 103),
|
SLE_CONDVAR(Engine, company_avail, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_104),
|
||||||
SLE_CONDVAR(Engine, company_avail, SLE_UINT16, 104, SL_MAX_VERSION),
|
SLE_CONDVAR(Engine, company_avail, SLE_UINT16, SLV_104, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Engine, company_hidden, SLE_UINT16, 193, SL_MAX_VERSION),
|
SLE_CONDVAR(Engine, company_hidden, SLE_UINT16, SLV_193, SL_MAX_VERSION),
|
||||||
SLE_CONDSTR(Engine, name, SLE_STR, 0, 84, SL_MAX_VERSION),
|
SLE_CONDSTR(Engine, name, SLE_STR, 0, SLV_84, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDNULL(16, 2, 143), // old reserved space
|
SLE_CONDNULL(16, SLV_2, SLV_144), // old reserved space
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -105,7 +105,7 @@ static void Load_ENGN()
|
|||||||
Engine *e = GetTempDataEngine(index);
|
Engine *e = GetTempDataEngine(index);
|
||||||
SlObject(e, _engine_desc);
|
SlObject(e, _engine_desc);
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(179)) {
|
if (IsSavegameVersionBefore(SLV_179)) {
|
||||||
/* preview_company_rank was replaced with preview_company and preview_asked.
|
/* preview_company_rank was replaced with preview_company and preview_asked.
|
||||||
* Just cancel any previews. */
|
* Just cancel any previews. */
|
||||||
e->flags &= ~4; // ENGINE_OFFER_WINDOW_OPEN
|
e->flags &= ~4; // ENGINE_OFFER_WINDOW_OPEN
|
||||||
|
@@ -114,9 +114,9 @@ const SlxiSubChunkInfo _sl_xv_sub_chunk_infos[] = {
|
|||||||
* and return the combination of the two tests using the operator defined in the constructor.
|
* and return the combination of the two tests using the operator defined in the constructor.
|
||||||
* Otherwise just returns the result of the savegame version test
|
* Otherwise just returns the result of the savegame version test
|
||||||
*/
|
*/
|
||||||
bool SlXvFeatureTest::IsFeaturePresent(uint16 savegame_version, uint16 savegame_version_from, uint16 savegame_version_to) const
|
bool SlXvFeatureTest::IsFeaturePresent(SaveLoadVersion savegame_version, SaveLoadVersion savegame_version_from, SaveLoadVersion savegame_version_to) const
|
||||||
{
|
{
|
||||||
bool savegame_version_ok = savegame_version >= savegame_version_from && savegame_version <= savegame_version_to;
|
bool savegame_version_ok = savegame_version >= savegame_version_from && savegame_version < savegame_version_to;
|
||||||
|
|
||||||
if (this->functor) return (*this->functor)(savegame_version, savegame_version_ok);
|
if (this->functor) return (*this->functor)(savegame_version, savegame_version_ok);
|
||||||
|
|
||||||
|
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
enum SaveLoadVersion : uint16;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List of extended features, each feature has its own (16 bit) version
|
* List of extended features, each feature has its own (16 bit) version
|
||||||
*/
|
*/
|
||||||
@@ -112,7 +114,7 @@ struct SlXvFeatureTest {
|
|||||||
SlXvFeatureTest(TestFunctorPtr functor_)
|
SlXvFeatureTest(TestFunctorPtr functor_)
|
||||||
: min_version(0), max_version(0), feature(XSLFI_NULL), op(XSLFTO_OR), functor(functor_) { }
|
: min_version(0), max_version(0), feature(XSLFI_NULL), op(XSLFTO_OR), functor(functor_) { }
|
||||||
|
|
||||||
bool IsFeaturePresent(uint16 savegame_version, uint16 savegame_version_from, uint16 savegame_version_to) const;
|
bool IsFeaturePresent(SaveLoadVersion savegame_version, SaveLoadVersion savegame_version_from, SaveLoadVersion savegame_version_to) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool SlXvIsFeaturePresent(SlXvFeatureIndex feature, uint16 min_version = 1, uint16 max_version = 0xFFFF);
|
bool SlXvIsFeaturePresent(SlXvFeatureIndex feature, uint16 min_version = 1, uint16 max_version = 0xFFFF);
|
||||||
|
@@ -28,11 +28,11 @@ static const SaveLoad _glog_mode_desc[] = {
|
|||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
static char old_revision_text[NETWORK_REVISION_LENGTH];
|
static char old_revision_text[GAMELOG_REVISION_LENGTH];
|
||||||
|
|
||||||
static const SaveLoad _glog_revision_desc[] = {
|
static const SaveLoad _glog_revision_desc[] = {
|
||||||
SLEG_CONDARR_X(old_revision_text, SLE_UINT8, NETWORK_REVISION_LENGTH, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_EXTENDED_GAMELOG, 0, 0)),
|
SLEG_CONDARR_X(old_revision_text, SLE_UINT8, GAMELOG_REVISION_LENGTH, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_EXTENDED_GAMELOG, 0, 0)),
|
||||||
SLE_CONDSTR_X(LoggedChange, revision.text, SLE_STR, 0, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_EXTENDED_GAMELOG)),
|
SLE_CONDSTR_X(LoggedChange, revision.text, SLE_STR, 0, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_EXTENDED_GAMELOG)),
|
||||||
SLE_VAR(LoggedChange, revision.newgrf, SLE_UINT32),
|
SLE_VAR(LoggedChange, revision.newgrf, SLE_UINT32),
|
||||||
SLE_VAR(LoggedChange, revision.slver, SLE_UINT16),
|
SLE_VAR(LoggedChange, revision.slver, SLE_UINT16),
|
||||||
SLE_VAR(LoggedChange, revision.modified, SLE_UINT8),
|
SLE_VAR(LoggedChange, revision.modified, SLE_UINT8),
|
||||||
|
@@ -21,8 +21,8 @@ static const SaveLoad _goals_desc[] = {
|
|||||||
SLE_VAR(Goal, type, SLE_FILE_U16 | SLE_VAR_U8),
|
SLE_VAR(Goal, type, SLE_FILE_U16 | SLE_VAR_U8),
|
||||||
SLE_VAR(Goal, dst, SLE_UINT32),
|
SLE_VAR(Goal, dst, SLE_UINT32),
|
||||||
SLE_STR(Goal, text, SLE_STR | SLF_ALLOW_CONTROL, 0),
|
SLE_STR(Goal, text, SLE_STR | SLF_ALLOW_CONTROL, 0),
|
||||||
SLE_CONDSTR(Goal, progress, SLE_STR | SLF_ALLOW_CONTROL, 0, 182, SL_MAX_VERSION),
|
SLE_CONDSTR(Goal, progress, SLE_STR | SLF_ALLOW_CONTROL, 0, SLV_182, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Goal, completed, SLE_BOOL, 182, SL_MAX_VERSION),
|
SLE_CONDVAR(Goal, completed, SLE_BOOL, SLV_182, SL_MAX_VERSION),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -18,16 +18,16 @@
|
|||||||
#include "../safeguards.h"
|
#include "../safeguards.h"
|
||||||
|
|
||||||
static const SaveLoad _group_desc[] = {
|
static const SaveLoad _group_desc[] = {
|
||||||
SLE_CONDVAR(Group, name, SLE_NAME, 0, 83),
|
SLE_CONDVAR(Group, name, SLE_NAME, SL_MIN_VERSION, SLV_84),
|
||||||
SLE_CONDSTR(Group, name, SLE_STR | SLF_ALLOW_CONTROL, 0, 84, SL_MAX_VERSION),
|
SLE_CONDSTR(Group, name, SLE_STR | SLF_ALLOW_CONTROL, 0, SLV_84, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL(2, 0, 163), // num_vehicle
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_164), // num_vehicle
|
||||||
SLE_VAR(Group, owner, SLE_UINT8),
|
SLE_VAR(Group, owner, SLE_UINT8),
|
||||||
SLE_VAR(Group, vehicle_type, SLE_UINT8),
|
SLE_VAR(Group, vehicle_type, SLE_UINT8),
|
||||||
SLE_VAR(Group, replace_protection, SLE_BOOL),
|
SLE_VAR(Group, replace_protection, SLE_BOOL),
|
||||||
SLE_CONDVAR(Group, livery.in_use, SLE_UINT8, 205, SL_MAX_VERSION),
|
SLE_CONDVAR(Group, livery.in_use, SLE_UINT8, SLV_GROUP_LIVERIES, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Group, livery.colour1, SLE_UINT8, 205, SL_MAX_VERSION),
|
SLE_CONDVAR(Group, livery.colour1, SLE_UINT8, SLV_GROUP_LIVERIES, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Group, livery.colour2, SLE_UINT8, 205, SL_MAX_VERSION),
|
SLE_CONDVAR(Group, livery.colour2, SLE_UINT8, SLV_GROUP_LIVERIES, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Group, parent, SLE_UINT16, 189, SL_MAX_VERSION),
|
SLE_CONDVAR(Group, parent, SLE_UINT16, SLV_189, SL_MAX_VERSION),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -50,9 +50,9 @@ static void Load_GRPS()
|
|||||||
Group *g = new (index) Group();
|
Group *g = new (index) Group();
|
||||||
SlObject(g, _group_desc);
|
SlObject(g, _group_desc);
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(189)) g->parent = INVALID_GROUP;
|
if (IsSavegameVersionBefore(SLV_189)) g->parent = INVALID_GROUP;
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(205)) {
|
if (IsSavegameVersionBefore(SLV_GROUP_LIVERIES)) {
|
||||||
const Company *c = Company::Get(g->owner);
|
const Company *c = Company::Get(g->owner);
|
||||||
g->livery.colour1 = c->livery[LS_DEFAULT].colour1;
|
g->livery.colour1 = c->livery[LS_DEFAULT].colour1;
|
||||||
g->livery.colour2 = c->livery[LS_DEFAULT].colour2;
|
g->livery.colour2 = c->livery[LS_DEFAULT].colour2;
|
||||||
|
@@ -20,58 +20,58 @@
|
|||||||
static OldPersistentStorage _old_ind_persistent_storage;
|
static OldPersistentStorage _old_ind_persistent_storage;
|
||||||
|
|
||||||
static const SaveLoad _industry_desc[] = {
|
static const SaveLoad _industry_desc[] = {
|
||||||
SLE_CONDVAR(Industry, location.tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(Industry, location.tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Industry, location.tile, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Industry, location.tile, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_VAR(Industry, location.w, SLE_FILE_U8 | SLE_VAR_U16),
|
SLE_VAR(Industry, location.w, SLE_FILE_U8 | SLE_VAR_U16),
|
||||||
SLE_VAR(Industry, location.h, SLE_FILE_U8 | SLE_VAR_U16),
|
SLE_VAR(Industry, location.h, SLE_FILE_U8 | SLE_VAR_U16),
|
||||||
SLE_REF(Industry, town, REF_TOWN),
|
SLE_REF(Industry, town, REF_TOWN),
|
||||||
SLE_CONDNULL( 2, 0, 60), ///< used to be industry's produced_cargo
|
SLE_CONDNULL( 2, SL_MIN_VERSION, SLV_61), ///< used to be industry's produced_cargo
|
||||||
SLE_CONDARR(Industry, produced_cargo, SLE_UINT8, 2, 78, 201),
|
SLE_CONDARR(Industry, produced_cargo, SLE_UINT8, 2, SLV_78, SLV_EXTEND_INDUSTRY_CARGO_SLOTS),
|
||||||
SLE_CONDARR(Industry, produced_cargo, SLE_UINT8, 16, 202, SL_MAX_VERSION),
|
SLE_CONDARR(Industry, produced_cargo, SLE_UINT8, 16, SLV_EXTEND_INDUSTRY_CARGO_SLOTS, SL_MAX_VERSION),
|
||||||
SLE_CONDARR(Industry, incoming_cargo_waiting, SLE_UINT16, 3, 70, 201),
|
SLE_CONDARR(Industry, incoming_cargo_waiting, SLE_UINT16, 3, SLV_70, SLV_EXTEND_INDUSTRY_CARGO_SLOTS),
|
||||||
SLE_CONDARR(Industry, incoming_cargo_waiting, SLE_UINT16, 16, 202, SL_MAX_VERSION),
|
SLE_CONDARR(Industry, incoming_cargo_waiting, SLE_UINT16, 16, SLV_EXTEND_INDUSTRY_CARGO_SLOTS, SL_MAX_VERSION),
|
||||||
SLE_CONDARR(Industry, produced_cargo_waiting, SLE_UINT16, 2, 0, 201),
|
SLE_CONDARR(Industry, produced_cargo_waiting, SLE_UINT16, 2, SL_MIN_VERSION, SLV_EXTEND_INDUSTRY_CARGO_SLOTS),
|
||||||
SLE_CONDARR(Industry, produced_cargo_waiting, SLE_UINT16, 16, 202, SL_MAX_VERSION),
|
SLE_CONDARR(Industry, produced_cargo_waiting, SLE_UINT16, 16, SLV_EXTEND_INDUSTRY_CARGO_SLOTS, SL_MAX_VERSION),
|
||||||
SLE_CONDARR(Industry, production_rate, SLE_UINT8, 2, 0, 201),
|
SLE_CONDARR(Industry, production_rate, SLE_UINT8, 2, SL_MIN_VERSION, SLV_EXTEND_INDUSTRY_CARGO_SLOTS),
|
||||||
SLE_CONDARR(Industry, production_rate, SLE_UINT8, 16, 202, SL_MAX_VERSION),
|
SLE_CONDARR(Industry, production_rate, SLE_UINT8, 16, SLV_EXTEND_INDUSTRY_CARGO_SLOTS, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL( 3, 0, 60), ///< used to be industry's accepts_cargo
|
SLE_CONDNULL( 3, SL_MIN_VERSION, SLV_61), ///< used to be industry's accepts_cargo
|
||||||
SLE_CONDARR(Industry, accepts_cargo, SLE_UINT8, 3, 78, 201),
|
SLE_CONDARR(Industry, accepts_cargo, SLE_UINT8, 3, SLV_78, SLV_EXTEND_INDUSTRY_CARGO_SLOTS),
|
||||||
SLE_CONDARR(Industry, accepts_cargo, SLE_UINT8, 16, 202, SL_MAX_VERSION),
|
SLE_CONDARR(Industry, accepts_cargo, SLE_UINT8, 16, SLV_EXTEND_INDUSTRY_CARGO_SLOTS, SL_MAX_VERSION),
|
||||||
SLE_VAR(Industry, prod_level, SLE_UINT8),
|
SLE_VAR(Industry, prod_level, SLE_UINT8),
|
||||||
SLE_CONDARR(Industry, this_month_production, SLE_UINT16, 2, 0, 201),
|
SLE_CONDARR(Industry, this_month_production, SLE_UINT16, 2, SL_MIN_VERSION, SLV_EXTEND_INDUSTRY_CARGO_SLOTS),
|
||||||
SLE_CONDARR(Industry, this_month_production, SLE_UINT16, 16, 202, SL_MAX_VERSION),
|
SLE_CONDARR(Industry, this_month_production, SLE_UINT16, 16, SLV_EXTEND_INDUSTRY_CARGO_SLOTS, SL_MAX_VERSION),
|
||||||
SLE_CONDARR(Industry, this_month_transported, SLE_UINT16, 2, 0, 201),
|
SLE_CONDARR(Industry, this_month_transported, SLE_UINT16, 2, SL_MIN_VERSION, SLV_EXTEND_INDUSTRY_CARGO_SLOTS),
|
||||||
SLE_CONDARR(Industry, this_month_transported, SLE_UINT16, 16, 202, SL_MAX_VERSION),
|
SLE_CONDARR(Industry, this_month_transported, SLE_UINT16, 16, SLV_EXTEND_INDUSTRY_CARGO_SLOTS, SL_MAX_VERSION),
|
||||||
SLE_CONDARR(Industry, last_month_pct_transported, SLE_UINT8, 2, 0, 201),
|
SLE_CONDARR(Industry, last_month_pct_transported, SLE_UINT8, 2, SL_MIN_VERSION, SLV_EXTEND_INDUSTRY_CARGO_SLOTS),
|
||||||
SLE_CONDARR(Industry, last_month_pct_transported, SLE_UINT8, 16, 202, SL_MAX_VERSION),
|
SLE_CONDARR(Industry, last_month_pct_transported, SLE_UINT8, 16, SLV_EXTEND_INDUSTRY_CARGO_SLOTS, SL_MAX_VERSION),
|
||||||
SLE_CONDARR(Industry, last_month_production, SLE_UINT16, 2, 0, 201),
|
SLE_CONDARR(Industry, last_month_production, SLE_UINT16, 2, SL_MIN_VERSION, SLV_EXTEND_INDUSTRY_CARGO_SLOTS),
|
||||||
SLE_CONDARR(Industry, last_month_production, SLE_UINT16, 16, 202, SL_MAX_VERSION),
|
SLE_CONDARR(Industry, last_month_production, SLE_UINT16, 16, SLV_EXTEND_INDUSTRY_CARGO_SLOTS, SL_MAX_VERSION),
|
||||||
SLE_CONDARR(Industry, last_month_transported, SLE_UINT16, 2, 0, 201),
|
SLE_CONDARR(Industry, last_month_transported, SLE_UINT16, 2, SL_MIN_VERSION, SLV_EXTEND_INDUSTRY_CARGO_SLOTS),
|
||||||
SLE_CONDARR(Industry, last_month_transported, SLE_UINT16, 16, 202, SL_MAX_VERSION),
|
SLE_CONDARR(Industry, last_month_transported, SLE_UINT16, 16, SLV_EXTEND_INDUSTRY_CARGO_SLOTS, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_VAR(Industry, counter, SLE_UINT16),
|
SLE_VAR(Industry, counter, SLE_UINT16),
|
||||||
|
|
||||||
SLE_VAR(Industry, type, SLE_UINT8),
|
SLE_VAR(Industry, type, SLE_UINT8),
|
||||||
SLE_VAR(Industry, owner, SLE_UINT8),
|
SLE_VAR(Industry, owner, SLE_UINT8),
|
||||||
SLE_VAR(Industry, random_colour, SLE_UINT8),
|
SLE_VAR(Industry, random_colour, SLE_UINT8),
|
||||||
SLE_CONDVAR(Industry, last_prod_year, SLE_FILE_U8 | SLE_VAR_I32, 0, 30),
|
SLE_CONDVAR(Industry, last_prod_year, SLE_FILE_U8 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31),
|
||||||
SLE_CONDVAR(Industry, last_prod_year, SLE_INT32, 31, SL_MAX_VERSION),
|
SLE_CONDVAR(Industry, last_prod_year, SLE_INT32, SLV_31, SL_MAX_VERSION),
|
||||||
SLE_VAR(Industry, was_cargo_delivered, SLE_UINT8),
|
SLE_VAR(Industry, was_cargo_delivered, SLE_UINT8),
|
||||||
|
|
||||||
SLE_CONDVAR(Industry, founder, SLE_UINT8, 70, SL_MAX_VERSION),
|
SLE_CONDVAR(Industry, founder, SLE_UINT8, SLV_70, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Industry, construction_date, SLE_INT32, 70, SL_MAX_VERSION),
|
SLE_CONDVAR(Industry, construction_date, SLE_INT32, SLV_70, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Industry, construction_type, SLE_UINT8, 70, SL_MAX_VERSION),
|
SLE_CONDVAR(Industry, construction_type, SLE_UINT8, SLV_70, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Industry, last_cargo_accepted_at[0], SLE_INT32, 70, 201),
|
SLE_CONDVAR(Industry, last_cargo_accepted_at[0], SLE_INT32, SLV_70, SLV_EXTEND_INDUSTRY_CARGO_SLOTS),
|
||||||
SLE_CONDARR(Industry, last_cargo_accepted_at, SLE_INT32, 16, 202, SL_MAX_VERSION),
|
SLE_CONDARR(Industry, last_cargo_accepted_at, SLE_INT32, 16, SLV_EXTEND_INDUSTRY_CARGO_SLOTS, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Industry, selected_layout, SLE_UINT8, 73, SL_MAX_VERSION),
|
SLE_CONDVAR(Industry, selected_layout, SLE_UINT8, SLV_73, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLEG_CONDARR(_old_ind_persistent_storage.storage, SLE_UINT32, 16, 76, 160),
|
SLEG_CONDARR(_old_ind_persistent_storage.storage, SLE_UINT32, 16, SLV_76, SLV_161),
|
||||||
SLE_CONDREF(Industry, psa, REF_STORAGE, 161, SL_MAX_VERSION),
|
SLE_CONDREF(Industry, psa, REF_STORAGE, SLV_161, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDNULL(1, 82, 196), // random_triggers
|
SLE_CONDNULL(1, SLV_82, SLV_197), // random_triggers
|
||||||
SLE_CONDVAR(Industry, random, SLE_UINT16, 82, SL_MAX_VERSION),
|
SLE_CONDVAR(Industry, random, SLE_UINT16, SLV_82, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDNULL(32, 2, 143), // old reserved space
|
SLE_CONDNULL(32, SLV_2, SLV_144), // old reserved space
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -108,7 +108,7 @@ static void Load_INDY()
|
|||||||
SlObject(i, _industry_desc);
|
SlObject(i, _industry_desc);
|
||||||
|
|
||||||
/* Before savegame version 161, persistent storages were not stored in a pool. */
|
/* Before savegame version 161, persistent storages were not stored in a pool. */
|
||||||
if (IsSavegameVersionBefore(161) && !IsSavegameVersionBefore(76)) {
|
if (IsSavegameVersionBefore(SLV_161) && !IsSavegameVersionBefore(SLV_76)) {
|
||||||
/* Store the old persistent storage. The GRFID will be added later. */
|
/* Store the old persistent storage. The GRFID will be added later. */
|
||||||
assert(PersistentStorage::CanAllocateItem());
|
assert(PersistentStorage::CanAllocateItem());
|
||||||
i->psa = new PersistentStorage(0, 0, 0);
|
i->psa = new PersistentStorage(0, 0, 0);
|
||||||
|
@@ -83,7 +83,7 @@ const SaveLoad *GetLinkGraphJobDesc()
|
|||||||
|
|
||||||
const SaveLoad job_desc[] = {
|
const SaveLoad job_desc[] = {
|
||||||
SLE_VAR(LinkGraphJob, join_date_ticks, SLE_INT32),
|
SLE_VAR(LinkGraphJob, join_date_ticks, SLE_INT32),
|
||||||
SLE_CONDVAR_X(LinkGraphJob, start_date_ticks, SLE_INT32, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_LINKGRAPH_DAY_SCALE)),
|
SLE_CONDVAR_X(LinkGraphJob, start_date_ticks, SLE_INT32, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_LINKGRAPH_DAY_SCALE)),
|
||||||
SLE_VAR(LinkGraphJob, link_graph.index, SLE_UINT16),
|
SLE_VAR(LinkGraphJob, link_graph.index, SLE_UINT16),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -117,7 +117,7 @@ const SaveLoad *GetLinkGraphScheduleDesc()
|
|||||||
* SaveLoad desc for a link graph node.
|
* SaveLoad desc for a link graph node.
|
||||||
*/
|
*/
|
||||||
static const SaveLoad _node_desc[] = {
|
static const SaveLoad _node_desc[] = {
|
||||||
SLE_CONDVAR(Node, xy, SLE_UINT32, 191, SL_MAX_VERSION),
|
SLE_CONDVAR(Node, xy, SLE_UINT32, SLV_191, SL_MAX_VERSION),
|
||||||
SLE_VAR(Node, supply, SLE_UINT32),
|
SLE_VAR(Node, supply, SLE_UINT32),
|
||||||
SLE_VAR(Node, demand, SLE_UINT32),
|
SLE_VAR(Node, demand, SLE_UINT32),
|
||||||
SLE_VAR(Node, station, SLE_UINT16),
|
SLE_VAR(Node, station, SLE_UINT16),
|
||||||
@@ -129,11 +129,11 @@ static const SaveLoad _node_desc[] = {
|
|||||||
* SaveLoad desc for a link graph edge.
|
* SaveLoad desc for a link graph edge.
|
||||||
*/
|
*/
|
||||||
static const SaveLoad _edge_desc[] = {
|
static const SaveLoad _edge_desc[] = {
|
||||||
SLE_CONDNULL(4, 0, 190), // distance
|
SLE_CONDNULL(4, SL_MIN_VERSION, SLV_191), // distance
|
||||||
SLE_VAR(Edge, capacity, SLE_UINT32),
|
SLE_VAR(Edge, capacity, SLE_UINT32),
|
||||||
SLE_VAR(Edge, usage, SLE_UINT32),
|
SLE_VAR(Edge, usage, SLE_UINT32),
|
||||||
SLE_VAR(Edge, last_unrestricted_update, SLE_INT32),
|
SLE_VAR(Edge, last_unrestricted_update, SLE_INT32),
|
||||||
SLE_CONDVAR(Edge, last_restricted_update, SLE_INT32, 187, SL_MAX_VERSION),
|
SLE_CONDVAR(Edge, last_restricted_update, SLE_INT32, SLV_187, SL_MAX_VERSION),
|
||||||
SLE_VAR(Edge, next_edge, SLE_UINT16),
|
SLE_VAR(Edge, next_edge, SLE_UINT16),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -148,7 +148,7 @@ void SaveLoad_LinkGraph(LinkGraph &lg)
|
|||||||
for (NodeID from = 0; from < size; ++from) {
|
for (NodeID from = 0; from < size; ++from) {
|
||||||
Node *node = &lg.nodes[from];
|
Node *node = &lg.nodes[from];
|
||||||
SlObject(node, _node_desc);
|
SlObject(node, _node_desc);
|
||||||
if (IsSavegameVersionBefore(191)) {
|
if (IsSavegameVersionBefore(SLV_191)) {
|
||||||
/* We used to save the full matrix ... */
|
/* We used to save the full matrix ... */
|
||||||
for (NodeID to = 0; to < size; ++to) {
|
for (NodeID to = 0; to < size; ++to) {
|
||||||
SlObject(&lg.edges[from][to], _edge_desc);
|
SlObject(&lg.edges[from][to], _edge_desc);
|
||||||
@@ -240,7 +240,7 @@ static void Load_LGRS()
|
|||||||
*/
|
*/
|
||||||
void AfterLoadLinkGraphs()
|
void AfterLoadLinkGraphs()
|
||||||
{
|
{
|
||||||
if (IsSavegameVersionBefore(191)) {
|
if (IsSavegameVersionBefore(SLV_191)) {
|
||||||
LinkGraph *lg;
|
LinkGraph *lg;
|
||||||
FOR_ALL_LINK_GRAPHS(lg) {
|
FOR_ALL_LINK_GRAPHS(lg) {
|
||||||
for (NodeID node_id = 0; node_id < lg->Size(); ++node_id) {
|
for (NodeID node_id = 0; node_id < lg->Size(); ++node_id) {
|
||||||
|
@@ -25,8 +25,8 @@ static uint32 _map_dim_x;
|
|||||||
static uint32 _map_dim_y;
|
static uint32 _map_dim_y;
|
||||||
|
|
||||||
static const SaveLoadGlobVarList _map_dimensions[] = {
|
static const SaveLoadGlobVarList _map_dimensions[] = {
|
||||||
SLEG_CONDVAR(_map_dim_x, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLEG_CONDVAR(_map_dim_x, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLEG_CONDVAR(_map_dim_y, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLEG_CONDVAR(_map_dim_y, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLEG_END()
|
SLEG_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ static void Load_MAP2()
|
|||||||
for (TileIndex i = 0; i != size;) {
|
for (TileIndex i = 0; i != size;) {
|
||||||
SlArray(buf, MAP_SL_BUF_SIZE,
|
SlArray(buf, MAP_SL_BUF_SIZE,
|
||||||
/* In those versions the m2 was 8 bits */
|
/* In those versions the m2 was 8 bits */
|
||||||
IsSavegameVersionBefore(5) ? SLE_FILE_U8 | SLE_VAR_U16 : SLE_UINT16
|
IsSavegameVersionBefore(SLV_5) ? SLE_FILE_U8 | SLE_VAR_U16 : SLE_UINT16
|
||||||
);
|
);
|
||||||
for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) _m[i++].m2 = buf[j];
|
for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) _m[i++].m2 = buf[j];
|
||||||
}
|
}
|
||||||
@@ -140,7 +140,7 @@ static void Load_MAP6()
|
|||||||
SmallStackSafeStackAlloc<byte, MAP_SL_BUF_SIZE> buf;
|
SmallStackSafeStackAlloc<byte, MAP_SL_BUF_SIZE> buf;
|
||||||
TileIndex size = MapSize();
|
TileIndex size = MapSize();
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(42)) {
|
if (IsSavegameVersionBefore(SLV_42)) {
|
||||||
for (TileIndex i = 0; i != size;) {
|
for (TileIndex i = 0; i != size;) {
|
||||||
/* 1024, otherwise we overflow on 64x64 maps! */
|
/* 1024, otherwise we overflow on 64x64 maps! */
|
||||||
SlArray(buf, 1024, SLE_UINT8);
|
SlArray(buf, 1024, SLE_UINT8);
|
||||||
|
@@ -71,54 +71,54 @@ void ResetViewportAfterLoadGame()
|
|||||||
byte _age_cargo_skip_counter; ///< Skip aging of cargo? Used before savegame version 162.
|
byte _age_cargo_skip_counter; ///< Skip aging of cargo? Used before savegame version 162.
|
||||||
|
|
||||||
static const SaveLoadGlobVarList _date_desc[] = {
|
static const SaveLoadGlobVarList _date_desc[] = {
|
||||||
SLEG_CONDVAR(_date, SLE_FILE_U16 | SLE_VAR_I32, 0, 30),
|
SLEG_CONDVAR(_date, SLE_FILE_U16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31),
|
||||||
SLEG_CONDVAR(_date, SLE_INT32, 31, SL_MAX_VERSION),
|
SLEG_CONDVAR(_date, SLE_INT32, SLV_31, SL_MAX_VERSION),
|
||||||
SLEG_VAR(_date_fract, SLE_UINT16),
|
SLEG_VAR(_date_fract, SLE_UINT16),
|
||||||
SLEG_VAR(_tick_counter, SLE_UINT16),
|
SLEG_VAR(_tick_counter, SLE_UINT16),
|
||||||
SLEG_CONDVAR_X(_tick_skip_counter, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_VARIABLE_DAY_LENGTH)),
|
SLEG_CONDVAR_X(_tick_skip_counter, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_VARIABLE_DAY_LENGTH)),
|
||||||
SLE_CONDNULL(2, 0, 156), // _vehicle_id_ctr_day
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_157), // _vehicle_id_ctr_day
|
||||||
SLEG_CONDVAR(_age_cargo_skip_counter, SLE_UINT8, 0, 161),
|
SLEG_CONDVAR(_age_cargo_skip_counter, SLE_UINT8, SL_MIN_VERSION, SLV_162),
|
||||||
SLE_CONDNULL(1, 0, 45),
|
SLE_CONDNULL(1, SL_MIN_VERSION, SLV_46),
|
||||||
SLEG_CONDVAR(_cur_tileloop_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLEG_CONDVAR(_cur_tileloop_tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLEG_CONDVAR(_cur_tileloop_tile, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLEG_CONDVAR(_cur_tileloop_tile, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLEG_VAR(_disaster_delay, SLE_UINT16),
|
SLEG_VAR(_disaster_delay, SLE_UINT16),
|
||||||
SLE_CONDNULL(2, 0, 119),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_120),
|
||||||
SLEG_VAR(_random.state[0], SLE_UINT32),
|
SLEG_VAR(_random.state[0], SLE_UINT32),
|
||||||
SLEG_VAR(_random.state[1], SLE_UINT32),
|
SLEG_VAR(_random.state[1], SLE_UINT32),
|
||||||
SLE_CONDNULL(1, 0, 9),
|
SLE_CONDNULL(1, SL_MIN_VERSION, SLV_10),
|
||||||
SLE_CONDNULL(4, 10, 119),
|
SLE_CONDNULL(4, SLV_10, SLV_120),
|
||||||
SLEG_VAR(_cur_company_tick_index, SLE_FILE_U8 | SLE_VAR_U32),
|
SLEG_VAR(_cur_company_tick_index, SLE_FILE_U8 | SLE_VAR_U32),
|
||||||
SLEG_CONDVAR(_next_competitor_start, SLE_FILE_U16 | SLE_VAR_U32, 0, 108),
|
SLEG_CONDVAR(_next_competitor_start, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_109),
|
||||||
SLEG_CONDVAR(_next_competitor_start, SLE_UINT32, 109, SL_MAX_VERSION),
|
SLEG_CONDVAR(_next_competitor_start, SLE_UINT32, SLV_109, SL_MAX_VERSION),
|
||||||
SLEG_VAR(_trees_tick_ctr, SLE_UINT8),
|
SLEG_VAR(_trees_tick_ctr, SLE_UINT8),
|
||||||
SLEG_CONDVAR(_pause_mode, SLE_UINT8, 4, SL_MAX_VERSION),
|
SLEG_CONDVAR(_pause_mode, SLE_UINT8, SLV_4, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL(4, 11, 119),
|
SLE_CONDNULL(4, SLV_11, SLV_120),
|
||||||
SLEG_END()
|
SLEG_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
static const SaveLoadGlobVarList _date_check_desc[] = {
|
static const SaveLoadGlobVarList _date_check_desc[] = {
|
||||||
SLEG_CONDVAR(_load_check_data.current_date, SLE_FILE_U16 | SLE_VAR_I32, 0, 30),
|
SLEG_CONDVAR(_load_check_data.current_date, SLE_FILE_U16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31),
|
||||||
SLEG_CONDVAR(_load_check_data.current_date, SLE_INT32, 31, SL_MAX_VERSION),
|
SLEG_CONDVAR(_load_check_data.current_date, SLE_INT32, SLV_31, SL_MAX_VERSION),
|
||||||
SLE_NULL(2), // _date_fract
|
SLE_NULL(2), // _date_fract
|
||||||
SLE_NULL(2), // _tick_counter
|
SLE_NULL(2), // _tick_counter
|
||||||
SLE_CONDNULL_X(1, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_VARIABLE_DAY_LENGTH)), // _tick_skip_counter
|
SLE_CONDNULL_X(1, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_VARIABLE_DAY_LENGTH)), // _tick_skip_counter
|
||||||
SLE_CONDNULL(2, 0, 156), // _vehicle_id_ctr_day
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_157), // _vehicle_id_ctr_day
|
||||||
SLE_CONDNULL(1, 0, 161), // _age_cargo_skip_counter
|
SLE_CONDNULL(1, SL_MIN_VERSION, SLV_162), // _age_cargo_skip_counter
|
||||||
SLE_CONDNULL(1, 0, 45),
|
SLE_CONDNULL(1, SL_MIN_VERSION, SLV_46),
|
||||||
SLE_CONDNULL(2, 0, 5), // _cur_tileloop_tile
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_6), // _cur_tileloop_tile
|
||||||
SLE_CONDNULL(4, 6, SL_MAX_VERSION), // _cur_tileloop_tile
|
SLE_CONDNULL(4, SLV_6, SL_MAX_VERSION), // _cur_tileloop_tile
|
||||||
SLE_NULL(2), // _disaster_delay
|
SLE_NULL(2), // _disaster_delay
|
||||||
SLE_CONDNULL(2, 0, 119),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_120),
|
||||||
SLE_NULL(4), // _random.state[0]
|
SLE_NULL(4), // _random.state[0]
|
||||||
SLE_NULL(4), // _random.state[1]
|
SLE_NULL(4), // _random.state[1]
|
||||||
SLE_CONDNULL(1, 0, 9),
|
SLE_CONDNULL(1, SL_MIN_VERSION, SLV_10),
|
||||||
SLE_CONDNULL(4, 10, 119),
|
SLE_CONDNULL(4, SLV_10, SLV_120),
|
||||||
SLE_NULL(1), // _cur_company_tick_index
|
SLE_NULL(1), // _cur_company_tick_index
|
||||||
SLE_CONDNULL(2, 0, 108), // _next_competitor_start
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_109), // _next_competitor_start
|
||||||
SLE_CONDNULL(4, 109, SL_MAX_VERSION), // _next_competitor_start
|
SLE_CONDNULL(4, SLV_109, SL_MAX_VERSION), // _next_competitor_start
|
||||||
SLE_NULL(1), // _trees_tick_ctr
|
SLE_NULL(1), // _trees_tick_ctr
|
||||||
SLE_CONDNULL(1, 4, SL_MAX_VERSION), // _pause_mode
|
SLE_CONDNULL(1, SLV_4, SL_MAX_VERSION), // _pause_mode
|
||||||
SLE_CONDNULL(4, 11, 119),
|
SLE_CONDNULL(4, SLV_11, SLV_120),
|
||||||
SLEG_END()
|
SLEG_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -133,17 +133,17 @@ static void SaveLoad_DATE()
|
|||||||
static void Check_DATE()
|
static void Check_DATE()
|
||||||
{
|
{
|
||||||
SlGlobList(_date_check_desc);
|
SlGlobList(_date_check_desc);
|
||||||
if (IsSavegameVersionBefore(31)) {
|
if (IsSavegameVersionBefore(SLV_31)) {
|
||||||
_load_check_data.current_date += DAYS_TILL_ORIGINAL_BASE_YEAR;
|
_load_check_data.current_date += DAYS_TILL_ORIGINAL_BASE_YEAR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static const SaveLoadGlobVarList _view_desc[] = {
|
static const SaveLoadGlobVarList _view_desc[] = {
|
||||||
SLEG_CONDVAR(_saved_scrollpos_x, SLE_FILE_I16 | SLE_VAR_I32, 0, 5),
|
SLEG_CONDVAR(_saved_scrollpos_x, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_6),
|
||||||
SLEG_CONDVAR(_saved_scrollpos_x, SLE_INT32, 6, SL_MAX_VERSION),
|
SLEG_CONDVAR(_saved_scrollpos_x, SLE_INT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLEG_CONDVAR(_saved_scrollpos_y, SLE_FILE_I16 | SLE_VAR_I32, 0, 5),
|
SLEG_CONDVAR(_saved_scrollpos_y, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_6),
|
||||||
SLEG_CONDVAR(_saved_scrollpos_y, SLE_INT32, 6, SL_MAX_VERSION),
|
SLEG_CONDVAR(_saved_scrollpos_y, SLE_INT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLEG_VAR(_saved_scrollpos_zoom, SLE_UINT8),
|
SLEG_VAR(_saved_scrollpos_zoom, SLE_UINT8),
|
||||||
SLEG_END()
|
SLEG_END()
|
||||||
};
|
};
|
||||||
|
@@ -61,10 +61,10 @@ static const SaveLoad _grfconfig_desc[] = {
|
|||||||
SLE_STR(GRFConfig, filename, SLE_STR, 0x40),
|
SLE_STR(GRFConfig, filename, SLE_STR, 0x40),
|
||||||
SLE_VAR(GRFConfig, ident.grfid, SLE_UINT32),
|
SLE_VAR(GRFConfig, ident.grfid, SLE_UINT32),
|
||||||
SLE_ARR(GRFConfig, ident.md5sum, SLE_UINT8, 16),
|
SLE_ARR(GRFConfig, ident.md5sum, SLE_UINT8, 16),
|
||||||
SLE_CONDVAR(GRFConfig, version, SLE_UINT32, 151, SL_MAX_VERSION),
|
SLE_CONDVAR(GRFConfig, version, SLE_UINT32, SLV_151, SL_MAX_VERSION),
|
||||||
SLE_ARR(GRFConfig, param, SLE_UINT32, 0x80),
|
SLE_ARR(GRFConfig, param, SLE_UINT32, 0x80),
|
||||||
SLE_VAR(GRFConfig, num_params, SLE_UINT8),
|
SLE_VAR(GRFConfig, num_params, SLE_UINT8),
|
||||||
SLE_CONDVAR(GRFConfig, palette, SLE_UINT8, 101, SL_MAX_VERSION),
|
SLE_CONDVAR(GRFConfig, palette, SLE_UINT8, SLV_101, SL_MAX_VERSION),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ static void Load_NGRF_common(GRFConfig *&grfconfig)
|
|||||||
while (SlIterateArray() != -1) {
|
while (SlIterateArray() != -1) {
|
||||||
GRFConfig *c = new GRFConfig();
|
GRFConfig *c = new GRFConfig();
|
||||||
SlObject(c, _grfconfig_desc);
|
SlObject(c, _grfconfig_desc);
|
||||||
if (IsSavegameVersionBefore(101)) c->SetSuitablePalette();
|
if (IsSavegameVersionBefore(SLV_101)) c->SetSuitablePalette();
|
||||||
AppendToGRFConfigList(&grfconfig, c);
|
AppendToGRFConfigList(&grfconfig, c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -24,9 +24,9 @@ static const SaveLoad _object_desc[] = {
|
|||||||
SLE_VAR(Object, location.h, SLE_FILE_U8 | SLE_VAR_U16),
|
SLE_VAR(Object, location.h, SLE_FILE_U8 | SLE_VAR_U16),
|
||||||
SLE_REF(Object, town, REF_TOWN),
|
SLE_REF(Object, town, REF_TOWN),
|
||||||
SLE_VAR(Object, build_date, SLE_UINT32),
|
SLE_VAR(Object, build_date, SLE_UINT32),
|
||||||
SLE_CONDVAR(Object, colour, SLE_UINT8, 148, SL_MAX_VERSION),
|
SLE_CONDVAR(Object, colour, SLE_UINT8, SLV_148, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Object, view, SLE_UINT8, 155, SL_MAX_VERSION),
|
SLE_CONDVAR(Object, view, SLE_UINT8, SLV_155, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Object, type, SLE_UINT16, 186, SL_MAX_VERSION),
|
SLE_CONDVAR(Object, type, SLE_UINT16, SLV_186, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -56,7 +56,7 @@ static void Ptrs_OBJS()
|
|||||||
Object *o;
|
Object *o;
|
||||||
FOR_ALL_OBJECTS(o) {
|
FOR_ALL_OBJECTS(o) {
|
||||||
SlObject(o, _object_desc);
|
SlObject(o, _object_desc);
|
||||||
if (IsSavegameVersionBefore(148) && !IsTileType(o->location.tile, MP_OBJECT)) {
|
if (IsSavegameVersionBefore(SLV_148) && !IsTileType(o->location.tile, MP_OBJECT)) {
|
||||||
/* Due to a small bug stale objects could remain. */
|
/* Due to a small bug stale objects could remain. */
|
||||||
delete o;
|
delete o;
|
||||||
}
|
}
|
||||||
|
@@ -28,7 +28,7 @@ void Order::ConvertFromOldSavegame()
|
|||||||
this->flags = 0;
|
this->flags = 0;
|
||||||
|
|
||||||
/* First handle non-stop - use value from savegame if possible, else use value from config file */
|
/* First handle non-stop - use value from savegame if possible, else use value from config file */
|
||||||
if (_settings_client.gui.sg_new_nonstop || (IsSavegameVersionBefore(22) && _savegame_type != SGT_TTO && _savegame_type != SGT_TTD && _settings_client.gui.new_nonstop)) {
|
if (_settings_client.gui.sg_new_nonstop || (IsSavegameVersionBefore(SLV_22) && _savegame_type != SGT_TTO && _savegame_type != SGT_TTD && _settings_client.gui.new_nonstop)) {
|
||||||
/* OFB_NON_STOP */
|
/* OFB_NON_STOP */
|
||||||
this->SetNonStopType((old_flags & 8) ? ONSF_NO_STOP_AT_ANY_STATION : ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS);
|
this->SetNonStopType((old_flags & 8) ? ONSF_NO_STOP_AT_ANY_STATION : ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS);
|
||||||
} else {
|
} else {
|
||||||
@@ -49,7 +49,7 @@ void Order::ConvertFromOldSavegame()
|
|||||||
this->SetLoadType(OLF_LOAD_IF_POSSIBLE);
|
this->SetLoadType(OLF_LOAD_IF_POSSIBLE);
|
||||||
} else {
|
} else {
|
||||||
/* old OTTD versions stored full_load_any in config file - assume it was enabled when loading */
|
/* old OTTD versions stored full_load_any in config file - assume it was enabled when loading */
|
||||||
this->SetLoadType(_settings_client.gui.sg_full_load_any || IsSavegameVersionBefore(22) ? OLF_FULL_LOAD_ANY : OLFB_FULL_LOAD);
|
this->SetLoadType(_settings_client.gui.sg_full_load_any || IsSavegameVersionBefore(SLV_22) ? OLF_FULL_LOAD_ANY : OLFB_FULL_LOAD);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->IsType(OT_GOTO_STATION)) this->SetStopLocation(OSL_PLATFORM_FAR_END);
|
if (this->IsType(OT_GOTO_STATION)) this->SetStopLocation(OSL_PLATFORM_FAR_END);
|
||||||
@@ -106,22 +106,22 @@ const SaveLoad *GetOrderDescription()
|
|||||||
static const SaveLoad _order_desc[] = {
|
static const SaveLoad _order_desc[] = {
|
||||||
SLE_VAR(Order, type, SLE_UINT8),
|
SLE_VAR(Order, type, SLE_UINT8),
|
||||||
SLE_VAR(Order, flags, SLE_UINT8),
|
SLE_VAR(Order, flags, SLE_UINT8),
|
||||||
SLE_CONDNULL_X(1, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
SLE_CONDNULL_X(1, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
||||||
SLE_VAR(Order, dest, SLE_UINT16),
|
SLE_VAR(Order, dest, SLE_UINT16),
|
||||||
SLE_REF(Order, next, REF_ORDER),
|
SLE_REF(Order, next, REF_ORDER),
|
||||||
SLE_CONDVAR(Order, refit_cargo, SLE_UINT8, 36, SL_MAX_VERSION),
|
SLE_CONDVAR(Order, refit_cargo, SLE_UINT8, SLV_36, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL(1, 36, 181), // refit_subtype
|
SLE_CONDNULL(1, SLV_36, SLV_182), // refit_subtype
|
||||||
SLE_CONDVAR_X(Order, occupancy, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_ORDER_OCCUPANCY)),
|
SLE_CONDVAR_X(Order, occupancy, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_ORDER_OCCUPANCY)),
|
||||||
SLE_CONDVAR_X(Order, wait_time, SLE_FILE_U16 | SLE_VAR_U32, 67, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA, 0, 5)),
|
SLE_CONDVAR_X(Order, wait_time, SLE_FILE_U16 | SLE_VAR_U32, SLV_67, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA, 0, 5)),
|
||||||
SLE_CONDVAR_X(Order, wait_time, SLE_UINT32, 67, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA, 6)),
|
SLE_CONDVAR_X(Order, wait_time, SLE_UINT32, SLV_67, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA, 6)),
|
||||||
SLE_CONDVAR_X(Order, travel_time, SLE_FILE_U16 | SLE_VAR_U32, 67, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA, 0, 5)),
|
SLE_CONDVAR_X(Order, travel_time, SLE_FILE_U16 | SLE_VAR_U32, SLV_67, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA, 0, 5)),
|
||||||
SLE_CONDVAR_X(Order, travel_time, SLE_UINT32, 67, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA, 6)),
|
SLE_CONDVAR_X(Order, travel_time, SLE_UINT32, SLV_67, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA, 6)),
|
||||||
SLE_CONDVAR(Order, max_speed, SLE_UINT16, 172, SL_MAX_VERSION),
|
SLE_CONDVAR(Order, max_speed, SLE_UINT16, SLV_172, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR_X(Order, jump_counter, SLE_INT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_MORE_COND_ORDERS)),
|
SLE_CONDVAR_X(Order, jump_counter, SLE_INT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_MORE_COND_ORDERS)),
|
||||||
|
|
||||||
/* Leftover from the minor savegame version stuff
|
/* Leftover from the minor savegame version stuff
|
||||||
* We will never use those free bytes, but we have to keep this line to allow loading of old savegames */
|
* We will never use those free bytes, but we have to keep this line to allow loading of old savegames */
|
||||||
SLE_CONDNULL(10, 5, 35),
|
SLE_CONDNULL(10, SLV_5, SLV_36),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -140,12 +140,12 @@ static void Save_ORDR()
|
|||||||
|
|
||||||
static void Load_ORDR()
|
static void Load_ORDR()
|
||||||
{
|
{
|
||||||
if (IsSavegameVersionBefore(5, 2)) {
|
if (IsSavegameVersionBefore(SLV_5, 2)) {
|
||||||
/* Version older than 5.2 did not have a ->next pointer. Convert them
|
/* Version older than 5.2 did not have a ->next pointer. Convert them
|
||||||
* (in the old days, the orderlist was 5000 items big) */
|
* (in the old days, the orderlist was 5000 items big) */
|
||||||
size_t len = SlGetFieldLength();
|
size_t len = SlGetFieldLength();
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(5)) {
|
if (IsSavegameVersionBefore(SLV_5)) {
|
||||||
/* Pre-version 5 had another layout for orders
|
/* Pre-version 5 had another layout for orders
|
||||||
* (uint16 instead of uint32) */
|
* (uint16 instead of uint32) */
|
||||||
len /= sizeof(uint16);
|
len /= sizeof(uint16);
|
||||||
@@ -159,7 +159,7 @@ static void Load_ORDR()
|
|||||||
}
|
}
|
||||||
|
|
||||||
free(orders);
|
free(orders);
|
||||||
} else if (IsSavegameVersionBefore(5, 2)) {
|
} else if (IsSavegameVersionBefore(SLV_5, 2)) {
|
||||||
len /= sizeof(uint32);
|
len /= sizeof(uint32);
|
||||||
uint32 *orders = MallocT<uint32>(len + 1);
|
uint32 *orders = MallocT<uint32>(len + 1);
|
||||||
|
|
||||||
@@ -191,7 +191,7 @@ static void Load_ORDR()
|
|||||||
while ((index = SlIterateArray()) != -1) {
|
while ((index = SlIterateArray()) != -1) {
|
||||||
Order *order = new (index) Order();
|
Order *order = new (index) Order();
|
||||||
SlObject(order, GetOrderDescription());
|
SlObject(order, GetOrderDescription());
|
||||||
if (IsSavegameVersionBefore(190)) {
|
if (IsSavegameVersionBefore(SLV_190)) {
|
||||||
order->SetTravelTimetabled(order->GetTravelTime() > 0);
|
order->SetTravelTimetabled(order->GetTravelTime() > 0);
|
||||||
order->SetWaitTimetabled(order->GetWaitTime() > 0);
|
order->SetWaitTimetabled(order->GetWaitTime() > 0);
|
||||||
} else if (order->IsType(OT_CONDITIONAL) && SlXvIsFeatureMissing(XSLFI_TIMETABLE_EXTRA)) {
|
} else if (order->IsType(OT_CONDITIONAL) && SlXvIsFeatureMissing(XSLFI_TIMETABLE_EXTRA)) {
|
||||||
@@ -204,10 +204,10 @@ static void Load_ORDR()
|
|||||||
const SaveLoad *GetOrderExtraInfoDescription()
|
const SaveLoad *GetOrderExtraInfoDescription()
|
||||||
{
|
{
|
||||||
static const SaveLoad _order_extra_info_desc[] = {
|
static const SaveLoad _order_extra_info_desc[] = {
|
||||||
SLE_CONDARR_X(OrderExtraInfo, cargo_type_flags, SLE_UINT8, 32, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_CARGO_TYPE_ORDERS, 1, 2)),
|
SLE_CONDARR_X(OrderExtraInfo, cargo_type_flags, SLE_UINT8, 32, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_CARGO_TYPE_ORDERS, 1, 2)),
|
||||||
SLE_CONDARR_X(OrderExtraInfo, cargo_type_flags, SLE_UINT8, NUM_CARGO, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_CARGO_TYPE_ORDERS, 3)),
|
SLE_CONDARR_X(OrderExtraInfo, cargo_type_flags, SLE_UINT8, NUM_CARGO, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_CARGO_TYPE_ORDERS, 3)),
|
||||||
SLE_CONDVAR_X(OrderExtraInfo, xflags, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA)),
|
SLE_CONDVAR_X(OrderExtraInfo, xflags, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA)),
|
||||||
SLE_CONDVAR_X(OrderExtraInfo, xdata, SLE_UINT32, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_ORDER_EXTRA_DATA)),
|
SLE_CONDVAR_X(OrderExtraInfo, xdata, SLE_UINT32, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_ORDER_EXTRA_DATA)),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -240,7 +240,7 @@ void Load_ORDX()
|
|||||||
static void Ptrs_ORDR()
|
static void Ptrs_ORDR()
|
||||||
{
|
{
|
||||||
/* Orders from old savegames have pointers corrected in Load_ORDR */
|
/* Orders from old savegames have pointers corrected in Load_ORDR */
|
||||||
if (IsSavegameVersionBefore(5, 2)) return;
|
if (IsSavegameVersionBefore(SLV_5, 2)) return;
|
||||||
|
|
||||||
Order *o;
|
Order *o;
|
||||||
|
|
||||||
@@ -253,12 +253,12 @@ const SaveLoad *GetOrderListDescription()
|
|||||||
{
|
{
|
||||||
static const SaveLoad _orderlist_desc[] = {
|
static const SaveLoad _orderlist_desc[] = {
|
||||||
SLE_REF(OrderList, first, REF_ORDER),
|
SLE_REF(OrderList, first, REF_ORDER),
|
||||||
SLE_CONDVARVEC_X(OrderList, scheduled_dispatch, SLE_UINT32, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SCHEDULED_DISPATCH)),
|
SLE_CONDVARVEC_X(OrderList, scheduled_dispatch, SLE_UINT32, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SCHEDULED_DISPATCH)),
|
||||||
SLE_CONDVAR_X(OrderList, scheduled_dispatch_duration, SLE_UINT32, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SCHEDULED_DISPATCH)),
|
SLE_CONDVAR_X(OrderList, scheduled_dispatch_duration, SLE_UINT32, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SCHEDULED_DISPATCH)),
|
||||||
SLE_CONDVAR_X(OrderList, scheduled_dispatch_start_date, SLE_INT32, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SCHEDULED_DISPATCH)),
|
SLE_CONDVAR_X(OrderList, scheduled_dispatch_start_date, SLE_INT32, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SCHEDULED_DISPATCH)),
|
||||||
SLE_CONDVAR_X(OrderList, scheduled_dispatch_start_full_date_fract, SLE_UINT16, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SCHEDULED_DISPATCH)),
|
SLE_CONDVAR_X(OrderList, scheduled_dispatch_start_full_date_fract, SLE_UINT16, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SCHEDULED_DISPATCH)),
|
||||||
SLE_CONDVAR_X(OrderList, scheduled_dispatch_last_dispatch, SLE_INT32, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SCHEDULED_DISPATCH)),
|
SLE_CONDVAR_X(OrderList, scheduled_dispatch_last_dispatch, SLE_INT32, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SCHEDULED_DISPATCH)),
|
||||||
SLE_CONDVAR_X(OrderList, scheduled_dispatch_max_delay, SLE_INT32, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SCHEDULED_DISPATCH)),
|
SLE_CONDVAR_X(OrderList, scheduled_dispatch_max_delay, SLE_INT32, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SCHEDULED_DISPATCH)),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -303,20 +303,20 @@ const SaveLoad *GetOrderBackupDescription()
|
|||||||
SLE_VAR(OrderBackup, user, SLE_UINT32),
|
SLE_VAR(OrderBackup, user, SLE_UINT32),
|
||||||
SLE_VAR(OrderBackup, tile, SLE_UINT32),
|
SLE_VAR(OrderBackup, tile, SLE_UINT32),
|
||||||
SLE_VAR(OrderBackup, group, SLE_UINT16),
|
SLE_VAR(OrderBackup, group, SLE_UINT16),
|
||||||
SLE_CONDVAR(OrderBackup, service_interval, SLE_FILE_U32 | SLE_VAR_U16, 0, 191),
|
SLE_CONDVAR(OrderBackup, service_interval, SLE_FILE_U32 | SLE_VAR_U16, SL_MIN_VERSION, SLV_192),
|
||||||
SLE_CONDVAR(OrderBackup, service_interval, SLE_UINT16, 192, SL_MAX_VERSION),
|
SLE_CONDVAR(OrderBackup, service_interval, SLE_UINT16, SLV_192, SL_MAX_VERSION),
|
||||||
SLE_STR(OrderBackup, name, SLE_STR, 0),
|
SLE_STR(OrderBackup, name, SLE_STR, 0),
|
||||||
SLE_CONDNULL(2, 0, 191), // clone (2 bytes of pointer, i.e. garbage)
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_192), // clone (2 bytes of pointer, i.e. garbage)
|
||||||
SLE_CONDREF(OrderBackup, clone, REF_VEHICLE, 192, SL_MAX_VERSION),
|
SLE_CONDREF(OrderBackup, clone, REF_VEHICLE, SLV_192, SL_MAX_VERSION),
|
||||||
SLE_VAR(OrderBackup, cur_real_order_index, SLE_UINT8),
|
SLE_VAR(OrderBackup, cur_real_order_index, SLE_UINT8),
|
||||||
SLE_CONDVAR(OrderBackup, cur_implicit_order_index, SLE_UINT8, 176, SL_MAX_VERSION),
|
SLE_CONDVAR(OrderBackup, cur_implicit_order_index, SLE_UINT8, SLV_176, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR_X(OrderBackup, cur_timetable_order_index, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA)),
|
SLE_CONDVAR_X(OrderBackup, cur_timetable_order_index, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA)),
|
||||||
SLE_CONDVAR(OrderBackup, current_order_time, SLE_UINT32, 176, SL_MAX_VERSION),
|
SLE_CONDVAR(OrderBackup, current_order_time, SLE_UINT32, SLV_176, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(OrderBackup, lateness_counter, SLE_INT32, 176, SL_MAX_VERSION),
|
SLE_CONDVAR(OrderBackup, lateness_counter, SLE_INT32, SLV_176, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(OrderBackup, timetable_start, SLE_INT32, 176, SL_MAX_VERSION),
|
SLE_CONDVAR(OrderBackup, timetable_start, SLE_INT32, SLV_176, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR_X(OrderBackup,timetable_start_subticks, SLE_UINT16, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLES_START_TICKS, 2)),
|
SLE_CONDVAR_X(OrderBackup,timetable_start_subticks, SLE_UINT16, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLES_START_TICKS, 2)),
|
||||||
SLE_CONDVAR(OrderBackup, vehicle_flags, SLE_FILE_U8 | SLE_VAR_U16, 176, 179),
|
SLE_CONDVAR(OrderBackup, vehicle_flags, SLE_FILE_U8 | SLE_VAR_U16, SLV_176, SLV_180),
|
||||||
SLE_CONDVAR(OrderBackup, vehicle_flags, SLE_UINT16, 180, SL_MAX_VERSION),
|
SLE_CONDVAR(OrderBackup, vehicle_flags, SLE_UINT16, SLV_180, SL_MAX_VERSION),
|
||||||
SLE_REF(OrderBackup, orders, REF_ORDER),
|
SLE_REF(OrderBackup, orders, REF_ORDER),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
@@ -21,7 +21,7 @@ static const SaveLoad _plan_desc[] = {
|
|||||||
SLE_VAR(Plan, visible, SLE_BOOL),
|
SLE_VAR(Plan, visible, SLE_BOOL),
|
||||||
SLE_VAR(Plan, visible_by_all, SLE_BOOL),
|
SLE_VAR(Plan, visible_by_all, SLE_BOOL),
|
||||||
SLE_VAR(Plan, creation_date, SLE_INT32),
|
SLE_VAR(Plan, creation_date, SLE_INT32),
|
||||||
SLE_CONDSTDSTR_X(Plan, name, 0, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_ENH_VIEWPORT_PLANS, 3)),
|
SLE_CONDSTDSTR_X(Plan, name, 0, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_ENH_VIEWPORT_PLANS, 3)),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -21,7 +21,6 @@
|
|||||||
* <li>repeat this until everything is done, and flush any remaining output to file
|
* <li>repeat this until everything is done, and flush any remaining output to file
|
||||||
* </ol>
|
* </ol>
|
||||||
*/
|
*/
|
||||||
#include <deque>
|
|
||||||
|
|
||||||
#include "../stdafx.h"
|
#include "../stdafx.h"
|
||||||
#include "../debug.h"
|
#include "../debug.h"
|
||||||
@@ -57,242 +56,20 @@
|
|||||||
#include "saveload_buffer.h"
|
#include "saveload_buffer.h"
|
||||||
#include "extended_ver_sl.h"
|
#include "extended_ver_sl.h"
|
||||||
|
|
||||||
#include "../safeguards.h"
|
|
||||||
|
|
||||||
#include <deque>
|
#include <deque>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
/*
|
#include "../safeguards.h"
|
||||||
* Previous savegame versions, the trunk revision where they were
|
|
||||||
* introduced and the released version that had that particular
|
extern const SaveLoadVersion SAVEGAME_VERSION = (SaveLoadVersion)(SL_MAX_VERSION - 1); ///< Current savegame version of OpenTTD.
|
||||||
* savegame version.
|
|
||||||
* Up to savegame version 18 there is a minor version as well.
|
const SaveLoadVersion SAVEGAME_VERSION_EXT = (SaveLoadVersion)(0x8000); ///< Savegame extension indicator mask
|
||||||
*
|
|
||||||
* 1.0 0.1.x, 0.2.x
|
|
||||||
* 2.0 0.3.0
|
|
||||||
* 2.1 0.3.1, 0.3.2
|
|
||||||
* 3.x lost
|
|
||||||
* 4.0 1
|
|
||||||
* 4.1 122 0.3.3, 0.3.4
|
|
||||||
* 4.2 1222 0.3.5
|
|
||||||
* 4.3 1417
|
|
||||||
* 4.4 1426
|
|
||||||
* 5.0 1429
|
|
||||||
* 5.1 1440
|
|
||||||
* 5.2 1525 0.3.6
|
|
||||||
* 6.0 1721
|
|
||||||
* 6.1 1768
|
|
||||||
* 7.0 1770
|
|
||||||
* 8.0 1786
|
|
||||||
* 9.0 1909
|
|
||||||
* 10.0 2030
|
|
||||||
* 11.0 2033
|
|
||||||
* 11.1 2041
|
|
||||||
* 12.1 2046
|
|
||||||
* 13.1 2080 0.4.0, 0.4.0.1
|
|
||||||
* 14.0 2441
|
|
||||||
* 15.0 2499
|
|
||||||
* 16.0 2817
|
|
||||||
* 16.1 3155
|
|
||||||
* 17.0 3212
|
|
||||||
* 17.1 3218
|
|
||||||
* 18 3227
|
|
||||||
* 19 3396
|
|
||||||
* 20 3403
|
|
||||||
* 21 3472 0.4.x
|
|
||||||
* 22 3726
|
|
||||||
* 23 3915
|
|
||||||
* 24 4150
|
|
||||||
* 25 4259
|
|
||||||
* 26 4466
|
|
||||||
* 27 4757
|
|
||||||
* 28 4987
|
|
||||||
* 29 5070
|
|
||||||
* 30 5946
|
|
||||||
* 31 5999
|
|
||||||
* 32 6001
|
|
||||||
* 33 6440
|
|
||||||
* 34 6455
|
|
||||||
* 35 6602
|
|
||||||
* 36 6624
|
|
||||||
* 37 7182
|
|
||||||
* 38 7195
|
|
||||||
* 39 7269
|
|
||||||
* 40 7326
|
|
||||||
* 41 7348 0.5.x
|
|
||||||
* 42 7573
|
|
||||||
* 43 7642
|
|
||||||
* 44 8144
|
|
||||||
* 45 8501
|
|
||||||
* 46 8705
|
|
||||||
* 47 8735
|
|
||||||
* 48 8935
|
|
||||||
* 49 8969
|
|
||||||
* 50 8973
|
|
||||||
* 51 8978
|
|
||||||
* 52 9066
|
|
||||||
* 53 9316
|
|
||||||
* 54 9613
|
|
||||||
* 55 9638
|
|
||||||
* 56 9667
|
|
||||||
* 57 9691
|
|
||||||
* 58 9762
|
|
||||||
* 59 9779
|
|
||||||
* 60 9874
|
|
||||||
* 61 9892
|
|
||||||
* 62 9905
|
|
||||||
* 63 9956
|
|
||||||
* 64 10006
|
|
||||||
* 65 10210
|
|
||||||
* 66 10211
|
|
||||||
* 67 10236
|
|
||||||
* 68 10266
|
|
||||||
* 69 10319
|
|
||||||
* 70 10541
|
|
||||||
* 71 10567
|
|
||||||
* 72 10601
|
|
||||||
* 73 10903
|
|
||||||
* 74 11030
|
|
||||||
* 75 11107
|
|
||||||
* 76 11139
|
|
||||||
* 77 11172
|
|
||||||
* 78 11176
|
|
||||||
* 79 11188
|
|
||||||
* 80 11228
|
|
||||||
* 81 11244
|
|
||||||
* 82 11410
|
|
||||||
* 83 11589
|
|
||||||
* 84 11822
|
|
||||||
* 85 11874
|
|
||||||
* 86 12042
|
|
||||||
* 87 12129
|
|
||||||
* 88 12134
|
|
||||||
* 89 12160
|
|
||||||
* 90 12293
|
|
||||||
* 91 12347
|
|
||||||
* 92 12381 0.6.x
|
|
||||||
* 93 12648
|
|
||||||
* 94 12816
|
|
||||||
* 95 12924
|
|
||||||
* 96 13226
|
|
||||||
* 97 13256
|
|
||||||
* 98 13375
|
|
||||||
* 99 13838
|
|
||||||
* 100 13952
|
|
||||||
* 101 14233
|
|
||||||
* 102 14332
|
|
||||||
* 103 14598
|
|
||||||
* 104 14735
|
|
||||||
* 105 14803
|
|
||||||
* 106 14919
|
|
||||||
* 107 15027
|
|
||||||
* 108 15045
|
|
||||||
* 109 15075
|
|
||||||
* 110 15148
|
|
||||||
* 111 15190
|
|
||||||
* 112 15290
|
|
||||||
* 113 15340
|
|
||||||
* 114 15601
|
|
||||||
* 115 15695
|
|
||||||
* 116 15893 0.7.x
|
|
||||||
* 117 16037
|
|
||||||
* 118 16129
|
|
||||||
* 119 16242
|
|
||||||
* 120 16439
|
|
||||||
* 121 16694
|
|
||||||
* 122 16855
|
|
||||||
* 123 16909
|
|
||||||
* 124 16993
|
|
||||||
* 125 17113
|
|
||||||
* 126 17433
|
|
||||||
* 127 17439
|
|
||||||
* 128 18281
|
|
||||||
* 129 18292
|
|
||||||
* 130 18404
|
|
||||||
* 131 18481
|
|
||||||
* 132 18522
|
|
||||||
* 133 18674
|
|
||||||
* 134 18703
|
|
||||||
* 135 18719
|
|
||||||
* 136 18764
|
|
||||||
* 137 18912
|
|
||||||
* 138 18942 1.0.x
|
|
||||||
* 139 19346
|
|
||||||
* 140 19382
|
|
||||||
* 141 19799
|
|
||||||
* 142 20003
|
|
||||||
* 143 20048
|
|
||||||
* 144 20334
|
|
||||||
* 145 20376
|
|
||||||
* 146 20446
|
|
||||||
* 147 20621
|
|
||||||
* 148 20659
|
|
||||||
* 149 20832
|
|
||||||
* 150 20857
|
|
||||||
* 151 20918
|
|
||||||
* 152 21171
|
|
||||||
* 153 21263
|
|
||||||
* 154 21426
|
|
||||||
* 155 21453
|
|
||||||
* 156 21728
|
|
||||||
* 157 21862
|
|
||||||
* 158 21933
|
|
||||||
* 159 21962
|
|
||||||
* 160 21974 1.1.x
|
|
||||||
* 161 22567
|
|
||||||
* 162 22713
|
|
||||||
* 163 22767
|
|
||||||
* 164 23290
|
|
||||||
* 165 23304
|
|
||||||
* 166 23415
|
|
||||||
* 167 23504
|
|
||||||
* 168 23637
|
|
||||||
* 169 23816
|
|
||||||
* 170 23826
|
|
||||||
* 171 23835
|
|
||||||
* 172 23947
|
|
||||||
* 173 23967 1.2.0-RC1
|
|
||||||
* 174 23973 1.2.x
|
|
||||||
* 175 24136
|
|
||||||
* 176 24446
|
|
||||||
* 177 24619
|
|
||||||
* 178 24789
|
|
||||||
* 179 24810
|
|
||||||
* 180 24998 1.3.x
|
|
||||||
* 181 25012
|
|
||||||
* 182 25296
|
|
||||||
* 183 25363
|
|
||||||
* 184 25508
|
|
||||||
* 185 25620
|
|
||||||
* 186 25833
|
|
||||||
* 187 25899
|
|
||||||
* 188 26169 1.4.x
|
|
||||||
* 189 26450
|
|
||||||
* 190 26547
|
|
||||||
* 191 26646
|
|
||||||
* 192 26700
|
|
||||||
* 193 26802
|
|
||||||
* 194 26881 1.5.x, 1.6.0
|
|
||||||
* 195 27572 1.6.x
|
|
||||||
* 196 27778 1.7.x
|
|
||||||
* 197 27978 1.8.x
|
|
||||||
* 198
|
|
||||||
* 199
|
|
||||||
* 200 #6805 Extend railtypes to 64, adding uint16 to map array.
|
|
||||||
* 201 #6885 Extend NewGRF persistant storages.
|
|
||||||
* 202 #6867 Increase industry cargo slots to 16 in, 16 out
|
|
||||||
* 203 #7072 Add path cache for ships
|
|
||||||
* 204 #7065 Add extra rotation stages for ships.
|
|
||||||
* 205 #7108 Livery storage change and group liveries.
|
|
||||||
*/
|
|
||||||
extern const uint16 SAVEGAME_VERSION = 205; ///< Current savegame version of OpenTTD.
|
|
||||||
const uint16 SAVEGAME_VERSION_EXT = 0x8000; ///< Savegame extension indicator mask
|
|
||||||
|
|
||||||
SavegameType _savegame_type; ///< type of savegame we are loading
|
SavegameType _savegame_type; ///< type of savegame we are loading
|
||||||
FileToSaveLoad _file_to_saveload; ///< File to save or load in the openttd loop.
|
FileToSaveLoad _file_to_saveload; ///< File to save or load in the openttd loop.
|
||||||
|
|
||||||
uint32 _ttdp_version; ///< version of TTDP savegame (if applicable)
|
uint32 _ttdp_version; ///< version of TTDP savegame (if applicable)
|
||||||
uint16 _sl_version; ///< the major savegame version identifier
|
SaveLoadVersion _sl_version; ///< the major savegame version identifier
|
||||||
byte _sl_minor_version; ///< the minor savegame version, DO NOT USE!
|
byte _sl_minor_version; ///< the minor savegame version, DO NOT USE!
|
||||||
char _savegame_format[8]; ///< how to compress savegames
|
char _savegame_format[8]; ///< how to compress savegames
|
||||||
bool _do_autosave; ///< are we doing an autosave at the moment?
|
bool _do_autosave; ///< are we doing an autosave at the moment?
|
||||||
@@ -912,7 +689,7 @@ static inline byte SlCalcConvFileLen(VarType conv)
|
|||||||
/** Return the size in bytes of a reference (pointer) */
|
/** Return the size in bytes of a reference (pointer) */
|
||||||
static inline size_t SlCalcRefLen()
|
static inline size_t SlCalcRefLen()
|
||||||
{
|
{
|
||||||
return IsSavegameVersionBefore(69) ? 2 : 4;
|
return IsSavegameVersionBefore(SLV_69) ? 2 : 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SlSetArrayIndex(uint index)
|
void SlSetArrayIndex(uint index)
|
||||||
@@ -1272,7 +1049,7 @@ static void SlString(void *ptr, size_t length, VarType conv)
|
|||||||
StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK;
|
StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK;
|
||||||
if ((conv & SLF_ALLOW_CONTROL) != 0) {
|
if ((conv & SLF_ALLOW_CONTROL) != 0) {
|
||||||
settings = settings | SVS_ALLOW_CONTROL_CODE;
|
settings = settings | SVS_ALLOW_CONTROL_CODE;
|
||||||
if (IsSavegameVersionBefore(169)) {
|
if (IsSavegameVersionBefore(SLV_169)) {
|
||||||
str_fix_scc_encoded((char *)ptr, (char *)ptr + len);
|
str_fix_scc_encoded((char *)ptr, (char *)ptr + len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1435,7 +1212,7 @@ static void *IntToReference(size_t index, SLRefType rt)
|
|||||||
|
|
||||||
/* After version 4.3 REF_VEHICLE_OLD is saved as REF_VEHICLE,
|
/* After version 4.3 REF_VEHICLE_OLD is saved as REF_VEHICLE,
|
||||||
* and should be loaded like that */
|
* and should be loaded like that */
|
||||||
if (rt == REF_VEHICLE_OLD && !IsSavegameVersionBefore(4, 4)) {
|
if (rt == REF_VEHICLE_OLD && !IsSavegameVersionBefore(SLV_4, 4)) {
|
||||||
rt = REF_VEHICLE;
|
rt = REF_VEHICLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1454,7 +1231,7 @@ static void *IntToReference(size_t index, SLRefType rt)
|
|||||||
case REF_ORDER:
|
case REF_ORDER:
|
||||||
if (Order::IsValidID(index)) return Order::Get(index);
|
if (Order::IsValidID(index)) return Order::Get(index);
|
||||||
/* in old versions, invalid order was used to mark end of order list */
|
/* in old versions, invalid order was used to mark end of order list */
|
||||||
if (IsSavegameVersionBefore(5, 2)) return NULL;
|
if (IsSavegameVersionBefore(SLV_5, 2)) return NULL;
|
||||||
SlErrorCorrupt("Referencing invalid Order");
|
SlErrorCorrupt("Referencing invalid Order");
|
||||||
|
|
||||||
case REF_VEHICLE_OLD:
|
case REF_VEHICLE_OLD:
|
||||||
@@ -1515,7 +1292,7 @@ static inline size_t SlCalcListLen(const void *list)
|
|||||||
{
|
{
|
||||||
const PtrList *l = (const PtrList *) list;
|
const PtrList *l = (const PtrList *) list;
|
||||||
|
|
||||||
int type_size = IsSavegameVersionBefore(69) ? 2 : 4;
|
int type_size = IsSavegameVersionBefore(SLV_69) ? 2 : 4;
|
||||||
/* Each entry is saved as type_size bytes, plus type_size bytes are used for the length
|
/* Each entry is saved as type_size bytes, plus type_size bytes are used for the length
|
||||||
* of the list */
|
* of the list */
|
||||||
return l->size() * type_size + type_size;
|
return l->size() * type_size + type_size;
|
||||||
@@ -1562,11 +1339,11 @@ static void SlList(void *list, SLRefType conv)
|
|||||||
}
|
}
|
||||||
case SLA_LOAD_CHECK:
|
case SLA_LOAD_CHECK:
|
||||||
case SLA_LOAD: {
|
case SLA_LOAD: {
|
||||||
size_t length = IsSavegameVersionBefore(69) ? SlReadUint16() : SlReadUint32();
|
size_t length = IsSavegameVersionBefore(SLV_69) ? SlReadUint16() : SlReadUint32();
|
||||||
|
|
||||||
/* Load each reference and push to the end of the list */
|
/* Load each reference and push to the end of the list */
|
||||||
for (size_t i = 0; i < length; i++) {
|
for (size_t i = 0; i < length; i++) {
|
||||||
size_t data = IsSavegameVersionBefore(69) ? SlReadUint16() : SlReadUint32();
|
size_t data = IsSavegameVersionBefore(SLV_69) ? SlReadUint16() : SlReadUint32();
|
||||||
l->push_back((void *)data);
|
l->push_back((void *)data);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -1928,7 +1705,7 @@ bool SlObjectMember(void *ptr, const SaveLoad *sld)
|
|||||||
break;
|
break;
|
||||||
case SLA_LOAD_CHECK:
|
case SLA_LOAD_CHECK:
|
||||||
case SLA_LOAD:
|
case SLA_LOAD:
|
||||||
*(size_t *)ptr = IsSavegameVersionBefore(69) ? SlReadUint16() : SlReadUint32();
|
*(size_t *)ptr = IsSavegameVersionBefore(SLV_69) ? SlReadUint16() : SlReadUint32();
|
||||||
break;
|
break;
|
||||||
case SLA_PTRS:
|
case SLA_PTRS:
|
||||||
*(void **)ptr = IntToReference(*(size_t *)ptr, (SLRefType)conv);
|
*(void **)ptr = IntToReference(*(size_t *)ptr, (SLRefType)conv);
|
||||||
@@ -2427,7 +2204,7 @@ struct LZOLoadFilter : LoadFilter {
|
|||||||
/* Check if size is bad */
|
/* Check if size is bad */
|
||||||
((uint32*)out)[0] = size = tmp[1];
|
((uint32*)out)[0] = size = tmp[1];
|
||||||
|
|
||||||
if (_sl_version != 0) {
|
if (_sl_version != SL_MIN_VERSION) {
|
||||||
tmp[0] = TO_BE32(tmp[0]);
|
tmp[0] = TO_BE32(tmp[0]);
|
||||||
size = TO_BE32(size);
|
size = TO_BE32(size);
|
||||||
}
|
}
|
||||||
@@ -3077,7 +2854,7 @@ static SaveOrLoadResult DoLoad(LoadFilter *reader, bool load_check)
|
|||||||
if (fmt == endof(_saveload_formats)) {
|
if (fmt == endof(_saveload_formats)) {
|
||||||
DEBUG(sl, 0, "Unknown savegame type, trying to load it as the buggy format");
|
DEBUG(sl, 0, "Unknown savegame type, trying to load it as the buggy format");
|
||||||
_sl.lf->Reset();
|
_sl.lf->Reset();
|
||||||
_sl_version = 0;
|
_sl_version = SL_MIN_VERSION;
|
||||||
_sl_minor_version = 0;
|
_sl_minor_version = 0;
|
||||||
SlXvResetState();
|
SlXvResetState();
|
||||||
|
|
||||||
@@ -3096,14 +2873,14 @@ static SaveOrLoadResult DoLoad(LoadFilter *reader, bool load_check)
|
|||||||
|
|
||||||
if (fmt->tag == hdr[0]) {
|
if (fmt->tag == hdr[0]) {
|
||||||
/* check version number */
|
/* check version number */
|
||||||
_sl_version = TO_BE32(hdr[1]) >> 16;
|
_sl_version = (SaveLoadVersion)(TO_BE32(hdr[1]) >> 16);
|
||||||
/* Minor is not used anymore from version 18.0, but it is still needed
|
/* Minor is not used anymore from version 18.0, but it is still needed
|
||||||
* in versions before that (4 cases) which can't be removed easy.
|
* in versions before that (4 cases) which can't be removed easy.
|
||||||
* Therefore it is loaded, but never saved (or, it saves a 0 in any scenario). */
|
* Therefore it is loaded, but never saved (or, it saves a 0 in any scenario). */
|
||||||
_sl_minor_version = (TO_BE32(hdr[1]) >> 8) & 0xFF;
|
_sl_minor_version = (TO_BE32(hdr[1]) >> 8) & 0xFF;
|
||||||
|
|
||||||
if (_sl_version & SAVEGAME_VERSION_EXT) {
|
if (_sl_version & SAVEGAME_VERSION_EXT) {
|
||||||
_sl_version &= ~SAVEGAME_VERSION_EXT;
|
_sl_version = (SaveLoadVersion)(_sl_version & ~SAVEGAME_VERSION_EXT);
|
||||||
_sl_is_ext_version = true;
|
_sl_is_ext_version = true;
|
||||||
} else {
|
} else {
|
||||||
SlXvCheckSpecialSavegameVersions();
|
SlXvCheckSpecialSavegameVersions();
|
||||||
@@ -3138,7 +2915,7 @@ static SaveOrLoadResult DoLoad(LoadFilter *reader, bool load_check)
|
|||||||
|
|
||||||
GamelogReset();
|
GamelogReset();
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(4)) {
|
if (IsSavegameVersionBefore(SLV_4)) {
|
||||||
/*
|
/*
|
||||||
* NewGRFs were introduced between 0.3,4 and 0.3.5, which both
|
* NewGRFs were introduced between 0.3,4 and 0.3.5, which both
|
||||||
* shared savegame version 4. Anything before that 'obviously'
|
* shared savegame version 4. Anything before that 'obviously'
|
||||||
@@ -3245,7 +3022,7 @@ SaveOrLoadResult SaveOrLoad(const char *filename, SaveLoadOperation fop, Detaile
|
|||||||
ClearGRFConfigList(&_grfconfig);
|
ClearGRFConfigList(&_grfconfig);
|
||||||
GamelogReset();
|
GamelogReset();
|
||||||
if (!LoadOldSaveGame(filename)) return SL_REINIT;
|
if (!LoadOldSaveGame(filename)) return SL_REINIT;
|
||||||
_sl_version = 0;
|
_sl_version = SL_MIN_VERSION;
|
||||||
_sl_minor_version = 0;
|
_sl_minor_version = 0;
|
||||||
SlXvResetState();
|
SlXvResetState();
|
||||||
GamelogStartAction(GLAT_LOAD);
|
GamelogStartAction(GLAT_LOAD);
|
||||||
|
@@ -18,6 +18,284 @@
|
|||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
/** SaveLoad versions
|
||||||
|
* Previous savegame versions, the trunk revision where they were
|
||||||
|
* introduced and the released version that had that particular
|
||||||
|
* savegame version.
|
||||||
|
* Up to savegame version 18 there is a minor version as well.
|
||||||
|
*
|
||||||
|
* Older entries keep their original numbering.
|
||||||
|
*
|
||||||
|
* Newer entries should use a descriptive labels, numeric version
|
||||||
|
* and PR can be added to comment.
|
||||||
|
*
|
||||||
|
* Note that this list must not be reordered.
|
||||||
|
*/
|
||||||
|
enum SaveLoadVersion : uint16 {
|
||||||
|
SL_MIN_VERSION, ///< First savegame version
|
||||||
|
|
||||||
|
SLV_1, ///< 1.0 0.1.x, 0.2.x
|
||||||
|
SLV_2, /**< 2.0 0.3.0
|
||||||
|
* 2.1 0.3.1, 0.3.2 */
|
||||||
|
SLV_3, ///< 3.x lost
|
||||||
|
SLV_4, /**< 4.0 1
|
||||||
|
* 4.1 122 0.3.3, 0.3.4
|
||||||
|
* 4.2 1222 0.3.5
|
||||||
|
* 4.3 1417
|
||||||
|
* 4.4 1426 */
|
||||||
|
|
||||||
|
SLV_5, /**< 5.0 1429
|
||||||
|
* 5.1 1440
|
||||||
|
* 5.2 1525 0.3.6 */
|
||||||
|
SLV_6, /**< 6.0 1721
|
||||||
|
* 6.1 1768 */
|
||||||
|
SLV_7, ///< 7.0 1770
|
||||||
|
SLV_8, ///< 8.0 1786
|
||||||
|
SLV_9, ///< 9.0 1909
|
||||||
|
|
||||||
|
SLV_10, ///< 10.0 2030
|
||||||
|
SLV_11, /**< 11.0 2033
|
||||||
|
* 11.1 2041 */
|
||||||
|
SLV_12, ///< 12.1 2046
|
||||||
|
SLV_13, ///< 13.1 2080 0.4.0, 0.4.0.1
|
||||||
|
SLV_14, ///< 14.0 2441
|
||||||
|
|
||||||
|
SLV_15, ///< 15.0 2499
|
||||||
|
SLV_16, /**< 16.0 2817
|
||||||
|
* 16.1 3155 */
|
||||||
|
SLV_17, /**< 17.0 3212
|
||||||
|
* 17.1 3218 */
|
||||||
|
SLV_18, ///< 18 3227
|
||||||
|
SLV_19, ///< 19 3396
|
||||||
|
|
||||||
|
SLV_20, ///< 20 3403
|
||||||
|
SLV_21, ///< 21 3472 0.4.x
|
||||||
|
SLV_22, ///< 22 3726
|
||||||
|
SLV_23, ///< 23 3915
|
||||||
|
SLV_24, ///< 24 4150
|
||||||
|
|
||||||
|
SLV_25, ///< 25 4259
|
||||||
|
SLV_26, ///< 26 4466
|
||||||
|
SLV_27, ///< 27 4757
|
||||||
|
SLV_28, ///< 28 4987
|
||||||
|
SLV_29, ///< 29 5070
|
||||||
|
|
||||||
|
SLV_30, ///< 30 5946
|
||||||
|
SLV_31, ///< 31 5999
|
||||||
|
SLV_32, ///< 32 6001
|
||||||
|
SLV_33, ///< 33 6440
|
||||||
|
SLV_34, ///< 34 6455
|
||||||
|
|
||||||
|
SLV_35, ///< 35 6602
|
||||||
|
SLV_36, ///< 36 6624
|
||||||
|
SLV_37, ///< 37 7182
|
||||||
|
SLV_38, ///< 38 7195
|
||||||
|
SLV_39, ///< 39 7269
|
||||||
|
|
||||||
|
SLV_40, ///< 40 7326
|
||||||
|
SLV_41, ///< 41 7348 0.5.x
|
||||||
|
SLV_42, ///< 42 7573
|
||||||
|
SLV_43, ///< 43 7642
|
||||||
|
SLV_44, ///< 44 8144
|
||||||
|
|
||||||
|
SLV_45, ///< 45 8501
|
||||||
|
SLV_46, ///< 46 8705
|
||||||
|
SLV_47, ///< 47 8735
|
||||||
|
SLV_48, ///< 48 8935
|
||||||
|
SLV_49, ///< 49 8969
|
||||||
|
|
||||||
|
SLV_50, ///< 50 8973
|
||||||
|
SLV_51, ///< 51 8978
|
||||||
|
SLV_52, ///< 52 9066
|
||||||
|
SLV_53, ///< 53 9316
|
||||||
|
SLV_54, ///< 54 9613
|
||||||
|
|
||||||
|
SLV_55, ///< 55 9638
|
||||||
|
SLV_56, ///< 56 9667
|
||||||
|
SLV_57, ///< 57 9691
|
||||||
|
SLV_58, ///< 58 9762
|
||||||
|
SLV_59, ///< 59 9779
|
||||||
|
|
||||||
|
SLV_60, ///< 60 9874
|
||||||
|
SLV_61, ///< 61 9892
|
||||||
|
SLV_62, ///< 62 9905
|
||||||
|
SLV_63, ///< 63 9956
|
||||||
|
SLV_64, ///< 64 10006
|
||||||
|
|
||||||
|
SLV_65, ///< 65 10210
|
||||||
|
SLV_66, ///< 66 10211
|
||||||
|
SLV_67, ///< 67 10236
|
||||||
|
SLV_68, ///< 68 10266
|
||||||
|
SLV_69, ///< 69 10319
|
||||||
|
|
||||||
|
SLV_70, ///< 70 10541
|
||||||
|
SLV_71, ///< 71 10567
|
||||||
|
SLV_72, ///< 72 10601
|
||||||
|
SLV_73, ///< 73 10903
|
||||||
|
SLV_74, ///< 74 11030
|
||||||
|
|
||||||
|
SLV_75, ///< 75 11107
|
||||||
|
SLV_76, ///< 76 11139
|
||||||
|
SLV_77, ///< 77 11172
|
||||||
|
SLV_78, ///< 78 11176
|
||||||
|
SLV_79, ///< 79 11188
|
||||||
|
|
||||||
|
SLV_80, ///< 80 11228
|
||||||
|
SLV_81, ///< 81 11244
|
||||||
|
SLV_82, ///< 82 11410
|
||||||
|
SLV_83, ///< 83 11589
|
||||||
|
SLV_84, ///< 84 11822
|
||||||
|
|
||||||
|
SLV_85, ///< 85 11874
|
||||||
|
SLV_86, ///< 86 12042
|
||||||
|
SLV_87, ///< 87 12129
|
||||||
|
SLV_88, ///< 88 12134
|
||||||
|
SLV_89, ///< 89 12160
|
||||||
|
|
||||||
|
SLV_90, ///< 90 12293
|
||||||
|
SLV_91, ///< 91 12347
|
||||||
|
SLV_92, ///< 92 12381 0.6.x
|
||||||
|
SLV_93, ///< 93 12648
|
||||||
|
SLV_94, ///< 94 12816
|
||||||
|
|
||||||
|
SLV_95, ///< 95 12924
|
||||||
|
SLV_96, ///< 96 13226
|
||||||
|
SLV_97, ///< 97 13256
|
||||||
|
SLV_98, ///< 98 13375
|
||||||
|
SLV_99, ///< 99 13838
|
||||||
|
|
||||||
|
SLV_100, ///< 100 13952
|
||||||
|
SLV_101, ///< 101 14233
|
||||||
|
SLV_102, ///< 102 14332
|
||||||
|
SLV_103, ///< 103 14598
|
||||||
|
SLV_104, ///< 104 14735
|
||||||
|
|
||||||
|
SLV_105, ///< 105 14803
|
||||||
|
SLV_106, ///< 106 14919
|
||||||
|
SLV_107, ///< 107 15027
|
||||||
|
SLV_108, ///< 108 15045
|
||||||
|
SLV_109, ///< 109 15075
|
||||||
|
|
||||||
|
SLV_110, ///< 110 15148
|
||||||
|
SLV_111, ///< 111 15190
|
||||||
|
SLV_112, ///< 112 15290
|
||||||
|
SLV_113, ///< 113 15340
|
||||||
|
SLV_114, ///< 114 15601
|
||||||
|
|
||||||
|
SLV_115, ///< 115 15695
|
||||||
|
SLV_116, ///< 116 15893 0.7.x
|
||||||
|
SLV_117, ///< 117 16037
|
||||||
|
SLV_118, ///< 118 16129
|
||||||
|
SLV_119, ///< 119 16242
|
||||||
|
|
||||||
|
SLV_120, ///< 120 16439
|
||||||
|
SLV_121, ///< 121 16694
|
||||||
|
SLV_122, ///< 122 16855
|
||||||
|
SLV_123, ///< 123 16909
|
||||||
|
SLV_124, ///< 124 16993
|
||||||
|
|
||||||
|
SLV_125, ///< 125 17113
|
||||||
|
SLV_126, ///< 126 17433
|
||||||
|
SLV_127, ///< 127 17439
|
||||||
|
SLV_128, ///< 128 18281
|
||||||
|
SLV_129, ///< 129 18292
|
||||||
|
|
||||||
|
SLV_130, ///< 130 18404
|
||||||
|
SLV_131, ///< 131 18481
|
||||||
|
SLV_132, ///< 132 18522
|
||||||
|
SLV_133, ///< 133 18674
|
||||||
|
SLV_134, ///< 134 18703
|
||||||
|
|
||||||
|
SLV_135, ///< 135 18719
|
||||||
|
SLV_136, ///< 136 18764
|
||||||
|
SLV_137, ///< 137 18912
|
||||||
|
SLV_138, ///< 138 18942 1.0.x
|
||||||
|
SLV_139, ///< 139 19346
|
||||||
|
|
||||||
|
SLV_140, ///< 140 19382
|
||||||
|
SLV_141, ///< 141 19799
|
||||||
|
SLV_142, ///< 142 20003
|
||||||
|
SLV_143, ///< 143 20048
|
||||||
|
SLV_144, ///< 144 20334
|
||||||
|
|
||||||
|
SLV_145, ///< 145 20376
|
||||||
|
SLV_146, ///< 146 20446
|
||||||
|
SLV_147, ///< 147 20621
|
||||||
|
SLV_148, ///< 148 20659
|
||||||
|
SLV_149, ///< 149 20832
|
||||||
|
|
||||||
|
SLV_150, ///< 150 20857
|
||||||
|
SLV_151, ///< 151 20918
|
||||||
|
SLV_152, ///< 152 21171
|
||||||
|
SLV_153, ///< 153 21263
|
||||||
|
SLV_154, ///< 154 21426
|
||||||
|
|
||||||
|
SLV_155, ///< 155 21453
|
||||||
|
SLV_156, ///< 156 21728
|
||||||
|
SLV_157, ///< 157 21862
|
||||||
|
SLV_158, ///< 158 21933
|
||||||
|
SLV_159, ///< 159 21962
|
||||||
|
|
||||||
|
SLV_160, ///< 160 21974 1.1.x
|
||||||
|
SLV_161, ///< 161 22567
|
||||||
|
SLV_162, ///< 162 22713
|
||||||
|
SLV_163, ///< 163 22767
|
||||||
|
SLV_164, ///< 164 23290
|
||||||
|
|
||||||
|
SLV_165, ///< 165 23304
|
||||||
|
SLV_166, ///< 166 23415
|
||||||
|
SLV_167, ///< 167 23504
|
||||||
|
SLV_168, ///< 168 23637
|
||||||
|
SLV_169, ///< 169 23816
|
||||||
|
|
||||||
|
SLV_170, ///< 170 23826
|
||||||
|
SLV_171, ///< 171 23835
|
||||||
|
SLV_172, ///< 172 23947
|
||||||
|
SLV_173, ///< 173 23967 1.2.0-RC1
|
||||||
|
SLV_174, ///< 174 23973 1.2.x
|
||||||
|
|
||||||
|
SLV_175, ///< 175 24136
|
||||||
|
SLV_176, ///< 176 24446
|
||||||
|
SLV_177, ///< 177 24619
|
||||||
|
SLV_178, ///< 178 24789
|
||||||
|
SLV_179, ///< 179 24810
|
||||||
|
|
||||||
|
SLV_180, ///< 180 24998 1.3.x
|
||||||
|
SLV_181, ///< 181 25012
|
||||||
|
SLV_182, ///< 182 25115 FS#5492, r25259, r25296 Goal status
|
||||||
|
SLV_183, ///< 183 25363 Cargodist
|
||||||
|
SLV_184, ///< 184 25508 Unit localisation split
|
||||||
|
|
||||||
|
SLV_185, ///< 185 25620 Storybooks
|
||||||
|
SLV_186, ///< 186 25833 Objects storage
|
||||||
|
SLV_187, ///< 187 25899 Linkgraph - restricted flows
|
||||||
|
SLV_188, ///< 188 26169 FS#5831 Unify RV travel time
|
||||||
|
SLV_189, ///< 189 26450 Heirarchical vehicle subgroups
|
||||||
|
|
||||||
|
SLV_190, ///< 190 26547 Separate order travel and wait times
|
||||||
|
SLV_191, ///< 191 26636 FS#6026 Fix disaster vehicle storage (No bump)
|
||||||
|
///< 191 26646 FS#6041 Linkgraph - store locations
|
||||||
|
SLV_192, ///< 192 26700 FS#6066 Fix saving of order backups
|
||||||
|
SLV_193, ///< 193 26802
|
||||||
|
SLV_194, ///< 194 26881 v1.5
|
||||||
|
|
||||||
|
SLV_195, ///< 195 27572 v1.6.1
|
||||||
|
SLV_196, ///< 196 27778 v1.7
|
||||||
|
SLV_197, ///< 197 27978 v1.8
|
||||||
|
SLV_198, ///< 198 PR#6763 Switch town growth rate and counter to actual game ticks
|
||||||
|
SLV_EXTEND_CARGOTYPES, ///< 199 PR#6802 Extend cargotypes to 64
|
||||||
|
|
||||||
|
SLV_EXTEND_RAILTYPES, ///< 200 PR#6805 Extend railtypes to 64, adding uint16 to map array.
|
||||||
|
SLV_EXTEND_PERSISTENT_STORAGE, ///< 201 PR#6885 Extend NewGRF persistant storages.
|
||||||
|
SLV_EXTEND_INDUSTRY_CARGO_SLOTS, ///< 202 PR#6867 Increase industry cargo slots to 16 in, 16 out
|
||||||
|
SLV_SHIP_PATH_CACHE, ///< 203 PR#7072 Add path cache for ships
|
||||||
|
SLV_SHIP_ROTATION, ///< 204 PR#7065 Add extra rotation stages for ships.
|
||||||
|
|
||||||
|
SLV_GROUP_LIVERIES, ///< 205 PR#7108 Livery storage change and group liveries.
|
||||||
|
|
||||||
|
SL_MAX_VERSION, ///< Highest possible saveload version
|
||||||
|
};
|
||||||
|
|
||||||
/** Save or load result codes. */
|
/** Save or load result codes. */
|
||||||
enum SaveOrLoadResult {
|
enum SaveOrLoadResult {
|
||||||
SL_OK = 0, ///< completed successfully
|
SL_OK = 0, ///< completed successfully
|
||||||
@@ -97,9 +375,6 @@ enum SLRefType {
|
|||||||
REF_DOCKS = 13, ///< Load/save a reference to a dock.
|
REF_DOCKS = 13, ///< Load/save a reference to a dock.
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Highest possible savegame version. */
|
|
||||||
#define SL_MAX_VERSION UINT16_MAX
|
|
||||||
|
|
||||||
/** Flags of a chunk. */
|
/** Flags of a chunk. */
|
||||||
enum ChunkType {
|
enum ChunkType {
|
||||||
CH_RIFF = 0,
|
CH_RIFF = 0,
|
||||||
@@ -228,8 +503,8 @@ struct SaveLoad {
|
|||||||
SaveLoadType cmd; ///< the action to take with the saved/loaded type, All types need different action
|
SaveLoadType cmd; ///< the action to take with the saved/loaded type, All types need different action
|
||||||
VarType conv; ///< type of the variable to be saved, int
|
VarType conv; ///< type of the variable to be saved, int
|
||||||
uint16 length; ///< (conditional) length of the variable (eg. arrays) (max array size is 65536 elements)
|
uint16 length; ///< (conditional) length of the variable (eg. arrays) (max array size is 65536 elements)
|
||||||
uint16 version_from; ///< save/load the variable starting from this savegame version
|
SaveLoadVersion version_from; ///< save/load the variable starting from this savegame version
|
||||||
uint16 version_to; ///< save/load the variable until this savegame version
|
SaveLoadVersion version_to; ///< save/load the variable until this savegame version
|
||||||
/* NOTE: This element either denotes the address of the variable for a global
|
/* NOTE: This element either denotes the address of the variable for a global
|
||||||
* variable, or the offset within a struct which is then bound to a variable
|
* variable, or the offset within a struct which is then bound to a variable
|
||||||
* during runtime. Decision on which one to use is controlled by the function
|
* during runtime. Decision on which one to use is controlled by the function
|
||||||
@@ -384,7 +659,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
|||||||
* @param variable Name of the variable in the class or struct referenced by \a base.
|
* @param variable Name of the variable in the class or struct referenced by \a base.
|
||||||
* @param type Storage of the data in memory and in the savegame.
|
* @param type Storage of the data in memory and in the savegame.
|
||||||
*/
|
*/
|
||||||
#define SLE_VAR(base, variable, type) SLE_CONDVAR(base, variable, type, 0, SL_MAX_VERSION)
|
#define SLE_VAR(base, variable, type) SLE_CONDVAR(base, variable, type, SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Storage of a reference in every version of a savegame.
|
* Storage of a reference in every version of a savegame.
|
||||||
@@ -392,7 +667,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
|||||||
* @param variable Name of the variable in the class or struct referenced by \a base.
|
* @param variable Name of the variable in the class or struct referenced by \a base.
|
||||||
* @param type Type of the reference, a value from #SLRefType.
|
* @param type Type of the reference, a value from #SLRefType.
|
||||||
*/
|
*/
|
||||||
#define SLE_REF(base, variable, type) SLE_CONDREF(base, variable, type, 0, SL_MAX_VERSION)
|
#define SLE_REF(base, variable, type) SLE_CONDREF(base, variable, type, SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Storage of an array in every version of a savegame.
|
* Storage of an array in every version of a savegame.
|
||||||
@@ -401,7 +676,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
|||||||
* @param type Storage of the data in memory and in the savegame.
|
* @param type Storage of the data in memory and in the savegame.
|
||||||
* @param length Number of elements in the array.
|
* @param length Number of elements in the array.
|
||||||
*/
|
*/
|
||||||
#define SLE_ARR(base, variable, type, length) SLE_CONDARR(base, variable, type, length, 0, SL_MAX_VERSION)
|
#define SLE_ARR(base, variable, type, length) SLE_CONDARR(base, variable, type, length, SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Storage of a string in every savegame version.
|
* Storage of a string in every savegame version.
|
||||||
@@ -410,7 +685,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
|||||||
* @param type Storage of the data in memory and in the savegame.
|
* @param type Storage of the data in memory and in the savegame.
|
||||||
* @param length Number of elements in the string (only used for fixed size buffers).
|
* @param length Number of elements in the string (only used for fixed size buffers).
|
||||||
*/
|
*/
|
||||||
#define SLE_STR(base, variable, type, length) SLE_CONDSTR(base, variable, type, length, 0, SL_MAX_VERSION)
|
#define SLE_STR(base, variable, type, length) SLE_CONDSTR(base, variable, type, length, SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Storage of a std::string in every savegame version.
|
* Storage of a std::string in every savegame version.
|
||||||
@@ -418,7 +693,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
|||||||
* @param variable Name of the variable in the class or struct referenced by \a base.
|
* @param variable Name of the variable in the class or struct referenced by \a base.
|
||||||
* @param type Storage of the data in memory and in the savegame.
|
* @param type Storage of the data in memory and in the savegame.
|
||||||
*/
|
*/
|
||||||
#define SLE_STDSTR(base, variable, type) SLE_CONDSTDSTR(base, variable, type, 0, SL_MAX_VERSION)
|
#define SLE_STDSTR(base, variable, type) SLE_CONDSTDSTR(base, variable, type, SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Storage of a list in every savegame version.
|
* Storage of a list in every savegame version.
|
||||||
@@ -426,7 +701,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
|||||||
* @param variable Name of the variable in the class or struct referenced by \a base.
|
* @param variable Name of the variable in the class or struct referenced by \a base.
|
||||||
* @param type Storage of the data in memory and in the savegame.
|
* @param type Storage of the data in memory and in the savegame.
|
||||||
*/
|
*/
|
||||||
#define SLE_LST(base, variable, type) SLE_CONDLST(base, variable, type, 0, SL_MAX_VERSION)
|
#define SLE_LST(base, variable, type) SLE_CONDLST(base, variable, type, SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Storage of a deque in every savegame version.
|
* Storage of a deque in every savegame version.
|
||||||
@@ -434,7 +709,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
|||||||
* @param variable Name of the variable in the class or struct referenced by \a base.
|
* @param variable Name of the variable in the class or struct referenced by \a base.
|
||||||
* @param type Storage of the data in memory and in the savegame.
|
* @param type Storage of the data in memory and in the savegame.
|
||||||
*/
|
*/
|
||||||
#define SLE_PTRDEQ(base, variable, type) SLE_CONDPTRDEQ(base, variable, type, 0, SL_MAX_VERSION)
|
#define SLE_PTRDEQ(base, variable, type) SLE_CONDPTRDEQ(base, variable, type, SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Storage of a vector in every savegame version.
|
* Storage of a vector in every savegame version.
|
||||||
@@ -442,13 +717,13 @@ typedef SaveLoad SaveLoadGlobVarList;
|
|||||||
* @param variable Name of the variable in the class or struct referenced by \a base.
|
* @param variable Name of the variable in the class or struct referenced by \a base.
|
||||||
* @param type Storage of the data in memory and in the savegame.
|
* @param type Storage of the data in memory and in the savegame.
|
||||||
*/
|
*/
|
||||||
#define SLE_VEC(base, variable, type) SLE_CONDVEC(base, variable, type, 0, SL_MAX_VERSION)
|
#define SLE_VEC(base, variable, type) SLE_CONDVEC(base, variable, type, SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Empty space in every savegame version.
|
* Empty space in every savegame version.
|
||||||
* @param length Length of the empty space.
|
* @param length Length of the empty space.
|
||||||
*/
|
*/
|
||||||
#define SLE_NULL(length) SLE_CONDNULL(length, 0, SL_MAX_VERSION)
|
#define SLE_NULL(length) SLE_CONDNULL(length, SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Empty space in some savegame versions.
|
* Empty space in some savegame versions.
|
||||||
@@ -461,13 +736,13 @@ typedef SaveLoad SaveLoadGlobVarList;
|
|||||||
#define SLE_CONDNULL(length, from, to) SLE_CONDNULL_X(length, from, to, SlXvFeatureTest())
|
#define SLE_CONDNULL(length, from, to) SLE_CONDNULL_X(length, from, to, SlXvFeatureTest())
|
||||||
|
|
||||||
/** Translate values ingame to different values in the savegame and vv. */
|
/** Translate values ingame to different values in the savegame and vv. */
|
||||||
#define SLE_WRITEBYTE(base, variable) SLE_GENERAL(SL_WRITEBYTE, base, variable, 0, 0, 0, 0)
|
#define SLE_WRITEBYTE(base, variable) SLE_GENERAL(SL_WRITEBYTE, base, variable, 0, 0, SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
#define SLE_VEH_INCLUDE() {false, SL_VEH_INCLUDE, 0, 0, 0, SL_MAX_VERSION, NULL, 0, SlXvFeatureTest()}
|
#define SLE_VEH_INCLUDE() {false, SL_VEH_INCLUDE, 0, 0, SL_MIN_VERSION, SL_MAX_VERSION, NULL, 0, SlXvFeatureTest()}
|
||||||
#define SLE_ST_INCLUDE() {false, SL_ST_INCLUDE, 0, 0, 0, SL_MAX_VERSION, NULL, 0, SlXvFeatureTest()}
|
#define SLE_ST_INCLUDE() {false, SL_ST_INCLUDE, 0, 0, SL_MIN_VERSION, SL_MAX_VERSION, NULL, 0, SlXvFeatureTest()}
|
||||||
|
|
||||||
/** End marker of a struct/class save or load. */
|
/** End marker of a struct/class save or load. */
|
||||||
#define SLE_END() {false, SL_END, 0, 0, 0, 0, NULL, 0, SlXvFeatureTest()}
|
#define SLE_END() {false, SL_END, 0, 0, SL_MIN_VERSION, SL_MIN_VERSION, NULL, 0, SlXvFeatureTest()}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Storage of global simple variables, references (pointers), and arrays.
|
* Storage of global simple variables, references (pointers), and arrays.
|
||||||
@@ -566,49 +841,49 @@ typedef SaveLoad SaveLoadGlobVarList;
|
|||||||
* @param variable Name of the global variable.
|
* @param variable Name of the global variable.
|
||||||
* @param type Storage of the data in memory and in the savegame.
|
* @param type Storage of the data in memory and in the savegame.
|
||||||
*/
|
*/
|
||||||
#define SLEG_VAR(variable, type) SLEG_CONDVAR(variable, type, 0, SL_MAX_VERSION)
|
#define SLEG_VAR(variable, type) SLEG_CONDVAR(variable, type, SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Storage of a global reference in every savegame version.
|
* Storage of a global reference in every savegame version.
|
||||||
* @param variable Name of the global variable.
|
* @param variable Name of the global variable.
|
||||||
* @param type Storage of the data in memory and in the savegame.
|
* @param type Storage of the data in memory and in the savegame.
|
||||||
*/
|
*/
|
||||||
#define SLEG_REF(variable, type) SLEG_CONDREF(variable, type, 0, SL_MAX_VERSION)
|
#define SLEG_REF(variable, type) SLEG_CONDREF(variable, type, SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Storage of a global array in every savegame version.
|
* Storage of a global array in every savegame version.
|
||||||
* @param variable Name of the global variable.
|
* @param variable Name of the global variable.
|
||||||
* @param type Storage of the data in memory and in the savegame.
|
* @param type Storage of the data in memory and in the savegame.
|
||||||
*/
|
*/
|
||||||
#define SLEG_ARR(variable, type) SLEG_CONDARR(variable, type, lengthof(variable), 0, SL_MAX_VERSION)
|
#define SLEG_ARR(variable, type) SLEG_CONDARR(variable, type, lengthof(variable), SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Storage of a global string in every savegame version.
|
* Storage of a global string in every savegame version.
|
||||||
* @param variable Name of the global variable.
|
* @param variable Name of the global variable.
|
||||||
* @param type Storage of the data in memory and in the savegame.
|
* @param type Storage of the data in memory and in the savegame.
|
||||||
*/
|
*/
|
||||||
#define SLEG_STR(variable, type) SLEG_CONDSTR(variable, type, sizeof(variable), 0, SL_MAX_VERSION)
|
#define SLEG_STR(variable, type) SLEG_CONDSTR(variable, type, sizeof(variable), SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Storage of a global list in every savegame version.
|
* Storage of a global list in every savegame version.
|
||||||
* @param variable Name of the global variable.
|
* @param variable Name of the global variable.
|
||||||
* @param type Storage of the data in memory and in the savegame.
|
* @param type Storage of the data in memory and in the savegame.
|
||||||
*/
|
*/
|
||||||
#define SLEG_LST(variable, type) SLEG_CONDLST(variable, type, 0, SL_MAX_VERSION)
|
#define SLEG_LST(variable, type) SLEG_CONDLST(variable, type, SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Storage of a global deque in every savegame version.
|
* Storage of a global deque in every savegame version.
|
||||||
* @param variable Name of the global variable.
|
* @param variable Name of the global variable.
|
||||||
* @param type Storage of the data in memory and in the savegame.
|
* @param type Storage of the data in memory and in the savegame.
|
||||||
*/
|
*/
|
||||||
#define SLEG_PTRDEQ(variable, type) SLEG_CONDPTRDEQ(variable, type, 0, SL_MAX_VERSION)
|
#define SLEG_PTRDEQ(variable, type) SLEG_CONDPTRDEQ(variable, type, SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Storage of a global vector in every savegame version.
|
* Storage of a global vector in every savegame version.
|
||||||
* @param variable Name of the global variable.
|
* @param variable Name of the global variable.
|
||||||
* @param type Storage of the data in memory and in the savegame.
|
* @param type Storage of the data in memory and in the savegame.
|
||||||
*/
|
*/
|
||||||
#define SLEG_VEC(variable, type) SLEG_CONDVEC(variable, type, 0, SL_MAX_VERSION)
|
#define SLEG_VEC(variable, type) SLEG_CONDVEC(variable, type, SL_MIN_VERSION, SL_MAX_VERSION)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Empty global space in some savegame versions.
|
* Empty global space in some savegame versions.
|
||||||
@@ -620,7 +895,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
|||||||
#define SLEG_CONDNULL(length, from, to) {true, SL_ARR, SLE_FILE_U8 | SLE_VAR_NULL | SLF_NOT_IN_CONFIG, length, from, to, (void*)NULL, SlXvFeatureTest()}
|
#define SLEG_CONDNULL(length, from, to) {true, SL_ARR, SLE_FILE_U8 | SLE_VAR_NULL | SLF_NOT_IN_CONFIG, length, from, to, (void*)NULL, SlXvFeatureTest()}
|
||||||
|
|
||||||
/** End marker of global variables save or load. */
|
/** End marker of global variables save or load. */
|
||||||
#define SLEG_END() {true, SL_END, 0, 0, 0, 0, NULL, 0, SlXvFeatureTest()}
|
#define SLEG_END() {true, SL_END, 0, 0, SL_MIN_VERSION, SL_MIN_VERSION, NULL, 0, SlXvFeatureTest()}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks whether the savegame is below \a major.\a minor.
|
* Checks whether the savegame is below \a major.\a minor.
|
||||||
@@ -628,9 +903,9 @@ typedef SaveLoad SaveLoadGlobVarList;
|
|||||||
* @param minor Minor number of the version to check against. If \a minor is 0 or not specified, only the major number is checked.
|
* @param minor Minor number of the version to check against. If \a minor is 0 or not specified, only the major number is checked.
|
||||||
* @return Savegame version is earlier than the specified version.
|
* @return Savegame version is earlier than the specified version.
|
||||||
*/
|
*/
|
||||||
static inline bool IsSavegameVersionBefore(uint16 major, byte minor = 0)
|
static inline bool IsSavegameVersionBefore(SaveLoadVersion major, byte minor = 0)
|
||||||
{
|
{
|
||||||
extern uint16 _sl_version;
|
extern SaveLoadVersion _sl_version;
|
||||||
extern byte _sl_minor_version;
|
extern byte _sl_minor_version;
|
||||||
return _sl_version < major || (minor > 0 && _sl_version == major && _sl_minor_version < minor);
|
return _sl_version < major || (minor > 0 && _sl_version == major && _sl_minor_version < minor);
|
||||||
}
|
}
|
||||||
@@ -638,13 +913,13 @@ static inline bool IsSavegameVersionBefore(uint16 major, byte minor = 0)
|
|||||||
/**
|
/**
|
||||||
* Checks if some version from/to combination falls within the range of the
|
* Checks if some version from/to combination falls within the range of the
|
||||||
* active savegame version.
|
* active savegame version.
|
||||||
* @param version_from Lowest version number that falls within the range.
|
* @param version_from Inclusive savegame version lower bound.
|
||||||
* @param version_to Highest version number that falls within the range.
|
* @param version_to Exclusive savegame version upper bound. SL_MAX_VERSION if no upper bound.
|
||||||
* @return Active savegame version falls within the given range.
|
* @return Active savegame version falls within the given range.
|
||||||
*/
|
*/
|
||||||
static inline bool SlIsObjectCurrentlyValid(uint16 version_from, uint16 version_to, SlXvFeatureTest ext_feature_test)
|
static inline bool SlIsObjectCurrentlyValid(SaveLoadVersion version_from, SaveLoadVersion version_to, SlXvFeatureTest ext_feature_test)
|
||||||
{
|
{
|
||||||
extern const uint16 SAVEGAME_VERSION;
|
extern const SaveLoadVersion SAVEGAME_VERSION;
|
||||||
if (!ext_feature_test.IsFeaturePresent(SAVEGAME_VERSION, version_from, version_to)) return false;
|
if (!ext_feature_test.IsFeaturePresent(SAVEGAME_VERSION, version_from, version_to)) return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@@ -19,15 +19,15 @@
|
|||||||
|
|
||||||
/** Description of a sign within the savegame. */
|
/** Description of a sign within the savegame. */
|
||||||
static const SaveLoad _sign_desc[] = {
|
static const SaveLoad _sign_desc[] = {
|
||||||
SLE_CONDVAR(Sign, name, SLE_NAME, 0, 83),
|
SLE_CONDVAR(Sign, name, SLE_NAME, SL_MIN_VERSION, SLV_84),
|
||||||
SLE_CONDSTR(Sign, name, SLE_STR | SLF_ALLOW_CONTROL, 0, 84, SL_MAX_VERSION),
|
SLE_CONDSTR(Sign, name, SLE_STR | SLF_ALLOW_CONTROL, 0, SLV_84, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Sign, x, SLE_FILE_I16 | SLE_VAR_I32, 0, 4),
|
SLE_CONDVAR(Sign, x, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_5),
|
||||||
SLE_CONDVAR(Sign, y, SLE_FILE_I16 | SLE_VAR_I32, 0, 4),
|
SLE_CONDVAR(Sign, y, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_5),
|
||||||
SLE_CONDVAR(Sign, x, SLE_INT32, 5, SL_MAX_VERSION),
|
SLE_CONDVAR(Sign, x, SLE_INT32, SLV_5, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Sign, y, SLE_INT32, 5, SL_MAX_VERSION),
|
SLE_CONDVAR(Sign, y, SLE_INT32, SLV_5, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Sign, owner, SLE_UINT8, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Sign, owner, SLE_UINT8, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Sign, z, SLE_FILE_U8 | SLE_VAR_I32, 0, 163),
|
SLE_CONDVAR(Sign, z, SLE_FILE_U8 | SLE_VAR_I32, SL_MIN_VERSION, SLV_164),
|
||||||
SLE_CONDVAR(Sign, z, SLE_INT32, 164, SL_MAX_VERSION),
|
SLE_CONDVAR(Sign, z, SLE_INT32, SLV_164, SL_MAX_VERSION),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -55,12 +55,12 @@ static void Load_SIGN()
|
|||||||
* - we can't use IsValidCompany() now, so this is fixed in AfterLoadGame()
|
* - we can't use IsValidCompany() now, so this is fixed in AfterLoadGame()
|
||||||
* All signs that were saved are valid (including those with just 'Sign' and INVALID_OWNER).
|
* All signs that were saved are valid (including those with just 'Sign' and INVALID_OWNER).
|
||||||
* - so set owner to OWNER_NONE if needed (signs from pre-version 6.1 would be lost) */
|
* - so set owner to OWNER_NONE if needed (signs from pre-version 6.1 would be lost) */
|
||||||
if (IsSavegameVersionBefore(6, 1) || (IsSavegameVersionBefore(83) && si->owner == INVALID_OWNER)) {
|
if (IsSavegameVersionBefore(SLV_6, 1) || (IsSavegameVersionBefore(SLV_83) && si->owner == INVALID_OWNER)) {
|
||||||
si->owner = OWNER_NONE;
|
si->owner = OWNER_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Signs placed in scenario editor shall now be OWNER_DEITY */
|
/* Signs placed in scenario editor shall now be OWNER_DEITY */
|
||||||
if (IsSavegameVersionBefore(171) && si->owner == OWNER_NONE && _file_to_saveload.abstract_ftype == FT_SCENARIO) {
|
if (IsSavegameVersionBefore(SLV_171) && si->owner == OWNER_NONE && _file_to_saveload.abstract_ftype == FT_SCENARIO) {
|
||||||
si->owner = OWNER_DEITY;
|
si->owner = OWNER_DEITY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -159,18 +159,18 @@ void AfterLoadRoadStops()
|
|||||||
|
|
||||||
static const SaveLoad _roadstop_desc[] = {
|
static const SaveLoad _roadstop_desc[] = {
|
||||||
SLE_VAR(RoadStop, xy, SLE_UINT32),
|
SLE_VAR(RoadStop, xy, SLE_UINT32),
|
||||||
SLE_CONDNULL(1, 0, 44),
|
SLE_CONDNULL(1, SL_MIN_VERSION, SLV_45),
|
||||||
SLE_VAR(RoadStop, status, SLE_UINT8),
|
SLE_VAR(RoadStop, status, SLE_UINT8),
|
||||||
/* Index was saved in some versions, but this is not needed */
|
/* Index was saved in some versions, but this is not needed */
|
||||||
SLE_CONDNULL(4, 0, 8),
|
SLE_CONDNULL(4, SL_MIN_VERSION, SLV_9),
|
||||||
SLE_CONDNULL(2, 0, 44),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_45),
|
||||||
SLE_CONDNULL(1, 0, 25),
|
SLE_CONDNULL(1, SL_MIN_VERSION, SLV_26),
|
||||||
|
|
||||||
SLE_REF(RoadStop, next, REF_ROADSTOPS),
|
SLE_REF(RoadStop, next, REF_ROADSTOPS),
|
||||||
SLE_CONDNULL(2, 0, 44),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_45),
|
||||||
|
|
||||||
SLE_CONDNULL(4, 0, 24),
|
SLE_CONDNULL(4, SL_MIN_VERSION, SLV_25),
|
||||||
SLE_CONDNULL(1, 25, 25),
|
SLE_CONDNULL(1, SLV_25, SLV_26),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -184,61 +184,61 @@ static const SaveLoad _dock_desc[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static const SaveLoad _old_station_desc[] = {
|
static const SaveLoad _old_station_desc[] = {
|
||||||
SLE_CONDVAR(Station, xy, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(Station, xy, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Station, xy, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, xy, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL(4, 0, 5), ///< bus/lorry tile
|
SLE_CONDNULL(4, SL_MIN_VERSION, SLV_6), ///< bus/lorry tile
|
||||||
SLE_CONDVAR(Station, train_station.tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(Station, train_station.tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Station, train_station.tile, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, train_station.tile, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Station, airport.tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(Station, airport.tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Station, airport.tile, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, airport.tile, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Station, dock_station.tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(Station, dock_station.tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Station, dock_station.tile, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, dock_station.tile, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_REF(Station, town, REF_TOWN),
|
SLE_REF(Station, town, REF_TOWN),
|
||||||
SLE_VAR(Station, train_station.w, SLE_FILE_U8 | SLE_VAR_U16),
|
SLE_VAR(Station, train_station.w, SLE_FILE_U8 | SLE_VAR_U16),
|
||||||
SLE_CONDVAR(Station, train_station.h, SLE_FILE_U8 | SLE_VAR_U16, 2, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, train_station.h, SLE_FILE_U8 | SLE_VAR_U16, SLV_2, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDNULL(1, 0, 3), ///< alpha_order
|
SLE_CONDNULL(1, SL_MIN_VERSION, SLV_4), ///< alpha_order
|
||||||
|
|
||||||
SLE_VAR(Station, string_id, SLE_STRINGID),
|
SLE_VAR(Station, string_id, SLE_STRINGID),
|
||||||
SLE_CONDSTR(Station, name, SLE_STR | SLF_ALLOW_CONTROL, 0, 84, SL_MAX_VERSION),
|
SLE_CONDSTR(Station, name, SLE_STR | SLF_ALLOW_CONTROL, 0, SLV_84, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Station, indtype, SLE_UINT8, 103, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, indtype, SLE_UINT8, SLV_103, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Station, had_vehicle_of_type, SLE_FILE_U16 | SLE_VAR_U8, 0, 121),
|
SLE_CONDVAR(Station, had_vehicle_of_type, SLE_FILE_U16 | SLE_VAR_U8, SL_MIN_VERSION, SLV_122),
|
||||||
SLE_CONDVAR(Station, had_vehicle_of_type, SLE_UINT8, 122, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, had_vehicle_of_type, SLE_UINT8, SLV_122, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_VAR(Station, time_since_load, SLE_UINT8),
|
SLE_VAR(Station, time_since_load, SLE_UINT8),
|
||||||
SLE_VAR(Station, time_since_unload, SLE_UINT8),
|
SLE_VAR(Station, time_since_unload, SLE_UINT8),
|
||||||
SLE_CONDVAR_X(Station, delete_ctr, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 0, 3)),
|
SLE_CONDVAR_X(Station, delete_ctr, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 0, 3)),
|
||||||
SLE_CONDVAR_X(Station, delete_ctr, SLE_FILE_U16 | SLE_VAR_U8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 4)),
|
SLE_CONDVAR_X(Station, delete_ctr, SLE_FILE_U16 | SLE_VAR_U8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 4)),
|
||||||
SLE_VAR(Station, owner, SLE_UINT8),
|
SLE_VAR(Station, owner, SLE_UINT8),
|
||||||
SLE_VAR(Station, facilities, SLE_UINT8),
|
SLE_VAR(Station, facilities, SLE_UINT8),
|
||||||
SLE_VAR(Station, airport.type, SLE_UINT8),
|
SLE_VAR(Station, airport.type, SLE_UINT8),
|
||||||
|
|
||||||
SLE_CONDNULL(2, 0, 5), ///< Truck/bus stop status
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_6), ///< Truck/bus stop status
|
||||||
SLE_CONDNULL(1, 0, 4), ///< Blocked months
|
SLE_CONDNULL(1, SL_MIN_VERSION, SLV_5), ///< Blocked months
|
||||||
|
|
||||||
SLE_CONDVAR(Station, airport.flags, SLE_VAR_U64 | SLE_FILE_U16, 0, 2),
|
SLE_CONDVAR(Station, airport.flags, SLE_VAR_U64 | SLE_FILE_U16, SL_MIN_VERSION, SLV_3),
|
||||||
SLE_CONDVAR(Station, airport.flags, SLE_VAR_U64 | SLE_FILE_U32, 3, 45),
|
SLE_CONDVAR(Station, airport.flags, SLE_VAR_U64 | SLE_FILE_U32, SLV_3, SLV_46),
|
||||||
SLE_CONDVAR(Station, airport.flags, SLE_UINT64, 46, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, airport.flags, SLE_UINT64, SLV_46, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDNULL(2, 0, 25), ///< last-vehicle
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_26), ///< last-vehicle
|
||||||
SLEG_CONDVAR_X(_old_last_vehicle_type, SLE_UINT8, 26, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_ST_LAST_VEH_TYPE, 0, 0)),
|
SLEG_CONDVAR_X(_old_last_vehicle_type, SLE_UINT8, SLV_26, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_ST_LAST_VEH_TYPE, 0, 0)),
|
||||||
|
|
||||||
SLE_CONDNULL(2, 3, 25), ///< custom station class and id
|
SLE_CONDNULL(2, SLV_3, SLV_26), ///< custom station class and id
|
||||||
SLE_CONDVAR(Station, build_date, SLE_FILE_U16 | SLE_VAR_I32, 3, 30),
|
SLE_CONDVAR(Station, build_date, SLE_FILE_U16 | SLE_VAR_I32, SLV_3, SLV_31),
|
||||||
SLE_CONDVAR(Station, build_date, SLE_INT32, 31, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, build_date, SLE_INT32, SLV_31, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDREF(Station, bus_stops, REF_ROADSTOPS, 6, SL_MAX_VERSION),
|
SLE_CONDREF(Station, bus_stops, REF_ROADSTOPS, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDREF(Station, truck_stops, REF_ROADSTOPS, 6, SL_MAX_VERSION),
|
SLE_CONDREF(Station, truck_stops, REF_ROADSTOPS, SLV_6, SL_MAX_VERSION),
|
||||||
|
|
||||||
/* Used by newstations for graphic variations */
|
/* Used by newstations for graphic variations */
|
||||||
SLE_CONDVAR(Station, random_bits, SLE_UINT16, 27, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, random_bits, SLE_UINT16, SLV_27, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Station, waiting_triggers, SLE_UINT8, 27, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, waiting_triggers, SLE_UINT8, SLV_27, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Station, num_specs, SLE_UINT8, 27, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, num_specs, SLE_UINT8, SLV_27, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDVEC(Station, loading_vehicles, REF_VEHICLE, 57, SL_MAX_VERSION),
|
SLE_CONDVEC(Station, loading_vehicles, REF_VEHICLE, SLV_57, SL_MAX_VERSION),
|
||||||
|
|
||||||
/* reserve extra space in savegame here. (currently 32 bytes) */
|
/* reserve extra space in savegame here. (currently 32 bytes) */
|
||||||
SLE_CONDNULL(32, 2, SL_MAX_VERSION),
|
SLE_CONDNULL(32, SLV_2, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -251,8 +251,8 @@ static uint8 _cargo_days;
|
|||||||
static Money _cargo_feeder_share;
|
static Money _cargo_feeder_share;
|
||||||
|
|
||||||
static const SaveLoad _station_speclist_desc[] = {
|
static const SaveLoad _station_speclist_desc[] = {
|
||||||
SLE_CONDVAR(StationSpecList, grfid, SLE_UINT32, 27, SL_MAX_VERSION),
|
SLE_CONDVAR(StationSpecList, grfid, SLE_UINT32, SLV_27, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(StationSpecList, localidx, SLE_UINT8, 27, SL_MAX_VERSION),
|
SLE_CONDVAR(StationSpecList, localidx, SLE_UINT8, SLV_27, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -273,7 +273,7 @@ static const SaveLoad _flow_desc[] = {
|
|||||||
SLE_VAR(FlowSaveLoad, source, SLE_UINT16),
|
SLE_VAR(FlowSaveLoad, source, SLE_UINT16),
|
||||||
SLE_VAR(FlowSaveLoad, via, SLE_UINT16),
|
SLE_VAR(FlowSaveLoad, via, SLE_UINT16),
|
||||||
SLE_VAR(FlowSaveLoad, share, SLE_UINT32),
|
SLE_VAR(FlowSaveLoad, share, SLE_UINT32),
|
||||||
SLE_CONDVAR(FlowSaveLoad, restricted, SLE_BOOL, 187, SL_MAX_VERSION),
|
SLE_CONDVAR(FlowSaveLoad, restricted, SLE_BOOL, SLV_187, SL_MAX_VERSION),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
@@ -286,29 +286,29 @@ static const SaveLoad _flow_desc[] = {
|
|||||||
const SaveLoad *GetGoodsDesc()
|
const SaveLoad *GetGoodsDesc()
|
||||||
{
|
{
|
||||||
static const SaveLoad goods_desc[] = {
|
static const SaveLoad goods_desc[] = {
|
||||||
SLEG_CONDVAR( _waiting_acceptance, SLE_UINT16, 0, 67),
|
SLEG_CONDVAR( _waiting_acceptance, SLE_UINT16, SL_MIN_VERSION, SLV_68),
|
||||||
SLE_CONDVAR(GoodsEntry, status, SLE_UINT8, 68, SL_MAX_VERSION),
|
SLE_CONDVAR(GoodsEntry, status, SLE_UINT8, SLV_68, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL(2, 51, 67),
|
SLE_CONDNULL(2, SLV_51, SLV_68),
|
||||||
SLE_VAR(GoodsEntry, time_since_pickup, SLE_UINT8),
|
SLE_VAR(GoodsEntry, time_since_pickup, SLE_UINT8),
|
||||||
SLE_CONDNULL_X(6, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 4)),
|
SLE_CONDNULL_X(6, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 4)),
|
||||||
SLE_VAR(GoodsEntry, rating, SLE_UINT8),
|
SLE_VAR(GoodsEntry, rating, SLE_UINT8),
|
||||||
SLEG_CONDVAR( _cargo_source, SLE_FILE_U8 | SLE_VAR_U16, 0, 6),
|
SLEG_CONDVAR( _cargo_source, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_7),
|
||||||
SLEG_CONDVAR( _cargo_source, SLE_UINT16, 7, 67),
|
SLEG_CONDVAR( _cargo_source, SLE_UINT16, SLV_7, SLV_68),
|
||||||
SLEG_CONDVAR( _cargo_source_xy, SLE_UINT32, 44, 67),
|
SLEG_CONDVAR( _cargo_source_xy, SLE_UINT32, SLV_44, SLV_68),
|
||||||
SLEG_CONDVAR( _cargo_days, SLE_UINT8, 0, 67),
|
SLEG_CONDVAR( _cargo_days, SLE_UINT8, SL_MIN_VERSION, SLV_68),
|
||||||
SLE_VAR(GoodsEntry, last_speed, SLE_UINT8),
|
SLE_VAR(GoodsEntry, last_speed, SLE_UINT8),
|
||||||
SLE_VAR(GoodsEntry, last_age, SLE_UINT8),
|
SLE_VAR(GoodsEntry, last_age, SLE_UINT8),
|
||||||
SLEG_CONDVAR( _cargo_feeder_share, SLE_FILE_U32 | SLE_VAR_I64, 14, 64),
|
SLEG_CONDVAR( _cargo_feeder_share, SLE_FILE_U32 | SLE_VAR_I64, SLV_14, SLV_65),
|
||||||
SLEG_CONDVAR( _cargo_feeder_share, SLE_INT64, 65, 67),
|
SLEG_CONDVAR( _cargo_feeder_share, SLE_INT64, SLV_65, SLV_68),
|
||||||
SLE_CONDVAR(GoodsEntry, amount_fract, SLE_UINT8, 150, SL_MAX_VERSION),
|
SLE_CONDVAR(GoodsEntry, amount_fract, SLE_UINT8, SLV_150, SL_MAX_VERSION),
|
||||||
SLEG_CONDPTRDEQ( _packets, REF_CARGO_PACKET, 68, 182),
|
SLEG_CONDPTRDEQ( _packets, REF_CARGO_PACKET, SLV_68, SLV_183),
|
||||||
SLEG_CONDVAR( _num_dests, SLE_UINT32, 183, SL_MAX_VERSION),
|
SLEG_CONDVAR( _num_dests, SLE_UINT32, SLV_183, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(GoodsEntry, cargo.reserved_count, SLE_UINT, 181, SL_MAX_VERSION),
|
SLE_CONDVAR(GoodsEntry, cargo.reserved_count, SLE_UINT, SLV_181, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(GoodsEntry, link_graph, SLE_UINT16, 183, SL_MAX_VERSION),
|
SLE_CONDVAR(GoodsEntry, link_graph, SLE_UINT16, SLV_183, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(GoodsEntry, node, SLE_UINT16, 183, SL_MAX_VERSION),
|
SLE_CONDVAR(GoodsEntry, node, SLE_UINT16, SLV_183, SL_MAX_VERSION),
|
||||||
SLEG_CONDVAR( _num_flows, SLE_UINT32, 183, SL_MAX_VERSION),
|
SLEG_CONDVAR( _num_flows, SLE_UINT32, SLV_183, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(GoodsEntry, max_waiting_cargo, SLE_UINT32, 183, SL_MAX_VERSION),
|
SLE_CONDVAR(GoodsEntry, max_waiting_cargo, SLE_UINT32, SLV_183, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR_X(GoodsEntry, last_vehicle_type, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_ST_LAST_VEH_TYPE, 1)),
|
SLE_CONDVAR_X(GoodsEntry, last_vehicle_type, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_ST_LAST_VEH_TYPE, 1)),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -351,7 +351,7 @@ static void Load_STNS()
|
|||||||
_cargo_days = 0;
|
_cargo_days = 0;
|
||||||
_cargo_feeder_share = 0;
|
_cargo_feeder_share = 0;
|
||||||
|
|
||||||
uint num_cargo = IsSavegameVersionBefore(55) ? 12 : IsSavegameVersionBefore(199) ? 32 : NUM_CARGO;
|
uint num_cargo = IsSavegameVersionBefore(SLV_55) ? 12 : IsSavegameVersionBefore(SLV_EXTEND_CARGOTYPES) ? 32 : NUM_CARGO;
|
||||||
int index;
|
int index;
|
||||||
while ((index = SlIterateArray()) != -1) {
|
while ((index = SlIterateArray()) != -1) {
|
||||||
Station *st = new (index) Station();
|
Station *st = new (index) Station();
|
||||||
@@ -364,11 +364,11 @@ static void Load_STNS()
|
|||||||
GoodsEntry *ge = &st->goods[i];
|
GoodsEntry *ge = &st->goods[i];
|
||||||
SlObject(ge, GetGoodsDesc());
|
SlObject(ge, GetGoodsDesc());
|
||||||
SwapPackets(ge);
|
SwapPackets(ge);
|
||||||
if (IsSavegameVersionBefore(68)) {
|
if (IsSavegameVersionBefore(SLV_68)) {
|
||||||
SB(ge->status, GoodsEntry::GES_ACCEPTANCE, 1, HasBit(_waiting_acceptance, 15));
|
SB(ge->status, GoodsEntry::GES_ACCEPTANCE, 1, HasBit(_waiting_acceptance, 15));
|
||||||
if (GB(_waiting_acceptance, 0, 12) != 0) {
|
if (GB(_waiting_acceptance, 0, 12) != 0) {
|
||||||
/* In old versions, enroute_from used 0xFF as INVALID_STATION */
|
/* In old versions, enroute_from used 0xFF as INVALID_STATION */
|
||||||
StationID source = (IsSavegameVersionBefore(7) && _cargo_source == 0xFF) ? INVALID_STATION : _cargo_source;
|
StationID source = (IsSavegameVersionBefore(SLV_7) && _cargo_source == 0xFF) ? INVALID_STATION : _cargo_source;
|
||||||
|
|
||||||
/* Make sure we can allocate the CargoPacket. This is safe
|
/* Make sure we can allocate the CargoPacket. This is safe
|
||||||
* as there can only be ~64k stations and 32 cargoes in these
|
* as there can only be ~64k stations and 32 cargoes in these
|
||||||
@@ -398,12 +398,12 @@ static void Load_STNS()
|
|||||||
static void Ptrs_STNS()
|
static void Ptrs_STNS()
|
||||||
{
|
{
|
||||||
/* Don't run when savegame version is higher than or equal to 123. */
|
/* Don't run when savegame version is higher than or equal to 123. */
|
||||||
if (!IsSavegameVersionBefore(123)) return;
|
if (!IsSavegameVersionBefore(SLV_123)) return;
|
||||||
|
|
||||||
uint num_cargo = IsSavegameVersionBefore(199) ? 32 : NUM_CARGO;
|
uint num_cargo = IsSavegameVersionBefore(SLV_EXTEND_CARGOTYPES) ? 32 : NUM_CARGO;
|
||||||
Station *st;
|
Station *st;
|
||||||
FOR_ALL_STATIONS(st) {
|
FOR_ALL_STATIONS(st) {
|
||||||
if (!IsSavegameVersionBefore(68)) {
|
if (!IsSavegameVersionBefore(SLV_68)) {
|
||||||
for (CargoID i = 0; i < num_cargo; i++) {
|
for (CargoID i = 0; i < num_cargo; i++) {
|
||||||
GoodsEntry *ge = &st->goods[i];
|
GoodsEntry *ge = &st->goods[i];
|
||||||
SwapPackets(ge);
|
SwapPackets(ge);
|
||||||
@@ -421,8 +421,8 @@ static const SaveLoad _base_station_desc[] = {
|
|||||||
SLE_REF(BaseStation, town, REF_TOWN),
|
SLE_REF(BaseStation, town, REF_TOWN),
|
||||||
SLE_VAR(BaseStation, string_id, SLE_STRINGID),
|
SLE_VAR(BaseStation, string_id, SLE_STRINGID),
|
||||||
SLE_STR(BaseStation, name, SLE_STR | SLF_ALLOW_CONTROL, 0),
|
SLE_STR(BaseStation, name, SLE_STR | SLF_ALLOW_CONTROL, 0),
|
||||||
SLE_CONDVAR_X(Station, delete_ctr, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 0, 3)),
|
SLE_CONDVAR_X(Station, delete_ctr, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 0, 3)),
|
||||||
SLE_CONDVAR_X(Station, delete_ctr, SLE_FILE_U16 | SLE_VAR_U8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 4)),
|
SLE_CONDVAR_X(Station, delete_ctr, SLE_FILE_U16 | SLE_VAR_U8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 4)),
|
||||||
SLE_VAR(BaseStation, owner, SLE_UINT8),
|
SLE_VAR(BaseStation, owner, SLE_UINT8),
|
||||||
SLE_VAR(BaseStation, facilities, SLE_UINT8),
|
SLE_VAR(BaseStation, facilities, SLE_UINT8),
|
||||||
SLE_VAR(BaseStation, build_date, SLE_INT32),
|
SLE_VAR(BaseStation, build_date, SLE_INT32),
|
||||||
@@ -447,29 +447,29 @@ static const SaveLoad _station_desc[] = {
|
|||||||
|
|
||||||
SLE_REF(Station, bus_stops, REF_ROADSTOPS),
|
SLE_REF(Station, bus_stops, REF_ROADSTOPS),
|
||||||
SLE_REF(Station, truck_stops, REF_ROADSTOPS),
|
SLE_REF(Station, truck_stops, REF_ROADSTOPS),
|
||||||
SLE_CONDVAR_X(Station, dock_station.tile, SLE_UINT32, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_MULTIPLE_DOCKS, 0, 0)),
|
SLE_CONDVAR_X(Station, dock_station.tile, SLE_UINT32, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_MULTIPLE_DOCKS, 0, 0)),
|
||||||
SLE_CONDREF_X(Station, docks, REF_DOCKS, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_MULTIPLE_DOCKS, 1)),
|
SLE_CONDREF_X(Station, docks, REF_DOCKS, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_MULTIPLE_DOCKS, 1)),
|
||||||
SLE_VAR(Station, airport.tile, SLE_UINT32),
|
SLE_VAR(Station, airport.tile, SLE_UINT32),
|
||||||
SLE_CONDVAR(Station, airport.w, SLE_FILE_U8 | SLE_VAR_U16, 140, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, airport.w, SLE_FILE_U8 | SLE_VAR_U16, SLV_140, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Station, airport.h, SLE_FILE_U8 | SLE_VAR_U16, 140, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, airport.h, SLE_FILE_U8 | SLE_VAR_U16, SLV_140, SL_MAX_VERSION),
|
||||||
SLE_VAR(Station, airport.type, SLE_UINT8),
|
SLE_VAR(Station, airport.type, SLE_UINT8),
|
||||||
SLE_CONDVAR(Station, airport.layout, SLE_UINT8, 145, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, airport.layout, SLE_UINT8, SLV_145, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL_X(1, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 1, 6)),
|
SLE_CONDNULL_X(1, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 1, 6)),
|
||||||
SLE_VAR(Station, airport.flags, SLE_UINT64),
|
SLE_VAR(Station, airport.flags, SLE_UINT64),
|
||||||
SLE_CONDNULL_X(8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 1, 6)),
|
SLE_CONDNULL_X(8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 1, 6)),
|
||||||
SLE_CONDVAR(Station, airport.rotation, SLE_UINT8, 145, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, airport.rotation, SLE_UINT8, SLV_145, SL_MAX_VERSION),
|
||||||
SLEG_CONDARR(_old_st_persistent_storage.storage, SLE_UINT32, 16, 145, 160),
|
SLEG_CONDARR(_old_st_persistent_storage.storage, SLE_UINT32, 16, SLV_145, SLV_161),
|
||||||
SLE_CONDREF(Station, airport.psa, REF_STORAGE, 161, SL_MAX_VERSION),
|
SLE_CONDREF(Station, airport.psa, REF_STORAGE, SLV_161, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_VAR(Station, indtype, SLE_UINT8),
|
SLE_VAR(Station, indtype, SLE_UINT8),
|
||||||
|
|
||||||
SLE_VAR(Station, time_since_load, SLE_UINT8),
|
SLE_VAR(Station, time_since_load, SLE_UINT8),
|
||||||
SLE_VAR(Station, time_since_unload, SLE_UINT8),
|
SLE_VAR(Station, time_since_unload, SLE_UINT8),
|
||||||
SLEG_CONDVAR_X(_old_last_vehicle_type, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_ST_LAST_VEH_TYPE, 0, 0)),
|
SLEG_CONDVAR_X(_old_last_vehicle_type, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_ST_LAST_VEH_TYPE, 0, 0)),
|
||||||
SLE_VAR(Station, had_vehicle_of_type, SLE_UINT8),
|
SLE_VAR(Station, had_vehicle_of_type, SLE_UINT8),
|
||||||
SLE_VEC(Station, loading_vehicles, REF_VEHICLE),
|
SLE_VEC(Station, loading_vehicles, REF_VEHICLE),
|
||||||
SLE_CONDVAR(Station, always_accepted, SLE_FILE_U32 | SLE_VAR_U64, 127, 198),
|
SLE_CONDVAR(Station, always_accepted, SLE_FILE_U32 | SLE_VAR_U64, SLV_127, SLV_EXTEND_CARGOTYPES),
|
||||||
SLE_CONDVAR(Station, always_accepted, SLE_UINT64, 199, SL_MAX_VERSION),
|
SLE_CONDVAR(Station, always_accepted, SLE_UINT64, SLV_EXTEND_CARGOTYPES, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -480,9 +480,9 @@ static const SaveLoad _waypoint_desc[] = {
|
|||||||
|
|
||||||
SLE_VAR(Waypoint, town_cn, SLE_UINT16),
|
SLE_VAR(Waypoint, town_cn, SLE_UINT16),
|
||||||
|
|
||||||
SLE_CONDVAR(Waypoint, train_station.tile, SLE_UINT32, 124, SL_MAX_VERSION),
|
SLE_CONDVAR(Waypoint, train_station.tile, SLE_UINT32, SLV_124, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Waypoint, train_station.w, SLE_FILE_U8 | SLE_VAR_U16, 124, SL_MAX_VERSION),
|
SLE_CONDVAR(Waypoint, train_station.w, SLE_FILE_U8 | SLE_VAR_U16, SLV_124, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Waypoint, train_station.h, SLE_FILE_U8 | SLE_VAR_U16, 124, SL_MAX_VERSION),
|
SLE_CONDVAR(Waypoint, train_station.h, SLE_FILE_U8 | SLE_VAR_U16, SLV_124, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -557,7 +557,7 @@ static void Load_STNN()
|
|||||||
{
|
{
|
||||||
_num_flows = 0;
|
_num_flows = 0;
|
||||||
|
|
||||||
const uint num_cargo = IsSavegameVersionBefore(199) ? 32 : NUM_CARGO;
|
const uint num_cargo = IsSavegameVersionBefore(SLV_EXTEND_CARGOTYPES) ? 32 : NUM_CARGO;
|
||||||
ReadBuffer *buffer = ReadBuffer::GetCurrent();
|
ReadBuffer *buffer = ReadBuffer::GetCurrent();
|
||||||
|
|
||||||
int index;
|
int index;
|
||||||
@@ -571,7 +571,7 @@ static void Load_STNN()
|
|||||||
Station *st = Station::From(bst);
|
Station *st = Station::From(bst);
|
||||||
|
|
||||||
/* Before savegame version 161, persistent storages were not stored in a pool. */
|
/* Before savegame version 161, persistent storages were not stored in a pool. */
|
||||||
if (IsSavegameVersionBefore(161) && !IsSavegameVersionBefore(145) && st->facilities & FACIL_AIRPORT) {
|
if (IsSavegameVersionBefore(SLV_161) && !IsSavegameVersionBefore(SLV_145) && st->facilities & FACIL_AIRPORT) {
|
||||||
/* Store the old persistent storage. The GRFID will be added later. */
|
/* Store the old persistent storage. The GRFID will be added later. */
|
||||||
assert(PersistentStorage::CanAllocateItem());
|
assert(PersistentStorage::CanAllocateItem());
|
||||||
st->airport.psa = new PersistentStorage(0, 0, 0);
|
st->airport.psa = new PersistentStorage(0, 0, 0);
|
||||||
@@ -589,7 +589,7 @@ static void Load_STNN()
|
|||||||
flow.source = buffer->RawReadUint16();
|
flow.source = buffer->RawReadUint16();
|
||||||
flow.via = buffer->RawReadUint16();
|
flow.via = buffer->RawReadUint16();
|
||||||
flow.share = buffer->RawReadUint32();
|
flow.share = buffer->RawReadUint32();
|
||||||
if (!IsSavegameVersionBefore(187)) flow.restricted = (buffer->ReadByte() != 0);
|
if (!IsSavegameVersionBefore(SLV_187)) flow.restricted = (buffer->ReadByte() != 0);
|
||||||
|
|
||||||
if (fs == NULL || prev_source != flow.source) {
|
if (fs == NULL || prev_source != flow.source) {
|
||||||
fs = &(st->goods[i].flows.insert(std::make_pair(flow.source, FlowStat(flow.via, flow.share, flow.restricted))).first->second);
|
fs = &(st->goods[i].flows.insert(std::make_pair(flow.source, FlowStat(flow.via, flow.share, flow.restricted))).first->second);
|
||||||
@@ -598,7 +598,7 @@ static void Load_STNN()
|
|||||||
}
|
}
|
||||||
prev_source = flow.source;
|
prev_source = flow.source;
|
||||||
}
|
}
|
||||||
if (IsSavegameVersionBefore(183)) {
|
if (IsSavegameVersionBefore(SLV_183)) {
|
||||||
SwapPackets(&st->goods[i]);
|
SwapPackets(&st->goods[i]);
|
||||||
} else {
|
} else {
|
||||||
StationCargoPair pair;
|
StationCargoPair pair;
|
||||||
@@ -625,14 +625,14 @@ static void Load_STNN()
|
|||||||
static void Ptrs_STNN()
|
static void Ptrs_STNN()
|
||||||
{
|
{
|
||||||
/* Don't run when savegame version lower than 123. */
|
/* Don't run when savegame version lower than 123. */
|
||||||
if (IsSavegameVersionBefore(123)) return;
|
if (IsSavegameVersionBefore(SLV_123)) return;
|
||||||
|
|
||||||
uint num_cargo = IsSavegameVersionBefore(199) ? 32 : NUM_CARGO;
|
uint num_cargo = IsSavegameVersionBefore(SLV_EXTEND_CARGOTYPES) ? 32 : NUM_CARGO;
|
||||||
Station *st;
|
Station *st;
|
||||||
FOR_ALL_STATIONS(st) {
|
FOR_ALL_STATIONS(st) {
|
||||||
for (CargoID i = 0; i < num_cargo; i++) {
|
for (CargoID i = 0; i < num_cargo; i++) {
|
||||||
GoodsEntry *ge = &st->goods[i];
|
GoodsEntry *ge = &st->goods[i];
|
||||||
if (IsSavegameVersionBefore(183)) {
|
if (IsSavegameVersionBefore(SLV_183)) {
|
||||||
SwapPackets(ge);
|
SwapPackets(ge);
|
||||||
SlObject(ge, GetGoodsDesc());
|
SlObject(ge, GetGoodsDesc());
|
||||||
SwapPackets(ge);
|
SwapPackets(ge);
|
||||||
|
@@ -17,9 +17,9 @@
|
|||||||
|
|
||||||
/** Description of the data to save and load in #PersistentStorage. */
|
/** Description of the data to save and load in #PersistentStorage. */
|
||||||
static const SaveLoad _storage_desc[] = {
|
static const SaveLoad _storage_desc[] = {
|
||||||
SLE_CONDVAR(PersistentStorage, grfid, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(PersistentStorage, grfid, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDARR(PersistentStorage, storage, SLE_UINT32, 16, 161, 200),
|
SLE_CONDARR(PersistentStorage, storage, SLE_UINT32, 16, SLV_161, SLV_EXTEND_PERSISTENT_STORAGE),
|
||||||
SLE_CONDARR(PersistentStorage, storage, SLE_UINT32, 256, 201, SL_MAX_VERSION),
|
SLE_CONDARR(PersistentStorage, storage, SLE_UINT32, 256, SLV_EXTEND_PERSISTENT_STORAGE, SL_MAX_VERSION),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -19,7 +19,7 @@
|
|||||||
/** Called after load to trash broken pages. */
|
/** Called after load to trash broken pages. */
|
||||||
void AfterLoadStoryBook()
|
void AfterLoadStoryBook()
|
||||||
{
|
{
|
||||||
if (IsSavegameVersionBefore(185)) {
|
if (IsSavegameVersionBefore(SLV_185)) {
|
||||||
/* Trash all story pages and page elements because
|
/* Trash all story pages and page elements because
|
||||||
* they were saved with wrong data types.
|
* they were saved with wrong data types.
|
||||||
*/
|
*/
|
||||||
@@ -29,11 +29,11 @@ void AfterLoadStoryBook()
|
|||||||
}
|
}
|
||||||
|
|
||||||
static const SaveLoad _story_page_elements_desc[] = {
|
static const SaveLoad _story_page_elements_desc[] = {
|
||||||
SLE_CONDVAR(StoryPageElement, sort_value, SLE_FILE_U16 | SLE_VAR_U32, 0, 184),
|
SLE_CONDVAR(StoryPageElement, sort_value, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_185),
|
||||||
SLE_CONDVAR(StoryPageElement, sort_value, SLE_UINT32, 185, SL_MAX_VERSION),
|
SLE_CONDVAR(StoryPageElement, sort_value, SLE_UINT32, SLV_185, SL_MAX_VERSION),
|
||||||
SLE_VAR(StoryPageElement, page, SLE_UINT16),
|
SLE_VAR(StoryPageElement, page, SLE_UINT16),
|
||||||
SLE_CONDVAR(StoryPageElement, type, SLE_FILE_U16 | SLE_VAR_U8, 0, 184),
|
SLE_CONDVAR(StoryPageElement, type, SLE_FILE_U16 | SLE_VAR_U8, SL_MIN_VERSION, SLV_185),
|
||||||
SLE_CONDVAR(StoryPageElement, type, SLE_UINT8, 185, SL_MAX_VERSION),
|
SLE_CONDVAR(StoryPageElement, type, SLE_UINT8, SLV_185, SL_MAX_VERSION),
|
||||||
SLE_VAR(StoryPageElement, referenced_id, SLE_UINT32),
|
SLE_VAR(StoryPageElement, referenced_id, SLE_UINT32),
|
||||||
SLE_STR(StoryPageElement, text, SLE_STR | SLF_ALLOW_CONTROL, 0),
|
SLE_STR(StoryPageElement, text, SLE_STR | SLF_ALLOW_CONTROL, 0),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
@@ -66,11 +66,11 @@ static void Load_STORY_PAGE_ELEMENT()
|
|||||||
}
|
}
|
||||||
|
|
||||||
static const SaveLoad _story_pages_desc[] = {
|
static const SaveLoad _story_pages_desc[] = {
|
||||||
SLE_CONDVAR(StoryPage, sort_value, SLE_FILE_U16 | SLE_VAR_U32, 0, 184),
|
SLE_CONDVAR(StoryPage, sort_value, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_185),
|
||||||
SLE_CONDVAR(StoryPage, sort_value, SLE_UINT32, 185, SL_MAX_VERSION),
|
SLE_CONDVAR(StoryPage, sort_value, SLE_UINT32, SLV_185, SL_MAX_VERSION),
|
||||||
SLE_VAR(StoryPage, date, SLE_UINT32),
|
SLE_VAR(StoryPage, date, SLE_UINT32),
|
||||||
SLE_CONDVAR(StoryPage, company, SLE_FILE_U16 | SLE_VAR_U8, 0, 184),
|
SLE_CONDVAR(StoryPage, company, SLE_FILE_U16 | SLE_VAR_U8, SL_MIN_VERSION, SLV_185),
|
||||||
SLE_CONDVAR(StoryPage, company, SLE_UINT8, 185, SL_MAX_VERSION),
|
SLE_CONDVAR(StoryPage, company, SLE_UINT8, SLV_185, SL_MAX_VERSION),
|
||||||
SLE_STR(StoryPage, title, SLE_STR | SLF_ALLOW_CONTROL, 0),
|
SLE_STR(StoryPage, title, SLE_STR | SLF_ALLOW_CONTROL, 0),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
@@ -63,7 +63,7 @@ char *CopyFromOldName(StringID id)
|
|||||||
/* Is this name an (old) custom name? */
|
/* Is this name an (old) custom name? */
|
||||||
if (GetStringTab(id) != TEXT_TAB_OLD_CUSTOM) return NULL;
|
if (GetStringTab(id) != TEXT_TAB_OLD_CUSTOM) return NULL;
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(37)) {
|
if (IsSavegameVersionBefore(SLV_37)) {
|
||||||
/* Allow for expansion when converted to UTF-8. */
|
/* Allow for expansion when converted to UTF-8. */
|
||||||
char tmp[LEN_OLD_STRINGS * MAX_CHAR_LENGTH];
|
char tmp[LEN_OLD_STRINGS * MAX_CHAR_LENGTH];
|
||||||
uint offs = _savegame_type == SGT_TTO ? LEN_OLD_STRINGS_TTO * GB(id, 0, 8) : LEN_OLD_STRINGS * GB(id, 0, 9);
|
uint offs = _savegame_type == SGT_TTO ? LEN_OLD_STRINGS_TTO * GB(id, 0, 8) : LEN_OLD_STRINGS * GB(id, 0, 9);
|
||||||
|
@@ -19,13 +19,13 @@
|
|||||||
static const SaveLoad _subsidies_desc[] = {
|
static const SaveLoad _subsidies_desc[] = {
|
||||||
SLE_VAR(Subsidy, cargo_type, SLE_UINT8),
|
SLE_VAR(Subsidy, cargo_type, SLE_UINT8),
|
||||||
SLE_VAR(Subsidy, remaining, SLE_UINT8),
|
SLE_VAR(Subsidy, remaining, SLE_UINT8),
|
||||||
SLE_CONDVAR(Subsidy, awarded, SLE_UINT8, 125, SL_MAX_VERSION),
|
SLE_CONDVAR(Subsidy, awarded, SLE_UINT8, SLV_125, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Subsidy, src_type, SLE_UINT8, 125, SL_MAX_VERSION),
|
SLE_CONDVAR(Subsidy, src_type, SLE_UINT8, SLV_125, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Subsidy, dst_type, SLE_UINT8, 125, SL_MAX_VERSION),
|
SLE_CONDVAR(Subsidy, dst_type, SLE_UINT8, SLV_125, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Subsidy, src, SLE_FILE_U8 | SLE_VAR_U16, 0, 4),
|
SLE_CONDVAR(Subsidy, src, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_5),
|
||||||
SLE_CONDVAR(Subsidy, src, SLE_UINT16, 5, SL_MAX_VERSION),
|
SLE_CONDVAR(Subsidy, src, SLE_UINT16, SLV_5, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Subsidy, dst, SLE_FILE_U8 | SLE_VAR_U16, 0, 4),
|
SLE_CONDVAR(Subsidy, dst, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_5),
|
||||||
SLE_CONDVAR(Subsidy, dst, SLE_UINT16, 5, SL_MAX_VERSION),
|
SLE_CONDVAR(Subsidy, dst, SLE_UINT16, SLV_5, SL_MAX_VERSION),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -17,11 +17,11 @@ const SaveLoad* GTD() {
|
|||||||
SLE_VAR(TemplateVehicle, reuse_depot_vehicles, SLE_UINT8),
|
SLE_VAR(TemplateVehicle, reuse_depot_vehicles, SLE_UINT8),
|
||||||
SLE_VAR(TemplateVehicle, keep_remaining_vehicles, SLE_UINT8),
|
SLE_VAR(TemplateVehicle, keep_remaining_vehicles, SLE_UINT8),
|
||||||
SLE_VAR(TemplateVehicle, refit_as_template, SLE_UINT8),
|
SLE_VAR(TemplateVehicle, refit_as_template, SLE_UINT8),
|
||||||
SLE_CONDVAR_X(TemplateVehicle, replace_old_only, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TEMPLATE_REPLACEMENT, 5)),
|
SLE_CONDVAR_X(TemplateVehicle, replace_old_only, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TEMPLATE_REPLACEMENT, 5)),
|
||||||
|
|
||||||
SLE_CONDVAR_X(TemplateVehicle, owner, SLE_VAR_U8 | SLE_FILE_U32, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TEMPLATE_REPLACEMENT, 0, 3)),
|
SLE_CONDVAR_X(TemplateVehicle, owner, SLE_VAR_U8 | SLE_FILE_U32, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TEMPLATE_REPLACEMENT, 0, 3)),
|
||||||
SLE_CONDVAR_X(TemplateVehicle, owner, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TEMPLATE_REPLACEMENT, 4)),
|
SLE_CONDVAR_X(TemplateVehicle, owner, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TEMPLATE_REPLACEMENT, 4)),
|
||||||
SLE_CONDNULL_X(1, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TEMPLATE_REPLACEMENT, 0, 3)),
|
SLE_CONDNULL_X(1, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TEMPLATE_REPLACEMENT, 0, 3)),
|
||||||
|
|
||||||
SLE_VAR(TemplateVehicle, engine_type, SLE_UINT16),
|
SLE_VAR(TemplateVehicle, engine_type, SLE_UINT16),
|
||||||
SLE_VAR(TemplateVehicle, cargo_type, SLE_UINT8),
|
SLE_VAR(TemplateVehicle, cargo_type, SLE_UINT8),
|
||||||
@@ -40,10 +40,10 @@ const SaveLoad* GTD() {
|
|||||||
SLE_VAR(TemplateVehicle, weight, SLE_UINT32),
|
SLE_VAR(TemplateVehicle, weight, SLE_UINT32),
|
||||||
SLE_VAR(TemplateVehicle, max_te, SLE_UINT32),
|
SLE_VAR(TemplateVehicle, max_te, SLE_UINT32),
|
||||||
|
|
||||||
SLE_CONDNULL_X(1, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TEMPLATE_REPLACEMENT, 0, 3)),
|
SLE_CONDNULL_X(1, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TEMPLATE_REPLACEMENT, 0, 3)),
|
||||||
SLE_CONDNULL_X(4, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TEMPLATE_REPLACEMENT, 0, 1)),
|
SLE_CONDNULL_X(4, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TEMPLATE_REPLACEMENT, 0, 1)),
|
||||||
SLE_CONDNULL_X(36, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TEMPLATE_REPLACEMENT, 2, 3)),
|
SLE_CONDNULL_X(36, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TEMPLATE_REPLACEMENT, 2, 3)),
|
||||||
SLE_CONDNULL_X(4, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TEMPLATE_REPLACEMENT, 0, 3)),
|
SLE_CONDNULL_X(4, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TEMPLATE_REPLACEMENT, 0, 3)),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
@@ -116,115 +116,115 @@ void UpdateHousesAndTowns()
|
|||||||
|
|
||||||
/** Save and load of towns. */
|
/** Save and load of towns. */
|
||||||
static const SaveLoad _town_desc[] = {
|
static const SaveLoad _town_desc[] = {
|
||||||
SLE_CONDVAR(Town, xy, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(Town, xy, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Town, xy, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Town, xy, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDNULL(2, 0, 2), ///< population, no longer in use
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_3), ///< population, no longer in use
|
||||||
SLE_CONDNULL(4, 3, 84), ///< population, no longer in use
|
SLE_CONDNULL(4, SLV_3, SLV_85), ///< population, no longer in use
|
||||||
SLE_CONDNULL(2, 0, 91), ///< num_houses, no longer in use
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_92), ///< num_houses, no longer in use
|
||||||
|
|
||||||
SLE_CONDVAR(Town, townnamegrfid, SLE_UINT32, 66, SL_MAX_VERSION),
|
SLE_CONDVAR(Town, townnamegrfid, SLE_UINT32, SLV_66, SL_MAX_VERSION),
|
||||||
SLE_VAR(Town, townnametype, SLE_UINT16),
|
SLE_VAR(Town, townnametype, SLE_UINT16),
|
||||||
SLE_VAR(Town, townnameparts, SLE_UINT32),
|
SLE_VAR(Town, townnameparts, SLE_UINT32),
|
||||||
SLE_CONDSTR(Town, name, SLE_STR | SLF_ALLOW_CONTROL, 0, 84, SL_MAX_VERSION),
|
SLE_CONDSTR(Town, name, SLE_STR | SLF_ALLOW_CONTROL, 0, SLV_84, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_VAR(Town, flags, SLE_UINT8),
|
SLE_VAR(Town, flags, SLE_UINT8),
|
||||||
SLE_CONDVAR(Town, statues, SLE_FILE_U8 | SLE_VAR_U16, 0, 103),
|
SLE_CONDVAR(Town, statues, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_104),
|
||||||
SLE_CONDVAR(Town, statues, SLE_UINT16, 104, SL_MAX_VERSION),
|
SLE_CONDVAR(Town, statues, SLE_UINT16, SLV_104, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDNULL(1, 0, 1), ///< sort_index, no longer in use
|
SLE_CONDNULL(1, SL_MIN_VERSION, SLV_2), ///< sort_index, no longer in use
|
||||||
|
|
||||||
SLE_CONDVAR(Town, have_ratings, SLE_FILE_U8 | SLE_VAR_U16, 0, 103),
|
SLE_CONDVAR(Town, have_ratings, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_104),
|
||||||
SLE_CONDVAR(Town, have_ratings, SLE_UINT16, 104, SL_MAX_VERSION),
|
SLE_CONDVAR(Town, have_ratings, SLE_UINT16, SLV_104, SL_MAX_VERSION),
|
||||||
SLE_CONDARR(Town, ratings, SLE_INT16, 8, 0, 103),
|
SLE_CONDARR(Town, ratings, SLE_INT16, 8, SL_MIN_VERSION, SLV_104),
|
||||||
SLE_CONDARR(Town, ratings, SLE_INT16, MAX_COMPANIES, 104, SL_MAX_VERSION),
|
SLE_CONDARR(Town, ratings, SLE_INT16, MAX_COMPANIES, SLV_104, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL_X(MAX_COMPANIES, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
SLE_CONDNULL_X(MAX_COMPANIES, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
||||||
/* failed bribe attempts are stored since savegame format 4 */
|
/* failed bribe attempts are stored since savegame format 4 */
|
||||||
SLE_CONDARR(Town, unwanted, SLE_INT8, 8, 4, 103),
|
SLE_CONDARR(Town, unwanted, SLE_INT8, 8, SLV_4, SLV_104),
|
||||||
SLE_CONDARR(Town, unwanted, SLE_INT8, MAX_COMPANIES, 104, SL_MAX_VERSION),
|
SLE_CONDARR(Town, unwanted, SLE_INT8, MAX_COMPANIES, SLV_104, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDVAR(Town, supplied[CT_PASSENGERS].old_max, SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
|
SLE_CONDVAR(Town, supplied[CT_PASSENGERS].old_max, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_9),
|
||||||
SLE_CONDVAR(Town, supplied[CT_MAIL].old_max, SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
|
SLE_CONDVAR(Town, supplied[CT_MAIL].old_max, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_9),
|
||||||
SLE_CONDVAR(Town, supplied[CT_PASSENGERS].new_max, SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
|
SLE_CONDVAR(Town, supplied[CT_PASSENGERS].new_max, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_9),
|
||||||
SLE_CONDVAR(Town, supplied[CT_MAIL].new_max, SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
|
SLE_CONDVAR(Town, supplied[CT_MAIL].new_max, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_9),
|
||||||
SLE_CONDVAR(Town, supplied[CT_PASSENGERS].old_act, SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
|
SLE_CONDVAR(Town, supplied[CT_PASSENGERS].old_act, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_9),
|
||||||
SLE_CONDVAR(Town, supplied[CT_MAIL].old_act, SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
|
SLE_CONDVAR(Town, supplied[CT_MAIL].old_act, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_9),
|
||||||
SLE_CONDVAR(Town, supplied[CT_PASSENGERS].new_act, SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
|
SLE_CONDVAR(Town, supplied[CT_PASSENGERS].new_act, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_9),
|
||||||
SLE_CONDVAR(Town, supplied[CT_MAIL].new_act, SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
|
SLE_CONDVAR(Town, supplied[CT_MAIL].new_act, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_9),
|
||||||
|
|
||||||
SLE_CONDVAR(Town, supplied[CT_PASSENGERS].old_max, SLE_UINT32, 9, 164),
|
SLE_CONDVAR(Town, supplied[CT_PASSENGERS].old_max, SLE_UINT32, SLV_9, SLV_165),
|
||||||
SLE_CONDVAR(Town, supplied[CT_MAIL].old_max, SLE_UINT32, 9, 164),
|
SLE_CONDVAR(Town, supplied[CT_MAIL].old_max, SLE_UINT32, SLV_9, SLV_165),
|
||||||
SLE_CONDVAR(Town, supplied[CT_PASSENGERS].new_max, SLE_UINT32, 9, 164),
|
SLE_CONDVAR(Town, supplied[CT_PASSENGERS].new_max, SLE_UINT32, SLV_9, SLV_165),
|
||||||
SLE_CONDVAR(Town, supplied[CT_MAIL].new_max, SLE_UINT32, 9, 164),
|
SLE_CONDVAR(Town, supplied[CT_MAIL].new_max, SLE_UINT32, SLV_9, SLV_165),
|
||||||
SLE_CONDVAR(Town, supplied[CT_PASSENGERS].old_act, SLE_UINT32, 9, 164),
|
SLE_CONDVAR(Town, supplied[CT_PASSENGERS].old_act, SLE_UINT32, SLV_9, SLV_165),
|
||||||
SLE_CONDVAR(Town, supplied[CT_MAIL].old_act, SLE_UINT32, 9, 164),
|
SLE_CONDVAR(Town, supplied[CT_MAIL].old_act, SLE_UINT32, SLV_9, SLV_165),
|
||||||
SLE_CONDVAR(Town, supplied[CT_PASSENGERS].new_act, SLE_UINT32, 9, 164),
|
SLE_CONDVAR(Town, supplied[CT_PASSENGERS].new_act, SLE_UINT32, SLV_9, SLV_165),
|
||||||
SLE_CONDVAR(Town, supplied[CT_MAIL].new_act, SLE_UINT32, 9, 164),
|
SLE_CONDVAR(Town, supplied[CT_MAIL].new_act, SLE_UINT32, SLV_9, SLV_165),
|
||||||
|
|
||||||
SLE_CONDNULL(2, 0, 163), ///< pct_pass_transported / pct_mail_transported, now computed on the fly
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_164), ///< pct_pass_transported / pct_mail_transported, now computed on the fly
|
||||||
|
|
||||||
SLE_CONDVAR(Town, received[TE_FOOD].old_act, SLE_UINT16, 0, 164),
|
SLE_CONDVAR(Town, received[TE_FOOD].old_act, SLE_UINT16, SL_MIN_VERSION, SLV_165),
|
||||||
SLE_CONDVAR(Town, received[TE_WATER].old_act, SLE_UINT16, 0, 164),
|
SLE_CONDVAR(Town, received[TE_WATER].old_act, SLE_UINT16, SL_MIN_VERSION, SLV_165),
|
||||||
SLE_CONDVAR(Town, received[TE_FOOD].new_act, SLE_UINT16, 0, 164),
|
SLE_CONDVAR(Town, received[TE_FOOD].new_act, SLE_UINT16, SL_MIN_VERSION, SLV_165),
|
||||||
SLE_CONDVAR(Town, received[TE_WATER].new_act, SLE_UINT16, 0, 164),
|
SLE_CONDVAR(Town, received[TE_WATER].new_act, SLE_UINT16, SL_MIN_VERSION, SLV_165),
|
||||||
|
|
||||||
SLE_CONDARR(Town, goal, SLE_UINT32, NUM_TE, 165, SL_MAX_VERSION),
|
SLE_CONDARR(Town, goal, SLE_UINT32, NUM_TE, SLV_165, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDSTR(Town, text, SLE_STR | SLF_ALLOW_CONTROL, 0, 168, SL_MAX_VERSION),
|
SLE_CONDSTR(Town, text, SLE_STR | SLF_ALLOW_CONTROL, 0, SLV_168, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDVAR(Town, time_until_rebuild, SLE_FILE_U8 | SLE_VAR_U16, 0, 53),
|
SLE_CONDVAR(Town, time_until_rebuild, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_54),
|
||||||
SLE_CONDVAR(Town, grow_counter, SLE_FILE_U8 | SLE_VAR_U16, 0, 53),
|
SLE_CONDVAR(Town, grow_counter, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_54),
|
||||||
SLE_CONDVAR(Town, growth_rate, SLE_FILE_U8 | SLE_VAR_I16, 0, 53),
|
SLE_CONDVAR(Town, growth_rate, SLE_FILE_U8 | SLE_VAR_I16, SL_MIN_VERSION, SLV_54),
|
||||||
|
|
||||||
SLE_CONDVAR(Town, time_until_rebuild, SLE_UINT16, 54, SL_MAX_VERSION),
|
SLE_CONDVAR(Town, time_until_rebuild, SLE_UINT16, SLV_54, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Town, grow_counter, SLE_UINT16, 54, SL_MAX_VERSION),
|
SLE_CONDVAR(Town, grow_counter, SLE_UINT16, SLV_54, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDVAR(Town, growth_rate, SLE_FILE_I16 | SLE_VAR_U16, 54, 164),
|
SLE_CONDVAR(Town, growth_rate, SLE_FILE_I16 | SLE_VAR_U16, SLV_54, SLV_165),
|
||||||
SLE_CONDVAR(Town, growth_rate, SLE_UINT16, 165, SL_MAX_VERSION),
|
SLE_CONDVAR(Town, growth_rate, SLE_UINT16, SLV_165, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_VAR(Town, fund_buildings_months, SLE_UINT8),
|
SLE_VAR(Town, fund_buildings_months, SLE_UINT8),
|
||||||
SLE_VAR(Town, road_build_months, SLE_UINT8),
|
SLE_VAR(Town, road_build_months, SLE_UINT8),
|
||||||
|
|
||||||
SLE_CONDVAR(Town, exclusivity, SLE_UINT8, 2, SL_MAX_VERSION),
|
SLE_CONDVAR(Town, exclusivity, SLE_UINT8, SLV_2, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Town, exclusive_counter, SLE_UINT8, 2, SL_MAX_VERSION),
|
SLE_CONDVAR(Town, exclusive_counter, SLE_UINT8, SLV_2, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDVAR(Town, larger_town, SLE_BOOL, 56, SL_MAX_VERSION),
|
SLE_CONDVAR(Town, larger_town, SLE_BOOL, SLV_56, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Town, layout, SLE_UINT8, 113, SL_MAX_VERSION),
|
SLE_CONDVAR(Town, layout, SLE_UINT8, SLV_113, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDLST(Town, psa_list, REF_STORAGE, 161, SL_MAX_VERSION),
|
SLE_CONDLST(Town, psa_list, REF_STORAGE, SLV_161, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDVAR(Town, cargo_produced, SLE_FILE_U32 | SLE_VAR_U64, 166, 198),
|
SLE_CONDVAR(Town, cargo_produced, SLE_FILE_U32 | SLE_VAR_U64, SLV_166, SLV_EXTEND_CARGOTYPES),
|
||||||
SLE_CONDVAR(Town, cargo_produced, SLE_UINT64, 199, SL_MAX_VERSION),
|
SLE_CONDVAR(Town, cargo_produced, SLE_UINT64, SLV_EXTEND_CARGOTYPES, SL_MAX_VERSION),
|
||||||
|
|
||||||
/* reserve extra space in savegame here. (currently 30 bytes) */
|
/* reserve extra space in savegame here. (currently 30 bytes) */
|
||||||
SLE_CONDNULL(30, 2, SL_MAX_VERSION),
|
SLE_CONDNULL(30, SLV_2, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
static const SaveLoad _town_supplied_desc[] = {
|
static const SaveLoad _town_supplied_desc[] = {
|
||||||
SLE_CONDVAR(TransportedCargoStat<uint32>, old_max, SLE_UINT32, 165, SL_MAX_VERSION),
|
SLE_CONDVAR(TransportedCargoStat<uint32>, old_max, SLE_UINT32, SLV_165, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(TransportedCargoStat<uint32>, new_max, SLE_UINT32, 165, SL_MAX_VERSION),
|
SLE_CONDVAR(TransportedCargoStat<uint32>, new_max, SLE_UINT32, SLV_165, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(TransportedCargoStat<uint32>, old_act, SLE_UINT32, 165, SL_MAX_VERSION),
|
SLE_CONDVAR(TransportedCargoStat<uint32>, old_act, SLE_UINT32, SLV_165, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(TransportedCargoStat<uint32>, new_act, SLE_UINT32, 165, SL_MAX_VERSION),
|
SLE_CONDVAR(TransportedCargoStat<uint32>, new_act, SLE_UINT32, SLV_165, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
static const SaveLoad _town_received_desc[] = {
|
static const SaveLoad _town_received_desc[] = {
|
||||||
SLE_CONDVAR(TransportedCargoStat<uint16>, old_max, SLE_UINT16, 165, SL_MAX_VERSION),
|
SLE_CONDVAR(TransportedCargoStat<uint16>, old_max, SLE_UINT16, SLV_165, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(TransportedCargoStat<uint16>, new_max, SLE_UINT16, 165, SL_MAX_VERSION),
|
SLE_CONDVAR(TransportedCargoStat<uint16>, new_max, SLE_UINT16, SLV_165, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(TransportedCargoStat<uint16>, old_act, SLE_UINT16, 165, SL_MAX_VERSION),
|
SLE_CONDVAR(TransportedCargoStat<uint16>, old_act, SLE_UINT16, SLV_165, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(TransportedCargoStat<uint16>, new_act, SLE_UINT16, 165, SL_MAX_VERSION),
|
SLE_CONDVAR(TransportedCargoStat<uint16>, new_act, SLE_UINT16, SLV_165, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
static const SaveLoad _town_received_desc_spp[] = {
|
static const SaveLoad _town_received_desc_spp[] = {
|
||||||
SLE_CONDVAR(TransportedCargoStat<uint16>, old_max, SLE_FILE_U32 | SLE_VAR_U16, 165, SL_MAX_VERSION),
|
SLE_CONDVAR(TransportedCargoStat<uint16>, old_max, SLE_FILE_U32 | SLE_VAR_U16, SLV_165, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(TransportedCargoStat<uint16>, new_max, SLE_FILE_U32 | SLE_VAR_U16, 165, SL_MAX_VERSION),
|
SLE_CONDVAR(TransportedCargoStat<uint16>, new_max, SLE_FILE_U32 | SLE_VAR_U16, SLV_165, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(TransportedCargoStat<uint16>, old_act, SLE_FILE_U32 | SLE_VAR_U16, 165, SL_MAX_VERSION),
|
SLE_CONDVAR(TransportedCargoStat<uint16>, old_act, SLE_FILE_U32 | SLE_VAR_U16, SLV_165, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(TransportedCargoStat<uint16>, new_act, SLE_FILE_U32 | SLE_VAR_U16, 165, SL_MAX_VERSION),
|
SLE_CONDVAR(TransportedCargoStat<uint16>, new_act, SLE_FILE_U32 | SLE_VAR_U16, SLV_165, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -289,7 +289,7 @@ static void Save_TOWN()
|
|||||||
static void Load_TOWN()
|
static void Load_TOWN()
|
||||||
{
|
{
|
||||||
int index;
|
int index;
|
||||||
uint num_cargo = IsSavegameVersionBefore(199) ? 32 : NUM_CARGO;
|
uint num_cargo = IsSavegameVersionBefore(SLV_EXTEND_CARGOTYPES) ? 32 : NUM_CARGO;
|
||||||
|
|
||||||
while ((index = SlIterateArray()) != -1) {
|
while ((index = SlIterateArray()) != -1) {
|
||||||
Town *t = new (index) Town();
|
Town *t = new (index) Town();
|
||||||
@@ -312,7 +312,7 @@ static void Load_TOWN()
|
|||||||
SlErrorCorrupt("Invalid town name generator");
|
SlErrorCorrupt("Invalid town name generator");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(166)) continue;
|
if (IsSavegameVersionBefore(SLV_166)) continue;
|
||||||
|
|
||||||
SlObject(&t->cargo_accepted, GetTileMatrixDesc());
|
SlObject(&t->cargo_accepted, GetTileMatrixDesc());
|
||||||
if (t->cargo_accepted.area.w != 0) {
|
if (t->cargo_accepted.area.w != 0) {
|
||||||
@@ -330,7 +330,7 @@ static void Load_TOWN()
|
|||||||
static void Ptrs_TOWN()
|
static void Ptrs_TOWN()
|
||||||
{
|
{
|
||||||
/* Don't run when savegame version lower than 161. */
|
/* Don't run when savegame version lower than 161. */
|
||||||
if (IsSavegameVersionBefore(161)) return;
|
if (IsSavegameVersionBefore(SLV_161)) return;
|
||||||
|
|
||||||
Town *t;
|
Town *t;
|
||||||
FOR_ALL_TOWNS(t) {
|
FOR_ALL_TOWNS(t) {
|
||||||
|
@@ -18,10 +18,10 @@
|
|||||||
|
|
||||||
|
|
||||||
static const SaveLoad _tunnel_desc[] = {
|
static const SaveLoad _tunnel_desc[] = {
|
||||||
SLE_CONDVAR(Tunnel, tile_n, SLE_UINT32, 0, SL_MAX_VERSION),
|
SLE_CONDVAR(Tunnel, tile_n, SLE_UINT32, SL_MIN_VERSION, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Tunnel, tile_s, SLE_UINT32, 0, SL_MAX_VERSION),
|
SLE_CONDVAR(Tunnel, tile_s, SLE_UINT32, SL_MIN_VERSION, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Tunnel, height, SLE_UINT8, 0, SL_MAX_VERSION),
|
SLE_CONDVAR(Tunnel, height, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Tunnel, is_chunnel, SLE_BOOL, 0, SL_MAX_VERSION),
|
SLE_CONDVAR(Tunnel, is_chunnel, SLE_BOOL, SL_MIN_VERSION, SL_MAX_VERSION),
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -275,7 +275,7 @@ void AfterLoadVehicles(bool part_of_load)
|
|||||||
|
|
||||||
FOR_ALL_VEHICLES(v) {
|
FOR_ALL_VEHICLES(v) {
|
||||||
if (v->orders.old != NULL) {
|
if (v->orders.old != NULL) {
|
||||||
if (IsSavegameVersionBefore(105)) { // Pre-105 didn't save an OrderList
|
if (IsSavegameVersionBefore(SLV_105)) { // Pre-105 didn't save an OrderList
|
||||||
if (mapping[v->orders.old] == NULL) {
|
if (mapping[v->orders.old] == NULL) {
|
||||||
/* This adds the whole shared vehicle chain for case b */
|
/* This adds the whole shared vehicle chain for case b */
|
||||||
|
|
||||||
@@ -287,7 +287,7 @@ void AfterLoadVehicles(bool part_of_load)
|
|||||||
} else {
|
} else {
|
||||||
v->orders.list = mapping[v->orders.old];
|
v->orders.list = mapping[v->orders.old];
|
||||||
/* For old games (case a) we must create the shared vehicle chain */
|
/* For old games (case a) we must create the shared vehicle chain */
|
||||||
if (IsSavegameVersionBefore(5, 2)) {
|
if (IsSavegameVersionBefore(SLV_5, 2)) {
|
||||||
v->AddToShared(v->orders.list->GetFirstSharedVehicle());
|
v->AddToShared(v->orders.list->GetFirstSharedVehicle());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -310,7 +310,7 @@ void AfterLoadVehicles(bool part_of_load)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (part_of_load) {
|
if (part_of_load) {
|
||||||
if (IsSavegameVersionBefore(105)) {
|
if (IsSavegameVersionBefore(SLV_105)) {
|
||||||
/* Before 105 there was no order for shared orders, thus it messed up horribly */
|
/* Before 105 there was no order for shared orders, thus it messed up horribly */
|
||||||
FOR_ALL_VEHICLES(v) {
|
FOR_ALL_VEHICLES(v) {
|
||||||
if (v->First() != v || v->orders.list != NULL || v->previous_shared != NULL || v->next_shared == NULL) continue;
|
if (v->First() != v || v->orders.list != NULL || v->previous_shared != NULL || v->next_shared == NULL) continue;
|
||||||
@@ -324,7 +324,7 @@ void AfterLoadVehicles(bool part_of_load)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(157)) {
|
if (IsSavegameVersionBefore(SLV_157)) {
|
||||||
/* The road vehicle subtype was converted to a flag. */
|
/* The road vehicle subtype was converted to a flag. */
|
||||||
RoadVehicle *rv;
|
RoadVehicle *rv;
|
||||||
FOR_ALL_ROADVEHICLES(rv) {
|
FOR_ALL_ROADVEHICLES(rv) {
|
||||||
@@ -342,7 +342,7 @@ void AfterLoadVehicles(bool part_of_load)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(160)) {
|
if (IsSavegameVersionBefore(SLV_160)) {
|
||||||
/* In some old savegames there might be some "crap" stored. */
|
/* In some old savegames there might be some "crap" stored. */
|
||||||
FOR_ALL_VEHICLES(v) {
|
FOR_ALL_VEHICLES(v) {
|
||||||
if (!v->IsPrimaryVehicle() && v->type != VEH_DISASTER) {
|
if (!v->IsPrimaryVehicle() && v->type != VEH_DISASTER) {
|
||||||
@@ -352,14 +352,14 @@ void AfterLoadVehicles(bool part_of_load)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(162)) {
|
if (IsSavegameVersionBefore(SLV_162)) {
|
||||||
/* Set the vehicle-local cargo age counter from the old global counter. */
|
/* Set the vehicle-local cargo age counter from the old global counter. */
|
||||||
FOR_ALL_VEHICLES(v) {
|
FOR_ALL_VEHICLES(v) {
|
||||||
v->cargo_age_counter = _age_cargo_skip_counter;
|
v->cargo_age_counter = _age_cargo_skip_counter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(180)) {
|
if (IsSavegameVersionBefore(SLV_180)) {
|
||||||
/* Set service interval flags */
|
/* Set service interval flags */
|
||||||
FOR_ALL_VEHICLES(v) {
|
FOR_ALL_VEHICLES(v) {
|
||||||
if (!v->IsPrimaryVehicle()) continue;
|
if (!v->IsPrimaryVehicle()) continue;
|
||||||
@@ -372,12 +372,23 @@ void AfterLoadVehicles(bool part_of_load)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(204)) {
|
if (IsSavegameVersionBefore(SLV_SHIP_ROTATION)) {
|
||||||
/* Ship rotation added */
|
/* Ship rotation added */
|
||||||
Ship *s;
|
Ship *s;
|
||||||
FOR_ALL_SHIPS(s) {
|
FOR_ALL_SHIPS(s) {
|
||||||
s->rotation = s->direction;
|
s->rotation = s->direction;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
Ship *s;
|
||||||
|
FOR_ALL_SHIPS(s) {
|
||||||
|
if (s->rotation == s->direction) continue;
|
||||||
|
/* In case we are rotating on gameload, set the rotation position to
|
||||||
|
* the current position, otherwise the applied workaround offset would
|
||||||
|
* be with respect to 0,0.
|
||||||
|
*/
|
||||||
|
s->rotation_x_pos = s->x_pos;
|
||||||
|
s->rotation_y_pos = s->y_pos;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
v = nullptr;
|
v = nullptr;
|
||||||
@@ -420,7 +431,7 @@ void AfterLoadVehicles(bool part_of_load)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Stop non-front engines */
|
/* Stop non-front engines */
|
||||||
if (part_of_load && IsSavegameVersionBefore(112)) {
|
if (part_of_load && IsSavegameVersionBefore(SLV_112)) {
|
||||||
FOR_ALL_VEHICLES(v) {
|
FOR_ALL_VEHICLES(v) {
|
||||||
if (v->type == VEH_TRAIN) {
|
if (v->type == VEH_TRAIN) {
|
||||||
Train *t = Train::From(v);
|
Train *t = Train::From(v);
|
||||||
@@ -433,7 +444,7 @@ void AfterLoadVehicles(bool part_of_load)
|
|||||||
}
|
}
|
||||||
/* trains weren't stopping gradually in old OTTD versions (and TTO/TTD)
|
/* trains weren't stopping gradually in old OTTD versions (and TTO/TTD)
|
||||||
* other vehicle types didn't have zero speed while stopped (even in 'recent' OTTD versions) */
|
* other vehicle types didn't have zero speed while stopped (even in 'recent' OTTD versions) */
|
||||||
if ((v->vehstatus & VS_STOPPED) && (v->type != VEH_TRAIN || IsSavegameVersionBefore(2, 1))) {
|
if ((v->vehstatus & VS_STOPPED) && (v->type != VEH_TRAIN || IsSavegameVersionBefore(SLV_2, 1))) {
|
||||||
v->cur_speed = 0;
|
v->cur_speed = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -595,157 +606,157 @@ const SaveLoad *GetVehicleDescription(VehicleType vt)
|
|||||||
SLE_VAR(Vehicle, subtype, SLE_UINT8),
|
SLE_VAR(Vehicle, subtype, SLE_UINT8),
|
||||||
|
|
||||||
SLE_REF(Vehicle, next, REF_VEHICLE_OLD),
|
SLE_REF(Vehicle, next, REF_VEHICLE_OLD),
|
||||||
SLE_CONDVAR(Vehicle, name, SLE_NAME, 0, 83),
|
SLE_CONDVAR(Vehicle, name, SLE_NAME, SL_MIN_VERSION, SLV_84),
|
||||||
SLE_CONDSTR(Vehicle, name, SLE_STR | SLF_ALLOW_CONTROL, 0, 84, SL_MAX_VERSION),
|
SLE_CONDSTR(Vehicle, name, SLE_STR | SLF_ALLOW_CONTROL, 0, SLV_84, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, unitnumber, SLE_FILE_U8 | SLE_VAR_U16, 0, 7),
|
SLE_CONDVAR(Vehicle, unitnumber, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_8),
|
||||||
SLE_CONDVAR(Vehicle, unitnumber, SLE_UINT16, 8, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, unitnumber, SLE_UINT16, SLV_8, SL_MAX_VERSION),
|
||||||
SLE_VAR(Vehicle, owner, SLE_UINT8),
|
SLE_VAR(Vehicle, owner, SLE_UINT8),
|
||||||
SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Vehicle, tile, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, tile, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, dest_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(Vehicle, dest_tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Vehicle, dest_tile, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, dest_tile, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Vehicle, x_pos, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, x_pos, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Vehicle, y_pos, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, y_pos, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, z_pos, SLE_FILE_U8 | SLE_VAR_I32, 0, 163),
|
SLE_CONDVAR(Vehicle, z_pos, SLE_FILE_U8 | SLE_VAR_I32, SL_MIN_VERSION, SLV_164),
|
||||||
SLE_CONDVAR(Vehicle, z_pos, SLE_INT32, 164, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, z_pos, SLE_INT32, SLV_164, SL_MAX_VERSION),
|
||||||
SLE_VAR(Vehicle, direction, SLE_UINT8),
|
SLE_VAR(Vehicle, direction, SLE_UINT8),
|
||||||
|
|
||||||
SLE_CONDNULL(2, 0, 57),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_58),
|
||||||
SLE_VAR(Vehicle, spritenum, SLE_UINT8),
|
SLE_VAR(Vehicle, spritenum, SLE_UINT8),
|
||||||
SLE_CONDNULL(5, 0, 57),
|
SLE_CONDNULL(5, SL_MIN_VERSION, SLV_58),
|
||||||
SLE_VAR(Vehicle, engine_type, SLE_UINT16),
|
SLE_VAR(Vehicle, engine_type, SLE_UINT16),
|
||||||
|
|
||||||
SLE_CONDNULL(2, 0, 151),
|
SLE_CONDNULL(2, SL_MIN_VERSION, SLV_152),
|
||||||
SLE_VAR(Vehicle, cur_speed, SLE_UINT16),
|
SLE_VAR(Vehicle, cur_speed, SLE_UINT16),
|
||||||
SLE_VAR(Vehicle, subspeed, SLE_UINT8),
|
SLE_VAR(Vehicle, subspeed, SLE_UINT8),
|
||||||
SLE_VAR(Vehicle, acceleration, SLE_UINT8),
|
SLE_VAR(Vehicle, acceleration, SLE_UINT8),
|
||||||
SLE_VAR(Vehicle, progress, SLE_UINT8),
|
SLE_VAR(Vehicle, progress, SLE_UINT8),
|
||||||
|
|
||||||
SLE_VAR(Vehicle, vehstatus, SLE_UINT8),
|
SLE_VAR(Vehicle, vehstatus, SLE_UINT8),
|
||||||
SLE_CONDVAR(Vehicle, last_station_visited, SLE_FILE_U8 | SLE_VAR_U16, 0, 4),
|
SLE_CONDVAR(Vehicle, last_station_visited, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_5),
|
||||||
SLE_CONDVAR(Vehicle, last_station_visited, SLE_UINT16, 5, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, last_station_visited, SLE_UINT16, SLV_5, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, last_loading_station, SLE_UINT16, 182, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, last_loading_station, SLE_UINT16, SLV_182, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_VAR(Vehicle, cargo_type, SLE_UINT8),
|
SLE_VAR(Vehicle, cargo_type, SLE_UINT8),
|
||||||
SLE_CONDVAR(Vehicle, cargo_subtype, SLE_UINT8, 35, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, cargo_subtype, SLE_UINT8, SLV_35, SL_MAX_VERSION),
|
||||||
SLEG_CONDVAR( _cargo_days, SLE_UINT8, 0, 67),
|
SLEG_CONDVAR( _cargo_days, SLE_UINT8, SL_MIN_VERSION, SLV_68),
|
||||||
SLEG_CONDVAR( _cargo_source, SLE_FILE_U8 | SLE_VAR_U16, 0, 6),
|
SLEG_CONDVAR( _cargo_source, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_7),
|
||||||
SLEG_CONDVAR( _cargo_source, SLE_UINT16, 7, 67),
|
SLEG_CONDVAR( _cargo_source, SLE_UINT16, SLV_7, SLV_68),
|
||||||
SLEG_CONDVAR( _cargo_source_xy, SLE_UINT32, 44, 67),
|
SLEG_CONDVAR( _cargo_source_xy, SLE_UINT32, SLV_44, SLV_68),
|
||||||
SLE_VAR(Vehicle, cargo_cap, SLE_UINT16),
|
SLE_VAR(Vehicle, cargo_cap, SLE_UINT16),
|
||||||
SLE_CONDVAR(Vehicle, refit_cap, SLE_UINT16, 182, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, refit_cap, SLE_UINT16, SLV_182, SL_MAX_VERSION),
|
||||||
SLEG_CONDVAR( _cargo_count, SLE_UINT16, 0, 67),
|
SLEG_CONDVAR( _cargo_count, SLE_UINT16, SL_MIN_VERSION, SLV_68),
|
||||||
SLE_CONDPTRDEQ(Vehicle, cargo.packets, REF_CARGO_PACKET, 68, SL_MAX_VERSION),
|
SLE_CONDPTRDEQ(Vehicle, cargo.packets, REF_CARGO_PACKET, SLV_68, SL_MAX_VERSION),
|
||||||
SLE_CONDARR(Vehicle, cargo.action_counts, SLE_UINT, VehicleCargoList::NUM_MOVE_TO_ACTION, 181, SL_MAX_VERSION),
|
SLE_CONDARR(Vehicle, cargo.action_counts, SLE_UINT, VehicleCargoList::NUM_MOVE_TO_ACTION, SLV_181, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, cargo_age_counter, SLE_UINT16, 162, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, cargo_age_counter, SLE_UINT16, SLV_162, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_VAR(Vehicle, day_counter, SLE_UINT8),
|
SLE_VAR(Vehicle, day_counter, SLE_UINT8),
|
||||||
SLE_VAR(Vehicle, tick_counter, SLE_UINT8),
|
SLE_VAR(Vehicle, tick_counter, SLE_UINT8),
|
||||||
SLE_CONDVAR_X(Vehicle, running_ticks, SLE_FILE_U8 | SLE_VAR_U16, 88, SL_MAX_VERSION, SlXvFeatureTest([](uint16 version, bool version_in_range) -> bool {
|
SLE_CONDVAR_X(Vehicle, running_ticks, SLE_FILE_U8 | SLE_VAR_U16, SLV_88, SL_MAX_VERSION, SlXvFeatureTest([](uint16 version, bool version_in_range) -> bool {
|
||||||
return version_in_range && !(SlXvIsFeaturePresent(XSLFI_SPRINGPP, 3) || SlXvIsFeaturePresent(XSLFI_VARIABLE_DAY_LENGTH, 2));
|
return version_in_range && !(SlXvIsFeaturePresent(XSLFI_SPRINGPP, 3) || SlXvIsFeaturePresent(XSLFI_VARIABLE_DAY_LENGTH, 2));
|
||||||
})),
|
})),
|
||||||
SLE_CONDVAR_X(Vehicle, running_ticks, SLE_UINT16, 88, SL_MAX_VERSION, SlXvFeatureTest([](uint16 version, bool version_in_range) -> bool {
|
SLE_CONDVAR_X(Vehicle, running_ticks, SLE_UINT16, SLV_88, SL_MAX_VERSION, SlXvFeatureTest([](uint16 version, bool version_in_range) -> bool {
|
||||||
return version_in_range && (SlXvIsFeaturePresent(XSLFI_SPRINGPP, 2) || SlXvIsFeaturePresent(XSLFI_VARIABLE_DAY_LENGTH, 2));
|
return version_in_range && (SlXvIsFeaturePresent(XSLFI_SPRINGPP, 2) || SlXvIsFeaturePresent(XSLFI_VARIABLE_DAY_LENGTH, 2));
|
||||||
})),
|
})),
|
||||||
|
|
||||||
SLE_VAR(Vehicle, cur_implicit_order_index, SLE_UINT8),
|
SLE_VAR(Vehicle, cur_implicit_order_index, SLE_UINT8),
|
||||||
SLE_CONDVAR(Vehicle, cur_real_order_index, SLE_UINT8, 158, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, cur_real_order_index, SLE_UINT8, SLV_158, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR_X(Vehicle, cur_timetable_order_index, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA)),
|
SLE_CONDVAR_X(Vehicle, cur_timetable_order_index, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA)),
|
||||||
/* num_orders is now part of OrderList and is not saved but counted */
|
/* num_orders is now part of OrderList and is not saved but counted */
|
||||||
SLE_CONDNULL(1, 0, 104),
|
SLE_CONDNULL(1, SL_MIN_VERSION, SLV_105),
|
||||||
|
|
||||||
/* This next line is for version 4 and prior compatibility.. it temporarily reads
|
/* This next line is for version 4 and prior compatibility.. it temporarily reads
|
||||||
type and flags (which were both 4 bits) into type. Later on this is
|
type and flags (which were both 4 bits) into type. Later on this is
|
||||||
converted correctly */
|
converted correctly */
|
||||||
SLE_CONDVAR(Vehicle, current_order.type, SLE_UINT8, 0, 4),
|
SLE_CONDVAR(Vehicle, current_order.type, SLE_UINT8, SL_MIN_VERSION, SLV_5),
|
||||||
SLE_CONDVAR(Vehicle, current_order.dest, SLE_FILE_U8 | SLE_VAR_U16, 0, 4),
|
SLE_CONDVAR(Vehicle, current_order.dest, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_5),
|
||||||
|
|
||||||
/* Orders for version 5 and on */
|
/* Orders for version 5 and on */
|
||||||
SLE_CONDVAR(Vehicle, current_order.type, SLE_UINT8, 5, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, current_order.type, SLE_UINT8, SLV_5, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, current_order.flags, SLE_UINT8, 5, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, current_order.flags, SLE_UINT8, SLV_5, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, current_order.dest, SLE_UINT16, 5, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, current_order.dest, SLE_UINT16, SLV_5, SL_MAX_VERSION),
|
||||||
|
|
||||||
/* Refit in current order */
|
/* Refit in current order */
|
||||||
SLE_CONDVAR(Vehicle, current_order.refit_cargo, SLE_UINT8, 36, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, current_order.refit_cargo, SLE_UINT8, SLV_36, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL(1, 36, 181), // refit_subtype
|
SLE_CONDNULL(1, SLV_36, SLV_182), // refit_subtype
|
||||||
|
|
||||||
/* Timetable in current order */
|
/* Timetable in current order */
|
||||||
SLE_CONDVAR_X(Vehicle, current_order.wait_time, SLE_FILE_U16 | SLE_VAR_U32, 67, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA, 0, 5)),
|
SLE_CONDVAR_X(Vehicle, current_order.wait_time, SLE_FILE_U16 | SLE_VAR_U32, SLV_67, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA, 0, 5)),
|
||||||
SLE_CONDVAR_X(Vehicle, current_order.wait_time, SLE_UINT32, 67, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA, 6)),
|
SLE_CONDVAR_X(Vehicle, current_order.wait_time, SLE_UINT32, SLV_67, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA, 6)),
|
||||||
SLE_CONDVAR_X(Vehicle, current_order.travel_time, SLE_FILE_U16 | SLE_VAR_U32, 67, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA, 0, 5)),
|
SLE_CONDVAR_X(Vehicle, current_order.travel_time, SLE_FILE_U16 | SLE_VAR_U32, SLV_67, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA, 0, 5)),
|
||||||
SLE_CONDVAR_X(Vehicle, current_order.travel_time, SLE_UINT32, 67, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA, 6)),
|
SLE_CONDVAR_X(Vehicle, current_order.travel_time, SLE_UINT32, SLV_67, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLE_EXTRA, 6)),
|
||||||
SLE_CONDVAR(Vehicle, current_order.max_speed, SLE_UINT16, 174, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, current_order.max_speed, SLE_UINT16, SLV_174, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, timetable_start, SLE_INT32, 129, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, timetable_start, SLE_INT32, SLV_129, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR_X(Vehicle, timetable_start_subticks, SLE_UINT16, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLES_START_TICKS, 2)),
|
SLE_CONDVAR_X(Vehicle, timetable_start_subticks, SLE_UINT16, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TIMETABLES_START_TICKS, 2)),
|
||||||
|
|
||||||
SLE_CONDREF(Vehicle, orders, REF_ORDER, 0, 104),
|
SLE_CONDREF(Vehicle, orders, REF_ORDER, SL_MIN_VERSION, SLV_105),
|
||||||
SLE_CONDREF(Vehicle, orders, REF_ORDERLIST, 105, SL_MAX_VERSION),
|
SLE_CONDREF(Vehicle, orders, REF_ORDERLIST, SLV_105, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDVAR(Vehicle, age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30),
|
SLE_CONDVAR(Vehicle, age, SLE_FILE_U16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31),
|
||||||
SLE_CONDVAR(Vehicle, age, SLE_INT32, 31, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, age, SLE_INT32, SLV_31, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, max_age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30),
|
SLE_CONDVAR(Vehicle, max_age, SLE_FILE_U16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31),
|
||||||
SLE_CONDVAR(Vehicle, max_age, SLE_INT32, 31, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, max_age, SLE_INT32, SLV_31, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, date_of_last_service, SLE_FILE_U16 | SLE_VAR_I32, 0, 30),
|
SLE_CONDVAR(Vehicle, date_of_last_service, SLE_FILE_U16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31),
|
||||||
SLE_CONDVAR(Vehicle, date_of_last_service, SLE_INT32, 31, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, date_of_last_service, SLE_INT32, SLV_31, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, service_interval, SLE_UINT16, 0, 30),
|
SLE_CONDVAR(Vehicle, service_interval, SLE_UINT16, SL_MIN_VERSION, SLV_31),
|
||||||
SLE_CONDVAR(Vehicle, service_interval, SLE_FILE_U32 | SLE_VAR_U16, 31, 179),
|
SLE_CONDVAR(Vehicle, service_interval, SLE_FILE_U32 | SLE_VAR_U16, SLV_31, SLV_180),
|
||||||
SLE_CONDVAR(Vehicle, service_interval, SLE_UINT16, 180, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, service_interval, SLE_UINT16, SLV_180, SL_MAX_VERSION),
|
||||||
SLE_VAR(Vehicle, reliability, SLE_UINT16),
|
SLE_VAR(Vehicle, reliability, SLE_UINT16),
|
||||||
SLE_VAR(Vehicle, reliability_spd_dec, SLE_UINT16),
|
SLE_VAR(Vehicle, reliability_spd_dec, SLE_UINT16),
|
||||||
SLE_VAR(Vehicle, breakdown_ctr, SLE_UINT8),
|
SLE_VAR(Vehicle, breakdown_ctr, SLE_UINT8),
|
||||||
SLE_VAR(Vehicle, breakdown_delay, SLE_UINT8),
|
SLE_VAR(Vehicle, breakdown_delay, SLE_UINT8),
|
||||||
SLE_VAR(Vehicle, breakdowns_since_last_service, SLE_UINT8),
|
SLE_VAR(Vehicle, breakdowns_since_last_service, SLE_UINT8),
|
||||||
SLE_VAR(Vehicle, breakdown_chance, SLE_UINT8),
|
SLE_VAR(Vehicle, breakdown_chance, SLE_UINT8),
|
||||||
SLE_CONDVAR_X(Vehicle, breakdown_chance_factor, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_IMPROVED_BREAKDOWNS, 3)),
|
SLE_CONDVAR_X(Vehicle, breakdown_chance_factor, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_IMPROVED_BREAKDOWNS, 3)),
|
||||||
SLE_CONDVAR_X(Vehicle, breakdown_type, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_IMPROVED_BREAKDOWNS)),
|
SLE_CONDVAR_X(Vehicle, breakdown_type, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_IMPROVED_BREAKDOWNS)),
|
||||||
SLE_CONDVAR_X(Vehicle, breakdown_severity, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_IMPROVED_BREAKDOWNS)),
|
SLE_CONDVAR_X(Vehicle, breakdown_severity, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_IMPROVED_BREAKDOWNS)),
|
||||||
SLE_CONDVAR(Vehicle, build_year, SLE_FILE_U8 | SLE_VAR_I32, 0, 30),
|
SLE_CONDVAR(Vehicle, build_year, SLE_FILE_U8 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31),
|
||||||
SLE_CONDVAR(Vehicle, build_year, SLE_INT32, 31, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, build_year, SLE_INT32, SLV_31, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_VAR(Vehicle, load_unload_ticks, SLE_UINT16),
|
SLE_VAR(Vehicle, load_unload_ticks, SLE_UINT16),
|
||||||
SLEG_CONDVAR( _cargo_paid_for, SLE_UINT16, 45, SL_MAX_VERSION),
|
SLEG_CONDVAR( _cargo_paid_for, SLE_UINT16, SLV_45, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, vehicle_flags, SLE_FILE_U8 | SLE_VAR_U16, 40, 179),
|
SLE_CONDVAR(Vehicle, vehicle_flags, SLE_FILE_U8 | SLE_VAR_U16, SLV_40, SLV_180),
|
||||||
SLE_CONDVAR(Vehicle, vehicle_flags, SLE_UINT16, 180, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, vehicle_flags, SLE_UINT16, SLV_180, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDVAR(Vehicle, profit_this_year, SLE_FILE_I32 | SLE_VAR_I64, 0, 64),
|
SLE_CONDVAR(Vehicle, profit_this_year, SLE_FILE_I32 | SLE_VAR_I64, SL_MIN_VERSION, SLV_65),
|
||||||
SLE_CONDVAR(Vehicle, profit_this_year, SLE_INT64, 65, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, profit_this_year, SLE_INT64, SLV_65, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, profit_last_year, SLE_FILE_I32 | SLE_VAR_I64, 0, 64),
|
SLE_CONDVAR(Vehicle, profit_last_year, SLE_FILE_I32 | SLE_VAR_I64, SL_MIN_VERSION, SLV_65),
|
||||||
SLE_CONDVAR(Vehicle, profit_last_year, SLE_INT64, 65, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, profit_last_year, SLE_INT64, SLV_65, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR_X(Vehicle,profit_lifetime, SLE_INT64, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_VEH_LIFETIME_PROFIT)),
|
SLE_CONDVAR_X(Vehicle,profit_lifetime, SLE_INT64, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_VEH_LIFETIME_PROFIT)),
|
||||||
SLEG_CONDVAR( _cargo_feeder_share, SLE_FILE_I32 | SLE_VAR_I64, 51, 64),
|
SLEG_CONDVAR( _cargo_feeder_share, SLE_FILE_I32 | SLE_VAR_I64, SLV_51, SLV_65),
|
||||||
SLEG_CONDVAR( _cargo_feeder_share, SLE_INT64, 65, 67),
|
SLEG_CONDVAR( _cargo_feeder_share, SLE_INT64, SLV_65, SLV_68),
|
||||||
SLEG_CONDVAR( _cargo_loaded_at_xy, SLE_UINT32, 51, 67),
|
SLEG_CONDVAR( _cargo_loaded_at_xy, SLE_UINT32, SLV_51, SLV_68),
|
||||||
SLE_CONDVAR(Vehicle, value, SLE_FILE_I32 | SLE_VAR_I64, 0, 64),
|
SLE_CONDVAR(Vehicle, value, SLE_FILE_I32 | SLE_VAR_I64, SL_MIN_VERSION, SLV_65),
|
||||||
SLE_CONDVAR(Vehicle, value, SLE_INT64, 65, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, value, SLE_INT64, SLV_65, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL_X(8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_VEHICLE_REPAIR_COST, 1, 1)),
|
SLE_CONDNULL_X(8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_VEHICLE_REPAIR_COST, 1, 1)),
|
||||||
|
|
||||||
SLE_CONDVAR(Vehicle, random_bits, SLE_UINT8, 2, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, random_bits, SLE_UINT8, SLV_2, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, waiting_triggers, SLE_UINT8, 2, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, waiting_triggers, SLE_UINT8, SLV_2, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDREF_X(Vehicle, ahead_separation, REF_VEHICLE, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_AUTO_TIMETABLE)),
|
SLE_CONDREF_X(Vehicle, ahead_separation, REF_VEHICLE, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_AUTO_TIMETABLE)),
|
||||||
SLE_CONDREF_X(Vehicle, behind_separation, REF_VEHICLE, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_AUTO_TIMETABLE)),
|
SLE_CONDREF_X(Vehicle, behind_separation, REF_VEHICLE, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_AUTO_TIMETABLE)),
|
||||||
|
|
||||||
SLE_CONDREF(Vehicle, next_shared, REF_VEHICLE, 2, SL_MAX_VERSION),
|
SLE_CONDREF(Vehicle, next_shared, REF_VEHICLE, SLV_2, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL(2, 2, 68),
|
SLE_CONDNULL(2, SLV_2, SLV_69),
|
||||||
SLE_CONDNULL(4, 69, 100),
|
SLE_CONDNULL(4, SLV_69, SLV_101),
|
||||||
|
|
||||||
SLE_CONDVAR(Vehicle, group_id, SLE_UINT16, 60, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, group_id, SLE_UINT16, SLV_60, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDVAR(Vehicle, current_order_time, SLE_UINT32, 67, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, current_order_time, SLE_UINT32, SLV_67, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR_X(Vehicle, current_loading_time, SLE_UINT32, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_AUTO_TIMETABLE)),
|
SLE_CONDVAR_X(Vehicle, current_loading_time, SLE_UINT32, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_AUTO_TIMETABLE)),
|
||||||
SLE_CONDNULL_X(4, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
SLE_CONDNULL_X(4, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
||||||
SLE_CONDVAR(Vehicle, lateness_counter, SLE_INT32, 67, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, lateness_counter, SLE_INT32, SLV_67, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDNULL(10, 2, 143), // old reserved space
|
SLE_CONDNULL(10, SLV_2, SLV_144), // old reserved space
|
||||||
|
|
||||||
SLE_CONDNULL_X((8 + 8 + 2 + 2 + 4 + 4 + 1 + 1) * 30, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
SLE_CONDNULL_X((8 + 8 + 2 + 2 + 4 + 4 + 1 + 1) * 30, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
||||||
SLE_CONDNULL_X((8 + 8 + 2 + 2 + 4 + 4 + 1 + 1) * 70, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 4)),
|
SLE_CONDNULL_X((8 + 8 + 2 + 2 + 4 + 4 + 1 + 1) * 70, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 4)),
|
||||||
SLE_CONDNULL_X(1, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
SLE_CONDNULL_X(1, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
||||||
SLE_CONDNULL_X(1, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
SLE_CONDNULL_X(1, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
||||||
SLE_CONDNULL_X(2, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
SLE_CONDNULL_X(2, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -759,19 +770,19 @@ const SaveLoad *GetVehicleDescription(VehicleType vt)
|
|||||||
SLE_VAR(Train, railtype, SLE_UINT8),
|
SLE_VAR(Train, railtype, SLE_UINT8),
|
||||||
SLE_VAR(Train, track, SLE_UINT8),
|
SLE_VAR(Train, track, SLE_UINT8),
|
||||||
|
|
||||||
SLE_CONDVAR(Train, flags, SLE_FILE_U8 | SLE_VAR_U32, 2, 99),
|
SLE_CONDVAR(Train, flags, SLE_FILE_U8 | SLE_VAR_U32, SLV_2, SLV_100),
|
||||||
SLE_CONDVAR_X(Train, flags, SLE_FILE_U16 | SLE_VAR_U32, 100, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TRAIN_FLAGS_EXTRA, 0, 0)),
|
SLE_CONDVAR_X(Train, flags, SLE_FILE_U16 | SLE_VAR_U32, SLV_100, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TRAIN_FLAGS_EXTRA, 0, 0)),
|
||||||
SLE_CONDVAR_X(Train, flags, SLE_UINT32, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TRAIN_FLAGS_EXTRA, 1)),
|
SLE_CONDVAR_X(Train, flags, SLE_UINT32, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_TRAIN_FLAGS_EXTRA, 1)),
|
||||||
SLE_CONDNULL(2, 2, 59),
|
SLE_CONDNULL(2, SLV_2, SLV_60),
|
||||||
|
|
||||||
SLE_CONDVAR(Train, wait_counter, SLE_UINT16, 136, SL_MAX_VERSION),
|
SLE_CONDVAR(Train, wait_counter, SLE_UINT16, SLV_136, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR_X(Train, tunnel_bridge_signal_num, SLE_UINT16, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SIG_TUNNEL_BRIDGE, 5)),
|
SLE_CONDVAR_X(Train, tunnel_bridge_signal_num, SLE_UINT16, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SIG_TUNNEL_BRIDGE, 5)),
|
||||||
|
|
||||||
SLE_CONDNULL(2, 2, 19),
|
SLE_CONDNULL(2, SLV_2, SLV_20),
|
||||||
SLE_CONDVAR(Train, gv_flags, SLE_UINT16, 139, SL_MAX_VERSION),
|
SLE_CONDVAR(Train, gv_flags, SLE_UINT16, SLV_139, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL(11, 2, 143), // old reserved space
|
SLE_CONDNULL(11, SLV_2, SLV_144), // old reserved space
|
||||||
SLE_CONDVAR_X(Train, reverse_distance, SLE_UINT16, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_REVERSE_AT_WAYPOINT)),
|
SLE_CONDVAR_X(Train, reverse_distance, SLE_UINT16, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_REVERSE_AT_WAYPOINT)),
|
||||||
SLE_CONDVAR_X(Train, critical_breakdown_count, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_IMPROVED_BREAKDOWNS, 2)),
|
SLE_CONDVAR_X(Train, critical_breakdown_count, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_IMPROVED_BREAKDOWNS, 2)),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -787,12 +798,12 @@ const SaveLoad *GetVehicleDescription(VehicleType vt)
|
|||||||
SLE_VAR(RoadVehicle, crashed_ctr, SLE_UINT16),
|
SLE_VAR(RoadVehicle, crashed_ctr, SLE_UINT16),
|
||||||
SLE_VAR(RoadVehicle, reverse_ctr, SLE_UINT8),
|
SLE_VAR(RoadVehicle, reverse_ctr, SLE_UINT8),
|
||||||
|
|
||||||
SLE_CONDNULL(2, 6, 68),
|
SLE_CONDNULL(2, SLV_6, SLV_69),
|
||||||
SLE_CONDVAR(RoadVehicle, gv_flags, SLE_UINT16, 139, SL_MAX_VERSION),
|
SLE_CONDVAR(RoadVehicle, gv_flags, SLE_UINT16, SLV_139, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL(4, 69, 130),
|
SLE_CONDNULL(4, SLV_69, SLV_131),
|
||||||
SLE_CONDNULL(2, 6, 130),
|
SLE_CONDNULL(2, SLV_6, SLV_131),
|
||||||
SLE_CONDNULL(16, 2, 143), // old reserved space
|
SLE_CONDNULL(16, SLV_2, SLV_144), // old reserved space
|
||||||
SLE_CONDVAR_X(RoadVehicle, critical_breakdown_count, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_IMPROVED_BREAKDOWNS, 6)),
|
SLE_CONDVAR_X(RoadVehicle, critical_breakdown_count, SLE_UINT8, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_IMPROVED_BREAKDOWNS, 6)),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -801,10 +812,10 @@ const SaveLoad *GetVehicleDescription(VehicleType vt)
|
|||||||
SLE_WRITEBYTE(Vehicle, type),
|
SLE_WRITEBYTE(Vehicle, type),
|
||||||
SLE_VEH_INCLUDE(),
|
SLE_VEH_INCLUDE(),
|
||||||
SLE_VAR(Ship, state, SLE_UINT8),
|
SLE_VAR(Ship, state, SLE_UINT8),
|
||||||
SLE_CONDDEQUE(Ship, path, SLE_UINT8, 203, SL_MAX_VERSION),
|
SLE_CONDDEQUE(Ship, path, SLE_UINT8, SLV_SHIP_PATH_CACHE, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Ship, rotation, SLE_UINT8, 204, SL_MAX_VERSION),
|
SLE_CONDVAR(Ship, rotation, SLE_UINT8, SLV_SHIP_ROTATION, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDNULL(16, 2, 143), // old reserved space
|
SLE_CONDNULL(16, SLV_2, SLV_144), // old reserved space
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -815,20 +826,20 @@ const SaveLoad *GetVehicleDescription(VehicleType vt)
|
|||||||
SLE_VAR(Aircraft, crashed_counter, SLE_UINT16),
|
SLE_VAR(Aircraft, crashed_counter, SLE_UINT16),
|
||||||
SLE_VAR(Aircraft, pos, SLE_UINT8),
|
SLE_VAR(Aircraft, pos, SLE_UINT8),
|
||||||
|
|
||||||
SLE_CONDVAR(Aircraft, targetairport, SLE_FILE_U8 | SLE_VAR_U16, 0, 4),
|
SLE_CONDVAR(Aircraft, targetairport, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_5),
|
||||||
SLE_CONDVAR(Aircraft, targetairport, SLE_UINT16, 5, SL_MAX_VERSION),
|
SLE_CONDVAR(Aircraft, targetairport, SLE_UINT16, SLV_5, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_VAR(Aircraft, state, SLE_UINT8),
|
SLE_VAR(Aircraft, state, SLE_UINT8),
|
||||||
|
|
||||||
SLE_CONDVAR(Aircraft, previous_pos, SLE_UINT8, 2, SL_MAX_VERSION),
|
SLE_CONDVAR(Aircraft, previous_pos, SLE_UINT8, SLV_2, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Aircraft, last_direction, SLE_UINT8, 2, SL_MAX_VERSION),
|
SLE_CONDVAR(Aircraft, last_direction, SLE_UINT8, SLV_2, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Aircraft, number_consecutive_turns, SLE_UINT8, 2, SL_MAX_VERSION),
|
SLE_CONDVAR(Aircraft, number_consecutive_turns, SLE_UINT8, SLV_2, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL_X(2, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
SLE_CONDNULL_X(2, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
||||||
|
|
||||||
SLE_CONDVAR(Aircraft, turn_counter, SLE_UINT8, 136, SL_MAX_VERSION),
|
SLE_CONDVAR(Aircraft, turn_counter, SLE_UINT8, SLV_136, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Aircraft, flags, SLE_UINT8, 167, SL_MAX_VERSION),
|
SLE_CONDVAR(Aircraft, flags, SLE_UINT8, SLV_167, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDNULL(13, 2, 143), // old reserved space
|
SLE_CONDNULL(13, SLV_2, SLV_144), // old reserved space
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -838,29 +849,29 @@ const SaveLoad *GetVehicleDescription(VehicleType vt)
|
|||||||
|
|
||||||
SLE_VAR(Vehicle, subtype, SLE_UINT8),
|
SLE_VAR(Vehicle, subtype, SLE_UINT8),
|
||||||
|
|
||||||
SLE_CONDNULL_X(5, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
SLE_CONDNULL_X(5, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
||||||
|
|
||||||
SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Vehicle, tile, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, tile, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5),
|
SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Vehicle, x_pos, SLE_INT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, x_pos, SLE_INT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5),
|
SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Vehicle, y_pos, SLE_INT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, y_pos, SLE_INT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, z_pos, SLE_FILE_U8 | SLE_VAR_I32, 0, 163),
|
SLE_CONDVAR(Vehicle, z_pos, SLE_FILE_U8 | SLE_VAR_I32, SL_MIN_VERSION, SLV_164),
|
||||||
SLE_CONDVAR(Vehicle, z_pos, SLE_INT32, 164, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, z_pos, SLE_INT32, SLV_164, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_VAR(Vehicle, sprite_seq.seq[0].sprite, SLE_FILE_U16 | SLE_VAR_U32),
|
SLE_VAR(Vehicle, sprite_seq.seq[0].sprite, SLE_FILE_U16 | SLE_VAR_U32),
|
||||||
SLE_CONDNULL(5, 0, 57),
|
SLE_CONDNULL(5, SL_MIN_VERSION, SLV_59),
|
||||||
SLE_VAR(Vehicle, progress, SLE_UINT8),
|
SLE_VAR(Vehicle, progress, SLE_UINT8),
|
||||||
SLE_VAR(Vehicle, vehstatus, SLE_UINT8),
|
SLE_VAR(Vehicle, vehstatus, SLE_UINT8),
|
||||||
|
|
||||||
SLE_VAR(EffectVehicle, animation_state, SLE_UINT16),
|
SLE_VAR(EffectVehicle, animation_state, SLE_UINT16),
|
||||||
SLE_VAR(EffectVehicle, animation_substate, SLE_UINT8),
|
SLE_VAR(EffectVehicle, animation_substate, SLE_UINT8),
|
||||||
|
|
||||||
SLE_CONDVAR(Vehicle, spritenum, SLE_UINT8, 2, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, spritenum, SLE_UINT8, SLV_2, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDNULL(15, 2, 143), // old reserved space
|
SLE_CONDNULL(15, SLV_2, SLV_144), // old reserved space
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -871,38 +882,38 @@ const SaveLoad *GetVehicleDescription(VehicleType vt)
|
|||||||
SLE_REF(Vehicle, next, REF_VEHICLE_OLD),
|
SLE_REF(Vehicle, next, REF_VEHICLE_OLD),
|
||||||
|
|
||||||
SLE_VAR(Vehicle, subtype, SLE_UINT8),
|
SLE_VAR(Vehicle, subtype, SLE_UINT8),
|
||||||
SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Vehicle, tile, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, tile, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, dest_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(Vehicle, dest_tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Vehicle, dest_tile, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, dest_tile, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5),
|
SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Vehicle, x_pos, SLE_INT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, x_pos, SLE_INT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5),
|
SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(Vehicle, y_pos, SLE_INT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, y_pos, SLE_INT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(Vehicle, z_pos, SLE_FILE_U8 | SLE_VAR_I32, 0, 163),
|
SLE_CONDVAR(Vehicle, z_pos, SLE_FILE_U8 | SLE_VAR_I32, SL_MIN_VERSION, SLV_164),
|
||||||
SLE_CONDVAR(Vehicle, z_pos, SLE_INT32, 164, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, z_pos, SLE_INT32, SLV_164, SL_MAX_VERSION),
|
||||||
SLE_VAR(Vehicle, direction, SLE_UINT8),
|
SLE_VAR(Vehicle, direction, SLE_UINT8),
|
||||||
|
|
||||||
SLE_CONDNULL(5, 0, 57),
|
SLE_CONDNULL(5, SL_MIN_VERSION, SLV_58),
|
||||||
SLE_VAR(Vehicle, owner, SLE_UINT8),
|
SLE_VAR(Vehicle, owner, SLE_UINT8),
|
||||||
SLE_VAR(Vehicle, vehstatus, SLE_UINT8),
|
SLE_VAR(Vehicle, vehstatus, SLE_UINT8),
|
||||||
SLE_CONDVAR(Vehicle, current_order.dest, SLE_FILE_U8 | SLE_VAR_U16, 0, 4),
|
SLE_CONDVAR(Vehicle, current_order.dest, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_5),
|
||||||
SLE_CONDVAR(Vehicle, current_order.dest, SLE_UINT16, 5, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, current_order.dest, SLE_UINT16, SLV_5, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_VAR(Vehicle, sprite_seq.seq[0].sprite, SLE_FILE_U16 | SLE_VAR_U32),
|
SLE_VAR(Vehicle, sprite_seq.seq[0].sprite, SLE_FILE_U16 | SLE_VAR_U32),
|
||||||
SLE_CONDVAR(Vehicle, age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30),
|
SLE_CONDVAR(Vehicle, age, SLE_FILE_U16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31),
|
||||||
SLE_CONDVAR(Vehicle, age, SLE_INT32, 31, SL_MAX_VERSION),
|
SLE_CONDVAR(Vehicle, age, SLE_INT32, SLV_31, SL_MAX_VERSION),
|
||||||
SLE_VAR(Vehicle, tick_counter, SLE_UINT8),
|
SLE_VAR(Vehicle, tick_counter, SLE_UINT8),
|
||||||
|
|
||||||
SLE_CONDVAR(DisasterVehicle, image_override, SLE_FILE_U16 | SLE_VAR_U32, 0, 190),
|
SLE_CONDVAR(DisasterVehicle, image_override, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_191),
|
||||||
SLE_CONDVAR(DisasterVehicle, image_override, SLE_UINT32, 191, SL_MAX_VERSION),
|
SLE_CONDVAR(DisasterVehicle, image_override, SLE_UINT32, SLV_191, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(DisasterVehicle, big_ufo_destroyer_target, SLE_FILE_U16 | SLE_VAR_U32, 0, 190),
|
SLE_CONDVAR(DisasterVehicle, big_ufo_destroyer_target, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_191),
|
||||||
SLE_CONDVAR(DisasterVehicle, big_ufo_destroyer_target, SLE_UINT32, 191, SL_MAX_VERSION),
|
SLE_CONDVAR(DisasterVehicle, big_ufo_destroyer_target, SLE_UINT32, SLV_191, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL_X(2, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
SLE_CONDNULL_X(2, SL_MIN_VERSION, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP)),
|
||||||
SLE_CONDVAR(DisasterVehicle, flags, SLE_UINT8, 194, SL_MAX_VERSION),
|
SLE_CONDVAR(DisasterVehicle, flags, SLE_UINT8, SLV_194, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_CONDNULL(16, 2, 143), // old reserved space
|
SLE_CONDNULL(16, SLV_2, SLV_144), // old reserved space
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -963,13 +974,13 @@ void Load_VEHS()
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Old savegames used 'last_station_visited = 0xFF' */
|
/* Old savegames used 'last_station_visited = 0xFF' */
|
||||||
if (IsSavegameVersionBefore(5) && v->last_station_visited == 0xFF) {
|
if (IsSavegameVersionBefore(SLV_5) && v->last_station_visited == 0xFF) {
|
||||||
v->last_station_visited = INVALID_STATION;
|
v->last_station_visited = INVALID_STATION;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(182)) v->last_loading_station = INVALID_STATION;
|
if (IsSavegameVersionBefore(SLV_182)) v->last_loading_station = INVALID_STATION;
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(5)) {
|
if (IsSavegameVersionBefore(SLV_5)) {
|
||||||
/* Convert the current_order.type (which is a mix of type and flags, because
|
/* Convert the current_order.type (which is a mix of type and flags, because
|
||||||
* in those versions, they both were 4 bits big) to type and flags */
|
* in those versions, they both were 4 bits big) to type and flags */
|
||||||
v->current_order.flags = GB(v->current_order.type, 4, 4);
|
v->current_order.flags = GB(v->current_order.type, 4, 4);
|
||||||
@@ -977,7 +988,7 @@ void Load_VEHS()
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Advanced vehicle lists got added */
|
/* Advanced vehicle lists got added */
|
||||||
if (IsSavegameVersionBefore(60)) v->group_id = DEFAULT_GROUP;
|
if (IsSavegameVersionBefore(SLV_60)) v->group_id = DEFAULT_GROUP;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -70,7 +70,7 @@ void MoveWaypointsToBaseStations()
|
|||||||
* waypoints to make way for storing the index in m2. The custom graphics
|
* waypoints to make way for storing the index in m2. The custom graphics
|
||||||
* id which was stored in m4 is now saved as a grf/id reference in the
|
* id which was stored in m4 is now saved as a grf/id reference in the
|
||||||
* waypoint struct. */
|
* waypoint struct. */
|
||||||
if (IsSavegameVersionBefore(17)) {
|
if (IsSavegameVersionBefore(SLV_17)) {
|
||||||
for (OldWaypoint *wp = _old_waypoints.Begin(); wp != _old_waypoints.End(); wp++) {
|
for (OldWaypoint *wp = _old_waypoints.Begin(); wp != _old_waypoints.End(); wp++) {
|
||||||
if (wp->delete_ctr != 0) continue; // The waypoint was deleted
|
if (wp->delete_ctr != 0) continue; // The waypoint was deleted
|
||||||
|
|
||||||
@@ -113,7 +113,7 @@ void MoveWaypointsToBaseStations()
|
|||||||
TileIndex t = wp->xy;
|
TileIndex t = wp->xy;
|
||||||
if (IsTileType(t, MP_RAILWAY) && GetRailTileType(t) == 2 /* RAIL_TILE_WAYPOINT */ && _m[t].m2 == wp->index) {
|
if (IsTileType(t, MP_RAILWAY) && GetRailTileType(t) == 2 /* RAIL_TILE_WAYPOINT */ && _m[t].m2 == wp->index) {
|
||||||
/* The tile might've been reserved! */
|
/* The tile might've been reserved! */
|
||||||
bool reserved = !IsSavegameVersionBefore(100) && HasBit(_m[t].m5, 4);
|
bool reserved = !IsSavegameVersionBefore(SLV_100) && HasBit(_m[t].m5, 4);
|
||||||
|
|
||||||
/* The tile really has our waypoint, so reassign the map array */
|
/* The tile really has our waypoint, so reassign the map array */
|
||||||
MakeRailWaypoint(t, GetTileOwner(t), new_wp->index, (Axis)GB(_m[t].m5, 0, 1), 0, GetRailType(t));
|
MakeRailWaypoint(t, GetTileOwner(t), new_wp->index, (Axis)GB(_m[t].m5, 0, 1), 0, GetRailType(t));
|
||||||
@@ -150,21 +150,21 @@ void MoveWaypointsToBaseStations()
|
|||||||
}
|
}
|
||||||
|
|
||||||
static const SaveLoad _old_waypoint_desc[] = {
|
static const SaveLoad _old_waypoint_desc[] = {
|
||||||
SLE_CONDVAR(OldWaypoint, xy, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLE_CONDVAR(OldWaypoint, xy, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
|
||||||
SLE_CONDVAR(OldWaypoint, xy, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLE_CONDVAR(OldWaypoint, xy, SLE_UINT32, SLV_6, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(OldWaypoint, town_index, SLE_UINT16, 12, 121),
|
SLE_CONDVAR(OldWaypoint, town_index, SLE_UINT16, SLV_12, SLV_122),
|
||||||
SLE_CONDREF(OldWaypoint, town, REF_TOWN, 122, SL_MAX_VERSION),
|
SLE_CONDREF(OldWaypoint, town, REF_TOWN, SLV_122, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(OldWaypoint, town_cn, SLE_FILE_U8 | SLE_VAR_U16, 12, 88),
|
SLE_CONDVAR(OldWaypoint, town_cn, SLE_FILE_U8 | SLE_VAR_U16, SLV_12, SLV_89),
|
||||||
SLE_CONDVAR(OldWaypoint, town_cn, SLE_UINT16, 89, SL_MAX_VERSION),
|
SLE_CONDVAR(OldWaypoint, town_cn, SLE_UINT16, SLV_89, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(OldWaypoint, string_id, SLE_STRINGID, 0, 83),
|
SLE_CONDVAR(OldWaypoint, string_id, SLE_STRINGID, SL_MIN_VERSION, SLV_84),
|
||||||
SLE_CONDSTR(OldWaypoint, name, SLE_STR, 0, 84, SL_MAX_VERSION),
|
SLE_CONDSTR(OldWaypoint, name, SLE_STR, 0, SLV_84, SL_MAX_VERSION),
|
||||||
SLE_VAR(OldWaypoint, delete_ctr, SLE_UINT8),
|
SLE_VAR(OldWaypoint, delete_ctr, SLE_UINT8),
|
||||||
|
|
||||||
SLE_CONDVAR(OldWaypoint, build_date, SLE_FILE_U16 | SLE_VAR_I32, 3, 30),
|
SLE_CONDVAR(OldWaypoint, build_date, SLE_FILE_U16 | SLE_VAR_I32, SLV_3, SLV_31),
|
||||||
SLE_CONDVAR(OldWaypoint, build_date, SLE_INT32, 31, SL_MAX_VERSION),
|
SLE_CONDVAR(OldWaypoint, build_date, SLE_INT32, SLV_31, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(OldWaypoint, localidx, SLE_UINT8, 3, SL_MAX_VERSION),
|
SLE_CONDVAR(OldWaypoint, localidx, SLE_UINT8, SLV_3, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(OldWaypoint, grfid, SLE_UINT32, 17, SL_MAX_VERSION),
|
SLE_CONDVAR(OldWaypoint, grfid, SLE_UINT32, SLV_17, SL_MAX_VERSION),
|
||||||
SLE_CONDVAR(OldWaypoint, owner, SLE_UINT8, 101, SL_MAX_VERSION),
|
SLE_CONDVAR(OldWaypoint, owner, SLE_UINT8, SLV_101, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
@@ -190,10 +190,10 @@ static void Ptrs_WAYP()
|
|||||||
for (OldWaypoint *wp = _old_waypoints.Begin(); wp != _old_waypoints.End(); wp++) {
|
for (OldWaypoint *wp = _old_waypoints.Begin(); wp != _old_waypoints.End(); wp++) {
|
||||||
SlObject(wp, _old_waypoint_desc);
|
SlObject(wp, _old_waypoint_desc);
|
||||||
|
|
||||||
if (IsSavegameVersionBefore(12)) {
|
if (IsSavegameVersionBefore(SLV_12)) {
|
||||||
wp->town_cn = (wp->string_id & 0xC000) == 0xC000 ? (wp->string_id >> 8) & 0x3F : 0;
|
wp->town_cn = (wp->string_id & 0xC000) == 0xC000 ? (wp->string_id >> 8) & 0x3F : 0;
|
||||||
wp->town = ClosestTownFromTile(wp->xy, UINT_MAX);
|
wp->town = ClosestTownFromTile(wp->xy, UINT_MAX);
|
||||||
} else if (IsSavegameVersionBefore(122)) {
|
} else if (IsSavegameVersionBefore(SLV_122)) {
|
||||||
/* Only for versions 12 .. 122 */
|
/* Only for versions 12 .. 122 */
|
||||||
if (!Town::IsValidID(wp->town_index)) {
|
if (!Town::IsValidID(wp->town_index)) {
|
||||||
/* Upon a corrupted waypoint we'll likely get here. The next step will be to
|
/* Upon a corrupted waypoint we'll likely get here. The next step will be to
|
||||||
@@ -206,7 +206,7 @@ static void Ptrs_WAYP()
|
|||||||
}
|
}
|
||||||
wp->town = Town::Get(wp->town_index);
|
wp->town = Town::Get(wp->town_index);
|
||||||
}
|
}
|
||||||
if (IsSavegameVersionBefore(84)) {
|
if (IsSavegameVersionBefore(SLV_84)) {
|
||||||
wp->name = CopyFromOldName(wp->string_id);
|
wp->name = CopyFromOldName(wp->string_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -139,7 +139,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Randomize all settings the Script requested to be randomized.
|
* Randomize all settings the Script requested to be randomized.
|
||||||
*/
|
*/
|
||||||
void AddRandomDeviation();
|
virtual void AddRandomDeviation();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is this config attached to an Script? In other words, is there a Script
|
* Is this config attached to an Script? In other words, is there a Script
|
||||||
|
@@ -1504,7 +1504,7 @@ static void PrepareOldDiffCustom()
|
|||||||
*/
|
*/
|
||||||
static void HandleOldDiffCustom(bool savegame)
|
static void HandleOldDiffCustom(bool savegame)
|
||||||
{
|
{
|
||||||
uint options_to_load = GAME_DIFFICULTY_NUM - ((savegame && IsSavegameVersionBefore(4)) ? 1 : 0);
|
uint options_to_load = GAME_DIFFICULTY_NUM - ((savegame && IsSavegameVersionBefore(SLV_4)) ? 1 : 0);
|
||||||
|
|
||||||
if (!savegame) {
|
if (!savegame) {
|
||||||
/* If we did read to old_diff_custom, then at least one value must be non 0. */
|
/* If we did read to old_diff_custom, then at least one value must be non 0. */
|
||||||
@@ -2352,7 +2352,7 @@ static void LoadSettingsXref(const SettingDesc *osd, void *object) {
|
|||||||
*/
|
*/
|
||||||
static void LoadSettings(const SettingDesc *osd, void *object)
|
static void LoadSettings(const SettingDesc *osd, void *object)
|
||||||
{
|
{
|
||||||
extern uint16 _sl_version;
|
extern SaveLoadVersion _sl_version;
|
||||||
|
|
||||||
for (; osd->save.cmd != SL_END; osd++) {
|
for (; osd->save.cmd != SL_END; osd++) {
|
||||||
if (osd->patx_name != NULL) continue;
|
if (osd->patx_name != NULL) continue;
|
||||||
|
@@ -31,6 +31,8 @@ struct Ship FINAL : public SpecializedVehicle<Ship, VEH_SHIP> {
|
|||||||
TrackBitsByte state; ///< The "track" the ship is following.
|
TrackBitsByte state; ///< The "track" the ship is following.
|
||||||
ShipPathCache path; ///< Cached path.
|
ShipPathCache path; ///< Cached path.
|
||||||
DirectionByte rotation; ///< Visible direction.
|
DirectionByte rotation; ///< Visible direction.
|
||||||
|
int16 rotation_x_pos; ///< NOSAVE: X Position before rotation.
|
||||||
|
int16 rotation_y_pos; ///< NOSAVE: Y Position before rotation.
|
||||||
|
|
||||||
/** We don't want GCC to zero our struct! It already is zeroed and has an index! */
|
/** We don't want GCC to zero our struct! It already is zeroed and has an index! */
|
||||||
Ship() : SpecializedVehicleBase() {}
|
Ship() : SpecializedVehicleBase() {}
|
||||||
|
@@ -320,6 +320,15 @@ void Ship::UpdateDeltaXY()
|
|||||||
this->x_extent = bb[1];
|
this->x_extent = bb[1];
|
||||||
this->y_extent = bb[0];
|
this->y_extent = bb[0];
|
||||||
this->z_extent = 6;
|
this->z_extent = 6;
|
||||||
|
|
||||||
|
if (this->direction != this->rotation) {
|
||||||
|
/* If we are rotating, then it is possible the ship was moved to its next position. In that
|
||||||
|
* case, because we are still showing the old direction, the ship will appear to glitch sideways
|
||||||
|
* slightly. We can work around this by applying an additional offset to make the ship appear
|
||||||
|
* where it was before it moved. */
|
||||||
|
this->x_offs -= this->x_pos - this->rotation_x_pos;
|
||||||
|
this->y_offs -= this->y_pos - this->rotation_y_pos;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -829,6 +838,9 @@ static void ShipController(Ship *v)
|
|||||||
/* Stop for rotation */
|
/* Stop for rotation */
|
||||||
v->cur_speed = 0;
|
v->cur_speed = 0;
|
||||||
v->direction = new_direction;
|
v->direction = new_direction;
|
||||||
|
/* Remember our current location to avoid movement glitch */
|
||||||
|
v->rotation_x_pos = v->x_pos;
|
||||||
|
v->rotation_y_pos = v->y_pos;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -858,6 +870,9 @@ getout:
|
|||||||
|
|
||||||
reverse_direction:
|
reverse_direction:
|
||||||
v->direction = ReverseDir(v->direction);
|
v->direction = ReverseDir(v->direction);
|
||||||
|
/* Remember our current location to avoid movement glitch */
|
||||||
|
v->rotation_x_pos = v->x_pos;
|
||||||
|
v->rotation_y_pos = v->y_pos;
|
||||||
v->cur_speed = 0;
|
v->cur_speed = 0;
|
||||||
v->path.clear();
|
v->path.clear();
|
||||||
goto getout;
|
goto getout;
|
||||||
|
@@ -32,7 +32,7 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
|||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
proc = NULL
|
proc = NULL
|
||||||
load = NULL
|
load = NULL
|
||||||
from = 0
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
cat = SC_ADVANCED
|
cat = SC_ADVANCED
|
||||||
extver = SlXvFeatureTest()
|
extver = SlXvFeatureTest()
|
||||||
|
@@ -25,7 +25,7 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
|||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
proc = NULL
|
proc = NULL
|
||||||
load = NULL
|
load = NULL
|
||||||
from = 0
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
cat = SC_ADVANCED
|
cat = SC_ADVANCED
|
||||||
extver = SlXvFeatureTest()
|
extver = SlXvFeatureTest()
|
||||||
|
@@ -60,7 +60,7 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
|||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
proc = NULL
|
proc = NULL
|
||||||
load = NULL
|
load = NULL
|
||||||
from = 0
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
cat = SC_ADVANCED
|
cat = SC_ADVANCED
|
||||||
extver = SlXvFeatureTest()
|
extver = SlXvFeatureTest()
|
||||||
@@ -80,7 +80,7 @@ def = 0
|
|||||||
min = 0
|
min = 0
|
||||||
max = 0
|
max = 0
|
||||||
full = NULL
|
full = NULL
|
||||||
to = 3
|
to = SLV_4
|
||||||
|
|
||||||
[SDTG_GENERAL]
|
[SDTG_GENERAL]
|
||||||
name = ""diff_custom""
|
name = ""diff_custom""
|
||||||
@@ -94,7 +94,7 @@ def = 0
|
|||||||
min = 0
|
min = 0
|
||||||
max = 0
|
max = 0
|
||||||
full = NULL
|
full = NULL
|
||||||
from = 4
|
from = SLV_4
|
||||||
|
|
||||||
##
|
##
|
||||||
[SDTG_VAR]
|
[SDTG_VAR]
|
||||||
@@ -155,21 +155,21 @@ type = SLE_UINT8
|
|||||||
def = DEF_SNOWLINE_HEIGHT * TILE_HEIGHT
|
def = DEF_SNOWLINE_HEIGHT * TILE_HEIGHT
|
||||||
min = MIN_SNOWLINE_HEIGHT * TILE_HEIGHT
|
min = MIN_SNOWLINE_HEIGHT * TILE_HEIGHT
|
||||||
max = MAX_SNOWLINE_HEIGHT * TILE_HEIGHT
|
max = MAX_SNOWLINE_HEIGHT * TILE_HEIGHT
|
||||||
to = 21
|
to = SLV_22
|
||||||
|
|
||||||
[SDT_NULL]
|
[SDT_NULL]
|
||||||
length = 1
|
length = 1
|
||||||
from = 22
|
from = SLV_22
|
||||||
to = 164
|
to = SLV_165
|
||||||
|
|
||||||
[SDT_NULL]
|
[SDT_NULL]
|
||||||
length = 1
|
length = 1
|
||||||
to = 22
|
to = SLV_23
|
||||||
|
|
||||||
[SDTC_OMANY]
|
[SDTC_OMANY]
|
||||||
var = gui.autosave
|
var = gui.autosave
|
||||||
type = SLE_UINT8
|
type = SLE_UINT8
|
||||||
from = 23
|
from = SLV_23
|
||||||
flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
|
flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
|
||||||
def = 1
|
def = 1
|
||||||
max = 4
|
max = 4
|
||||||
|
@@ -32,7 +32,7 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
|||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
proc = NULL
|
proc = NULL
|
||||||
load = NULL
|
load = NULL
|
||||||
from = 0
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
cat = SC_ADVANCED
|
cat = SC_ADVANCED
|
||||||
extver = SlXvFeatureTest()
|
extver = SlXvFeatureTest()
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -30,7 +30,7 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
|||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
proc = NULL
|
proc = NULL
|
||||||
load = NULL
|
load = NULL
|
||||||
from = 0
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
cat = SC_ADVANCED
|
cat = SC_ADVANCED
|
||||||
extver = SlXvFeatureTest()
|
extver = SlXvFeatureTest()
|
||||||
|
@@ -26,7 +26,7 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
|||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
proc = NULL
|
proc = NULL
|
||||||
load = NULL
|
load = NULL
|
||||||
from = 0
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
cat = SC_ADVANCED
|
cat = SC_ADVANCED
|
||||||
extver = SlXvFeatureTest()
|
extver = SlXvFeatureTest()
|
||||||
|
@@ -2456,11 +2456,12 @@ LiveryScheme GetEngineLiveryScheme(EngineID engine_type, EngineID parent_engine_
|
|||||||
if (parent_engine_type == INVALID_ENGINE) {
|
if (parent_engine_type == INVALID_ENGINE) {
|
||||||
return LS_PASSENGER_WAGON_STEAM;
|
return LS_PASSENGER_WAGON_STEAM;
|
||||||
} else {
|
} else {
|
||||||
|
bool is_mu = HasBit(EngInfo(parent_engine_type)->misc_flags, EF_RAIL_IS_MU);
|
||||||
switch (RailVehInfo(parent_engine_type)->engclass) {
|
switch (RailVehInfo(parent_engine_type)->engclass) {
|
||||||
default: NOT_REACHED();
|
default: NOT_REACHED();
|
||||||
case EC_STEAM: return LS_PASSENGER_WAGON_STEAM;
|
case EC_STEAM: return LS_PASSENGER_WAGON_STEAM;
|
||||||
case EC_DIESEL: return LS_PASSENGER_WAGON_DIESEL;
|
case EC_DIESEL: return is_mu ? LS_DMU : LS_PASSENGER_WAGON_DIESEL;
|
||||||
case EC_ELECTRIC: return LS_PASSENGER_WAGON_ELECTRIC;
|
case EC_ELECTRIC: return is_mu ? LS_EMU : LS_PASSENGER_WAGON_ELECTRIC;
|
||||||
case EC_MONORAIL: return LS_PASSENGER_WAGON_MONORAIL;
|
case EC_MONORAIL: return LS_PASSENGER_WAGON_MONORAIL;
|
||||||
case EC_MAGLEV: return LS_PASSENGER_WAGON_MAGLEV;
|
case EC_MAGLEV: return LS_PASSENGER_WAGON_MAGLEV;
|
||||||
}
|
}
|
||||||
|
@@ -3134,7 +3134,7 @@ void UpdateWindows()
|
|||||||
|
|
||||||
CallWindowRealtimeTickEvent(delta_ms);
|
CallWindowRealtimeTickEvent(delta_ms);
|
||||||
|
|
||||||
#ifdef ENABLE_NETWORKING
|
#ifdef ENABLE_NETWORK
|
||||||
static GUITimer network_message_timer = GUITimer(1);
|
static GUITimer network_message_timer = GUITimer(1);
|
||||||
if (network_message_timer.Elapsed(delta_ms)) {
|
if (network_message_timer.Elapsed(delta_ms)) {
|
||||||
network_message_timer.SetInterval(1000);
|
network_message_timer.SetInterval(1000);
|
||||||
|
Reference in New Issue
Block a user