|
|
|
@ -3862,6 +3862,7 @@ static ChangeInfoResult AirportChangeInfo(uint airport, int numinfo, int prop, B
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
case 0x0A: { // Set airport layout
|
|
|
|
|
byte old_num_table = as->num_table;
|
|
|
|
|
free(as->rotation);
|
|
|
|
|
as->num_table = buf->ReadByte(); // Number of layaouts
|
|
|
|
|
as->rotation = MallocT<Direction>(as->num_table);
|
|
|
|
@ -3920,6 +3921,12 @@ static ChangeInfoResult AirportChangeInfo(uint airport, int numinfo, int prop, B
|
|
|
|
|
tile_table[j] = CallocT<AirportTileTable>(size);
|
|
|
|
|
memcpy(tile_table[j], copy_from, sizeof(*copy_from) * size);
|
|
|
|
|
}
|
|
|
|
|
/* Free old layouts in the airport spec */
|
|
|
|
|
for (int j = 0; j < old_num_table; j++) {
|
|
|
|
|
/* remove the individual layouts */
|
|
|
|
|
free(as->table[j]);
|
|
|
|
|
}
|
|
|
|
|
free(as->table);
|
|
|
|
|
/* Install final layout construction in the airport spec */
|
|
|
|
|
as->table = tile_table;
|
|
|
|
|
free(att);
|
|
|
|
|