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.

Open
#728 0 comments 0 reactions 0 assignees View on GitHub
bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.