(svn r22472) -Fix: When a NewGRF assigned station properties 09 and/or 0A multiple times, the previously allocated sprite layouts were not freed.
This commit is contained in:
@@ -1221,6 +1221,8 @@ static ChangeInfoResult StationChangeInfo(uint stid, int numinfo, int prop, Byte
|
|||||||
}
|
}
|
||||||
|
|
||||||
case 0x09: // Define sprite layout
|
case 0x09: // Define sprite layout
|
||||||
|
delete[] statspec->renderdata; // delete earlier loaded stuff
|
||||||
|
|
||||||
statspec->tiles = buf->ReadExtendedByte();
|
statspec->tiles = buf->ReadExtendedByte();
|
||||||
statspec->renderdata = new NewGRFSpriteLayout[statspec->tiles];
|
statspec->renderdata = new NewGRFSpriteLayout[statspec->tiles];
|
||||||
|
|
||||||
@@ -1281,6 +1283,8 @@ static ChangeInfoResult StationChangeInfo(uint stid, int numinfo, int prop, Byte
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete[] statspec->renderdata; // delete earlier loaded stuff
|
||||||
|
|
||||||
statspec->tiles = srcstatspec->tiles;
|
statspec->tiles = srcstatspec->tiles;
|
||||||
statspec->renderdata = new NewGRFSpriteLayout[statspec->tiles];
|
statspec->renderdata = new NewGRFSpriteLayout[statspec->tiles];
|
||||||
for (uint t = 0; t < statspec->tiles; t++) {
|
for (uint t = 0; t < statspec->tiles; t++) {
|
||||||
|
Reference in New Issue
Block a user