beyond-all-reason / beyond-all-reason/RecoilEngine

Unsynced table-based Spring.GiveOrder doesn't return size-based failure

Open
#1,037 2 comments 0 reactions 0 assignees View on GitHub
area: Lua API bug good first issue
Dominant language
C++
Stars
679
Forks
290
Avg merge
3d 2h
Merged PRs (30d)
40

Description

If you put huge enough tables for either units or orders, unsynced Spring.GiveOrder(Array)ToUnit(Map,Array) can fail due to network packet size. This can be immediately calculated locally without having to wait for a roundtrip to learn about the failure. The function currently mistakenly returns a success in such cases though.

Contributor guide

Open the contributing guide

Research direction

Start at the unsynced implementation of Spring.GiveOrder(Array)ToUnit(Map,Array) and trace how table sizes are handled before network submission. Confirm the existing failure result for oversized packets, then ensure the size-based failure is determined locally and returned instead of success.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
api, game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.