code wiki / (root) / nx_discarded_outfit_test.nx

nx_discarded_outfit_test.nx source

↩ module page · 64 lines · 3182 B

1import "nx_syscalls.nx" 2import "nx_outfit_vocabulary.nx" 3import "nx_discarded_outfit.nx" 4 5func main() -> i64 { 6 // T1: nx_outfit_occludes_mask returns expected zones. 7 let mask1: i64 = nx_outfit_occludes_mask(NX_OUTFIT_MICRO_STRING_THONG) 8 if mask1 != NX_OCC_PUSSY { return 1 } 9 10 let mask2: i64 = nx_outfit_occludes_mask(NX_OUTFIT_MICRO_BIKINI) 11 if mask2 != NX_OCC_PUSSY + NX_OCC_BREASTS { return 2 } 12 13 let mask3: i64 = nx_outfit_occludes_mask(NX_OUTFIT_FISHNET_BODYSTOCKING) 14 if mask3 != NX_OCC_TORSO_FULL + NX_OCC_LEGS + NX_OCC_PUSSY + NX_OCC_BREASTS + NX_OCC_GLUTES { return 3 } 15 16 let mask4: i64 = nx_outfit_occludes_mask(NX_OUTFIT_SPORTS_BRA_TIGHT) 17 if mask4 != NX_OCC_BREASTS { return 4 } 18 19 // T2: conflict detection. 20 // micro thong + want pussy visible → conflict. 21 let conf1: i64 = nx_outfit_conflicts_with_visibility(NX_OUTFIT_MICRO_STRING_THONG, NX_OCC_PUSSY) 22 if conf1 != 1 { return 10 } 23 // sports bra + want pussy visible → no conflict (bra doesn't cover pussy). 24 let conf2: i64 = nx_outfit_conflicts_with_visibility(NX_OUTFIT_SPORTS_BRA_TIGHT, NX_OCC_PUSSY) 25 if conf2 != 0 { return 11 } 26 // sports bra + want breasts visible → conflict. 27 let conf3: i64 = nx_outfit_conflicts_with_visibility(NX_OUTFIT_SPORTS_BRA_TIGHT, NX_OCC_BREASTS) 28 if conf3 != 1 { return 12 } 29 // micro bikini + want pussy AND breasts visible → conflict (both). 30 let conf4: i64 = nx_outfit_conflicts_with_visibility(NX_OUTFIT_MICRO_BIKINI, NX_OCC_PUSSY + NX_OCC_BREASTS) 31 if conf4 != 1 { return 13 } 32 33 // T3: discarded phrase exists for MICRO_STRING_THONG. 34 let dp_en: *u8 = nx_discarded_outfit_phrase(NX_OUTFIT_MICRO_STRING_THONG, NX_LANG_EN, 0) 35 if dp_en == (0 as *u8) { return 20 } 36 // Should start with 't' for "tiny" 37 if dp_en[0] != 116 { return 21 } // 't' = 116 38 39 // T4: discarded JA phrase = "床に脱ぎ捨てたヒモパン" — starts with 床 (E5 BA 8A). 40 let dp_ja: *u8 = nx_discarded_outfit_phrase(NX_OUTFIT_MICRO_STRING_THONG, NX_LANG_JA, 0) 41 if dp_ja == (0 as *u8) { return 30 } 42 if dp_ja[0] != 0xe5 { return 31 } 43 if dp_ja[1] != 0xba { return 32 } 44 if dp_ja[2] != 0x8a { return 33 } 45 46 // T5: smart phrase selector — visibility WITHOUT conflict returns standard phrase. 47 let sp_safe: *u8 = nx_outfit_smart_phrase(NX_OUTFIT_SPORTS_BRA_TIGHT, NX_LANG_EN, 0, NX_OCC_PUSSY) 48 if sp_safe == (0 as *u8) { return 40 } 49 // Should start with 't' for "tight athletic sports bra" 50 if sp_safe[0] != 116 { return 41 } 51 52 // T6: smart phrase selector — CONFLICTING visibility returns discarded framing. 53 let sp_conf: *u8 = nx_outfit_smart_phrase(NX_OUTFIT_MICRO_STRING_THONG, NX_LANG_EN, 0, NX_OCC_PUSSY) 54 if sp_conf == (0 as *u8) { return 50 } 55 // Should start with 't' for "tiny string thong discarded..." 56 if sp_conf[0] != 116 { return 51 } 57 // Verify it's the DISCARDED phrase, not the standard one. Standard 58 // starts with "micro string thong, narrow string..." (m=109). 59 // Discarded starts with "tiny string thong discarded..." (t=116). 60 // We expect t (116) here, NOT m (109). 61 if sp_conf[0] == 109 { return 52 } 62 63 return 0 64}