beyond-all-reason / beyond-all-reason/RecoilEngine
Allow setting a command's timeout or inserting with a timeout
- Dominant language
- C++
- Stars
- 679
- Forks
- 290
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 40
Description
A command's timeout can be set in the `GiveOrder*` variants using `LuaUtils::ParseCommand` but only on plain commands. We cannot set it on commands packed into the parameters of a `CMD_INSERT`, so we would have to replace the entire queue to set a single timeout.
- I want to issue commands to the front of the queue by inserting them paired with their timeout.
- Barring that, setting and updating the command timeout seems useful from synced.
While command timeouts can be replicated game-side, the unit's current command has to be monitored and accurately removed. Widgets will struggle in multiplayer due to command delays. Command monitoring must detect similar/identical commands being reissued, assuming the timer should reset. This is overhead we might avoid.
Contributor guide
Research direction
Start by tracing the GiveOrder* variants through LuaUtils::ParseCommand, then inspect how CMD_INSERT packs command parameters and how synced command queues represent timeouts. Clarify whether the goal is timeout support for inserted commands, a synced timeout update, or both. Done means the chosen behavior works for inserted commands and handles multiplayer queue updates without external widget-side monitoring.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- game-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100