beyond-all-reason / beyond-all-reason/RecoilEngine
Organize MoveCtrl setters
- Dominant language
- C++
- Stars
- 679
- Forks
- 290
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 40
Description
Notice Spring.SetProjectileMoveControl, Spring.SetFeatureMoveCtrl and Spring.MoveCtrl.{Enable,Disable}.
Scoping and naming seems inconsistent between these 3 callouts.
Apart from that it seems the movectrl behavior is also inconsistent between these 3. For example:
- Features can't have their velocity/position set unless movectrl is enabled (what happens if it is?)
- Projectiles can have their velocity position set regardless of movectrl, movectrl only regulates how the engine updates the velocity/position (see also that each projectile type implements their own logic for this)
- Units (?)
I don't suggest changing anything, except the naming/scope scope of the callouts and documenting the behavior for each category a movectrl feature exists.
As mentioned perhaps makes sense to have them on the scope of `Spring.MoveCtrl` but note that all callouts in `Spring.MoveCtrl` currently are related to units, apart from the complexity and the fact many of those callouts being made generic does not make much sense given how each of {unit,projectile,feature} has special logic.
For me, with the information I have, would be satisfactory to:
- Rename SetProjectileMoveControl -> SetProjectileMoveCtrl, while keeping the original marked as deprecated
- Document better what movectrl is and how it behaves for each of {unit,feature,projectile}
- Perhaps a guide page "Manipulating world objects", detailing in prose use cases and api
Contributor guide
Research direction
Start by locating the API definitions and documentation for Spring.SetProjectileMoveControl, Spring.SetFeatureMoveCtrl, and Spring.MoveCtrl.{Enable,Disable}. Compare the documented behavior for units, features, and projectiles, and check how the existing callout names are scoped. Done means the projectile setter has a deprecated old name, the three categories' behavior is documented, and any agreed guide content is added.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- api, documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100