Change: Use bitmap for free unit ID generation. (#12165)

This improves performance of finding the next free unit number for a vehicle.

Based loosely on pool's used slot bitmap.
This commit is contained in:
Peter Nelson
2024-02-25 12:36:13 +00:00
committed by GitHub
parent 8afef45d4e
commit 56cf89d189
7 changed files with 68 additions and 56 deletions

View File

@@ -517,6 +517,10 @@ void AfterLoadVehicles(bool part_of_load)
default: break;
}
if (part_of_load && v->unitnumber != 0) {
Company::Get(v->owner)->freeunits[v->type].UseID(v->unitnumber);
}
v->UpdateDeltaXY();
v->coord.left = INVALID_COORD;
v->sprite_cache.old_coord.left = INVALID_COORD;