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}