Merge lang/foundations b513f7b into lang/ecs
This commit is contained in:
commit
00408604da
7 changed files with 58578 additions and 57763 deletions
|
|
@ -27,6 +27,7 @@ export function photo_frame_subject(photo_st: mut PhotoState, sp: int, name: str
|
|||
}
|
||||
|
||||
# anything else in the picture worth naming: a landmark, the water, a sign
|
||||
@alloc_ok("a shot's tags: once per photograph taken")
|
||||
export function photo_frame_tag(photo_st: mut PhotoState, text: string) -> void {
|
||||
if len(text) == 0 { return }
|
||||
if len(photo_st.pht_pending_tags) > 0 { photo_st.pht_pending_tags = photo_st.pht_pending_tags + ", " }
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ export function photo_sort_set(photo_st: mut PhotoState, s: int) -> void { photo
|
|||
|
||||
# the roll in the chosen order: newest first, best first, or by subject
|
||||
export function photo_order(photo_st: mut PhotoState) -> []int {
|
||||
photo_st.pht_order = new []int
|
||||
List.clear(photo_st.pht_order)
|
||||
for i in 0 .. photo_st.pht_n { push(photo_st.pht_order, i) }
|
||||
if photo_st.pht_sort == PHOTO_NEWEST {
|
||||
for i in 0 .. photo_st.pht_n { photo_st.pht_order[i] = photo_st.pht_n - 1 - i }
|
||||
|
|
@ -39,13 +39,14 @@ export function photo_page_step(photo_st: mut PhotoState, d: int) -> void { phot
|
|||
|
||||
# a page of the roll, in its order; the page is held inside the roll
|
||||
export function photo_page_list(photo_st: mut PhotoState) -> []int {
|
||||
let out = new []int
|
||||
let out = photo_st.pht_page_out
|
||||
List.clear(out)
|
||||
if photo_st.pht_n == 0 { return out }
|
||||
let order = photo_order(photo_st)
|
||||
if photo_st.pht_page >= photo_pages(photo_st) { photo_st.pht_page = photo_pages(photo_st) - 1 }
|
||||
for k in 0 .. PHOTO_PAGE {
|
||||
let oi = photo_st.pht_page * PHOTO_PAGE + k
|
||||
if oi < photo_st.pht_n { push(out, order[oi]) }
|
||||
if oi < photo_st.pht_n { push(photo_st.pht_page_out, order[oi]) }
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,8 @@ export property PhotoFact {
|
|||
export state PhotoState {
|
||||
pht_sort: int = 0
|
||||
pht_page: int = 0
|
||||
pht_order: []int = null
|
||||
@max(256) pht_order: []int = new []int # the roll's order, refilled in place (a page asks it every frame)
|
||||
@max(8) pht_page_out: []int = new []int # a page of it, the same
|
||||
pht_max: int = 40
|
||||
pht_n: int = 0
|
||||
pht_day: []int = null
|
||||
|
|
@ -39,8 +40,8 @@ export state PhotoState {
|
|||
pht_sold: []int = null
|
||||
pht_grade: []int = null
|
||||
pht_why: []int = null
|
||||
pht_tags: []string = null
|
||||
pht_file: []string = null
|
||||
@max(256) pht_tags: []string = null
|
||||
@max(256) pht_file: []string = null
|
||||
pht_best: []int = null # the best grade yet, per subject
|
||||
pht_species_shot: int = 0 # every subject ever photographed, sold or deleted
|
||||
pht_legend_shot: int = 0
|
||||
|
|
@ -63,6 +64,7 @@ export function photo_facts(photo_st: PhotoState) -> Queue<PhotoFact> {
|
|||
return photo_st.pht_fact_q
|
||||
}
|
||||
|
||||
@alloc_ok("a photograph's fact: one per shot kept, sold or deleted")
|
||||
function pht_fact(photo_st: PhotoState, what: int, i: int) -> PhotoFact {
|
||||
var f = q_rec(photo_facts(photo_st))
|
||||
if f == null {
|
||||
|
|
@ -98,6 +100,7 @@ function pht_floats(n: int) -> []float {
|
|||
}
|
||||
|
||||
# an empty roll of `max` frames
|
||||
@alloc_ok("a new roll: once a trip, and when the roll is emptied")
|
||||
function pht_blank(photo_st: mut PhotoState) -> void {
|
||||
photo_st.pht_n = 0
|
||||
photo_st.pht_day = pht_ints(photo_st.pht_max)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue