(svn r22472) -Fix: When a NewGRF assigned station properties 09 and/or 0A multiple times, the previously allocated sprite layouts were not freed.

replace/41b28d7194a279bdc17475d4fbe2ea6ec885a466
frosch 14 years ago
parent 64cf720234
commit bc6b348e7a

@ -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++) {

Loading…
Cancel
Save