wip(0.S2): migrate - a var nothing writes becomes a let; a state is keyed by its module, directory or program, so every program's plan agrees; paths normalized; program states named SceneDemoState / scene_demo_st; the LSP reads state, mut and entry/handler parameters

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Orkun ÇAKILKAYA 2026-09-25 15:31:34 +03:00
parent 3eda72e8c2
commit 5ffe50ed02
463 changed files with 72045 additions and 67421 deletions

View file

@ -2,32 +2,32 @@
function ef_live(e: Effect) -> bool { return e.delay < 0.01 }
# what the rules should add for a kind right now (a delayed one counts only once it begins)
export function effects_sum(effects_st: mut EffectsState, kind: int) -> float {
let all = ef_all(effects_st)
export function effects_sum(kind: int) -> float {
let all = ef_all()
var t = 0.0
for i in 0 .. len(all) { if all[i].kind == kind and ef_live(all[i]) { t = t + all[i].mag } }
return t
}
export function effects_has(effects_st: mut EffectsState, kind: int) -> bool {
let all = ef_all(effects_st)
export function effects_has(kind: int) -> bool {
let all = ef_all()
for i in 0 .. len(all) { if all[i].kind == kind and ef_live(all[i]) { return true } }
return false
}
export function effects_bonus_count(effects_st: mut EffectsState) -> int {
let all = ef_all(effects_st)
export function effects_bonus_count() -> int {
let all = ef_all()
var n = 0
for i in 0 .. len(all) { if all[i].bonus { n += 1 } }
return n
}
# everything held, delayed or not, in the order added
export function effects_count(effects_st: mut EffectsState) -> int { return len(ef_all(effects_st)) }
export function effects_count() -> int { return len(ef_all()) }
# a copy, so a reader cannot change the ring
export function effects_at(effects_st: mut EffectsState, i: int) -> Effect {
let src = ef_all(effects_st)[i]
export function effects_at(i: int) -> Effect {
let src = ef_all()[i]
let e = new Effect
e.kind = src.kind
e.mag = src.mag
@ -39,9 +39,9 @@ export function effects_at(effects_st: mut EffectsState, i: int) -> Effect {
}
# the indices of the ones that have begun, for a read-out
export function effects_live(effects_st: mut EffectsState) -> []int {
export function effects_live() -> []int {
let out = new []int
let all = ef_all(effects_st)
let all = ef_all()
for i in 0 .. len(all) { if ef_live(all[i]) { push(out, i) } }
return out
}