(svn r8207) -Fix

Remove the write-only attribute RoadStop::station
replace/41b28d7194a279bdc17475d4fbe2ea6ec885a466
tron 18 years ago
parent 27dde23409
commit 3d1735fcfd

@ -314,10 +314,8 @@ static void FixOldStations(void)
} }
/* Check if there is a bus or truck station, and convert to new format */ /* Check if there is a bus or truck station, and convert to new format */
if (st->bus_tile_obsolete != 0) st->bus_stops = new RoadStop(st->bus_tile_obsolete, st->index); if (st->bus_tile_obsolete != 0) st->bus_stops = new RoadStop(st->bus_tile_obsolete);
if (st->lorry_tile_obsolete != 0) st->truck_stops = new RoadStop(st->lorry_tile_obsolete);
if (st->lorry_tile_obsolete != 0) st->truck_stops = new RoadStop(st->lorry_tile_obsolete, st->index);
} }
} }

@ -348,16 +348,15 @@ void RoadStop::operator delete(void *p, int index)
} }
/** Initializes a RoadStop */ /** Initializes a RoadStop */
RoadStop::RoadStop(TileIndex tile, StationID index) : RoadStop::RoadStop(TileIndex tile) :
xy(tile), xy(tile),
used(true), used(true),
status(3), // stop is free status(3), // stop is free
num_vehicles(0), num_vehicles(0),
station(index),
next(NULL), next(NULL),
prev(NULL) prev(NULL)
{ {
DEBUG(ms, cDebugCtorLevel, "I+%3d at %d[0x%x]", index, tile, tile); DEBUG(ms, cDebugCtorLevel, "I+ at %d[0x%x]", tile, tile);
} }
/** De-Initializes a RoadStops. This includes clearing all slots that vehicles might /** De-Initializes a RoadStops. This includes clearing all slots that vehicles might
@ -379,10 +378,9 @@ RoadStop::~RoadStop()
if (next != NULL) next->prev = prev; if (next != NULL) next->prev = prev;
used = false; used = false;
DEBUG(ms, cDebugCtorLevel , "I-%3d at %d[0x%x]", station, xy, xy); DEBUG(ms, cDebugCtorLevel , "I- at %d[0x%x]", xy, xy);
xy = INVALID_TILE; xy = INVALID_TILE;
station = INVALID_STATION;
} }

@ -50,13 +50,12 @@ typedef struct RoadStop {
byte status; byte status;
RoadStopID index; RoadStopID index;
byte num_vehicles; byte num_vehicles;
StationID station;
struct RoadStop *next; struct RoadStop *next;
struct RoadStop *prev; struct RoadStop *prev;
static const int cDebugCtorLevel = 3; static const int cDebugCtorLevel = 3;
RoadStop(TileIndex tile, StationID index); RoadStop(TileIndex tile);
~RoadStop(); ~RoadStop();
void *operator new (size_t size); void *operator new (size_t size);

@ -1361,7 +1361,7 @@ int32 CmdBuildRoadStop(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
} }
//give us a road stop in the list, and check if something went wrong //give us a road stop in the list, and check if something went wrong
road_stop = new RoadStop(tile, INVALID_STATION); road_stop = new RoadStop(tile);
if (road_stop == NULL) { if (road_stop == NULL) {
return_cmd_error(type ? STR_3008B_TOO_MANY_TRUCK_STOPS : STR_3008A_TOO_MANY_BUS_STOPS); return_cmd_error(type ? STR_3008B_TOO_MANY_TRUCK_STOPS : STR_3008A_TOO_MANY_BUS_STOPS);
} }
@ -1412,7 +1412,6 @@ int32 CmdBuildRoadStop(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
//initialize an empty station //initialize an empty station
road_stop->prev = prev; road_stop->prev = prev;
road_stop->station = st->index;
if (!st->facilities) st->xy = tile; if (!st->facilities) st->xy = tile;
st->facilities |= (type) ? FACIL_TRUCK_STOP : FACIL_BUS_STOP; st->facilities |= (type) ? FACIL_TRUCK_STOP : FACIL_BUS_STOP;
st->owner = _current_player; st->owner = _current_player;
@ -2852,7 +2851,7 @@ static const SaveLoad _roadstop_desc[] = {
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, 0, 8),
SLE_VAR(RoadStop,station, SLE_UINT16), SLE_CONDNULL(2, 0, 44),
SLE_CONDNULL(1, 0, 25), SLE_CONDNULL(1, 0, 25),
SLE_REF(RoadStop,next, REF_ROADSTOPS), SLE_REF(RoadStop,next, REF_ROADSTOPS),
@ -3007,13 +3006,13 @@ static void Load_STNS(void)
* convert, if needed */ * convert, if needed */
if (CheckSavegameVersion(6)) { if (CheckSavegameVersion(6)) {
if (st->bus_tile_obsolete != 0) { if (st->bus_tile_obsolete != 0) {
st->bus_stops = new RoadStop(st->bus_tile_obsolete, st->index); st->bus_stops = new RoadStop(st->bus_tile_obsolete);
if (st->bus_stops == NULL) if (st->bus_stops == NULL)
error("Station: too many busstations in savegame"); error("Station: too many busstations in savegame");
} }
if (st->lorry_tile_obsolete != 0) { if (st->lorry_tile_obsolete != 0) {
st->truck_stops = new RoadStop(st->lorry_tile_obsolete, st->index); st->truck_stops = new RoadStop(st->lorry_tile_obsolete);
if (st->truck_stops == NULL) if (st->truck_stops == NULL)
error("Station: too many truckstations in savegame"); error("Station: too many truckstations in savegame");
@ -3040,7 +3039,7 @@ static void Load_ROADSTOP(void)
int index; int index;
while ((index = SlIterateArray()) != -1) { while ((index = SlIterateArray()) != -1) {
RoadStop *rs = new (index) RoadStop(INVALID_TILE, INVALID_STATION); RoadStop *rs = new (index) RoadStop(INVALID_TILE);
SlObject(rs, _roadstop_desc); SlObject(rs, _roadstop_desc);
} }

Loading…
Cancel
Save