Appearance
aowlspt_natesp.h
Source: abi/aowlspt_natesp.h — 817 lines, 67 file-scope functions.
What this header owns
Reproduced verbatim from the header's own banner comment — these notes are frequently the only written record of why the subsystem is shaped the way it is.
text
aowlspt_natesp.h -- the NATIVE uGUI ESP's pure-C half.
WHAT THIS IS. `natesp.nim` draws contact boxes as REAL Tarkov uGUI
GameObjects (nativeui's `nu*` primitives), parented to a canvas DISCOVERED at
runtime. This header holds only what must be C: the single SEH guard shim,
the fixed caps, the fault budget, and the verdict/refusal vocabulary. There
is no il2cpp here and nothing in this file can fault.
THE ONE GUARD. `aowl_ne_tick_guarded` wraps the WHOLE tick body in ONE
`aowl_p_p_seh`. `aowl_p_p_seh` is NOT re-entrant -- a nested inner guard
disarms the outer one -- so the Nim body opens none of its own, exactly as
natraid.nim does.
ALLOCATION PROFILE, stated up front because it is a hard rule. The pool is
built ONCE: `AOWL_NE_POOL` GameObjects, each with a RectTransform and one
Graphic. After that the per-frame work is `_Injected` layout setters plus
`GameObject::SetActive` -- no `object_new`, no `il2cpp_string_new`, no
managed allocation of any kind in the update path.
WHY THE VERDICT VOCABULARY LIVES HERE. CLAUDE.md 9b: a check that cannot
fail IS the bug, and there are THREE outcomes, never two. The three literals
below are the only three things the diag may ever say, they are mutually
exclusive, and PASS is the one that is hardest to reach on purpose -- it
requires a READBACK of the finished state, not a record of our own writes.Constants
AOWLSPT_NATESP_HAOWL_NE_BUDGET_NSAOWL_NE_CANVAS_SETTLE_TICKSAOWL_NE_CANVAS_SORT_ORDERAOWL_NE_FACTIONSAOWL_NE_FADE_BANDSAOWL_NE_FADE_FARAOWL_NE_FADE_FLOORAOWL_NE_FADE_NEARAOWL_NE_F_BEARAOWL_NE_F_BOSSAOWL_NE_F_SCAVAOWL_NE_F_USECAOWL_NE_MAX_CHILDRENAOWL_NE_MAX_DEPTHAOWL_NE_MAX_DISC_FAULTSAOWL_NE_MAX_FAULTSAOWL_NE_MAX_NODESAOWL_NE_MAX_SEED_SKIPSAOWL_NE_MAX_SEED_TRIESAOWL_NE_MIN_CANVAS_PXAOWL_NE_MIN_SAMPLESAOWL_NE_NBAOWL_NE_P95_SATAOWL_NE_PH_BUILDAOWL_NE_PH_DISCOVERAOWL_NE_PH_GATEAOWL_NE_PH_NAOWL_NE_PH_RUNAOWL_NE_PH_SETTLEAOWL_NE_POOLAOWL_NE_R_BUILD_FAILEDAOWL_NE_R_CANVAS_CREATEAOWL_NE_R_CANVAS_DONORAOWL_NE_R_CANVAS_UNVERIFIEDAOWL_NE_R_DISC_FAULTEDAOWL_NE_R_FAULTEDAOWL_NE_R_NONEAOWL_NE_R_NO_CAMERAAOWL_NE_R_NO_CANVASAOWL_NE_R_NO_GAMEWORLDAOWL_NE_R_NO_GETCOMPAOWL_NE_R_NO_GRAPHICAOWL_NE_R_NO_NATIVEUIAOWL_NE_R_NO_ROOTSAOWL_NE_R_NO_SCREENAOWL_NE_R_NO_STRINGAOWL_NE_R_OFFAOWL_NE_R_SEED_TRIESAOWL_NE_SCAN_EVERYAOWL_NE_SLICE_MSAOWL_NE_SUB_APPLYAOWL_NE_SUB_GATEAOWL_NE_SUB_LIVEAOWL_NE_SUB_NAOWL_NE_SUB_PROJECTAOWL_NE_SUB_SCANAOWL_NE_SUB_SORTAOWL_NE_SUB_VERDICTAOWL_NE_UI_LAYERAOWL_NE_VERDICT_EVERYAOWL_NE_V_FAILAOWL_NE_V_INCONCLUSIVEAOWL_NE_V_PASS
Functions
| Signature | Line |
|---|---|
char aowl_ne_faction_name(int32_t f) | 170 |
float aowl_ne_faction_rgba(int32_t f, int32_t chan) | 195 |
int32_t aowl_ne_set_faction_rgba(int32_t f, float r, float g, float b, float a) | 205 |
int32_t aowl_ne_col_source(int32_t f) | 218 |
float aowl_ne_fade_alpha(float depth) | 242 |
int32_t aowl_ne_fade_band(float depth) | 256 |
float aowl_ne_band_alpha(int32_t band) | 264 |
char aowl_ne_drop_policy(void) | 274 |
char aowl_ne_refusal_text(int32_t r) | 320 |
int32_t aowl_ne_fault_count(void) | 352 |
void aowl_ne_note_fault(void) | 353 |
int32_t aowl_ne_disabled(void) | 354 |
int32_t aowl_ne_pool(void) | 356 |
int32_t aowl_ne_factions(void) | 357 |
int32_t aowl_ne_max_nodes(void) | 358 |
int32_t aowl_ne_max_children(void) | 359 |
int32_t aowl_ne_max_depth(void) | 360 |
int32_t aowl_ne_max_disc_faults(void) | 361 |
int32_t aowl_ne_max_seed_tries(void) | 362 |
int32_t aowl_ne_max_seed_skips(void) | 363 |
int32_t aowl_ne_slice_ms(void) | 364 |
int32_t aowl_ne_scan_every(void) | 365 |
int32_t aowl_ne_verdict_every(void) | 366 |
float aowl_ne_min_canvas_px(void) | 367 |
int32_t aowl_ne_canvas_sort_order(void) | 368 |
int32_t aowl_ne_canvas_settle_ticks(void) | 369 |
int32_t aowl_ne_ui_layer(void) | 370 |
int32_t aowl_ne_on_screen(float x, float y, float w, float h, float sw, float sh) | 375 |
void aowl_ne_bucket_add(aowl_ne_bucket* b, int64_t ns) | 503 |
int64_t aowl_ne_qpc(void) | 519 |
int64_t aowl_ne_elapsed_ns(int64_t t0) | 526 |
void aowl_ne_cost_begin(void) | 536 |
void aowl_ne_ctrl_run(aowl_ne_bucket* into) | 597 |
void aowl_ne_ctrl_out(void) | 607 |
void aowl_ne_ctrl_in(void) | 608 |
int64_t aowl_ne_ctrl_mean_ns(int32_t which) | 609 |
int64_t aowl_ne_ctrl_max_ns(int32_t which) | 614 |
int64_t aowl_ne_ctrl_samples(int32_t which) | 618 |
void aowl_ne_sub_begin(int32_t id) | 650 |
void aowl_ne_sub_end(int32_t id) | 654 |
int64_t aowl_ne_acc_mean_ns(void) | 663 |
int64_t aowl_ne_acc_samples(void) | 667 |
int64_t aowl_ne_sub_mean_ns(int32_t id) | 668 |
int64_t aowl_ne_sub_max_ns(int32_t id) | 672 |
int64_t aowl_ne_sub_samples(int32_t id) | 676 |
char aowl_ne_sub_name(int32_t id) | 680 |
void aowl_ne_cost_phase(int32_t ph) | 696 |
void aowl_ne_cost_end(void) | 700 |
void aowl_ne_cost_reset(void) | 721 |
int64_t aowl_ne_cost_samples(int32_t ph) | 737 |
int64_t aowl_ne_cost_max_ns(int32_t ph) | 741 |
int64_t aowl_ne_cost_mean_ns(int32_t ph) | 745 |
int64_t aowl_ne_cost_over(int32_t ph) | 749 |
int64_t aowl_ne_cost_p95_ns(int32_t ph) | 761 |
int64_t aowl_ne_p95_sat(void) | 771 |
int64_t aowl_ne_top_edge_ns(void) | 772 |
int64_t aowl_ne_cost_ovf(int32_t ph) | 773 |
int64_t aowl_ne_gap_mean_ns(void) | 777 |
int64_t aowl_ne_gap_samples(void) | 781 |
int64_t aowl_ne_gap_ph_mean_ns(int32_t ph) | 784 |
int64_t aowl_ne_gap_ph_samples(int32_t ph) | 788 |
int64_t aowl_ne_cost_dropped(void) | 792 |
int64_t aowl_ne_budget_ns(void) | 793 |
int64_t aowl_ne_min_samples(void) | 794 |
char aowl_ne_phase_name(int32_t ph) | 795 |
void aowl_ne_note_recolour(void) | 813 |
int64_t aowl_ne_recolours(void) | 814 |

