[CR] [WIP] Optimize generic activities using stages #33864
Closed
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.
Summary
SUMMARY: Infrastructure "Optimize generic activities using stages"
Purpose of change
Avoid the possible coordinates looping in generic activities by using stages.
Optimize activity performance.
Describe the solution
Activity stages (stored in
activity.index
)Initial
stage: determine and remember all possible location for this activity.Think
stage: think about what to do first: choose a source location to move.Move
stage: go to the chosen location.Do
stage: do specific activity there, then think what to do next (go to 2).The location coordinates are processed only once to avoid loops.
Probably it can also be done using some kind of coordinate markings: skipping and then returning to the skipped coordinate?
Not finished yet.
Describe alternatives you've considered
Leave as it is.
Additional context
Changes were rebased from PR #33710, excluding
activity_on_turn_move_loot
changes (will be done in separate PR).