code wiki / _hdl_build / nx_scene_host_gate_t341.nx
nx_scene_host_gate_t341.nx source
↩ module page · 31 lines · 1959 B
1import "nx_game_page_host_candidate_t341.nx"
2import "nx_estate_path.nx"
3func gpe_workspace_before_t341(out:*u8,pos:i64)->i64 {
4 let box:*i64=sys_mmap(16) as *i64
5 let surfaces:*u8=sys_read_file("surfaces.reg" as *u8,box);let sn:i64=box[0]
6 if (surfaces as i64)<=0||sn<=0 {rk_err("workspace surface registry unavailable\n" as *u8);return -1}
7 let context:*u8=sys_read_file("buildroot/knowledge/workspace-context-beach-t48.json" as *u8,box);let cn:i64=box[0]
8 if (context as i64)<=0||cn<=0 {rk_err("workspace context unavailable\n" as *u8);return -1}
9 var p:i64=sc_nav_buffer(out,pos,GPE_OUT_CAP,surfaces,sn)
10 if p<0 {return -1}
11 p=gpe_ap(out,p,"<style>" as *u8);p=gpe_ap(out,p,sc_workspace_style());p=gpe_ap(out,p,"</style><script>window.NX_PRODUCT_CONTEXT=JSON.parse(" as *u8)
12 p=rk_js_str(out,p,context,cn);p=gpe_ap(out,p,");\n" as *u8);p=gpe_ap(out,p,sc_workspace_script());p=gpe_ap(out,p,"</script>" as *u8)
13 return p
14}
15func main()->i64{
16 if ep_anchor()<0{return 8}
17 let a:*u8=sys_mmap_try(GPE_OUT_CAP);let b:*u8=sys_mmap_try(GPE_OUT_CAP)
18 if (a as i64)<=0||(b as i64)<=0{return 1}
19 let n:i64=gpe_workspace_before_t341(a,0);let m:i64=gpe_workspace_begin(b,0)
20 if n<=0||n!=m{return 2};var i:i64=0;while i<n{if a[i]!=b[i]{return 3};i=i+1}
21 gpe_puts("SCENE_HOST default_workspace_every_byte_equal=1 bytes=");gpe_pn(n);gpe_puts("\n")
22 let r:i64=gpe_workspace_begin_context(b,0,"buildroot/knowledge/workspace-context-rigview-t341.json")
23 if r<=0||rk_find(b,r,0,"Rigview workbench")<0{return 4}
24 if rk_find(b,r,0,"Shared playable scene and character inspection")<0{return 5}
25 if rk_find(b,r,0,"NishiWorkspace")<0{return 6}
26 gpe_puts("SCENE_HOST explicit_profile_uses_same_workspace=1\n")
27 let missing:i64=gpe_workspace_begin_context(b,0,"buildroot/knowledge/gates/absent-host-context-t341.json")
28 if missing>=0{return 7}
29 gpe_puts("SCENE_HOST missing_context_refused=1 passed=3/3\n")
30 sys_munmap_direct(a,GPE_OUT_CAP);sys_munmap_direct(b,GPE_OUT_CAP);return 0
31}