beyond-all-reason / beyond-all-reason/RecoilEngine
Widget-issued build orders without build-facing set is not being replaced when user then shift-orders the same build order over the top.
- Dominant language
- C++
- Stars
- 679
- Forks
- 290
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 40
Description
To reproduce:
- Have some widget issue a buildunit order without specifying buildfacing (4th parameter)
- Hold shift and attempt a normal buildunit order clicking on the same spot
What is expected:
- The build order to be canceled, default engine behavior for queuing clashing buildunit orders
- Engine to sanitize the nil buildfacing parameter and have the enqueued order contain the current global buildfacing value.
What happens:
- Clashing build orders for the same queue are present.
Additional considerations:
- Engine policy could be that game should always send sane parameters, in which case this is a non-issue
- Instead of sanitizing, rejecting invalid order (nil buildfacing)
Contributor guide
Research direction
Start by tracing widget-issued buildunit orders and the engine's handling of queued, clashing build orders. Reproduce the case with a nil buildfacing parameter, compare it with a normal shift-ordered buildunit at the same location, and determine the intended policy. Done means clashing orders follow the chosen behavior and buildfacing is handled consistently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- game-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100