Skip to content

Add condition evaluation mappings#2

Draft
Quantumyilmaz wants to merge 1 commit into
mainfrom
agent/condition-evaluation
Draft

Add condition evaluation mappings#2
Quantumyilmaz wants to merge 1 commit into
mainfrom
agent/condition-evaluation

Conversation

@Quantumyilmaz

@Quantumyilmaz Quantumyilmaz commented Jul 17, 2026

Copy link
Copy Markdown

Summary

  • add verified relocation IDs for TESCondition::IsTrue, BGSConditionForm::IsTrue, and the recovered ConditionCheckParams constructor
  • expose the recovered TESCondition::IsTrue ABI, including its display-failure output parameter
  • add the registered-native wrapper used by BGSConditionForm::IsTrue
  • correct the recovered ConditionCheckParams size and BGSConditionForm member offsets

RE notes

  • IDs resolve on Address Library v22 / Starfield 1.16.244
  • the TESCondition out parameter is retained because callers pass a real byte-local address, even though the current callee does not appear to write it
  • the BGSConditionForm helper uses the exact five-argument registered-native ABI and is documented as game-thread-only
  • no C++ constructor wrapper is exposed yet: the runtime constructor stores raw reference pointers, while the current C++ fields use NiPointer; inventing ownership semantics would risk unbalanced reference counts
  • the newly recovered dword at ConditionCheckParams + 0x68 remains conservatively unnamed

Validation

  • direct Starfield 1.16.244 disassembly and call-site checks
  • Address Library ID resolution
  • clang-format and whitespace checks
  • full CommonLibSF MSVC debug and release builds
  • umbrella-header compile through RE/Starfield.h

QTR internal review draft. This has not been submitted upstream.

Integration check

All four QTR draft branches cherry-pick together cleanly, and the combined tree passes full CommonLibSF MSVC debug and release builds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant