Skip to content

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_H
  • AOWL_NE_BUDGET_NS
  • AOWL_NE_CANVAS_SETTLE_TICKS
  • AOWL_NE_CANVAS_SORT_ORDER
  • AOWL_NE_FACTIONS
  • AOWL_NE_FADE_BANDS
  • AOWL_NE_FADE_FAR
  • AOWL_NE_FADE_FLOOR
  • AOWL_NE_FADE_NEAR
  • AOWL_NE_F_BEAR
  • AOWL_NE_F_BOSS
  • AOWL_NE_F_SCAV
  • AOWL_NE_F_USEC
  • AOWL_NE_MAX_CHILDREN
  • AOWL_NE_MAX_DEPTH
  • AOWL_NE_MAX_DISC_FAULTS
  • AOWL_NE_MAX_FAULTS
  • AOWL_NE_MAX_NODES
  • AOWL_NE_MAX_SEED_SKIPS
  • AOWL_NE_MAX_SEED_TRIES
  • AOWL_NE_MIN_CANVAS_PX
  • AOWL_NE_MIN_SAMPLES
  • AOWL_NE_NB
  • AOWL_NE_P95_SAT
  • AOWL_NE_PH_BUILD
  • AOWL_NE_PH_DISCOVER
  • AOWL_NE_PH_GATE
  • AOWL_NE_PH_N
  • AOWL_NE_PH_RUN
  • AOWL_NE_PH_SETTLE
  • AOWL_NE_POOL
  • AOWL_NE_R_BUILD_FAILED
  • AOWL_NE_R_CANVAS_CREATE
  • AOWL_NE_R_CANVAS_DONOR
  • AOWL_NE_R_CANVAS_UNVERIFIED
  • AOWL_NE_R_DISC_FAULTED
  • AOWL_NE_R_FAULTED
  • AOWL_NE_R_NONE
  • AOWL_NE_R_NO_CAMERA
  • AOWL_NE_R_NO_CANVAS
  • AOWL_NE_R_NO_GAMEWORLD
  • AOWL_NE_R_NO_GETCOMP
  • AOWL_NE_R_NO_GRAPHIC
  • AOWL_NE_R_NO_NATIVEUI
  • AOWL_NE_R_NO_ROOTS
  • AOWL_NE_R_NO_SCREEN
  • AOWL_NE_R_NO_STRING
  • AOWL_NE_R_OFF
  • AOWL_NE_R_SEED_TRIES
  • AOWL_NE_SCAN_EVERY
  • AOWL_NE_SLICE_MS
  • AOWL_NE_SUB_APPLY
  • AOWL_NE_SUB_GATE
  • AOWL_NE_SUB_LIVE
  • AOWL_NE_SUB_N
  • AOWL_NE_SUB_PROJECT
  • AOWL_NE_SUB_SCAN
  • AOWL_NE_SUB_SORT
  • AOWL_NE_SUB_VERDICT
  • AOWL_NE_UI_LAYER
  • AOWL_NE_VERDICT_EVERY
  • AOWL_NE_V_FAIL
  • AOWL_NE_V_INCONCLUSIVE
  • AOWL_NE_V_PASS

Functions

SignatureLine
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

aoughwl — self-hosted platform for things n stuff. Contact / Support on Discord for access to the private backends.