Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
PROPOSAL ONLY; no target edits or native execution.
|
||||
New leaf and actual-method test only. Parent registers test_infantry_mine_transfer.py.
|
||||
|
||||
API:
|
||||
ERR_InfantryMineTransfer(mode, Vehicle truck, SCR_AIGroup truckGroup, IEntity actor,
|
||||
SCR_AIGroup recipientGroup, IEntity incoming, ERR_FiniteMagazineReservation reservation,
|
||||
ERR_HQStatusSampler originalRoster, int originalSlot)
|
||||
Tick(now): ERR_InfantryAmmoTransferState (-1 failed,0 pending,1 succeeded).
|
||||
Submitted(), Unresolved(), Stop(), Reason().
|
||||
static ReadyMine(item): exact alive inactive native PMN4.
|
||||
static Carrier(actor,group,exclude=null): exact sole usable PMN4, or null when
|
||||
zero/multiple/unknown. Optional exclusion is internal after submission only.
|
||||
|
||||
Coordinator must pass same original roster slot and shared finite reservation
|
||||
from captured mine originals + EXISTING spent ledger. Leaf pins driver, physical
|
||||
records, managers, reciprocal original source slot and exact original carried mine
|
||||
at construction. It never selects another carrier or swaps carrier entitlement.
|
||||
One native Move submission only, Commit before call; callback identities are not
|
||||
queried (GetItem unsupported for Move). Callback+exact reciprocal storage and
|
||||
source absence prove delivery. Unknown/partial movement remains unresolved after
|
||||
Stop or timeout; definitive callback-failure plus unchanged source can settle it.
|
||||
Deleted incoming entity settles this one-item transaction; damage/capture does not.
|
||||
No rollback, spawn, new capability at zero stock, placement-latch reset or refund.
|
||||
|
||||
Tests execute production constructor, Carrier, Context, Tick, Stop, Unresolved,
|
||||
callbacks, custody and shared reservation with native doubles. They cover one/two/
|
||||
zero/unknown carrier inventories, original actor/slot/driver/ledger/managers, native
|
||||
capacity/access refusal, exact shared stock, inline callback with false return,
|
||||
unknown false return, timeout/backwards clock, late proof, changed ownership and
|
||||
exact deletion. Negative controls remove single-carrier or missing-damage guard;
|
||||
both compile and assertion-fail. green.log passes.
|
||||
|
||||
No actual native inventory movement, pathfinding, multiplayer or Enforce lifetime
|
||||
qualification claimed. Existing coordinator owns exclusive HQ reservations/radio.
|
||||
|
||||
Verified local SDK references:
|
||||
- /tmp/erri-vanilla-stock/scripts/Game/generated/InventorySystem/InventoryStorageManagerComponent.c:
|
||||
32 CanMoveItemToStorage,34 TryMoveItemToStorage(item,to,-1,callback),45 GetStorages,
|
||||
47 GetItems,51 FindStorageForItem; GetOwner at14.
|
||||
- /tmp/erri-vanilla-stock/scripts/Game/generated/InventorySystem/InventoryTask/ScriptedInventoryOperationCallback.c:
|
||||
GetItem documentation explicitly excludes Move; all four callback signatures verified.
|
||||
- /tmp/erri-vanilla-stock/scripts/Game/Weapon/Explosives/SCR_BaseTriggerComponent.c:
|
||||
IsActivated22, IsActivatedByDefault29, both read-only native script state.
|
||||
- Existing ERR_InfantryAmmoTransfer supplies verified group/driver/physics and
|
||||
bounded StoredUnder ancestry patterns; actual StoredUnder extracted into test.
|
||||
- ERR_Actors.Alive requires DamageManagerComponent (ERR_Actors.c:3-7); native
|
||||
double matches this so unknown damage cannot masquerade as known unavailable stock.
|
||||
Reference in New Issue
Block a user