Fix template replacement cache update crash in RemoveAllGroupsForCompany

This commit is contained in:
Jonathan G Rennison
2023-04-03 20:59:47 +01:00
parent e3e743ba1e
commit d82a050365
3 changed files with 41 additions and 0 deletions

View File

@@ -232,6 +232,21 @@ uint DeleteTemplateReplacementsByGroupID(const Group *g);
void ReindexTemplateReplacements();
void ReindexTemplateReplacementsRecursive();
/**
* Guard to inhibit re-indexing of the recursive group to template replacement cache,
* and to disable group-based VF_REPLACEMENT_PENDING changes.
* May be used recursively.
*/
struct ReindexTemplateReplacementsRecursiveGuard {
ReindexTemplateReplacementsRecursiveGuard();
~ReindexTemplateReplacementsRecursiveGuard();
ReindexTemplateReplacementsRecursiveGuard(const ReindexTemplateReplacementsRecursiveGuard &copysrc) = delete;
ReindexTemplateReplacementsRecursiveGuard(ReindexTemplateReplacementsRecursiveGuard &&movesrc) = delete;
ReindexTemplateReplacementsRecursiveGuard &operator=(const ReindexTemplateReplacementsRecursiveGuard &) = delete;
ReindexTemplateReplacementsRecursiveGuard &operator=(ReindexTemplateReplacementsRecursiveGuard &&) = delete;
};
int GetTemplateVehicleEstimatedMaxAchievableSpeed(const TemplateVehicle *tv, int mass, const int speed_cap);
#endif /* TEMPLATE_VEH_H */