Flag predicates answer 1 or nil, and the gate now sees them all (#904)
Fourteen bindings answered Lua `true`/`false` where 1.12.1 pushes the number 1 or nil: the loot slot, resurrect and distance predicates, the talent flags (`isExceptional` read 0, which is true, for every ordinary talent), the cursor predicates, and `GetLootRollItemInfo`'s bind flag, whose count also echoed the stack size where the reference answers 1. `GetRepairAllCost` returned two values with no vendor open, and `GetLootRollItemInfo` a sixth value. The reference pushes 1 or nil for each and returns exactly the values its catalogue row records. All of them now answer through `binding_abi::flag`, and `GetRepairAllCost` answers the one value 0 unless a repairing merchant is open. The boolean gate, which missed these, now probes every row whose kinds are nil or number whatever its name or arity confidence, over seeded talent and roll state. The widened gate fails on the parent for all fourteen. Fixes #159 Fixes #900 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
a1130c693a
commit
9be2802f39
@@ -210,7 +210,7 @@ pub(super) fn install(lua: &Lua) -> mlua::Result<()> {
|
||||
"CursorCanGoInSlot",
|
||||
lua.create_function(|lua, id: u32| {
|
||||
let model = lua.app_data_ref::<Model>().expect("model app_data");
|
||||
Ok(cursor_can_go_in_slot(&model, id))
|
||||
Ok(flag(cursor_can_go_in_slot(&model, id)))
|
||||
})?,
|
||||
)?;
|
||||
g.set(
|
||||
|
||||
Reference in New Issue
Block a user