(svn r14158) -Codechange: Initialization of rail type data from static source, so data can be changed.

This commit is contained in:
peter1138 2008-08-24 23:00:11 +00:00
parent ff07598ce2
commit 2f80a277eb
4 changed files with 22 additions and 1 deletions

View File

@ -5422,6 +5422,9 @@ static void ResetNewGRFData()
/* Copy/reset original bridge info data */
ResetBridges();
/* Reset rail type information */
ResetRailTypes();
/* Allocate temporary refit/cargo class data */
_gted = CallocT<GRFTempEngineData>(GetEnginePoolSize());

View File

@ -237,4 +237,9 @@ RailType GetBestRailtype(const PlayerID p);
*/
RailTypes GetPlayerRailtypes(const PlayerID p);
/**
* Reset all rail type information to its default values.
*/
void ResetRailTypes();
#endif /* RAIL_H */

View File

@ -54,6 +54,19 @@
#include "table/railtypes.h"
#include "table/track_land.h"
RailtypeInfo _railtypes[RAILTYPE_END];
assert_compile(sizeof(_original_railtypes) <= sizeof(_railtypes));
/**
* Initialize rail type information.
*/
void ResetRailTypes()
{
memset(_railtypes, 0, sizeof(_railtypes));
memcpy(_railtypes, _original_railtypes, sizeof(_original_railtypes));
}
const byte _track_sloped_sprites[14] = {
14, 15, 22, 13,
0, 21, 17, 12,

View File

@ -9,7 +9,7 @@
/** Global Railtype definition
*/
RailtypeInfo _railtypes[] = {
static const RailtypeInfo _original_railtypes[] = {
/** Railway */
{ /* Main Sprites */
{ SPR_RAIL_TRACK_Y, SPR_RAIL_TRACK_N_S, SPR_RAIL_TRACK_BASE, SPR_RAIL_SINGLE_Y, SPR_RAIL_SINGLE_X,