nx_craft_placement_gate_t316.nx source
↩ module page · 65 lines · 3270 B
1import "nx_craft_imported_placement_candidate_t316.nx"
2import "nx_gate_verdict.nx"
3func main()->i64 {
4 let c:*i64=gv_ctr();gv_head("IMPORTED-CANONICAL-PLACEMENT")
5 let base:i64=sys_mmap(CRAFT_EXT_TOTAL) as i64
6 if base<=0{return 3}
7 let spec:*i64=wsp(base);spec[P_SURF]=1;spec[P_WATER]=0
8 hq_set(base,10,10,1152);hq_set(base,11,10,1408);hq_set(base,10,11,1152);hq_set(base,11,11,1408)
9 let x:i64=10*256+128;let z:i64=10*256+128
10 gv_check_eq("fractional terrain placement",wc_place_floor_q(base,x,z),1536,c)
11 gv_check_eq("actor seat repairs below-field position",wc_actor_seat_q(base,x,z,1000),1536,c)
12 gv_check_eq("negative x refused",wc_place_floor_q(base,-1,z),-1,c)
13 gv_check_eq("negative z refused",wc_place_floor_q(base,x,-1),-1,c)
14 gv_check_eq("last x corner lacks interpolation neighbor",wc_place_floor_q(base,(WX-1)*256,z),-1,c)
15 gv_check_eq("last z corner lacks interpolation neighbor",wc_place_floor_q(base,x,(WZ-1)*256),-1,c)
16 vset(base,10,8,10,6)
17 gv_check_eq("overhead canopy does not become arrival floor",wc_place_floor_q(base,x,z),1536,c)
18 gv_check_eq("legacy sky scan distinguishes canopy",wc_contact_floor_q(base,x,z,WY-1),2304,c)
19 vset(base,10,7,10,6)
20 gv_check_eq("body course obstruction rises through contiguous structure",wc_place_floor_q(base,x,z),2304,c)
21 vset(base,10,7,10,0);vset(base,10,8,10,0);vset(base,10,6,10,5)
22 gv_check_eq("terrain voxel ignored in continuous mode",wc_place_floor_q(base,x,z),1536,c)
23 spec[P_SURF]=0
24 gv_check_eq("voxel mode retains top solid",wc_place_floor_q(base,x,z),1792,c)
25 gv_check_eq("voxel actor seat respects supplied altitude",wc_actor_seat_q(base,x,z,1000),-1,c)
26 spec[P_SURF]=1
27 var valid:i64=1;var offset:i64=0
28 while offset<256{if wc_place_floor_q(base,10*256+offset,z)!=1408+offset{valid=0};offset=offset+1}
29 gv_check("all256 fractional x samples follow actual linear field",valid,c)
30 gv_check_eq("body registry remains available",wc_body_init(base,2,CRAFT_EXT_TOTAL),0,c)
31 gv_check_eq("body ABI stage unchanged",O_IMPORTED_STAGE,27534176,c)
32 gv_check_eq("runtime pages unchanged",WASM_PAGES_REQ,421,c)
33 gv_check_eq("below-field canonical support",wc_contact_floor_below_q(base,x,z,WY-1,1535),1536,c)
34 gv_check_eq("old below-field rule negative control",placement_old_support(base,x,z,WY-1,1535),-1,c)
35 let state:*i64=wst(base);state[S_CY]=1535+EYE
36 gv_check_eq("player current-column recovery target",wstand_here(base,x,z),1536+EYE,c)
37 sys_munmap(base as *u8,CRAFT_EXT_TOTAL)
38 return gv_verdict("IMPORTED-CANONICAL-PLACEMENT",c,"Native source composition; actual plain/shared bytecode and served placement remain pending.")
39}
40
41func placement_old_support(base: i64, xq: i64, zq: i64, top: i64, ceiling: i64) -> i64 {
42 let sp: *i64 = wsp(base)
43 var y: i64 = top
44 if y >= WY { y = WY - 1 }
45 var floor: i64 = 0 - 1
46 if sp[P_SURF] == 1 {
47 floor = wc_surface_source(base,xq,zq)
48 if floor < 0 { return 0 - 1 }
49 if floor > ceiling { floor = 0 - 1 }
50 }
51 while y >= 0 {
52 let b: i64 = vget(base,xq >> 8,y,zq >> 8)
53 var eligible: i64 = vsolid(base,xq >> 8,y,zq >> 8)
54 if sp[P_SURF] == 1 { if wterrain(b) == 1 { eligible = 0 } }
55 if eligible == 1 {
56 let celltop: i64 = (y+1)*256
57 if celltop <= ceiling {
58 if celltop > floor { floor = celltop }
59 return floor
60 }
61 }
62 y = y - 1
63 }
64 return floor
65}