[cpp] Ensure sequential order for getfirstID etc #5593
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I affirm:
What does this pull request do?
As mentioned in this PR, the IDs.lua helper functions rely on pulling the list of sequential npc and mobs from a zone to do shift-proof mappings. The query in luautils was not ensuring proper order, and relying on the results to always be in the order of insertion. There are scenarios where mariadb does not return those results in order of smallest to greatest ID (modules doing inserts/deletes would be the most obvious, but i'm sure there are others)
Steps to test these changes
Compile with this change, see that
GetFirstID
andGetTableOfIDs
return what you would expect in terms of the objects being in order of smallest IDs first