Clear old tree counter in map array on load of old savegames
See: https://github.com/OpenTTD/OpenTTD/pull/10018
This commit is contained in:
@@ -178,7 +178,7 @@ the array so you can quickly see what is used and what is not.
|
|||||||
<td>4</td>
|
<td>4</td>
|
||||||
<td class="caption">trees</td>
|
<td class="caption">trees</td>
|
||||||
<td class="bits"><span class="free">O</span><span class="used" title="Water class">XX</span><span class="usable" title="Owner (always OWNER_NONE)">1 OOOO</span></td>
|
<td class="bits"><span class="free">O</span><span class="used" title="Water class">XX</span><span class="usable" title="Owner (always OWNER_NONE)">1 OOOO</span></td>
|
||||||
<td class="bits"><span class="free">OOOO OOO</span><span class="used" title="Tree ground">XXX</span> <span class="used" title="Tree density">XX</span> <span class="used" title="Tree counter">XXXX</span></td>
|
<td class="bits"><span class="free">OOOO OOO</span><span class="used" title="Tree ground">XXX</span> <span class="used" title="Tree density">XX</span> <span class="free" title="Old tree counter">OOOO</span></td>
|
||||||
<td class="bits"><span class="usable" title="Tree type unused bits">XX</span><span class="used" title="Tree type">XX XXXX</span></td>
|
<td class="bits"><span class="usable" title="Tree type unused bits">XX</span><span class="used" title="Tree type">XX XXXX</span></td>
|
||||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||||
<td class="bits"><span class="used" title="Number of trees on tile (+1)">XX</span><span class="free">OO O</span><span class="used" title="Tree growth">XXX</span></td>
|
<td class="bits"><span class="used" title="Number of trees on tile (+1)">XX</span><span class="free">OO O</span><span class="used" title="Tree growth">XXX</span></td>
|
||||||
|
@@ -4098,6 +4098,14 @@ bool AfterLoadGame()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (SlXvIsFeatureMissing(XSLFI_NO_TREE_COUNTER)) {
|
||||||
|
for (TileIndex t = 0; t < map_size; t++) {
|
||||||
|
if (IsTileType(t, MP_TREES)) {
|
||||||
|
ClearOldTreeCounter(t);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
InitializeRoadGUI();
|
InitializeRoadGUI();
|
||||||
|
|
||||||
/* This needs to be done after conversion. */
|
/* This needs to be done after conversion. */
|
||||||
|
@@ -175,6 +175,7 @@ const SlxiSubChunkInfo _sl_xv_sub_chunk_infos[] = {
|
|||||||
{ XSLFI_INDUSTRY_ANIM_MASK, XSCF_IGNORABLE_ALL, 1, 1, "industry_anim_mask", nullptr, nullptr, nullptr },
|
{ XSLFI_INDUSTRY_ANIM_MASK, XSCF_IGNORABLE_ALL, 1, 1, "industry_anim_mask", nullptr, nullptr, nullptr },
|
||||||
{ XSLFI_NEW_SIGNAL_STYLES, XSCF_NULL, 2, 2, "new_signal_styles", nullptr, nullptr, "XBST,NSID" },
|
{ XSLFI_NEW_SIGNAL_STYLES, XSCF_NULL, 2, 2, "new_signal_styles", nullptr, nullptr, "XBST,NSID" },
|
||||||
{ XSLFI_SCRIPT_INT64, XSCF_NULL, 1, 1, "script_int64", nullptr, nullptr, nullptr },
|
{ XSLFI_SCRIPT_INT64, XSCF_NULL, 1, 1, "script_int64", nullptr, nullptr, nullptr },
|
||||||
|
{ XSLFI_NO_TREE_COUNTER, XSCF_IGNORABLE_ALL, 1, 1, "no_tree_counter", nullptr, nullptr, nullptr },
|
||||||
{ XSLFI_NULL, XSCF_NULL, 0, 0, nullptr, nullptr, nullptr, nullptr },// This is the end marker
|
{ XSLFI_NULL, XSCF_NULL, 0, 0, nullptr, nullptr, nullptr, nullptr },// This is the end marker
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -127,6 +127,7 @@ enum SlXvFeatureIndex {
|
|||||||
XSLFI_GRF_ROADSTOPS, ///< NewGRF road stops
|
XSLFI_GRF_ROADSTOPS, ///< NewGRF road stops
|
||||||
XSLFI_INDUSTRY_ANIM_MASK, ///< Industry tile animation masking
|
XSLFI_INDUSTRY_ANIM_MASK, ///< Industry tile animation masking
|
||||||
XSLFI_NEW_SIGNAL_STYLES, ///< New signal styles
|
XSLFI_NEW_SIGNAL_STYLES, ///< New signal styles
|
||||||
|
XSLFI_NO_TREE_COUNTER, ///< No tree counter
|
||||||
|
|
||||||
XSLFI_SCRIPT_INT64, ///< See: SLV_SCRIPT_INT64
|
XSLFI_SCRIPT_INT64, ///< See: SLV_SCRIPT_INT64
|
||||||
|
|
||||||
|
@@ -215,6 +215,18 @@ static inline void SetTreeGrowth(TileIndex t, uint g)
|
|||||||
SB(_m[t].m5, 0, 3, g);
|
SB(_m[t].m5, 0, 3, g);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear the old tick counter for a tree-tile
|
||||||
|
*
|
||||||
|
* @param t The tile to clear the old tick counter
|
||||||
|
* @pre Tile must be of type MP_TREES
|
||||||
|
*/
|
||||||
|
static inline void ClearOldTreeCounter(TileIndex t)
|
||||||
|
{
|
||||||
|
assert_tile(IsTileType(t, MP_TREES), t);
|
||||||
|
SB(_m[t].m2, 0, 4, 0);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make a tree-tile.
|
* Make a tree-tile.
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user