# system.ludic - two systems, one per owner: "jobs" is this player's (personal jobs and boards, the # done counts, the tick), "jobs.party" the party's, saved with the world export function jobs_reset(jobs_st: mut JobsState) -> void { jobs__reset_scope(jobs_st, JOBS_SELF) for g in 0 .. JOBS_GROUPS { jobs_st.jobs__done_n[g] = 0 } q_clear(jobs_facts(jobs_st)) } export function jobs_party_reset(jobs_st: mut JobsState) -> void { jobs__reset_scope(jobs_st, JOBS_PARTY) } export function jobs_save(jobs_st: JobsState) -> Val { let v = jobs__save_scope(jobs_st, JOBS_SELF) sv_put_ints(v, "done", jobs_st.jobs__done_n) return v } export function jobs_load(jobs_st: mut JobsState, v: Val, version: int) -> void { jobs__load_scope(jobs_st, JOBS_SELF, v) let d = sv_ints(v, "done") for g in 0 .. JOBS_GROUPS { jobs_st.jobs__done_n[g] = 0 if g < len(d) { jobs_st.jobs__done_n[g] = d[g] } } } export function jobs_party_save(jobs_st: JobsState) -> Val { return jobs__save_scope(jobs_st, JOBS_PARTY) } export function jobs_party_load(jobs_st: mut JobsState, v: Val, version: int) -> void { jobs__load_scope(jobs_st, JOBS_PARTY, v) } function jobs__tick(jobs_st: mut JobsState, t: Tick) -> void { jobs__offers(jobs_st) jobs_recheck(jobs_st) } export function jobs_system() -> System { let s = system_new("jobs", PH_COMMIT) s.reset = fn jobs_reset s.tick = fn jobs__tick s.save = fn jobs_save s.load = fn jobs_load return s } export function jobs_party_system() -> System { let s = system_new("jobs.party", PH_COMMIT) s.reset = fn jobs_party_reset s.save = fn jobs_party_save s.load = fn jobs_party_load return s }