refactor(packages): 0.R5 - a question no longer starts its state - 64 lazy starts ('if st.x == null { st.x = ... }' inside a getter) are the state's defaults, gear__ensure is gone, and ludic migrate state --tighten took mut off 208 package parameters: things_all, thing_find, gear_charge, gear_level, jobs_state and the rest read

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Orkun ÇAKILKAYA 2026-09-27 00:51:03 +03:00
parent 54f5efb23f
commit 9862ec82e3
102 changed files with 320 additions and 351 deletions

View file

@ -56,7 +56,7 @@ export state NeedsState {
nd_legs: float = 0.0 # seconds left before a collapse, 0 = none
nd_last: int = 0 # the need the countdown is for
nd_collapses: int = 0
nd_facts: Queue<NeedFact> = null
nd_facts: Queue<NeedFact> = nd_facts__new()
}
function nd_lv(needs_st: mut NeedsState) -> []float {
@ -75,12 +75,11 @@ function nd_fill(needs_st: mut NeedsState) -> void {
}
# the facts, oldest first; the game drains them into its notices and its collapse
export function needs_facts(needs_st: mut NeedsState) -> Queue<NeedFact> {
if needs_st.nd_facts == null { needs_st.nd_facts = queue_new("needs.facts") }
export function needs_facts(needs_st: NeedsState) -> Queue<NeedFact> {
return needs_st.nd_facts
}
function nd_fact(needs_st: mut NeedsState, what: int, need: int) -> void {
function nd_fact(needs_st: NeedsState, what: int, need: int) -> void {
let f = new NeedFact
f.what = what
f.need = need
@ -88,3 +87,4 @@ function nd_fact(needs_st: mut NeedsState, what: int, need: int) -> void {
}
function nd_ok(k: int) -> bool { return k >= 0 and k < NEED_COUNT }
function nd_facts__new() -> Queue<NeedFact> { return queue_new("needs.facts") }

View file

@ -46,7 +46,7 @@ program NeedsTest {
function fresh(needs_st: mut NeedsState) -> void { needs_reset(needs_st) }
function hours(needs_st: mut NeedsState, h: float) -> void { for i in 0 .. int(h * 10.0) { needs_run(needs_st, 0.1) } }
function facts(needs_st: mut NeedsState) -> []NeedFact { return q_drain(needs_facts(needs_st)) }
function facts(needs_st: NeedsState) -> []NeedFact { return q_drain(needs_facts(needs_st)) }
test "a new body is warm, rested, fed and watered" (needs_st: mut NeedsState) {
fresh(needs_st)