the paper doll goes half rate, and the parked frame diets
- the paper doll joins the collapsed rig lane and its body panes render every other frame while open, the pose still evaluating at full rate (boothHalfRate CVar) — the open character window's cost at Goldshire ~+2.7 → ~+1.0 ms - the parked frame's idle diet: avian's dynamics pipeline goes (the world has zero dynamic bodies), the hidden dev overlay stops drawing an empty pass, and a unit's swim state is re-checked only when it moved — 12.8–13.3 → 12.0 ms parked at Goldshire - the UI tick stops sweeping the whole frame arena three times over: OnUpdate frames and the message and cooldown kinds live on registries kept at their one write site — idle tick 530 → ~195 µs a frame - the WOW_MEGA_STATIC bracket retires, past its recorded condition now that the retained pass carries its own Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -358,13 +358,19 @@ fn set_script(lua: &Lua, this: &Table, name: &str, func: Option<Function>) -> ml
|
||||
Some(f) => {
|
||||
per.set(kind, f)?;
|
||||
let mut model = lua.app_data_mut::<Model>().expect("model");
|
||||
model.scripts.entry(h).or_default().insert(kind);
|
||||
// `insert` answering true = this frame did not have the kind before — the tick's
|
||||
// OnUpdate list rides that edge (decision 1446; `scripts` has no other writer).
|
||||
if model.scripts.entry(h).or_default().insert(kind) && kind == "OnUpdate" {
|
||||
model.on_update_frames.push(h);
|
||||
}
|
||||
}
|
||||
None => {
|
||||
per.set(kind, Value::Nil)?;
|
||||
let mut model = lua.app_data_mut::<Model>().expect("model");
|
||||
if let Some(set) = model.scripts.get_mut(&h) {
|
||||
set.remove(&kind);
|
||||
if set.remove(&kind) && kind == "OnUpdate" {
|
||||
model.on_update_frames.retain(|&x| x != h);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user