# posts.ludic - what is on a board, slot by slot, and a board as the host says it export function jobs_post_kind(jobs_st: JobsState, b: int, s: int) -> int { return jobs_st.jobs__pk[jobs__at(jobs_st, b, s)] } export function jobs_post_param(jobs_st: JobsState, b: int, s: int) -> int { return jobs_st.jobs__pp[jobs__at(jobs_st, b, s)] } export function jobs_post_need(jobs_st: JobsState, b: int, s: int) -> int { return jobs_st.jobs__pn[jobs__at(jobs_st, b, s)] } export function jobs_post_have(jobs_st: JobsState, b: int, s: int) -> int { return jobs_st.jobs__ph[jobs__at(jobs_st, b, s)] } export function jobs_post_money(jobs_st: JobsState, b: int, s: int) -> int { return jobs_st.jobs__pm[jobs__at(jobs_st, b, s)] } export function jobs_post_rep(jobs_st: JobsState, b: int, s: int) -> int { return jobs_st.jobs__pr[jobs__at(jobs_st, b, s)] } export function jobs_post_state(jobs_st: JobsState, b: int, s: int) -> int { return jobs_st.jobs__ps[jobs__at(jobs_st, b, s)] } export function jobs_post_day(jobs_st: JobsState, b: int, s: int) -> int { return jobs_st.jobs__pd[jobs__at(jobs_st, b, s)] } export function jobs_slots(b: int) -> int { if not jobs_board_ok(b) { return 0 } return JobBoards[b].slots } # the slots with something posted, in order export function jobs_posted(jobs_st: JobsState, b: int) -> []int { let out = new []int for s in 0 .. jobs_slots(b) { if jobs_post_kind(jobs_st, b, s) >= 0 { push(out, s) } } return out } # how many of a board's posts are paid export function jobs_posts_done(jobs_st: JobsState, b: int) -> int { var n = 0 for s in 0 .. jobs_slots(b) { if jobs_post_kind(jobs_st, b, s) >= 0 and jobs_post_state(jobs_st, b, s) == JOBS_DONE { n += 1 } } return n } export function jobs_total(jobs_st: JobsState, b: int) -> int { return jobs_st.jobs__total[b] } # a slot outright: the host's board on a guest, a test export function jobs_post_set(jobs_st: mut JobsState, b: int, s: int, kind: int, param: int, need: int, have: int, money: int, rep: int, state: int, day: int) -> void { let k = jobs__at(jobs_st, b, s) jobs_st.jobs__pk[k] = kind jobs_st.jobs__pp[k] = param jobs_st.jobs__pn[k] = need jobs_st.jobs__ph[k] = have jobs_st.jobs__pm[k] = money jobs_st.jobs__pr[k] = rep jobs_st.jobs__ps[k] = state jobs_st.jobs__pd[k] = day } export function jobs_set_total(jobs_st: mut JobsState, b: int, n: int) -> void { jobs_st.jobs__total[b] = n }