Summary
Intermittent report while testing TurtleWoW + ControllerBridge/CE on Android/Winlator: pressing controller X on a OneBag inventory item appeared to remove multiple equipped items. After adding broader diagnostics, the issue did not reproduce in the latest test, so this is being tracked as an unresolved intermittent issue rather than a confirmed CE action bug.
Current evidence
- Controller mapping in cursor mode is currently:
X -> key 7 -> CE_CURSOR_USE_ITEM
B -> key 8 -> CE_CURSOR_CANCEL_HELD
- equipment slot
X should be the only path to CE_CURSOR_UNEQUIP.
- During the repro attempt that looked suspicious, logs showed X entering
CE_UseItem(), not CE_UnequipItem():
button key relay X->7 down
cursor-use entry button=OneBag0Item3 frame=OneBag0 key7=CE_CURSOR_USE_ITEM
resolved type=onebag button=OneBag0Item3 bag=0 slot=3
before-use ... link=[日晒水袋]
- then
UseContainerItem(0, 3) behavior followed.
- No log evidence was seen for:
CE_CURSOR_UNEQUIP
cursor-unequip
PickupInventoryItem() from CE's own unequip path.
- The item involved in the suspicious path was
日晒水袋 (item:80250), so at least one observed path was ordinary inventory item use, not direct equipment-slot unequip.
Diagnostics currently added locally
A temporary CE diagnostic wrapper has been added locally around global equipment/container APIs and deployed to the Android test client. It logs to Logs/ControllerBridge.log with tag equip-api:
PickupInventoryItem(slot)
UseInventoryItem(slot)
PutItemInBackpack()
PutItemInBag(slot)
EquipCursorItem(slot)
PickupContainerItem(bag, slot)
UseContainerItem(bag, slot, onself)
ClearCursor()
Each entry records args, current CE cursor button/frame, mouse focus, cursor state, a short stack, and before/after equipment summaries. Existing cursor-use and cursor-use-event logs also record use windows and inventory/equipment events.
Next repro checklist
- Keep the diagnostic wrapper enabled.
/reload after deploying CE.
- Clear
Logs/ControllerBridge.log.
- Open inventory, focus the suspect item, press X once.
- If equipment disappears, inspect
equip-api for calls to PickupInventoryItem, UseInventoryItem, PutItemInBackpack, EquipCursorItem, or other non-CE plugin activity.
Expected decision once reproduced
- If only
UseContainerItem(0, slot) appears and equipment still changes, investigate item/native client behavior or another lower-level hook.
- If a global equipment API appears, use the stack/current focus log to identify whether CE, SuperMacro/NewMacros, Outfitter, pfUI, or another addon initiated the move.
- If no repro after repeated tests, remove or gate the high-volume diagnostics before committing CE polish changes.
Summary
Intermittent report while testing TurtleWoW + ControllerBridge/CE on Android/Winlator: pressing controller X on a OneBag inventory item appeared to remove multiple equipped items. After adding broader diagnostics, the issue did not reproduce in the latest test, so this is being tracked as an unresolved intermittent issue rather than a confirmed CE action bug.
Current evidence
X -> key 7 -> CE_CURSOR_USE_ITEMB -> key 8 -> CE_CURSOR_CANCEL_HELDXshould be the only path toCE_CURSOR_UNEQUIP.CE_UseItem(), notCE_UnequipItem():button key relay X->7 downcursor-use entry button=OneBag0Item3 frame=OneBag0 key7=CE_CURSOR_USE_ITEMresolved type=onebag button=OneBag0Item3 bag=0 slot=3before-use ... link=[日晒水袋]UseContainerItem(0, 3)behavior followed.CE_CURSOR_UNEQUIPcursor-unequipPickupInventoryItem()from CE's own unequip path.日晒水袋(item:80250), so at least one observed path was ordinary inventory item use, not direct equipment-slot unequip.Diagnostics currently added locally
A temporary CE diagnostic wrapper has been added locally around global equipment/container APIs and deployed to the Android test client. It logs to
Logs/ControllerBridge.logwith tagequip-api:PickupInventoryItem(slot)UseInventoryItem(slot)PutItemInBackpack()PutItemInBag(slot)EquipCursorItem(slot)PickupContainerItem(bag, slot)UseContainerItem(bag, slot, onself)ClearCursor()Each entry records args, current CE cursor button/frame, mouse focus, cursor state, a short stack, and before/after equipment summaries. Existing
cursor-useandcursor-use-eventlogs also record use windows and inventory/equipment events.Next repro checklist
/reloadafter deploying CE.Logs/ControllerBridge.log.equip-apifor calls toPickupInventoryItem,UseInventoryItem,PutItemInBackpack,EquipCursorItem, or other non-CE plugin activity.Expected decision once reproduced
UseContainerItem(0, slot)appears and equipment still changes, investigate item/native client behavior or another lower-level hook.