From 9136ca2948eb197cdcc0d9040dfcee54091bc32a Mon Sep 17 00:00:00 2001 From: Jaysyn904 <68194417+Jaysyn904@users.noreply.github.com> Date: Thu, 9 Jan 2025 12:57:08 -0500 Subject: [PATCH] Update for NWNEE 37-13 Update for NWNEE 37-13. Updated NWNxEE. Full compile. --- _module/ifo/module.ifo.json | 2 +- _module/ncs/_migrate_pc.ncs | Bin 2151 -> 1879 bytes _module/ncs/anph_altar_close.ncs | Bin 377 -> 383 bytes _module/ncs/anph_area_exit.ncs | Bin 4627 -> 4108 bytes _module/ncs/anph_area_hb.ncs | Bin 4250 -> 3731 bytes _module/ncs/anph_ax_enter.ncs | Bin 3855 -> 3336 bytes _module/ncs/anph_close_door.ncs | Bin 103 -> 109 bytes _module/ncs/anph_close_doorb.ncs | Bin 63 -> 69 bytes _module/ncs/anph_clv_enter.ncs | Bin 3852 -> 3333 bytes _module/ncs/anph_conv_chk.ncs | Bin 362 -> 368 bytes _module/ncs/anph_drowpass.ncs | Bin 3461 -> 3054 bytes _module/ncs/anph_fugue_rez.ncs | Bin 6660 -> 6233 bytes _module/ncs/anph_gate_ondmg.ncs | Bin 1803 -> 1607 bytes _module/ncs/anph_go_field.ncs | Bin 8408 -> 7895 bytes _module/ncs/anph_god_spawn.ncs | Bin 5499 -> 5511 bytes _module/ncs/anph_hench_spawn.ncs | Bin 125249 -> 123937 bytes _module/ncs/anph_lamir_dmgd.ncs | Bin 63532 -> 63640 bytes _module/ncs/anph_lever_door.ncs | Bin 162 -> 168 bytes _module/ncs/anph_merc_join.ncs | Bin 5468 -> 4913 bytes _module/ncs/anph_merc_spawn.ncs | Bin 128890 -> 127542 bytes _module/ncs/anph_merc_surndr.ncs | Bin 654 -> 660 bytes _module/ncs/anph_on_area_ent.ncs | Bin 1031 -> 839 bytes _module/ncs/anph_open_store.ncs | Bin 119274 -> 118722 bytes _module/ncs/anph_opn_ranz_dr.ncs | Bin 110 -> 116 bytes _module/ncs/anph_payout.ncs | Bin 9010 -> 8422 bytes _module/ncs/anph_raut_surndr.ncs | Bin 254 -> 260 bytes _module/ncs/anph_start_trig.ncs | Bin 3939 -> 3426 bytes _module/ncs/anph_team_cnt.ncs | Bin 2279 -> 1793 bytes _module/ncs/anph_tell_area.ncs | Bin 4047 -> 3528 bytes _module/ncs/anph_transition.ncs | Bin 849 -> 855 bytes _module/ncs/anph_xpw_grpq_l.ncs | Bin 8157 -> 7638 bytes _module/ncs/anph_xpw_grpq_m.ncs | Bin 8157 -> 7638 bytes _module/ncs/anph_xpw_grpq_s.ncs | Bin 8157 -> 7638 bytes _module/ncs/anph_xpw_quest_l.ncs | Bin 7981 -> 7462 bytes _module/ncs/anph_xpw_quest_m.ncs | Bin 7981 -> 7462 bytes _module/ncs/anph_xpw_quest_s.ncs | Bin 7981 -> 7462 bytes _module/ncs/anph_xpw_rp_l.ncs | Bin 7975 -> 7456 bytes _module/ncs/anph_xpw_rp_m.ncs | Bin 7975 -> 7456 bytes _module/ncs/anph_xpw_rp_s.ncs | Bin 7975 -> 7456 bytes _module/ncs/array_example.ncs | Bin 8595 -> 8439 bytes _module/ncs/at_002.ncs | Bin 61425 -> 61515 bytes _module/ncs/awda.ncs | Bin 280 -> 286 bytes _module/ncs/charlmeliah2.ncs | Bin 61425 -> 61515 bytes _module/ncs/charlmerchantatt.ncs | Bin 61425 -> 61515 bytes _module/ncs/charnpcattack.ncs | Bin 61425 -> 61515 bytes _module/ncs/chat_commands.ncs | Bin 28468 -> 27897 bytes _module/ncs/chd_on_conver.ncs | Bin 335 -> 341 bytes _module/ncs/chd_on_spawn.ncs | Bin 152906 -> 152918 bytes _module/ncs/chr_update_all.ncs | Bin 10351 -> 9799 bytes _module/ncs/cnr_at_b_craft.ncs | Bin 23405 -> 22917 bytes _module/ncs/cnr_at_b_sel_1.ncs | Bin 31569 -> 31081 bytes _module/ncs/cnr_at_b_sel_2.ncs | Bin 31569 -> 31081 bytes _module/ncs/cnr_at_b_sel_3.ncs | Bin 31569 -> 31081 bytes _module/ncs/cnr_at_b_sel_4.ncs | Bin 31569 -> 31081 bytes _module/ncs/cnr_at_b_sel_5.ncs | Bin 31569 -> 31081 bytes _module/ncs/cnr_at_b_sel_6.ncs | Bin 31569 -> 31081 bytes _module/ncs/cnr_at_j_sel_1.ncs | Bin 7447 -> 6959 bytes _module/ncs/cnr_at_j_sel_10.ncs | Bin 7447 -> 6959 bytes _module/ncs/cnr_at_j_sel_2.ncs | Bin 7447 -> 6959 bytes _module/ncs/cnr_at_j_sel_3.ncs | Bin 7447 -> 6959 bytes _module/ncs/cnr_at_j_sel_4.ncs | Bin 7447 -> 6959 bytes _module/ncs/cnr_at_j_sel_5.ncs | Bin 7437 -> 6949 bytes _module/ncs/cnr_at_j_sel_6.ncs | Bin 7437 -> 6949 bytes _module/ncs/cnr_at_j_sel_7.ncs | Bin 7447 -> 6959 bytes _module/ncs/cnr_at_j_sel_8.ncs | Bin 7447 -> 6959 bytes _module/ncs/cnr_at_j_sel_9.ncs | Bin 7447 -> 6959 bytes _module/ncs/cnr_at_r_craft.ncs | Bin 23405 -> 22917 bytes _module/ncs/cnr_at_r_sel_1.ncs | Bin 30308 -> 29820 bytes _module/ncs/cnr_at_r_sel_2.ncs | Bin 30308 -> 29820 bytes _module/ncs/cnr_at_r_sel_3.ncs | Bin 30308 -> 29820 bytes _module/ncs/cnr_at_r_sel_4.ncs | Bin 30308 -> 29820 bytes _module/ncs/cnr_at_r_sel_5.ncs | Bin 30308 -> 29820 bytes _module/ncs/cnr_at_r_sel_6.ncs | Bin 30308 -> 29820 bytes _module/ncs/cnr_bird_ondeath.ncs | Bin 1627 -> 1639 bytes _module/ncs/cnr_book_init.ncs | Bin 9900 -> 9508 bytes _module/ncs/cnr_device_ou.ncs | Bin 27446 -> 26958 bytes _module/ncs/cnr_fixing_convo.ncs | Bin 6679 -> 6191 bytes _module/ncs/cnr_forge_ou.ncs | Bin 27524 -> 27036 bytes _module/ncs/cnr_module_oce.ncs | Bin 8641 -> 8153 bytes _module/ncs/cnr_module_onact.ncs | Bin 27368 -> 26880 bytes _module/ncs/cnr_plant_ondist.ncs | Bin 1376 -> 1394 bytes _module/ncs/cnr_recipe_init.ncs | Bin 24168 -> 23680 bytes _module/ncs/cnr_recycler_ou.ncs | Bin 39167 -> 38679 bytes _module/ncs/cnr_rock_ondam.ncs | Bin 5790 -> 5585 bytes _module/ncs/cnr_scalp_ou.ncs | Bin 9138 -> 8619 bytes _module/ncs/cnr_silent_ou.ncs | Bin 31890 -> 31402 bytes _module/ncs/cnr_ta_b_grn.ncs | Bin 12320 -> 11832 bytes _module/ncs/cnr_ta_b_red.ncs | Bin 12300 -> 11812 bytes _module/ncs/cnr_ta_j_topten.ncs | Bin 8995 -> 8507 bytes _module/ncs/cnr_ta_j_trade.ncs | Bin 8461 -> 7973 bytes _module/ncs/cnr_ta_r_grn.ncs | Bin 12344 -> 11856 bytes _module/ncs/cnr_ta_r_red.ncs | Bin 12324 -> 11836 bytes _module/ncs/cnr_tinker_ou.ncs | Bin 27921 -> 27433 bytes _module/ncs/cnr_trade_lever.ncs | Bin 7994 -> 7506 bytes _module/ncs/dae_demonsetup.ncs | Bin 1268 -> 1298 bytes _module/ncs/dae_namer_convo.ncs | Bin 353 -> 359 bytes _module/ncs/dae_namer_spawn.ncs | Bin 5039 -> 5051 bytes _module/ncs/datetime_ini.ncs | Bin 2298 -> 1810 bytes _module/ncs/dev_commands.ncs | Bin 11438 -> 10788 bytes _module/ncs/df.ncs | Bin 276 -> 282 bytes _module/ncs/df_t1_floodroom.ncs | Bin 1689 -> 1695 bytes _module/ncs/displ_onspawn.ncs | Bin 186 -> 234 bytes _module/ncs/dlg_act_back.ncs | Bin 2330 -> 1809 bytes _module/ncs/dlg_act_exit.ncs | Bin 2200 -> 1679 bytes _module/ncs/dlg_act_next.ncs | Bin 3184 -> 2663 bytes _module/ncs/dlg_act_pc01.ncs | Bin 2621 -> 2100 bytes _module/ncs/dlg_act_pc02.ncs | Bin 2606 -> 2085 bytes _module/ncs/dlg_act_pc03.ncs | Bin 2606 -> 2085 bytes _module/ncs/dlg_act_pc04.ncs | Bin 2606 -> 2085 bytes _module/ncs/dlg_act_pc05.ncs | Bin 2606 -> 2085 bytes _module/ncs/dlg_act_pc06.ncs | Bin 2606 -> 2085 bytes _module/ncs/dlg_act_prev.ncs | Bin 3184 -> 2663 bytes _module/ncs/dlg_gettexts.ncs | Bin 8504 -> 8095 bytes _module/ncs/dlg_ini.ncs | Bin 2687 -> 2410 bytes _module/ncs/dlg_lgs.ncs | Bin 97812 -> 97388 bytes _module/ncs/dlg_lgs_ini.ncs | Bin 13758 -> 13334 bytes _module/ncs/dlg_model_ini.ncs | Bin 38028 -> 37604 bytes _module/ncs/dlg_start.ncs | Bin 2356 -> 1868 bytes _module/ncs/dlg_store_ini.ncs | Bin 4034 -> 3482 bytes _module/ncs/dlg_wand.ncs | Bin 29545 -> 29581 bytes _module/ncs/dlg_wand_ini.ncs | Bin 18557 -> 18133 bytes _module/ncs/dlgx_mark_select.ncs | Bin 631 -> 327 bytes _module/ncs/dmfi_activate.ncs | Bin 14721 -> 14745 bytes _module/ncs/dmfi_execute.ncs | Bin 146914 -> 147112 bytes _module/ncs/dmfi_voice1.ncs | Bin 984 -> 996 bytes _module/ncs/dmfi_voice_exe.ncs | Bin 111033 -> 111069 bytes _module/ncs/dmw_do_dialog1.ncs | Bin 59176 -> 59242 bytes _module/ncs/dmw_do_dialog2.ncs | Bin 59176 -> 59242 bytes _module/ncs/dmw_do_dialog3.ncs | Bin 59176 -> 59242 bytes _module/ncs/dmw_do_dialog4.ncs | Bin 59176 -> 59242 bytes _module/ncs/dmw_do_dialog5.ncs | Bin 59176 -> 59242 bytes _module/ncs/dmw_do_dialog6.ncs | Bin 59176 -> 59242 bytes _module/ncs/dmw_do_dialog7.ncs | Bin 59176 -> 59242 bytes _module/ncs/dmw_do_dialog8.ncs | Bin 59176 -> 59242 bytes _module/ncs/dmw_do_dialog9.ncs | Bin 59176 -> 59242 bytes _module/ncs/dro_priest_pray.ncs | Bin 5273 -> 5291 bytes _module/ncs/ee_ent_ondmg.ncs | Bin 6495 -> 6501 bytes _module/ncs/ee_evt_execute.ncs | Bin 67424 -> 67247 bytes _module/ncs/egs_ini.ncs | Bin 9833 -> 9518 bytes _module/ncs/egs_tst.ncs | Bin 8439 -> 7953 bytes _module/ncs/ew_meditate.ncs | Bin 7700 -> 7193 bytes _module/ncs/ew_sitchair.ncs | Bin 1010 -> 1034 bytes _module/ncs/eye_act_scalp.ncs | Bin 9038 -> 8483 bytes _module/ncs/eye_elemdeath.ncs | Bin 9769 -> 9805 bytes _module/ncs/eye_has_scalps.ncs | Bin 4395 -> 3876 bytes _module/ncs/eye_kromm_attack.ncs | Bin 61425 -> 61515 bytes _module/ncs/eye_mtower_door.ncs | Bin 148 -> 154 bytes _module/ncs/eye_mtower_key.ncs | Bin 101 -> 107 bytes _module/ncs/eye_scalp_reward.ncs | Bin 4522 -> 4115 bytes _module/ncs/faction_donate.ncs | Bin 5181 -> 4680 bytes _module/ncs/faction_init.ncs | Bin 4042 -> 3678 bytes _module/ncs/faction_join.ncs | Bin 9184 -> 8632 bytes _module/ncs/flavor_enter.ncs | Bin 2368 -> 2160 bytes _module/ncs/foresttolair.ncs | Bin 274 -> 280 bytes _module/ncs/gf.ncs | Bin 272 -> 278 bytes _module/ncs/hc_act_pct.ncs | Bin 17410 -> 16855 bytes _module/ncs/hc_act_skinning.ncs | Bin 2799 -> 2805 bytes _module/ncs/hc_cat_tt_disarm.ncs | Bin 1608 -> 1614 bytes _module/ncs/hc_dist_npcorpse.ncs | Bin 1603 -> 1627 bytes _module/ncs/hc_fugue_enter.ncs | Bin 11384 -> 10744 bytes _module/ncs/hc_fugue_exit.ncs | Bin 5291 -> 4738 bytes _module/ncs/hc_grenade.ncs | Bin 7227 -> 7233 bytes _module/ncs/hc_on_acq_item.ncs | Bin 1110 -> 1116 bytes _module/ncs/hc_on_act_item.ncs | Bin 18896 -> 18475 bytes _module/ncs/hc_ou_secretd.ncs | Bin 299 -> 311 bytes _module/ncs/hc_track_start.ncs | Bin 2399 -> 2405 bytes _module/ncs/hcrh_onconv.ncs | Bin 2440 -> 2446 bytes _module/ncs/hcrh_spawnin.ncs | Bin 152610 -> 152622 bytes _module/ncs/healpc.ncs | Bin 8545 -> 8026 bytes _module/ncs/hook_ok_to_level.ncs | Bin 7426 -> 6938 bytes _module/ncs/intro_enter.ncs | Bin 11830 -> 11123 bytes _module/ncs/intro_faction.ncs | Bin 2540 -> 2018 bytes _module/ncs/intro_scale.ncs | Bin 777 -> 564 bytes _module/ncs/ip_ini.ncs | Bin 21992 -> 21677 bytes _module/ncs/ip_ini_b.ncs | Bin 5595 -> 5231 bytes _module/ncs/ip_names_ini.ncs | Bin 36494 -> 36099 bytes _module/ncs/ip_tst.ncs | Bin 94590 -> 94038 bytes _module/ncs/is_axfell.ncs | Bin 3311 -> 2904 bytes _module/ncs/is_cleaven.ncs | Bin 3311 -> 2904 bytes _module/ncs/j_ai_destroyself.ncs | Bin 10101 -> 10113 bytes _module/ncs/j_ai_detercombat.ncs | Bin 211856 -> 212204 bytes _module/ncs/j_ai_heart_aimat.ncs | Bin 18928 -> 19006 bytes _module/ncs/j_ai_heart_buff.ncs | Bin 1705 -> 1711 bytes _module/ncs/j_ai_heart_serch.ncs | Bin 994 -> 1012 bytes _module/ncs/j_ai_onblocked.ncs | Bin 15853 -> 15889 bytes _module/ncs/j_ai_onconversat.ncs | Bin 21310 -> 21400 bytes _module/ncs/j_ai_ondamaged.ncs | Bin 18119 -> 18143 bytes _module/ncs/j_ai_ondeath.ncs | Bin 144418 -> 144018 bytes _module/ncs/j_ai_ondisturbed.ncs | Bin 13976 -> 14000 bytes _module/ncs/j_ai_onheartbeat.ncs | Bin 20568 -> 20652 bytes _module/ncs/j_ai_onpercieve.ncs | Bin 19066 -> 19126 bytes _module/ncs/j_ai_onphiattack.ncs | Bin 17178 -> 17208 bytes _module/ncs/j_ai_onspawn.ncs | Bin 31576 -> 31588 bytes _module/ncs/j_ai_onspellcast.ncs | Bin 23949 -> 23991 bytes _module/ncs/j_ai_walkwaypoin.ncs | Bin 14784 -> 14796 bytes _module/ncs/j_ai_wingbuffet.ncs | Bin 1348 -> 1360 bytes _module/ncs/j_ai_wingflying.ncs | Bin 1859 -> 1871 bytes _module/ncs/jj.ncs | Bin 281 -> 287 bytes _module/ncs/lel_gong.ncs | Bin 4163 -> 3644 bytes _module/ncs/mod_onacquire.ncs | Bin 9598 -> 9083 bytes _module/ncs/mod_onactivate.ncs | Bin 8462 -> 7974 bytes _module/ncs/mod_onchat.ncs | Bin 2613 -> 2405 bytes _module/ncs/mod_onclenter.ncs | Bin 19317 -> 18614 bytes _module/ncs/mod_onclleave.ncs | Bin 10797 -> 10290 bytes _module/ncs/mod_ondeath.ncs | Bin 11511 -> 10840 bytes _module/ncs/mod_ondying.ncs | Bin 7951 -> 7432 bytes _module/ncs/mod_onequip.ncs | Bin 2559 -> 2287 bytes _module/ncs/mod_onheart.ncs | Bin 1538 -> 1207 bytes _module/ncs/mod_onlevelup.ncs | Bin 3481 -> 2772 bytes _module/ncs/mod_onload.ncs | Bin 4073 -> 3888 bytes _module/ncs/mod_onrest.ncs | Bin 7704 -> 7511 bytes _module/ncs/mod_onunacquir.ncs | Bin 7319 -> 6798 bytes _module/ncs/npc_randomize.ncs | Bin 94036 -> 93399 bytes _module/ncs/nw_c2_bossspawn.ncs | Bin 5963 -> 5975 bytes _module/ncs/nw_c2_default1.ncs | Bin 87450 -> 87630 bytes _module/ncs/nw_c2_default2.ncs | Bin 70058 -> 69623 bytes _module/ncs/nw_c2_default3.ncs | Bin 62952 -> 63054 bytes _module/ncs/nw_c2_default4.ncs | Bin 64904 -> 65006 bytes _module/ncs/nw_c2_default5.ncs | Bin 64812 -> 64914 bytes _module/ncs/nw_c2_default6.ncs | Bin 67600 -> 67702 bytes _module/ncs/nw_c2_default8.ncs | Bin 61556 -> 61652 bytes _module/ncs/nw_c2_default9a.ncs | Bin 160079 -> 160091 bytes _module/ncs/nw_c2_defaultb.ncs | Bin 68329 -> 68437 bytes _module/ncs/nw_ch_ac7.ncs | Bin 3148 -> 3166 bytes _module/ncs/nw_o0_death.ncs | Bin 1690 -> 1696 bytes _module/ncs/nw_o2_boss.ncs | Bin 148135 -> 148147 bytes _module/ncs/nw_o2_classweap.ncs | Bin 71145 -> 71157 bytes _module/ncs/nw_o2_generalhig.ncs | Bin 148001 -> 148013 bytes _module/ncs/nw_o2_generallow.ncs | Bin 147993 -> 148005 bytes _module/ncs/nw_o2_generalmed.ncs | Bin 148001 -> 148013 bytes _module/ncs/nw_s0_res.ncs | Bin 170986 -> 170992 bytes _module/ncs/obj_auto_respawn.ncs | Bin 203 -> 209 bytes _module/ncs/on_pubsub.ncs | Bin 381 -> 249 bytes _module/ncs/pat_ini.ncs | Bin 5731 -> 5454 bytes _module/ncs/pat_ini_areas.ncs | Bin 25096 -> 24796 bytes _module/ncs/pat_ini_base.ncs | Bin 12899 -> 12599 bytes _module/ncs/pat_ini_class.ncs | Bin 2296 -> 1965 bytes _module/ncs/pat_ini_featpack.ncs | Bin 4923 -> 4623 bytes _module/ncs/pat_ini_skillset.ncs | Bin 1517 -> 1153 bytes _module/ncs/pat_ini_spells.ncs | Bin 18551 -> 18268 bytes _module/ncs/pc_onheart.ncs | Bin 1756 -> 1544 bytes _module/ncs/pcnt_close.ncs | Bin 3224 -> 3230 bytes _module/ncs/pcnt_open.ncs | Bin 5010 -> 5022 bytes _module/ncs/pcteleimptrick.ncs | Bin 328 -> 334 bytes _module/ncs/plc_detbarrdeath.ncs | Bin 41274 -> 41286 bytes _module/ncs/plc_dummy_ondmg.ncs | Bin 8743 -> 8145 bytes _module/ncs/plc_inf_ondistur.ncs | Bin 411 -> 429 bytes _module/ncs/portaltocanges.ncs | Bin 273 -> 279 bytes _module/ncs/prc_pw_raisedead.ncs | Bin 7063 -> 6864 bytes _module/ncs/prc_pw_res.ncs | Bin 6778 -> 6784 bytes _module/ncs/prc_pwondeath.ncs | Bin 135088 -> 134560 bytes _module/ncs/prc_pwronspawn.ncs | Bin 119658 -> 118334 bytes _module/ncs/pri_barmaid_spwn.ncs | Bin 153790 -> 153802 bytes _module/ncs/pri_trashcan.ncs | Bin 151 -> 157 bytes _module/ncs/psc_chest_distur.ncs | Bin 4550 -> 3860 bytes _module/ncs/psc_chest_open.ncs | Bin 3911 -> 3192 bytes _module/ncs/psc_pvt_clenter.ncs | Bin 4038 -> 3318 bytes _module/ncs/psc_pvt_close.ncs | Bin 516 -> 522 bytes _module/ncs/psc_pvt_disturb.ncs | Bin 4904 -> 4214 bytes _module/ncs/psc_pvt_open.ncs | Bin 3984 -> 3268 bytes _module/ncs/ranzisnotfree.ncs | Bin 224 -> 208 bytes _module/ncs/server_restart.ncs | Bin 767 -> 668 bytes _module/ncs/socket_ini.ncs | Bin 1956 -> 1561 bytes _module/ncs/spell_hook.ncs | Bin 1538 -> 1550 bytes _module/ncs/spell_missile.ncs | Bin 8249 -> 7994 bytes _module/ncs/sql_init.ncs | Bin 6107 -> 5861 bytes _module/ncs/sql_update_pc.ncs | Bin 3589 -> 3037 bytes _module/ncs/store_open.ncs | Bin 119817 -> 119265 bytes _module/ncs/summ_heartbeat.ncs | Bin 3327 -> 3369 bytes _module/ncs/summ_pixie.ncs | Bin 199 -> 211 bytes _module/ncs/tochangesportal.ncs | Bin 280 -> 286 bytes _module/ncs/trap_fire.ncs | Bin 7647 -> 7653 bytes _module/ncs/trap_on_unacq.ncs | Bin 193 -> 145 bytes _module/ncs/wa_councildoor.ncs | Bin 167 -> 173 bytes _module/ncs/wa_god_spawn.ncs | Bin 5081 -> 5093 bytes _module/ncs/wa_killdead.ncs | Bin 260 -> 266 bytes _module/ncs/wa_nullmagicon.ncs | Bin 143429 -> 143435 bytes _module/ncs/wa_onperc_1.ncs | Bin 64111 -> 64249 bytes _module/ncs/wa_spawncrystal.ncs | Bin 178 -> 184 bytes _module/ncs/wa_summongong.ncs | Bin 4298 -> 3779 bytes _module/ncs/wa_turn90.ncs | Bin 111 -> 117 bytes _module/ncs/x3_dm_tool10.ncs | Bin 10380 -> 9861 bytes _module/ncs/x3_pl_tool08.ncs | Bin 1936 -> 1728 bytes _module/ncs/x3_pl_tool10.ncs | Bin 2370 -> 2162 bytes _module/ncs/xevent_dmspawn_b.ncs | Bin 873 -> 661 bytes _module/ncs/xevent_examine_a.ncs | Bin 712 -> 500 bytes _module/ncs/xevent_examine_b.ncs | Bin 917 -> 705 bytes _module/ncs/xevent_joinparty.ncs | Bin 5754 -> 5206 bytes _module/ncs/xp_apply.ncs | Bin 2794 -> 2387 bytes _module/ncs/xp_reload.ncs | Bin 2784 -> 2298 bytes _module/ncs/zep_arm_on_conv.ncs | Bin 74 -> 80 bytes _module/ncs/zep_arm_on_death.ncs | Bin 88 -> 94 bytes _module/ncs/zep_c2_lycan_9.ncs | Bin 5907 -> 5919 bytes _module/ncs/zep_cr_nextcolor.ncs | Bin 6164 -> 6170 bytes _module/ncs/zep_cr_nextpart.ncs | Bin 9343 -> 9349 bytes _module/ncs/zep_cr_prevcolor.ncs | Bin 6164 -> 6170 bytes _module/ncs/zep_cr_prevpart.ncs | Bin 9343 -> 9349 bytes _module/ncs/zep_cr_stop_abrt.ncs | Bin 1013 -> 1019 bytes _module/ncs/zep_cr_stop_make.ncs | Bin 1013 -> 1019 bytes _module/ncs/zep_demi_bone_hb.ncs | Bin 1959 -> 1965 bytes _module/ncs/zep_demi_onspawn.ncs | Bin 153473 -> 153485 bytes _module/ncs/zep_demi_onspell.ncs | Bin 63319 -> 63427 bytes _module/ncs/zep_demi_userde.ncs | Bin 1968 -> 2004 bytes _module/ncs/zep_demi_userdef.ncs | Bin 1847 -> 1853 bytes _module/ncs/zep_drider_onus.ncs | Bin 495 -> 507 bytes _module/ncs/zep_drider_spawn.ncs | Bin 125201 -> 123889 bytes _module/ncs/zep_gob_worg_spw.ncs | Bin 153401 -> 153413 bytes _module/ncs/zep_la_c2_thorny.ncs | Bin 153401 -> 153413 bytes _module/ncs/zep_la_c2_vegpyg.ncs | Bin 153401 -> 153413 bytes _module/ncs/zep_ocre_mantico.ncs | Bin 64557 -> 64677 bytes _module/ncs/zep_onatk_hama.ncs | Bin 65000 -> 65108 bytes _module/ncs/zep_oper_mantic.ncs | Bin 64990 -> 65122 bytes _module/ncs/zep_rust_cmb_end.ncs | Bin 65446 -> 65560 bytes _module/ncs/zep_rust_dmg.ncs | Bin 66088 -> 66196 bytes _module/ncs/zep_rust_spawn.ncs | Bin 125165 -> 123853 bytes _module/ncs/zep_rust_user.ncs | Bin 3358 -> 3382 bytes _module/ncs/zep_sarcof1use.ncs | Bin 1253 -> 1259 bytes _module/ncs/zep_scare_on_sp.ncs | Bin 5907 -> 5919 bytes _module/ncs/zep_scare_user.ncs | Bin 39974 -> 39986 bytes _module/ncs/zep_scorp_onuser.ncs | Bin 692 -> 704 bytes _module/ncs/zep_scorp_spawn.ncs | Bin 125201 -> 123889 bytes _module/ncs/zep_shrieker_spw.ncs | Bin 153401 -> 153413 bytes _module/ncs/zep_shrieker_usr.ncs | Bin 271 -> 283 bytes _module/ncs/zep_spd_rid_prcv.ncs | Bin 63154 -> 63268 bytes _module/ncs/zep_veg_thor_spw.ncs | Bin 153419 -> 153431 bytes _module/ncs/zep_vine_onh.ncs | Bin 86196 -> 86376 bytes _module/nss/nwnx_admin.nss | 171 +-- _module/nss/nwnx_appearance.nss | 28 +- _module/nss/nwnx_area.nss | 541 +++---- _module/nss/nwnx_chat.nss | 69 +- _module/nss/nwnx_core.nss | 21 + _module/nss/nwnx_creature.nss | 1601 ++++++++------------- _module/nss/nwnx_damage.nss | 403 +++--- _module/nss/nwnx_dialog.nss | 52 +- _module/nss/nwnx_effect.nss | 304 ++-- _module/nss/nwnx_elc.nss | 71 +- _module/nss/nwnx_encounter.nss | 194 +-- _module/nss/nwnx_events.nss | 165 +-- _module/nss/nwnx_feat.nss | 18 +- _module/nss/nwnx_feedback.nss | 99 +- _module/nss/nwnx_httpclient.nss | 107 ++ _module/nss/nwnx_item.nss | 160 +-- _module/nss/nwnx_itemprop.nss | 97 +- _module/nss/nwnx_lua.nss | 25 +- _module/nss/nwnx_nostack.nss | 10 +- _module/nss/nwnx_nwsqliteext.nss | 11 +- _module/nss/nwnx_object.nss | 605 +++----- _module/nss/nwnx_player.nss | 700 ++++----- _module/nss/nwnx_profiler.nss | 18 +- _module/nss/nwnx_race.nss | 56 +- _module/nss/nwnx_redis.nss | 2283 +++++++++++++++--------------- _module/nss/nwnx_redis_lib.nss | 39 +- _module/nss/nwnx_redis_ps.nss | 7 +- _module/nss/nwnx_redis_short.nss | 2283 +++++++++++++++--------------- _module/nss/nwnx_rename.nss | 40 +- _module/nss/nwnx_reveal.nss | 23 +- _module/nss/nwnx_ruby.nss | 9 +- _module/nss/nwnx_skillranks.nss | 140 +- _module/nss/nwnx_spellcheck.nss | 16 +- _module/nss/nwnx_sql.nss | 131 +- _module/nss/nwnx_store.nss | 75 +- _module/nss/nwnx_tileset.nss | 199 ++- _module/nss/nwnx_time.nss | 1 - _module/nss/nwnx_util.nss | 381 ++--- _module/nss/nwnx_visibility.nss | 22 +- _module/nss/nwnx_weapon.nss | 193 +-- _module/nss/nwnx_webhook.nss | 14 +- 367 files changed, 5006 insertions(+), 6378 deletions(-) create mode 100644 _module/nss/nwnx_core.nss create mode 100644 _module/nss/nwnx_httpclient.nss diff --git a/_module/ifo/module.ifo.json b/_module/ifo/module.ifo.json index ace346df..61ee1bce 100644 --- a/_module/ifo/module.ifo.json +++ b/_module/ifo/module.ifo.json @@ -2606,7 +2606,7 @@ }, "Mod_MinGameVer": { "type": "cexostring", - "value": "1.88" + "value": "1.89" }, "Mod_MinPerHour": { "type": "byte", diff --git a/_module/ncs/_migrate_pc.ncs b/_module/ncs/_migrate_pc.ncs index c54e83f82690fab5cf186fbf44436a9a720e47c8..d408e9a45e4d2023e381d16f23f7a81f2fcc430b 100644 GIT binary patch delta 299 zcmaDZaGj6W&pB8j%uvt3iGhJVd?N2nCgxikUuZKiF*i*XWj0h}_Ge;dX8iyE{}%=p zIR*v>=2jMF1_mY@u-FHv*sRSt%)E@&V6h(zEUXMHjf`NX72yV44&sA4 V$f?pNwJbFUyStO delta 552 zcmcc4_gsM2&pB8j%uvt3iGhJ5eIoBoCYI$JUuZKivG`9GWj0h}kzrzHX8iyE{}%=p zIR*v>mSPrW1_mY@u-FHvSjXlZW?n{KCRP?!26o4k6t~pGlF1txh3lc37#zXMe?XKo zq=R{X7+8SHdHuruBI2EkfI3QxQb9H_)JQV`?fU~Je<&~@DHa7Oc6C*Bbn+}SQjAcH zR163W_F!QHYGPz%U@&Kf=!EO32iZVClNDSO%r$TeV2&1121+q1iYS8xfPMlCuqrw` z`uK<_11;8LM0YGu{Srpz&8Jw7GYWu%g)1mEH@_?u7BV*Akoo`rZzRkTIiRQi)+2cq zJ!F8=Qy~7Ee4fov1Z*lFG_aj2eNxL(b3kDp1dbG7_#K707G(0D?a220xr^7HKc67> JfXOck3;;1wyea?y diff --git a/_module/ncs/anph_altar_close.ncs b/_module/ncs/anph_altar_close.ncs index 2c89bd7a14fca2a0986981e5e314f78ad0cda74e..d4d39d51cd869a7f7b3927aa18ba065f43adffc5 100644 GIT binary patch delta 37 rcmey#^q+~>&pB8j%uvt3iGhK!ej={|HwzmB5U?^ZvM_Ema%Thpqt*t# delta 31 mcmey*^plC#&pB8j%uvt3iGhK!aw4w+D=Pyd3&TbWcSZn#+Xk%w diff --git a/_module/ncs/anph_area_exit.ncs b/_module/ncs/anph_area_exit.ncs index 3d81fe8dbc8a38b54d7d265711c286e28f17d6bc..8c70018ab8b5e38b6902db44b8d9d074aec028af 100644 GIT binary patch delta 566 zcmbQN(xbrZ=NzmMW~gW2#K0iHvyt~d6BBpuWn{kss zVIVhoJ@;zqdEoHXlLNZx-xWmo0(mchYJ?|u@aPNu%>XNMV`2tH%K!g=-%LKq6QK(< uS;Qr^xTGk*62I>i7?{{5EAXjqp2Yi>iSZFA{5Q`LFk@tl11E-;f?5FNY?o{R delta 969 zcmeBCn5@F<=NzmMW~gW2#K0gVypi`m6BF;0&3w$9j7;paCLd%Ko2<`L%*1ha^AZ+j zW+ukXlUK6K8Zk~`VwPiIU|>>{X88aA{~su?P97-6U<{VI#>C3P4B~=#%$$>duv-fO zg;*JQ0*X=#5{ps;OH+#~fffjB|6pJNDPr(qW&|0=zyego;TP@~5g#1r1C~jFSirDg zG9#bxWIk5$dY}?fkP=r{MMo#kG9$$Z#Yn|~&|nW1HlRt2tPBj6%n-LJFaXu^qNoMi z1GH5{87Rf5D54A&_yQGRRdjar@exr5nxV%CHsc4_3=t$V?4TC<2f*z!W?}?6A80JZ zURjWr*c2GRp5}vkIwiQIC^Ih|{UJNfdEuz2r(DtA|!PLLc$y# z5@5H8xK^YlmzMCQ!rTOl2{8rKfdBvh-&#<>1L>DwzkQj^$SNWQ^^#CfYGO)dNIr=2 zORXpg$}a~c7fdrep=Puq%n*i}!HuTb7~KJX-#|PKRWA%u?~+)O=$Yr3T#{Lq3b7QL zgn;gxgcK@BN$CIozf+l5!Qra`O+x(UK)aBm6f;ImvBv1+!<_4-8Nn%C4;(g;h?EX= zLC@q~E+?Vi4PXUsOw16^|J9xRkSjt8688W@0XNKV`2uy!T8X5u)zc@YaUGZW+H$;;Vg zjTomeG0QP9Ffge}GyMPm{|}T`Cl3^3Fb2z9V`61t25~_=X3ojq*sX?GWCJ$- z$qhUl^+08!AZ4zuijGd6Wk!k-ijj%|p}`(3Y(Uc(Ss55CnIY~|U;wJ+MNtd33uv>5 zGEj<9QA8Om@C7Qss_5+K<0GOBG((ROY{n0;86rq#*g-Ay4}jZe%)|)t0?=59y|N&0 zu_-WsJez0|Kbd5MnOOMM&xhgoHUfB*1PF zaji&AE-m3pg}Dh98)AN_f&c&izqO#i2huOWegnD~VmsJxJP`LleJB)^nwU}emdMP3b|FVNW_+7sjqk|^IoC@wg7bnNIOHM`c>(Bxp2^)@ zPC~yMzzW=$m?2^DS9kJ#t_Uee?6{;BmlWk!VnmJvy6=D2KzzSBfm@83@$ker831;o BCzJpH diff --git a/_module/ncs/anph_ax_enter.ncs b/_module/ncs/anph_ax_enter.ncs index 14f63b74a17415532a305d17e20c7da513d591a4..cba62de3c93f7a16645fd4ad452c0a52b23d2590 100644 GIT binary patch delta 569 zcmeB|>yYC0a}HJrGt@J1VqoCq*vNZ^k%?1b61UvspNtckST{|6$RRm-DN_Lx+p*2! z%*@P84EHC?u*n)R9AILWV*rA`(hUFq|NjHwF&fK*#Ed~QjG0WVEX*J-m{&WwpG#tL zGn=vzGb2a?0}CqyOA8~Am{KEYr;)4TyfC?IzfJFb~|6H>5 zU~NC3+K|j>1ew7HH6tasq$o2l9m5o`BY!A>bc?uFq$Zb^q{4LIww8er!< z|Hy(o!v;1)C@3{Cr7|QRMERvwlmz9MW7r9DIf@Y|CUE1^s=$EmLE*_IoWi2m?3e@$ z9r?*hT&tz$fdgMp4(Qr{R}g^@>X+m7a}HJrGt@J1VqoCs-^hE0k%?P<@&rzq$=?|#GqKN_e33uq!^(XsTdF%?7_kYG=-6sfx(g);w}XSpjuuOwO~7d zHi{?%r5F`Ol)(aDpaQIl&W=7lBFaEB^ccZr`~aIFf@B6i)I$FNh<%dwz}Nfx=1^<^ZtA^ssvwsLl}L1DG3-)DiHzIo$7Hw}`k_ zq$Zb^@TJ1s1PgaD3)Eo#|Nq}wP%s1OmyDo@0J<1rJJ@eL5chz5IJu5p43sk5F%0m8 z8qkX00H8kZpwz?^ztoD7p!{->Su*Hm{e6RE;d^#*L`nfVa1v5*Af=T5|Nl;9Vg(1R z1~8>4nF9?)jybf514gnb6WFD|^Z>C95{;A1IMz!uf)leII6xv1i5X~n&m>MKq2CQ) tc{e6zh@b!JP7dLWU;>8D8cqqUKKfk)_YvFV9xm0*|2W?=F&+kGHvnDn4=Mlv diff --git a/_module/ncs/anph_close_door.ncs b/_module/ncs/anph_close_door.ncs index 94fec403128fe424becf6a83a2932acba084343e..538575f91d2b7fc089a1473a51e42ef38a9f4244 100644 GIT binary patch delta 69 zcmYe#<@Iw8RtPiHGjL*HV91@wt8ZwcBLHNAfh>rWWMKwTENmc>m4QKrNr8cd#nA!G HVFz*mI35N$ delta 63 zcmc~z=k;?ARtPiHGjL*HU`U_HtFNu6BLHNAfh>p=W?=(StPBh~j0y}aERGIf4m* delta 47 xcmZ>@=k;?ARtPiHGjL*HV6dOaD=sa}!UkkAure^{Fe)&xusAe;IqXad3;?4$1u*~s diff --git a/_module/ncs/anph_clv_enter.ncs b/_module/ncs/anph_clv_enter.ncs index 5b1666fe4aa05ace400cce097c7203c5e2a750f2..03694e5a10905fa8e9ad2772fa1c090ec258401d 100644 GIT binary patch delta 547 zcmeB?Yn9^la}HJrGt@J1VqoB9-N;+T#KgL3vLTDu|W$4Gb)- z3@j~-K$0h*D77H5C^fJ&wWt!v=kN>ni-->n^Z_bpU;+~T43j5v$<%}O{ebF2GNch? z2p`mtl;D!0%)E3AW5BNbp#ah?;#!fKTw0O}(}BlcMvzm1R)Ta--owtN1Jo`Ql$w}Q z8Ilj8{8B4Qg7V8TY=by@1G|_$P>LI$N(BZKpG?l>6c@v0+$2yK$W4~#S}i>f9L9Qb zKsWunf(T3_Mm_ZTq|Nq}NlP$R;bb%&|xTF@B6y;aq_q_rG U6WinoJgS?Sc-}HGJ_3b50PvlY#Q*>R delta 947 zcmZpb>XGC1a}HJrGt@J1VqoCs*~nYP#Kb;pvLTDuNAe zL>Vmb1uDR*=ES zE#XUrxd|2%VhX4M|NsBLwV;3p(l5b&`!czZSwsrzC840y#FWaAd=TZAT2T^|Uk*wx zm}YoF&1glKAq+Kx8%?t@x&!{cfp{9KUKpg_C9x#YGtV)(B(p3PVktBU0o^$XDO8Y> z(EtB`r!ujE!&d{Eg!s*Yb|FV8W{jF*jnT=*9P6bS!6{u295#`Nln!)3&*Z-xPC~yM zzzW=$m?573t2;T6GeQay{w}G-B}Ms_7{M=t?)%?0aNn~{?&MP4{G0PF6XW5@y__-t D|HBng diff --git a/_module/ncs/anph_conv_chk.ncs b/_module/ncs/anph_conv_chk.ncs index 6d0a41db08132df2bf3f49a5768db667e49c2ba6..0162f63058b3d9cf139f0f11a226cdef48791cfb 100644 GIT binary patch delta 43 ucmaFG^nr=j&pB8j%uvt3iGhK!U?OjUkQECX0}!wFmN(X?0*OVrVFfr$r*!W7&DnzAx40CwUZlJt&PE^ z{Q;TA(!vNNc>;=33lfV`14~njDuH|szi_{Z_~1Yvpn?V_Akoh-S&>nu9^ne0J|sgL zL5A=_4M_VVDhZ z;sFk^7@!n)P-dN((}OKt0xC^)4wZ-@CEW-0K-Xm@gJhT=b0FVKw%63%YTn8 delta 920 zcmaDS-YU)O=NzmMW~gW2#K6GYx{-G?BNMyS|OdPtKeVHCJ1u`yXVP*gVX2$>j z|NmfMVP#uq!^(XsTdF%?7_kYG>sAHVoPR->l8rl=S5KqvspwLD8;BKq6`-J!oUI+ zU{!Q>^zji<2AZMA2sYyf*bEV%88T=V`Uk-6GiI86fK9TV59-B~;F6-uymXk!a-fhh zg;@;tm>!si;bovYM~KT|b|a}H;AeAYXp~I$W0OJ-E2JR(|Nq}vP>=%c;ba6wFwox+ zn`A)|!2_`y>|>#z)Wnp^kbDs3ms(L0lwXeI7F07UA!h#D3OBPJWW^5*L%E4DO$W&p z!XOPUi6x1id5*~?nPsUkX8=cgS_71LK(P&qMBH&`3W`Iq z$$so>r47NUSr2SMB_cHgt(!Ahkx_WECWpS*?+0K-W)QFc&4;Aq$s0MPCwFoESElGvxz-=u9BQyX&x+lvDa82SD6T>hX zB^)Wj6O)QXaz{BjJH3Xl+mcpdC)VUTi{#F9kMJjdjc%(7H$+JF{J z0)@b2b%C|g^T463CkJ%VzblAP2J&8j12|SvQI3fj7FHl-e>1>Z%s|lue{8?z8`914iFVQ1r=eej%#J$arWomv{+N5!jA5 z;Am`w#K#9{oPuS(AalTp2sPTkQ7;gjnwJuun&gq6pY0J65)ce@7Y{i4p@QHf0FJyj G3Jd_T*4Fp{ delta 1101 zcma)5&ubGw7@e7Hn#AUJHo+#+Cgf5frmeLW@nF+fNK1%GH*M-kqgkX1iKej{5pu9+ zF9V*`7CedvT|D$J@Z`mt;z1BWB#4rr#WsmE-|pI#5_B)in|brz_vZWN?fAwCMqGh&5Wr)5JeSU*IL;Kdsov4S_f>Dt8Ckm>eq5@Af0~zV#ll1nHI~ zK#$tii1nEA*!Gd+@Dss=*k{7MUT+5pW`sHfmhdoJ#v8=M|70M97-3ICnGt?w5_TRC zvnl~-n>t;G=@)x+hDq78Rrz|cD(7y>)w=G$X=nk^9ugSKnki&fE=ajF?37dsv_*4X zA04r}Xv|}6Fq)s!=H?=a+4=S3k(J2#NOnm|2?IEWX4OVmFwOH-aj%=o3ysjO-FFlaL#b0yh_2;5Yf9R7fbbg zh5s`0?b>4HR$r02D$;$qFVX;!!T&iOGc?D?51cL5iu2{f<=X1HtlP5j<8^l5^edwC ziJ0LoN1+J1>~-=9;cYc`>tM5{c(Vd@)A=kk0izoSqx$~nGTVpjo%rY-*H~cp1CUOt zkvkReT%dR`MBlj*;eO@qHr13$%>9F46Fj>!zOUrhPi0I@Vyq}@{u<%4?3UzmsUTlU zRVvp~`FvIa$K{7 z|Nnr2g_VIpn`!blrcfrP37dVHC79~LGH*aKERBp{&Id531;Y7)%=v-L`2*zubqWNh z=B0$ECVAxNXM2Q%1Ox-cc>KcsBI2QfK*JlDq#1y2c%uN)#+{O%Uli}1S{X8V3!4nG P8^KmE=rB#b%cchaTpdJR delta 410 zcmX@k)6K{0=NzmMW~gW2#K6GLJ&|`hPj+E)V>~yxn<h1gZbQz#`26r2l|* zzhGdIV*r9IFz*eNHv!E10Od7-d0(Ks5-<;F3RqtnnD>W)1!y0SU$|dHJjlX&pp9VZ z8i-Y3@{Ixml44PiVpms1M<>rRBgF{CNX3BAU=J2Hpj#M${xN5U=p;ptC0vga&^5d$ z7Qh@Wq70N`R1{GL3jqBD7GPC$cJ%QPQ3hJ9#|XCg$K>0r+K>PSdJZVA!#G)zO%DKR C|9_hR diff --git a/_module/ncs/anph_go_field.ncs b/_module/ncs/anph_go_field.ncs index 83f62299e5d60f6e30bfacc26f73214f60a87f4f..061d678dc03f728932ce96bb9a6d150f13aa2a1d 100644 GIT binary patch delta 908 zcmccNc-@xQ&pB8j%uvt3iGe}x`b6G4$|snFm>K{7|Nn!5MUH`ifpHfTGZQmd9p5ZC=3=!pOwBY4QaQ$;sku1x#$m zHg~cyGcz&VpWMeOYs7E>Vl~5GWQQ;sgFR^svY0Uw*%^$rlNtFWCV%BrHUiuChk=Ea zfu)5JNb&>}r4}R>r3RL!7F7cI9Dd<`5%Ix+K0pNxOhBT4av`5=JuIxj+K|j>1ew7H zH6tasq$o2l9m5o`BY!A>EERFBNKGy+NrmaaZ7l7p`g^nl**8N z5apLzQ4*A2j$tRrRl2`56ZvFwTMra6v<+o1QeB>yiml6F&QW(HhGPL&So`He^#b9 q|0kDArD|V8q?-T#KM8>yVg_==Cl4keWVe2b+RQH9$I7@7W()wkL;p+w delta 1280 zcmah}OH30%7@nE!LQ5ZNcP-^%A6AS;tO8MEq9&z4K(SDY2p6@&Mu`#3((*7y@W8=n zVr29}V)SkxBx~Zq8+bB$RSqV4RN_Grh!`mA%)h%>z{Jz;{PWHC_~+mKbb3DKPQ+88 zj;iR|~Adb^YT<-U-2N?*BZ9XJ5 z&@1>Vk*?FX_*~%%=kedCKC+JlO6V!F$0gYWeoREjf$0tMrp2k2Att&;1P*rW;;gt7 z-g}t=(ZIuclAZd7vFXt|WiusF(lCoy2G)T-t^c<8Duwy)Ype& zwM~Q7;m&YZxb;G+(N@5F#XO%B41XcSu?k?;1}z%IE|9QY$QVNEZEfW`?UW>{|x% zaQ_K@Vk0mTBSvyGz3q!|B8A(<4;EoZB@$mf1o7Y2$Fhu5Vu>88F|ccynxF(l1#VJ;`~ zT9P*|x}JMVL}=~-J}&%@^RI6E%^icAqchH_G7M83g)Ve48}MDi>LE=QN%Vp1h<9}i zKn?s)z_)UT>3dgasnP5@Wgw&Wk8JC8@s_ZwcZ{&wdACo%bBsK!jqkjT$?s*>*L!$? zRm$meZyeXLwU53GRB9Dci)de9{|{YX{ssFpPLV$IpQ(CnkQsg!JHX#@j$522{HxoD UvG@fVbBTx1f+blIPgwMS0H~I0YybcN diff --git a/_module/ncs/anph_god_spawn.ncs b/_module/ncs/anph_god_spawn.ncs index 60719c5f08560d86f17a0c4c1e8801d372c549f1..a87b5521678efee83f9003f5f57f3fc4773448cc 100644 GIT binary patch delta 297 zcmeyZ)vnF!=NzmMW~gW2#K0ihzLD39S@0ASGZQll8v_u?0WtHT$r;QatWUzkSeSu= zj9{5aC1!b$vMMldGDHtV9-)d$fAVCORL0K98$`q=U*KW2fJkvGfV47}U}$0j8OGTG zR>c4&O+X?7YLk6f12j!_1b`e6P>}_Z3K0FwjQ{`t|G~h*%D^DQ2qd_eChuppWZX6R zC#yW8z+_3bZpIcMnY~$n-GYVj!DdhHKo-Wn&9nKJF*82j>?EwhB#mUy7qCH`OwtS> HQxzBhS^+WW delta 272 zcmZqI{;kF9=NzmMW~gW2#K0h0y^+_8S?~xGGZQll8v_u?0WtHQ$r;QatPjJ)SeSu= zj9{5yC1!b$vMMmI7orCuk5I*>Ie9WmDr56xM?ta4{H#LSc^K-LK>9hGzi0K{D| AK>z>% diff --git a/_module/ncs/anph_hench_spawn.ncs b/_module/ncs/anph_hench_spawn.ncs index a66b9450058e200c60a431f3e3db1466fedd2460..a17e6eabde082bd8d67abace0c93011f6bc8696d 100644 GIT binary patch delta 4763 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 diff --git a/_module/ncs/anph_lamir_dmgd.ncs b/_module/ncs/anph_lamir_dmgd.ncs index 0cdd037e6c51f6f8b67049ee899fa16e22c68667..a25d812e45207533566cfff45c449e14b2eec0bf 100644 GIT binary patch delta 3742 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 P&9}K%o-Z!^B}VucM@<0; diff --git a/_module/ncs/anph_lever_door.ncs b/_module/ncs/anph_lever_door.ncs index f93e44876db673757c308dafce0db33f5e477c54..fc16921cca029cf9e2503d99a37edef6aa7e2cc2 100644 GIT binary patch delta 70 zcmZ3)xPp<_&pB8j%uvt3iGhJ(#YA3T#=wcuO4`ya%s@T^GvojN|9>#Bure@cGbup0 Qf52QeCTRws+#dx70Ay?vRsaA1 delta 44 zcmZ3%xQLP0&pB8j%uvt3iGhJ((L`QfM(>HyN_?WsjQ{`t|HHt-%D|w_IB}vl00T=4 A`Tzg` diff --git a/_module/ncs/anph_merc_join.ncs b/_module/ncs/anph_merc_join.ncs index 6bb32872007091a3c81438dfa0db2477410faf25..b10d1615b5d4661ec9c8f58bf0f0453bb10caca5 100644 GIT binary patch delta 806 zcmcbkwNZ`N&pB8j%uvt3iGe}ba3gO%BNMOhV!YpELOalZXOuCkrzJ z1495aBT(oI0}Bf)1Dj(-T53*?98j1yd-6v{2M%6MgbpTN-pT$K{AY)OsrssGJtutlYMw3COdE_ z8-v~bhXLqpmKH`J$rDhNT981{=@xOVNKGy+NrmaaV=p5ph=EpubWg6~99_UErVo_j#-~z&0mUbib-BgGuo*WA6b5pW?{lw~ zo(B$NJvpG8{#`+YF_8BHs78454jz4>zZqafZcNOei248j@0-a#c_MUyCX2YF7MB#| zSK{}*0s|A<V)HM-GfYKbm%jl=NFyVd^8q<_ xfJqY^#b6mM@dl23f#B4kC2dnV4xlzZ~}k|f)fEa_TDHk002-L>8t<% delta 1204 zcmah|O=uHA7@e8jO;gkC(q>bkzZ*hpQ4CFk1QCO28)>AbX;Wsv90UO?B=IQ!PD~1eEYul-uGs;^Xpz~ zs4t?Nbi2BH0kEH1wZKh z58b>jSnI+G^?WR$4lk&QB?52Tw+?vP0*)~?n@o*4G!}|ZM1}|1&6Exg9$>d9ua_Wpl_>*-5UTLv|KyWCwzy z&p$XQI|+shGK_VGA(vtJjDbVp;ye$6bQuIzpW8|$nG`@=5P)cio{A(B({pF3>=m-M zHtJnRfew@E+Svrs=hkrxjLQ1{v-%~OBqTwS4I*!!Px6xNz9e3eM2L7LYRIn6Y2XGeg*7;r2s8uRe zh8igAo=T%}QaLBCT_))DA(ZX+8JZwbySZC{_$|i^5DY1J3nmjkH%bJN!R`1034{x{ zoJTI1Uj*5Xre2QmC1i4ZxwGxZQvx%tb%&xEMPw?;BJ8%xGUA%@b2v>(P zv6q;f8s%9W59F5d-NxcKE&{xYiLN6?nID@&*c{hCDRhZt9FGXx?V1r8H`;>|F7!7v zm^Lb%EYIE0p`u<;1p#f`2x{FXzz3M<778Ai>$VNH(6&ID?>=4wSEP!8vox?ny5{wU z8m>!Q2M;A)3LxrFis4GI*8et9FGTPTl+Fg6C5e2QcJ@`X2{>_w6I*10%V|0Zu8o~| z*f|Y%1$zfl@qX#^(&ztSp0MP3qp^UZZ6tvzx{>X8K4coWidSR78xIe6$8n(*#OXAi zIud}FLyg3_LCVmn)pJyrW%nq|enh%GtU5!~%x9`c9QC10K@8uU81@D7iIWV$sS;{# zD_$Msjn91VEE?VeXFUA5PpnSG7qBbO^v*B|g}EkS)@s32OlcQxN7k%VZUb$0;>zIQ z(r&$aI$#q}nE{;`d0A#tzG3-eC|u_b9rKv?b8CgAtIdL4qW5K0z!HJ_oJp739`fLD z<{*PIh1|U2*+$l-3v11p#-hj8WSaMY=z-wgmuL?saRa>&BD{PYtx-w66M`orY67eH zUW^H$+FHNp-U~{#V*Ma5ToD|OQ--^H+iZ_sru`wjB4$qHG zgOwN*H50;69~Dnx+wk?MRF~NOT;Shg*gzO8W>kYOI-ehamoi;2A$kUhHDGyk1Wd=1 z(Ggl5--UF17#&Jtex;obMqu!`86L5tImkwphJ|080gJ{(K^*>dTySap5B$?E)g<0$ z$Wz8QIpR*JbHtsPD&yNy)U2hv50RU{X_up2xh=7VC?H;}?*l+tC!C zNRFo9JFIiYj`&b=GF$S0dWuuzn(lnH+1gI?ji19dy{%OlBW(|*jg!uLLR-aMe)XN$VDCNMyQF zmxire7jHJH;fzw3hA$|30OlNZA`KEtqn1QNzO;CW0C{}l%*>GKCe!HNp!9W04`Nke;lR*PqwBB$JS9UTqS(3-=wVBrgb*b?r%=w*$YPlch6gplGWAn2XuIJEnm-#8!98AN;)*uI?-1aEie7E~e7tG0YTa%2d z4Q9vC_Tz0jM|bE4Dmb7MXlikaAx~J_JCsWFbOryEKK)9i-Q+N2x;e(;7Eu&&(~l5{ zImb29n1W~+`Qew!?5p+U#UzDgP3?4L_SI(NtNO_aecGf=%**Rt0SsU9UY6bC)Jads zD;lWg%-o{HCHeY%b8*&Eqe*aV7|t~0{YKoWxvPY%+%@!CG5bXmKj$4}ERHZnOzzWO zSE?d|N=)iSvl?SWa-RsyNRD7O=PoUnYBa1~)eF>w!ttf^_*R|iD?O?7K#G}`yY~5f zbA~bBU}k{sydKS5@<(B*xw{%YDWtq8P||9XNidi>m|t&b(u|d-33)dRt*cH3NwqA5 z)R8QNq`S%xdfN#b&7nkUk=o4Lfv9gtMQcnz$k)=1A{)&8|3kxr<_@)xSKBPTk(=mX z16d-fusO?LT=YJ;%>C`9y+4iTC)IVdy`+cYuBsI^!v%M)a|uu6*Jk<@qrR}&E#tlX zE{N1%sm?#@9Xa{F=6U zY~C6`YNBvQHSN6dE!rLLkUUG=G--C7o}7sNXc%M_gBxrTyXqI2t}Rq&Q%-E>I} z(bC1TCe6r0UnuKJl}C47sY+HVS+$TWSv5tvxpjjpG)ns2MF2ih%WLnbVIS&u55bT2 zE+E6MN`Ctu5eVU&2?rN~AniVA1=uX%p;v*t(u^V1e&foWWv7%UDOWEq=Bw{wE-HUZ zxqA7h?3Tdq6y-RN`GIWdz+a9G8(AhO!OQk{gO@cc z!OOny0x$bVH+b36Zt${~DR|OEz8MZq3jR)Tw_n^-_=(f=EhSBV{d1?$8#gO8+EB+e zLT2uU`@~79Q>hkD{nHn-|8{hAX_Zo_L(Bkp4ePfB;*O;*qV;{)2zQmFkHzuiMvm4U6bQE1?_ zhFfHBq6qh3582_)uRh|~2h`n`d$0(0iQe~NCe&edlaE+@A7+RZv*}yw+4;_FlAn10 qKImXam(tVOjW%HJWjOdM_0XDb?f`?y>)Br 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 diff --git a/_module/ncs/anph_open_store.ncs b/_module/ncs/anph_open_store.ncs index 1bc00d793b29c0bf5e1588e4a777c606d0606dff..6541a67104d2e05bbe659e336df0f13752e78010 100644 GIT binary patch delta 1127 zcmaJ=T}YEr7(Va$zBzGjO7pj1TmD4YSTiM-65=e(sO6mYBlNS}heR-SP13+>6#dXe z*0~sE&_x*7-;ysH*+pPCUMY3aow$MMrv&LmP_Sm_oMwKu@VhwYd!P4t-}5}@E%y_85s^dX-4#GGSNj4 zu|^bF$fF{Fm6a6*iCYle6R8}q98Qps!zh=SI-vl)UZoqZOc?pLe&YGd{b~0vfgKctd zvFwsFRHu8ZE^8bOgfzr%9a>ilC zi`{f~bUQ-kYUpMo+S-P_+yxyWAJRHY6f&${z9$$s=kHAOM|^v};rSubR#RRv|4}VQ zDO(exw5!D^elA8i%*7~HE=JKYF*PbNA^2B}ZdFW^KbWRO93^Aj!A!0 zd>Aq3wPj~?*$IsXXl6%+m)uYu?s3C;c){W*ji&+LM<+cnYQmAha3}!9SH5u9OGxC; zk)4v980Xm66oxtWievPNavnP}Iq{HVvnfpE*o}3VhGPND`H>SU-^s`r^PP`uj1pN= R*-pMDJwJ`n`U@~}>NonHX&?Xq delta 1524 zcmb7ETSyd97@q&^&aUK*+R^g9qZugTt-O(tS8BudqHLvf6CJW1thV)*q=-)ihIAqc z>>{H1k`+_gO9egoRCIgjLDonc6(gevA9Sa4&a5~~NVO09&wTU$-~WB*Kj*x>ZC)5Q zhuh0*tOs*4v&%Smv+yuHEYjTQ;W;kJh+VHN^3KS?5ES}DezVnNiZ^^t;>gdINdAnw z5pOimSN7J7yYsgh30y5lCSHJO=mAhwb(u59aU`zLBzT8=I-~HTq^vEZmgmBp9_eho zM{>1Do(}9nmK>5!6S@5cTD-y;Nmhvckp1xS8dnwj(ufQ!-eL4h1KkdY>0YsNx`HTL zP+2LKmf2c!#lvE)=yccYGn%LZVywuZDY9~eJUl3ukq`|+3i$-0kivkU0e~0FORK7c z6vB}SjANN`2(dvVtf9lH^}}Ga3_NfHpJ1|b%(PJ1E;Y1xrGWQF%{&yx9MBmh=J!&g zB=$0+M1$5bfi6$jngfloLOSpDoay+3F(!!7|7pDn4_Tuz=~)q+aYO6r|M1tIq194- zqg`tER-b93MA^Ya#p|ueN?K@gMZLG))?C`)J=H4FqJJ2-s;?8H=DJ}~9?e|^l)6bC*>wq!@(yR`Thr&>YwMvc?|dseMg4TV^RL!Vk*Y2LzFC-r z=BM#<8eU)@4Y#fql?!ar5o;r^@p?`*pQLM8Kz0TtQc~A8FQdJ#I}bslQF1gX_-Mg5 zGgdn0W# zOPUV(V$oYZV`^EiYC4ap!qnY#AL8}8rk~Sp_{yHqj46x0$mgU*kW7nwW5}Q{@_oc7 zN<`#)LP9*gUBV+DrjKTJ?0jd*v(P(LGBH&GJ0l=sV6y{;;WQ0}6JH(h6rf{b)CCU{ z(Y+@8J=xMt?m^W*`IwnoA~zSk8-Za%3|kCfh+%yUn+ssHr+>18VKV`Yj@3UY1!3ec m5X{B)k$;@mdG*JQ-(@S5NmIsEomKyR?A#$t#GZq(W4{5@*$AZo diff --git a/_module/ncs/anph_opn_ranz_dr.ncs b/_module/ncs/anph_opn_ranz_dr.ncs index 260f6a3034bf64539726b914eccc05cbff230d1c..40afe666bbe2c8e32644c0c7c96c76ff5fe91721 100644 GIT binary patch delta 47 zcmc~R;q`M4RtPiHGjL*HU?`c$>m$v=3}i7dGyebo{|5sLD+7ZzlQaX6^GAUJ01KTA A{r~^~ delta 41 ucmXTPm$m{`2YX^KMX9a3=GCE_yh$515qD?Dp5(OL75go#k$$6MWGct~UP^mPF z7DCw}g0Mn}Hic2IRkUc;K5P-WFd}S_Sp?05k@~v#z9+s?+&tbr_dDM?-*?V^)x6T^ zjGT!o-6!ggHzA~~ymY!TsSH67&k^4w%)5NBh@TPp+w8Ot?vr!GcMIZn5Bw%!;+m)T z9<5V|;d1AP8l>y`IuU{hA%_#**q#KXfm(VH7FkGoNJJvq1p15k`2}1P{Y09D2cq9D z4T}inU|Fmx;RI4UEQxhQItH8K45@U(j6FxZDQ&dm0xp#mM&N6KrP44d>xH_qnP&Nq zfNA|t$i_=xhLFGW*cUTKcx;i!3TBKKvqz1t?RT`FWuGw-Ur}BAAtwzH`+M!YLl6jB zhCX+o0lhPjXv3-&hnP$hV*Gf}DiU9Z1^4L?FS(9vBC=&M{W{vy>QFqbc8sX$33@J# z^h9EP(T+9>m?HFZ8_izyPx7=iGtI&=%{W{pMp>oikn(2a1xjQs#F~Pn5nNT`%-=0Dt6C?HDG7 tgOF7Q@LMgf+{0uw2R9G2HCeXQbj#RuzNONZ^{vSab>QDc=N0LS{sj<0RdoOW delta 1501 zcmah}Ur19?96smV-A&t_Tient=X8k{l~z_n3B~dcu9lgroI%LSOGGfsmL*7k9wGuE z>J)+WP!I$~Mc!TvdWd?B9*l|#vWH@Y{h_reQg7${&Yj(n(96c}cfRv|zwbNe-1p(( zW=Cs7tYZ7J+NJ9es;s-?aAH!jh6eE^;=fL>6qV3Xe1rI%XHS&Si)0h=Ycyf?&|jpH zxK6WmkJc{5vCBD9igaC{AW{$^j( z)@YZrtPYptYkl-WA&tg_Uk0hc44Q%EDu8c@AH0Y6^wdNBZhQ@la=|ZCk9xVr49t zCAeA=b5$UQb>v||gDH9|*%A(UD|0zOLk=~Bqfu`q2p!mV1!jld9Y}V6%4S02pqW;LS~B!u=h41+ddgMA&$h%Av#w9wUSANFTV0XTU@Z%t?-MvJCC*YNESUJ(6ng zIn41(^EfBR#pFg79u96yq!N*2cz0@VpDH#PcYsNsGg-?gxZ?&jpfc`EwjL^YG`gOxfl53Y1s;td!R=)m#86s||1OSxdn>Bk{@h1M*E1i5 z$M1#-qk0MnEC8m(=Ag1&T21K+?8-hDi~^tOqXz=juFS9*nt4aB1;=3 z3lfV`14~njDuH|szi_{Z_~1Yvpn?V_Akoh-*^o=79<1*NR3DNdjUYq#poXLbmlS2@ zrDGTacI6KRkZuvziqz!Nl2n)uJoYkz!V736NcZGkb}k*DcA=ou#FWaAd=TZAT2T^| zUyflL#L3QHV){_Ie>E9JZ7z24P zfNF#%pXAaP`kMh(7bH8O` Qd^GtWUp!;eWJP`_0FR`j&j0`b delta 942 zcmaDP^;nMA&pB8j%uvt3iGhJXc_Qy|;V(?gOw7!T|NsC0!oVWO00d7aJ}+S6?V23P zD9a^@6eebnb|y7x z2B2Yopu9SHkbYyZ%rz!fh;bkuGv{P`HftfE5Gw;uKv8NzVo_>fX=+jB#71H5A5f=w zfgSdTfd#0D!!O(~B0f0K2kgici1`c)COhyd)gvhr1u1iNRdjUnEHhG!P>fUz2o3gN zVFOyp2=s;}GsJlc3_v4!QPhGB0op9043uJ26j6qS3Rr+u(b>_*M?@KDh8`o>j2~b# zM1W?uLAmcZQWH}uL-IkCUus23P<}a9BRru-v?7cUh8n?*s@E9Z`oC{rkp#9;7^K`Ku_Vzm z&oQ|qvn&;CB{Y=)9XSap7*K-i?^GsMaDZxnQVA$pL9vB9vP{8|HJOKFtu!Mz-Rgk@ zArj~ca5ez*dL}Pq7M}c^Ltp5316Yw8CgG$FZIfG4+N$dA#NZ2tk%K^jiuQWJD^uX*u OL~HkJWfx!!=0jP?@FWfI8J~+?^ER({-45k-= zjH>5>SOOsx7?5;{f^@mMDmprOmKiBVC`Kv#pNWvNh?5K0&S|Nni;#0pLqF_fhXbL4b^KT1t;L@6-2Y;I+dW77J? d3-KHz#Qu1JGnF1F?*1%7WGEo->g2O*CIGr~75V@G diff --git a/_module/ncs/anph_tell_area.ncs b/_module/ncs/anph_tell_area.ncs index bd922f9671c2b434d822376b55e86f829ccd5357..cf40c9609e76bbbf3d9397dd240e9c071b7fc5e0 100644 GIT binary patch delta 558 zcmX>ve?pqq&pB8j%uvt3iGhLl#6;drOsqR69-PO-U9>ro@hcM(!~Mw-EV4!n2bh@U z7=YlfG{gV@|NlUEjK=aHF=LPnV;=3 z3lfV`14~njDuH|szi_{Z_~1Yvpn?V_Akoh-F;2!6tnCL>8-K0evkyIhG?p`4>1q&E!CVY``Rh2vQ*52^_GDlP_?j z3H_Y`R_MmW42p^W|NqHM_TY@r1UgZ~CAGMuD8CXGO4x&X^9#-{R?S<8$o&8Rha1>P SJ&heO{i|&pB8j%uvt3iGhLt{6yYOOzaCM9-PO-Te&%r@hcM(x_2A+VT)PlsK)WFiz zqRPpPjKbPK7+64x7`&JnL54A~09A4Lh5JRs2M79qWl|s(Ff5pSj!CH=Ntq}}nX9X! zqmyTukz#~mq+&p5um=kp&@@I?1_n!Ji2D>6fJXA7s0AAWv{^(MD8;BKq6`-J0u^9Y zbawRd5m5%3p~na|;|JIb5uh1vXcqbh!0j_;Vgz{sXe`8DS&+Bb6d1rB=Yx7YCAg$0 zGcO(F^?IOva-a}Yg*gZ8T|FcpA_W9cogu_rn2V6q5eNx$cu0WVBH~(+np|4KmkM(e zEH)&)Q7rto78LUT|Nnal_88E)5Uar+OG;L)Wnp^kbDs3ms(L0lwS_?qNEF| zd7e=7S_zuRjb@Mmia~$hpja*pQtXmglIWS|m|T)smI|>Qnzn%MpM(@ts0K}CVg(1f z1}JTr0}}%%j&Vn^Db^^ST*MZv91BkVX5jGJ$^=U7&*Muo{Q*wTc4ZvZQF zV`7E`#^2b<3G5M4kce?fEiNg_uf&KKQ50AIUIX#|=7;QEteU$a9EfS(yTGRFft>OE O5watGh)$luYXSg>DK?Y< diff --git a/_module/ncs/anph_transition.ncs b/_module/ncs/anph_transition.ncs index 043c89fb5e2bc6550380b3430183c6462388adc3..1f4451916eabea8e0752034673c968abb909553c 100644 GIT binary patch delta 45 wcmcb}cAbsa&pB8j%uvt3iGhJRd?W8yCLu`{HU=PIVFr<`3=Eu1llhpP0ommTF8}}l delta 39 tcmcc4c9D(O&pB8j%uvt3iGhJRa3k+mCLUoHW(FW&WnkcBoGilZ3;?qJ2N(bV diff --git a/_module/ncs/anph_xpw_grpq_l.ncs b/_module/ncs/anph_xpw_grpq_l.ncs index ea03a29003305e272a67e799733605837b7dffa8..97f062f7504113dab6716a7c27e6eddde27fe98e 100644 GIT binary patch delta 692 zcmca>f6bcL&pB8j%uvt3iGe}(+D6_#Y)qoZH*>S|Gcob{ZkFLJXJq2?o4kRuak3b< zEIapgRtAO`#>w+}BsK?eFJxrmzdM_l%orrYn90P-!VKbqd9{-TgsqL389|B}SXdcYS{Q*OPe4&> zL1IyAU}E@o3Cq@lwf%r z3{$`k{GkBSE#g{{np|3v3e$nxS_VdtOMzB`bWh$b#x=P>R7?!RY>*2XCa)J0iv~(@ z2c;&a_@!2q1m%}ws8nD;cegM|xl3Y6qGz6Ca!F=cDmHCE3nl@BKyLCeu^gLU@4@jS zq6`jE0Yu3E|Nrk0IOM;`0iFBr2O{Kwp5Os$ddUckWYNjZ;-ZXqCeIYtVO&4?n7BS$ zJy7Ze7cD7@e8jEh5ksSXd}*%SviAF=$JwF-|IC z8@8Byc+mC{9et*Kw$*q9HN54J$KgxF4FdqsaUWFnifX0?*MSJ#l6{ z=$uTDD*;#&dG%fs$IwbW(4kFY`F?L4Q;1OTD5b=9_%#UOctiWp=UyMSjG zf-)V6#l#@t2tmeCV;myk@E;PKOSJXE2+xV`GIQN;xXz{u`NgF>J$w_fVH)OWs~6@q z)M2k91yVPrn`yPvQP&-V{7(+&+BqNre|38BE6FQ$kso}Z5jUF$-|;8e?_mxcNi~x# zUCq&-xVlnE=9YT^qXzIP1=<vzydtM&_9h8tH}W1=N>y9Go9Z5hd057hpXaU^v8r_t|8wj+wNVayGoih zwwt81iPv1G;bUBJoq{R6L%xH!-yK5xzwrfk*iqkO$V-UR!)d(5Pu%Gt=2x6i?-%m9 zQfocfzk=rK?Xpw<)lP}S70HEVsfhMAv~}qnJZaJ2bn<$DiG^sJ^_9*x>+kWF=+qv1 G7x=##Us1>a diff --git a/_module/ncs/anph_xpw_grpq_m.ncs b/_module/ncs/anph_xpw_grpq_m.ncs index 8996cd026ae2c24b79767aeb4193937742c23720..d1b2aa3113e9923b34e4366c1e8f5c69b15e74ae 100644 GIT binary patch delta 692 zcmca>f6bcL&pB8j%uvt3iGe}(+D6_#Y)qoZH*>S|Gcob{ZkFLJXJq2?o4kRuak3b< zEIapgRtAO`#>w+}BsK?eFJxrmzdM_l%orrYn90P-!VKbqd9{-TgsqL389|B}SXdcYS{Q*OPe4&> zL1IyAU}E@o3Cq@lwf%r z3{$`k{GkBSE#g{{np|3v3e$nxS_VdtOMzB`bWh$b#x=P>R7?!RY>*2XCa)J0iv~(@ z2c;&a_@!2q1m%}ws8nD;cegM|xl3Y6qGz6Ca!F=cDmHCE3nl@BKyLCeu^gLU@4@jS zq6`jE0Yu3E|Nrk0IOM;`0iFBr2O{Kwp5Os$ddUckWYNjZ;-ZXqCeIYtVO&4?n7BS$ zJy7Ze7cD7@e8jEh5ksSXd}*%SviAF=$JwF-|IC z8@8Byc+mC{9et*Kw$*q9HN54J$KgxF4FdqsaUWFnifX0?*MSJ#l6{ z=$uTDD*;#&dG%fs$IwbW(4kFY`F?L4Q;1OTD5b=9_%#UOctiWp=UyMSjG zf-)V6#l#@t2tmeCV;myk@E;PKOSJXE2+xV`GIQN;xXz{u`NgF>J$w_fVH)OWs~6@q z)M2k91yVPrn`yPvQP&-V{7(+&+BqNre|38BE6FQ$kso}Z5jUF$-|;8e?_mxcNi~x# zUCq&-xVlnE=9YT^qXzIP1=<vzydtM&_9h8tH}W1=N>y9Go9Z5hd057hpXaU^v8r_t|8wj+wNVayGoih zwwt81iPv1G;bUBJoq{R6L%xH!-yK5xzwrfk*iqkO$V-UR!)d(5Pu%Gt=2x6i?-%m9 zQfocfzk=rK?Xpw<)lP}S70HEVsfhMAv~}qnJZaJ2bn<$DiG^sJ^_9*x>+kWF=+qv1 G7x=##Us1>a diff --git a/_module/ncs/anph_xpw_grpq_s.ncs b/_module/ncs/anph_xpw_grpq_s.ncs index 0eff3f132e1c5ad77eb86b8afc7d8d44d3984235..a22c938207967cb9b9700743470f7c90ad6f1149 100644 GIT binary patch delta 692 zcmca>f6bcL&pB8j%uvt3iGe}(+D6_#Y)qoZH*>S|Gcob{ZkFLJXJq2?o4kRuak3b< zEIapgRtAO`#>w+}BsK?eFJxrmzdM_l%orrYn90P-!VKbqd9{-TgsqL389|B}SXdcYS{Q*OPe4&> zL1IyAU}E@o3Cq@lwf%r z3{$`k{GkBSE#g{{np|3v3e$nxS_VdtOMzB`bWh$b#x=P>R7?!RY>*2XCa)J0iv~(@ z2c;&a_@!2q1m%}ws8nD;cegM|xl3Y6qGz6Ca!F=cDmHCE3nl@BKyLCeu^gLU@4@jS zq6`jE0Yu3E|Nrk0IOM;`0iFBr2O{Kwp5Os$ddUckWYNjZ;-ZXqCeIYtVO&4?n7BS$ zJy7Ze7cD7@e8jEh5ksSXd}*%SviAF=$JwF-|IC z8@8Byc+mC{9et*Kw$*q9HN54J$KgxF4FdqsaUWFnifX0?*MSJ#l6{ z=$uTDD*;#&dG%fs$IwbW(4kFY`F?L4Q;1OTD5b=9_%#UOctiWp=UyMSjG zf-)V6#l#@t2tmeCV;myk@E;PKOSJXE2+xV`GIQN;xXz{u`NgF>J$w_fVH)OWs~6@q z)M2k91yVPrn`yPvQP&-V{7(+&+BqNre|38BE6FQ$kso}Z5jUF$-|;8e?_mxcNi~x# zUCq&-xVlnE=9YT^qXzIP1=<vzydtM&_9h8tH}W1=N>y9Go9Z5hd057hpXaU^v8r_t|8wj+wNVayGoih zwwt81iPv1G;bUBJoq{R6L%xH!-yK5xzwrfk*iqkO$V-UR!)d(5Pu%Gt=2x6i?-%m9 zQfocfzk=rK?Xpw<)lP}S70HEVsfhMAv~}qnJZaJ2bn<$DiG^sJ^_9*x>+kWF=+qv1 G7x=##Us1>a diff --git a/_module/ncs/anph_xpw_quest_l.ncs b/_module/ncs/anph_xpw_quest_l.ncs index 108a7cfb84de9212698791671a3b747f6c3189a3..d8262cc80814883c2e4118baf3480a4d389cd7c8 100644 GIT binary patch delta 690 zcmZ2$x6F#y&pB8j%uvt3iGe{@Z6mJ_8K{AY)Osp)-ATF3!J2^qf+K8DEq?mz)m4T&&5lHd`6r~m< z7NrK3rWREK`5b=Xei8A(fj&S54NO3ye{!9WY&}@p52!XIGa5l=@IlQ;2`(wh%uB~G z1?<2d3LxDgt`(`tr6s8_9k{J!U2a1c!VY>_*_zpON#O<@dw}J oXo-HNAImnskyy#7sfFywUw6PJ>w!%DErjgI-)fupN#(Nu064tHOaK4? delta 1052 zcmZ2xwbqW;&pB8j%uvt3iGe|0cO$P48F5Ayx*SfTGlb#G=%|($u0# zMn<6a9}FxIW0;{lkQN3nFz*io3s4V-U$|dHd~l!-SSAHx9m9gjXT_E3k(7yol)1Vp zIy!ll87W36Mk)q`279ou0Zn5B`puFVVvPa=&`4eswJ@7Slz~!=iXzHjfiDa!U;$P| zXGb3&5oMqmdW>K*et^vo0h%F$W}$xo+&*Kb$@7K9>cPI|gZerpxTGjEFCB}&ftJaE z0#g;{7O-FSki3T!3P5#+5YNDzgQN~M7-TWR!5khAOstdjg(W7x7Lyc5G5p_JP!RwB z|L^5wE?F4~un&ZSQWH}uL-IkCUus23P<}ZUjh;}AtssqpV2#{pI_goZ`uheJDPYCI zAjK|;C5fJSj>#pNWvM`Gumlz`$$;HA3CY{2#!h8o1qYx8Soa5L68j;`z%coqxF9H+ zL9vHB@=U>zH(6ICm+2?_F?*seWJ!fzrKNWx-l_B0_V@-$(KbVq`>|aaY-#MDax;eB@b|}0EMe0 zig$i}f`=0GWJYn($+==>OyA~jek!(-QIi`Y2QmDY0@yM=kTZW(AUpHd>dAs4!kbS? H#IOJWUvp30 diff --git a/_module/ncs/anph_xpw_quest_m.ncs b/_module/ncs/anph_xpw_quest_m.ncs index 9b86eb4b162e986dc6d660de6a3536fd2ccb6aea..1f6ef642f400880b9a0ce16c95c509e7cb8f548c 100644 GIT binary patch delta 690 zcmZ2$x6F#y&pB8j%uvt3iGe{@Z6mJ_8K{AY)Osp)-ATF3!J2^qf+K8DEq?mz)m4T&&5lHd`6r~m< z7NrK3rWREK`5b=Xei8A(fj&S54NO3ye{!9WY&}@p52!XIGa5l=@IlQ;2`(wh%uB~G z1?<2d3LxDgt`(`tr6s8_9k{J!U2a1c!VY>_*_zpON#O<@dw}J oXo-HNAImnskyy#7sfFywUw6PJ>w!%DErjgI-)fupN#(Nu064tHOaK4? delta 1052 zcmZ2xwbqW;&pB8j%uvt3iGe|0cO$P48F5Ayx*SfTGlb#G=%|($u0# zMn<6a9}FxIW0;{lkQN3nFz*io3s4V-U$|dHd~l!-SSAHx9m9gjXT_E3k(7yol)1Vp zIy!ll87W36Mk)q`279ou0Zn5B`puFVVvPa=&`4eswJ@7Slz~!=iXzHjfiDa!U;$P| zXGb3&5oMqmdW>K*et^vo0h%F$W}$xo+&*Kb$@7K9>cPI|gZerpxTGjEFCB}&ftJaE z0#g;{7O-FSki3T!3P5#+5YNDzgQN~M7-TWR!5khAOstdjg(W7x7Lyc5G5p_JP!RwB z|L^5wE?F4~un&ZSQWH}uL-IkCUus23P<}ZUjh;}AtssqpV2#{pI_goZ`uheJDPYCI zAjK|;C5fJSj>#pNWvM`Gumlz`$$;HA3CY{2#!h8o1qYx8Soa5L68j;`z%coqxF9H+ zL9vHB@=U>zH(6ICm+2?_F?*seWJ!fzrKNWx-l_B0_V@-$(KbVq`>|aaY-#MDax;eB@b|}0EMe0 zig$i}f`=0GWJYn($+==>OyA~jek!(-QIi`Y2QmDY0@yM=kTZW(AUpHd>dAs4!kbS? H#IOJWUvp30 diff --git a/_module/ncs/anph_xpw_quest_s.ncs b/_module/ncs/anph_xpw_quest_s.ncs index d58889d0cab00da22398632e8d0fde4f9f69f9b9..7260d9fea8adb72a3c60b080771ab761f6ede6bb 100644 GIT binary patch delta 690 zcmZ2$x6F#y&pB8j%uvt3iGe{@Z6mJ_8K{AY)Osp)-ATF3!J2^qf+K8DEq?mz)m4T&&5lHd`6r~m< z7NrK3rWREK`5b=Xei8A(fj&S54NO3ye{!9WY&}@p52!XIGa5l=@IlQ;2`(wh%uB~G z1?<2d3LxDgt`(`tr6s8_9k{J!U2a1c!VY>_*_zpON#O<@dw}J oXo-HNAImnskyy#7sfFywUw6PJ>w!%DErjgI-)fupN#(Nu064tHOaK4? delta 1052 zcmZ2xwbqW;&pB8j%uvt3iGe|0cO$P48F5Ayx*SfTGlb#G=%|($u0# zMn<6a9}FxIW0;{lkQN3nFz*io3s4V-U$|dHd~l!-SSAHx9m9gjXT_E3k(7yol)1Vp zIy!ll87W36Mk)q`279ou0Zn5B`puFVVvPa=&`4eswJ@7Slz~!=iXzHjfiDa!U;$P| zXGb3&5oMqmdW>K*et^vo0h%F$W}$xo+&*Kb$@7K9>cPI|gZerpxTGjEFCB}&ftJaE z0#g;{7O-FSki3T!3P5#+5YNDzgQN~M7-TWR!5khAOstdjg(W7x7Lyc5G5p_JP!RwB z|L^5wE?F4~un&ZSQWH}uL-IkCUus23P<}ZUjh;}AtssqpV2#{pI_goZ`uheJDPYCI zAjK|;C5fJSj>#pNWvM`Gumlz`$$;HA3CY{2#!h8o1qYx8Soa5L68j;`z%coqxF9H+ zL9vHB@=U>zH(6ICm+2?_F?*seWJ!fzrKNWx-l_B0_V@-$(KbVq`>|aaY-#MDax;eB@b|}0EMe0 zig$i}f`=0GWJYn($+==>OyA~jek!(-QIi`Y2QmDY0@yM=kTZW(AUpHd>dAs4!kbS? H#IOJWUvp30 diff --git a/_module/ncs/anph_xpw_rp_l.ncs b/_module/ncs/anph_xpw_rp_l.ncs index f5d484b439aff0d9abc3a855aa0c1ddcd9267441..76de872f8875ce9fbe92be7e31422d6ed73c8e2a 100644 GIT binary patch delta 678 zcmZ2(x4??m&pB8j%uvt3iGe{@VI!{_8n~T{#GBWY{ZcgJUXJq2?n|z;h z9uxQV&GlUS7@7F*0+mQlj^f$M#Ib0zAny+rCWiZyxrJnn7!EKo%P|1KUulN_|NsAi z@EDEdL1M-r8OBT|Ru*Ou7tE`j94{p?xkyOah?x}r4}R>r3RL! z7F7cI9Dd<`5%Ix+K0pNxOhBT4@&|F*da$-1P;E$NG=j|FgPM^NTvC*omyTfy*pWXJ zK)OX-D^in7OHyGva9hj32y!XVN|5gQ|9@mbo?!zUA{3OGm{J*%52E~1D@ua$%Q5T( zxg5m^6cf1dX;olA_n`3PWKm&JY<5fnhK}510kIsWU+*W^iAgCO0>{A@IiREe{XoP4 z&?`Kw3=A(BfiWyP`K*{IAg;&s&wp}(xUtZmdtf8nn3zG) z`v3pmq{&;wBPR1pNC;xMU~;HLKgW+{;5g=*%qS?nnOU-jQBw<%EdKxhbq8#o9>}cU TLdZ_~tv30ixbWuFQZXz5=di*f delta 1066 zcmZ2rwcL)^&pB8j%uvt3iGe|0eIu_M8n~T{#GBWX-ZcgJUXJq0rn|wh; zbTU6@&g29xStj0lo9nsuF)|500Vgfd%CR!=1Qewf zBo?IxmZla}0&No3{=vWkQqADS%m^}-fd#0F!!O(~B0f0K2P~5Uv58^9AJls(!6ikRdFdbz z)&otK0|l5W%yO`&^ssvusLl}LdYJu4>InGT9PV#$P>Z-$q$Zb^@TJ1s1POCSL2+M{ z5dQ!F-&#-z1L>EHpf~_J7-G3BC|-CV&QV|h8!8l(nwU}{#y z(GzN7D?t;v(TtKtGwSafgaanu6Bb7#8lZzGA%zZ7qWS;-?^GsMa5!sBZWK@g#Wr#z zV#c8k`0qji|8{pO#UsR z!xjul_yL@vlbu9G8I>nTi0U!@{XDrt)L7`(H?R?IOw14?|16$-Ry0Bi5@Rl@#U(}g zl^78wjus}rK0#bH*-xyW>D&Cx_r+E+YH}mH^p^tI8an~T{#GBWY{ZcgJUXJq2?n|z;h z9uxQV&GlUS7@7F*0+mQlj^f$M#Ib0zAny+rCWiZyxrJnn7!EKo%P|1KUulN_|NsAi z@EDEdL1M-r8OBT|Ru*Ou7tE`j94{p?xkyOah?x}r4}R>r3RL! z7F7cI9Dd<`5%Ix+K0pNxOhBT4@&|F*da$-1P;E$NG=j|FgPM^NTvC*omyTfy*pWXJ zK)OX-D^in7OHyGva9hj32y!XVN|5gQ|9@mbo?!zUA{3OGm{J*%52E~1D@ua$%Q5T( zxg5m^6cf1dX;olA_n`3PWKm&JY<5fnhK}510kIsWU+*W^iAgCO0>{A@IiREe{XoP4 z&?`Kw3=A(BfiWyP`K*{IAg;&s&wp}(xUtZmdtf8nn3zG) z`v3pmq{&;wBPR1pNC;xMU~;HLKgW+{;5g=*%qS?nnOU-jQBw<%EdKxhbq8#o9>}cU TLdZ_~tv30ixbWuFQZXz5=di*f delta 1066 zcmZ2rwcL)^&pB8j%uvt3iGe|0eIu_M8n~T{#GBWX-ZcgJUXJq0rn|wh; zbTU6@&g29xStj0lo9nsuF)|500Vgfd%CR!=1Qewf zBo?IxmZla}0&No3{=vWkQqADS%m^}-fd#0F!!O(~B0f0K2P~5Uv58^9AJls(!6ikRdFdbz z)&otK0|l5W%yO`&^ssvusLl}LdYJu4>InGT9PV#$P>Z-$q$Zb^@TJ1s1POCSL2+M{ z5dQ!F-&#-z1L>EHpf~_J7-G3BC|-CV&QV|h8!8l(nwU}{#y z(GzN7D?t;v(TtKtGwSafgaanu6Bb7#8lZzGA%zZ7qWS;-?^GsMa5!sBZWK@g#Wr#z zV#c8k`0qji|8{pO#UsR z!xjul_yL@vlbu9G8I>nTi0U!@{XDrt)L7`(H?R?IOw14?|16$-Ry0Bi5@Rl@#U(}g zl^78wjus}rK0#bH*-xyW>D&Cx_r+E+YH}mH^p^tI8an~T{#GBWY{ZcgJUXJq2?n|z;h z9uxQV&GlUS7@7F*0+mQlj^f$M#Ib0zAny+rCWiZyxrJnn7!EKo%P|1KUulN_|NsAi z@EDEdL1M-r8OBT|Ru*Ou7tE`j94{p?xkyOah?x}r4}R>r3RL! z7F7cI9Dd<`5%Ix+K0pNxOhBT4@&|F*da$-1P;E$NG=j|FgPM^NTvC*omyTfy*pWXJ zK)OX-D^in7OHyGva9hj32y!XVN|5gQ|9@mbo?!zUA{3OGm{J*%52E~1D@ua$%Q5T( zxg5m^6cf1dX;olA_n`3PWKm&JY<5fnhK}510kIsWU+*W^iAgCO0>{A@IiREe{XoP4 z&?`Kw3=A(BfiWyP`K*{IAg;&s&wp}(xUtZmdtf8nn3zG) z`v3pmq{&;wBPR1pNC;xMU~;HLKgW+{;5g=*%qS?nnOU-jQBw<%EdKxhbq8#o9>}cU TLdZ_~tv30ixbWuFQZXz5=di*f delta 1066 zcmZ2rwcL)^&pB8j%uvt3iGe|0eIu_M8n~T{#GBWX-ZcgJUXJq0rn|wh; zbTU6@&g29xStj0lo9nsuF)|500Vgfd%CR!=1Qewf zBo?IxmZla}0&No3{=vWkQqADS%m^}-fd#0F!!O(~B0f0K2P~5Uv58^9AJls(!6ikRdFdbz z)&otK0|l5W%yO`&^ssvusLl}LdYJu4>InGT9PV#$P>Z-$q$Zb^@TJ1s1POCSL2+M{ z5dQ!F-&#-z1L>EHpf~_J7-G3BC|-CV&QV|h8!8l(nwU}{#y z(GzN7D?t;v(TtKtGwSafgaanu6Bb7#8lZzGA%zZ7qWS;-?^GsMa5!sBZWK@g#Wr#z zV#c8k`0qji|8{pO#UsR z!xjul_yL@vlbu9G8I>nTi0U!@{XDrt)L7`(H?R?IOw14?|16$-Ry0Bi5@Rl@#U(}g zl^78wjus}rK0#bH*-xyW>D&Cx_r+E+YH}mH^p^tI8a`VT_r3rvU^qJRUe z@C5@0Sm6g*pnVKHVD=9M1}0XZ>FmiFnaSCylOIY=WO`aOxkOr<@%Q8f((;VACm#Tk zyC*-8mScK7dyCzcNUc>fF0?QSdyqvl3HA%2bON0oGi12 z@x^2b*)*odX_FgdW0~G7PQEYe!gy!0irfsQcTSV{$ysu|V}}?#Sx_N;a+*9p(+ic! r+zJVkugl9bUYPt{eg@O~$&)84)G&QW22vT5%N2z=w}G{MQD6W7{u_h| delta 543 zcmezFIN6!k&pB8j%uvt3iGe|J@IQ>0$_DVg}Qb7#aWn|Nn)7MVbLf|AC6u zfJHyRM42IKIKZM$7&yRc-^hZ@;Q_P1C@=u6;00OX>Z<7Ihd1DlLd1QGf z4E?YEPfn3G6gEO~F$2ilCv1~fNXs%kem?oQ^cF^+$u%-*Opi`YZeWy|BR+6)1dYe5tR<4HWdB@~@`Gm>V^74!(lcVKlaJ>5tHv7ZmhjLMq a&&#t;j#3ckcz+yC@P>jIrxaKW81?`i@x<@| diff --git a/_module/ncs/at_002.ncs b/_module/ncs/at_002.ncs index b3d755d568a22d32332c3c50de56ea6b155780f8..9adca0b92d3895a54ccab6b5333692d0db6dc433 100644 GIT binary patch delta 3714 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 Jvg0TJe*-sD$(#TH diff --git a/_module/ncs/awda.ncs b/_module/ncs/awda.ncs index 6ee1d7e6bad1b035bb990cac96c26b17e182ce29..2af891ee8a82a0e735780bffbdefbf9976dd3192 100644 GIT binary patch delta 64 zcmbQiG>?hb&pB8j%uvt3iGhJpZX&NOS=c}n3p0phWnkcB Int0V20CV&SVE_OC delta 58 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 Jvg0TJe*-sD$(#TH diff --git a/_module/ncs/charlmerchantatt.ncs b/_module/ncs/charlmerchantatt.ncs index b3d755d568a22d32332c3c50de56ea6b155780f8..9adca0b92d3895a54ccab6b5333692d0db6dc433 100644 GIT binary patch delta 3714 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 Jvg0TJe*-sD$(#TH diff --git a/_module/ncs/charnpcattack.ncs b/_module/ncs/charnpcattack.ncs index b3d755d568a22d32332c3c50de56ea6b155780f8..9adca0b92d3895a54ccab6b5333692d0db6dc433 100644 GIT binary patch delta 3714 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 Jvg0TJe*-sD$(#TH diff --git a/_module/ncs/chat_commands.ncs b/_module/ncs/chat_commands.ncs index 2c2b092aba75c38e242bb242f7f5c3c0514dbf7e..bfbb1e66f8b26214d935e79c96208a0d2a1a505e 100644 GIT binary patch delta 1919 zcmaJ?drVVT7{BMEEhsG%%Bx5b8Hz+6A{)x1V1W??snC{}(82{S+7((;tB%c0adX*{ zWh&nuZrOApaoIyQ*`3j3*~>qcZEcTeBDOr|dqowd@Q)|{Wax)M3|eKn_)S{75IuK8OL%{@mtLS(?dA|s8wn~ zlh@Pl6Fp&s=1mH!RGL}jqdISqcQGd-nY_+UmU|;^02CcWXJi8umEk)S)=eVOQg{jN z3~KP0wh`7|$D0gBuuex|6CTmopzs!6(=~y)4>v?nh{jhbl%B>L3`Dd>Q&^10D3r)J z6Wt8!2hgFX5Rb?8tx*0xYGPba@eKCGbU{Tneiq{d%a@oL+W{6I?vL#ROBDW0+4>V$ zWuRcg5enr~!*Nb1e-1n2Tu^==eiYXMW#edy-wb6B<6t~xCLE7gRTTeTzqF+55ieOY}7^uS7suqMrAb*1lC=~UHQ$hZbm+rUqNZQY$(VGgN(1SsBrh5tnuKqA&gCNrC}*u z;R^q~fzFyA!I@KGgtJWw1I{c83u+W7jQe8ca)qgRW+HV@Ue3Y?cNgho%i5y=`KRO` zie?t=nQwqvPz@1It_pOM>hU0%3MDr~$&5m1vfeIvdt0RL8lTTo<8UI{oH8|=>B0d~#$-zGzF7gN3nzoZHwgV@crb!vqzn3hc z8|>tylAj3Io|H#hl8I$;sI|hYnYDyV%m(4R6;lYD9i$$=c;||F`NM{S z1Ncd$$-Gd}yp4kzL(E`Nibk(J;CFks+@XS*U1Dvp2}6w~40OYBw}wtzB0l2;TK0nm0)U9tci6cXlX<9Kiymo*>ne(65XO)+Y&q zU@FHEWdbSWr{5~yhe8qCRjb2`qLv8r^Ye4eCf|%lRS6`U+gw+@ljL6`fHFuas50Ao zyzXuVp_ccBprzE-*h#HUl2f=QB!P_4?}=hZ$TUFyHFSpAApanqVPYK;wGE87(ayvW zo>13-(TFotkHoa1J-dxuEbcz8BX9 zg+`o>YlebbSRdaC1^e-Qyb}tRqE_bs^Ck4@Twr$LRh<*e0%q%5!E_7{>07{L#fSPg z^c^yPX6P5Pe6owg@pn3MQ0-5K6?$37=>o{Q>UFY=t~C{*YM) zrX6D1x+Vf94erls0Mjb*dR7U6{2Ec8vrGZYW3g!CzQI+~Ql~+|`nU4yWcmqH?0ZHy z?J`fnwJcd9TuYNR;99J#@faDwvc@N3<*ckJndQn~=-gzkdHF(fZn#*UI|`69BTgCT zLI7{U$#<$h9Z3=I7dstZn1koDf7a zsH+>Rn_O}V229u|(XeEY&Ha6Y5MUh3jLXVWEF~5F*(psaucz4R?d3r#>P0B~xeCek z|M(bR_)svK!1#kH3!t@W^chLfrtt$>6F*RBqmOK*)`{Y-8WW*6=IL4!c}lHo;mH^^%|@?XM|R_n)cvTv zpG>2+u8(B$_#f8Il2RIfJ&B+WcJhU69}kb;mK}6>q~TZdU5OECUxUxHeHCspW`m!} znjqPbC3O4&ei8uc_ou98y9d9UnPT*+roZ+#G2$x7c1RW)2Yc(?s`Q0?50r z;@c7~XYa84eVx7Ac}96%CQk&SnQUJSO~~XqDJ%}P8d4Xtn%u=OQxpYg>`LAcUF&go z4AgmX{^YKEKC22gCk@%fuB45ic=@Ih4Bn?uuSZyT7yFvyhA5hx79j z(zPJnhkxUF;w|8pwUEyFqj&2P0snO9a$m{#hJR%ohh1luWbv_B%a?lK(S7tj;4P&hPc^Asq|-FJk_?wDbZP s+u7&$x&58qUKV^@Esw)U_cFNt8eX)diZ{9=N#wPQ{J|6cN$;?~0DSo!(EtDd diff --git a/_module/ncs/chd_on_conver.ncs b/_module/ncs/chd_on_conver.ncs index b348d5e3615e75193ee18acb9bc8dcca1c48239c..cf539173d026bdcdaa886edb87c726c592a8280b 100644 GIT binary patch delta 49 zcmX@lbd`zM&pB8j%uvt3iGhJJbRw@a6C>lqAOj&C7B&VTU||N4tPBjCOcVPK0s!-a B2yOrX delta 43 xcmcc0be@UV&pB8j%uvt3iGhL9e*%l2~Yq4 diff --git a/_module/ncs/chd_on_spawn.ncs b/_module/ncs/chd_on_spawn.ncs index 3bec434c5e73f74c7916262ba90ce8d119ddfa7f..58ce7b89839fed375d020af118729c8d41c43512 100644 GIT binary patch delta 296 zcmX@Liu2kkPF_FfV1+P4Jp(5OrqHm7yittLHfC&K5yt1s7G|IzBUmOj|NmfMVP#;DVFVIfOp_Z}Eg5%B z-o+}3%=nL2&PNrrP P(RLG2#_cAeOkxfI``I)y delta 293 zcmcb%iu2SePF_FfV1+P4Jp(5Orckemyits|HfC&K5nvL^Ef z>%%ZH7G|IzBUmO_iCG?`tP0HQh3J9EBUEu|P7Yy7Wo(|@$Rlk55$09^X=BX8(7*&T zh_eZ-iUCZTfJ6ioCiAieDC_G8068F_A`2p=m>K{7|Nn=9g_VIph7m|`F-~q{wPZXn z`2edtquAsJtlf-VKr(ytbv6qY#%G%axC2=jr)*B*U&hS%b~C523KK8bh#z1hI2oHA QMB5!i8Mix#GKo0=03i!ABme*a diff --git a/_module/ncs/chr_update_all.ncs b/_module/ncs/chr_update_all.ncs index 7eeb374c8042036697f9b11a0f5df709faee033a..48fdbd15be075a932d5cd65d4abd66387a2ef785 100644 GIT binary patch delta 856 zcmaDKaNLL2&pB8j%uvt3iGe}QeIxI3MlSZb(hUFq|Nq0pJlT*%bn<1!r%YVhn|Cqg zGBR=Qn5@ZS&ZMBRIf>;g6BEPz$%gE*Mhpj-nB^FN;4e%gh{tFw4-zv5voo1kS(rgw zFt2uU1G}{mGb6|r1{PKZmKH`J$rDhNT98_Q|4An)8{ z3pstpd6P5bwAtSj0!?_qIC-JC=;ZZsBJ6J*A^eGAqLc5-i7>qpocvYJSm@OPuxV~g z%%Ft#|Nm>1$yV|ann34^xTF@B6y;aKJcT_{C*P9qXL^>gIa^^Rqox+JJ73HLo2&;i j^~DurcfNSB*;a|4P5E9c+>`(Re|rMa3?@H7*a{2)Xm<_( delta 1232 zcmah|OH30%7@nEk7TN-lc54+%X=yYiB*lWJF(!nkT5W2fK1#%t3LC>gYHC4x5jhZ} z!9yL4#*^`)2R)dLi7{MAd>o8kO!VTxgF=-CJv53~TxVvtr6m$CJ3BM~e2@Q|dFlTa ztPFI8?8iOsU7Y~9Vvj2CLA`Fe7Ra)kLmc+-X8aa@MislIr|2w1hI!n`dr?DBI?caE z2uj#fR@VY&5oZGcpq=@HY<97ptbtbc{|;$*j!x-})8R{H`;25s11f@X@mw@6_Ku11 zWNOOPv;ufq0}gSJiU2$*Di53pgd?F|Kie5r*uWk9K-(}`RA#1SJw1+&PTzQoBkbsR z1doLd@>+rhH30186nS<)AS+9183|5ArK7f z2Err30$(e_DWl1vwFBm~N_9FMO2kJ-&k(PZguq5yy(7=h{JD!P6*(t$9>qXjLQ&m+ zta}UAnG~UCLL3@P;QsQe)Rd*Zq`|WM=OJw{8NWapK^A-Jg&Ng_u}_Q+Cy&PH5D+I4 zeX$GwLhz{w)9VN(6~Rz?v}FVNS|%S7Q);5s-O)tUH`+0j7#SBCp?XV*#Op;pDCyPO z4Wwb+bkSQvW2I?r9@ZWf7Su|IbtZ^@C-I=Z4dn)KN@vE8^_NjDEVUUTu$rkdp9Bu>ebD({ko=jl-^f-a1)KC!g(-i7;YOK?($aEpSbw0!9Wdv#eFV8%w&s;`dBdU3P089H#p z+Ju&}c*g2ROV98e9cFRH+G)OvE;>hM(d`M)7y(Br~TNYGf6IcPUHM=s^D3c Ne>_(J*!O#$@h?#njAj4; diff --git a/_module/ncs/cnr_at_b_craft.ncs b/_module/ncs/cnr_at_b_craft.ncs index 9314c3749f2af23bf5313a0d643b6adae8f9937d..0330ceb3f0385a440a82f0afd12b4aed70e41230 100644 GIT binary patch delta 749 zcmaF6jj?qzBd?!xutJ!jo`DksLuBhl-fKckau+8%I!I3bCuGg2Fj>%EWV4^}dqyVp zN0aSECo?$wbl{Qv*|4}`~P zEDsVh2FWmHGO@BSgScQ`?PNZ6Yhz|ckYWZFRtA<9Mj*)(P?TDbSdOh+r>c%TxXEO$_9Vv1jCMM+S8 zIfh~d26X2OgOs}@mLz)SIVP86mZf6T2DD=mC@5qnAJKAW`lmISS6jm9Upy$-|Ns9t z2N4NC-X(A(Xn9h^3JB~>T?wU=VL*9X>P;K0vxe=;zsOkjE-Kl!7(=;Rj;^O){uO`a$s zxp|@EM-HZ2v6D9n3vXWTrOVHBdiCUMk(o^AzD;(Fk}x{24U0x_x?luZd|n(yj0r5p N4Dr@^hsoVhj{x&_>Vg0O delta 1081 zcmah|T}V@582-NRY;!|hwR5IPs5=hlq#Djp2~n9p;B3sFWiGmqp@;AyjWK_^NeYAr zBJ@q_DuSRJ36cYWS1MfPA#TxbSR9Td;v=KCnaOENP{w9enc?Tge5YHcIKOTnBOwd-AL|V#*0~m` zV@eqsPr!DS9k8dQG;6S$cKntNmVS3I8+{4_5y`|%fb1hLt-6ZL3Ni<(Y3Xaavvg8N7(VOxL3{a#o>1k+K~sS%>R5HJ zmFz8nzquGj9ah_}zTo|C^{0O>pKQ_@(!X)GsgrCC!q=wjWa|yZdPs7C7uataZ=NLI z8sJ^6bFSqjNj`*GsYG3B`DGQ3R>nTrVB&$i(G2 z`9@4X6W;=m?B<%-sf{$$={StEu6Ow4i&K=4ziYA44eTN^Vof)q2burjc;Fak-QfTGlb#G=%| z($u0#AfLl8+%F2OuVoGI5K8W&5ttbh~ zFUPPD;&#I_VIznhZhVRr7*PB(IWbLK44a9QV4=Y`SuEYz=bsiN@L?eX3-15_|HXqM y1W3<8L=TX62^>8dAesLhi0A?GWHv8N59DBazi@Jar1)h10)D0s=9?7?47mXhFvQaU delta 959 zcmaF)iSgn$MqWSXV1+P4Jp(5OhU&nLyxAg5(M6LNmWxj|mKL2HE+sK}p9nis%<9R8 zal(_krLIn1FUrmoy$h&9Y;wJ{#^!IL#w<*s2a$BhGll(vs=mV%#tBlnxn4Tlk%`A} z@{O2&CV>u+?B<%-sfvO(*O*vYm_b|+kC}6FOtQ5QP>7X*C!i>`Ah9Slur#%(5@eb7 z4+a*HA_gyJMv!3)EI?Hpe&K!*@xg&UV3`z%1q=%&8z?E&BPkOFDRXsIbae78Gg6FD zj8qH=4fbGR1DeLj%D`aB3~`?V1JFob6t!SOfHsRL1Em-hMU=q;U!Vf4iq4KcJ|fCM zGxQk2X8Zt~Ap$f*2F*hM0Jwd|Op_m$3X8KTFo3*YWJrV6ti z>^nUq4Zx8nf1Dsz z!r}myO#lD?>kaYA-@6bMP=A?%leGpoRC*D~8tA|SoA;&$axlH!Iawf2jp?2LQ3R>nTrVB&$i(G2 z`9@4X6W;=m?B<%-sf{$$={StEu6Ow4i&K=4ziYA44eTN^Vof)q2burjc;Fak-QfTGlb#G=%| z($u0#AfLl8+%F2OuVoGI5K8W&5ttbh~ zFUPPD;&#I_VIznhZhVRr7*PB(IWbLK44a9QV4=Y`SuEYz=bsiN@L?eX3-15_|HXqM y1W3<8L=TX62^>8dAesLhi0A?GWHv8N59DBazi@Jar1)h10)D0s=9?7?47mXhFvQaU delta 959 zcmaF)iSgn$MqWSXV1+P4Jp(5OhU&nLyxAg5(M6LNmWxj|mKL2HE+sK}p9nis%<9R8 zal(_krLIn1FUrmoy$h&9Y;wJ{#^!IL#w<*s2a$BhGll(vs=mV%#tBlnxn4Tlk%`A} z@{O2&CV>u+?B<%-sfvO(*O*vYm_b|+kC}6FOtQ5QP>7X*C!i>`Ah9Slur#%(5@eb7 z4+a*HA_gyJMv!3)EI?Hpe&K!*@xg&UV3`z%1q=%&8z?E&BPkOFDRXsIbae78Gg6FD zj8qH=4fbGR1DeLj%D`aB3~`?V1JFob6t!SOfHsRL1Em-hMU=q;U!Vf4iq4KcJ|fCM zGxQk2X8Zt~Ap$f*2F*hM0Jwd|Op_m$3X8KTFo3*YWJrV6ti z>^nUq4Zx8nf1Dsz z!r}myO#lD?>kaYA-@6bMP=A?%leGpoRC*D~8tA|SoA;&$axlH!Iawf2jp?2LQ3R>nTrVB&$i(G2 z`9@4X6W;=m?B<%-sf{$$={StEu6Ow4i&K=4ziYA44eTN^Vof)q2burjc;Fak-QfTGlb#G=%| z($u0#AfLl8+%F2OuVoGI5K8W&5ttbh~ zFUPPD;&#I_VIznhZhVRr7*PB(IWbLK44a9QV4=Y`SuEYz=bsiN@L?eX3-15_|HXqM y1W3<8L=TX62^>8dAesLhi0A?GWHv8N59DBazi@Jar1)h10)D0s=9?7?47mXhFvQaU delta 959 zcmaF)iSgn$MqWSXV1+P4Jp(5OhU&nLyxAg5(M6LNmWxj|mKL2HE+sK}p9nis%<9R8 zal(_krLIn1FUrmoy$h&9Y;wJ{#^!IL#w<*s2a$BhGll(vs=mV%#tBlnxn4Tlk%`A} z@{O2&CV>u+?B<%-sfvO(*O*vYm_b|+kC}6FOtQ5QP>7X*C!i>`Ah9Slur#%(5@eb7 z4+a*HA_gyJMv!3)EI?Hpe&K!*@xg&UV3`z%1q=%&8z?E&BPkOFDRXsIbae78Gg6FD zj8qH=4fbGR1DeLj%D`aB3~`?V1JFob6t!SOfHsRL1Em-hMU=q;U!Vf4iq4KcJ|fCM zGxQk2X8Zt~Ap$f*2F*hM0Jwd|Op_m$3X8KTFo3*YWJrV6ti z>^nUq4Zx8nf1Dsz z!r}myO#lD?>kaYA-@6bMP=A?%leGpoRC*D~8tA|SoA;&$axlH!Iawf2jp?2LQ3R>nTrVB&$i(G2 z`9@4X6W;=m?B<%-sf{$$={StEu6Ow4i&K=4ziYA44eTN^Vof)q2burjc;Fak-QfTGlb#G=%| z($u0#AfLl8+%F2OuVoGI5K8W&5ttbh~ zFUPPD;&#I_VIznhZhVRr7*PB(IWbLK44a9QV4=Y`SuEYz=bsiN@L?eX3-15_|HXqM y1W3<8L=TX62^>8dAesLhi0A?GWHv8N59DBazi@Jar1)h10)D0s=9?7?47mXhFvQaU delta 959 zcmaF)iSgn$MqWSXV1+P4Jp(5OhU&nLyxAg5(M6LNmWxj|mKL2HE+sK}p9nis%<9R8 zal(_krLIn1FUrmoy$h&9Y;wJ{#^!IL#w<*s2a$BhGll(vs=mV%#tBlnxn4Tlk%`A} z@{O2&CV>u+?B<%-sfvO(*O*vYm_b|+kC}6FOtQ5QP>7X*C!i>`Ah9Slur#%(5@eb7 z4+a*HA_gyJMv!3)EI?Hpe&K!*@xg&UV3`z%1q=%&8z?E&BPkOFDRXsIbae78Gg6FD zj8qH=4fbGR1DeLj%D`aB3~`?V1JFob6t!SOfHsRL1Em-hMU=q;U!Vf4iq4KcJ|fCM zGxQk2X8Zt~Ap$f*2F*hM0Jwd|Op_m$3X8KTFo3*YWJrV6ti z>^nUq4Zx8nf1Dsz z!r}myO#lD?>kaYA-@6bMP=A?%leGpoRC*D~8tA|SoA;&$axlH!Iawf2jp?2LQ3R>nTrVB&$i(G2 z`9@4X6W;=m?B<%-sf{$$={StEu6Ow4i&K=4ziYA44eTN^Vof)q2burjc;Fak-QfTGlb#G=%| z($u0#AfLl8+%F2OuVoGI5K8W&5ttbh~ zFUPPD;&#I_VIznhZhVRr7*PB(IWbLK44a9QV4=Y`SuEYz=bsiN@L?eX3-15_|HXqM y1W3<8L=TX62^>8dAesLhi0A?GWHv8N59DBazi@Jar1)h10)D0s=9?7?47mXhFvQaU delta 959 zcmaF)iSgn$MqWSXV1+P4Jp(5OhU&nLyxAg5(M6LNmWxj|mKL2HE+sK}p9nis%<9R8 zal(_krLIn1FUrmoy$h&9Y;wJ{#^!IL#w<*s2a$BhGll(vs=mV%#tBlnxn4Tlk%`A} z@{O2&CV>u+?B<%-sfvO(*O*vYm_b|+kC}6FOtQ5QP>7X*C!i>`Ah9Slur#%(5@eb7 z4+a*HA_gyJMv!3)EI?Hpe&K!*@xg&UV3`z%1q=%&8z?E&BPkOFDRXsIbae78Gg6FD zj8qH=4fbGR1DeLj%D`aB3~`?V1JFob6t!SOfHsRL1Em-hMU=q;U!Vf4iq4KcJ|fCM zGxQk2X8Zt~Ap$f*2F*hM0Jwd|Op_m$3X8KTFo3*YWJrV6ti z>^nUq4Zx8nf1Dsz z!r}myO#lD?>kaYA-@6bMP=A?%leGpoRC*D~8tA|SoA;&$axlH!Iawf2jp?2LQ3R>nTrVB&$i(G2 z`9@4X6W;=m?B<%-sf{$$={StEu6Ow4i&K=4ziYA44eTN^Vof)q2burjc;Fak-QfTGlb#G=%| z($u0#AfLl8+%F2OuVoGI5K8W&5ttbh~ zFUPPD;&#I_VIznhZhVRr7*PB(IWbLK44a9QV4=Y`SuEYz=bsiN@L?eX3-15_|HXqM y1W3<8L=TX62^>8dAesLhi0A?GWHv8N59DBazi@Jar1)h10)D0s=9?7?47mXhFvQaU delta 959 zcmaF)iSgn$MqWSXV1+P4Jp(5OhU&nLyxAg5(M6LNmWxj|mKL2HE+sK}p9nis%<9R8 zal(_krLIn1FUrmoy$h&9Y;wJ{#^!IL#w<*s2a$BhGll(vs=mV%#tBlnxn4Tlk%`A} z@{O2&CV>u+?B<%-sfvO(*O*vYm_b|+kC}6FOtQ5QP>7X*C!i>`Ah9Slur#%(5@eb7 z4+a*HA_gyJMv!3)EI?Hpe&K!*@xg&UV3`z%1q=%&8z?E&BPkOFDRXsIbae78Gg6FD zj8qH=4fbGR1DeLj%D`aB3~`?V1JFob6t!SOfHsRL1Em-hMU=q;U!Vf4iq4KcJ|fCM zGxQk2X8Zt~Ap$f*2F*hM0Jwd|Op_m$3X8KTFo3*YWJrV6ti z>^nUq4Zx8nf1Dsz z!r}myO#lD?>kaYA-@6bMP=A?%leGpoRC*D~8tA|SoA;&$axlH!Iawf2jp?2L7P6 zX@5Ybv9vG(NuGeB)PlsK)WFizqDmm2!!O(~B0f0K2dJQd2}txaOwQw%aYeWSs1M1I zMvx(VP(xCJONuh{(lLwyyYPns!{j;%iFyoKuqBL8UqU=13-Sb;0?3&{L8*x;l_B{c z$}hE|Bq+a}L=(7Cw0fg?Q2`RbkRSp3Mi`{tC9x#YGtV)(B(p3Phn15+AtO8afEdeU zJ1J+Me_9Z?!$Jxc^#A|=iw8vxke-8xDj@F?II1*2GXFUcQ3d45Y(6U$%ElhYH z-XN+}kEBc#q|DV-(b37X%t$dpF;X!gG}wcM4QLu8&x5Ni}b{^3PY3$s~787Rf5 zD54A&_`<*f7GPC$cJ%QPQ3jf!#|Sp#2iOb|pc&$57WxN3?3;X0Pd zTq{zOOG{E=E(Ax-WIhow1=O(r|Nq}wP}l?MmtgmQnY>X%L<;Ibp`g^nl**8N5apLz zQ4*A2j@=ATs2QyYGlZdLaHDCiM|Z&AH?TMayIdHg-X*al(KF96xg@hJ6=*4zkOih- zu&XB_g%L_v{+-Ii3Jz@zuhWPvMU5E;3D42pXjRx3#y+BWa^BtIXVDnRnP)4S2uP56`W%~Rw lLoyhYE#L}&+oM6xRA2xA diff --git a/_module/ncs/cnr_at_j_sel_10.ncs b/_module/ncs/cnr_at_j_sel_10.ncs index 169792e9dd3752d282a730152492d7a1d8b97510..9504d95b243136b3c7a7329dc509914c2041054a 100644 GIT binary patch delta 621 zcmbPkwcd=^&pB8j%uvt3iGe{{e7P6 zX@5Ybv9vG(NuGeB)PlsK)WFizqDmm2!!O(~B0f0K2dJQd2}txaOwQw%aYeWSs1M1I zMvx(VP(xCJONuh{(lLwyyYPns!{j;%iFyoKuqBL8UqU=13-Sb;0?3&{L8*x;l_B{c z$}hE|Bq+a}L=(7Cw0fg?Q2`RbkRSp3Mi`{tC9x#YGtV)(B(p3Phn15+AtO8afEdeU zJ1J+Me_9Z?!$Jxc^#A|=iw8vxke-8xDj@F?II1*2GXFUcQ3d45Y(6U$%ElhYH z-XN+}kEBc#q|DV-(b37X%t$dpF;X!gG}wcM4QLu8&x5Ni}b{^3PY3$s~787Rf5 zD54A&_`<*f7GPC$cJ%QPQ3jf!#|Sp#2iOb|pc&$57WxN3?3;X0Pd zTq{zOOG{E=E(Ax-WIhow1=O(r|Nq}wP}l?MmtgmQnY>X%L<;Ibp`g^nl**8N5apLz zQ4*A2j@=ATs2QyYGlZdLaHDCiM|Z&AH?TMayIdHg-X*al(KF96xg@hJ6=*4zkOih- zu&XB_g%L_v{+-Ii3Jz@zuhWPvMU5E;3D42pXjRx3#y+BWa^BtIXVDnRnP)4S2uP56`W%~Rw lLoyhYE#L}&+oM6xRA2xA diff --git a/_module/ncs/cnr_at_j_sel_2.ncs b/_module/ncs/cnr_at_j_sel_2.ncs index 7bd4dfd56cd9dd1a8283c6df50134f606ae5cdab..7323a2e8abeb9e38accb4577f546eaa9f57de758 100644 GIT binary patch delta 621 zcmbPkwcd=^&pB8j%uvt3iGe{{e7P6 zX@5Ybv9vG(NuGeB)PlsK)WFizqDmm2!!O(~B0f0K2dJQd2}txaOwQw%aYeWSs1M1I zMvx(VP(xCJONuh{(lLwyyYPns!{j;%iFyoKuqBL8UqU=13-Sb;0?3&{L8*x;l_B{c z$}hE|Bq+a}L=(7Cw0fg?Q2`RbkRSp3Mi`{tC9x#YGtV)(B(p3Phn15+AtO8afEdeU zJ1J+Me_9Z?!$Jxc^#A|=iw8vxke-8xDj@F?II1*2GXFUcQ3d45Y(6U$%ElhYH z-XN+}kEBc#q|DV-(b37X%t$dpF;X!gG}wcM4QLu8&x5Ni}b{^3PY3$s~787Rf5 zD54A&_`<*f7GPC$cJ%QPQ3jf!#|Sp#2iOb|pc&$57WxN3?3;X0Pd zTq{zOOG{E=E(Ax-WIhow1=O(r|Nq}wP}l?MmtgmQnY>X%L<;Ibp`g^nl**8N5apLz zQ4*A2j@=ATs2QyYGlZdLaHDCiM|Z&AH?TMayIdHg-X*al(KF96xg@hJ6=*4zkOih- zu&XB_g%L_v{+-Ii3Jz@zuhWPvMU5E;3D42pXjRx3#y+BWa^BtIXVDnRnP)4S2uP56`W%~Rw lLoyhYE#L}&+oM6xRA2xA diff --git a/_module/ncs/cnr_at_j_sel_3.ncs b/_module/ncs/cnr_at_j_sel_3.ncs index d51bfd189cdaa49d101d10fdafeada535b4a30b5..4c2846880263942dcee3a44204b06c3015b13748 100644 GIT binary patch delta 621 zcmbPkwcd=^&pB8j%uvt3iGe{{e7P6 zX@5Ybv9vG(NuGeB)PlsK)WFizqDmm2!!O(~B0f0K2dJQd2}txaOwQw%aYeWSs1M1I zMvx(VP(xCJONuh{(lLwyyYPns!{j;%iFyoKuqBL8UqU=13-Sb;0?3&{L8*x;l_B{c z$}hE|Bq+a}L=(7Cw0fg?Q2`RbkRSp3Mi`{tC9x#YGtV)(B(p3Phn15+AtO8afEdeU zJ1J+Me_9Z?!$Jxc^#A|=iw8vxke-8xDj@F?II1*2GXFUcQ3d45Y(6U$%ElhYH z-XN+}kEBc#q|DV-(b37X%t$dpF;X!gG}wcM4QLu8&x5Ni}b{^3PY3$s~787Rf5 zD54A&_`<*f7GPC$cJ%QPQ3jf!#|Sp#2iOb|pc&$57WxN3?3;X0Pd zTq{zOOG{E=E(Ax-WIhow1=O(r|Nq}wP}l?MmtgmQnY>X%L<;Ibp`g^nl**8N5apLz zQ4*A2j@=ATs2QyYGlZdLaHDCiM|Z&AH?TMayIdHg-X*al(KF96xg@hJ6=*4zkOih- zu&XB_g%L_v{+-Ii3Jz@zuhWPvMU5E;3D42pXjRx3#y+BWa^BtIXVDnRnP)4S2uP56`W%~Rw lLoyhYE#L}&+oM6xRA2xA diff --git a/_module/ncs/cnr_at_j_sel_4.ncs b/_module/ncs/cnr_at_j_sel_4.ncs index 87cd3f074fe8a9510c3bcb7c6307f9175824d867..43399b8d645328a58f377f9c30f69ff6f71cfd0f 100644 GIT binary patch delta 621 zcmbPkwcd=^&pB8j%uvt3iGe{{e7P6 zX@5Ybv9vG(NuGeB)PlsK)WFizqDmm2!!O(~B0f0K2dJQd2}txaOwQw%aYeWSs1M1I zMvx(VP(xCJONuh{(lLwyyYPns!{j;%iFyoKuqBL8UqU=13-Sb;0?3&{L8*x;l_B{c z$}hE|Bq+a}L=(7Cw0fg?Q2`RbkRSp3Mi`{tC9x#YGtV)(B(p3Phn15+AtO8afEdeU zJ1J+Me_9Z?!$Jxc^#A|=iw8vxke-8xDj@F?II1*2GXFUcQ3d45Y(6U$%ElhYH z-XN+}kEBc#q|DV-(b37X%t$dpF;X!gG}wcM4QLu8&x5Ni}b{^3PY3$s~787Rf5 zD54A&_`<*f7GPC$cJ%QPQ3jf!#|Sp#2iOb|pc&$57WxN3?3;X0Pd zTq{zOOG{E=E(Ax-WIhow1=O(r|Nq}wP}l?MmtgmQnY>X%L<;Ibp`g^nl**8N5apLz zQ4*A2j@=ATs2QyYGlZdLaHDCiM|Z&AH?TMayIdHg-X*al(KF96xg@hJ6=*4zkOih- zu&XB_g%L_v{+-Ii3Jz@zuhWPvMU5E;3D42pXjRx3#y+BWa^BtIXVDnRnP)4S2uP56`W%~Rw lLoyhYE#L}&+oM6xRA2xA diff --git a/_module/ncs/cnr_at_j_sel_5.ncs b/_module/ncs/cnr_at_j_sel_5.ncs index f65781a436ccdc6dcd5c546a2684ff44856e5647..197030309affa5421213296b79c2ee1decbbaaa9 100644 GIT binary patch delta 617 zcmeCRT587Y=NzmMW~gW2#K0h}x{+sk`i1} zl$n=~VGP)XKNLW^MO-UVlS@ldVLI^G%LsBR&`OZ*`u~4qK|Wyv8zK~xnwU}F>H2B0tJukWCJO8pMP4An1BTpEbRaP z{}&I69Uwgi5m!LoC2(A6fMou2AmR$hli7S&DwL7w$K}aVGMPSq0ssI2 delta 920 zcmZ2#)@#M<=NzmMW~gW2#K0iSyOFnCkco5k<~G4FMke;~&G&@7nVA?jPu3QbHDa8? z#4N|az`&#?&G7&K|36S(ojg#C!5A!ajfs_o8N>zgm^mj`iCGH)g;*JQ0*X=#5{ps; zOH+#~Cl`tcYyV(i0V!heVrB#x#=rtp#o-t37ZD#E=mVBXfmpz>VDdr{rFtY~q9A3i zu8NLMo@GXg5sHzD0inSjENnp27+Dz@ESVwhQ(yoZ$%~>EYzWY15oMqhqoRm1Sl|m( zfK}1i(Z@$b8EA$cBiM`|U^7I3W{9I%=pO*FZ}MIN32`R}>ZZ zMG5Ht|NpH81vHR;$q0%Hpo1Zn%YveZ2jU#42Ze%C6H_Wf@D%kcMpBtfzsx4jm69;}Z4ZlfaK2y!>HDpXBE|$36Ni}pd*$TkQg#5xu^x^9 diff --git a/_module/ncs/cnr_at_j_sel_6.ncs b/_module/ncs/cnr_at_j_sel_6.ncs index f24eddab8660fc8acc08c1f98e10dc92ec567f21..cfaf72d28ee6a7d4118e71dfd3627d5bdae28df0 100644 GIT binary patch delta 617 zcmeCRT587Y=NzmMW~gW2#K0h}x{+sk`i1} zl$n=~VGP)XKNLW^MO-UVlS@ldVLI^G%LsBR&`OZ*`u~4qK|Wyv8zK~xnwU}F>H2B0tJukWCJO8pMP4An1BTpEbRaP z{}&I69Uwgi5m!LoC2(A6fMou2AmR$hli7S&DwL7w$K}aVGMPSq0ssI2 delta 920 zcmZ2#)@#M<=NzmMW~gW2#K0iSyOFnCkco5k<~G4FMke;~&G&@7nVA?jPu3QbHDa8? z#4N|az`&#?&G7&K|36S(ojg#C!5A!ajfs_o8N>zgm^mj`iCGH)g;*JQ0*X=#5{ps; zOH+#~Cl`tcYyV(i0V!heVrB#x#=rtp#o-t37ZD#E=mVBXfmpz>VDdr{rFtY~q9A3i zu8NLMo@GXg5sHzD0inSjENnp27+Dz@ESVwhQ(yoZ$%~>EYzWY15oMqhqoRm1Sl|m( zfK}1i(Z@$b8EA$cBiM`|U^7I3W{9I%=pO*FZ}MIN32`R}>ZZ zMG5Ht|NpH81vHR;$q0%Hpo1Zn%YveZ2jU#42Ze%C6H_Wf@D%kcMpBtfzsx4jm69;}Z4ZlfaK2y!>HDpXBE|$36Ni}pd*$TkQg#5xu^x^9 diff --git a/_module/ncs/cnr_at_j_sel_7.ncs b/_module/ncs/cnr_at_j_sel_7.ncs index d4b58bc6e1e66ca7ece770a140d4798b7fee5b8c..1aa04b5f6a03c7f05fbe4aa23eedfd43fc571995 100644 GIT binary patch delta 621 zcmbPkwcd=^&pB8j%uvt3iGe{{e7P6 zX@5Ybv9vG(NuGeB)PlsK)WFizqDmm2!!O(~B0f0K2dJQd2}txaOwQw%aYeWSs1M1I zMvx(VP(xCJONuh{(lLwyyYPns!{j;%iFyoKuqBL8UqU=13-Sb;0?3&{L8*x;l_B{c z$}hE|Bq+a}L=(7Cw0fg?Q2`RbkRSp3Mi`{tC9x#YGtV)(B(p3Phn15+AtO8afEdeU zJ1J+Me_9Z?!$Jxc^#A|=iw8vxke-8xDj@F?II1*2GXFUcQ3d45Y(6U$%ElhYH z-XN+}kEBc#q|DV-(b37X%t$dpF;X!gG}wcM4QLu8&x5Ni}b{^3PY3$s~787Rf5 zD54A&_`<*f7GPC$cJ%QPQ3jf!#|Sp#2iOb|pc&$57WxN3?3;X0Pd zTq{zOOG{E=E(Ax-WIhow1=O(r|Nq}wP}l?MmtgmQnY>X%L<;Ibp`g^nl**8N5apLz zQ4*A2j@=ATs2QyYGlZdLaHDCiM|Z&AH?TMayIdHg-X*al(KF96xg@hJ6=*4zkOih- zu&XB_g%L_v{+-Ii3Jz@zuhWPvMU5E;3D42pXjRx3#y+BWa^BtIXVDnRnP)4S2uP56`W%~Rw lLoyhYE#L}&+oM6xRA2xA diff --git a/_module/ncs/cnr_at_j_sel_8.ncs b/_module/ncs/cnr_at_j_sel_8.ncs index 1e498b71cc8fcd2449d23597830e8174331f5ff2..61b67f44edf9ee8d54995674f25a5f1b3ee531b3 100644 GIT binary patch delta 621 zcmbPkwcd=^&pB8j%uvt3iGe{{e7P6 zX@5Ybv9vG(NuGeB)PlsK)WFizqDmm2!!O(~B0f0K2dJQd2}txaOwQw%aYeWSs1M1I zMvx(VP(xCJONuh{(lLwyyYPns!{j;%iFyoKuqBL8UqU=13-Sb;0?3&{L8*x;l_B{c z$}hE|Bq+a}L=(7Cw0fg?Q2`RbkRSp3Mi`{tC9x#YGtV)(B(p3Phn15+AtO8afEdeU zJ1J+Me_9Z?!$Jxc^#A|=iw8vxke-8xDj@F?II1*2GXFUcQ3d45Y(6U$%ElhYH z-XN+}kEBc#q|DV-(b37X%t$dpF;X!gG}wcM4QLu8&x5Ni}b{^3PY3$s~787Rf5 zD54A&_`<*f7GPC$cJ%QPQ3jf!#|Sp#2iOb|pc&$57WxN3?3;X0Pd zTq{zOOG{E=E(Ax-WIhow1=O(r|Nq}wP}l?MmtgmQnY>X%L<;Ibp`g^nl**8N5apLz zQ4*A2j@=ATs2QyYGlZdLaHDCiM|Z&AH?TMayIdHg-X*al(KF96xg@hJ6=*4zkOih- zu&XB_g%L_v{+-Ii3Jz@zuhWPvMU5E;3D42pXjRx3#y+BWa^BtIXVDnRnP)4S2uP56`W%~Rw lLoyhYE#L}&+oM6xRA2xA diff --git a/_module/ncs/cnr_at_j_sel_9.ncs b/_module/ncs/cnr_at_j_sel_9.ncs index 6e097bdb3a36a6dff886b05d9eba21b9fb7dd1e9..92a0adcaa07329b6102757c5daacaf5b80f16d09 100644 GIT binary patch delta 621 zcmbPkwcd=^&pB8j%uvt3iGe{{e7P6 zX@5Ybv9vG(NuGeB)PlsK)WFizqDmm2!!O(~B0f0K2dJQd2}txaOwQw%aYeWSs1M1I zMvx(VP(xCJONuh{(lLwyyYPns!{j;%iFyoKuqBL8UqU=13-Sb;0?3&{L8*x;l_B{c z$}hE|Bq+a}L=(7Cw0fg?Q2`RbkRSp3Mi`{tC9x#YGtV)(B(p3Phn15+AtO8afEdeU zJ1J+Me_9Z?!$Jxc^#A|=iw8vxke-8xDj@F?II1*2GXFUcQ3d45Y(6U$%ElhYH z-XN+}kEBc#q|DV-(b37X%t$dpF;X!gG}wcM4QLu8&x5Ni}b{^3PY3$s~787Rf5 zD54A&_`<*f7GPC$cJ%QPQ3jf!#|Sp#2iOb|pc&$57WxN3?3;X0Pd zTq{zOOG{E=E(Ax-WIhow1=O(r|Nq}wP}l?MmtgmQnY>X%L<;Ibp`g^nl**8N5apLz zQ4*A2j@=ATs2QyYGlZdLaHDCiM|Z&AH?TMayIdHg-X*al(KF96xg@hJ6=*4zkOih- zu&XB_g%L_v{+-Ii3Jz@zuhWPvMU5E;3D42pXjRx3#y+BWa^BtIXVDnRnP)4S2uP56`W%~Rw lLoyhYE#L}&+oM6xRA2xA diff --git a/_module/ncs/cnr_at_r_craft.ncs b/_module/ncs/cnr_at_r_craft.ncs index 9314c3749f2af23bf5313a0d643b6adae8f9937d..0330ceb3f0385a440a82f0afd12b4aed70e41230 100644 GIT binary patch delta 749 zcmaF6jj?qzBd?!xutJ!jo`DksLuBhl-fKckau+8%I!I3bCuGg2Fj>%EWV4^}dqyVp zN0aSECo?$wbl{Qv*|4}`~P zEDsVh2FWmHGO@BSgScQ`?PNZ6Yhz|ckYWZFRtA<9Mj*)(P?TDbSdOh+r>c%TxXEO$_9Vv1jCMM+S8 zIfh~d26X2OgOs}@mLz)SIVP86mZf6T2DD=mC@5qnAJKAW`lmISS6jm9Upy$-|Ns9t z2N4NC-X(A(Xn9h^3JB~>T?wU=VL*9X>P;K0vxe=;zsOkjE-Kl!7(=;Rj;^O){uO`a$s zxp|@EM-HZ2v6D9n3vXWTrOVHBdiCUMk(o^AzD;(Fk}x{24U0x_x?luZd|n(yj0r5p N4Dr@^hsoVhj{x&_>Vg0O delta 1081 zcmah|T}V@582-NRY;!|hwR5IPs5=hlq#Djp2~n9p;B3sFWiGmqp@;AyjWK_^NeYAr zBJ@q_DuSRJ36cYWS1MfPA#TxbSR9Td;v=KCnaOENP{w9enc?Tge5YHcIKOTnBOwd-AL|V#*0~m` zV@eqsPr!DS9k8dQG;6S$cKntNmVS3I8+{4_5y`|%fb1hLt-6ZL3Ni<(Y3Xaavvg8N7(VOxL3{a#o>1k+K~sS%>R5HJ zmFz8nzquGj9ah_}zTo|C^{0O>pKQ_@(!X)GsgrCC!q=wjWa|yZdPs7C7uataZ=NLI z8sJ^6bFSqjNj`*GsYG3B`DG>nU}BbI0D`~L4FCWC{{!JM8q0&kj6pJtnM|xK%pfk9S35aB&f1un z5u})bg_VJ&g%L>d1QewfBo?IxmZla}0{I+%;eHYE!GS(N1r1C%#c1JrHi#_> z3}6F(Kn*}Ltr27zAJnvz;F6-uymSonz=r%#0O=NStw>ESElGvxz~cZ$#{ZKAlY}Rq zPY@HsFcRWKz9g|2pcHpdYGR6CYDGyn%zq9jJCEOU*Cm4z9^1@V|UC+Ejm z3ju{#8F&JUQVSA`QUgm zVDju(rFtY~q9A3iu8NLMo@GXg5sHzD0inSjENnp27=cc=WQMp;fdObFFN#{QAwZi& zlz~!=iXzHjfiF-2Rz+t=A0H8Apc#6MU^9Mz%@6^aA%kY2e*oM*W2VXL;>AS3{^W!D zGbOmBC^Ih|=u@$JIZ$Y+!mI{+O%KU8NS+3&GlaMuW;>EP0=_nf`x@*J5!Z^;$^I diff --git a/_module/ncs/cnr_at_r_sel_2.ncs b/_module/ncs/cnr_at_r_sel_2.ncs index acc0b50681a22ef5ffbc6065ab7c3a42fda9b343..32898eb2486184d07e3162a5aa035e51326c35ef 100644 GIT binary patch delta 578 zcmaFzhVjn}MqWSXV1+P4Jp(5OhLW0%ydok@AzvmZii%CP6ftEA(*-hxCpU}SVG6a` zoG9Ai#Kh$}Ss_n!QbZLK-vW^2=KhGOj7;njlP4&MOty-e&d!?8%E0h~aWcQS%;qmq zTFgug_a`gF$r>>nU}BbI0D`~L4FCWC{{!JM8q0&kj6pJtnM|xK%pfk9S35aB&f1un z5u})bg_VJ&g%L>d1QewfBo?IxmZla}0{I+%;eHYE!GS(N1r1C%#c1JrHi#_> z3}6F(Kn*}Ltr27zAJnvz;F6-uymSonz=r%#0O=NStw>ESElGvxz~cZ$#{ZKAlY}Rq zPY@HsFcRWKz9g|2pcHpdYGR6CYDGyn%zq9jJCEOU*Cm4z9^1@V|UC+Ejm z3ju{#8F&JUQVSA`QUgm zVDju(rFtY~q9A3iu8NLMo@GXg5sHzD0inSjENnp27=cc=WQMp;fdObFFN#{QAwZi& zlz~!=iXzHjfiF-2Rz+t=A0H8Apc#6MU^9Mz%@6^aA%kY2e*oM*W2VXL;>AS3{^W!D zGbOmBC^Ih|=u@$JIZ$Y+!mI{+O%KU8NS+3&GlaMuW;>EP0=_nf`x@*J5!Z^;$^I diff --git a/_module/ncs/cnr_at_r_sel_3.ncs b/_module/ncs/cnr_at_r_sel_3.ncs index 87a0bd57adaba4a8904f83ef459072e44756f949..460b2516e105b0fdffd7fd4e70b0b6a021f4204d 100644 GIT binary patch delta 578 zcmaFzhVjn}MqWSXV1+P4Jp(5OhLW0%ydok@AzvmZii%CP6ftEA(*-hxCpU}SVG6a` zoG9Ai#Kh$}Ss_n!QbZLK-vW^2=KhGOj7;njlP4&MOty-e&d!?8%E0h~aWcQS%;qmq zTFgug_a`gF$r>>nU}BbI0D`~L4FCWC{{!JM8q0&kj6pJtnM|xK%pfk9S35aB&f1un z5u})bg_VJ&g%L>d1QewfBo?IxmZla}0{I+%;eHYE!GS(N1r1C%#c1JrHi#_> z3}6F(Kn*}Ltr27zAJnvz;F6-uymSonz=r%#0O=NStw>ESElGvxz~cZ$#{ZKAlY}Rq zPY@HsFcRWKz9g|2pcHpdYGR6CYDGyn%zq9jJCEOU*Cm4z9^1@V|UC+Ejm z3ju{#8F&JUQVSA`QUgm zVDju(rFtY~q9A3iu8NLMo@GXg5sHzD0inSjENnp27=cc=WQMp;fdObFFN#{QAwZi& zlz~!=iXzHjfiF-2Rz+t=A0H8Apc#6MU^9Mz%@6^aA%kY2e*oM*W2VXL;>AS3{^W!D zGbOmBC^Ih|=u@$JIZ$Y+!mI{+O%KU8NS+3&GlaMuW;>EP0=_nf`x@*J5!Z^;$^I diff --git a/_module/ncs/cnr_at_r_sel_4.ncs b/_module/ncs/cnr_at_r_sel_4.ncs index 0c5cd9e6fb0bf411508a4182c637ccb998a919d4..6f78efba96fb52ec69d6d43fd8151e2c9d20c138 100644 GIT binary patch delta 578 zcmaFzhVjn}MqWSXV1+P4Jp(5OhLW0%ydok@AzvmZii%CP6ftEA(*-hxCpU}SVG6a` zoG9Ai#Kh$}Ss_n!QbZLK-vW^2=KhGOj7;njlP4&MOty-e&d!?8%E0h~aWcQS%;qmq zTFgug_a`gF$r>>nU}BbI0D`~L4FCWC{{!JM8q0&kj6pJtnM|xK%pfk9S35aB&f1un z5u})bg_VJ&g%L>d1QewfBo?IxmZla}0{I+%;eHYE!GS(N1r1C%#c1JrHi#_> z3}6F(Kn*}Ltr27zAJnvz;F6-uymSonz=r%#0O=NStw>ESElGvxz~cZ$#{ZKAlY}Rq zPY@HsFcRWKz9g|2pcHpdYGR6CYDGyn%zq9jJCEOU*Cm4z9^1@V|UC+Ejm z3ju{#8F&JUQVSA`QUgm zVDju(rFtY~q9A3iu8NLMo@GXg5sHzD0inSjENnp27=cc=WQMp;fdObFFN#{QAwZi& zlz~!=iXzHjfiF-2Rz+t=A0H8Apc#6MU^9Mz%@6^aA%kY2e*oM*W2VXL;>AS3{^W!D zGbOmBC^Ih|=u@$JIZ$Y+!mI{+O%KU8NS+3&GlaMuW;>EP0=_nf`x@*J5!Z^;$^I diff --git a/_module/ncs/cnr_at_r_sel_5.ncs b/_module/ncs/cnr_at_r_sel_5.ncs index dfc4f0d1466482929861a0c287414d7b597e0768..f65d0ab5d8f3a294be66bcc51208451a61f982b9 100644 GIT binary patch delta 578 zcmaFzhVjn}MqWSXV1+P4Jp(5OhLW0%ydok@AzvmZii%CP6ftEA(*-hxCpU}SVG6a` zoG9Ai#Kh$}Ss_n!QbZLK-vW^2=KhGOj7;njlP4&MOty-e&d!?8%E0h~aWcQS%;qmq zTFgug_a`gF$r>>nU}BbI0D`~L4FCWC{{!JM8q0&kj6pJtnM|xK%pfk9S35aB&f1un z5u})bg_VJ&g%L>d1QewfBo?IxmZla}0{I+%;eHYE!GS(N1r1C%#c1JrHi#_> z3}6F(Kn*}Ltr27zAJnvz;F6-uymSonz=r%#0O=NStw>ESElGvxz~cZ$#{ZKAlY}Rq zPY@HsFcRWKz9g|2pcHpdYGR6CYDGyn%zq9jJCEOU*Cm4z9^1@V|UC+Ejm z3ju{#8F&JUQVSA`QUgm zVDju(rFtY~q9A3iu8NLMo@GXg5sHzD0inSjENnp27=cc=WQMp;fdObFFN#{QAwZi& zlz~!=iXzHjfiF-2Rz+t=A0H8Apc#6MU^9Mz%@6^aA%kY2e*oM*W2VXL;>AS3{^W!D zGbOmBC^Ih|=u@$JIZ$Y+!mI{+O%KU8NS+3&GlaMuW;>EP0=_nf`x@*J5!Z^;$^I diff --git a/_module/ncs/cnr_at_r_sel_6.ncs b/_module/ncs/cnr_at_r_sel_6.ncs index ed7d42479c9f54ed3ba536fd61d7543d34a7c3a5..b63600843640a16fb91122082a7c1e04985004d2 100644 GIT binary patch delta 578 zcmaFzhVjn}MqWSXV1+P4Jp(5OhLW0%ydok@AzvmZii%CP6ftEA(*-hxCpU}SVG6a` zoG9Ai#Kh$}Ss_n!QbZLK-vW^2=KhGOj7;njlP4&MOty-e&d!?8%E0h~aWcQS%;qmq zTFgug_a`gF$r>>nU}BbI0D`~L4FCWC{{!JM8q0&kj6pJtnM|xK%pfk9S35aB&f1un z5u})bg_VJ&g%L>d1QewfBo?IxmZla}0{I+%;eHYE!GS(N1r1C%#c1JrHi#_> z3}6F(Kn*}Ltr27zAJnvz;F6-uymSonz=r%#0O=NStw>ESElGvxz~cZ$#{ZKAlY}Rq zPY@HsFcRWKz9g|2pcHpdYGR6CYDGyn%zq9jJCEOU*Cm4z9^1@V|UC+Ejm z3ju{#8F&JUQVSA`QUgm zVDju(rFtY~q9A3iu8NLMo@GXg5sHzD0inSjENnp27=cc=WQMp;fdObFFN#{QAwZi& zlz~!=iXzHjfiF-2Rz+t=A0H8Apc#6MU^9Mz%@6^aA%kY2e*oM*W2VXL;>AS3{^W!D zGbOmBC^Ih|=u@$JIZ$Y+!mI{+O%KU8NS+3&GlaMuW;>EP0=_nf`x@*J5!Z^;$^I diff --git a/_module/ncs/cnr_bird_ondeath.ncs b/_module/ncs/cnr_bird_ondeath.ncs index d63a96b0787af690f7c806a7b6d10edf93429829..7f04d5b9cb11f12ac6f9c86413a0b89f1efd9246 100644 GIT binary patch delta 110 zcmcc3^PGp*&pB8j%uvt3iGhJFeIoC688!wWU}1)nj1V>}1EVv`##?cWj8T&oOw3^VuQUTt!5;{Z(O4cNXAF{I%w%GP7y;(h0u6YHfWh1b$ ze?Z2vv@ilmo`9m%g2bZKz|z#BN+6%ZFWfI8J~+?^sGxxfNc2yhpd?$5a1Br!k{OL4 zGx(rpqy(1~W#*-0m;!d`4+W5=BCZvw$)zQ!Fdew9WnhE`07&=by{cT37pRDdVVDha zA;aX2s$$VVDej=u#1y~OijtuGatxIUkRXNl9qevlkaCyAl0?ru$K;aCvQ%u^fEG*w y1;OOws?k3G#37*$3jtU-|NsBb2Np!IxB`k`Q?R}!x$H{Ff#xFGvojN|9>#Bure_G zWdaK^$^nHLTbP(ZG!vUN15m*qD9=wGq{kR6GmVKAVg#7C6KKE-#>o?vgeP|?DLVko z;|VBAEl4a%4J=J9s)ShsQp?~4=KWz{0jlEg3-^nN4-WJJ%cMZ;VOTJEo}yAck}^?{ zGFMkcM<>rRBgF{CNX3BAU=J2HplOUin=P3k&Qt(-gcn6E%w`c~pcJE`h%#8<3j+&S zfK}1i(Z@$b8EA$cBiM`|U^7I3X2_sf=pO*L&zNcQMrFx*KByN{f=h}r^U`4^%YlN- z6lO8lV|rj7hL?fr93d`;*^Q)*fS=8op>Z?WUReq`tdN5A|NnnyK|u<%hm#Q$(?EYi zY?1{<1P{b+u#bg;QWH}uL-IkCUus23P<}a*TTsocgqZnnE8NU_kQF~L4CN-qG#w;Y z2!k}ZB$gz4<~b&pWR|7EoB>RtAaDG;gxyg*|NsAe%ESr|YYkB10mU{b5^=|&DJTxb tCfln-GyUnGJV!;s=x+zuaG+JNi~uyX1VxMqrwB}51)DhmyDp0`4#9lGETu_CHy?pXq z!4@XAGhm*2++B^)Wj6O)QXaz{BjJH3JmD( z76vJINi0e9%yUdG$t+97rVVJpBw!FIO}-`R%=Axdvb>ap(Z6_5X#fBJZw?~tfxJuL zu-5>|{O3S~J&-4}Ia4Z@k?F_j$tR>Unf{1PcJLN41F8Gt4GURtOfiDR%u&Rcz+%b} Z8~-G1u9Z1z&UAopa;K2Y=7f-IVgNYuw2J@$ delta 988 zcmX?iiE-OCMqWSXV1+P4Jp(5OhHSHqypQ>rbXqol;%{bT;!K!aE~vu989#ZhU<(t+ z7BElKZL+73B|CdKD+9v|#>p{3GMkqQX)!Y~Zk~KmRMv=b3KO#&0|Nt-nl!`z|Ns9$ zd3EwYF$QC>%rz!f7G@9^#AD{1tRQAB1QcRr;0Y*7El4a%4J=J9s+{Z?Af^FQ!QjQr z2r`L*1*n9>FWfI8J~+?^ERzB;ongUb`9P(5BxRx?Wv;G@j!vFsMv4)Nk%|GK!5%DZ zK+_n3?zUuxI8K29Xe2L+TCgEM7+6G0 z5CNJYjb@>L0Ng&~$qRi%#Mu-Wz~1D8dNU=sq$o2leey(p;d-D2a-i^1h1n1GpB|Ez zkbDkQX9)2C%n3;92zcEb?sc$RL|iLUlS@k`{}kh!Txc)pjbh8cwV?3*|Nq}hMo+sk`i1}l$n=~VGP)X zKNLW^MO-UVlS@ldVLI^G%LsBR&`OZ*`u~4qK|Wyv8zK~xnwU}WF*r+@yY#?5=Q@g fU_l3t3r0DhZ~j@Jh%tf1R6sEZluMj^Q_>CqcTSSU delta 880 zcmaJ@YZz#+C-v>Aby_&D*m(cK(16 zTz>~u!YFRVS72IH1yFIPBDI)WTFuN_;w2~P;ELVo?Z=+6ARn8UFq5NGyK!^LTsG75 znMt(_(TD~xtVo(LAY{NdTVmED_(V)SA{uX?iiT#6B`r&jAV!o3jCX;dBZl#Va3(GJ zShBwUxP==j3xhCT;~LLpw)5*7Yrj}WzE+-RXGxB*8}&H!1c7tC(oac|XHF*3`DYY^ z-%(JFS)m5Dr8f@vz&~$!%8v8-B!r?gNh2&(OJZ(}orXeud)&W0_NJpcdz diff --git a/_module/ncs/cnr_forge_ou.ncs b/_module/ncs/cnr_forge_ou.ncs index 1795f8c2860a8416c59c9bc2b1a6373e2cd742d5..24cff4caeaaddb45794eca16fffbf23d6461a5e7 100644 GIT binary patch delta 621 zcmZp<&N$~XBd?!xutJ!jo`DksL*|@~ypQ>rwB}51)DhmyDp0`4#9lGETu_CHy?pXq z!4@XAGhm*2++DnMq_!9m@!C(F_Vdvg&D*J^J*t6h*=vkGlCQ|u&^?)v@ilmo`9m%g2bZKz|z#B zN+6%ZFWfI8J~+?^sGxxfNc2y(6O*k6Yx@D!hGa$~$P7NH87aXfMVWc&7^Z+7_(K7t zTg0^@HMz7T6{Z8XwG50PmjbN>>7IOAl528-`?R>r`BY5(HQ>qD-J0RXG%y&eDn delta 970 zcmbPpnX%n^a0DHKrCQbF!^1aQazF~QIIlMS4BrB&oU#$2*pUnfY4wM7B--1jI0a{ zmdp_MDKG$y`y+ZKU0EBiZb&iCpwGQ%Ygz*6=pNoXL?AULGm+Dogu{OFw2qD z5%9D*+|yuph`3gyCYP3^1{6*HBgPF3a4`kc@csY)-&#=k0_m5GpcwcvSusIGN`V2a zT_`9uF{LsjA4K`3R+I$gmt!}>6KX~)!VF=k8Qf@^jnN(O_YEwbz;+6Q)Vm~>BzopK zCYNNEr9v!)rWBw%Cn1FfN~ryv%ESr|R}D}~kptQTiZL7!HhH0|@Z?-^j>&JuJ$(K+ zL7V`K9a!T1|NpNy#Ako+LR3KgX$ns48sKp21v(p=*nzG)u(?qpmXYb(=3*aRl97(c|0-wQWSl`^nk+Piylr;yC#8?us{{{$@% F0{|`2GK~NL diff --git a/_module/ncs/cnr_module_oce.ncs b/_module/ncs/cnr_module_oce.ncs index 1ee3f3a7c5bcf8f5f0eadf62947de18723eac8ec..1f8c29f9b925512e65d45c1496a6066427525b15 100644 GIT binary patch delta 586 zcmX@;eAAxS&pB8j%uvt3iGe}>=0;vVK_=eT$rJg-HX92Xu`{uTZBCakVrF8vKY6ya ztP#TjCT2MXAowfI@c;k+KM)?Hu{=o37$n1($;8US4B~=$wUb{-TN^Vof)q2burjc; zFak-QfTGlb#G=%|($u0#AfLl8+%F-z!Khh#`2$PhlL zAt}KnMVWc&7{-8I_(K7tTg0^@HMz7T6{Z7^y^J8I0<8q;uK)i>7UUB)upvT0sfj6- zA^9N6FSVj1D8C%TPO#IFjX*Jh8=qDM26PV!PyQ??EQZaFNuc17oxDIkis_&Dp($rJg-HX92Xu`{vTZBCakVrF98JbAXX ztP$fBCT2MX1_mZIX@>v*|NnvV>g0i948~xYYfP*x%pfj^$ILnTm9(`GP>7X*C!i>` zAh9Slur#%(5@>_4_74UYkRk>zW=4=<3@kuZ9Dd<`5%Ix+K46&?hy@G_CJRa_)gvhr z1u1iNRdjUnEHhG!P>fUz2o3gNVFQ}R$jZQA$qaFy0t3)UUKF)pLx47mCcgSp$@u z%z^O_idNjQYKk>hCvTOFW%{E(IZ#m89GJ-e|NmpolSn#RMS!|GQ{% zoLm^w_v@3l$>sa}mVtN$MLpQuKdKP*f3`zZKy~wjGn)q3#B@Yv1G;0@@~ diff --git a/_module/ncs/cnr_module_onact.ncs b/_module/ncs/cnr_module_onact.ncs index d4f9c6b34ed3b278997829715951cb822070e64b..cb92ca9e7dec106174ed044d9f986bf424c6adeb 100644 GIT binary patch delta 599 zcmaEHm9gOxBd?!xutJ!jo`DksLngyU-sk*Gp?sUa@&9CE()zRcqtIhUCiaTS*F;p9 z*vlvX5ouv!I|Jsa$4y=#YRSZ!zxlDKH!~B%{mBNBvPKLCn3&}lfZ(q*!~g&P|3G+* z#_}LBV~`AECKD?QGl&c3)lROLv^HjD1Sw`8bJo|K@CU=E-A{)OUEz*?7ANcAR9$o zD^in7OHyGv@YyLRD>nJQw3rx%c@QT7rDK3n+(D^{DSoLHB|-V+7%CMQ(A_EwQtpyi zlIWS|m|T)smWoXq(1J-|KeMwzLUyu|tQXTit;uz=5=Q^xLE-%W|GzniPzUlZfkRyb zB=esG5$Zsm%;poav5ZVVPES^s&t&=|HhH3!h#5%TA8)YhelW0r1E%BWC%+Jt+5FG{l@tJhptgko delta 986 zcmZp;#Q5SWBd?!xutJ!jo`DksL)MFpywCZW!oF?(#{ZLvN$1Jtk3x?bnK%ao0ASr9aIE9H>j)8%J zNllvJ|NsAgpu9SHpcsQOSmqiND+@D-3*s?zPOg`<76J;fGVlZxr4}R>r3RL!7FAA8 zR2A0#!N3Ai#Nfru2r`U;1*nR{FWfI8J~+?^ERzDUfMLO8#VDo8|57;Wfl5R{N?ctP z9i2SOj1(gjBNYQegFRT-fF>~loo&esahn1IP%STtTChDpTSb(CQjCfs%3y&nPytp& zXGb3&5oMqmdW>K*et^voK{A6MYN3As#J=qH%iqz!NlF1QLd_Z?d$|8mB z|NsBig2EO^zhnf3{+G!cB}Am4o)8L3O-!i_$p=w>sTCzb`Q=y)@Pr!BiZDPJY5+Hy zP6HIH|Gt665ZIZ*AjK|;C5fJSj>#pNWvLMBpy>nX!bwOWfNIcGCRT7*YJk#*957Om z;|e{h7AAnBiji%ym$aA9A18<-U~vLVwEzGA^@e!t?_G!rs5ec)iChC5X1zd%LlZgB zeFru_kd9?!`u2FTy=FFhoKL5Ui!@V7aNWsD%BenZkAFj0clF@eSSAy)ogxcQ4L PiviQo=bL}|vPlB~!lXNc diff --git a/_module/ncs/cnr_plant_ondist.ncs b/_module/ncs/cnr_plant_ondist.ncs index 54ca8bd6514641e3058c38a4a8e539f03cbac81a..f509a5099217a9d8fc90ead4826be52d38757404 100644 GIT binary patch delta 85 zcmaFB^@)qu&pB8j%uvt3iGhK&Xd|yDGdBwx0}!w>Fvc)WUcf9pxr|wfPn(GiE}RGw VR^a>2#0(co011h0zQ^3e2mq}D4}Jgu delta 68 zcmeyw^?-}l&pB8j%uvt3iGhJNVI!|6Gb<|tV+_OOL}ptKc_ua>ClSPv=9Omvf{#qh PK#>HHh}h;2%uS2{;>Zn; diff --git a/_module/ncs/cnr_recipe_init.ncs b/_module/ncs/cnr_recipe_init.ncs index 1efd63c0cad2fe15e9d41f998c2363abe72435e0..584f87d7fbd008a33237e7bc5016e7f77c207916 100644 GIT binary patch delta 702 zcmaE{hp}NNBd?!xutJ!jo`DksLrlX)-i^XcTr!h4>PSz%EzB#yt*;}%z`&Toz`(#F z3nUo$B)Lwt1nr5py8JeHLbr8O)6T|NsBNz{1MF@RtcJ#0WB#;Q$jenEorx095b?!eca+ z2gw}}i1^?@ zAE1H;CLqzzFgcH3#uecTpgtr+8bOBeK@CX>E-A{)OUEznQGTfvB|-V+I2A{7<5Q&o2{nj6!A=wgDR)UMN%YKfOfJbROT}UM zB(QfU-;|4H`X@elql$=`958tQ`M~@SivXaQ1&SCGSe*(e8h~<%lN;p2n11e`d_z9p z=PwH+icr)ufYkl9gsA^phKNL<=o)Y&YJgQdLPR1^=G*4U3Nu-lzL;&+Q)Of4c&i82 o_h9mTC6&zyIu`|*ZX0ekwtFwjwAW#BotM~T2TS(Njxp*?0LKN-eE#>7mewOTa6y9X=0N?ab|W`fy8*(*?I4q?|a{SGk4xF+wT~Q zG?De@MnmCo0B+peuxxO!k3}DRPPD~Y1}u(KHUO9s0DyJl53maOW4pJ`PeSu5x*xQo z(@7I5^3%|4L-mvsZQ|b(L&$6QLGyd`Dil!4_Av;1FDTC(5krnqSOeiPFs)W=53oi6 znvjMV!puB?2C~BAPJjUoZMW(nXU@>fCumeD$j)#G6Kpdmmf%p->F>umBj`(2= zCZ?`rFS0$DjltUI4QioYV#U&d)h+UVoMJ@YPXoJvr2(Tj5lbd{KjsKAlw*%_@R-BV zB{-c@_0WQcLnAH|Pi$2xhn!5E}7ZCMivXxk)a*e3~Y>`k3oKnG@yA-pOAj}aqL(}3{sp;_1k=o9=UVy z*Jt#@U4i>9R1gLtjeweLyjHDg(8Kh#4AbLt*erc;boWGgAv|W`Pf3~b_w>SVQ;HPa bKLWob&_a|~W}{nf_%@H~Ge?!o^$`3GtZYQ> diff --git a/_module/ncs/cnr_recycler_ou.ncs b/_module/ncs/cnr_recycler_ou.ncs index 506623c95fb32bee0c2589802feade557545cc20..4dc7482b56f252e62f5497b76c781c8c9eab63a0 100644 GIT binary patch delta 600 zcmeyrk!kumCSE`1V1+P4Jp(5OhUwxPc@Ob3Y0cSuk-wRdiM?WSn4k(1d->!V!4@XA zGhm*2+++$028wu0}%X`X88aA{~rjC z(O4cNW(<;H%w%F^VFq!*yxPhCMXimQ89|B}SXdcYS{Q*OPe4&>L1IyAU}EX9CkhKszMsyQ_XDa8$&5yj8GKMPQi4m0GV{_gOaVLahXP2q zh-*b^a%o8_Ob0$|Kb8wmw%1~toFpMEhG8beWl$xN+(D^{DSoLHB|-V+7)liw&>buc zQtpyilIWS|m|T)smWoXq(1uAczjIFBBI&{OPiyi&NeQEW@u0B&|Nq|{M92eqm%t&f z0h0O8fe3jZPiC`+R4gOYkJFQvOJ_3u5t}TiE@B2!_s1LTGGMrZ%rz!f7G@9^#AD{1{9n{s2q?tLz!OlET98g29WK z5o8hr3s4D%U$|dHd~l!-SSAHxI>Um=8~c^&k(7yol)1VpIy!ll87W36Mk)q`279ou z0Zn5By4#W&;y48cppm>NYQcv5U|F1MVWc&lOGm|)yshbOBH50*mHVF z{z39KP@N&f^)UO9)DiHvIo#i1hlsdVq$Zb^qy`jCzAeT*`JtkuEQ&?{)`G(K|Nnn4 z89_1dWwN2Dh!oTlLP4pCDU~7lAj&Vbq9iE49E$;-Py<>K1_(n9;6~GFfMWIEH?SB2 zyHpsY*d?(f(KF96xg@hJ6=WSGfdHL12`L0nO_|EX3JyyRPy&$y#waMFaK%%iEjXSS z*(RS7_wxDU1aSc@PGCv)|Np<<5MTYh3sC{}qbWFv1CuP!MZG{*Lz6g=cVKgZL@XoI zx5tzBOJ*|t(wi(eQP>=q`v3p`ZH{6*BUlWQlqpU|NsAkfkm1DNdI95@xCyy z$T0wcJ(vfS1M^bBygv*qEUXONe&K!*@%~9!smUc^$r^}uF!@7)0ZFMSNU5uU~ VMQ2AJ9}#7s#d?fjdzpc*1pvR8SwsK; diff --git a/_module/ncs/cnr_scalp_ou.ncs b/_module/ncs/cnr_scalp_ou.ncs index 4ab480c9eb80ca120ba3a938508d87150756dc1e..33bd617b0f7d06bc6292ff5ae00b5091fb7692b6 100644 GIT binary patch delta 574 zcmdnwzS^1B&pB8j%uvt3iGe|J^+w*W0!;i1CbJ0EF!3vGZW4UU%*3fMxlnXH6YHkQ z>*d8KTZ$Diu^rpIR*acBkl{WHGXoGXGyebo{|5sLD+9w{Ca@5r97y~C6Em3pE6o5@ z@CU+UG?oX+8G~dPGnrT+Mu2&>lNqI~jlrh<0hz|q!U!aJ0*X=#5{ps;OH+#~fqV|X zaKDK7;6NXsf(9la(a!*MpiDi&6+nGRhBSf<;e#5I5?oT0nU{`X4A_M~6hO9$xK^Yl zmzJc$bl|a<5$bV}?#XLpxh5ydh>2mC4RPWES+N+P6n9W+Vv1jCMM+S8IfhCFNKisN z4|caONV!X5Nup<-V{%DmSt>SdKno^;!a#BIZrK&m^T6S&CkJ%XzblCF1@c}1)d)|X zD5o#7dA9spCdNlVGh{a}Q{rI+ E07I3VAOHXW delta 1021 zcmZ4Oyvd!{&pB8j%uvt3iGe|R(?;H}0!)I-C$k9FFbQgIZW4UU%*3rexlnXH6Z@>m z7ZfBXTZS-8 z04n$c<<-f9^caI>t}(Gfi~#YNIVUqpSqA`xSQ&T%ic$*_i&6tiQ;RAYq2@!3f!PMq z!r%qw{b67M>f!JU_lt-R4)g)bq(H1=STI>vQmGzEnJ7q^tE-};lV_QcVuWI(VnArH z2MZg}G)ABgESVwJD1iLKi=q~0vxqWKicwKS87%OHfdwqUs_5+K<0GOBG((ROY{n0; z86rS4WY8@14}jZe%rx0STC5)IYd)y2Q-Vv1GV{{0_#0@M94IhVVQvBYRS(H~NTC2! zX9)2O%sEKvP=i4hBOJ`(;lRW?`GS-LDE7Tk4F9(l6vY4k|9c5`D9~vTYh*zY!vnEc zfdT9>p`g^nl**8N5apLzQ4*A24l>UL)jUtAd94J^<3=;69>t))Z%`~31}Sz)EJ^gt zb4)JDEK3F2jwNV;2^j2~Nl1Z&YV1@dR&a1@fOUUB^6z9jNkLGe0L3-#s5S*h_2hHX zYo!^%nLrP0VI(3G00XlJnA?OWuawaj`rQCl!V!4@XA zGhm*2+++$028wu0}%X`X88aA{~rjC z(O4cNW(<;H%w%F^VFq!*yxPhCMXimQ89|B}SXdcYS{Q*OPe4&>L1IyAU}EX9CkhKsj?@y&2J1mGpb=yMAJl-9;F6-uymSmBz^?nD0J2fU zwIVgSv?LX#1D~DqB*iAjONfbKm_AmuKJ zC5fJSj>#pNWvSS-0WFvW@$;){zR69gLX%HR8Z!OUn*2{v!suT-D4hTQ|2GE_>OkHl zaHwm5Wd3s?LLJDH+3X<|%gFTO^yKBznM{AgCJU;In1R&&@dmr@2LlT@ju^pW<|txJ aU@>Kgjein0$H?#*G95b#P6{2qT>1ci(XhAx delta 961 zcmZ4Wm2uKfMqWSXV1+P4Jp(5OhMGwmc@Ob3>9lOV$luJ!#F;QTOi+c1Gk$W7U<(t+ z7BElKZL)@tB@=u2=42snW+ukXlQ)RU8Zk~`VwPiIU|>>{X88aA{~su?P97-6U<{VI z#>C3P4B~=#%$$?|i&_f-g;*JQ0*X=#5{ps;OH+#~CkK{^X@FEPcri1AOk!XGD&g=8 z_lt-R4)g)bq(Dq(STNbYT&W&OnJ7q^tE-};lV_QcVuWI(VnArH2MZg}G)7hi21{m$ z;}jTxM)IPl1sn2%fki|aD8;BKq6`-J0u^9YbawRd5m5%3p~na|;|JIb5uh0|Xcqbh z!0j_;nrtU7CIa>(AJmg6!6ikRdFhiMDhk&Fjh6$3mMYA4uaKQUjDcLr7-x0&gyT E06lP^nK8-Y#x12T=Jg%L>d z1QewfBo?IxmZla}0{I+%;eHYE!GS(N1r1C}AWvqqi~@@Q0KfmLyZ`_I delta 932 zcmdlHvmk-j&pB8j%uvt3iGjgDVIyy>Fq6pl$rt&hH@6EPV`Snnoa`^!&m_yH095b?%BzzH=`jY&Tw`K|7y;rjb3)8_lo6i%T3UJX0$EmG zo`9m%g2bZKz|z#BN|39xf%bqDGkAe*{lmZlw3fp!+%FF1 zMVWc&Adl7qO_u|On<~t5u;=uU{Db6epgKc{>tXgIsUzTTbGX03ZV_>TKW2+i`pZ(y+nwon+P+$FIj(KF96xg@hJ6=EYay#U=f2`NBO0`Bir zCRT9JYJk!UD1t%ph9la5QEbXI`GSlXFm-zP{BeS~0Tx5BwEX}7UvG%V{@#VCfO^vu Yoc1-qfz}IjH#qx%c?UL|$gv0j00q+>UH||9 diff --git a/_module/ncs/cnr_ta_b_red.ncs b/_module/ncs/cnr_ta_b_red.ncs index 2893add6b6eed712a5368b0c438b050fe6963522..e4de6ca29169bca31957bb5dc6af7f8b380063cf 100644 GIT binary patch delta 530 zcmeB4SQ5kQ=NzmMW~gW2#K54ZvXR$Wm`PZ4@&AGy77@4>{CtHj5Gx03|3JGt% zFFKWxiCtoHnfPjU)_hh5h8K*J_ln4Dc9GCxW@5NMxj g|Ns9t2N4TE-X(A>Xn%5Gw;uKv8NzVo_>fX=+g=$X4wi z3@ji;3|`EPAj23~fT}qB!u=xRg9ClQGAR%X7#2)^Eu~bCq)Zf~%+*!V(aE#SNHIb& zQZXPj*n@=)Xc{BX>6Xk8_bD&{jpRj93pNC3vxqWKicwKS87%MxD!{7f?C9eoq6{=c zj}dIf53m^`Kr>{}Ec6e6+h@!)`JarK2-u%|P=BTbmlS2@rGtE04>Vp56kw__+rhrm zL-G)kzk%uuAYKj1Yzz!HuTZ2+jJxZ(y+m zwow?Q+$FIj(KF96xg@hJ6=Eecod8`q2`L;)0VV<8&6fn$GBNS2*xV>=&BnxdeH!~B% z{mI<2vPKLCn3&}lfZ(q*!~g&P|3G+*#_}LBV~`AECKD?QGl&c3)lQC*wKisE1Sw`< zVP#-xVFZ#q0Y#|=iAAY_rKv@gKt6|GxL-tkaG(!RK?4(z=x3PRz%Nq|*7pOd56O^5 zkRg0fLsEiEiZb)kF^mDb@P`6Ow}@*+YI12wDoh6+dl^Aa1zHKxJ$aWnmkv<7P*7@O zN@Yksi1JIVC<)3h$FL3J=yl>^`amged@2%NY6n;2#|LP93dJYng1M!2m$hBHZN9eU<3dVMUxZ& delta 863 zcmdn(wAhW;&pB8j%uvt3iGe{`c_Z&(0VW~S&6fn$GBNQ@*xV>=&BnwYzImUdH!~CC z=E>Z$vPO(kn3&}l7#Nt;q#6GI|NjTdtCI(cF&Kkot}(H)FoU=t9y90UC|PSEpb#qq zPe4&>L1IyAU}VeKCbEFeV;Ud)Uj!x&hAsyO_@{UYLn1AV|UDG&=77EErG zR;ou*CJIvK>Z<7Iofgvnp`L^Vf5D<;+Ma7Ar681%oLpBHNfH4 Qi%9W6M;+L_TfTu209`o-EdT%j diff --git a/_module/ncs/cnr_ta_j_trade.ncs b/_module/ncs/cnr_ta_j_trade.ncs index 4e988026232abdec0386ba0d747881774f876e95..a6e6078d48a8c613bea8da9cf2dd1db2f2b4a1ca 100644 GIT binary patch delta 518 zcmeBmT58AZ=NzmMW~gW2#K0i0x{-IP5EIv$%}a#b7@4@DCI`w(Z)O*{!^Fgzzxk<{ zH*+AveHLa0AYf+v|Ns9F1{PKZhQCZ;Ax1fn_yHznF#T7W0jS^)gvV$s50Wzm$uMRz zu|kXh^J*tIN?99&P5T2fjirSVNb&>}r4}R>r3RL!7F7cI9Dd<`5%Ix+K0pNxOhBTa zVR8e%Og+LCKz&GtG=dD_gBp?&TvC*omyTf!*o8k7K(>mwR-`7EmZZXT;IWqx>T!_n z$vSdelOM{6iD8%xaiW5pSTshlz1O28%PU-7nt{lfd#0C z!!O(~B0f0K2P~5Uv5sNEK*et^vo0h%F>W}$xo z#J-P$OFj8p(}jRz12|f8U@uK^UaoC9x#YGtV)(B(p3P=msod z3{1mdKTSdkEtF9GJC%tQ9PS!m-5+4Sp1fNUoCZK~jU%do$-m8DI9WkmbaIVo6_Y>* zP*`{~x7buhCQgRQi^Nwmv4?N=m+)q0V%$7=j1;}j-lIR*v>CN*h>|NsC0f%59) zfnp5CV3})7tSrnRE{Mm>Ir+7;wGdE^33nuT^QmRK%CJIvK>Z<7I^hONuh{(m|fB2ihP93Nuxh1Hc~CL-G@n z*MaH`AwGb)0ZAPJznjDT4t9%(Yei~uX$fB{%uTTH7ner~?f?J(tp$ZPkbcPsijOao z1$0GNKt7uMPeu&r2TTo~Pz|jJ4Z_eM;0{VnOz}&tC<)3h2kDhYv+VC1SPTKp&zBWP zBnY4bCL#G2B~<=SWnu+~n+7OBm;+-F6frpB1sI2>OkkG*qZ?uyB$g&`llAiX;{*|c pMF%X={{R2i8{)0McOfdEo-_p~at&|@^&%2E(76XT`^d2f002ux4Q>Dc diff --git a/_module/ncs/cnr_ta_r_red.ncs b/_module/ncs/cnr_ta_r_red.ncs index ee50e7df00f436b4662183a27b0bb39117a7eedb..5c5778c304b6719d1b248739f33d568eb9cef38a 100644 GIT binary patch delta 536 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 Obr36m3rrS~wF3a1NGy#2 diff --git a/_module/ncs/dae_demonsetup.ncs b/_module/ncs/dae_demonsetup.ncs index 400017d6e55b6743baa0281dfb6ffdcdc571f190..78ff11fe6b2490b8a2295b94463e82b920dbe87f 100644 GIT binary patch delta 160 zcmeyuIf;wc&pB8j%uvt3iGhJtXd-VcsDscxUVTmU3049;j(hmR}&LwvM delta 122 zcmbQl^@Wqy&pB8j%uvt3iGhLT%S7H-#`cZbHq3mY%#8p4|G&b(!pgwF#W;C4vm8|D d22AKJT<8u=NS+0z>H$nB5H9otCe+N*4*+djBA);N diff --git a/_module/ncs/dae_namer_convo.ncs b/_module/ncs/dae_namer_convo.ncs index ea006750b39be3bef62ea78133e89862e9a22d2d..717a74ab2f7223cc713d4c17d67c331058682f90 100644 GIT binary patch delta 43 ucmaFJ^qh&;&pB8j%uvt3iGhJJeIjpxkP!FmN(X?7sm3qE!dG diff --git a/_module/ncs/dae_namer_spawn.ncs b/_module/ncs/dae_namer_spawn.ncs index 63e482a9e8acb1d8889f1bed1b1b7eb22c4a5a93..f2fed1974d6c50de62d30e62766c3387228ecd6c 100644 GIT binary patch delta 270 zcmZ3lzFVEw&pB8j%uvt3iGe|Q_e9<=f~T06nV4DF7=SqY*91u{E1(8zBjQ{`t|HHt-%D^DQ j2qd@|C+9O;G9K8xlKDHoC|LFfSeBDfngOWvhXMltt=KED diff --git a/_module/ncs/datetime_ini.ncs b/_module/ncs/datetime_ini.ncs index 6938344a265d91ee072b556624afb41f0ea0d000..165a22e841bba8e42e228f18f5d1389e14bf5eb8 100644 GIT binary patch delta 516 zcmew*IEjzf&pB8j%uvt3iGhJ#Xd-VT2aBB?0|Nt#)y8RTOhycEnV3ObMlETE|NsC0 zf$|dMfnp3AV3}!5tSrnRE||A!@;RmqV`fH>Vg?pg29_2^AjuO@lv!<|Hy(o!Ui@(C@3{Cr7|QRMERvwlmz9MW7r9HIkFKb zCUE1^s=$EmLE*_PY{FvL?3e@!oy{BA4lw%s*#wCQm}Xee1B3fHEcn1;jB-F9{ke=H S#sn7I4~j&f+@HyNIP3t3Y?b8z literal 2298 zcmb7F%}*0S6rb&G8%zNe>Pf^YL{g9t(5TS_u(T_z_Iq1C5);z28?AxXlosLOk$=EM zuX;7ayNL(m)su-=4<0yR!oe652^7~iZ+6-)Y-#Lar}N&M_wjqbc@qoibbexNe1?#Y zgMI?P4oY0IOIFu)9#L@JvDR&?jcpDv3z;<(n~%Gj_G}x z4)qO+kiJ0>j7zu${-T$kR@F!y!mF zTU^$Y5!B?ZJMgA`#3mmXm=9I;2WPbPYyL(5l0T8r=M)d4ICSK;EV6`nT{c^h79t?| zEdYQ5C~*5j!AOK*LB=HXu}>Lgd^R5#FP^A}vo3jkEbvQiLDX$Ql-DceLh+FUND#cA zjgu=PHw0#^soW;Wz;1#UC(>)OYXi%zIxI+BpSoe>;8uzRTQw2rU~ijg{(Z;V2I~*3 zM~pWcQLOrVQbsnvnJ%#mk^(Vk!kLea|{gyD8-#bB;d zST~%rgbriXFPbp7_2%fM%Z=R&V9uvrptiKS!QYM(v;tsdAZXW#!2`l>C*fHq;W;Pa zc_(3yld$)g5D|ef3pqTL;9GyS$OlyIHdKwbhrC7|OlfgUyf|bFH2|Q{G~Ssfr~=Lj zRrBi-MI~TXS2n#V*w<>P&r&IcnI zRS!&$P7l*~jD|Cbh!zT_Rr)|(qM1aP{l%AnO?%Tk_{_N{k`dF}G!MUu?D^ZntPelh lWG<9#^Q%#tr-{l16KlU7Ouy zg+6%cc~Jye(0y1?QRhWbQC}+fCWxSjvLafvf)9eCIM3 z)}KvOL>I@yYi3THv52vz@s}z*94bFx-Yel;z5@K~akIY$PjN2&K^R30_kV{ruVVqkkH-F><(tnb78y{ z#$T2(P-;+lmL-4O*w3~>A_Q_V)$=F(8uu-NjV@#W(nGo z33y{!b&rx&TlcEjPU?(X3?SaRQgoeON3lzmmJX{KxfXd&F}@;4GM>w(GCM}G2&M1C z3@?U))uV3B91KHM)y;I}U#%+1&V*)uqU!$KYOUkz0UPMb^DWQe$x{*`HDJ0gQF2O4 zX5sc+YM=U*1U*!>jOm7Rb*DvVr^&R`pY9KLmaIOjss2VBZ19XVjG>*vbs22~?FiZZ zc(`#L{@)m^8dU@R9Zq}_nV`oaZ-76;yj-vUI`I&Pk7LC~ysdTU?e~ZOMpWT2gZKjR>aQGK_(b0()Lc eIPjuK7(s2yIlc$$n>WHcKOShFQue|k53|ouuAfZ+ delta 1789 zcma)6TWlLu5Zya#J8o<@j(2S*Y5Z8MNC|ngw1UzU0cjeD7312qp$P(tTQ4XywZUL7(vWX-u)(f`TB( zIr=trsBDZ`rnjGDN?#y$j(P`cmCFaJ+~3s67bb2kEGN z7dY-i=%@B}2)pSY_OlTBi{>_c3CazvxBe&rdoPB}IYJPgq*onpK;0qcxd%d5v`?Hr zS$$x&SOs@V&1Da$hX(WcBZKL5B1ONhlTQ7vcOyK5y!)MA96K;@O6l7ZJ+@sLRz{S>!>K`wjYScw zAnX+N(EkeBC}!7c3@gT^6Bt;tW;w$CB8nU_T57hS$Ex)A#bR=V5%&-zUeX-WT_B-y zu9RAQD4(4eQ{$PVDwnMhm!Mi*?ljw{2fhC8AnSIyx2ESxSilTY|CpL7B*rpRY9Wys zAD_$@vNYM|r%!r)Z9J;-i`g#X8yVv|bPa3exms2y#-G;X=?(AcuKGFM0Fe*Du7ueg(b@4Fv1`)P|m2=#NXpYhUt{)^yxUR&{}3E1Yb z{3Fc;uq)cn&7znjyY;-L)J)4|Ko@2ut$I1+L~U{88(y5SgY&}ewWY!1G#_fBLxG3~ zC2=MS>a&@Gnw(GzQ+x)U#th2mOf}eO?YM%eWQ>ba{y?V`+9`40#wRbYSqfabeTmhb z+W~Z2&?h6^W`i!9Di%g_PjkW%yaCl}sbsduNlLRD(U+=vr}$kmHbEXZt{$E!s%Cn< z9kvRgb;Xx1^Wxd<2@wA3l<9dzZZVR0_N$rfR65Up;_C6@{`@2#$1N#_^b{-a-%KGH zDIDu!x38mLoY#vt;1Y-L%@i}yT;Jj1=rNU3)(l}Wx{(TtGhpS@{l7!F6NfMzy10el zYV>dsRz_~F2D4tKvur_s3~lvPx)AgL+h9~{xtq3zhg)!j@?LekSjbP^BDH^AuM02e zy=rfUeIogso)0M6w~-SB{=Tjy+cb!kB^`i0{>t7u;{vgeJX&pB8j%uvt3iGhJpY9g;KCoSxOl?0t^tqBMYJ>S=c}n3p0phWnkcB Int0I}0B`gONdN!< delta 58 zcmbQmG=+)R&pB8j%uvt3iGhJpWFoIE39Y?cIM*w6S5b(%?NOh>~Y#j|36@0VPR%qU|^I35$C{Scc5ZS zV6h4&W-$F-ngOW(4}{00D-Tr9a1tcLl+45mHiH4oD`y0m`-Fi7svaT-HlHb)m4V>} zBS^tyP8KmHCacMcEb?+pl3*<#(6q3Ct^GSWj-|35?5;lyEUXMHEsQ{tC!i>`Ah9Sl zur#%(63FN93-^nN4-WJJDrjH=68#KdGrz#hlm$7L4dNsP2C#8Iz{WK)BAML?GMgJ} zc8X_S3DoF%gxO#texMl9f?)(7%!uHUqRhN>3^5aV_yO+lYpnRt3|qSR$-q z5DpSHOPxGTAE@V)F6Xv+3q}@9Lp3l zH0U>^wao=f=k9_z=`DJjCi7`(#JfWKS=E05MkX5UjCj`egepG|duvH?75Ufevk)VnaOF4X%q}fnWBoif2(<*BuVH>Y z43~3_-)*=f0RR@$e(nLlZ~*|X`w_Emw5?&U+Pl5Y;Ay@Y8(Jd zq-DfmNr{P}0@`696iX#@IU^1^1{BP(g*l8s4y-p(@XEE%UL@ZmB1*5KV?XP4MK7N?IkH58arxTDvdzm_hwlzKQ{6yKjQb zu!@mcvZfbYOBUdX>v40N67rt{8_8bXg;K+bY31ay&w!Quxy rxBdTsfOEq*`eBwM6*vI66^|8uaVp~CK>7A*EQupMInnmh1M~g`33@N| diff --git a/_module/ncs/dlg_act_exit.ncs b/_module/ncs/dlg_act_exit.ncs index 66467328cc2fa11610c62413dd176a957008a1e5..ee8e13845c08c5e87bc9822411d8a97d3d3ed4ee 100644 GIT binary patch delta 649 zcmbOs*w4%B=NzmMW~gW2#K6GTzmfMhQ$6DXX2$>j|36@0VPR%qU|^I35$C{Scc5ZS zV6h4&W-$F-ngOW(4}{00D-Tr9a1tcLl+45mHiH4oD`y0m`-Fi7svaT-HlHb)m4V>} zBS^vIc4jdqCacNwndO<7BqtwWmSST3JNXWCWj)vle;8O;8CY5vfh12rQEEYAQEFgm zYEdPS&*2yD7ZD#E=mS*Hzyu`v8NfDvf!Qbvav2-Mb_E8oaX-MuH8LWZ-3T(98)|ln zXI=@^=z4_NU?YB@7}0`Z1RuRl2`5&d87>%nLxia!X6#*}uIl3Gez1rw8IrJJS!T2dB-f560x zClBh$qw(w?;K{_qg9i^BJa{n5ff!9l&dv&_98`(h1$`qO;uzjyJ8wK4Bs*x61_sTtIU8d>$*llGzr-6=1JCT z<*HMy*Q{CW`{-uFfD|LBCr)Bo;C7>^dO{uciBhzerHC@xu!c>mOvn2(QiN47TBQSQ zm7|KYC>P9(nJjVLQ!$rOHSyLG-c7*h`AM2%@A3VM zbcWx=NI#7NDVK|vYlyFh>B6ij0FZA303_4C?*PaK0f1!j4x8yR1=dij_IhVCIZXmk z&>Aza?Tu^OPsauMQ9Q4nhkb&i_t@1h;USD~Q)>ABg83 z2^+&m+9RBu%ubaG6B!{LD@&=_%RrHv;2H7d-Qvs_Rxry4ilkhGLgv`F^VyuAjT$Q7=akbH=b*yYww33 z-{VTu>q=Bk*PIRtQD*3H%_D}5ye zJlSDJ`JehS2AKVM5oCrehPiA{FFLlDtea1EIfL?!31`sz5x9Bo4miV=xIb@O<&|Px zyt35t^7V%u>gkYU`fX=+g=kk8>4?iUds9Owg7(7*&F`WYBOc7I`Df!HGpGM^2?R$zd+ z3v3*c*^MBx`JiT}1eX+L=B0y74@WT`Y|0N5QyLl3P2q-_;+a>1;Xs%Plkc!gh+)Wr zoj;WQ00F%Idu-F}_ z7!z2X04QAm)q6oqg7O-`spKSBW*Z`v0M(rW$2QO|p!&%j+yad2CeP$nVCv&pB8j%uvt3iGhKqU?cBbMkbE%$!i#$nK*g2{%78B9-?W&q0lf%4wV1LYVjK{CwlOsrt_3}9Z>BI1JseZVp)5bGEgfOUVEJdahf z{*M9!l6p~)dRJFPM<>rRBgF{CNX3BAU=J2Hps|dsKo>GY>{DO>n$3%%7Ul#IWuO$J zqKGnB;0pr_Sb$a0+0n;GL>Xv?9wXR{A7C>?u%$rnL%bpjN(4L* zLlhXmE))t%O-!i_$p=w>sTCzb`Q;$jRYh*++ zyAfnIH`MGD&%6?-(cuWQ!AAT*F`@;-2tJq*!6ikRdFdDqgc&kfhC@OOLl*4($p<;b zbbwMqL8*x;l_B{c$}hE|Bq+Zew}yJ46gNJVP zdGXlf)T|J@&m0i+7nkC&z^C0ugcRmTOo-RQFnYb-rm%k$bl);9J0^D3R~ofawl<%$ z_~ko6YvQ;$fQ-@V9*wLlb(dmyL5)%hmgGc@%?$3p-*MIfbaU5D#Cg}?|RHV>3wuFu7 zi-p7L;0}F6;Zo7GBNXvj3(o&VX>W~xDvg&jj zuE+V)vg}@SuU&DwEQdT>Uie*d>2pnIrQM(ip4;-S%S&_la$bfT6||@plzl8$I7eMA z&&c0orkImjo__ZSpnEv$*8md>9X6zXBNpl_cChVP?pZ%-?dCRz25Gwv$hW zoI&x5Dl=zdiU}C5R@u zmjmP+&zW!W^u6ImvqZy7-C7;-7c!;18&fbK@BOG|NGS e3P4@KUv}I$HQhLresCK5#6i!WXv6f#yq^GAHImN& diff --git a/_module/ncs/dlg_act_pc02.ncs b/_module/ncs/dlg_act_pc02.ncs index ed5393c7778d5cfa7a4eb518867fdf9c95f2d889..2e3774eff42cbbd4f1e396000a119d8e86b5adf5 100644 GIT binary patch delta 694 zcmZ1{vQ&WA&pB8j%uvt3iGhJbbtCUYmU_ko%#8p4|9`;1!otkJz`!U6BF=%u?m)$u zz+x3l%wYPvGy_om9|(_0S01RI;Uq|gDVd2CYz70ESI!7B_Xz_FR6RrvY(7&oD+9v| zMvwxD|1Z!~fNf*4nrzA{FUKSaHsk}E5*DyS{!T7pt*i&T^bZ3ID+5alBaq|?C`v6z zEJ_V5O)aVf@;Us%{UYLn1ATxB8km4YKLgmzFEBG@K^|a(I8uQDY}^m9agB^fW;cS& z=7yS`;+aYxd6n*pI$RrMtf>~9i&vh55HBks35fUGAY|{i8$Jj0eDUvnBgJmVymNNnJ z2P$>bRX6Rb>#n=(qAS!&U1q_e3l^wk5ml{()GPw-z307gX6y-Hi8SMRbKbq@oqO)J zOS!7NeRgJcL5T60Q-c2DQhYA(Y5WTzg*g@z;%{LX{eFL6*dGbHADEUM6UQ1G&3ZXk zU&>qj@};0Pan2k<#%Og?Bdcq@R@VdiAD}Npp(ixD)M>cD?nPsngO4pcO@-Z!X2IBm zj@#*ab9DrM9tpNBmLagA)>(Jk*zgP+<}EX3TJ+D?!6yKAgpK=e!lnR5Ihn@eFT!R; z%_)fUR3steo^6qCeF9EvYPn9k(ehfIwzGkKf9QO8Ab|<$YnfeR+$f5~BGgns!F1K~!h5<16$un~O~ zQApB&09^C>g0r^1)y3NoWhz$y$|WC#&RZWd^V?@cAo`#Vs^F_eGW|i!6<7as1AqD? zaejj+`Zc;wR;$kj4l-{+sU2#ofp1LikVdsoEaYmEYqjb1TJ2^=2F#F=s@ye)oS2a{ zr`L2n&YzJL_ksK1p4($N8J1Ev)}RNU($IH*ZvGzP%e#E?-1XP(-_+|0HA3S0w9_7 z;t;Sm1W+uVU^9)l&}N*~`sr{pHM9cYK)WJ|Z9nVjumdA6;(GB6x-?As4ZEgQTwM2X zeaV)iQYXqix9jxWTU%~#8}Y(b)+G@)5M9|LUb<6SsaJ0mSxC`P;))+bhujCxL?G{h zR4u4toa7jVLMpqk^l&bNH_c~1@dEBq6sZgW2x;$C`6f|!)2cso@S!;qVaw{ zpb2pc;NGH%9u}ktDtFwcRmFTbidnz^`rAWhl>fUx#y}+r_d}Q&vLp+S-L);x^^+at zlM!c7yc_Hcx_=FBzPm%t&}W&hxK3lc*5O-;MqZ`!DB?U3IbQvxbA0;N924&!{2L{R zCV7GbmhYV-7c=ti?d$Iz)WN9p`(&Wyn$r@`4D3n5+n#ANX|J9qdOQ^>h-jDDKs gph5+puHY{_Zk)Pq97;btjeX*v=TEdzdSu@J0ltZi`Tzg` diff --git a/_module/ncs/dlg_act_pc03.ncs b/_module/ncs/dlg_act_pc03.ncs index 84aa032b2acd0cd0d1977519bad996643e68cbc4..a9c26b56140f3764cb54c203503715120b276ab5 100644 GIT binary patch delta 694 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 diff --git a/_module/ncs/dlg_act_pc06.ncs b/_module/ncs/dlg_act_pc06.ncs index 50e03dd2e79182874aecc92bb1eacb319de1b123..e0a58a6f88638fa8ef4d825ed4afef5b1be1cb62 100644 GIT binary patch delta 694 zcmZ1{vQ&WA&pB8j%uvt3iGhJbbtCUYmU_ko%#8p4|9`;1!otkJz`!U6BF=%u?m)$u zz+x3l%wYPvGy_om9|(_0S01RI;Uq|gDVd2CYz70ESI!7B_Xz_FR6RrvY(7&oD+9v| zMvwxD|1Z!~fNf*4nrzA{FUKSaHsk}E5*DyS{!T7pt*i&T^bZ3ID+5alBaq|?C`v6z zEJ_V5O)aVf@;Us%{UYLn1ATxB8km4YKLgmzFEBG@K^|a(I8uQDY}^m9agB^fW;cS& z=7yS`;+aYxd6n*pI$W0s~rS1yRKG$6!YN9|}qDXwmu}zc6IL0<#5|TBIr*e3qja#zrr_`)1Q#%Og?Bde>uR@Vdi4bWdjp(ixD)M>cD?nGmmgO4pcO@-Z#X2IBm zj@#*a7wQQ7G7@ZCEJI*Jt+VE~vEcwal(EZWKjg5o#)+VaymD8`19~ z3P~CefNNe~a8}ngx_BF+Oyvqdx#XkJIqMWNzj;;!q7Ukz3Vzo}rvDdn#nnIEz@I)z zoZlddevQ5*tJP-%2br^=)F!pnz&9p$NTXUP7IHPowYu;1TJ2^=2F#F=s@ye)oS2a{ zr`L2n&YzJL_nv$28@I=D$g7o=Ym!T!Z#nCoCPnbvws&9NS}arwGTfPb@fTr>wCE&I&)|7vchKq~_M8hcKvhKWQ zVC`?<$aPpVu~sxKzFS!pNk9DzpZ$(EZ%OAtT>CR+!*6YG?((fwn~w+n(s@un8kC;(FmMx-?Ash+WevF0MPc z?y}{m)QNJ>?K(a8`i9$kgm~d9>yn6NL|68Rmu{7A*Q?iyETm{CamBBpL+*iRB9M1q zsuol+KH?aKLMpqk^x%BzcIr;5e51N(k8xE=k$Ke^w1?X#gar|zl}ytsBc&%QX@`Ya zDwi!5lWB@EV<7t;VkAQ`kZ+|tNH_c~1@dEBq6sZgW2x;$C`6f|!$qGMo@S!;qVfJ^ zKojB?z#XHB9u}ktDtE%CRmFTbj9I_`&yNSpDF07^jDboL?w2q#WJwktx~m(W>nA(R zCnL_Fc+2bzx_=LDzPm%t&}W&hxK86yt;4qxjl4?dyNL5d&uo>5+N=1>fX=+g=kk8>4?iUds9Owg7(7*&F`WYBOc7I`Df!HGpGM^2?R$zd+ z3v3*c*^MBx`JiT}1eX+L=B0y74@WT`Y|0N5QyLl3P2q-_;+a>1;Xs%Plkc!gh+)Wr zoj;WQ00F%Idu-F}_ z7!z2X04QAm)q6oqg7O-`spKSBW*Z`v0M(rW$2QO|p!&%j+yad2CeP$nVCv&pB8j%uvt3iGhKqU?cBbMkbE%$!i#$nK*g2{%78B9-?W&q0lf%4wV1LYVjK{CwlOsrt_3}9Z>BI1JseZVp)5bGEgfOUVEJdahf z{*M9!l6p~)dRJFPM<>rRBgF{CNX3BAU=J2Hps|dsKo>GY>{DO>n$3%%7Ul#IWuO$J zqKGnB;0pr_Sb$a0+0n;GL>Xv?9wXR{A7C>?u%$rnL%bpjN(4L* zLlhXmE))t%O-!i_$p=w>sTCzb`Q;$A&kOaeudSAr;o$-jXV|GCM&tU#(} z@_Z1bHTff}78CEa$+B!MOoIKB*KsILKEfu?B>a5xM|R=KKiKS4&!NjC@(Czv&LsF0B(nJzhc8PM;{s;J|Ns9# zU|?ZkW?*1olmijxz+!ixVoYGM3MOVS{au;?sQwRx$D}I{RL^h{B*T=<#0oZp0n96( zypUIli79&WUS4@7CacN!K$PU<|3E>;zmui;D(k_P{9#~WWngJx1d==fMX3deMX7~Kd-6nnNll@k)Wnp^ zkbDs3ms(L0lwXchwUjnKRZxdQg07Kqa=f6p0XCy1;R&zF{{{P*emiWQAe6_<^vigX zn1btKSO~&W!vFujd_nOHq|YE?{r~^pOyF3z1j+oiK*Tzb=QBA~tbys<%gGaj?rc6R kZpp;-`4X6YOX?OA(+4RayLGd*oIWGdyA+W4WDkW807gRg=>Px# delta 1261 zcmah|-%Aux6uxt2W_L+<*KKDa+teL|upsRRVGDw}x}dUdql>8##O99Di^j5+RPe6Q&`H^a0`W=5qm%v8LiEAk=mj?yZ} zE%4XTIhRJ~9W|g%(iNwl<{Zu7y+%XMC@9MqnRfPqhgCUGfvU6ggY=xs1O8P!%(xE2 zp1UmC2>u&9l3jCkNoOG`3Z`j(C6Xi(LWFAefzKFQ%*Oy@O(1eB`T~UIZ{)p!8Wtn( z@njZc#31O+(^>aE5TDSu?ivv9&}D9hsL6w!G~k)YNHQtcQ^uu4%IF?5QWMxTMx;6lCIx^~L(n$Gf9=lC)Zr2LdPllSoJ?SH-K!Eppa3NVZ|993v9ZTEZQdk7@nd zfR@pF!EyJi6EGj|55|tth z-cUcSZ?!uP0{!Bx%;fbaJ4VtrDvE5fo1#~b-habj^4qov&g~$$NN*$R&6pcV)?@RC zr&AY4h6_|ob91ghg*ALsipu7jVk&$Dk#S>iEN$4}g)Q4s8nzb88eQd!W%ea5md)3i z=Jv(XXWqS;k_-;y0WOpVK(%E(Mj{zA#?w8cS4x5XU9jX}fu9$&CDMtGk(NQ)P~o&V z;9X^eua^Xw0vQ)rxAR@y@yeV41Yu1BWEX#eI2Z>Vs<;QMk7-O@%zpAs0pzCXuo8^; zkrd0e-?eG3j#~p->$0@vz5DovLwxpYONBRVn(KsqR3_n%o{g!h2){zC$x=34xd8C} VCi}mgeYn3tfNvjooIbDq@eeqXtPKDF diff --git a/_module/ncs/dlg_ini.ncs b/_module/ncs/dlg_ini.ncs index e016a2d4b072ab1b7cadf1771213d1efb89b5298..742b799bc6bdddff9cce61b99b0d221a97d5cc52 100644 GIT binary patch delta 261 zcmew_@=A!;&pB8j%uvt3iGhJLYa;J64kigX1_lPE?1{f+nAp-MOEO*)V_3_``2YX^ z9}Fzg3_$u1NCCs$$*fE+M$90IKMX9a3@j~-K$0h*D77H5C^fJ&wWt!v=kN>ni-->n z^Z_bpU;+~TlXaM6C+9IsgkqItK($F0WD}bL$b1o()Z&t&{7R?=DcEh8EXAV4^l#l{ qI~HB0fAy1dSu~jbg+h30n~$-0F*5zRwONQQmx<|D_U1;8e~bVsg-+H0 delta 504 zcmaDQ^k0P6&pB8j%uvt3iGhKuej@KP4rX0B1_lP^hKavrnAmG3OEO*)V{Bw({Qv*| z4+a)#1|a3|`D2jei(e zfT}qB!u=xRg9ClQGAT^VV0r=A=nqh%f5?J#@j$GBkO~Y)W{85!aCKF5bn+}SQjAcH zR163W_F!QHYGPz%V6bF{=&4s=09we4q8Mxn&|MF>IR0$DuOZ4R!?aGG0SG+hfCSSMCRP?^ z5Esn*FDA83o81&OpGh-- zLYIkI4oJUt2glI_FuN8JM?jg0lNCMXnO+x6mU9PE{*&!Nl-}e7cV}C$=YBxr2i>Q9 zu&@m-Day=C#|WFrAKmXWy;wc@l82h+Wn{O!G(ouKWfrnqUe` delta 1505 zcmbW1?@Lor7{~9qcXvo?8ePdO(=o9jH8;()qHvD+qhwBpxnw1h!z?gcW(k&{^d{eE zC)k@_^d{dd0=tHPLovuVfuJxpB5$U#7ryYty0>$ldzWX#3fhI8d%ov6&-pw*&fVS< zU!=uCuiIaF)oFLMaOjD&RJdy656sAMTZwpFz!e<%b(|o7!a6US1UiM8ii_=KypWVn z*>9mdbd!omjvy~8!ArHZttOEx@P$KTgW*v3gHU)sYoh_j!vg5Ic7r%-Qe+9TrC|Fb(VnTn#I@aZ#S7KfXH#@gkv1p zO7;-vg;};42FXg6kVUeBu*;c15G`(3XQyN(KI{m5?12xdBFhOJ*ya0uUOkVmJIZjq zL$WcDOjHD>k48mC3{maUs3d&PQC69AhYpa&FCC>h-Krl9w<6=V9+>lcLW4uz(4+C5 zyAN}np-yEIg^Qd=&Vt!L3Z!Xj11~~>g8yBhMz%oGUvt~Q!zqMHM=ht#V>Y^hsHBYM z0oQ#z?A$?Ba&O%kGhbXJ&oxaT-c}$B=idt`f#;g6c;jL}T9X?u{p3*ygn+9b1!dW# zB2**4b5A1vTRlGQvDmBhll07PEkgg#)8cLY*zbQ$`+kVDiGs)_C^eC_6ppr4@LQj7 zj1F({PMh0H;0_u$V8}ln9vK~m6q9zN?v$td2`3H~b5%)M(1CD&YnU2rs zMR)`r9tdrNoAq_A__|QE05wPEgQzA_9YiDO%?f#6MQD9x@CFjfr{5VdWwMj`3TkTX zHE1c)iS)}zxzyMKXxoNH!PMAe&=f?5J{xNv$ex YLayx8WVx2fmAc%6T~&u8C#R6-7blSgCIA2c diff --git a/_module/ncs/dlg_lgs_ini.ncs b/_module/ncs/dlg_lgs_ini.ncs index 800389e94e3c83f4778d04c7db24e955538f3eb8..72e20142571010c1d98e036f35265c81581a73a7 100644 GIT binary patch delta 2375 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 diff --git a/_module/ncs/dlg_model_ini.ncs b/_module/ncs/dlg_model_ini.ncs index a04352bc36a43461d857aa2d237b0dc70ea9b10b..68337f14f5661bb0001f37e1df8560900a3fd469 100644 GIT binary patch delta 2541 zcmaKtdu&s66vyv9>(;Ja+il&tKGwDLws-5h>+0C1I2jBW!NCUMAtW%NkRbw&DWD{P z)A#^EI7a`NiC`cBB|(@-j8RySgzzx(FwP7gu!#~zKyi+&EA@9zyBAacx%cz?-rqUr z`#ZniuibtSy7z;+cG7Iy++u&QisN>7A5pjP3jZCRkH_QZ@tV$rNBJr!zK$mgt(Xf{ z;4i{03Ol|80u-0w#S{Tgfdhhf2s2Uw5Nst}lH!D59pOh3${Egtz-OdX%X|=6hMAs9 z2yMZYh52|DSXyM*uzL)UK%r-Q4NlqE_Bxaz5bcQsY$Qci`UL#%=UC#xzIjsfaq2kuR?-~p8% zia4?sRfVANAVWP?XFLLhi*Uj?1HO~t2B95KX4HUq0e7j*D5^ye-z035a4N%z3Q=a} z*!~RQkJ(O)tF_>AVy5Ovu-kF5rUsmTth1OgQ>(xW8W9{_$zc#2?+$&5Xp6v6Gc-J^ z6+w6~G>mCQh0sRcdoWOF!=G$woS&%$@jNzWhQWFrKge7J_D<%KbrB&>^b1D?-ra`rqhDZ zgEhLTkbj3x#-}H=Ur#D>zc6vYwjJW>Db4 z+#pzDY@Gr=$Q8hHjBtwH3zlVs@9BMD$tJwX)ckhBiaa;uHxa&(=Yf1X;SWqTUnVRv z_`tlC@I`|k%+eMJc!8m*lh9^#gK0bA8lwkHj}e|=XzU@>nglTJBb;Y)g7GQBy^@-= zV{(Jx6scuq4;a=FzAm9a*kSfV-nWFF`~c)_BHS!t5#i;059m7x1&bH-><(FGg1(fL z(-sHh-o{&&Dln#Du|5YU6^M}gES=XK1y0BnlI<>qobT9qT?$!7)>k|0wj6g^>p^!9 z8^DBds|dOy*kGRqx)u1Gtr~PTN~%plP9-xxwiGO$A}QGXUxvgt?*< z)bA56mav}ipy&lPPuMT|AmcDyXze*xX%1u<+D;ah@F3q#B@8Y*D3cjn4p7dfumi3D zq{j&dTuw+oMmWXI@EO9l-CjsH5nglqKyijjsJgMv6N1RCwpTr0^A;7|gTFYLEQQ?; zUb-S&AEZccK8(wKg>HUk;^HU8D^_VrxikTkkV;`3jSBF%uO>wK1~^$NCwqlw&x~13 zk+ls?k-Fz2O&i%*Q9G}8{^HqnGuVVJz#cpC@t|cAh22kvjmWW8%ArZ-ST?)4sd4p+ zFVATTYr>%fiRw}KNjrL(y@af7i>1>k4 z?D|N&Hx_x)}2t=d1p2nvHvSu{vq`J4UqWA*Dw74T=h1di<95T6M%ZK+X9)A#^RXr-L=|N<8zu0IaE-bx?S4-AHbSBn@ zOCZ{aEnyL&6Y=A)AEI-yGd!bWutjV=Tlt5*ss=ZvW_9zJ4xlphGR_FAv3I-{GfUH| zZ&3J%v&P!2OSHRRJJNK2$FS+BW~Aw;y=`IXMjrY)m}9*x9*@=H-SMW)e-7HD^9a&v zV^-37l1H0%weKuxzb7^JkHG%X`bg_eYN@1kk@ibcOOv#|9i&}NYI2(QMZ!Mx9dFxK z7UrS%Hnx`=`K8!dZd~=ZJaMUpJw;0?$0$#|*GL=XDXJlDl&AiF((aD*)Vn`XzxR6E zl8S8$ptYTqH*DTJo~BBjPUZOO93kODa@^Yau&2GsQF*CPt;a|k^htf%bDgw7pVX&4 T-z4g{o=t3D;;EolkB$2Wt+p|H delta 3052 zcmai$du&s66vyv9ZMU+uYqz#rA8Xg{_O|Q$v4?;`+(rk(IoO!8DT))S*^GcVaQMhf zh{gxuv4bzr2qwrwqsUBrMZpIN5f=qt7#|TqBauW+kVp5Zzk6=Gby4)M`}v*z&N<)T z`JMCIPVa&ZdqLaUxX5{ZEF5j%xUCyr)2`>$(T90Holbv(Ck<9Sz&AkkV|d70fhK5x z$U%HiU5WRB0P!F3m_oo0!42`J2sMfb#2X23QHT(`M7U4FR~asV*v(`~C_@m_pgu4g zYO1i;TaL$+)eyaxvWTiC2);yFHmL-Nd_pc?tK1M-Pw32xKqP`~dGjFrGg;ot6Cu2v zP@Nxy@O;9q{1AjLQkIyJvizJs8$vfwmV|l+_?~82=0fld{BxRsXVsMuTt!$t%?&{> z;r-LR5crnxh=iLM&WAuFS#BwCgFi(X!ljhqRKZ;Ecd!g*oKrYk?Ln&K3EY`y$32B% z@a-XKBZYDBwJ|Kkgr*jJN}S~~<5rCy#7;bBL17KFEOX;CwHzQQ)U4fQ%T4i|aA^LS<%1c-uDAXI1wpDGQ3<88t-%RX5Ib9|vs#>j?p4VkPJUG>HA88+1PrzAr{V zw~^4~5kWVHa4Ey06yaV^5Q_E^raU1iT1@j>d^gL~0op@DhrHE1u=hYpVfIymCKJKu zhQbkY+vAHs;cmiFp9qCF5jOc58VEQ0gHZ4R;Yoi83RY1H?FMWM#Nl=vdMNM_Z~v5L z;T)$_D%dda(nRp@fI|AhEW9n`jXE?v~tB1Per%XzpRH1~ht zrl4hD)XC-SH%a>w30HkX^V+zp)79l#c-^9T$~@-GGYK;kvR)_0Vr!@D%}Ou|>?hu3 z6v)61PX?8%vA(6nD6kk|o?=|27{-AqK`7yZg%kOzft0e7$$9P4De}m(D0BYhi~3gg zthha!%^|&;wOKKA>M*VTQ4hAS-o_2E&uCUq&c^>K#1*-PFedtw%hvQIvx+9KFI15`J7G;6q9F2r^gl48Fd-gK|CM6bs$G=&NZ{mx@-`36D94* z?&a$`R!X1NWPe}#%6l&7H}(@P``>^STDG0e*w`gA+i}|WW5$*z+0NVdk@35XF`qW> zlMi*lJanqAhKF+rjD||tERVF)X6gFaE7XuH_OFcaNvR_uZJr|a+!)!WNKMJMDN<8s zXrELSsT?G=;N1JNtiKwE-kkn;7i_agvXtrcP7f{}v~+H}AlGhE!j4N*!ceug9h)MH XsD@<1_$Y_QBx zCRP?^5Esn5Ie9OOJQL%N$@f^Km>B0w{>2hi&&&wY%D}?Pz|z79BzXdgQVSA`QUgm< ziz}}i1^?@AE1H;CLqzzzzEXvg@FZPt1QTPHV9jR0c_k4sBuVUH-gOOgPNTZ zTvC*omku)B8O3<8DL)iI+C^L|Qj<$dQej%~xMy-Ao0twzi%?K%VoGI5K8W&5ttbh~ rF9%tHVguL%APxFJDQr3RL!7F9Ab0uB4Y zzydLp8Oj40z~BYu{b67M>f!JU_lt-R4)g)bq(CfZSOC`jVX^_cWc?on1|;>OAoZ@U zijGd6Wk!k-ijj%|p}`(3Y(QffSs55CnIZNmFaXWwMNtcLf`~FuicwKS87%OHfdwqU zs_5+K<0GOBG((ROY{n0;86x#4hJY>f4}jZe%!KMsS&;wO6d1ta!3PbGl;D!0%)E3| zl`z}oK!L6ba~wDn^uRo5_+%jh2&m8y;ysuHkrWaL7;|{QfSo4dT9KMuT9OKLAvnq= zE3in)B1Opm|Nqv4A_Pdk1Uvoq!oa diff --git a/_module/ncs/dlg_store_ini.ncs b/_module/ncs/dlg_store_ini.ncs index 259673b0dde983562f6bd4ccc8265a8a7d04cff9..0fab96ab42a705dfbfb8b230c5bd3940a7e1ca44 100644 GIT binary patch delta 1024 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 delta 1807 zcmajee@v8h90%~{^V|WU96}s$&)sp)@%s=8BhP@#WB4JK)vOe&RPk{E)FHES$---pfaS%35gZ}z>{`}298 zFFy{B)72|vYh1n2``}%7E?cE2yLNnJ>rbO%KAEP|V*UYnjc+2qVTWC(_qZI{%bSsp z@{`Cqei?~A5`854Nc7XCk3=7dJ`#N-`bhMV=p)h3kUkQ9B>G77GhQMumuBj8n46G~ zaTwXmhmgzpL!_ODGd*hFEKlKZj+Z!e`j|_R7(imcp%*o0DT+pd)+&*~T}Jgc|hc-NPj6Jxz$l9y#^^exwBwUCeB$qK3u{Kn&1RrD?wda9^{ z+mQfIP`w|313(u*0`#ET1i%5{6+i;KLA4Qp10Y)f3CIqr4FDVfIRZ#PPEf4}-~h-K zKmu}uY8?OvKpwzo&x<4cdOPzq*Y4=uEOTkqDZSqj!Dk&$^y;RFJ2Rh+i;yP-IAC#3XtAGd3?0KOp{7tk+I+s!yZux!9+<2Bj60)+JNxE#B(W{QJZg ziI1ARD=Nyg$S)>o<`1yBQhZQ+%;a7k#pZbNed1SQz2G|LP^GJ72V{}rJ=-ToIVTb31)Ql(B`LV16<m&QHojsF{%Hs)%c&Y(Z|)yUn}uTR@^`Sg|y{-QNNo&0>L zjQhjsMopXD>JHs{uH!$?#cThnex7PPvOS0BI`3^iMlW#RR-GFV>cA{N z8?L5Tcz@eco($*H`<&Lji^fpZ_|5J==|@~)IsP4nBO7T0cGsvg*Q3jMBIMvBJ7@j@ DnCkF^ diff --git a/_module/ncs/dlg_wand_ini.ncs b/_module/ncs/dlg_wand_ini.ncs index d2bf3ce7668169adb222e99ef9e94a7e5d0b82df..fc94c5ca1379e84b179ec468600a2e4fa47e910c 100644 GIT binary patch delta 2621 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 diff --git a/_module/ncs/dlgx_mark_select.ncs b/_module/ncs/dlgx_mark_select.ncs index 34c55f57824f17e0d518b8ada7d51a89f491b1ca..1b56c7ed7987ffce52c95faa0e05386fdf09ca87 100644 GIT binary patch delta 163 zcmey)a-50R&pB8j%uvt3iGhL9eIjo(6T{qzSw>RKjQ{`t|G~h*%D~dd2p?_m?S1hB5s%%rtcBWLXw`~`BD9DgyHKj`&+!L}Cl5U= z)J$fp9Z=^mLng_aCrRuj*7ecwa0I|!_W{qE1uG*HrEoH-#3O z4g)_LXL;l%X`Td8;HBXtR(awlpcl?nrt(;<l%j*gTB=AnRqEsiGcY=$NxLE^F_( zs>)d%&xPrb8b%CHl~9&y6C} zL5-o()x|(l(x7^i>36wPCeMQ4jn(7^^5nu^?OTHZd diff --git a/_module/ncs/dmfi_activate.ncs b/_module/ncs/dmfi_activate.ncs index 2538baf8f33d2130afcf2c7ded049c0310776f18..1e5142a7518fb0171bd57a052a8376d590166ab5 100644 GIT binary patch delta 290 zcmZoHo>|Q6=NzmMW~gW2#K2%Vb0hC*QO1RvZ;GlgGgeLhC$W!l_vF2jI*jipzmh!9 zxNq_^ENl!wz`_h7Ss55OnI>mRCowLad{$bSv3m1IX(mR-y3Jo?bUEY$m>K{7 z|Nn!5g@u)YDgK*j-qf-H!{V#y)Z zAK2_Zre?($yqQrwoRN`tbEHNCGh@%>TiW{=&u*Tnqr%9$LYe{SgeM?FIp$10rF($! g_U3LqRz}9FnJbACA4&%$ouO!bi zE}OhdY6*`p3o`={ure@kGEOd#PGX!q`LeV!W9H`X(oBquIh%jU=yEXHP1aDAWjs6i zp18#1I8_n$S8511=kRd>zAPXW<3_Yj%1J#xrYF3Q#n}yZG z85!9(XKOStGqz2BqrH#u_~z9*DvZ2~q#1yQKLHuUF>Uf4-2;qQH_z2$Wn?_Rd9i*0 UBV*iV5yO`(C`NAPH|t^s0A#F3O8@`> diff --git a/_module/ncs/dmfi_execute.ncs b/_module/ncs/dmfi_execute.ncs index ca781da066f3b60ffd3cc493df088b4712ee4180..817b5a738818120b92b9de33024101b8e36863d4 100644 GIT binary patch delta 4409 zcma)A32;-_75(=~vNp@ItuN`@#2#jIm9@4Vwqj0SYY%Nw6sdGMKt=5w<=S0cQC3o^$TK z@BaVZfA7mz?proIusEI{G}iw@_ndBp3K_UzyW>>?f2PYwK3u2Oq$hksACT_wGR-yQ zLM<&e^oDO~xgn4A$)mM~o^az`V{e#F`xtwXrKxnj@mVOQTN(KH2lSe;J83APnyCk| z_Npi{724nxO!yAG6@PJFizzb3DD0mBT3TAJDn^r{bRiMc_4d@I_SD0~ii4hiG(d>H z+c*$@OY0kZLo>BB^@P53KvOUCpcI7-avjU=gIck?X`d^F!4{)|4L?p?6>&{ADR9yh z8e@W;ro<%Kib_Rc!70=QJv;USoZ z2FFdr%RD&lBrT{>Cprh~f?kk8&fPk8ykz5ZbnJ^^cD;_B5N7Y^{=YOv7-?rf(nXR6FeJgQ@h!)z^F8Oi=Gv$eUk;0vv@uJyxNh(%Ro_Fu2fSFoW(qnns(m|^ZDrqhU*lfi3= zHw$Ev$a!5LM;IL!$RZGNZp1(`_~7@L&&@n6=4K@RiklpKpBpFc2W+= zGw%?=MXVB1VGVLUBsqZ3AA5(zQ8+;fowhI%QqY3d$SQACC-DSf%qY3}SuYHgO+c7x}21VP8K1gG0Y*`viHeEI; zWHN#uRH()WX`q=tW=xA@$}!guTFMfmf$wzX@j35qh;!rCw1^Tr5Nq9QQ#LW>z@iUAFL=azcg0++mb07;>r$aE>tsP5;OE5mP zp(9KHQh6H<888C2g+^t-762m3g)+Oq&GF>oRZJ;`A+Q!pN?|C^DTU0KC^c#61Yf9m z8T>KEQQUU(V8;A+AT_ji1!QGp&)01Xez`H&*Xr0nnEg9VIHPLz|LMeMq!^n+>#I}} zJC&X)VP*veF0rYJ#nO1<)?&ZWrF4-g4jtg^S%m-x%>JCEyjgH|NBG7x3X^KTCL6A}8SV(T!p7yc>)(q3S* zUk7>EXAe6!F17mk*l{oPBdI+in9ue?e^?qpl#cxOV=>lwvVxKr0KZVui zRIYjpab+djV`f)E1~hYj2<(*9ZB8wee*Z(ziFh(4c;gTgu1dd(`)j2idzb~eUzA{s z0ErUhR6z``Jq!V;!w-*u2hSdco=__Nt(8p7I0D&3?Jb#kN0@qp`@>HmxSi>1#7&ST3Kr&qCE<|OW~g1NyN-}8JF`Fskh*&|th zob77HY6t|cJY~k`$Kbi(#HR`_3V!ueaXwsI2Ua{)4PD_Ea@pk9!0>3B-+aG@TWi>3 zVvUbNYb_*^xDvTM&hX{YFSz)LL(*`ONsx|Bhe0Eb!Mwtf?;WqW8XS1OmVKI7Pq0B_ z3*?}ca?oi{Jt$iu;d`~=g*wQAzOn~fbPuWV{z5H=r!&N;R@Pt1`&720wTGIfzc4F9rwO1iX4CSGlSD|0*q-?$&nQx03 z6Eo~h5zH0ASooZKt%5lv7>zTYyMj3&7)8Vs31+ikKrsFB%_i6bLvi3On42p0_?X3F zEuCf$i+>D?HPzCRcs+FV7Q6x^aS0B*4MSe9;I)jaWp#c9`MaV{u0fRw{nZG4s;Ku+ z|C!JyMCd1U`dFd&6S|mpD2vo*t9c?IDI!4MfQ##f?;>nqr3IIcIcq0pw^VMQ=m zA8Z>8wfZdEaM-8+##YRRcj!lKLt*P1_TdoMOYFng%dPqX`vVZxw-MNOUB7HEVyE8M zHOCO43VT8d z`tvR9RFi!Z7hM8X^LJRH+bpRwWor6IxMl*V)6@4_ zqO;9ti-rBZ$={-5wY7L$UK^T_=VK!t+{~Gt-lK%V<`MtUSB5ak^>@ZOU*rGuMFNfi2 zcvt#!HS+Vh{~Ek0sRdC8;W7<|;iwGAApJ8LkmK@wEtb%M=QAMe@_iTp1SwhPxwLG^43Yh3~f${{(^3*vL z_K*U+wNL}eQpn!spM>XaERWFCzr?BtE%6HampO_0z{Z|(hvQz#&CH?r?VjRx?4Wq` zD{3vi9^%O-Y2Ysuz4Ua3k6PNjB9f_yD2%nXp)*mc=Rg#mf-@M4fi`D9Jwm6HJ(oDz zy_Eu8Jq1=%V0=%3C3YLVfG+VmES0!t;JIG#AYO{WI5;W&syO)%N&ny6|3vyf&n3S| z`u<+zZ;}3b?q_lTHCWBfAY9iQ?uWkE+8c7M59#g$=b#$5_XXAXPah})wm*VpdGK90 zZLGD6Vjh04{D;tI97PkAD%2M)i(ZkeLQ>I$7`pB%5 zmHNWL6x?MA=9$4S^wPuB;x&Zxy!}6_SGTH~_a#g2K$+_`Fg~6qUD0EOYC&q;k~CN* zrB1Q1g(kZSR~yvQ_u&qjMoaCqBn_2Gz7cv+n+iUCc~Ox0Zs?mE)dGKoC3CdQ^nYMs zOC_6@jA<9CzH|p}5727~Bw^_qI-mmouw<9XZ1uE-eNeK&pk6pcWx+gtKx)BCOOAO~ z2G`58GT2IIrOHA+tWasX(4Vk_rqjZcEQ2OW;qX=c90_YR;$+n>ijy_7ke{qUSk4bt zwIr+FGSV$a<~aBV6nRdx2t{O^;@1k;z(nAAgx#POPZx1{SX$z;|FUln%*P44>8pK_ zo9A)<$1s9rAC(~M6BtQ5S_GQ7zYx3Xpcr4RgA6R+15dKd!;(3-2NqN2H_^qgnEQWV znougnGkf7(7QVuzilGgEwi|+L+nGIE`SsmP%Rv4Z=A{Lw>$r7aTtiHoLK1E{05KMtBAGG!De9O0%Kgxn1)Di2gI6S{9-#Or=}$jEarKr2 zn*{hkg1_;sdAO+_va$a`D1bQkLrC)#vp|~!yAQ%pSS5W&1Noz+U*14T>75d+7vLQ{ z-T;rlEXmPSNmz1-WK}$VfTozz0E1Xs6Ye+!)1V4Hhv8YUW26Z*8^7IcZluTdHB%97 zhanCtyG2SG;b9U?OrHQ7EjWUMnyA1+`Tm>u`yWAv>D?h6O)#ILa0oP(8WmZ%wh12L z!`z|<%7`G%l!uQVq07b0X2@V(m(=@E>OF4Ji{Rcy@M8H4lMrIgE>WC;Ct;+Gy=oV$WPH^MWp*w4KQxSq zr(v*%*{9(0%aF_LLyX^Fh7l=GX7MfRydg%3)e5@>b3rgJzJ8&93Ff$9G{IaJOr4yI zGvSefc~3APn0zd`My>4vUb{xyVk6GD4w)?QobkeSSOVUFlMk?;rE5cxqMx`FKz}Fg z-OYGkCq(I(p2|%nF6E{a*KrfaUEBbk;^sWw;-((8n~)C^vGgXPrC7<$RIKLaKHSV> z4My`#7@t;h|J~Q^=W|obvXA+*_$8JMG1-}Ki64AP?B0Dz*@ERR7F^!LV6H*^?*9#* zF7|;`?GI5tqO@BTy%SQhL4bC}uJ*Mm8|^OUf^fTy$s^*1D3pFF(CxA#-|!`~`RT0X L8Dm*C>!15yZBG_$ diff --git a/_module/ncs/dmfi_voice1.ncs b/_module/ncs/dmfi_voice1.ncs index a09aac8f541f2e6319cec30626495e2bb4556d95..f8b873d331bc33316fbd717c9f3c781d3b1a1641 100644 GIT binary patch delta 109 zcmcb?{)C;^&pB8j%uvt3iGhLn$wuA+Mn#Svmp?5Wpb|q9s|_KokozkYHqG YVBln$ypz#MWtuJnL4}(onf5aR0HYfXEdT%j delta 101 zcmaFDeuJIY&pB8j%uvt3iGhLn#zx)(Mn=BLb&T>dDLMiS5Wpb|qJ>$Qfg~d<0|O`H V{F}4%A_~I@#6(><%lyfHHNuLBAQ1^K z-u@s6!~&rf$)UoFQm8Hz!7jQH0_&oPQk1$;*7?p?j>PEVe0=Zoy*$tJz3=;-XAAoI z1-)^9Rh{jS*X;=i2+vyvN+)#_eePQsTs<33ell}QBhRXSO;;s`WTBK6p?i$>BFs+ZItDXs%7t)iI1 zm5?YRAr4_`DTjxAHiR)jl{=JunjL9oi%zek3aTe;5rkL`g-el6K|2a97rACsxvY~B zm$j(G@{Apl208M#Oxy&9#RrLTDiVUp^c zxB)MHa$*1@)Z@Y|-ci7fX7Lo$@U(G_H*T0Tma>gT+<7d?Ezyz(SH*iQa1Hb8-t{6B z<1(v|oStEabDrbSU!%%I0Xjft#GB10$89F@Ou&ZG`ZFCY$4KtY!;u#nA~2> z!a;tVZI*RAS-h;q30b|-8fAr4K4++-)sQJE0>UMyNm+HuXJUfFCN)QnQgfpZh2jiL z+5U>#Z1ceTJPv%4eqSB)JRJu=>BJ4ub1M9WqM;d?Jt;y{n2lY zlYg8~QH!L^{d9w}JS>BEGg{TUt{hHrj*-}2GZI@|>uK&&dzksG!mZ(+qOGIHtbn$? zk&mo0dGNc0;U=?{oE3;6$&d7mzV&KtV|;&AOW+e)@5kQQdiC^-OJEmHCeLmJ6Ri9p zDz79GS!-hE&&62lSfaIt*>a$kyBUnS3C%~{6mE2r+xcHNHbMO%EK-XfY4o!S4{%&n KmQ(iNe#b9FW*?sb delta 1010 zcmaKqTSydP7>4H^&Cxx3$`;+7olJAvaZ$6>-FDM8!Hlxa63mN~u(~jH3$a2BuOy;E zB)$rSFeEB36x6|t3L+v1k`8uNS$5F@LdxpK*yf+9M1w8{{_pU=&-;Jhyqt}jn2j^< zD6etV=6mx(97ZO(&0}T^84;wLMsx{xVq-XtGm(^pRN8GqTY^6Z(P(smi>0n~q|rMQ zTFj&AoSK_=sIB3Pw9kyExKH6AoD{ZTn6LguBVIVjWyPqFsVTbny%}quS zvhaZ2aZTz|Yze}ETE@+zIX~j5$^j$#`XU>Wm8l>AKCJ(3>LcMJTPZ3sj{bdh3X}T% zYEJ*PI!dt(HB__(CoPUAe?}IK{%oQ~5gqZ4?d*=DOvisNQ}I>H@jV)TXNcinEaJU7 U{^0-cKg#h45e=pID=^Uf3*k%&vj6}9 diff --git a/_module/ncs/dmw_do_dialog1.ncs b/_module/ncs/dmw_do_dialog1.ncs index 631e4204e174297fc9671451a193b755bf784d25..49829ee576805a3109bf0580f69c43410fe6eb27 100644 GIT binary patch delta 653 zcmZvYT}YE*6vvMo|QPP>}>u4Z1Omz#uPz zMB1M&M7szoyfC8PqN@y}ylI=b)ChyM6vFN@p&Q3~-i^?K4?O>KIKOkAbDlGjk$z<) zXT1IR){_CR{{Uk@yIwe#Bq3(Mh~&5-lvPW>3AUG8??RrO9(M-AKk%S z&7{{D(@g%g1hICK|(?KXghYAu3#Z5%0D7q*X zB$_`Rii(4alTsgoQ)xu#VERI04I&i{MWk62n=v)s*A~(@+;i^v|Ni%!%W2rsOIzyB zj$aH;#=_AIW4}U6-G3#TE68C=A|gj=4wuEfh`flWuq>PO0^4$&mwsbdiBb@kloZV) zucZ0f1}aLLMsZj*={nA;5t_yg^_b}NS{yup5$M@p`ee^Ta@$!`3pvjqKF%DI*y!?q8>aoObS>PW1<*H zjrK6coWuH^;E^RKDU9iaOew94!ly7Qb37~6ovLfE8nkoxx28FYa0_k?+C#FokGKBvy}bW5~$|& zHC$NiWgoXH=$-XoWku$#cjzzn@z!%ZbkaTCu0?3ldR3dy`G|?7O+Oxe4_oJc1c+=a PSN|aKqnb7H^9=tF9e2v^ diff --git a/_module/ncs/dmw_do_dialog2.ncs b/_module/ncs/dmw_do_dialog2.ncs index 6b6e0ada46e8d591248129a2563effe252d58a96..2d0627f3deca5ea648ff909769152ea5d811a720 100644 GIT binary patch delta 653 zcmZvYT}YE*6vvMo|QPP>}>u4Z1Omz#uPz zMB1M&M7szoyfC8PqN@y}ylI=b)ChyM6vFN@p&Q3~-i^?K4?O>KIKOkAbDlGjk$z<) zXT1IR){_CR{{Uk@yIwe#Bq3(Mh~&5-lvPW>3AUG8??RrO9(M-AKk%S z&7{{D(@g%g1hICK|(?KXghYAu3#Z5%0D7q*X zB$_`Rii(4alTsgoQ)xu#VERI04I&i{MWk62n=v)s*A~(@+;i^v|Ni%!%W2rsOIzyB zj$aH;#=_AIW4}U6-G3#TE68C=A|gj=4wuEfh`flWuq>PO0^4$&mwsbdiBb@kloZV) zucZ0f1}aLLMsZj*={nA;5t_yg^_b}NS{yup5$M@p`ee^Ta@$!`3pvjqKF%DI*y!?q8>aoObS>PW1<*H zjrK6coWuH^;E^RKDU9iaOew94!ly7Qb37~6ovLfE8nkoxx28FYa0_k?+C#FokGKBvy}bW5~$|& zHC$NiWgoXH=$-XoWku$#cjzzn@z!%ZbkaTCu0?3ldR3dy`G|?7O+Oxe4_oJc1c+=a PSN|aKqnb7H^9=tF9e2v^ diff --git a/_module/ncs/dmw_do_dialog3.ncs b/_module/ncs/dmw_do_dialog3.ncs index 6aebfc04c1a354e560aaa9f87a09504dbc8af3cd..62f1d47be3140d9b411d9b9b566a4bf2409e0905 100644 GIT binary patch delta 653 zcmZvYT}YE*6vvMo|QPP>}>u4Z1Omz#uPz zMB1M&M7szoyfC8PqN@y}ylI=b)ChyM6vFN@p&Q3~-i^?K4?O>KIKOkAbDlGjk$z<) zXT1IR){_CR{{Uk@yIwe#Bq3(Mh~&5-lvPW>3AUG8??RrO9(M-AKk%S z&7{{D(@g%g1hICK|(?KXghYAu3#Z5%0D7q*X zB$_`Rii(4alTsgoQ)xu#VERI04I&i{MWk62n=v)s*A~(@+;i^v|Ni%!%W2rsOIzyB zj$aH;#=_AIW4}U6-G3#TE68C=A|gj=4wuEfh`flWuq>PO0^4$&mwsbdiBb@kloZV) zucZ0f1}aLLMsZj*={nA;5t_yg^_b}NS{yup5$M@p`ee^Ta@$!`3pvjqKF%DI*y!?q8>aoObS>PW1<*H zjrK6coWuH^;E^RKDU9iaOew94!ly7Qb37~6ovLfE8nkoxx28FYa0_k?+C#FokGKBvy}bW5~$|& zHC$NiWgoXH=$-XoWku$#cjzzn@z!%ZbkaTCu0?3ldR3dy`G|?7O+Oxe4_oJc1c+=a PSN|aKqnb7H^9=tF9e2v^ diff --git a/_module/ncs/dmw_do_dialog4.ncs b/_module/ncs/dmw_do_dialog4.ncs index ca8af0bc9d71948b3952dfce6650ba9932146c4b..06e5e47ccc3709a378c6e6ca28f62839434589d9 100644 GIT binary patch delta 653 zcmZvYT}YE*6vvMo|QPP>}>u4Z1Omz#uPz zMB1M&M7szoyfC8PqN@y}ylI=b)ChyM6vFN@p&Q3~-i^?K4?O>KIKOkAbDlGjk$z<) zXT1IR){_CR{{Uk@yIwe#Bq3(Mh~&5-lvPW>3AUG8??RrO9(M-AKk%S z&7{{D(@g%g1hICK|(?KXghYAu3#Z5%0D7q*X zB$_`Rii(4alTsgoQ)xu#VERI04I&i{MWk62n=v)s*A~(@+;i^v|Ni%!%W2rsOIzyB zj$aH;#=_AIW4}U6-G3#TE68C=A|gj=4wuEfh`flWuq>PO0^4$&mwsbdiBb@kloZV) zucZ0f1}aLLMsZj*={nA;5t_yg^_b}NS{yup5$M@p`ee^Ta@$!`3pvjqKF%DI*y!?q8>aoObS>PW1<*H zjrK6coWuH^;E^RKDU9iaOew94!ly7Qb37~6ovLfE8nkoxx28FYa0_k?+C#FokGKBvy}bW5~$|& zHC$NiWgoXH=$-XoWku$#cjzzn@z!%ZbkaTCu0?3ldR3dy`G|?7O+Oxe4_oJc1c+=a PSN|aKqnb7H^9=tF9e2v^ diff --git a/_module/ncs/dmw_do_dialog5.ncs b/_module/ncs/dmw_do_dialog5.ncs index 7a5f7f86bce5d8f53d574c238c2953b291f15731..4f741c6984854f5c924e825ec6a1faf7cb7f8b5b 100644 GIT binary patch delta 653 zcmZvYT}YE*6vvMo|QPP>}>u4Z1Omz#uPz zMB1M&M7szoyfC8PqN@y}ylI=b)ChyM6vFN@p&Q3~-i^?K4?O>KIKOkAbDlGjk$z<) zXT1IR){_CR{{Uk@yIwe#Bq3(Mh~&5-lvPW>3AUG8??RrO9(M-AKk%S z&7{{D(@g%g1hICK|(?KXghYAu3#Z5%0D7q*X zB$_`Rii(4alTsgoQ)xu#VERI04I&i{MWk62n=v)s*A~(@+;i^v|Ni%!%W2rsOIzyB zj$aH;#=_AIW4}U6-G3#TE68C=A|gj=4wuEfh`flWuq>PO0^4$&mwsbdiBb@kloZV) zucZ0f1}aLLMsZj*={nA;5t_yg^_b}NS{yup5$M@p`ee^Ta@$!`3pvjqKF%DI*y!?q8>aoObS>PW1<*H zjrK6coWuH^;E^RKDU9iaOew94!ly7Qb37~6ovLfE8nkoxx28FYa0_k?+C#FokGKBvy}bW5~$|& zHC$NiWgoXH=$-XoWku$#cjzzn@z!%ZbkaTCu0?3ldR3dy`G|?7O+Oxe4_oJc1c+=a PSN|aKqnb7H^9=tF9e2v^ diff --git a/_module/ncs/dmw_do_dialog6.ncs b/_module/ncs/dmw_do_dialog6.ncs index f921d91eb7c8599927e1426c916f0a83d8fe28a4..70149e8725852e8223c5f727854b053bc44f5e57 100644 GIT binary patch delta 653 zcmZvYT}YE*6vvMo|QPP>}>u4Z1Omz#uPz zMB1M&M7szoyfC8PqN@y}ylI=b)ChyM6vFN@p&Q3~-i^?K4?O>KIKOkAbDlGjk$z<) zXT1IR){_CR{{Uk@yIwe#Bq3(Mh~&5-lvPW>3AUG8??RrO9(M-AKk%S z&7{{D(@g%g1hICK|(?KXghYAu3#Z5%0D7q*X zB$_`Rii(4alTsgoQ)xu#VERI04I&i{MWk62n=v)s*A~(@+;i^v|Ni%!%W2rsOIzyB zj$aH;#=_AIW4}U6-G3#TE68C=A|gj=4wuEfh`flWuq>PO0^4$&mwsbdiBb@kloZV) zucZ0f1}aLLMsZj*={nA;5t_yg^_b}NS{yup5$M@p`ee^Ta@$!`3pvjqKF%DI*y!?q8>aoObS>PW1<*H zjrK6coWuH^;E^RKDU9iaOew94!ly7Qb37~6ovLfE8nkoxx28FYa0_k?+C#FokGKBvy}bW5~$|& zHC$NiWgoXH=$-XoWku$#cjzzn@z!%ZbkaTCu0?3ldR3dy`G|?7O+Oxe4_oJc1c+=a PSN|aKqnb7H^9=tF9e2v^ diff --git a/_module/ncs/dmw_do_dialog7.ncs b/_module/ncs/dmw_do_dialog7.ncs index dc683ea06c69910c27997d1e97702d8c546a6949..0cd5287a687ffdb6a96a5b368fbe349414a4abd8 100644 GIT binary patch delta 653 zcmZvYT}YE*6vvMo|QPP>}>u4Z1Omz#uPz zMB1M&M7szoyfC8PqN@y}ylI=b)ChyM6vFN@p&Q3~-i^?K4?O>KIKOkAbDlGjk$z<) zXT1IR){_CR{{Uk@yIwe#Bq3(Mh~&5-lvPW>3AUG8??RrO9(M-AKk%S z&7{{D(@g%g1hICK|(?KXghYAu3#Z5%0D7q*X zB$_`Rii(4alTsgoQ)xu#VERI04I&i{MWk62n=v)s*A~(@+;i^v|Ni%!%W2rsOIzyB zj$aH;#=_AIW4}U6-G3#TE68C=A|gj=4wuEfh`flWuq>PO0^4$&mwsbdiBb@kloZV) zucZ0f1}aLLMsZj*={nA;5t_yg^_b}NS{yup5$M@p`ee^Ta@$!`3pvjqKF%DI*y!?q8>aoObS>PW1<*H zjrK6coWuH^;E^RKDU9iaOew94!ly7Qb37~6ovLfE8nkoxx28FYa0_k?+C#FokGKBvy}bW5~$|& zHC$NiWgoXH=$-XoWku$#cjzzn@z!%ZbkaTCu0?3ldR3dy`G|?7O+Oxe4_oJc1c+=a PSN|aKqnb7H^9=tF9e2v^ diff --git a/_module/ncs/dmw_do_dialog8.ncs b/_module/ncs/dmw_do_dialog8.ncs index c2657df19c22d003a171a2aa777d3b9d3228351b..df31f1266036afa69a3992a2fa6f9e3c8c903fbc 100644 GIT binary patch delta 653 zcmZvYT}YE*6vvMo|QPP>}>u4Z1Omz#uPz zMB1M&M7szoyfC8PqN@y}ylI=b)ChyM6vFN@p&Q3~-i^?K4?O>KIKOkAbDlGjk$z<) zXT1IR){_CR{{Uk@yIwe#Bq3(Mh~&5-lvPW>3AUG8??RrO9(M-AKk%S z&7{{D(@g%g1hICK|(?KXghYAu3#Z5%0D7q*X zB$_`Rii(4alTsgoQ)xu#VERI04I&i{MWk62n=v)s*A~(@+;i^v|Ni%!%W2rsOIzyB zj$aH;#=_AIW4}U6-G3#TE68C=A|gj=4wuEfh`flWuq>PO0^4$&mwsbdiBb@kloZV) zucZ0f1}aLLMsZj*={nA;5t_yg^_b}NS{yup5$M@p`ee^Ta@$!`3pvjqKF%DI*y!?q8>aoObS>PW1<*H zjrK6coWuH^;E^RKDU9iaOew94!ly7Qb37~6ovLfE8nkoxx28FYa0_k?+C#FokGKBvy}bW5~$|& zHC$NiWgoXH=$-XoWku$#cjzzn@z!%ZbkaTCu0?3ldR3dy`G|?7O+Oxe4_oJc1c+=a PSN|aKqnb7H^9=tF9e2v^ diff --git a/_module/ncs/dmw_do_dialog9.ncs b/_module/ncs/dmw_do_dialog9.ncs index 960088e9fd1de5e573b6cfffd5a84c20fe8ee17b..3314d04340e8b8df0cdce78de488e163027c9c97 100644 GIT binary patch delta 653 zcmZvYT}YE*6vvMo|QPP>}>u4Z1Omz#uPz zMB1M&M7szoyfC8PqN@y}ylI=b)ChyM6vFN@p&Q3~-i^?K4?O>KIKOkAbDlGjk$z<) zXT1IR){_CR{{Uk@yIwe#Bq3(Mh~&5-lvPW>3AUG8??RrO9(M-AKk%S z&7{{D(@g%g1hICK|(?KXghYAu3#Z5%0D7q*X zB$_`Rii(4alTsgoQ)xu#VERI04I&i{MWk62n=v)s*A~(@+;i^v|Ni%!%W2rsOIzyB zj$aH;#=_AIW4}U6-G3#TE68C=A|gj=4wuEfh`flWuq>PO0^4$&mwsbdiBb@kloZV) zucZ0f1}aLLMsZj*={nA;5t_yg^_b}NS{yup5$M@p`ee^Ta@$!`3pvjqKF%DI*y!?q8>aoObS>PW1<*H zjrK6coWuH^;E^RKDU9iaOew94!ly7Qb37~6ovLfE8nkoxx28FYa0_k?+C#FokGKBvy}bW5~$|& zHC$NiWgoXH=$-XoWku$#cjzzn@z!%ZbkaTCu0?3ldR3dy`G|?7O+Oxe4_oJc1c+=a PSN|aKqnb7H^9=tF9e2v^ diff --git a/_module/ncs/dro_priest_pray.ncs b/_module/ncs/dro_priest_pray.ncs index a8243a22fa7dbb49344ac6465a9dbde0ea55b022..66566505ae2da42e5972a37b752b1c602d3d8122 100644 GIT binary patch delta 287 zcmbQKxmuIg&pB8j%uvt3iGe|6^+et@rRzEZ3=qH}3!)`i*gzBuGl*nmVBloh*dN0v zc#4Uci5Vg#2b5qwH2DwX2j!D6F|cw*uuP;9vph&|6__`9GC#98|4yJfkbx{9F)qc) zrp#K5-zFz8>o5vW-pDRJc?C1Cb_tTjj9}GFVAVnpr+`TlkchyB$q$$VG)>_SR{=X* x0ivIo@&Et-KNwhmPM2W>5?oA^gIO#YcWv%v`OYtmq~;4)4JVT{14x4c0|2oyElB_X delta 295 zcmZ3jIa8C@&pB8j%uvt3iGe|6=0x5!nTt9C3=qH}3!;Ttm_ZaP0|O`H#;Gxkf=8H` znV4DFK!S2W%)Do^1CzvLDW)5qhhgGiEsS8X)Ca?}3uxbAYlw z+%qa*&qy&d{{R2~4+9I(J2H$wf{Sr-Jc}jcfz2~nzVnNMWq*KWIT@uHfJ%QTFaQ9K CU@dU~ diff --git a/_module/ncs/ee_ent_ondmg.ncs b/_module/ncs/ee_ent_ondmg.ncs index e1c753f052915bbb0e2ab3596d4fed6ba0b7f15f..94aa77804b00ea05289456389b37e3dd7f96eac5 100644 GIT binary patch delta 67 zcmca_^wfyg&pB8j%uvt3iGe{fbt11aW9mf1C`OKnJ!*^!6E{z0w7HP+oj3qvuo2h* delta 64 zcmV-G0Kfm`GT$-{PD4{5RxvIxLI406Uy%(X0bh|ZS^)x)j3xmZk+YKl1CvJq9Sj2j W|NsB^00ad904b9S6DG5q0m&CnU=oJ_ diff --git a/_module/ncs/ee_evt_execute.ncs b/_module/ncs/ee_evt_execute.ncs index a1edf00845785d8f93689c37ca98474b70deeea8..826cf1ed893729f64710f0d1f2f723797345ea5d 100644 GIT binary patch delta 3911 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 diff --git a/_module/ncs/egs_ini.ncs b/_module/ncs/egs_ini.ncs index bee4f96b3f62faede67db358b0715f778333d47f..782e9eaf91be74200aeb3f0a5df4816bab851eba 100644 GIT binary patch delta 444 zcmaFqv(Agx&pB8j%uvt3iGe{?ZzAs<4#vrH3=9m6>nDB`Wn`Sp&X~@@FdrnsaCdSU zql*zUh} z3d>f5Wgb9f*uXOBOh8@#|356A+^8s04^{wlF*pdo97uRHg2ICj8XhUZB}JKe=@^~> dd-I0^1Ck+)jOd1N!wm7vE5R^fbC%M7W&pdfe{KK( delta 884 zcmah{Jxc>Y5S`t-#DIxd#70r>2v|w{D#S)eG~mY(&&01Zis%tiC=!#9RQDU?`~h}0 zViT?PN7x905kwR$R8j~=&fVF&N=~Ph)zRok9AGea7`hG6 z@&EwPqrZNaXtaD+V(H5@^p4l)8hbvmYL;RwqSB|?eow-VKiz9zPjTh;ArAB__LT zCbg(5%dxnYP>k#WPyKc8TJvYbW%Zm+QTl0C>vFJ<)^04S44I@Gi?R{P60@1&*cynv zIG7ma6Jk#eCKlitu?Gk9A@>TgnuGZfI~D!kr-Vq)*L*-byIddBg?w%=iz%2*ytCRa z-rSvw;_VlcYZXu0kAL>6xmFpzR}U5>d?G?N_?2DETHj$IRblklQ9o1pgmc9Wj CmMzNw diff --git a/_module/ncs/egs_tst.ncs b/_module/ncs/egs_tst.ncs index cd6dc5f70bcbe8d22bd22b7cd80a750b362a3c8a..c4cc6999c638c6018f96913fea049b08256576eb 100644 GIT binary patch delta 1027 zcmaJ;Ur1AN6u$TD-n)NJ?{(^Qn{$LOF0h;hMj|aukYc2UN{~9-4eg=joaH1iBZ4G| zI`ky;*i&k?hsc*+0;`9N9>aQw9{o3Uvj=OP-_K1;(mnjX?>px^f9~04;9-L;*x2sv zsHr}BS`aF<7dD>=#g%wM90PX}XT>3KH6)HeodHxY4#+-GyYaC+3F=|=D}GS>@G^r* zoG&iJgi;RbJbqSupxN*@gR|%}65PWM26K3upistX295ZI!8j@=f;Z@A@C&;M>?d)8 zK^zAyc6@Jgfc+JxDMnL7U07u*3X)48 z++r5tE9Mn8)f!l0OORwix+Bt?cRs3L3q|$TVLcirZ3=b^xNUSY#{sd){<_FGyNI3Hn?kWr%hf<%Y~Z?{o2c!%%%h#l;IrZx*z{wK;}Xu6SRwt6 zQJW+g=-3$#{Rio8iu6NjgC~^TL~4Q}0cpgBzrl%OLR3& zYh2`06gFk`{*E?reTZA%mTTe)t~$H0+M~fr5CfimSpLB$)$E$R0L|h_>~_seXyN7e?*ulQl0aKEc+S)!T^h-!(iy`!zQE3~@i@b0Y1o4W)?!-JAktYZDG zRN(rmRN(!(loFCMRQZ~ky}r(ls@Ait_*aF32!$TS_Ae(427i17iJ$P$|DG^6@`UPN zx1aro?T1fIOOqQs?Kq;`hQ)Fk;IL7n)zIpL>;V2TinM^glPBm$UrWUDh`b(IxJMBW zHd@nRA&*Qup0{noA#&%3B3y?tYQ1K@F_hT{bKmi9LM^5xm|^Y;H?J~tE14}Y`;0{t z?`q|G{j8TWhZ4>3?F%<^lF01l<^VHIBv6k=do0X6;O0wP6kf1PFjK%upY3Lt9>zI) z3rx4Lh*G#&WGcX!$th-->I?VK>DYRv+-p8vG#H$G&8hVcGfdV{imk(rB&h?Io|vE* H+e^w%gBr=z diff --git a/_module/ncs/ew_meditate.ncs b/_module/ncs/ew_meditate.ncs index 8083bd0c074764ed4da212f0f28c92e1800485ed..a8f06cb9c366a95ccc92179570b1ab42b808062e 100644 GIT binary patch delta 676 zcmbPYGt+|C&pB8j%uvt3iGe{zaw6|LCZ1~>|N1jBalf4G#}vTCsW5o~(|RV>O_Kwe zJDJ#yZN9_I%*@1afAT{%StEu6Ow4i&K=4zi zY9|}8TN^Vof)q2burjc;Fak-QfTGlb#G=%|($u0#AfLl8+%FEd1Bb7k9MDbwt{}n}$a^t)Ew_`<-wdzi_swKR zo(N5l&s|cBON#O<@%w!9LLM<@#z#Q=&VD4~34r6)tmrs<_9q1YzI>cNAF zAJM^sp8N-TX!b8K9D3^2c(8{aP1MxHLz7DJ&Fq%2O$>+4X5Rev_wnA_4->8H?%Y%< zIy)9mOd=Ff-nxGg&-O-V1{3!#&5=BDoufOlNMgcn5K(!U9UK(J1CY{N<1 zB0>ZqM9zj#x7+<|o}Qe78XD&}Ux*|M?8r`ngC^|Pyik(RP`<7`sMNK>vQ}ROa^Lwq zBr*`XC16H|L_o>8d%5!cQX$K4s)hjiM2~q+ul2$F43;$+v?H&FFkk67@6R0cz+7oidkO!DkA8Jr^6o$7pc_Omf_E;`ptDSfL?1c>tUp1E zoBhYVSTU*MC(VJsWWP8OE^n+q6cF#!Pl2|e%t diff --git a/_module/ncs/eye_act_scalp.ncs b/_module/ncs/eye_act_scalp.ncs index de2f66cf09b38b6ba1559157ddd8a57d040999ac..4d9443e3eae20085e9a6a6aefa7e730d75f26f14 100644 GIT binary patch delta 792 zcmX@-w%Cc+&pB8j%uvt3iGe{;c_VKz3m3nNh%zJN|NsAAOwQ*PojjjqCljB~xwP77&u1Jb_~p6YHkQ8->ItTXPmMu^rpIo|Bn5kl{WHGXoGXgUtBB zz{1MF@RtcJ#3%<6KfuHcrvFMa02Ta!@EDEdL2||*8OBT|R)`T`UhQONUTY(;X@5Yb zv9vG(NuGeB)PlsK)WFizqDmm2!!O(~B0f0K2dJQd2}tx$R^*j+MK}Ve4atl~kQsbX zGg5*}iZb)kF-!qF@P`7!Rl2`5&XG*;@=fSxC41FCN~H=3H{9gD{y0C21V5W|9{_1z9JYgSx-np6vICX3`}g3 zwS`qT&lP&h#P|r9NaQxJ6jfzp`g~^d1+gebrcVNs-%H9cef%_;SIS{?mqaon(+6L$ z&BbO4E2SVLL`;k~ zHHN_pF_Gxags9n*7ca)6#FH0~#so?Om~bG0y3V}aVgVEPGI?*_e&74PdGB@WQl~rK zriHFGM^3dO6pp`lkBMSclM<$Cz(=PmWcpJ4Kq@tQT`CgqcVo~IAf%#!j=JmUSC2&J z3QcEk-r#kor2JV4N*Ys6R>HTTS$};DiTQHdX~m>MBpbm9z?8Q$BynF z;r~S8<{ObL2p$PedeIx8L3g;Cr6uG_Wc9nrtll%OXQvpsuZeN+LUb7zcaX@cB zPT%GtXBc`t_v=`R9E3&wEt%CdTiuuV%j*84`|Pf6=tb$6)Q84%9=+64$#;Kfug#|U zdy(7B&K1m`ev^(?DYYR4Fx9Fxha@<->JkeU&-_myC!0Axzdf zA+^?MI09MGvBXAp1p~%>T?*qE{9IH2g7~4WN=;9v`t@6}Oy*9kuP>qT$sAd>CUf-% sxLL5G{6~m3?C2dt_6+A=K?G}Sn)x}1thIH)+S(M{w)~s2IWC0IAMIUri~s-t diff --git a/_module/ncs/eye_elemdeath.ncs b/_module/ncs/eye_elemdeath.ncs index 39a4289650ef41b43d6f6700eef1594430302fa5..f5d879565dd392af9470ba91c9ca8164413aa799 100644 GIT binary patch delta 434 zcmZ4KbJmB~&pB8j%uvt3iGe}QcOx%96XUeWvP_DMZIkVpq)d`o*cgC-g&9aNf=LLQ zft7*LnMFqcD9i!G0gW$wokO^5keBnKiiuNIFhl3nV2bUjvfwC;tbM$0loV zYcS5890(*!CRcH5$a*8&$gmI0d&0mX2ehAU&E);u;f!UI#d$gy{U$Hq(O^`ae3EAd zW6$O!-g8Wh>n9ruxHFnht`yK_65;|N4XRu*$^E3esHcxKv3^ R_Tk~5>>_2cd8X0?W&jX5U;qFB delta 388 zcmX@>v(ksx&pB8j%uvt3iGe{)b0aT56Jyt8Stdoss>$|DQjFn~6PUy_m~{jg7#KK! zSU?s?Fvzno14%|O$pB%qGB7$bZ(hRmnT0=!neqSs|7RFj|C*S6o z!PvIBg!dd18o+=o| z$hdSepR_(>)MPtpt<7%257_ub!8TlBU||J%nsIWBlGNl7shy0=!0Mtm+eve=qp8^( Iqx6v(0N(Ure*gdg diff --git a/_module/ncs/eye_has_scalps.ncs b/_module/ncs/eye_has_scalps.ncs index c069cfdaf0ddecfb84a7f3e2cf97f022a50ed5d8..d1f9bef9443a0f4370852fd3de4f5cc1496b0451 100644 GIT binary patch delta 585 zcmZ3jv_y{A&pB8j%uvt3iGhJ%Wh3tdCMNC&ljk$7X5v(sT*xCgIg5EB6YHkQ=h-AD zi?I|iu^rpo!NSbU#BhIdFT1P}!vQ8{IR+s3E6wo#|NlP_9;2~5NX!@{!IMxDns%?lwWE^Nl<<{hMgdnqZol=0yjRb3JmBT6rTK) zOIQ?}9g~2eBR_dE_iE{R;IP+|1G@I#6-3wrc`qhEWEY;C!=o?sHv_E5jfoi)VgLXC meKUD2PlP5YTwGF%ON#O<@rTQ1UtTe0#z(*eB0ITJU=;wCc%y&- delta 964 zcmZ1?w_1tU&pB8j%uvt3iGe{-dn4}zCMMqJljk$7X5v<#%*ZV>IfHpJ6Z@>m=h-AD zi?I|iah%=U!NSbU#JG8KFT1P};}j-lIR*v>CN*h>|NsC0f%59)fnp5CV3})7tSrnR zE{Mm>Ir$E|bpTL^m4PRqD77H5C^fJ&wWyMj5vctK0}I3$W+)G&g~1EV`@_Hj)WhKy z?iUds9OwgP1li0jdgf3)sJUNZvyV37|Sd zh-YBVK~hH`7|h|p0CtFoYei~uX-R585jQw)QoxY|ihWZQ3;(SJ1^xg3|6YQ91q>UA z)nH%oKpX?|+vN8gVj$fvsJcC&x?Az<1_nQOP-!&HV9CfFXfY@{amS`9*4Ui9oO8W2BRK8rfkP(}k@kTu z=$Tx|gIgzw@i$O!FjWi GZ#4h|k2BH$ diff --git a/_module/ncs/eye_kromm_attack.ncs b/_module/ncs/eye_kromm_attack.ncs index b3d755d568a22d32332c3c50de56ea6b155780f8..9adca0b92d3895a54ccab6b5333692d0db6dc433 100644 GIT binary patch delta 3714 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 Jvg0TJe*-sD$(#TH diff --git a/_module/ncs/eye_mtower_door.ncs b/_module/ncs/eye_mtower_door.ncs index 0c51d6779c240d3cce172517c090ca85367bc833..cab336f9aae175a614d8a5109272570ee6b8bd62 100644 GIT binary patch delta 45 zcmbQjIE#_j&pB8j%uvt3iGhJ()!9*D)$H@z!m=%-G1t#N9AC zjCnN^$AL+_@{^TV8kkroOml_6KAdOA8~Am{KEYr;)4TyfC_+4Vqoc?+{htYk8lJ~8}X+-a+k!CM9)0Of|R(r zDmprOmKiBVC`Kvw_fCX3; zogICAM3jMM=rMxL_yIOU1j!5$sD=IkaQlpzCMR%8*7HHVml9l3l$nDA z!Jg6s^Dw*%RObkBIm~V(bp-ru&J2x`$p)NK8c6z(g7g3Xe`i6#3ABfk5fs5+CNJa> zaR7T!C@3{Cr7|QRMERvwlmz9M<20laV#vR(2t(?@hHw+3TL&p}gh3iy5=#<2^Bj{) zGRsn7)&i3r$esT#;c~>^r%bHiu+#uMV)7JrSx}TB#}sBnnSvrpY_b8@T4_UYlGOuS zQi({iKr80}^M>$bZf<>n-w(iw%pl(Vn?Ko$J4peTgMPn(_-pfC?r%(t%s@jFH(%wm GV*~)eupVOo diff --git a/_module/ncs/faction_donate.ncs b/_module/ncs/faction_donate.ncs index b30fb80c9893ec8de0fa6636ca5388e113ca1e58..0d28c36f5de110e16f970074f7a173ec30626af3 100644 GIT binary patch delta 565 zcmdn1aYBXH&pB8j%uvt3iGe}LVBMTb?5U?^ZCNeTI{{R2~2Lp>V1Caj1#0-~8 zK$l{JOT{p5Jot`_iP>QCM($TKj9u~|)AZzk1mgiFRu*Ou7tFgdd7-fIL1IyAU}EY^MxPVr)B{S3xK^YlmzJbLb*13bR=_7V`5m8xJ%*_YAnS#KQWH}uL-IkC zUus23P<}avLWuQ1bM%2y-1t-~Fd%uXk#X`}esM8u#!Z6zX7fRTR3@fB>XS8uy|n&l z!D2-Y7(0Ku!QpHSW*zW%s{~ebU`+t zU<|{=5271i+~i_n6`OpR`;`pSe0c^S(31laOy8MUS(rgw5RX}F@mmfy!OFlBP?TDbSd`MGRidAcy^7U;(P)@C)~g zhz}0*0n4N?F@xy^li%|z)gvhr1u1iNRdjUnEHhG!P>fUz2o3gNVFTI8%D`aB4Dq7^ z1JFob6t!SOfHsRL1Em-hMU=q;U!Vf4iq4KcJ|fCMGxQk2X8Zt~Ap$f*2F*hM0Jwd| zOq1jJ#H7If6mhLcO)f1-g?cvy=3lV@RPO=3><;oCkZuNt9MBCA8)ZR(!UOXG#88*i z;*z5LN(@7d&<*|f5JjUc=KL!;4;l#(kIdc4i;tqGznS!Hk z^IN`DCZ=DGlS2f(w0=uK+z$zn-@Cwx-xw5Ae?UnYn)rb{*U1Gu5|bYYDvN+4i4PV# o!6ikRdFh}uZV!x9kj9@^VCfEQj4P5?kWxHQ-2;f#U=o=009#fzp#T5? diff --git a/_module/ncs/faction_init.ncs b/_module/ncs/faction_init.ncs index b8a9e5fc3fe35afd04e65943471683030efab8c8..497d80b37966f72d65bed85b07bf4c2b2dfdb1a1 100644 GIT binary patch literal 3678 zcmbtX&u<$=6yBZvnb=JN4L>SKSRp_O7?cDd^#pC=w6$6}ZQKMTq(+M~Neqr%Hk-DI zdVs3pf`Aie{)HYnp-6}uhYEza^uQSvQ9+R^6dK-qv$MNnCr%NGvfg>$n>X+K-pu%= zI#UZ4CtsVGHjIHwqXzx>fx#?h*^be7etu@DJUhK`8o*1Yxwp6Xz_6b&=yUgF1J*ZR zG2}QfEP?MDG}HLQpvUVBGw!PyBO<)3ys^ZMO0_mSe=(?3FU|!kVLfiNTN}YxrCbWC z;W{q`wK$C8Mr-w4yIu-TZLV%|yp)pm=+X2Mn{+h8uQ6lQ?S1Q%7NDP{p1 z6PU_9#cW_j!sOD982h{F*v0s6I`%NWla76izh`odz8n=ZqvF3${@zTJhgWzjW8;5G z=HbK)Qlx4q$^aiw@;@Y>V&Vg4z_6UZK-jSa1GDZR;OCdfaiA{OUkzja0pCIx$##Iy zLV~VQ6#;>`_a{L^3AEm5HsVGYHGo41??=L=a1g@#Rtn)K`x2fEPwZGPB!BnhwH4lM z!iuVTpON*bw01Lq44zQ1AYD3C@a715ycd1%Rq{9zV%0A8-VlL95_~U=<0jW7aPMXK z)i8=0ZTgcEK?3(S;W-K19VvnPPi`+*nFQ`7^6#GyTibL>;-u7&!Tp4gr!wRKDcmJ; z8_e7~F=0DE1Ls|G@P)$}wUclnoEfq|DeS%WgEK;2g=O;U z+6@j9fd!QLw+3yzReoyq%1jB(tQU8K;>8QOe?!TV3x1T4Ez74FZT>^F=0sRutsawBih)&-6iI7~W zt?v@bEJxYRC|lz8_R8Vf>Uy5D^*Nb`6Y~M2Eph&fiBAV>OYESYtSxc>6;sv|6O%{^ zyWJA!|Hv|uO3pt(+<&b5{+pPX0*>;tj{A=#_n(!&|GZ2AChk9fI&3vI*7!2)IQr~U zvOl5h2WY@nM5fBALj+dIgV_BDkNckq{<2Wu%$`lhl4da-gO-_n|6wnicV%JOxGXH% zhtvDC4-s$T`-|F$Q?j9$EF~{frTGNZ`vLR-#@{M1g+?EscQ5E}sQUrt4+hVPR^gkR zXWAL5K1lQ2*5=FJ>1WLoRWPV}$`haW49I6*K{R|38DB{$%u$)Kit>Ub`ZH-85k1;< z6$!}w9C94*5Ar>mebb~06wgQeav1Ron>^a0v0r_=`p#1A!a2GiKVtOw!q8>Wn>w{1 zIeu)ayfC0xg(UWJr4@ID))FEqY0}NE2m>lYEygv_nV$+mvxjG|@%m=W)r`XkrPY&! zGG)Mmdf0-jcz`-ALjp$c}{Cn!tJ0Hx}@;SCoKJp~&von(a@#uE>7eKRhkpKVy literal 4042 zcmbtXOH3qH6s_v|Hr)&;jSkV#YH@Tv9RjFfCNVSeX`rFge0sofH7TKhj!iQuis2LE z!WiSi=t2{dS-EjF3tbpzH*xLCtxMfaVvI3kf=a;q&a2<+A7g~j)Vt@t`|dgSy;rwO z<7I1kXkc(mlDd9)PNE;vk`hWnQ8g(!zc_wtB0sh?1>hxFJ~=r#l+@WvAF7fR*);ti`%x-n<1*(+XUtF~=jC`{z6 zlD+BVtg>gjUZu8P+*-+5lRN7>4xT1l$KJ$K!E-ieo&B7}9;Ub48h=`(Is9qP+i={A z*79g^DPO*DJy-X8k+Cq3c~+{zQske^-jO6SYH6$Hz$U}?G1W4_-2qIRc%%V_<&OKF8QQ=A20)k<&y6a*5_kj)))l*l1t=xW`(c6ZhOu<&OX9` zZE}Rrl#gyu6#;>G@>znqeQ2{%t#}pNtpJA*<`LmsI0#|>%7sYI#Dqw|A3N4$LhGY@ zYfiNaE2?UKN7f#0ZDar$%+JUr#a-%DF!u<0vK@VMnLIjetlGfdyh>m<2j8|muj+^r zn0*nxYrAe`i~hJokihth@R$U~LoR_i6_Y@TBrt}_zhlv^9ndN9{8B>(<7+~mj*u2o z7$1>aSL9YFhfyK8tsKS_d33vB23!(ki2Y!^O!%1y7xggMv5d`Lp*?ZHk0|ue9}*tZ zL;s2EVT{D|P$NC`7sy|oaJP1&4WWNUwkMdag$DWu0l?}MCetrKgI0r_Jcl2 zUa3{`YS<0>Wfqu0B5S=Tuv78Zktx_}|B$_7&34?1vsQ7r4mb+h&z!e@J;qy$cx#tv zre5BtRBbn6uH7SR54X19uCe;3xJzB_HFp2Ct-Ur&9?5O2DqI2@wj~Ed>e^YF(!mjt zyn0MXtkmjnoU&GoQPv~MD!XWm343FGGtODPPv(qoZb4dQ=RfWH)Uj4~32Vz*W%pk? zWIZ@Igrub*gxOQ5!MI8;YTv|1g|e^g*#7Ko21O9R#M(=mW&=1>FsGKfuf` z>v`5HJcxOQol(#S37!YSe7uR|dx9sbAb*ii0#E$^U4ndxUl0v1B6*ujk=WoF2T@*B zSbxTC=U9*SZV(B`qZo1p&xh3Nu{I(-?>e__*IC$c+Z@ zX#LM)E5<5Ges{&puu3Ms=dA2_POw<3eL}rIsVv5uVLOB3eu&(H?*fPMoe}XzR^*f7 zr^~{gUlsP$5u2%WhxxOUO8&w4JPoC@K^)8{)QHEE8sjCt59VWr(Ka5Tr^dT2#8cYF zBUFet+$6t{AM(@M#v}B!c=C@zesUBKx0GLzx;-fkN&^% pd5qaYKC_K_OW*v5e29NrecI=P*+M>jP4eLdM*1iWnKR)f*OR7 z5Vj7zRWCsVQ6M8Sdg-mAhkWR<(_-a`F-d7&hMO$2d0~? zq2?}s_s+T<`w6L@p0b{zAbrMB8UQ7Nce&}qH*{OTG9l4yHv5yv!lsE_MF`o@22OB_ z$oE{tr(!j%cHgD8uHB) zB444hLN>NX^`UT7?-lZ2J^*0Ge@I;Qsy8~W;tzV)7b zlgsd|QqfdU(N9>&*{O&7VuuI03F%`-=iq1oFxQ&ZInGig>mmKbG*p}q<>K&`un`VM z_VpSABl>?D+~BiqO$IHFB1bzEndL6Z;2CSTy)|E&OIZ2}XRPCwe*DU*3Q`qQccn%w zBq9Eff%11HEO(BPku*(Hwbd{cux?dbn*fn$EKKB@Y*DrRN)uOYHobPVt$0_@Hx;t4@`T=11B`U6if#ug`wwYSNwt;ucoG^3EjNm({z=TU{6xG@Bh#ScZ zz#O5iEx-OQBRUW{$w2>}3_8^yEM8>7Rwgf~P6@u|{vVXb!26}$OeQ@h$joyx=|{NN z?FVM4$Az8k9Z zdrYIm>Dp0B@}mSJM&TSY)-pMpUF^qHRe$Y#o0)iOh!dx7PCRuFB(sjGX^i=*A$1dP j`3yRV4*z31o_ygC0nB}3JMv(?b{gicCE}a$iMIVWJ3UM; delta 1438 zcma)6Ur19?7(eH`_i8og+;%so+j5uNLs^VWA_PIqq!d|B&Hg8X>)*q)H7lQDL`pB! z_jP!L1}6%oCaTGX-@VN%S8be(gyTh}b=W#^vredqW4e!uTKyVW$Y z(Hd&%40P87SFa~TpSW(_PeFNtM`<+_ci~08wBl2`yn69~M02^^cOr}R6Ooq^LM%aW zfJ2;o&7WxXsKJa6Myptu1bGr#+d6+)O)1_X# zC9QCxI9IZ4o<~}ZdRWq;(ALnlp3ZQai1dLZ)(iMdb>d^2 z4bM6k9cO7Sp4Qx~HLhi>^o3Ik9L`Rw3*fZj~=Zv_sHz;LVMQ=dsEvLZ;|~F z6d4`kw8bi(v~=6{8Y9Hd>=yiJ89x54JTE72NVZFiagui-dli&lgUt4?Sh#ANj zrXuZun2C7-5P@q81ERgzbEam z{&L$~HPMIs5PUB1P;1#>BikT@jhNUweI}qK+I#nZHZ7w%8XiT_3NgKxe zK1@>yyk71^kE0$w53+acPaSqRB*^5yFS&-m_o2mHTxM7lm*%jUF|6|hATx`JGABm) z=flFM-9Aa=Lg~V+3>p#q;ITnw58tM&6;%}8-@ssH18v5h3KyQJ9D(=QREf8T+J#1o zp|K?zX9B|ofs=J+fs-r$Ch*;ZeD&g&y<(6+61j#^%kZvm@2a-}v&i&rE|OMqk?EW4 z%Fn+$wohZ&uR;1gTbwxJ@1;=;Qy0$pFVGFC(WN1P@jJZDRpkmU(GJ3RB$=qdGunzD D^Wx0K diff --git a/_module/ncs/flavor_enter.ncs b/_module/ncs/flavor_enter.ncs index 5d6d82fa5daadafb1a5c0b833db87051a0e8d4f5..129461bdc2282fe6cff24fee16d094093a1e4d49 100644 GIT binary patch delta 163 zcmX>g^g)2v&pB8j%uvt3iGhKmU?XonGZXWv&2`K{%=OHS|NsAg!@$DIz|zPF=6nEi zS|FS+$ebU@oIg+wP^Um}YFn_j8KeJ3NAeL>Vmbg+Y=9EW)bj?C9eoq71ZHj}dI~kIfG328;l8WMB*c diff --git a/_module/ncs/foresttolair.ncs b/_module/ncs/foresttolair.ncs index d80f1eccfea19e1e0259b6b2d6e97a405db71798..55ceb0429d0dfae4b5b1e3f33216386bf23124bf 100644 GIT binary patch delta 64 zcmbQlG=quP&pB8j%uvt3iGhJpVj{0CI8A=&C0t^tqBMYJ>S=c}n3p0phWnkcB Int0wB0B!UMJpcdz delta 58 zcmbQiG>M7V&pB8j%uvt3iGhJpXd3wVZ&pB8j%uvt3iGhJpY$C5MS=c}n3p0phWnkcB Int0Y30BiIKF#rGn delta 58 zcmbQnG=YiN&pB8j%uvt3iGhJpU?Q(A3L1IyAU}EYE4wI<|>-z!Khh#`2$PhlLAt}KnMVWc&7{-8I`a=Pv zTg0^@HMz7T6{Z7^y^J8I0<8q;o~$For32J16qK5nQW=sDqWn@TN`mssF>Hf4T0urk zA1K9*Po)9_iccorl@%AmX51uD7|2cTms>484;;>VazHozyMhR3AnyfGjqv0Qd3~Y3 z8DK?jOw6Fj`Tzg#o5?HXBXof#i@2l~mlWk!;`hA*0~6aMMb*tk3U8ShAAy2@a*gr= zrZ2&p=kw7SFQ8>-2SOdqa*g+6TC9Ial&!dSBToOUZC<2z6~ z+MK03hY1pWZ@|&l$O!iI2jsZ?g3Q4Z%iyFU5S*Hq5}ummk)NOK5fTy*4D=8WIJrOt Y!AS-j*KdGcV1^|bU|QU~(jZb80ETn%-~a#s delta 1246 zcmah|TTc@~6rP#w)|yfX-G!P$>n=@I(zsk2L)2)vl>i~NP`SkiQ|ZPaO0^WE#0c?{ zXhMuQ_+m`d@Ms7z`wNV|8RDDp${PekG{j)At~0Y+EMW9$a%Rqa=X~G!&ca=I=K*wt z8=_KIl~P#`KqGqNQ0&OB;#Y?REn-h|sBBF8kpBoFUkAQWIEDhPc%d+kDx2^b=T%g( zh+jLqP{oAC311O%OyciF5oAA#GoDf$FUIJ=GlEo%3tU6UHm}`taU6mge(3g8!)e5M z0RZSo3D9-@ry1QoOzuFCy?jEvg`**jxPy4necDN`c#s!Ks@G#lwS8DkrfI8zEnuNZ zpp}CZ3|L5(E!-XMxfpG4V=r-|0C*`xZs^uQJSB`W> zn=Mv?26+HZaz=j=Ai0iRxvUncEc(b3ltmxA*fcMAxuLGDP4p2A1u~2+h9Tx)h-Sfa zk)3)$gm0V@TviD%s`)0>cr=ylAG}P-j*|*rs+m9A03)dUojS>@G8klg$jSQ;_nIB< ztQRpfs`d@1^3`llS^bNp-E!;tuURTLIaeSZ$R=KLiEfjUvqO!=)8`ZP2&<#1j>JuB zlKmJhCdU0g7=npm-}5=Rw}H%Bc5JM5f#x^HQn8l7y1rEZh-wryjYIl;lA}tFadbWN z6!A>oV_D*;YDiZ`l5sbnI(Pw>*ce7A4y@U`L}UcWZr{fyu{vWOl$BEPVGV_RVRLY3BnWoMzZ z@tDcF0W8K(#4`!r8|KXz^`3l#ny~yHN+y)3RP*fhDD~!SIb$%7M#45u*g{OJhtH7>ZRsH OVu1ZLov!sOgTim#dzX3u diff --git a/_module/ncs/hc_act_skinning.ncs b/_module/ncs/hc_act_skinning.ncs index c0de52771c9cf6a14803834f00a461fee0414219..170c7e3fdffbb96ed7af91af1418b7d9059419d9 100644 GIT binary patch delta 97 zcmaDa`c;(I&pB8j%uvt3iGhLZ>qg!S9E{SF?{Qc&-k&VRY0bEJau}yGWBlYCZo$p~gMvNA9_vrLZWngRfXa1s9i delta 77 zcmew=`d*aR&pB8j%uvt3iGhLZ{YKsk9E_rq?{Qc&-kdDOY0Wryau}yGW8~ynoHHjs a;1m*LW&i>f5XlH3Ss56enI|W5O#uK%UlIHO diff --git a/_module/ncs/hc_cat_tt_disarm.ncs b/_module/ncs/hc_cat_tt_disarm.ncs index 55f78fc81659e0d047938e1ef762e50d98ea05fb..ec4dc1f1f920adb217c8fa8c3bf42704e097ac3a 100644 GIT binary patch delta 76 zcmX@XbB>4C&pB8j%uvt3iGhL5ZzJz@7TGtKbXj1yn?aJsQ6$b+=LoZP@@VY7r8r1=R03&>=q3>^WG6cDJ$f=E?} VUKVB$2Z>|^+Uv}+`5j{@3jmsS9N+)| delta 123 zcmcc3bC}1_&pB8j%uvt3iGhL5S&jh+I20I|*jO1D6B!s8|NsC0gMmew0Z9L0Vg?E( zFif=F$_iw}Fiia0!|A}LAP>^>c=9Ah3;B7>APr9#SU~15CFux&q<}z07DUQVe$Obz L$h?`2DU<~OUUeMP diff --git a/_module/ncs/hc_fugue_enter.ncs b/_module/ncs/hc_fugue_enter.ncs index 80f674410be86a3a1c3a0d6bb25c78e35ada7e78..020a8fbcca8f82b3f1677fbaf0ce3c7784e784b3 100644 GIT binary patch delta 884 zcmewn@gtbm&pB8j%uvt3iGe}$$41^d9wrWk$-O)Ua-2HMjQ{`t|G~f_$H2hA!+^}= zyE<8#cQTXs>&+W@C775bEjORypU=d^aDQ^PkgO5I0VZaU9)`ct3_uh9KzNMC@*pu| zkPKrc6DtcdhzsV`PQEK9G5L~^^5p-j9NMf5EG>*ItPDH>MX3deMX7 zN6QD~IQoLj!4iAm6d(|snwJuun&gq6pY0J65)ce@0uMM9Kn1}mVY8NWGPBN46+~kD z|Nna;$P0{8Am@Ld4)h2-xdHhrC-0O~WcuE=`HoyW6UT?u;55iJIZ;r2bCaSzBV!6E z%r>7_5@rT7Wj6m;ZD3@a239a#-JC@VmKA{3H!~t7xn{=67qsPNfUe{QyD}gru`;y? J>_}Kb0|5He23-IE delta 1398 zcmah}K}-`t6rGuE38gKTvQR=1x;7XMq>5-7J!k+SV6YYzrFtQiZis85)6F&GW9JvZ_t zb!{%KYa{cTo~MOCeTU5kT>&n7N?SJXYq$yY@X2(Pt;XVjd2XLgE9UuN}Mxs~ljIv_XZQ0Op% z<#h?%A|prMAx^|gP5>9Ve^Hy9&(&&0PNEy>y3o}F-doo1SKNE{{|eF=VNo2U`2-zX zU~p7RXYylN{!3_!xzX%B$`A)C5r=HV)k6`z6;R;{sQv9S0eVpmmB)z@UU#^2z{UNi z#0@^5;Nui${pW4{e^<}_v#WGfejO$-`Y|x*R(bSU^))v2XCp)^H`cOtA3*v5k%R;L zG5Vq*)hs%4S-YFlv-!Uo5~|R=dtYcaqK!IfgtGxvo6U@Cw+FM?>A|tFq{@BJw#01x zdJ7b`MPxpP=(`;~gvg#kbKXhToPtPPM;|w6!Y;wpnne~?)1=gCZU|07)(*(T%{*`C z3lm#<5-jUy4K1|P2TF?=k~WP(%Og_#ZH2c5*YK$^#@kL|tnjyE-RCu4MuJi?@))0@ zD;TSgHq#z=5#pxrPPTE?3!sIeTqo{gV%H%GQIm{a^qp0BS=rqY-2VAJmML z;F6-uymSmxzz+PO0MaeuT9KMuT9OLWf!kUJMv&iuR)Ta-p3TlRIe<+}48v@Y3mGQ& zvx`LorMQDq6I1+BD@ua$%P~|cFrd3z7^K`Ku_Vzm&oQ|qvn&;xHlPKQKtV8hDf?3< z#$TIzI2aja{w9HgSx*k=w!bqF!3^ZBnS78_c=8@jeW5=(U`1|B%%HddM$v}Je>o$x zL80K1T3k|;Ux_~y6c{EiFjQ{`t|HHr{$H2hA`ExTb<0K{~#?6x# zGRqn%rz!f7G@9^#AD{1{DIk82q?tLz!OlET98m&VM=gGQD$B`(2w;% z!{tCBr3$kf>@Pj+J_f2Ygg72%J(4;C-ZqDO8ywgot`(`tr6rS3vhYo86!QZ*4k={+ z|NplZ6tY12B_k-Zfv$wuC<_X89*7$h7{De81*ImYREFe(D8JN-lA!!@po#7nCVE0m zY$a$SH>y#_=tlj0gW>>TkaCyAl0?ru$K;aCvQ)4Opved5g-J+(gyPA+Q<+%7!L0#K zKKji3pm;})PR!Ue1;wV= delta 53 zcmX?TvD<>z&pB8j%uvt3iGe}JdLwTT6C?lT1SUxqA!Y^!21aJa|Ns9lVPIipV3^Fb Jc_P~eQ2<_F4LAS* diff --git a/_module/ncs/hc_on_acq_item.ncs b/_module/ncs/hc_on_acq_item.ncs index 9def42a39296369c118e29bbb290e5f13e8f7448..abc98af613b85136ab51a57cba745302776367a3 100644 GIT binary patch delta 53 zcmcb{afgG~&pB8j%uvt3iGhJ7W+SgZBNH>zPMLxPu7* DBhw5O diff --git a/_module/ncs/hc_on_act_item.ncs b/_module/ncs/hc_on_act_item.ncs index bdf88a1f65dbd47bb7cb961a5e77b0cce001ab61..91d1c714922159b550436e1541c537ad6cbe8896 100644 GIT binary patch delta 943 zcmaJ(ZmG{Hj1dAgs>>qc>{?=#J9LFXXehCbI+MKNT=@8 z44)@pIc_hnY$l||_AFysEo9L{iUPtuZ9Xf8Rq2(wjb^!%CXz~}R^&DP1G%PWW2L5) zF5zj7i3&KZ>CxvZ)og<(6|7JdA!&g9`^>0L`wX>(xSBQyHPcdf{}_NPM@njy6sq(H zIzKpPu~T;eoB@2UOMru+%rS5j;n&Pguzx_Wa0DDSyePQ9J}6BJFDO(z#a{g^lz)+| zhDQKp4{`oLHI!y0j1jOs!9L>%*h+B8_!vrVN{MU_Kyd@U&picYF|B4tJW?19v@|`#n@VByt z8^FpvA`9~Ha~s>|c94w9B)V;qa3CIw44mIZ!&PozcTJvg*WT6@bJe+4eTNtd4+o?2 z&nI4scSMKw?mn6Rzcvf`TcSa3_lDx3qXSJn@yJzi5B7vSt{E31z@ z+M+bxUi6`he*=3{4(I>? delta 1307 zcmah|TS${(82-O^2j^jPx@qdvHl@&T(;amv={$fFnTKifP=vV=T6n@NFG|F&x{&CF z(M3@a1kpvwPeDW&c#$`n2z3)uP=Qd1;UU4p`u^|Vav{=x@x$}I&wF~__kD7cEFe*O zs=WGBW>Zlm$GI1#l+Wa9&32CDC`Z49Ec(-Y=jY@NL|ghm$Avg9f`wHMR$TmDxn4<>xNh`QEr7fMbRSrIdjEH7Zn1VDH6F zRWI1~@U7|=*eFU2f^`ws5?jGKfpzNRD(eRt?KIKmN@W}|;b2)B2GvPm&Ey}eX9$>m z*q1yFMM1t$a~Ghn66aGKV4OyIY7ZD&a4_{M6uigP)JITYCiQtG-^FOBFW}7GsOW&_>13h7&e4{>^6voO7g)slu)Ky~9I2 zedi;QvxT*>M-sD!Obi`pmGWF-<&oS`y#MrEED4VSI~^H$QGQWUhC+LDf|N8*ED@w% z$2T@D-gBfK?l3Ak>^p1_si=KjlvrYndVghp_v?i%iL_qn=cC55TmpBc#^w!hoY^4H;~Y8?hkTseo8y8R>4F^)Np@rllNKqTy-woBEp zR?jQT@&SGsu;k=NVUyL~K%d_iI9J=>f1$RerP0d*FAFCT3T<9w=!b|ldX!cjz_qR{ diff --git a/_module/ncs/hc_ou_secretd.ncs b/_module/ncs/hc_ou_secretd.ncs index d7da3ac5343fa61ca9236f9e35cfd5e76fff8148..65bc7344a444cbd89316bfdfa344d1fe349a9f17 100644 GIT binary patch delta 80 zcmZ3@w4I69&pB8j%uvt3iGhL9d?If=<6&pB8j%uvt3iGhJpdm?W<U$G5%0s(WAh62O^oRdof$pMd(6$B~{6$1hP Y|Nry=3V800b<|Ad(d*%CuRMF`okfw!sEu delta 39 rcmeAZ?hxkna}HJrGt@J1VqoCxSjfxBqr<|?00gW+KI3M2#(WL{mbnH^ diff --git a/_module/ncs/hcrh_spawnin.ncs b/_module/ncs/hcrh_spawnin.ncs index ee6c0bb94bc36905564a645e515d1ecb76606d12..a78b13920deeeb7539eb011c6b1158f8fad16d04 100644 GIT binary patch delta 273 zcmZ3qf^*#pPF_FfV1+P4Jp(5OrVzb}ys3$v>ICUw0jc7Wp1grci}Azc+e|u)ypta~ ziA|Pc7GlhsY{)Dw%mY@(047a9ss&a}j%E%}*4GgLazH>u7DP%hGyebo{|^HTD+7ZJ pBaq-?oP34ZlJUT1K9=wNykOZMU|CMaW(kpY2@%Ha5+Y1u4ghi~D|P?? diff --git a/_module/ncs/healpc.ncs b/_module/ncs/healpc.ncs index 65f1c453a0cc7106b20e4196fbd5548cb5fc33c3..fea9ff838d4469132410fdbaa41bd3ad28bf17df 100644 GIT binary patch delta 722 zcmaFpbjyy{&pB8j%uvt3iGe{rY9sGVMkbznlUFdtGx7IM)?fwW3*o2<-ypNVzTHq(~ zZzgZyiI~jCD5CGKQ9J9F3uf8zE^UO^GpS{3NRyo1sK7ku1suQ2>CuN}@1w&(b8WA`^0tvHHGN2P`_^k?RY7 zhYIGvHf=re7Keqe$n*?97JS%mSVHEH%}s+KWMR`F5C9OMs;Z>b2tWt16r_!C3kmd# z#zz1F9BR?MAnl2=$|q#x6f_bnIA|TlZBy7o(nes*)Ra5Lnvz{sY7Ja*`X(p}%(8KZ zz(648^!0RpK9^0gN{LSZFR;^e65qC&*9qh}g(MPEES_9BE9Iqvl)0LlF&raIkO)36 zaB(3j-`<1mt|f*^2})v^C5T}xVU(s~sgxKd95Q4a2aH41afsT$%bBBjQH1x*zIC>s zLtC(vtJlhvMX1@x1$BpwQt!sPTG*a4iv}DZxCrm<%F*F^ZI~SJ;oOlAOq!TjRTh@( zN>?F&19AYNUe{Ii?=E$ne19?h`#5V8{UN|uJabC1)VNZmpR}@CpR3-bM>NQh)Hoje z=kRJALw(KBegU1|d}$5urTFP$y_l@T7V6~{g%0J%LqtB+S)w~0RqbpeBQtk`9uIwS z{X-7E<0N}W{MxcR0@*>!%!C5joBb0kdW5rPFMen}?P+f?&_yKhO*^OX2W#HXy`EN< z>a}WP!0X}uRoiQP)#jxkp8($z_5j{++;?vBG^cLK*y9{`wQlL9w4UP`X9%t}%g!ed W?%+SJMHp$`bicBr?>Dd`nED6Dr$WI1 diff --git a/_module/ncs/hook_ok_to_level.ncs b/_module/ncs/hook_ok_to_level.ncs index 343e2f96ee44ad3ea715678443e700735ef6cc5b..d553b48b746270a20fa41b5f4e60fd7ecc6a87b7 100644 GIT binary patch delta 524 zcmZp&nq|i8=NzmMW~gW2#K0gewUJj|fQhSOvYtQ=6PN4eIRd(jOzcl5Zo_6KAdOA8~Am{KEYr;)4Ty zfC?IzfJFb~|6;QB2uA?5A(_z#GJ_9lMoMr=QD$B`hAChN{!jo}D&ks^np|3v3e$nx zS_Vd_zd^bu_egO~c9awo!!R4U|NsBZL4-Y!cL^N! U8X%ef9Eh+7@??-Wd9LTttg_!{em>K{7|Nn!5g_VKfFB4dZQ4T1~IE9HBL^G*LGXNF*f%59)L3)hA zGS`?`Ax40B%$$=SidhE$g;*JQ0*X=#5{ps;OH+#~8KLGwjDgt((!$^c=KWz{0qWuK z3-^nN4-WJJ%cMZ8V^}bmS4^oMNtq}}nX9X!qmyTukz#~mq+&p5um=kp&@@J%4=kA> z)+m7d!;7L8X0wPgP>NAeL>Vmbg@FYuz^dr%=;I@z3^YTJ5p2c}uo)siGsMv>^bdg8 zH#ts7p`H)w*OcIrqRhN>EWQO=AqNUVRhSFFKGZ|<6q4V8>I@-XfH?w59Tv|^Ap71N z?t3QI$s5EaCg0{{R2)CD@@rr$MZd1w{uB#9{>oa3l%^r6#6ShU9}N zztoD7p!{->c`m5tc|y%=C1@TunnCp_2K{}5V!1F#u}fk}qGz6Ca!F=cD$sT;K?_W_ zVBbta3M5oxr!ujEgIfcv`va1HC(DTmf|3F#hH*qNFfo`iO;(T)o4iiK!{?6^#EGzI ogr)ue|NnYJLgDXShze+!n1b_)2H1tYh`a&}{R5kwByTVR0LxN1`2YX_ diff --git a/_module/ncs/intro_enter.ncs b/_module/ncs/intro_enter.ncs index 7a885f6d481bb75f550eacffacec2592707b3cbb..1fb78c7cd9288172a14e85146cac3a07b240c1ee 100644 GIT binary patch delta 1387 zcmaJ>Yivtl82-Mux5YZzwL5j$v95LLHkM%_A|lLW!z5$@NcV2-ok3`0m~ljFOc-@r#lM}IP- zeD^csbjFx<3UVlg;)ggFB4F5v7eEEyBJ75dLVlu%GFZ9D<2_(98iXmWXZXkvP}p@Y zAV-*S8WYeW#9m>$a~jqgOXjERnV9hyH=3BWKBnyn#k7WfTC9!i9DlQa-KJo}T1w~u zdYr~1ii(#_la+C!40|m~8HJoHwY~9JYg-C0JU*bCq2H|h2WmY*h)qS|ZS%o;Gs+K;gBYd{|c-MBkYWQh#mtdGqJN^1YO5m(Gf2#n~mG$J;g+BK<2FdEo~Pizi+ zTO6G8PR*pv>Y>RWY*m#k4V{Q~zmAlQRYJFFb2diw7euyLJUa(TD`K Vi=R&xDqfvi2QPL?aZV_o^9%5cuv`ED delta 1887 zcmah}eP~-%6o2=;ysp}OuCG~L`jKZ!R7Z(YD}BjO{ptc^Q!$I)$qEu zA`BIa2=0UPM^%IkL98$Z2?`3L{x=XOL&tQeFl~pC(bbQ-5@zGQ_a)6stM;FF?|J8U z&-wk%x##}T|KWfo(h+m_`w{gUB%p?kP>VUA8AnzDvv7BM`B&3GL}yg zgnL9izgwVKO9__epc!QkbrD7O@E?EXe@IG4u)ACK&=}2x$5`btWJ8S3e8PvL>-hpu zs=JoSDRT>4upF9JhbA>OuRBo??!3EHCoR}MrjxEO@NkrrPJxFr7bJm%W~rK1&e^gt zz}n>^i2Anos`123-vnDC>a^B7F~yGU+jQ(TJ@49u|IbU$RcweA*c9vj5(tFkoz9yx>$$Msxsma6v z^>Ek3#8_8fUo^%ps`?ANsPtN2FAhvDmmTHSvhK?c6z&s4W+U9<7o1uTa*GZe6=UWX zJfDJN`}M-5zbGG<98W`8F_0i^ld;R%ZyPQIV1;p1;Jen@rr*!%=kyk?NPI+3vWP2> zgH#++Y9GTvTa{~Nir;D>62zAqqx$gyr3r9l-&v}XxQe~ND|MuKOmjy!%76;hjG@s^jS{~$T!&It;9RL3OPl0tz;AkzWsD};%*^r(KyXYBNHAM6v4S8AGe`(5 z;>pUu@PZM{oHALSO>*)(Ms+5pKa<6ozDqGP{{R2~2LlT$14|<#nDYn9nJmC8W(*YP z_6zrmhD#3i-3q$s}R1Q9RdMLi1j;z`)6h~S}=A|6Uj8^7=SW@httXSHp@PIf-u`F_5? zzi*6Ei@tR_f2v5x{=4%8J~Nc4DK(YW$o@vN)G1erD@!OirYMuiYc9M%oq zp3A+&#mj&lF4vY;JGDZq-Dy>7l~TJ}H_!v{5SY)Ya6MQx+Rb`rv9K)#Z$Ns1$Cn_D zb-{}x-)Ka6QN>g&3lntF>;|^yzD7&+6{CIpkfRMxq&m9-I0_O*Ghkhq5s7H*A!Lb z-|aMMry#076%>9dt4C!4V`;;4S(w8^!il52n4iaF$dLX$fdLW+45|DHiiB{h=KxTs zo8dPSt;mdnX^=*(bsT9<0` zFaVG52tUcS1Yf30Gk%)VT$nD+f2TEEmAli5E26T=x`Tj)QTFx<6ISoez#iS_fx(1- zASF@ixv=f^GR%|jjh@BIhfxoT0ctX{H)?zQ$AIZ+dc%aGBzapD-ah{If4!Z1YVz?P zl9PuyK^b;-)h)nI-(bmJ;$Xw67VOnJS2J72R5I+y% zOks14InHh=c?i|Y-Sxmr&?j5mblDHvC^}U{6MxT5w=COnOh1AA6D}^B*7}V^ z@of;#6iwIeTdbF${*LGwZ0lV34q%u!m^k*=#M?kWI`+#8m_JxmuvD)pdJcEt%gDRe p{+imGlgYy$Lwh*1$rl;LOo8Iu re&K!*@h+K(Ir-^8RSir)ViE%*NZ$tr7HI|`{YRDo2-v{v9|{ZriVY#7 delta 339 zcmdnO(#gi_=NzmMW~gW2#K6GJxsmq}V?7fq3oC<=duoYuX;D#XUWs3RN@_@IMF}J0 z|NsAgFtA870O>!>Al?@S7C8nWhz9e3a$ue>nD>W)1!xYpU$|dHyh~Xv?9wXQc8=%ENl_DsH VfGzY7fZJ!vgc=%P=d&p=000TbXAJ-V diff --git a/_module/ncs/ip_ini.ncs b/_module/ncs/ip_ini.ncs index 77adac85a9e6783a10baecb47153677b44c1f106..a23fe4f7868fb7a851e9128d32bbe774c50684d3 100644 GIT binary patch delta 492 zcmaE{nsMz)MqWSXV1+P4Jp(5OhLE)rd2h)v&Xr?eU|>9~BLJkpKo&&ufkatdC$lmZ zaxlyXaTxASu48mDVrKmR|NkEb7FGt97Dgb+6Ht^|kXV!&SejZ?3FLG5h5JRs2M789 z6*MpbiT=q;85OieTq{zOOG{Frs#9<)XPCU7NlMivwYa1xzY@Rl$^FbKO#k*wj%C(j z`Zri;mgE2c delta 827 zcmZ3xlJUiAMqWSXV1+P4Jp(5OhR_!id2h)vHOVnBFfgsq5dczPAPXY-K%#6~lUW%H zIT({c9LCL)>lj_?Sy&l(0*X=#5{ps;OH+#~nHm58|Nn!51*C+*3(Wh&zyego;TP@~ z5g#1r1C~i)Vg}O-7(wbkFtA87fb@aw;sLY&Ku84!Br`-oX1Ka4Iy!ll87W36Mk>|^ zga&)Cuz}pe%D`aB4ATU(kQYTU%v~bNKq*E=5oNHz7X}uv0IQ<2qmPe>GSCb?Mu<}s z7=Q{zP|N^X7~mfOx6YV}ak2xGATwQ3i%W{~ zE1{v5f(SN@fC6fRxaQB~Iwlp4zt;9)G#VePV=m<7l0UuL|y^=n;Ygh&%6>?K!M}S2F!!S zuO66(#o61fkc|9+GY;z^k%$t9=E!l#2XjYoNl|8AI>IUc|8HA@a0)P-AUrHi*|q`I zDNM{vtPse|xVhJB88aixW)r_sMy4-2C;#`Coh%o~G5LbO9%Cwy7t6>F7OM*IVw?|T Lsc(K0aF7`QXoC~K diff --git a/_module/ncs/ip_ini_b.ncs b/_module/ncs/ip_ini_b.ncs index 9f0d991a7d2dd1919417bdb2cde624576f6a6407..b566759e07ebe4bf42064c56d2ad1d272243c504 100644 GIT binary patch delta 558 zcmcbu{a%CD&pB8j%uvt3iGe{Rej|9@d%VPR%qU|^I35vpLZ4^S~C zuvjoy>vHCkuL3XgEW`p#cLiNfzW0HV7MP-Vd;Ojf_Z! zH-Zf3h8mvYnOA~gG}we6Fca#bPC_?=4`xJgNl|8AI!;r75+be@smY}!sW2Ucd<1kg f!beODY@2^D&=O_<0}Z3B delta 868 zcmaixyGz4R6vj_(k~Tgf4p9_Q61oUN@r9y@(3XNNrMAT9B!Wd9ED}@@gy7=nqAm{N z;NmF#Gh7rZ2z799a1ay`sZbj4J-MkVC@weL-#z)x`M&eoTk2EOF;kx#2=_+;+DcdI zUBD))C^(Mu0g@yFfY8H^FJy0=5yr?KvKP)oWNXNtIg^mhAba9WM!id9kDLXNoglLx zI1D1(M|jVff@}j>k+TM5i^y&`YeW_&?oi`hKn+!VXHf?tOENTPtlZ|ZmCJ7DtX+ZG zE>D8w7NTGo&;um#R-y7TDCzn1!jhRyu_mzMHi2{e{q4wT>9i|4`0CqOeLQYNqKTbB zW5HN7GPCBC6kxf^0Ar%tPY0^4*426=Xd(I}7+MGc-3$WRh(%HKZTdcvCwZ(+Rsgk$q`Xq>~o(CKu(!hcd3 zt)+sCYVqbWx2*O2>R+QdPW4a}M%W(N;^_C-*V4B*T6kJN8j+9Al#Y>Klz)uXd{vWd g>r~_b>p$q$wZfxvE0ND&p`f;laqaRp{{ z?i3bpGF5mjs`qmXwX=oEWKw5B9-@Ep*POrgdDVL#=5KLJ{+8x1as*W-`aTu_SGM4j&4xEIZ4*PQOy1sJ zB;dnRrq}Rdvqowj-fq^Z(P)Sp~c#;)?KwIpS1@!xzQ=iK?r z2{Zn7LjBqkTuq9LMvNWyw^J%RJv!7I?oPlLTiD_5bnjThrQ%%3*m!Gv0RGTs_pOUL7hwzafB);yl2D&?4k z0iKKg_l)3yF}1j_VB5@E93VI}&x3zFE4X^HfqAVBwMtOwq*`tPQqHX-uG*Pez+j%QlHWV4Y8a5Pzg}zzEHeqgCL#>vrfr%cen}uSzmWn0|BjBdD zh=jHCS07`~c4qY~&S~d@8y)d{y8-Gr#oG6b2G?_NbFc-j z*TZ|kX=*=OI%L5$66;`rYfbT|4r%Hb#)sI|WW*2)Tn)yHAx?D~BRXcNQk>h-1y?%Y zg^q6Z8FuaDQe{})$qbhx@N_4O`VKosH^!*YScNz_)B@krn}?>UU-02D2f1x%ma65c65?6*h;2TmXJVPBoa~BtUJqlmz zk_2Bk1#gErKaHGh!ps$6P}AOt4r8E(xDdOo^G+Y*<#@SNFTUFDn#1VPuR3; zhFXqeyPDx5sn9i>qOWncY_$vvx|!jEjW(sg1#k52ZdNq8k+`Z#^UnWY&g>h@5H)! ztyiL&gwOX%f-gd`s#gLZ8rPE_G%glSkH!^oad4VmDlU>N<*aDPf%f@62|7*BmaNdU z6L zF*xJ<^ng=YwC2(7RFIaZ^l!x4etM0yMQehg-jSV@AevDs38Lv#GA{x?eOUGeCi<)M zk{7}}xmIk{bdgAeweuWuG6s()7N`%gS5gj~D8OY&gWv>Jhoph(Z5-Iw0iR@HW#24S zgZ|0c9IMG$aNLXslI`kO3`j}mrIbwg*n<00GSqEsl4_+C%};g1M-)4$Zgm$Mnw`94 z&VUcCxYwM?5oWQfH8{kQ2_MjsB}e^;kEA)(3LKr*5B^IfEzPa2ivi8p1;=)XrJ63g z?;efK9;e_9s}CG&>~VnME8L^i7-Dm)Iryy24M)R;$@NW`M}8MfzQ9`r#IP1RQxngdcMFs~;qMMDQ@>gu?}gpTxBe2ONF~e{;CiyXbJ5;r%iAsxt%L zr#x|{sUw)+a=?3(C$1cLkJ8u0^@OW9*ZJmb<$q9P3KWe8Fy;cPVOw#6(1&gjD^#x^ z+AZ5Qh8bAmHq>*1Ho5)akWD&X{1|(yrC#_7y^cL(Xc}7$3dRc!3||d<%A;u7SK>nGJtyP> zZc}ymh&?peX@}IW5I6LceoaY}K@$clc2>enxzv>AqsSrUT?A4s5~O z&$1lm4dxk#hp<+B|Mr6W`e+=*Qbv&Qa8Xb&eiC8$3f%V5eNl~mT$yCZD8HZqyVijg+h&!|*)o@Sp>eQ3~mVsyNEQ`{QM zCcI6DjCR7?kJ4L3(v-@|*~j>+jW}S83*O4ctz(?GPL-*os>u91Hn-1%! zb&t(dCo!tPMU!GhK|HLb8LyxZw~)egwGu}bCc~Oc+*TL`YaYWJg)vI!Z5*GndL0fP z*9}$|;?i-^usVWoUtHwRLsn5HwIm*md$Zswk|>IYRUueil)y%ex3Sm9_l7sqamV;X zc(a~FhX}txGheYqm19}48{X)GUlcpl1?(`vsVZ>Vgba8+Qmm|*;LlBSqC;)K+=)(D znJq_z@qH_4RGaAHQFM}>?BZ4<>#yCPfHfr7lYowUPCZ#&F;}8-(_|l5A#qR1u;BK7KJ!CY1}me}{y2fgxO+SmBOw6C#b0jH+G3f_5{Ei)iwm znFNbya+%pjoxtc>Hu^ooUf~8RXDpPdi_1FRnB@ZtNpzN3(GR5A7Bv+Y%ua;`H2BXp zQ_8oUldP6v;ha>MPbF+lUzkt&mz#M?DtAJ~P+V1>0TuP}k8-EljrO@&Fpt7ut{dk4 s3)Q>~E_L&=U@m!S-bfm~npX^`8E0n22q>qbQeo!bc=N4ZC4r{@104U7fB*mh delta 4741 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 Jt5M6>@DGHeGM)ec diff --git a/_module/ncs/ip_tst.ncs b/_module/ncs/ip_tst.ncs index d02de38f75d14eab64ac5608a92b7fd768c14071..d34209c94ed02f63bcfacde1c44aaab57a9926f5 100644 GIT binary patch delta 1779 zcmaKsZA@EL7{~8V1%S%f|=UB4=6$hQT0VCTakjlnnijldnDo!_`0S8Nr z5_NHg3Eg9YZqrX=(W#rYADAXaXLL5k;Ie2j&eBPU&IDE%FTSzjIfqutFuNb_`JMlH zp6C3}$#ZXXL<$Z|8dpWFt`EL1vG?MXUnQ+R!V>cu6vWwt?fE^a{~p*M~B`kz@mH zBl<2Ia4^XV+7tN8h!s~T&7l1b9kViSP?|ue;pk>q#nH>~2**zue$DZBrHSa#_k@fF zl^OIEc%ehaa+L}6T^#o_{EXw93~zG$ilSV?agt#tPNv9cNv1f!v6A5o$99T_LW-IA zZt_Ynv~smTt->EAIz5NpeXCKEG6KnG>53ha$6^5{NU_t!eC&1`{jaH0Bqt1J3-qb9 z(wC?JNg=W+pP31npP#=bC^7{)&c)UUTZ1|OCG8<%6h7cFf5v0jnh@%1eSoB4yFR~A zWEJKFg(N6mBJ{nY#^Y|;<8g0qcY8YNT;f1%ygoI;t z5wxb6jQ>~e7(dG~<2m@_9`qTTU^YO9$21CsNN;7{N^f zmg8~r8kn)7BYn3kRVRjRJw)_3-;t&y z8q9ax>3=78Cn5Fd$V>Md?I%P?2~#;2udI8B-0gSd-2~D|h3Ci_9&*t!O5m=5|NX)v z1j3JC@p_v*d^pz8BHKOu8~*}&8DF(5egSmmz^?V#a8--H7H2~^f=VYH1~J!Jv5~g` z?R(zYOZtIIsqvPrZSy>J;K^mpfiD+DAXI|S7O%308WYWgzFagD`a99ga4I(w8mDG# zqXhktLBFmK59oVq#LT3L~XiO8VoVYq^|(vqU+EjJ&8X8_<`LZK-5}RqxyH zBE6(Kj;jWW9wg@pd2}FBLwwff`wJHK<>#Ch=*PtVIka9h5ailKOk?{+17C1$ET*x2 zqk*$rqdzvD%bFk>IL@`vn5N*`;U${HHHQay!l}O!jvwu>=XaLJLi&3X4j=75#eThg YjVq&q1ww0M!THj-1Ay_u$gT9(fhgI zd+z!1&b^nO>ymmyiZ5SYUW=y&u2XSB$TihxJzj{SO|-Zb6|kQbJuV1 z7c1rdZBg+Pj$$@^!C&P5bWP0X(;7o{#+97g%+Mmqa7A)*TQT8?^ft3WXS)nX%x-Qg z16E^)Z_O@l+Y6mNE{L;C;kFA=|(zboLHmUs9qJEi2nG zUsxCMBn(FcNm*Xx_1ZJg$6Q7} z9+MCI)NxKI;HnBOUTcw$$uLijnMwuQOPYK&jX__e?#)`^oim*2F}@ zEk{CIC+wX+F=D~Eh_Wy*t`1h0`HO0TTX*R6jM{I51I)VJCG z><(c!^EfDSGNjqh@kd^$Pu-A+N5yC|;^!X~O&Go*M0nScz=xX%{}7lEH8qc!K5PSJ zN)a4zy5cQ5brGtmP={B|?<|0&PAh-#jZP}%4>swh_=q@CS`z|nl7$Yz(C@fd%ZCo& zuuhgWzhmBqrVAasDM@_rbHdLAmJ_UAW(EvCw}I7$R%Sop>`X+Epnl#OHbAC7&AY{T zW^Cwd&wj@HwnJsEJL`H-J9FBp?N6rH>5#~z-;d`$@;c${6nvGJ&imhjelcu(FCTxG zf|9@7PS+zLdY`I-4O{(N#5rAvS6?{ly%c>J$ZfvvvC%zFX!o6#3hZ8RpI=)5fxOJD z-W+{;z1?H!^=0YP>w68;bF%`>&dpLqa=m|wmnL_T5vYIJEY(A{h-*yri)GC72K%b6mEvS zg$fU^#UTwY7D_yvD^NSl;Y4KnKDDqzEo8X~tX)KCz3pY0t=qip4Hhfr9XRh}ET!Xe zIXmy#b2>(gP32)zo_1C3xyCi5|A)dQtPLDH_S zijGd6Wk!k-ijj%|p}`(3Y(P^OSs55CnIW!HU;wJ+MNtd0QA8Oi#i%Hv3>NspzycOv zRdjar@exr5nxV%CHsc4_3=t$VM4%S>2f*z!W|}xrvYrp>vy|YHqRhN>n89+O05XNy z3-*s5n1|t0pgKp0!(mnBmmza~S_7D3lt5999D|qPUr(hs&&g2GmC$ZlTzzWPDKK`2zNx75b8KozGW_MJ=<)GhhV7{7s RheLI94##;WM&^kLG5{h+8V>*f diff --git a/_module/ncs/is_cleaven.ncs b/_module/ncs/is_cleaven.ncs index a8f6a542e3c5fc16302dc87ff0e1fdef3878113a..fa0152bc87e9422ab7a2e5b2e21afe7c3bddd2a6 100644 GIT binary patch delta 465 zcmaDac|(lX&pB8j%uvt3iGhJTVk56CBNOYS$@iEgC%ZBhFtJVByq)ne6BEPz$#Ym_ zjTjCvG0QOk!Cz^H|NsC0f$$iOyCi5|A)dQtPLDH_S zijGd6Wk!k-ijj%|p}`(3Y(P^OSs55CnIW!HU;wJ+MNtd0QA8Oi#i%Hv3>NspzycOv zRdjar@exr5nxV%CHsc4_3=t$VM4%S>2f*z!W|}xrvYrp>vy|YHqRhN>n89+O05XNy z3-*s5n1|t0pgKp0!(mnBmmza~S_7D3lt5999D|qPUr(hs&&g2GmC$ZlTzzWPDKK`2zNx75b8KozGW_MJ=<)GhhV7{7s RheLI94##;WM&^kLG5{h+8V>*f diff --git a/_module/ncs/j_ai_destroyself.ncs b/_module/ncs/j_ai_destroyself.ncs index 230430bc965eca07b28594643f3edbcf477943cb..9243cba341e6173ef7d1ce75c09c9e5d57502702 100644 GIT binary patch delta 166 zcmezB*XYmd=NzmMW~gW2#K555IFVOYNRx$)0SH(b7o7No9Qmw^Rn3{(K$fa6k_u#Xo4FXv)c}7}5)J?W diff --git a/_module/ncs/j_ai_detercombat.ncs b/_module/ncs/j_ai_detercombat.ncs index ff78a0a54683a8b4d27e1ecaf0e8d0ec8c3bea8d..b0b4a4f1f401f53fc18e55f258eb1d053950420b 100644 GIT binary patch delta 21329 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 delta 21127 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 Le0uZq+8X>nCH1Ky diff --git a/_module/ncs/j_ai_heart_aimat.ncs b/_module/ncs/j_ai_heart_aimat.ncs index 264ab347ae7ed2a8f99a22fe1431475563f0bc64..fc9cdbeec756c365caa509074f05426ce4d05a59 100644 GIT binary patch delta 1639 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 diff --git a/_module/ncs/j_ai_heart_buff.ncs b/_module/ncs/j_ai_heart_buff.ncs index 3db0a73374e8817f78a2a1565f73b73bec719ec4..e8ab19f4914dcb31ee54bd50a77b9d28d21ed7dd 100644 GIT binary patch delta 51 zcmZ350JD__Jpcdz diff --git a/_module/ncs/j_ai_heart_serch.ncs b/_module/ncs/j_ai_heart_serch.ncs index 1d0f1957baa49bfef4ebf6c98e2966a94e5743da..7f9cdbac08d6fcbb7cce71bd84709050586d5eb6 100644 GIT binary patch delta 136 zcmaFF{)L^_&pB8j%uvt3iGhLn%S7HTk$4t11|VQ&{Qv*|7X}tq1_n*0iA!w+4ggut z82J_16y$-@j4L;O^kQ^CQu_p|7N|qW(K9~8)7Ld9KG@YU$l1fw&s`3rM+l;vg&AZ4 N&^S(}&G}5li~!%q9N_=} delta 118 zcmeyu{)nB|&pB8j%uvt3iGhLn(L~-ZzDQ=q|NsC0U|?ZoV9;coxY|Zw3y}4UkzbKb zL7stufpPA}?_P{1U{x=ms(@;R96jShJbhh*;)7isgPc7){oLh1s(DzLffNJK2u{Y$ IjZDRi0F`VUo&W#< diff --git a/_module/ncs/j_ai_onblocked.ncs b/_module/ncs/j_ai_onblocked.ncs index c4f43d7fbe87a7b00a1c69843b25daeab0d974d1..834a6604031b7b9da8fa1cb69900c94729420863 100644 GIT binary patch delta 863 zcmaKqOK1~O6o&7)Gn1rEGHFt)2{8{FL#ZXkN+GFfEt5FaY91wz3PqTO8#huEsY0T- zQ1|Is>P8n8tOybiH-dI4h=|gKD@7??)E5?MArSAq8H^Cbw=^tu_2)i5s_ON}Yl5F9hL3a19|F`m?UN~ypm!Q>ZHHj=sY#r=j z4oDZN#BuupfqVRfG224!5|dL%pEhHZXL5ScNM{R~Gx`ZmyB>7Wnfj*?JXr!SET9ik za2YFbXnwh^?s_*UiHgy7K#_nbg!E7mYMaPh)-&0$w_e~O$g3Ekl3=#X;7Lv}xAcFQzXP1AUnsrUgLcGo(VmWSLDuHzz&f(`G{E3k!bDKa*0 zHda(5R!!N+F0y^s@Ts(SDv{zI;~T=`Cs$W)i}$A3Tp>nw(}*yQeb#j$f%sOs2_Br4 zE3CE4vJQ*5DaTBv;tG;T-n|RxM<$`198!g)k zg*9BUp9_poi#h6IC7)-rE^Eb;dYOX~;^&kfryK`i30rD7NOyR4`bL!WvePl0)pgc? z0S}n4f~$@Y?BNBJR#A2i!mq}VQw4a5F_)J@9A{PE@BlA@JE9q1{$c})EgQ6mc2XEC&iwZ&&p#?1z1nnUZXC{#b%)&0S%>VuV@BL?L*VeCU z6X`;9YX82W6d}p=nr8NYj}Z2#A@=btQ%Uyl-!OZ-7Tb1S)$#|N+Y&SyjXIHKiS0um z$^}x1N?acB3we)8m}XPp&M=%py6vn}%#LR!om4KLKAAbn)yB>L)Un!11n%93?QkBS z&?t_82^B2Cp2V%DgW>i`qADi*i9(1UL`$1Q=FlE%%iKG~TOcp-4Fq8bKSANtSJsT0 zwsSeBn0M^S@dB?oTxr7f-!1q+8(f3|T()g`3+-9pXt;zos09=s(aZ1+L(;C<;Z}U2 zBL1`m40Qx{S6DZC)+yTs$1WD_f5F5Dx!uUJu-o89%B)z|#XQ-)q%$rgE4`g~hgJk{ z4p*frc<_Q;Vxhj4Gcb*^G6}-3@mzWJJUC7jKomqaHS57d!o9xlD#-&Kr>o zAzor)or@{Gg1uTF{BVzGI=~B@(0BAVj{tz*wlyLP@1G)bgEOEiqWFUIx(N}+v+%vH zKmwO^OB45DgD__@0Ip_yj=^zU8$AJa93I;VLANyK2hh+-EU2g3qC_?M7_Q^99>CX diff --git a/_module/ncs/j_ai_onconversat.ncs b/_module/ncs/j_ai_onconversat.ncs index ae7b1fb4a69029708ba8b5899cd8b11ea2c2a591..8901e70c2ecb3d2de65187ad12219883affa621e 100644 GIT binary patch delta 1698 zcmZ`(ZD>P$m#pjmx)Q z@eF?!Ei9^E}bTPB?M@Z-z53d2dF65N(%%J2mS&2V;QOt17a_@dUN~+Yo0bN~W%(v^PfR~kn8lxp zk3coHnKeK>XVLJuxe`9cGv+|ioM1|S!0ToQIAn}kD#0#doI%=B0rzwJEGq%V@Tk=d z>v6>FS_uvT4=1D>zvHM?gCPIbi}NWPG$OSH%a+tmdP%}Gx6yWqK`^(l`coC|VV&9T zQZ`62k43X^M8)C{irZPd=XH1!|A`eDF;lfjYPydzYt{onzcUEuaM0<+H=Ug@EG)A} zhNY{I#6opij<@*oniYRd$>yuXt*!|6I91D%Uc&<}pSx2|P$4dISdO17N+M1O*0E|D zzKl0qHPDT!I~ETqN}LBI#Tn5ow2 zoOQqBuU@{;99%G2_bR^UNv^G2(zjLvJ*+*8PM-)L=-OT`sys$>k|f`d0w=m_kp=A+ z=FlDkCv>s^=K#lfp102zT6genz8YNWU9k@%#<6iqdZr5Os!6QLRPn7?Wy5{xNLloD zfh6q9cr~aIdCBG|DU6RjcL=h$$$JEL=0?0jK^Vfl$>WX*gChyq{o+a2C$8K5m?(4S zR&ARAdRfQcwl~99xk$T_!aM@8|Zhp(bs&)aw?yTQwy}M z!LOS=@HYO~{2CNvq~%>0#DSKs|EJ}$voUI-CW-R2?Cb(Z@&!nyfI_|;!i@PSKLwnd zUtcUOYZex>dTw!nQeFS2HqVqFaxvg3H2kx57e5jj+vfOwinWK~7MC7!==#Fhg4Dc- zuCg(a0M^NrSLCw?ue8UC$7!h{00U_sefSM;i4c7-`4nyb{Bmep;FsLB%t7`q%(AOi delta 1678 zcmZuxZA@EL7{2ehAAFQj3Wa{r4{?Q-uDI>TOg5y{($><_V(CT}e^i!$CT>yVFb1Ly zoyHi=Ag|*7xWvqCCPpQx`om>QI&~Xn@z z`#jJ4bq*balSjdriS~JSZf@K3pdj>hOc))0WzHkePnC-<$}ABjg>BvRSH7ToQ<})W zM#}%5xZr`q6H9S;3p*hZ&N&5DRd4b221Aga6@i}I5F|;YPu1XM81OO?8KUV3-#w}A z%vL-N5%6I-+3J2*5~+b83ql2Oh($r78z<1^AmHPq87|^Mk`wzw0?x|r`z1}J+|nd+ znPwdTj{%rJ{i;M0$>fP&Vp!Y+Q}~ql9Q5LxxDn>DLHfr0JbNp=8WJ>VVZdwBWA&4( zN|^ZgQDy^g<6b#z-l5rbJfN{d3{S{iuoa0iSa;ygqzE72h~k2Nyky;+*#4bPs2)GO zKm}JP3;mJ4LL{G$L{qUY#v8TJqR`}s^W3qMomKo?Y$*Glz@K=fV#MVm3U#fCBn!D6 znM^EK$VYOCSe_Y*Z{k>G7~a5AyN7(7tTY+)D& z3{CJy@qnQk;0qi#+6V;jqbhsA#Oz@|PuMU2F-Nj74KJR{_HYXiMRa0Y!UXN;F#3!< z*1vdF15nHvPm2&N+Rc+P%;Ho-eX@lc++v+W2_%Ep#~z2*oq~3%1lFCFt(?{|P09tV zw%!K{c36Gz4xX^OaCc8Fj@nH4YnhBegAqTq24RvGV@us6FV!ORlh5<@6!mT^zj~E7 zsv94%wN|b*CU!dAHaX1&5*B3Z5MRe7Dbk5%XNUwo!)03=^kKl>4h=YDcL(<|Txqw~ zFs)DXX02W0mGVSfO%3jkx$vAl2*2T?-2-!Ib3EbjaXQ^(&>S+>jcGjMh_={t-M!Mi z0n?o%3wecUCC_MD{V&}GGst0@f5&f~gTeEwMW91= ziOp#%aEC)&u*|@lf7C+5@r;)aY%}0kW3cLLT|{^-V{`DU1N@9!*b)--um5QrhB)qV zjX-ztvg<=%#Wd#_B{le7)Qg`)6)Z(}*3WB_1;541{;BHBoW+ZUI(sqJH3Q_V73<^O zaIW}h+yO9M98JWbic8b3nE;k7R=o0%-P%ScsVW*tr|Do6BDtPE76y3Hk=#~soYZQW z!-1@aES2zuWPsiuV~wpwVM;HW#)P+%O>h~#-C=UF3zlX-HtUqFVZVwyk`l{;Om(HT&FSlO{#kHa~%h*l-tBkb7vqA8B_dcSQk9)rFeBV9i+_a$I0;QCzsB4K>JWEKS-&SUmE0jr$ z5Q%am2XiJkuLC9$r{4s7%+zIGa>aG=Pw}*C;cd5rfngZmL=t|YsJsKzUzcFh-0Kbn znQ(ttof0#BhIm&kMkEc0WFv5Avk|fn?Ps+!(rxYuA&rQ{gVIGT%6{ctj0J)T;z0Jp z6`smbI6{{`gHQ4#TnaXi4tvDs^ASF#wJaNo4>j)1K(}mfFDmOEb7oG+FCG=+1+UBt z_JB%i3&OaU+Jp+$G#N|zPrV5Z ItQR(Z0B0{~wg3PC delta 458 zcmYk1J4*vW6ou!`KH?*rs3<;?m_OK11TdYScuw+hy-kcO4gkT0hiB5?Y#Imx*?5hVguDiN{+c1^V#veN}=DcI498LC^jE=QCXeh6?Uj14&g*I1Uv z;RGLK4a(fnG3*-)^@RvKs##6=bX{WzOGd#W?vt5Sg(@)NqrDBNK*wFWUfOs&Ek z?i*?w{bKcLIx^c+V;2v*H4Y$o4+~Ad&haQxyBPd|e GTKNO18Esqu diff --git a/_module/ncs/j_ai_ondeath.ncs b/_module/ncs/j_ai_ondeath.ncs index feff6a04ee99b0853a0f10eb979aa64fce709fb0..37f643132870d4030d58ff255a4f7bb863596b21 100644 GIT binary patch delta 2081 zcmZ`(3s6*57{346dza<00`9IMBCIGlBH}KfP2f~u*nn*pM!FJLg=8TO>1_-Sh4Df9Lzp zcg|_QVQRi+G8fKt*-M-mj(mY+HaD3oVP@0o2~!Rx3G^>&EFB`^h(R<6g2+cABvLH; ztD)b+`wa}0LkEWkyE9+-nO#81f7Ke10tBn~^qNvTkPPf3&D zCoC)=* zn@In8+d|4C$iT^V>OAibs}#Zr>sOpSMbIiJ^gZZ`wKeE^;gqH=r8F3i0-0~Ye3OH? zenGFPhol6tHayX6)hg*Ola%umX-?D|`A3T?X+|(DqJm6ZsbGZ7N~|}P1BrKmM4eN1 z*q;Lut|E-9!;0jwVUab|*CN2HU8Ru&WHh>a+kMyMP zC2q2h<|PT%XV-d`t?_yWD;~YH0PJ|u-dQ#FSA}86G$ZDxTSg7jXHEsYTV-LCg^}|- zW#xsQwcdHFYKBqm!hg+M82y_H{HB}j--<Dy*t*yoGoXy#d(@H=u5yK5w`f2ptec= zC-nCGtGK;wjN#v{x92~GD_iZ*f_^&I;NjLJ;xD1s#eyI0bl}LgOQb=?TWu+6jj!kh z8+Q%~HeS*THr}FwNu=>hsz^WfbIHcH1|@TJSE+8;Rf-(E7zLHyVSy@>+fkb2(%aZ9 zaT}XhUz>CFHa5@2>w7MAIIW* z^63+Bg%ppJKR5{vQgl_mcoLkX=#U)V#pWC2+%Cu>MYH79U64(RVgh@*pi?Bzm&%LJ zK&ffA%3q0YY;sxy7tX-fCXzoY(Dn`7BR=rFAfhA+g2b;xh^APm zJoY~DX7j~+Vci^gA4Oo6f+T6F zF()-VPee3{Q;B{KN@5yp!e>PjNx6jO;tfc}=cLa`@)jJFqDgWaPSwnYWL&I?hx2%C z?R0F=%qO;T{6Z5+O1iOM69X%yT4gNH)y6BoR1_{qa%h&_G01IHFZ5~6pFY*M_6bR3Vid^nl zKhD`n>r5!Heoa&ihI_)La>T;(lW=Iin`_1>}Gdtt6f&TRVA=ORl(6wZ=FKw z?RpAn(Bs+0lO_07VCTFk*0EetKi{b&jNA0!Hqr2G&l&3>=OnF3UC>ACna1l$+xPyw z>h%BKrQJ{t##qJ!21SG~u3|n2_gUh+2ge41uFm4Vgd}LfZxRx;>y)9WHizTH#Bi`- zTw)T4SdwU)JiLN4%vbnEZgZ_m-5+*9I7ZvFcsen|^rYB^*D6|2Z*h`;^W{C3PauAw zTHnxi&Te7)hAye~4c%cgDsQ&#lSuz9IW%or9641l&n^Gd2utMtjX&who_@LOtqXy3 zj|{3Q+ZS=lTt?acj+(Ol7@lp5AnlFvnVlIr=$4^*D?kQzwoH@v?mZyVlNFj{aal_# zG3({dmJvb%LOFExgEDAlcJ8la2$lO$`nIf)s%|f?3~M$hy|@#FVO)G@()>VRV}X<9UvxWSC6_+cb#}rEq9(*WXSsu zp(fs@*3__#YpQ2-4QJJw8h*o)k2}_`Qd`#_=GM2Eb^V=j)*-wNeGqViVKqcJG@yp~ zkx<`P?>Opl9EI6Iu*cna3JM_yd%q1w!`o3FgA74HEB>Lk zG&FDTOpg8G!&tc9UIWJld>D(@du@bczxyy&NAIVlBqsNo{mi03bqbSDbI3D_ zfYdTpPv+%RV*I$-fRm4r@xWwzE=flH$pYLGe2k(X^^9#Gvlt#vuIG|wR0Zmlp1h5V zpV4XZF)meMNO*uf@`eFu7lS6#<{wR zFvc)2GXDSn{|5t$Gy{_EsI4FM@-?wxGUVb9nzS%F(Yj_EVlGsnToxq!;ud|X}QL;S%C z`GE=*Cg0_dXXFDZW@0LxEYGRL_PFC;)aeTps`c diff --git a/_module/ncs/j_ai_onheartbeat.ncs b/_module/ncs/j_ai_onheartbeat.ncs index cffd175c0ad82b6a756c070412649d1aeb60e917..010cf6e279a22b1acb796186bd6bd5eea3684d67 100644 GIT binary patch delta 1235 zcmZvbT}TvB6vywmv+nHf%s8w2;i{?YH?EqliP{I6+A5m5re;~7sbnC8K2=Z=(L?!S z$a#p6K6onuO&F;M;wK2WS4EOxc@BYunEKfjW610}u zc7JDZZ*dJFt&uS;=lD~LLHip=uyYainPZHck!paJE2FQ zwur?jQ1NFo(=q38$l*yD{wEe=#FR2#s`>&a9Z6JEao*vFcX&IZWWZ)=9yFp4bx*!Sk_=axa(JON2-JA(69Yy7R9`^)vVAvJIFt=+lEXTLvfC zkl_-t?g?7hq>Q447%ee#f!86Ai^{mYX5KWpXO-* delta 1246 zcmZ`&OH30{6n%GQm}xsRr9ewSD3pYc{Gcu6Ah6FL75y1};NOYlbq0tSRxOC&fM2Hx{@NwQNfzjY*-sIl%&OPVe`zG(er`w>` zRW>-9T?d>Mgw(f&)y$^n0#69x1yTEw6#6^C@$@u~r_zvOr?FccPjUPPLvu9mo!8~B zX!#umUu*b!adfBT&;ioX0S+6ibh4ErWNW*xyp%JNsGHW6l|)i^8`bU?%+vJBlV^%pv9adGX3u`tR$qKVBvY~ zg4ye-tq=LzLRGi3R0iwsM+LzhRu&~NKG)9ikXu>%}HVGunx)i4VoR7!T6M7I4eF>lcR4i3~yl* zhhhAzHgjYXi_9%Bh683_>1le?u)en>qsVxl=?d*iQf8WeqY5^V2S0W@4?fgb7h`(7oyYh)njYgM=3l^s|#31MKrzMa(^O0RCKqlTHb)opF-IyKZlQ2@QM=U@&e zW8Xs<`{Hu4J9L}Y1q^SHBhNZfm&yZNj9Y{kc;A{0e*9?7gC8i^+^`?3Y-uov7i<;K zf)lnx^%ZN&5_O~P$p>2&s`Y^?7eG0tDu6Q3t7GuyK`7N5?M4Q8|5YEtTT=;_V) H2S@$@aRvNz diff --git a/_module/ncs/j_ai_onpercieve.ncs b/_module/ncs/j_ai_onpercieve.ncs index 5efe543c6c9cea20ca122092e060a0a7a03d80bf..8462660e90ee305cda70b0a4ad0e592d825a7301 100644 GIT binary patch delta 1101 zcmZuwT}TvB6uxI>b~o{_)JYSLlTKBYJ{d0_z?P3N?{Yz*%=Jhr$c7&j0_XO(OE+t z4~n9E#_7@|ybJlTg0pZsejts6Wsp;B;&l01jD#23|WhK$|cSlXqNl| zsj*RV?~|(-sp3JF1rlw9ACMYq{p@UEkamg6ks(Y0!p#{U* zuHCo)wT$$H>2X&zvGz#O-}fAV8uS#}x?}&hZPPZ@akTN!vgbc4=#kBIP5?nADk&1zmv-x+L&Zj zy(JJez*?jz>rU+P*bQ$4!F`JmY?CeG%tN)>YPhCIM@<#~i(M8)`Kr5K-K{l+##K|W zx7wU+iJTfm`PPb4)y^Fwn`!9rc~Bd!WA2j|nCQ)clj!p1CbUIr?D9I{DGqzvVE{$n F;XfqV25SHS delta 1033 zcmZ8gTSydP6rM9PJDat(>AG3iy5ok#u9tS9^)l?bPV4B7rRKUNhO{qH5Z&lPXq4tl z31zLPh#q<<>Ln`{wt}D@gh&c4&4dEGK1d{#(uFR<^#8M6h6ZMS{xjeC&Ue1^|F_P- zkJFIZ7;X_a_)5L28K%B7k(sw*(8-X;;vgS$isg8LZu7~TF<|&}F45$K+{7*gl8Kwc z;KCkI;WZA!c5Bkb38GmPL<%<@!8$hRiSQ;S%j5Bg>y)TSSEW&DXwzAF4m3@B$MAHw zz=zk_LX(TY3-CEtAkg5v%c!w-$VNN296n$rw;rnSBv%4qyvyZ69!_x8(1(k8rzOmD zB!MvzwSYU#xwwfJ>=VWcUWs@%U$nhJ|XpRc?vPv6viQ zqts9_H8Hz8}GdrU*Phn^0=sLLh7#|r{0=B6&Lsa8w7JWErabc#I_mRGW(mM8r%Fn z>!ozqst*Qs;;i46y6RsHmd!@|)3S>&iU-Qu9fhnwJXj>F@#y--MkN}L$G1gkUb|LN;;|+jXeB@q`zoC9n1We$e`>VC2XGKIX$cE% zTqZ4bTd4~m>yvr$x2oKvq^WA7O%0T6%t^@dutTy!0DGmvOx?B_hNxuRkQ$U)06Nhg zaDxp)fgK>?wLlc2{lP9cj@>~IjHU*HlK?;QSg0P7sqs)Zz%0h(0wV50nJv{T-)6}u z!!=%bg8ORv?DyuGb+?#Rx&&BT9uWMz@v(P!Ap7t=s?(J98xMk z?62Ll(5b8a{73Dc+Dgc{M5m`|-`C=eIv-5oR9%sCL}#8!^NZw|>3QGi1<|yR4)jJk z(~Zylroy|C0?5Z#5j*tYmxu%d=v9}%9aL2}oWi|ok>#vWXHu2m8BVLa;SsjiZ~O(n CN)3Df diff --git a/_module/ncs/j_ai_onphiattack.ncs b/_module/ncs/j_ai_onphiattack.ncs index 80764111ad332821c9452a4b720cde0484c20dd4..65e2f467d46958bf7dcdbdf07d441e08486ddf96 100644 GIT binary patch delta 705 zcmZXRKWGzC9LL}9z3Zh{xa4S)Tr{R8m4GoN+CeR8lIta;YSA2|(ZLon=^!}Pp$>{e zX7MKo4$^K8E)q~dk#rE+K?gw>r&44d& zEu^na70y%{t4+T&Kk&%10N?lbm^RKBJNF&8xE*?&lA2w_`=zMH*z_H=Mamr0bomH` zJwR8apnz?Wg{IWU;^%*Hp$W#sZ*?+DVUFH?Ep8g-pJxU zFMJ%LiiNwl9-e@H_eVGk$sYB@Kso)%v?P0Gl{Vt*SStfc7rX5SJ*e=XqJr(^Mb&@fDAJ@k$)BG`~Mc@zM^qy$0Sqx%7U1u zvm)1Lhqih7!aEdt?#V+z11bs@52820t5qx%5u{(#Lkre*W`g2nc=P7>{_j8Uy_kcAIpAJ( zDt~c!aA=H>>d`0sElu2D5QgDT63G%mPOso9O~FIlqZZu66tg&wMCAkM*Sjc~1$`K> z0@P&O-8r&GS%eY7*40T&g*o3_&)Jn2-%jQ!Q;CBM$voaFr4O~QYy;2nrd6QP$N^%C ziNL?$d9EKcgn!m;r~>u?S9t~QV~^2e?N~BH-)Z`=q{nNn8#L;gOGqw{(?$*q#lmfT zWAwt0)|z1eyu>XtO~FQPcG(HV!;I1*pZ|3hb+@fI?$;+Zk&}uUyk;h#j7_t^^>ns~ zbV_V!JvATMQm|T_hY$Fv_z^~MsZ@w-XtxdF`HnR1m(m?eG)kj?%eC7@+>Ui(ZZwu5 z6M9@ks>VPwztjT4aQ~`YKypxSq$?w@;jS{w9DSZTsXD}~qE?gt4}?ECrAmHp;^XqP z99IA6p7eIivEeIv&Olr*hO~R&JtxbLYsvRY43hZFDZ?w=ar)#Zx+^wp$fADEj{N5g rXDdap@O9-n+`(nxVe^a!D>_Pv6L48Zbwn`$-&)He3y{MvW0(E_>WikZ diff --git a/_module/ncs/j_ai_onspawn.ncs b/_module/ncs/j_ai_onspawn.ncs index 6ad853857a7ba7dc1a2b9d57303bf21309f650e6..80f57a8dfaf2d6f4b4ad8832531b1ea281a1e1b6 100644 GIT binary patch delta 276 zcmccdjq%AhMqWSXV1+P4Jp(5OhU%1!ys|8e7dC6NTw!FKIf+e&artIlHZDfS3zIF_ z`}i*@G0QUm0goJzV9K6+mHm(K8W5Yqo`nr00b+A{Ox6>U7hqrnaTxlbS`vYRa%v6` zB@FRkW5ijQfhrgwT3H#Go-jd}lLI-$7+E%FaKQS)qJ2jPt;(4?q?(kR?00i@%mJ1I$ttsAW70WXWvaFA%}VsIgf> XXnDE-*uh{IFt7q$&9wPsWj`YTG2c8f delta 282 zcmaFzjq%1eMqWSXV1+P4Jp(5OhU$ooys|8eM>cD-Tw!FKJc&(*ap7iNHZDfSQTQ-2TAt1YwTXd~ar4#6entSAO+94* diff --git a/_module/ncs/j_ai_onspellcast.ncs b/_module/ncs/j_ai_onspellcast.ncs index 36d7cb1b343e39b969fa302249dd90f50bdb4d59..6c0da0da78f5efdd2da80d3fb566fd9375ff854a 100644 GIT binary patch delta 968 zcmZuvTS(Jk6#vfmpYwuq<~BForKxG#yv{C!6fu{VUEHQy>ZZ2np%<~9EGfZ^N(xq! z13lP<-itu~4}z2Er3gXlAq@#3iA+dHD#6HH-~XGz!d}kzo!jr6^E)S&fT;v1e9oY` z(_T~8NJ!t*xZ;avUY0>}oer-z8uCXS9c@7qA*7{&3j7@|74|Zn6v*UEf@Je88JVPx zYC;78lF8&6kxBNz2s+_4+(s2Wq@CrS^^_-MOrbR(J_?@ITz4YK-qu4tDd7?BA)(rfFQHdI;eLwZRIS1&?Ne3NnEZ;kzXBiIfwb5w8fjIna$U zg`4h?;i94nmPC2pJ{era%7SHhBq~%EfQ#Z`bs0cVjA)oVFBOiFF+K11|Q_(149TB_{}f`jo5E20XN2s^~#kL zZ=jUP9C1SMj&`2yoixf;g;tfwTn`zEdu1f2KEt|D(rDD<(r!b9ipBv7L?|rubYVd5p z3RM^n48U954s<}j*xp`|0R|lE95Afu2|Jc8Gf6|++(E-%oh2i6RLE9R=1K%9~-z_DR>(jjSCMRK*%V*UR>_2xemmt>Tc&}>&N>Sf^ zGgHICXD}8nrL#|QGF(~kbyou@51SMQUf`7k4LN8JAB9Og7uG>Fj)kr8lBZ_wPF)Q* qu-hq%^nn&fBlqDFlYSiNvC)kr`}**6PZeC_zcamW;5i=Xi~Iq5ISASS delta 928 zcmZuvUr1A76#ve5uQSuDw&|wsPt%+_E&owcVZ!p?=H}J8>D*NI;6s!N_MjLA^=1hp z+X){cp?nI2qV7Y9k-k|PSX9J}f+#{N!L-64TK9fe!G~VXcm939bI$La2Qv_v0YR+w zSvx99%a0S%6S*pUbwA}3NJ_24;|cp)!j86PpM?<8SV}qe4&-rrWt(VujVwX&iHl}g zQpW*8IS%6S_&35U{?>l1g(WzTI(o?PkVV$ih(B3HYbe4nwG|%Q8Efv9>!-TH0f#T_ z@cSLL?)o|ftv-rV)Ry#J{aJqpW7G&v{7H-96BGZZTCm5A3aw)sP zgAt*Lrf*_Q*bgrxO=><5Ls+8y0M{fzR|L=}Rb}i0Xp};kvSq;vgAT{_*I_``R$v5k zvOdF239<_S&Pqi&X#gkjuu+5@95J@Q0=_X0fe%HK2s}=h{BRf7O~X)yedb)K!HBss zZCT|FIG%Tm5rS9D<@y+#dxgjYlVV`BPE(B>Dl;V{v)CsVvja0Ww+yMz^4AWtc*&Lg}R z%%cl)xY}8g@^MEUEDl-(J;QmTAjr#Y4_4<)ZTBiS^BP!wf%&@|N%0CGS;MHWOVKrCZs{Qv*|4+a)i m1_l{MAi>2nxk}TLao6T8n&0`Qk<@$vtKnplW&mkWU;qF*)GnO> delta 241 zcmX?8e4v=u&pB8j%uvt3iGjiLz(!tHb-^P{%uLKIYz#mk2gJ;KCMT*(Otx0P;dvM) z&cY0oU2K1lvaUxy%2p6d4wvi%|M+XJuDzqT+)+cG_)8$Om5fEVdR~huPZ(I zyaq30-sHO);=(*&bqrwA1f*JE)nsP$S?v4 hF2>0XnwE?QHt*8>&Myj<{Q;KcWRzwAD*d6r005q*EY|=4 diff --git a/_module/ncs/j_ai_wingbuffet.ncs b/_module/ncs/j_ai_wingbuffet.ncs index d8d559a123ac6d0b3640dfed057aa34bed7148c5..20bb7ac04fc36580c36533f2db938bcebca1d3ca 100644 GIT binary patch delta 107 zcmX@Yb%9IG&pB8j%uvt3iGhJNK#lWoCgdn(hML$hz_uVA7BNVOq(|_S~D?rZhpfY!3Y59DjU84 delta 73 zcmcb>b%aa7&pB8j%uvt3iGhLDMUDXoI20IIm_ZCy1_n;XjcVzPj9HWW7^Qic8UO$P Y|A&DED6Yx4c@LvC6J!78AIuSq00Nj00RR91 diff --git a/_module/ncs/j_ai_wingflying.ncs b/_module/ncs/j_ai_wingflying.ncs index 9056c4508eab4c7dd6bbfac5990f3bbb115ed2d6..23418e3f624516b6b2b3b6ce287222d5ab6ca933 100644 GIT binary patch delta 78 zcmX@icb<>e&pB8j%uvt3iGhLLeS=c}n3p0phWnkcB Int06_0Ce;TX8-^I delta 58 zcmbQwG?R(f&pB8j%uvt3iGhJpaw4xS3X4B~=# z%vzHTxr8SxFx!hUHZn5)|Ns971B)~Rkp2UbX1qMPflYey1ZK?upe|Mho`9m%g2bZK zz|z#BN>t^{P|YB13|?T~9|jhn9uB{7zliwYKp(J73KKJ!UNBjoU8^1_Eeeu$byak9 z@+>n_j8KeJ3`` zkB^8l&0iszEj=mJ5RvyCjw*dgeJMmt>Zu0&PbP zA6O*di}wHj|2}161*?bw>;8ZgB9k51C6j^fB9IQuk<$Tk9AZYHDb^_5tj{XT$k+x7 zyUA&6g^W>~Z?N5CV)~&tc?YML){h?$e?x-t=PYo3F$P8A&rgW_^8f!Y)yXEVfTfjMU12gAlZf;>_ IrcZD_0IkbQ>Hq)$ diff --git a/_module/ncs/mod_onacquire.ncs b/_module/ncs/mod_onacquire.ncs index 9a8613d17172a988a6ea793e444dc60bcb6408f3..38fa9ac632e9d8422a53207755ed20e9dfdeea78 100644 GIT binary patch delta 1337 zcmb7COHUI~6u$R%rY%rPJ2QpW@|dAQ0ExVI#s!KILDB#PG*M!z6huQynn6oQ1QOjD zG@e9BOxTGlHKYsu1!Cex4I3j1jV@Ri(ZnE8q~3dH5U0Sx#mqe?=R4o|&SSIv*YW&t zOGNE!I9Puaq0q!aey^bUT8U`GnM`IG38e_3!dWFmL_tKjpSiv&SaA4YRw&SX#6-R~ zkr4}0`3SG<3M>nCRmz-|)3<6Oo&D-yGBKi_Vbn?r9*aTm-=I-Y>EH!*QL17|T$)+X zr|(81|2Am0f(DKJnydLDDmC&$s~Tn9q{;196JxrX7&P?AlblFdGs7lPgzFix=hw(} zRz1qp9z+g<=$eH{dPf!2YSJUC8hO)-nxW+?HEGaVN`7iZwes##4!~?mm6emaW6^=}o&359 zyBnF|k45!pTl~lcefUajkCJ!TP>Kn$!9pMaL0kZSL_RxfR@DwFw< zyR|B6H*c?sdOdViB?2{?=(4yW(RDFn?HgOzAuiFF{xr_ko3}Onwz$4yH0k+ZqrH5z x)(9h3D8xZVl!p60T2;~s?u6@GJ^xN|D7(al+`#=l^C7LJ-Z8T1`B3czh z#f|kL3gU003sEcqS1P*DjT=`gwulQ63q>lHQm|%xpGnP=7FRRx&6#u0x%b>(>q{G* z9W7~fTdZm2Ish6^jX1lknlHr*7S1q?F<`9+0Qm1pAzrWwfa}FaUkr{^$?&?hM)TQC zP7o;evNl#ccN)?N`hRTICDbJRYU$CeYaW`1y*Q6lJCm&&v7Q*Kp z{f95gpuA5BpTl;Om)^o9TmZhd-SSDYs5YQMfle9-GBr;#JW*ZG2O{uB^=Y4X*E|sS zSpum$j3D*JLyO*Uyy$^1gI<_&gj7d~qj7Tu0E*qDDeN0?;ZO)qF|c^g(aFUO-h!|A zVFH{rPvb<=W&FjGK*B8O1(1^tpZS+s(RCVrqAzi1&=)sUYg;_Th9gzT9m*7PTLyB4 z3XzK`^Fq*C67B6$2yrxVgky$q zNOcSeDY!XB>p@NP!rL`AiTGV?`pu^G!h!z%$gwh1k2~L3u1qX8RhX$Tk8m+6yPqNRtpW02Z}LdgJq5~v9d6OxM1GR$=_M!m{KEYr;)4TyfC?IzfJ8sT#5fsOu(lsi zZAfM`g3RE9nvoJ*Qk0pOj$sPeF+UU-Ci`+o)MLnk?Et$QXgnQGTfvB|-V+B$~jDqSYJChYAenz7YngcS$Ts^vrWiF3BuQ#bMW)1*nI^FWfI8J~+?^ zERzCp6~ltbUR+A`NXkS(%3NI)9i2SOj1(gjBNYQegFRT-fTl6BGB8*&LtLl805p;p zMJ>!`5oMqhqoRm1Sl|l-3s`_v(b>_*M?@KDh8`o>j2~b#M1W?tI& zSUuR+d{AGf1eX+L=A~otH_$RUP?)R2+yeHi9+LNvLIJ4G5aJn_bCA@b27@U^IGDr3 z0qisp*NW8S(vnn|3&9aHnNLbw9wp%a|NplZ6!1X$CD{32CI@hdNGULY4G{`TO-!i_ z$p=w>sTCzb`Q=!R@Pr!CiZDVLY6Lf$-g-3a|Gt4mAJ|4=kaCyAl0?ru$K;aCvQ(gz zSb`OtoPchggcLw10r__-6Dv5VHNd)IY50fiGb|&pB8j%uvt3iGhJLbtCUHjv{8p|NsBLVPIipU}kdT02M#lgD z|NmfMk!AqWf0#kM7Yruq!^(XsTdF%?7_kYbPFRZ1A{p; zL?j_15oMqhqoRm1SODlJumG!~v!joXh%(S(Jw~v_KNJ`M9q()$ diff --git a/_module/ncs/mod_onclenter.ncs b/_module/ncs/mod_onclenter.ncs index 2dce18e528f5bd35dc043d083531c9d21e44fead..f8319808f1501d423e42f3229c2eb365a3d16fc4 100644 GIT binary patch delta 2110 zcma)7Z%kWN6o2>jwWXzn0;Piir7JGsPbIXS$e&Th7!24fWks1|2^RVwxTR&?s~a%{ z*%p(1(ZCTu=!f~u4>NJ*C3D1RrqRqqW5#BTb4CNwVRSekE)oMi@4K(1uQJJ+^u2d~ z=l;$)@0{Pc@8O&1>LfCHoBg)uoRwAk8K&*(r11)h!Y-p_^4r?unSQNg%wsE(gn%YxLjTGxh!73{^7sRCN~DnzWf=l$+gA zILNk{u@PtEY-;#Zu2l7}ls>~|p%36Iwxh&R<1i62OaA5}$;~6W@xIy$K6NoFgb{U# zeeH1w9rnlYo2!|@b$xJCm z>uRv47hcmjv8NP1)!DI!g_zEU8|Fc)FTo8TgF|128>WOFeGQAXS70*Z5H`%hPZ>4X z`2Cd0435m>*f*D}wKz}VWI}S15qA>w^O51u&=xl|!!?`4Hn*JR2BJKd zU~Cf?NfSjvN^HHjPSv2XG4PGWGQK4Q%~Z)q63E{4BU~Wp<<9a)!e_QnZL(D5qR{ur zk+vTQ@PYPF(*QsG68B%4E?%4|S{$JyFKSBrZIPB)4}qL~m?=GltU^WEZdABbL|am6 zC9kpMPqu`thTvrR{_Niu>4sLUl6puEkrQye{Aig}tOML>J`x_?zF5Kw6&4kmCv7Uq z(qK(;yhQO{F*)+`g-mBTb<>!Ugzf zgiGc?rh`UJy3dhyxAMCvD@VSP{x`F5YVR28g9m%}?Ra+c zL^jZ&jT2#Cg9WidPs3Blv7}Wh;?8GO5!I4V;W#|a8&VZBk25{jl?CfO67x99sGAA?mfk(0| z$2eg&F?JuLn6O5TmD?Hif(8@dN1W5^9%7+Rtz8Uh1mTvtHe#-f!*)HIPbN&FH&WWQ!AI(!!n`4 ziXLDKwlKlJN~J2!F!Q%9debdLYCaF;@vJqU!GO@@C@ylE36(&8tqw}6>COe+Y*?$y zMrPQj%byi{vTD;T*OL^A^!>Q99B%8Ya1{rINlxtVlvX6|McA){UkvlG?;6O4672f~ zN{toRw-vS;7h#_ZP8myawG7vcdARyIj2m-sbw6Y$=i};QP@6m#S9eRHM9qv53x{;s zyotw10*}?(wNLn4h!NdGLaX>?L!-~(Sk~$Btb>6_xVvXFoxEN)hs0t|A{>@( zF*{8u1ko#1coPw+^qx`)&qO6yEY`Z+;>KtsT};H3Xhp`+Y5FWx@n!kZ8CrbuJqio_ zjx5?g%W|#OXG@GfWjd9aAsHvHnrcAXd(YPCrDJjN_mO=GvyCPkU zJ-&^R?wz9Ii%tv)>8PpzT9$XPj+L@7F)<$ET;08?&2vAtc~XaMm)USzrfeuVo+gYI zY)6&SnrG*rS+Rp`@B6|S10^r2SV5ebL( zJgyCynv6ytD0Pvx&$aRBJIF3@z{gG#9Q-DAsX}WAS)u7L?S3fOn_;&LOnQ2?0H3#ViZ=y;jPGkpkjn zHbhId%^greRMH&2o45*y&Qf(4U*~LQF$hk_bh4!sGRm-&e6eCX^*g zC=e}g#$zAQS+vvT&LBC~M8jdRC(_UzX%BVxM0QXo-nf$+dnfZH+j~jnB!xApZNnCE zV}xdV{nfaOe9xPBtO!2$%tS9qmptDid$uyp>Q8cm*YI$}h6BgRa;ppnF2Y@ZE*>}qmYN94>pPSQCu%;#e`ZRRwXGQ6`j%EjI$3YS{{tS& BAtV3* diff --git a/_module/ncs/mod_onclleave.ncs b/_module/ncs/mod_onclleave.ncs index 94e25def092ab81ca0c560fdded5776b1588909c..d031d3ad0cbb8bdeff514a1d1790fde6da48d47c 100644 GIT binary patch delta 725 zcmZ1*vMGSq&pB8j%uvt3iGe}GXd|x>qX64fX2$>j|9@d%kz-(BVBbAipHYs9yKS;R zqZkv&|+m^X<-DK$rDhNT98{2~kT1DgWK2BDzT#FWaAd=TZAT2T^|UrwS4+$dVT(0r%> z311}N2!qtSB$gz4<~b&pWR|7kuyPVGVB{vx2&0@T3meGuka$BTSs56eStftvsb!3xoX_hZ z9;zb%QU}C5;NXI4oP2;+jFDyYbzWa)rq7Qj+lk0ezAmh=IaRPe!x7C7}0R?HhnE(I) delta 1048 zcmah|&rcIU6rP#gt*xcM7p$U`rASb;g2Wh4T1t&IwLcNdNgKK`cxcVKAUz<_#50Mb zQBQjHKqBthi}7#pWDMm3Mh=pAASt!Zk8ZQICLVStGxL4#d*6F+K4jKsT&Y-oaCRax zJ_W$(vl}iy^x9Vh*lad`0dW8T;P`~k!2#rYjMK0WxnJU%uitnAz2Yo1M1cSRL+=Ao z0-%A|5u`-;90_zqBmIDcJ8115g(zo|-F!h34?%Z=g9O-tIBN^wx)k=4I|=k;H1&Q_ zQ?rYzR>d1IFh+zZ8eC_x2S6k!d+JuIa66w(vYQfD0&lTL8p5Fw`znF-Qb;_mM5hu< z=aqsor(|yCuZcDi2@>5)0#9;~+HiGXO?z^fTtP(+o7G_lk`jw1lX95Eh(H!&pT&?Z zG31tDI@8vhM0nHICo_-kmd8?F*A~imsmoPXd{VWOraE&L`L}0+o8al230QFdF@CXa zoaG|Nm(}@2-L0BA@xo_4M~_&F+-&|{r$r{~cf5;^2N~C&Q;VhQOoc8fby?3<9^!6d zqD6d4i9SYj{>2#YkZSCjtzqB*1y2|CVxk7Z`OZKuki^P3N(X~> z)7qr&9$jEP!tW2g@z;N_slAE>o_*sLF4_ync*&;K2f9|Nc2%smL%qJuZQw2Y7`$V+ z9iL$^#HZi-CnFXU@Xy05a1NK9S4Pukykta0^7Wh`KhRAf<4Y*USLY1@?d{-?zRSiv r&sqR|3mWyIckt92*X4=VUNa*R+Pm5w$)CMoy4xD2FVEN<&Ix}2_tYnE diff --git a/_module/ncs/mod_ondeath.ncs b/_module/ncs/mod_ondeath.ncs index bc9e9879aaf26ac0b1b75a95f5410e4b0bd7c27d..5d063be69c6a451e25abf8a6513b2525a4655c69 100644 GIT binary patch delta 1458 zcma)6Nla5g7@nE;9u?cNw2ulYg%W}+5+V{4qEQxEm6W9@crd1v2O?pyJhlS?gabwr zmEQ{wGt9XF&DOwNQE&B z9ps2i{~BEluEwj?P1hB#N);nS8xk}Fu7X_SlqEropy6n6c1j3E5_oUyNXgHRp>jO? zI+!NR3}Q?&w3}KFXo<~U!9gP6vpGeZFqh)kmqgmxk2DWoqmpftf!k%)0xrO;RjD7W z(TjLeTaUhrNmLI^#J(^TF^$y(6_(6+F@^{{)(;&U5izAa3%4wfQ*HPEc9OAoCj`o@ z$B6AYI8C+;-6quie|_ex`GvMZClbYi>FEa)I0M<0=m0?+az2TB0}b*O66u5_?0^sQ z6p^066MF)T#C4O1*V<~FAQ1EoHsT#8&;k)yZ)lsp{+2G`ykvHl$27Q&NcvlHX$Z;^ zPUr1l#W<$GnreJXx5uZ{_A0(XDj(tmao1LHcF^MvqQxW*b3aNvdNaP0TB9sTR3J#R zTlKYdwuXh_6>d_1BqWy(DBfOG33}|47YDe`ybt@g_=`n25#-oy!(l0Sr8_-B4%F6I zr+AuO%79we)gR^>m>Ydmct2KVUgA+bm7PUiwXILt?G}mX=+Kl?3>*iHC(hd+a^Q24 zXtBRPhJdHiPq^SHwrpSH24zHGFXi`dFT*28V%HZ6@WrfNxS~C(NduBrCVIFKK-k*Md8}nye$3NuR~9*h8~| zqRSPvsHKIj2&I{J-V=tHPK%C2JG{#%C#$Itmw85B;9Mgt;cAB7<0`adUOc}RsWX(H z`)nx=y)lSFWv3dJS38>J#yS=GRtRo6x(GwOq@aX^Js8VrALCX!n;Vp-imtBqiu(E* rH}x@b>IW`qh!MgoUUnj4p&xy(tRMr&bZHJ!v+v<0_$AxmZFcq_c%OjC delta 1972 zcmb7FT})eL82-NR^t6nYpS4}rQd)XeSedKH>c}RGLtr2%ma>9_L}wU1Q{2|h?l31V zYhsLviGTQBm@V0|n0e#Hm}$H)CV1hEH+p3PQ)8UbQ4=KH#Ee9wem|$I6^b!U&&m6} zzt8(V?|0?~?~PQ1JEOj*_cS$kAQZg!NyR~u!UrXs%jK4lfxolJ;6(_PRk;y8UGgC! z8)RgQs#@nnGO5P3o^dUb7>{dbu|!bBs~0F|FIX< zF^wxz=Y>CiF8fe{?KWoH)ups|^qvhV!^(&f8H)B8j5H*c5!xpS&;R4oy5>V`sbKN< zt|iFVZ1+$Cf5;wGHFLDDAN3bFF{EjEM1K+^Lq7|P72YD2+l zDm&TV!!$((ADAcWH#5+|EWml22eRcxIBI!PG7}?sE0pxtmM+}=F_C#;`k>@X7Evhe zZv#s=pzD7Svydlsc>yt4ZJ2dkR$;jEXFQocQ1u=rRaqL{1-GlOnjT_W`wh)^Fx@i))sVQ1G^RL{#IwRk20g};>Am} zg(mW^u=jhlfxBkgPqxp%b=$L~d>XQ?PdFkr>c0oi(&%jIdfv1GUe=z!yLU!8Mv%fzg$Pc3qTZ(txsPAW`UR^Az zCCB5>ms(A_(c`>ey6vpUOna&FGw&9!CGUZ~>zq0^p{Xnxyz1J*`rJ~4I@88b(=;Al z0$m=l*SuIueqV_UH(U>fF+j>f|3Iqh)bWfsU)9OyzpDy3$- zKCfKv_RUg&=L1CM6K$mP+OdzO*kk~dsV$_q$zmMvLd~=rb3Qe(KCF)1=M$CQf{?qz z`qwfy=q8eY`}c$JhI^RMuKehBt_SmLmG4Ns^obtDj#g+6m|5=Pf;BM$Af8K(V4Ikkv)W>V1(5fC+wf5u3=^d=bXamo% zq8@Z245j|~N>tCE`Ok?tPuJeK zR@_ED9{w50<>uxKxjI*JbTZlrz9Z`?M)4E^g`Il2~>NzYbW!-83Up&vq9Sx#*YWa}HJrGt@J1VqlQv*vPBF!o*ck|&@jwIH!5HLx_bs1nHM@C)~g zhz}0*0V-%<0uud`_4#G%!PJ_n7E`CmlWk!;t!L}JOX0OjE{h+Lw2)+@Of?k%HW_7 delta 929 zcmeCM>bK+da}HJrGt@J1VqlQx-^i=M!o<(F*_@@4kx8U#@+Q`BCT{h~2Y6*BtFujJ zVxKjckyC8)CAMNFjjJC zEOU*Cm4z9^1@V|UC(q`x76J;fGVlZxr4}R>r3RL!7F7Z*5Z3;|zyeal;Kj@cGK_%* zsEWfc+%F{|6eX;F~0tE-};lV_QcVuWI(VnArH2MZg}6h>AC z21{m$yA&9JYI#xAg6#m>D54CMVpJ4S1`B+F3a~0VJNo#DC2SiopEc_QOn##x*7na(pR9nleBfB+p? z5G~2V2BKJ)fdnHf0|O`1WGR*`CT5PwZ7g+x&diMe|NsBMz{1MF(#Qzr`~Y*BAe=v7 zPBSA=UNE>Mv8cqoG&3YKH#0BYDX|DB$n6*I7ZD$jlUSKr1T><7X>uW}3gef_(^$P3 zKTLkaY8VPOo57qJ?ko|ov(&(L0gVUKZ=f_#u^h;?$_fl%@h>3j8Q7Vm8Gx?*113Kx zFfcJsKFy*wS%8CeaxuFRj|@$D=F{a)dO@ SATSN_2M5$Co2PMPG6DcNFn9a_ delta 641 zcmaDa_+OaU&pB8j%uvt3iGhLh|3uzLj1MP%Siop8c_QOn#wnZina(rH?9&lofB+p? z5G~BY3?vy@fjSr`E3jlSvB*vCVX2ddXJTbxWe^N5Nh~UHFU<_e%+1V8cSHnF6L?FtC7WnElKO3}F5Tux559X$GKket^jj zP$`H5L_rR4byak9@+>n_j8KeJ3xYiL>Vjq3|z1PtD>``kB^8lFp%^ZA^x1~$Ck+WZSn>-XU0vFFS4k~ z0o4L^ax#IVP9V4>zW_bvLcwwM|Np-(u;JKZ2PnA^7O0>o;Zc?ch7yA`%r#&d5?dV5 L0N>okp2-LRr-Huc diff --git a/_module/ncs/mod_onheart.ncs b/_module/ncs/mod_onheart.ncs index f084436e70d876f5d94ef1f2121d17099970dfe4..ee27269e53e242453f60a2f9546d727f62035209 100644 GIT binary patch delta 251 zcmZqT+0M!9=NzmMW~gW2#K6F^eIsuYvk}8#X2$>j|NmfMVPR%qU|^I35)A86#F)Th zvzeH|^o_|2neB|h3jQ##urjc;Fak-QfTGlb#G=%|($u0#AfLl8+%F}$ J{KBTd006l8MGXJ| delta 612 zcmdna*~G)^=NzmMW~gW2#K6GDw2?Q7*@$sEGvojN|9>#BurM<)Ffhu2h-MTqCa_pO z6ElcrVw}8?*{+_6m4%goC!i>`Ah9Slur#%(k`Zc*Gy~AMKQIG8S{S^*ygxuISQ$9{ z!u=xRg9ClQGAR&485V$be_&t%>;54N(!~QY2|_9`AekZRR}VDA)m72a$+OHzF+wp? zF(5S9gM|&Ki;b)$10GNQv$xW+8rp zrSuQj@dLWIWFa;zy1+FvZIj~aW+pRpzQ;M=T>I-@XCj&ku7$_OX8~;WTjwgm_?~8v zjz(z)Px;JOCV)-k3CSivBc9M80GOX>4HIk$(SE7lXIYXZ068WhUDsbg78P%FQ96!_ zs}EpM`5dveH%7G7j*`nQ7nHoVpCr3!C9mYS*^@J|p4ixmswAzIRKftKm@OATx1@nu zLw>~=9_h0sFadX1;u7%b2PXK@JfX-Czl-n}q+k=b1Rzc)bkaH<>9A7eRvgPJ*-NWr zr9{*+J6nZ*Y9;B;qq< zlFilv02MZELE=i1bhf-&;9G(mY01K&vFkq+Z3cTcXb^rk=;q~f^ugBSGZMPw$qaj& z<2mab&pDz+yW7t||7Ln41!%+WbbWzHZ2?O>MP2`@(q6{~Ejs!te>7VT4Fy@TjeVxV n0a;-G$5^=?i0JcOq}sA=L>U$t&t$WlaJC#L2PD^p_dN*T>XPV0 literal 3481 zcmbtW&2Jk;6rbI-(=<)ON1a4~l8zIIk`P7ELJ+7Wa_nuI;ySMFv<)hXR`!TSb=R)H zS|9ia2wb=!4p1Zz+(G;Ul@JmKxFB%@sS-K#5TPnbOG0?_-i+myD3a*fSTznZ zwmu;meH=m7BwOQsbMi^R3BdmlsxpX+pq*zE2i7yN2edq5g5B|@LX~G7mlxc8o#%y9 z6NCzC!Jex|Xat_aynKBnpXbHGid!l3s#`7!x5AwYSky$GSBq1jkrqES6GL)e5;1HF z55|9bK9ROl89txLERb!rSmtBN=zMIF$0gPzkLI0nIpbUx?l`{`i7(peF(uADCEjk6 znK7vxQ_K`!`Bm9~I!Np{vhDn(#dbV2B7<@CJTb(55Y`~G`Y9b)H$~?ey@bMpc-DYP zf8ql8mT%Twh{K?T@tmd)dKukN%t2VWW}e11poeSg@>^iev%iY8);(45C1nPH5NB@z zpt%k?>`}=T(%*4+FTO$QVUEFh_aJRSy#_&sfjLo0%fKfw?kRD@S#ej~cfHA};p92k zf_4SwJ&DVSE6dT6a4OZ3z~!82;qx<(?=9rjO+4tgd1wIYlR&l|j?B*2PKK|9m%_=# z^tnKX%q|G$8r@3F8Q* zFSv&`x{L7M%=x)V8VtUYR%^cAqXRljiTxhv)0w?iT9!3ycHk=H5Jq(s%>C;4%%4{d zfrd0O-f6D{09`fE6gEP+B~6WUxJG6NSad0h8T&#LhE3D>XoOCKg1ZTj6D#))SoajO z%TBhkQgClMZmtDjXdeJdj$^}!a2gPx>&WAwshkvkOxSUP;=PAV8}`_gAkQ`5#}GkI z+mmTKZbvg*hKip}EnMK)YfdTWR2+W!oSm|HH1?LLpPAv2M2sh#8{*6i#_?OKCp-d; zU?2%ubyGDxj2w12XnJab!+~~a8ONV7K$UKMO<4418Ys{y31BWkkC7tb&^JE-0F`>) z6s6jsq3&I2&VAXex|1bQbV}l4Rg`?QS98R}o!26QO(%A!^u_oP+&}*MUXq0C2F-ol z82@K;dcDz{u%-4YmbrAL)V`BqWk9ul?qNN(FYBjBVBNl2_8rnTU-L2x*|$ZuS`nJy zemX+C@hkV}LsIV151tm|QBIANr&Geo)iVY8NQm2&RN+?p4zS0^xbh(m^>OT9gFpO{ zL{ub?OMn=Z$-EnZE>IKgSwd0BeEIvM7R@~w^{{FNG3Uk(FIYJ5!DHuDU+Za%9hv-3 zz@)}|(`+4YQEfC;d9`z|nOAW2{#d;&Tob<7Oyl|*OH+se6cog51o zOiGMXCRZ~BDs9pc02vI#5+Jh~Bw5%%6xdb5fWG63R-N7g}*@0Di zvMr0)WO(aazYKrE)?QI)+FRP`68R<6A7kfaVVpnt0(ULr z&&hr~iAk*w`NoEUXMHjS%MpLm0?uW(1PL!Ko$ArA0-lc_kj1B?0-F jc_qa_VQ#;0zleDMq^#8B5}?usrpaf7BscdzvN-b;Mz+ao zn3Wj?CSPC{6~Cp#3^JZU1Z?FSh?PRWHveIs&B%WPSy1H38|Oe|WH6`8~)bMh)M zaf?mX=9OV$z5){29M9{|XsFG^EXTmWz?dP;@c;k+KTzI0d7v1>1hC8%CRP?^5EsmQ zG5J29JQL&bN&G-^*A+(%BgnBpE2SCgL9Uhs`Hu~3h)_^!VoGI5K8W&5ttbh~FUPPG?0AF` zXeMyu(+c%1B%DAVoE#`5Du&I5N#Nkw{8xyVgXvrPWFBcX%`1pV`v3ns7c7#1YzIUn z0eK<7NRnj%GK?qjgJ~gPM1dIJK7yjk3Ms%F8PNlr8y0+?c_kR`nj9k|%kV=wz&WR delta 1062 zcmeA(oo>nN=NzmMW~gW2#K0gkeIsuGGm|9umHEE=6GIzM#KM1%yJA23``TH8UFwO{|Cx@DGwB5m;jPtc4T5@VFq!* zypqZH`Q(|HgD3F=Nu$Y%AWCrZHA!b7pfXklo`9m%g2bZKz|z#BN}w&mhCdisKpGjm zm>EG9Ft7ksarlM%MZ^aO`haCpAeJ&LU<9f7FnJ@JWc?on1|;>OAoZ@UijGd6Wk!k- zijj%|p}`(3Y(QffSs55CnIVo>U;vuUi=q~62+#>4%0MYbMG``kB^8l z&@)bp%4f93B#2w}`k_q$Zb^@TJ1s1dA3i1=Lvh z|Nq}wP%HrHmtenr0mg!e6x2&XL8*x;l_B{c$}hE|Bq+Zelz=eJ@PwMtiZDYMY6dr& zW*Kw`{CxxQG)VpAa{}Us!~=BHB%~lf397$SnOMPrsewp5cEH2~G+hL59Gc>aL*~i# z5|R_&^H0`iV%_W}c!!JBr95K;92v4v}R6GOkbJ z2h-btxdhCZ3d$#f;F#ft#fWEK3CO2m&?NHZ86t`N|NrF%E`NW%jhaNjhB6zN8h|xG M4ST6I`L}=!0CL$<yrd@o!ScEpST|1TomLO0cvxFoTjc~5Cv*dIg3Rdw64Ka2Z2b_w;RyO*;>cHOBm*xXmB3S%d9grGlsO@e zBQ_Y;fNCfx4H>S%UhWxNL#Wo*P>q|#0hb=v$7NhmPlFJwcz)Kw_eFSLm zoAg9!D5V;p9_L#OQetX9k9N(Ga3`cl`IcV@9K=b*&djqgz?Mv9E&xgzmqxN~1NuIK zi*gduzJ=Sv8%dj%N?1Gl*t~PIokY2Z@8p=ljr}<$v~&hfP?LdIatezTFRNGivbt%{ zv>Uf?^LiSZuWT!joxVzL{!;cUT$7uQ7W;8eZt}s!w@NNKX_HH?S8~bCgv*5Fat0<_ z7?`Z4U`G{TTb?`vQ*VHkHhZ^GNmF?rRhEER$uNJKF<^Q(^Vg9|NipAtCy$R<=8h>7 z0uGu02WUdz0pgVjfhRb4B0hrr4Me-e=7`NjGEYE(f*w=;uqhu(v`~Qu59@r!a!B?) zDub)=l={QOp9Oe19JIoq5&8Rk{w6S_O|z1hIf4C$bobEs7>oS~$LJ}c@#nskCeYPA uWYR)d5}0&zOH9RL9zF7{2eh_X4pWbKJtH6r=*q83YTfM%jLpkHlgFl!BshTROb5&IPb3VvX7# z_-9$1Th5aEXJ&Cx6HS!hbzxbuB_<>C!-U1Sjm8fkVHS;v3MTUhwmawC-g3JIU4Qi4 z^Yner`@GNlp4&g;;_dsQrL{3ow#!w$xq*ZJ&QZ$^6B5htAEpnGa2>nN!$^1!|789U z?qR#dhxpStW^F>eS6g_tpr5s6NLyU$xU~QzBnl#D3CNL-U{5IcS!Z-W#%J@T*mF)O z<;cgwLn@Vek>2&P-4Z8IQtR&4?vEP7axgL&mRazzVvYnavF{gUoFTY?1~)f5Jq_N& zwa#wm9%p-3V26-HGJwc&TX~I{;e=?0*O0bnNV=L#0$sGNocsh%TR8(rO$-p7jUJ!R zR!$OEgIc_Lh)1iw#@|Q{Xm6o9B~1wq{=2obcrUGr|C@Nk(=FWz8}ZGeHMxS7kmmu< z+NG=ZkD(CWhqO;xAv6?DE6@Z5_|%%3d}gz`JuD9d!?J%+4o9iWF5TA_gH?IV*MQ$w zO3Zvdi+E=3K6d_7WvK=1T}v6C{)bK5j5gW++lRJxtqqF52P7rt2C*ckjAMdr%}3;( z!HAsJyd}f$ zfN#~w%4<9_ISI4@Uw)?xKEacfcGa9*4(jY|~3Xm8;YfHJ<~T--$=xlCZ;N ztr9dTbt*bMMVPH*|1W#7Cl_VKhotEj@LEX*hESjVr9i~;z zTt}i&-^>EdhI_YPsJi!sku-ghl3*PrP2WX)7RiER^^RO%zdd5lh&|sR&(1fd&#{`> zSdsSy9<3@I9iG-RaCU`ul30QSq0vUm{Y{sBtoXF>n~ diff --git a/_module/ncs/nw_c2_bossspawn.ncs b/_module/ncs/nw_c2_bossspawn.ncs index 9ed5af09527c4ed8159d7a9793affb0aaafabcb1..7330f43bf25848c4d7a09d87407303997249de4c 100644 GIT binary patch delta 297 zcmX@DcU_Oy&pB8j%uvt3iGe{pd?T+EtKcanW+rA9HU=P&17hYwlPy?3Sf7N6u`mM# z8No7d0zeK3sK|my1&DrT#{d8S|6pKYWnhqD1QJ|Kll$2%8Fx)S z$u7?*F!?2WH)9Ks%-;Nf!-9qJ!DdO`Ko-Wn&Dny>m>HjM77|rql14J<3)mn|CTRwc HsR|4L*ibTB delta 272 zcmcbvcUq6v&pB8j%uvt3iGe}fdn2zDtKbnPW+rA9HU=P&17hYqlPy?3SRaOou`mM# z8No8aO3d;gWmRBaFGLSS9-)d$b8<3UDr56xL1D4U_t}KB^Dxvgf%J1Wf%PzeNfVHW zfWl-M_5fvl9RZLfK%gQEBBhua|NsC0hk=EafkB25NN_Pup2}{?cwq8*c6mmz$?w^_ z8M}aF_U30C7A%a`=P)90Pq|! AvH$=8 diff --git a/_module/ncs/nw_c2_default1.ncs b/_module/ncs/nw_c2_default1.ncs index f3a0478092338a9a966a859bb15253b39dff3981..52feace7f7b1ae2ef26b16c4f88795270ed8d6a5 100644 GIT binary patch delta 5732 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 eli%n+1ZGGrSME?&EEBnX* diff --git a/_module/ncs/nw_c2_default2.ncs b/_module/ncs/nw_c2_default2.ncs index a54128e4f942ae6c2cfba73ab439c20b5b6e82c2..156bb14066df894472ee7becf5feb3b868f47ddb 100644 GIT binary patch delta 4868 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 diff --git a/_module/ncs/nw_c2_default3.ncs b/_module/ncs/nw_c2_default3.ncs index 30c94d3952b072a8d4e75075f3aa855bbbc85754..c54384cc1f549d162fc2c802022b20acb38af81d 100644 GIT binary patch delta 3924 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 BEVBRr delta 3801 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 diff --git a/_module/ncs/nw_c2_default4.ncs b/_module/ncs/nw_c2_default4.ncs index a2de91f60fb242c03d54f13105974776d26cb44e..99cf4aebbcefa50e270dec6f971ab20ac4ccbf5b 100644 GIT binary patch delta 3578 zcmZu!d0fx!3O>`vUV5ABgGO$6EzhyHQWr%jx7Xd-`_jKz^*%g%;&k@=Xu`eeXif? zyK=`}*)aZ*T>F%yL4!w0Qg=tK;V298wMY(!ql?KNvLuyAR!Nd>kHq)ve4vMx!;(y# z{j=nukt9#1G|MTBf}zt6Vn0VARXZ+dOSmd!8Yl^IQqTX?plsC!5WRpZ-9ReAdEHT3 z!r@T-U0+1+AlCCL$%>Cx0tL0GRweSb+f*$+sxEm8#(IYaggDI$zT`B%!22ymmo^$l z(xXT-M$lp88xtuB>x`q=*>t7ZcuYePSP&4TC?*GykD>(Uc+#iHiAY77{R-`bEuxk> zl#>yYH1sXz#aeXXR(|_$8n8Y#TxS+=g@COBUc%uhnv5MET9l^PlRjj{yD7(LIpz)t zr(EUDAt9tUxNd;C!;+PYLvv(GQW8f*6Rknw2pe7;xt6*?X)&JPYMqx1!;cG1xYeS^ zf-g15P8(yY>J#ZU5$Sk_%Cv)2smy-pB~J=OZCxPJbG7(=w9)@tCW|-uP4ZBK9bAs~ z(KcCOGS=sXqEq&RZ>`otk`j&~!WyKkc>DpG$E!y}>l6d?vnVIB+KC=i_Kkgx(N@?e zq_J2%@+SF|_cV z8jPAclZbHo)L=UAtovRCFdIs~$`oUTnsGBLO=K@-HMPYxXhJBEV8KsNaitD&g z8bJq@d!^ewXg`{En{j-D7H`J+;P8fNGzw80b9Is8@L7J?0^e#qc5c+@ciwSn++P~T zmi^Av*x9lc+$&91cnT3WU9f35#q)m~KG_sTw*+*DLwf}@pe&PB{L1}{GBk_c=c5L& zq7ysHh8flhia}8Ja*73xvL-4=Q+bqOq2PI`yzSfIC?94RC@7wS!n6`Yn-E=fZZ=hdhHnFqewE@T7C~mOvJ$wgvB5LT>PO1J)hV zqV=L4mD}uwcY6KZa@Zx&pLu_e&)!bK__srio4b4c-xAX+k;Ns(8Kw!QQFUwcN*6PM z{(@=SuTvMP)kKLPnWKW&GaQ|Epce8_t872D6fsicfR%r`t-kD59eAt zJCr@|M>Adp&eu2SL~Pft>61^lOB!^P|w`)XZHO;WIScl4*g=(|o17<+&dvp-~iVYpLZQOp-?o6J`{>lor z+~Fes5g~huse!Ys*u5u{cDU(__7+p2pa*;$Mbq8%eIFO|Mx)A4s*55Er>80()y>mU zDo#AY-K!r=MHE7`L%0q|Lm0`)D3DoFvu0IYQ8G*5fi>Xv~P%p0$ zt4BU=9Ue|aLTJnvr)e?5k0etha*o9F7j}k6J-U|_ombC=OJ~LUQ{`HJoZHgvo{3p= zG?9-1eMeSXmI-YgY-Bu3j--ju{7lnT}0-fNW67owBZ$zrhF4~IA-i}g-DO? z6EU=oH#7?#J{fK-{8b2f3n43a(SnsHs|^u?%2aA$&r=wX-yBLuv8Z{b;U&T6lh@&R zdb>+?6@{U8cM$fU((_%fw$6-K;`DsbXmIP))2!e(SxYcw3T)Z|J(Ly`&BKwFs(|eK zmPC}C<(K41Z$t9Ad8EgC=g#nrY{~hziMM5EhGM;If*7;J-`>RH=9$gQb-8}}MT}d%r=rc#%gSq>P7a7Zi1>TU z%s(pJtDgKh7Jqm9iK9IF-FuYJx>6lc`E`1aJ^pYLB6 z+6VCV#iNq&(tYQ69!ru}fY2d{{}k2zFbk&L$c`T}z)!6@{)-khY`-s9{fMtJUJOk) zhSR5t=f8aXsGqu18${HMKd4Ug?S(!G#(JjlbGG;Xe delta 3373 zcmZuzd0dob9-rUyGBeD`90W5mGs27v$D$mP(8mJ{%nsR=L&d99z+E>LJZg8#m2@Q6 zOhtolC<$uTE|{w+zDc&bhNh-uMq1tnXh=d9R<4yuv(Nj?Xx3-vk9WS$@BO{M>-k+@ zcT3Bx8=9C!=TLdQ-rGzHkW?y@3V9)PX;! z0@Ny%j^xu)3L`TNnnd6`;+AVsiL;p0)On4ZMz{{Gj& z;-vDKRnluUqtgg74kZ_YEg^WqXrzxY)0jlVu+BJ~o%&wBXgs2(1bItnD5EgB(VDBH z59DB%jc6DTv@x>oH^SDJBUnel1G8t;=!i zQKwYLBqWau!@Fj)o=HqnUiIIG#nUY^9*dDEMtt8h&cMtj%+0jP-I>iqG4he$O=t8^ zJXqvLUbc&WbT19sJentXCpp7lL5`_fT3XN`#Q z+{v*>U$${^qA(taH_x{TnqOthqSvL)U<+)YTCasH~!UJ=a;#$5yi;O8QEQ*en&GY*+dW%QOiqQ+4 z{C-%I8?A9zkV&>8hMqRue#NsBg02r*aL71_t3~`I9sqjUiUd zs2E0%qOKw_aFf+9?D|SOD+%WxyV!zmB$f@7vye_S1FK&dOiBFd#MM{q^k0D@EA8}e zfu5|)U>oe%Sm`$06s<5wF=j&qnkxqx>IFp@z5WcRIFPianf?Xu8np|Fe}q3vm}1QTDs1;9X#s|FcoP0 zBQ1`0ZafiSY5S!U;XF3CZpfW)L^0aI?>~v&z9)aQm|FWF<^77%2WM*|>83)J&2_;V zTF;}`Uu#mLx^$y3v}>@|NJrUyOv5w^dB09xylo`0yj1z4x2_On^Q`NK^E;lVxu~ZQ z6xP4a>!$wjNM!A7;D*#UMZhh)`Mjz>?8MP`!mv=zWS%%b%MgruyM(?JY**jTpr*U@ zZM#Zng`hv);N}_a6FCH34J9;^)16rHP9!~|h?S4Nvs6n3pusj2H;yK+uq5%I36~p- z=}qM9P2#iMv)4 zlop~k_63xFP(lrgiF#>?82l3wR9O6MD25(#(<_{XcY;Ho@+L6m z@IYN3g@ZCV$Mq_QmhT*1@2ugR=O;ERKyk-(;w2BB z4kJD^(?H&cLts9ssn~5q$%k|3Gk@byLvtjW4T_Qzj>wEX5RJ=6x3iH6|2Kuu{Bg8Y z7%8FPfE|tPYFL}^=R+y@-4M!=CpYI3Z>#0kBeCdw5V{r_(D_M%K^AE&OfNjgL&y{J zSTw!H8&wypeEXKlk!PHCfuW&54+kp>`Z8MA)RHjf17Qu6T5S_rg$Ny;9BItbV zd%gL`MOz#7=|(>FTTb+0`3-(YLy-JgKFd!8KAS`DK{_#qH@jy}yhI254D)CsN>4^n zK3u6`@LUMJ=iiOUQ}cQMF`c&Ie0d=DoU-!TQcho;>O&srPj3y%6ju25G8{e)nuLrp zCl;KUO(W2G<|Gx%`_5Jq%~3)k^N=u}kSi~i(T}jVxLFFHOD%J08g{fq(Q=N%@KsB) z>4vz-)4ow0V8W$!p~f+*get4z@R$ZgtPhM|wx56ctT;j{b7vhSWCIyAjaHUXv!S-#TiY9EvzC||1vq|@Pit(fnb9d0@ zey%6eMM2|9r?4lDz|6KbKC*lXV8ik&ImRsCD$5(C*P9im^oEM|M`pvPlh}0#?x${GM`YN+lnxKkiaVOOi@g>&%ut49CuQ@nZH(kQKH=J z_r#(P@ru(E;yMS@UU^z)keQD?zKI${P)r$$Exal`d?dci)Yx{*#P>3<_BUv}9ZT0> z=(dX{eYbLlcJHBb{MenrOj*eNLnv}?hol_hIzm-q?))G+!aUy$5_oEY%I|)lVzXhm iP&x9hl6~0pu}_JwGw}&nnE=9IR6KY*`zxF diff --git a/_module/ncs/nw_c2_default5.ncs b/_module/ncs/nw_c2_default5.ncs index 85befee72bf7fde8c3f3697fde5fec54471c86b8..1502fbc379c7bbd7f8f422bd5f7d25716bf9d84e 100644 GIT binary patch delta 3850 zcmZu!dstM}7C-CE3kGHw7=~dOhGBRrpgaT&=;~mWi3*Y;Sqh>>*AxXG)m0QpGc#0R zeW3&*;8)$uN;+hv_FcW1MkFY{5K!@LzA3%=p1aPTLFg;~IIR8KYp>T{Ywa~#?@P)b zNK~oMOz@u+JveFv$2}@4h_p=?p8d*r3By7gxB0b(LPY%~^(T zxVXummvJzY!#bTOZgPo-->@Op2V?en@B?{#?D9Q~$6c-?K!rBf(1dSg9OuayIh)OP z*F@ssO-4Ut^s9q7Uc$6G`4Pv%7PH8a_Gj_?aZiemXP{J0dz=JF&}~jiQb}2xY9-|2 zWOWRT!xHto!yB0_aPb%AaIT^b$p-sD8OJMuZHGIy_4W;haU{=~7sk4!g4^p%$1P6k zN5_r6_^Bom)*{@~<1Ni_NW>`jr{NW>z3QC=L+tuQ#^9m-ObY{Mz*b(uwmxSoKf5M| zC~>#D5x&GOcLN;3|G8TL@uaK4`L3vy0!3mdc81Q z@6W?pVVYqnz$iTJqk|5-<1-7^V2*LMK9Skc&Pmz-F1s7j0|M{c%p3j^L}%W9HJHB3 z8}Is^h4t8JegIX%asML{un1d&3;+t;7u*0D!doE~Qka2m;c+kspQY~~xHvo=ZemZk zQDG7dzjy#|h6lo@^fh5rgdE-xDTOcF%fX&6jd(CjE)+(@$ziwfRZIqe6ZYf|z^GU+ z2***e&%$z+bW?7*VRxJiO?!3NOnaqxHufKIOYn~im6A~FWp7P~rthL`wo`9le!^yR z5yKvG(qOt1&YPF8^<{e$oF@n|iFyE)kdpMi1fsFnqD8gURk$-u2C&+(tb|8c>aD}? ztr|FoE!G0ht^LB*-J5&klJ~;-X_CfsyQhda8=o81YuRK`2dY1&9%*rRVa%p{*zouS_uTp-w297zde{G_lij zMn5CY_ZktDk%Bd6p&Vb% zG(itGn008Ltj2XOD)HmYA1Nk%NDAyHJ44DRzYp(;gi_XKPw2?);!-24r{Wc>62zR2 zPqg#Qw(~q4E-r=VUy1;#nMYInl#(9%&M+_9F(7%bl+A>R*tx7V zeO%FYDB0ErfgPGy=YZ7ChwR9t&Rzu1Ptm}Oj+Gy!sofAYPMoTNU)XBt)O5bUlgOd) zEqy~VDk};?FefV#+ORBZD5V5soAGj%My$82Q1s9Cf+>{4Mr^t0Dr99-ZGM17ISau| zUo(16Z-i%E-SbPk+^7H z8%z<#&5s8~u+)P%IBYne#f=Lh;VV4jtrfZ#d@ci{uy)Z2fG9LAF)0$no33!hlESsH z1dU6AAyY_RQovI!!aZMXEizD-__ZiqteBi)Z=A4v5BaHE@h14pMEEe`ggO$MBUUunN02QGy93A%T)fUdaom_LDPJ@v)D&S0}`OS8X9 z*wdvIepv-lzN|xNEm{L6QGGceNlZribb)$M^1?Uu3QC8s)CZ*6F$CnKe z^4D8|G&gKWfTi>`qq5S6LLgEjiBd9ZY2^qQL)HbVLfOmWD$1!z!=B2a>Wya^q+*bg zAS0%K*uqy|MN3tnYCqdliksCpF}><3)!PhlX2=$iU1+Fs0Z7AP4dDt;5w1$79QVet z8;PmxXfg{MYS4Sn<>XzHKFPazxP>8 zrip@!Y6tNyS5Z|Pi?y2!su%j~->|5UA%z&msT$ZOyMy&79Giown!l*M2zi)VZ^p*D ziG0OfMh>hGf<~g&gPd3g{Ouqi_-;NT^_qYC&kmT#?fW+b`M(2seodz%4^#>k=QXDt zITnKJw*%oAQ?T`85PD&^%zw9`z%(!^JJK{Glz(iUt$C=+2f){Q3 zq4YZ|zw|Z(o4zZA?F@WnM<7+6$mp`O5Ed}({h5L5^v^vha;p8Sy zn*GEI^xrF!i>*TDh3lGv|hR*dU_j6cINT)`xI{@rX3At1F1J|Ym{QyQIl#6<8cvvnLeLh{TFFiU7YRRyH|NrVhS zefMv`Cq2N5vukK0=v)x^;pubUm~$?ZPdtu02v|kH=;(j4F5m8$f{nbkzg}@Xu-PVj z!mRLObSq9iKU_MaQ|`}Z!1vC(@j0L1f6oUi?1S<{rbd2252G0sf5B)P-d_j*Ti?oN zi@qmv2`ewq6cogKYq_Y>r}A=MZoeG6IihO3fTd?V?UUS-A2_N@v7TN1vblE_5YjF= zgC^`C(?#5(fXH|(ULK6oes#m@%iCaaU%XydshKuv$2MDPJlP@kTMeqO#6u;P4fGMR zue=2AKl2jDK*x!Urs-&X%L}`&b_6!{;!F%1_xSGvB&?Pei9MeG15aMlyP@OP9J9yp z8A`5)QEME0Jp!)xIv>8E-woJ*kWq$moYOTXo1SG_#ESZ(j^h{C#}AB)&=4a21+nt> z|4TT0fht@{HGCrhcHql5%v8aPZ>;9^b@XqRFz;ry1S$o$-_xZqO33-+BMI+PD>yv} G;{Oj_=}Tk) delta 3723 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 EAI*yxo&W#< delta 3850 zcmZu!d0f=h7XO{!Yz#QVATlrxGlOi3Y>uKviUXz@k|O1nnW9kcDDL`rDrsgeEPkK) zG*Wr)3#R?VK7F1knr8KUmWF#OlpC3{q=g#IyTAJz#NK;5TBI&2 zQX2-o@M_3VXI!V=0(qJC8#2|Dha7bXy)G51twb(qwW^)Ky-A0f!1f7y zn7EB#l^r(PWQVz&{+-jKV+B#ARxz=cyk%2=?md-zKMMDp2$k&eSkO}HhEz*u>W4hb zyRN-_1^I-?)E8F^d_#3_Ne_h#}tB|L=6kl3U8}b%4!=+zS%tVI)R;6 z5UggT1pDJ-YcMUt7`+8|tVxuBqdonR7#u~TnAU>4;8xkrXAazvcno_)mFyy7JLl}m zmRzE4Ik|9OR6V<4;%07_aKx3(Fa#{7?9af?lzr;(;qQ9j8@1J4C=0>aoFFr zoiw+5S1o-Z?M)g&WJLX(4v2A?eVm~xt#aw1a8_6`-W5Xcq4-HS4|UTi4dx9o;iSt< z@8g;)iGG!WliRDKSMWR&LmJ13%q>Fv3R*(3GC{h|b@-2~C!LcF?KaaAAkv~BJ#}kv;A5--juRG0x_cE_j4JM3PEQUWpX<`6WVcLrKEUxvMff_ct0vu445~bFOR{b1KeQU_&(yaU-@}76a46JoJyMD z#L;7IaQH1PLM9sZP0Cgac5v+pW>^#9bOZncGD7@o3(9eXY{rg-FzI_Qyx_ zwe)WsoZlyM5zhm|VyKc4=9%|8rTeoA;@w}0{7WKPxoPv(YIX7^LGW!SThqp;kIAM} zT9oEB(rZ}%*R!-#nzEo9Q98CPe2KnCev}1M0$L;QWPlXAXpx5cN_*eAL^J}|Ypi-f zNR$EaemCrSw}7SXYK@J_GGy7Bd}++GT#@#oIxz@$m)qzkNxy>CY7X*O24P0QQ7S># z!a4LJ$_f+3^**>$c$_Yv+7W)k3M;Q!qK-;TGejUHZky0x<9W;pB_o4EG zdF+K8SP~+>-9egGQlh3rq@1^)!*i{1XuB7ZO9#_Gv8MD@`T#Yh@w!PK7pBDlx@6gD z-Wz;%UJpzw=^_>VBbn$h&TLL(ZRpHq2Rd$P%lyk!Hls|O+OVZJO-1#VFhd&eW36OA z8)m?7Yj@)YEf?{4H^ecK6}ekaiy!(TWm}lxE?0WX_8-!wd!(&T*wtj&W_1M;S+(aeDVH zR@*sc4piVWUbAXFSn zqXizD=TZ219wjp~2cnO=#D(^!irV9ORK?dXKM}^DsW^Qe&M)$41DBurB8=9{ZYAH7 zOLe+~9$4o`vHCy#3Jr#Hh!wVPX8P{rNfnIz38sNKbHSfs+Dk`rnrD3Zv^cJObBmU< z`?jO%+jLg6@(3jtP3oD;bPnNXM~b;#PlaXBVdpWE^zqqUM2|ds>9DY}4a-1&c@Xwg zdNB}}SN33_uCGj|R2J$VVvdh|Sltpn{0+yr^NH-)Dn0)TWn;~SE)3e3lFKOVqx`uUK4|L#nEkgBKs0!|rZBf*u!SHLH13vp-Ah`!g z8?R*$gGc@KamFk!o?M>FELJw2lr5}kPn%dX3&Yn{WW{!ksn68@xmoWad)_`^A-{hw?Kf7r-oh;}!F#W6mfL(ineIQL_YnCXwc zH>R?xDZjBy9BuJv{qg3_QLK|6zZp)Mte?kW-)t?8^fCR{e=FY6n%H3Gg^COf@^8H^ zb~hvAwgtc4vePwA#orEQ@g)tmqoki7rVR7K;@h)Y_2;oF6Fa=`fFXz#3qHLwoi(_a zn)CWHoq|Btw|{XV=B_~+_ESHik5K%ehjjUF1BpG8*xjsRl9Bi2AoK4}6?<6Fz?iQY z6NLC$r|&L~fs4x1ulB{J>Ndt#f8=|cwQz2C=N__^bhwVqHa+Z5>wkRz3l6F6Qh5U|-s^+O!USNL?nTyQ`|Lt_!lXxuRDrFJ9P9%l2d^bkJpcdz diff --git a/_module/ncs/nw_c2_default8.ncs b/_module/ncs/nw_c2_default8.ncs index d2e3160f9e507c969ce925095b941acb66226ee8..2df2091a162f053039fb9a983939a16ed1eeb17a 100644 GIT binary patch delta 3681 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 diff --git a/_module/ncs/nw_c2_default9a.ncs b/_module/ncs/nw_c2_default9a.ncs index a4a122f21f41f5910907704c93a5bf78fa9db24e..07c2a463646e1d175d9620382d1355285c0fa166 100644 GIT binary patch delta 305 zcmX^Ai1YR%PF_FfV1+P4Jp(5Oro!lryeiC$CpQ~0e`e*6Vq#`tV*mmp@O&E#U5 zY|CxQs5QBqTb^;k~e`e(mVPa-sV*mmK{Qv*|9|jgy1_mugh%~nX zNIPTP9E_XGf6p)PGT*C8$nep1@SOG&8#wDBkMckMfV>e$DXJO(68}S3|7EZ?I Rx03B|B^kHBm1N2b2LSXXI8Xop diff --git a/_module/ncs/nw_c2_defaultb.ncs b/_module/ncs/nw_c2_defaultb.ncs index 0390d263cbbff517ac2d531ac5931342cc93dcec..dbf53b00f9347ac374b9d2a8824ea4048952b84d 100644 GIT binary patch delta 4152 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 delta 3894 zcmZu!dsviJ6W@9F4toJ%*M(hnmwQ~|Cf@P}sXal35Gsn8pk^5=pxKv3hL`AqVlv9A zC|)Yj9uw_NN-`7mi_9C|6-|MVKrQ9@OfxaQdC$8bR)6ffb7tnu`JFj)X6BqNm9?#s zX_JPh+Q&vmL_IA5m$nt!ExwhULN1Z~E&=H5?EFI_GfU{dLoR^|iA^Gr$gZw9^PX*^ zOhL3n>eM0WyPQl)9H6;szye4GB@R>g;av#k?%zclX8|8f`Q6N?acKZc`AX?C059NO zS-27Q35F%!UDm8*hU<$1 z-sm0sZ(6ciKG*9Ar)4raH|B(olPm!1ag@&k*u+0)JtKu+-tOlGpv9;Bcfka-`x&qy zL(VG#@?|d5**@(uSsdm#jJWv;BlN*NPxOU{c%&o z7hp>FYsIX_Xbe%`vw$AAq;bd*!by# z&ilVaRB6ISLP6y zXAT|Dq=UyBgo#d3qIW3HYcgWstHk$CX7ll4BUc;j31R@1rD>uSaD{C zJA5rlb+{$NNNy0bm7Z_Tuyas>%MV)7e^MGmGiuGG-B607GE*UfzP@-UGY0$^RUGV( zgR-(I!Bu3*0A}L$$$!EZSTSV;(Kn~WiL-d9xr*08YOt*l9kbfs%m9~YLk)4FJou1HJ9h4^796s?4?l5L9Kdue zFC7Sx^tIu=Qg2#GprRe#@C~DigEg43s~3LY@aM|C377@-tCiZjtcYj?SCw0_@m&vW zcLZv8F|JnNuD{5*{Z^lcYBnopjZ$066%`^m02;m zGECtq@XIhh)f4M7lRVsw8e$!c*;l$&}eaPsacli6C25_*G zJQkv4-d*;kGjvoqYwJ)L(_>`8wyl0}mpDeeT_MN(tvVd_jVm9w?Y5lCXLMyWY+xW4 zRJv2%5N`R-Y9(J;83s_wU)p&MXrY=f)H-99UfS>M}t>?48@6GR*}a3 zBUX&r?GM|XvH)DRJCQ30`J3ufm{FAvH<7u61eL_Dc9v+~hY z8wPiJ0Gx^|e#nO^0lbTJ3G3a)Jt@JD=6Pb`VSiZJt-9>+Y3@ZmPX4iv+9IeyBB{k! znw1~~O*Uo!ZvS58vSq?(8{8@FbyZ2h((OK!!adM- zL4o>e9TpwUp@Jyn9k*kl-0)C-@UbsBD8%*?m0W^}9et1Z!z*=x(pM>;=6>&u_LKb$ zul_R>JCpetCsTk@F{=*wF4%DD87RMJ$`GU2Cem8xO9&S zk6sjtv@q(pXrcJr%cMxC9} zErJ?f^fR?7zld0y-Kg_uY&O7FZ1gtDSp`MYwOHLbHnF=%XI^sw{b9zVKolTFM&i7d zW_Z2Fo~P@QfMKRo+u4~ELLz6XZS6;opZ00qd~RzxxE~T4!>$IHo;!OnYpxO7+v@!f zcJY}RiYJn$`bk+QKc9`3;cwS_8+g(a9%#&8E@me8!Q5(3jJV+jw{h5waC#Jo{fk@J zEO9N-Ci_yjNhB^BM$-kNL975dst&)qk?bEC?nWFH{Q}q(6yI{9FD$~F&;@Y7&4I9= zpM7(xSxAmC2FFb$Xy{fzoY_shs-YkPho>EXsbLh{#F}5J{y!_Hbgxi#U1!H;6?_Y` z9GPl}=cHkn`HH9GD>Zn;*3mki682vGgJq07@$Jg!Nl!|g9#9FmA0`SOfCO=&8jR2J b?y4z{d>1H$bcfUxVl>&0Y<6JQaL@k(s=QgR diff --git a/_module/ncs/nw_ch_ac7.ncs b/_module/ncs/nw_ch_ac7.ncs index e013c3ee79aecaf164ea3d915803d7c21fb9ae06..7df76f652526f13e87f6251dba34679c71f53f9d 100644 GIT binary patch delta 116 zcmX>jaZiHR&pB8j%uvt3iGhJ9ZX&M_J<&0A&UeaRJocPz2m5l)iCL1z}F|thd yU{ns#>~LLz{r9i8CV$@ rotY>5F{*Nb1c6)zPR7m6jGtK;e@rfCn<*iWq!_9ZtYxzvy8$ZzV`~$R diff --git a/_module/ncs/nw_o0_death.ncs b/_module/ncs/nw_o0_death.ncs index 25674b768c67f0140895ba337997cca5e0d12fa3..7575efd7ccfdafb9700cdb53653e97af3a5f0782 100644 GIT binary patch delta 71 zcmbQmyMUM1&pB8j%uvt3iGhJ_!9?CgjO!^Um2;h(f(ZVduAc~cN Mfs=9b1I7a^023|^%LMC&{f33coCQ>1Ptvofy$LjFH&8 zK;o<-k|fTP*q_74Lex+kG;vwPZ{qboB=^rKyhU>7If(`vTRj{GDURL85fP2VPb?9) z6n=^LdJ@gw(AGIDl4yG?h3~c^PDx>BNOWw&ej(0KBv*EDT=;*cuqtg@qr=Y2NZsqcpZtWE%?z0YL-dlx>pkKONAsP@n?yo-(jqT!!X6I z8BB?Y%c#7&NPM%xJBZ_ezg!z#!-4=`Nk58V*vnx;hCA6PbxBgu?Na-?NIZFn6GDVZ zOwUVUtSO>R3bR0B?j*V}f7% t;>P`QnO-73ml+H$g27k_=mvu2R?5da|2ciCl}0tlT&WFA*9KtB_zT#~3Aq3O delta 967 zcmZY8TSyd99LMqVpS?J{GqY|tN^@*0wAe}vD#VseYF{$EKonu7mbA6)Lq(CX#Zqiw z7YMe0q+QuwBD_FUq=i}dl9BijQIK7spe+cLBq3@0pZ{a$RlP<#NA-)9DaG94n^rSEdIRLn{5LNXwtXalKHRm%u`> zVNgcEZno(o^UMnIA8wF1{}hWwNjy)Ynq$cu9H#Iy55AP#7*lvsa^Gtf<-0MY*>H`; z>OmHJ6cJ~!i$&#oyhCCs$GU0!PVtj@3q9|s5Ff6&ARd|!+#upYx zI#T!G3J>gy9=L zpdH6a+8MaY8>6>3Xg{KET!h1T-M9iXvBC_)O>8qGbi4sG2K%to3W2~@+6l~9q0+kf tg09?DK)3`Pr4d2k%Lhha0sX%y;pe#1H|yR)-!culQZ@d*8b922{R0zR3p4-# diff --git a/_module/ncs/nw_o2_generalhig.ncs b/_module/ncs/nw_o2_generalhig.ncs index c2810c284e5f4411893d0564dcc7feab87ac9b97..35297075a3614ce40267bcfe33cd629d26e8f4d2 100644 GIT binary patch delta 108 zcmZ43!nwAElh@BVSRu?%&%lX+$w_x2Zvx}diFqo9x1|~W|Ns9-fq{jM0SH(b7%LcA u85pz}S(t%bMs5XpkgzsFcJf0J;l@*~rx>@MVw&l|XgJM*X$z+?%oG5bksFl& delta 87 zcmZ46!nv@8lh@BVSRu?%&%lX+$w_e{Zvx}aiFqoj=cO6`|Ns9-fq|8Qu>wdiXfd)d nGcYhPax2IKDF#)L_~Z#|{kg;l{(QhZ(mXW}4x^XgEE_k!ddgrRf%` delta 84 zcmZ45!a1{rlh@BVSRu?%&%lX+$w_h|Zv^AciD@co=cO6`|Ns9-fq|8Qu>wdiXfd)d jGcYhPax2IKDF#)rc;lYdJ&arTFs*iAw4I*e$g~##rnMEH diff --git a/_module/ncs/nw_o2_generalmed.ncs b/_module/ncs/nw_o2_generalmed.ncs index cc8bf8ec6ba1ba4566aaf95abea610fd8860b66e..169bf904f27e9a6f8a5f69d793e5e7d87857818e 100644 GIT binary patch delta 108 zcmZ43!nwAElh@BVSRu?%&%lX+$w_x2Zvx}diFqo9x1|~W|Ns9-fq{jM0SH(b7%LcA u85pz}S(t%bMs5XpkgzsFcJf0J;l@*~rx>@MVw&l|XgJM*X$z+?%oG5bksFl& delta 87 zcmZ46!nv@8lh@BVSRu?%&%lX+$w_e{Zvx}aiFqoj=cO6`|Ns9-fq|8Qu>wdiXfd)d nGcYhPax2IKDF#)L_~Z#Ww;zY44uW85%(e*mM{=H2Soxfu^N hPd45@*_csVmT_7;Pv|c^)hMj0RS;2H%0&e delta 191 zcmeyco$J+hE?z(9V1+P4Jp(5OrrEDH@^0e@mtbW4|Ns9F1{P@sApM7lnTeT&jR6Sc zfLOf=MCxw_l1#=InV3PeiMtZBJV=2MSjQV#Ad}?+6B`p7Tpts2%48|d*^FN%Z{sv% zTt4{)XA_Sw3o}R)D+2>3yXaEzFE#u7XCwiGQ_y9yFG%)}G diff --git a/_module/ncs/obj_auto_respawn.ncs b/_module/ncs/obj_auto_respawn.ncs index 525f5f5faaa6bcdb828fd04d68f5963c7ec164b7..01998acd739ca42d84a6b6dd01fec7a510e93d55 100644 GIT binary patch delta 43 wcmX@jc#)CU&pB8j%uvt3iGhLP;zZsIAxRcCAd`WG8Avd)GB9v5O>Fc60LF9&R{#J2 delta 37 rcmcb}c$$&d&pB8j%uvt3iGhLP^hDka9$^+{Ad``mfq|28V!Iarp?(KI diff --git a/_module/ncs/on_pubsub.ncs b/_module/ncs/on_pubsub.ncs index 68c830ea44c45a26b3b41dd135f8da078be975fa..2860bccc60f190c456d934777ef9a8d673d5f327 100644 GIT binary patch delta 54 zcmey%^pla-&pB8j%uvt3iGhLP=S1GQvaAd&4NO2{5(6XS|NsAgFtA870O>zqp^4{= E0J<*`m{KEYr z;)4TyfC?IzfJ8sT#5fr}pp1xXMQUu-iIs(wfhV9SwIH!5HLx_bsB-c~CgFOZQjj7BFJ_R& zKMX8DRUCfdei8A(fj(fF6eeacy#Q?V2dL3MWI?)kAl5)g1qLKDL_ub_x+*$4d6pR| zMkq!q280HCu&@C&F|sl+STaNOWGXNKE#yT}3^oPmE)iv*6r-YuGFadXRDe~{+0n;G zL>Xv^9wXS0A7C>?P|N^Z=pO*L&zNa)0E?IuI1of!D^in7OH!d>kpd5lU<~gAgTx)= zeIVTo_CC-R5Id2*ufPB?*Cn;Mq$s}f$=S<$fqRI5PaPn;y zRi?jQlbKjmnEt9v)?n3O`txgZ5UU&))2CaLAMoo;p2yG0^l34O$^8NpA|SVY$^r6C enLe3GK#p=OgAE08)V6hEM5c-ug1JH~=VDf_k16buB1{PKZmKH`J$rDhNT98Gg#~cRE!xcwv!1=GqFfB0L}OVCO;@Ju&^@l1QewfBo?IxmZla}!fXKPVekU; z{s7HkW#I6u5BH0R4-WJJOQk@JV_3ilauU!guz^2hLE3nbtoWnAfMkfMAJ7a}S4BrB z&oU#$2*pUnfY4wM7B-+JMpgy}OJ;~pu(Nnk)B+8u2YX#a8R!^BMG*0dV__nZT|G1}MZ{uT_QAh@AUaY*sZD}nhM?2fGncK~f$ nj>{eYc0t@Rc|wAM9Zp46pcwuC|KB!nm;k*B2}a}?RbT)BxEbL< diff --git a/_module/ncs/pat_ini_base.ncs b/_module/ncs/pat_ini_base.ncs index 77963fa0099f268b003c78c68dab0d9ad035c06e..e0e4c651ca39cfc77ed8ba0a25821c0a4b1fbdca 100644 GIT binary patch delta 560 zcmZY7ze>YU6bA5flbhO_rY}%!^8iw;4(>XLP=Y031qZP-hzLbO9h_pZyGS3xIa7zO z9UKH592^`9b&%4*L1>3Uy!mnjA2d>_`#NiO<|L&Lv5MWKXD? zKlHt;GvBLUd;X1DXPt&~eCpO~s^L~s<(?j#wPb+0W(8gGFQXf0n4Hl%Xm?T(7`))Y lNkT7`Q20x5JN`xcJQdP6w(O0RVt0Z+Kyu9W_#HAf{Q?Kzl<5Ef delta 819 zcmajcze@sP7zgn8&O5XGF@(7o=_S#WsSOb{q$XvEDN@=Ll@bw192V4af5iO*4MAJb zQedk?K~O_OLxW&LLxV$*gLu97z4uZHX?fxO-1~l?_j&Giw^4Ma<2nCkI2ei%64|?U z)`JSaV&ODRYY{=P5JI>Ky6{!l7c(B_gEg61V0PFiGeI}*8}`9Wgf(FA%&f2{m{Mmr z1iS;jF|)xgVXw@FVJhr}*$7O5Ju|bz4q=bX9I!m>-Y|tYfpK7s9dyBFd813gOX!5! zSZjVFh{TbROGi6$DSKR!PjQpZPrpOfuxryCk=WAtbYVM}P2o$?NF(Q*K5sflYP_MJ6f;ttU2oa7Dw=x+pw zQaqYUxdSvK$RVSJ47aZ@1O?YKzxC#LRSJ6&G||qwE+)$rGa0QdnuW0oV)thRwCQDa zX~v__q<>nR?`_d#R?Su9gYtg2u%>mcx`k={#h}8SsxdNS;?0nEa^T4`{V&nv8}(so F{0C;t?~4Ec diff --git a/_module/ncs/pat_ini_class.ncs b/_module/ncs/pat_ini_class.ncs index 8eda152eadf11cb587c31d1e01477e551cb740d0..9b6399d5598f8737c60c7351aeb800c2ad88d5ef 100644 GIT binary patch delta 378 zcmew%xR#&S&pB8j%uvt3iGhKA?M7a8wt9x|%#8p4|Np_j!otkJz`!U6Bp4op#lAqr zn80G^!D1hvV$5K%-C(gdP%##;*mAJg3#b??SZp#_>YU6vofZKMS^q5T~LfbZ{&F0}%viOTkL1EkUi5hz)KcrIm_99>G@-oCTeH z2*GFQ;NZ}~!68F2o_x6}H#oT5aDVrl@0|0UJS~Kag;vdTj@Qd;Ria$@QdqSD@urI? zib66BoruIre7u5vOQwN6f_+J*gWZEoBs0M7z&<52!7jl*B(uOguwX3V9N?ao2)`GJ zo0{SrJEWP0N%?l)zdrB#ouS{q6|(6h4pKZqtU(93Os*Rfsx9gs|?IUmBusBJWL_2zt=@1tzWMb34>=Hi- z*De9DuK=c7s|3xaU1E{4fJg`tJ0pUEhwWLtO)Wb-y0@fB^U|bV<7$u%OH0Fv-L$g+ z*D|huEMsrB6j!)8CGHTS+66bH75kCU z7to|8;)5i9M5;!E(I7AKfV?ZTQ@j+Ajpid?g(?lU8&_q+`{%7aU;C8mnw#nW7 z-8p;ix##}xxigdMN+))2YiaEiqNcJzIDbY$sG43O%-;U4Om|P`uE)^5eyhOe_IpLW zSXx^8Cm}RNehSA{To+DrzpBWd8$x$2HcEFP&)PB5+FRSz3SD!$8_+6f1=?Y_n-@B0 zs~oJd9^Y56RW?am`!8nz#dBXFyQ;(S#=>wR$yGPWVel1l1UyTQg1;r(;Irf^@JaGI z@Z0f5WZ;&Ufs)}b6sD@m-`cHSHVY9e@Yquz4fG(#)4}(U4R9^l1c%Ahk}GeL@erb{e{_Ch-Q${)qs=aHQ=@~qebqlpZxN0Q$EiDU}FDD zM!M|p$Oy>(oQ#0%Psmt)`*>Nnx!R+Y>qnF!0jgG~I+zk@tkVTq%2{%K>Hv1?_8 z`L!H6`f9Pe56f|#cgl}MMX z6Su}bj15@OhH_l~*8IYsF6`;(FLaNJ8NEnGMTve!#$gftnC!~!E%I79MD%5HEqJm- zxW$KoCuJ;!Y5T)Pwxf5KaAyUIWmbk_oG)@0nJwWiIJ)oQ?qIRISITmS#2K6X?jYTW zQ~&&@L8OTc=|<|v$XCQ9L%QZ78PYYcl95bvjtuFVm&lN=d5#R}ny1K+t~o=7bj_n= zNY|VqL%L?3oRb+e2TP>OFXgyj$^yCyUH6sG2)?`P6}iI}afiMsO0DrbLqSzAek3Ec z#+PKI*7%f+)Ee)Tky_(5GE!?CCL^`RC>g0W_L32zks>3t#&$ANYqXG&TBD&v>iqkl z_l|UIkZG?tTa=FQWx7WZ4WB1t`r*@LOgH=i8R3VIkr96QNQv-*_ftv zxb9BY75*}Qm8Ybwwg_7TZ8*^H)3E&k*WK+Ac;BGxf$a&{y4ndmc9myfI|*AGZ4B*l z@$Q9f64$HHRtDN;V7n35YtU8)+CD37)oZvON4qA_HVfN}xV{eU+8|pUx76wkuDc?v z4YbAKsE*+J2DEj7wx}3thhKi!Wx7-U3iTcJUQd!yl=L<-&T74hj3TAik#TnGCKWw&q8!=-oc(JUn+UdM8-WP2ZM_pQpd1-1{Z z##VU`wl!d8L7(?N01_7m zRM-AbHwv`#{udGYwBl?mt9LASFgup(o6L<(Ic%h!NIjWJ_wA?<`irX5922G9RA69d zB97rp3IH!T9B{g#1>eKT(TO70-U|6VOc!~uJrC)LvHa-%Kqth($ literal 4923 zcmbW5U1%It6vtM%Rkx(+CY$Y-)$Ni@HI~FQ z$x7{m`jVGEiKU>`hZgLM1yQgH6|rjLgI`p%h>DXZ@D2zmPH$P7jUeZnZK{Q&nHWM*4&P(h^v6>1l(N_ zB+wS#S)>(zuVO34xo!9l)`94_mw8iDPb^_~7XT-S8^F!PD%ek~ac=yRI1K)UI12un zcpdoTSON+xI||ecf5{%Ik3SpkcGR>Z7UA)bO@7cg^(TR|#6fV9SONDCH-ZzyF>rH? zwbT(Yde@&_)94J|lRo;t(P7NdWA^Am+$Op}(KUgK#LZx{&S;@s=%PD4tnOpf0ZgJ2 zG31KeAVxruUx^V=#KD4Tn%@c=U^{zcj}Vc9dr$M(;QjL%piss;V3amMpz(5 ziO{bSqeSRG5u-%t7m0Nqf_|PDB}0Fc7$rkLNsJuRUm!+~>CY1*$MhLu6V{#(TB z!KZ43Te%rHsf?*m!tQXPc4)MQyO3wHe9J=#eo*PoU&Ebubf3fBOocn`?Yi7SxM1Av z4ymiL`sdyav>Y)~S4$B?FRhmtsjGDmBXzYFVu-29#7JHBCNWZ1y-bYMRWA`Eb=5^; zq^^3F7^$nCCPwP2$B9j@pt?{)E_W)&+^H-euL9RyzeYi@3iI*A_2Z39rzJsxDuzk4xv>qm!qM@FJ#jHQPI2 zdtgnrU9i1(EwYf6y$<&l#KePd+`^X=DoH z2j@DC~mIw;{E~U1)P8M|z7% zv^nPiNOAE_AMAbh0Rv*WV(=4)P-fPgDa@K9MRWEUJjo(~Y}-IQR#^xR?;75n&yEb? z&V=PnIEkvxBC-U=u|>!lr*$nIbub?-+(#-E?;l7%eOG*Ud`~=+%RVdxxCZPHYzc6C;NwnVhQG>OSB@v$YNza(BF;>b!VTs(20X}=7I+` zTat z{k`Vu!8KFN?p%2!Ouks^usL3wHy!7td9Rph_WTh()9m*h%(Qbrwd|hh()ic}>=XG6 O_1Oi(vAj|NmfMVPR%qU|^I35)3cFVqc(Q zOklCAV6hKSF=nvXL9o~xs2B@aY%LQ+?v*qH(A+;@@{IxmSmhrE7FGt97Dgb+6Ht^| zkXR&>8d#cIR0$N|@C)~ghz}0*0jg+V0uucU6XRs+!TNx%0}3=UA{o*MGK3pqNNS2_ zUI~T~V4HtHZHAc8f?)z5%!J^QqRhN>3`2ZirT}F`Tq{zOOG{E=TJX4>5gMkDFpvd> IDVqWV0PlBl;{X5v literal 1517 zcmb7EO=}ZT6n!(3i4m(vnHIqhW*CuHOVBE)C~7_in-bGBlhg`A6f@Rf8zoJ&Zd|zN zN_68&T=)xIxOU+WaOJ{q0kWX3jv31o8a$GK?fn2 z(>gMKsf@#%KCYs9m~O@lvQ2O%?W05n(0lHOR|EbGJj@YM&m#;^Eq9QmBkPUI;!hbX z_(~G(M_iUNxe~#8Hxw=WMp>as}TjmF--iykHko<*I+bzPh>|wASsZTy{pFs<+W<25W(WbM=*b z>i@N%R&TEU(FJYsl9FuWu_oVO+mbdh@Gm-i`WaCXzgu*oOzO&5u^BwP-3%7nLGwxUFew#KI}bz$iExJd2znF)oCfM0qWRn{3cW|)ALKVBikr2lO=kPoymCikyb(WnQPO;+8#p3+X(Xlvh zh)kQG+`W-lC5z@wLv<_{2I>q9rjtqK^Oj2-NlhpLhZW&Ky@leSoV*nV_lUR^WQ+F5 z7S(c%)(#z_%IL#IB@8IJbHC^^3QwW)KRr1+=m{pbPs#FI&3a>Hl(K%m_hP7w>c1ML ptoJ%JEmDRmmbVeyX}1DZY}B4?+YG8Z&o_gfo6x4N+{k9w>fsBd?!xutJ!jo`DksgL}+I-hZz34Ck2{|NsC0gMo#GnSp_UQ4UBj>;{W{ zfr>GK#g>D`K0w8o!D5raVsD^gEMT#Eu-FTz7%NyTn+c+RsWb!7u0LS%g#rUmr2&x3 zz{1MF(!vNNc>;=33lfV`14~njDuH|szi_{Z_~1Yvpn?V_Akoh-(ND$!Yy;56K!HX^ tFb85rBghPHs2M4qc_kP|fNlOUS>8iR2SW~QJR>wPAP$uU1qPb}0|3CTT6h2e delta 649 zcmcc9$M}5$Bd?!xutJ!jo`DksgGc#B-hZz3jFXue|NsC0gMo#GnSp_UQ4U1ZgT=l; z#hAci*3vNAAOGDEb2-NlQd80Ib! zWuRLa6-AW60>JPA3$Q9WJNo#DC-&Y0mH-vDHML-3xxtmFd#y~961z3Tq{zOOG{E= e&Ot;H7EAwK07VPXavpHB07C~77Rb?}zyJVB49ejE diff --git a/_module/ncs/pc_onheart.ncs b/_module/ncs/pc_onheart.ncs index 2d3a4a7d376687830eb97262f790add98228306c..63e86b30c6fc5b3b9fa222274c80e121a9d80dd7 100644 GIT binary patch delta 101 zcmcb^+rh)@=NzmMW~gW2#K6GDv61&16BE<^$qSi;H%l=4Gg&h;{{R2~4+9G;14}a_ zkmPqyE%D7SOU+HqD+#GANCgV<`i1*N#5)(ICYF>Ir2-W;Fae2vhKX@9lP9rx0RWb2 B95Da@ delta 324 zcmeC+xx>rr=NzmMW~gW2#K6FIXCv=7CMM>|lNT}xZnFN=+;&ElLGTr!X;t=>?1+ zWgi$=q#1zp4_S~_9x(e4gj8TaGDs9;kgKbrqmyTukz#~mq+&p5um=kpP!l671A`T_ zbUnzJKMD*mTj7eqrT`r$q70N`R1{GL3w(hJuqrw``uK<_0}at*gg6Ckh6tvG{sD0N XjG4f$2bv0TE70}Kz~Gv^ht&rF)!|-4 diff --git a/_module/ncs/pcnt_close.ncs b/_module/ncs/pcnt_close.ncs index c971debe26617c4af46e5853e5fa93dc2d603649..f22c0f5aaa6a1ebdfb91342cd1b04e2d7204f215 100644 GIT binary patch delta 40 ucmbOsIZu+;&pB8j%uvt3iGhJ<-bCIez5pgR7B&VTU}a!rVca;Kkp}><7zaB5 delta 34 pcmbOyIYW}y&pB8j%uvt3iGhJ<#zfvG4lgD)Rt82EhK+L>c>s&Q2P6Oh diff --git a/_module/ncs/pcnt_open.ncs b/_module/ncs/pcnt_open.ncs index 4eb947c336b16e7506060e7d50435604b617d597..3e5fc64af777411628cf99b24eb92e563d1302af 100644 GIT binary patch delta 94 zcmbQFK2M$3&pB8j%uvt3iGe|Q-bCIezG@~m7B&VTU}a#eV4N%{D7JB}FC%06S=c}n3p0phWnkcB Sns_gfvp|~R|NsAA6c_*_77rHy delta 68 zcmX@dbb^W3&pB8j%uvt3iGhL9V3WL2e diff --git a/_module/ncs/plc_detbarrdeath.ncs b/_module/ncs/plc_detbarrdeath.ncs index 22f52bd60b91e1d0791d7ee0c6bd8baa11433be9..bc35c10a0ee4d40f7b708ebb4a5d591da4a35038 100644 GIT binary patch delta 334 zcmdmWi0RlNCSE`1V1+P4Jp(5OhJ|h$c|#Kz`z9wREMh!9nJux9F?4f9ViOCa-=8RmEOERL^=gKkw!OF>3GlChNCu?RZ$*Hoi zfrMC?;Upu3&C0;&%(6K-^8piM!DN@5K1PAbcK+g%U*)V}^qD+8SB3HSmM(*i0LU^R766M#BHPZ&z`)5g z`FY+t##5W8<)3F}P7+m^Y~v<9xw&{VWBKHbCE}C)N?vf5gH7btWdMpuOb#zy#kgiO qQ(2r0qwnU#N%`!Ib0%M$`JBC19^|24lRwTsWSBFuOfJcYVxKO{00fICU(E<+w4JP(sU#uK z!VD4ulZ+5HD+8l5^XAOV2TY7*lf82K7`Z0f`HN5fkh6x-ZSve)6~?cV59Ll~l$#uu zXTrF0a(A8z$^FHf8Jj0Jl!;G{DtW=#4AR5Mt;;akph;qKa_K6@9h>>e;$#>jH|I{uXJ=e7 Z`R>f;>@($osu+Gv{yR%)^V?aGYye!?T9^O; diff --git a/_module/ncs/plc_dummy_ondmg.ncs b/_module/ncs/plc_dummy_ondmg.ncs index 86b91eb7eb960fbaaeaecec64a89c964f68c158c..64c80920909e615488467f043fe2ecb8d1c8723f 100644 GIT binary patch delta 849 zcmZ4Pa?zgG&pB8j%uvt3iGe}>;zZsR+>K1kOw4i&3=GVb6Av7>31DFcvKhf77c=Ak z|Noybuz;l(>IeX3Sb$hW7DzBivao?Duu2A21_n;1&3hR)F*3;rZ!Tos#LmR~ZL=zO zIU^I-_sI%UqLa^Y=S-I8m1W{-*lfo;fr*LJd-DbUg{)x=_aP>L?fSvM0yOC_6T}f9 zYZ(qeT*vTNngQsTKM)?Hu{=o57^H$RlZh2#1ejL~G~fl}d1QewfBo?IxmZla}0{I+%;eHYE!GS(N1r1C8slp)TE{P?Ho_UVRC7ETZI4qb1^tIgN3dtPvU+;kd7{e%{3=T~JM5zD& z|L+hu)W669W8&WrM5qJfg=ey~ls@B~$=*^rZ0jL0z|SK(d6JYUWBue6QhH4P{3qX# zG8X!C4{U@RB+>o<|2Ju}taOAX&|@Mlsl_El`IWG+#U4SE_e%FO{aCiyPi7^frWUf} ze%%3^tOs)3Zy{vI{Z<2|hRw!uLCn5L@!E(Sug#!%6%I}n+a delta 1298 zcmah|OH30%7@nE!7IA4IbXS&QOVHToH1VJZZw5^`ss|5}cv2+Tfc2l*Ep97@!_H=AzW@Ke|NH-$Km4H0 z6Kjo!j@L)_wji`)*R1EEbe;%A2qJ`par)ftoBi-&f4573J?86H0cW$>FUZ9qx9ZB^ z#s!}ofCc$D28jq2WAinh!zAc8r-Zp8Qu@)Xm8LK$`9xnymuZbBP~^P|xKo%u^{QsV zGfs#UH5W?ni3FQ8tppnI4NC~wS%rXe)!tpKW=v7WPZo%1F>*D<^sUlV4o4y?=}YP7 z5-GiZLQkdXtj|}wVo65bynt2Y0@Rk+iP+#!yuXKqqY;Y$-KFzEAMLCvopC@F25oQG znp?Ui8?-^~q}F#V-sy5f9ELIu2$seWg0!AIEKdULau}|#CWraKl6@d*t<60>au{+% zFwe2VbI6dRqkyotZ=EknFzW-PwRpMv?hxX|d+p*!;znw8>Ekf@_i6r}g0p!>i{spWlFN_V*Lk0QfIbO$=19HkJ?Q ziIMctB>TnmX=5Nc1=Va2+GU4cVWDL#R4Ryx7SgSKvr4p0^D%r|!bo(DH4hu3le)!a z4-Tlh?(iVbtF@a%o*3^E17P^`FZV9C?E3c8|JLVDpBfLj)iqC{NPlSoj zOgqJA9-GzMb%79(-mb1-<2q@N>(BRj<67@%fyDeB>OFl{A2wLZr8gECU*QcopqotW I!S#v#1FATM;Q#;t diff --git a/_module/ncs/plc_inf_ondistur.ncs b/_module/ncs/plc_inf_ondistur.ncs index d620272aba7ba39f172071f1f454035c37b373f3..62dc19fd1348c478721aa4d00daf9ab65c3f7871 100644 GIT binary patch delta 90 zcmbQuyq1~Q&pB8j%uvt3iGhJ}?L^*IM;0~)AYf%+Ok`wa{Qv*|4+a)#1|a>1i5V`H PfG))bmx^JWc<>egGGrM* delta 72 zcmZ3>Je!%<&pB8j%uvt3iGhJ}_C(%ReO3m>LS=c}n3p0phWnkcB Int09`0BrOLHvj+t delta 58 zcmbQvG?9td&pB8j%uvt3iGhJpa3ZfQ=`u+=0t^tqBMYL1S(rf-D+2>3P Z{lfhs;{B7dQj<%7sv4N289-VT7y#!`Ba#3B delta 323 zcmca$I^CSt&pB8j%uvt3iGe|S`bOT<9Q8KoLL{3jo65Sk3?d diff --git a/_module/ncs/prc_pw_res.ncs b/_module/ncs/prc_pw_res.ncs index 9266e178972e6e450efb78a0bf8ff6b55ed37764..81ce0fa9dbaa34ff862b83815b22ee0325f5302c 100644 GIT binary patch delta 58 zcmexm(qPK#=NzmMW~gW2#K0icu#vZplaXg~52rEX-pL0zTZAN8*cgC-g&9P$GB9v5 KZ4Thl5&!_DCkvDS delta 52 zcmZoL{bj=I=NzmMW~gW2#K0g`wUM`ulaXz552rEX_Q?l0TX=+7m>Gb8m4ShiadQ}# GmH+@_jSF!A diff --git a/_module/ncs/prc_pwondeath.ncs b/_module/ncs/prc_pwondeath.ncs index 2b30681859daffcd9a02bc059fbabfac7bd6e49c..35df55827362db48c748aa7374a7fb075ab9f3a7 100644 GIT binary patch delta 1777 zcmaJ>ZA@EL7(VaYd;3AbC@qYo8x#rkLLLk2R{ zw$zE@w&-2)Sklb_F1ctWQup7mk^bS(%cr!H7Tqg8){`uO+Um`6Q%;8o4M>;m78#$~ zEN;RX-lIyUMKl76@y_s725qUyFc5-K79Ronh}$IlpFRTVWbFPT6*l=%>aT+|=|nPW zDV9F*q(T#aBJGNOU* z-IbBPE``u@CryP~b_^mh@AkePX!QpZd5^B2*h&VTP5+-{hvUhN`@Ei`PH#tGpZ|?D z%2uK(rduh-q|kSJ0-nldM?=8Z?p-g8)ikhL)0;&(bhK;?G;*CIO$RBmzoH%R@mXqd zZv5hfVGSl-r~ZmuI#Kl!oRcliWrT(VAX0~`2J#f9Jnp&)P%aNu_X6JflV;ag^XGHp zcMUa}?9R>i@B@9H&o8YWDBGE#=WDZYevDpIhCX^n8IIGLn(|U!AiK5vv>vSXp?fW^ z4z&83kFDts^&hy6zkW|&uFcDj5Ve_zXVpwZQk#j4ax;t= z(*%0}CpU!lH-kx!l2-DyL$P7#syUZc14$HWHiRbH;d#Ih8YM#q{Dgz=NVhs*8xHQ5 zEJ3j0V7BB8vNgRebp@da=_To65Vj-j3H=s?JP}VHl2SXN4o_pKsS_Fv*mE{C`!1lS zQ|^iv$(y>!9y8^gB+Pwmx|d@M2@E*a#NThlvJn%O6sL79bU{YHmdpdBF97#(RZ^iIx9IFv{xnLiCHC~S=`jr!q*HoED4qyi)?+>97fq=%Z(mp~b;o1s N%sY0597gmD{{V+a5Geov delta 2143 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 Oi*SlUY+c1n!u}5})Td+s diff --git a/_module/ncs/pri_barmaid_spwn.ncs b/_module/ncs/pri_barmaid_spwn.ncs index ba062dc6aaea1f20020affaa30432f85bd374b9f..ffaf5d8552204472fd4655e2159af4181745083f 100644 GIT binary patch delta 278 zcmdnDk@M6>PF_FfV1+P4Jp(5OrifD$dD9tvHt7-SfM1Q*lfFC3PP zyC&;#$}u}p zEENwZFt9Q(ssTk9r!jzCQV(<`GZRpY90O2;*yIPC*^~EkDlm3!e!#hyh4IV1Caj1#0-~8 zK$l{JOT{p5JUE$2hADxC8E6b6GsuWH3@i|y98idk99z1yp%Q7amSCeg6RgJ(V{b68XWngJx z1d==fMX3deMX7tsVN z6~_CM!?@%O4?u!|Arslt4D;oIUS}`{1pvcUCRT8eF@Sk5CkyaOOy0|-tOvA1#I+(d zxwIq|<^$Zpz%V(FO-u)*PjW z;mQ1hN|WdD@(TTu1S@o7Vg>~+P%-D^y}S|HKvP9rQj1H9@+)C>VGl3`hRKP1!eSV% zfQ5_n=A(SsOhsVt0Fyi-L3}_?V!#9slxaauDo_qm0u~5P%}WVSP4dXk&-Mrj2?z%2 U;Q=RNs36dY1}1RYc%#4o012=R`Tzg` delta 1559 zcmah}OHUI~6uxt3rnI&okJ6|>ZLRoB3bj@6k(lxjFtrv+1%pYgbRdnf#WEnQFeXIf z!o*zHL^o`V3xjdt&Zw+4{s*Ixg^L<$q11cNoq@KbVbkfk=gfD$?>pzt3;U|8I@ld{ z-0-;DyAY~deO|rTCLCiaj*31>Lq%ufivE+fA$o?C%7@k#L@U5WT0pQm2zI>WE_Y>R+rQQ2<>cj z(Ujn{x^$UvAUnJLfq>OTG28-RWC6oUF`CO7UJq^e^J4PKWV3?K8ckFWfF>h=)cu`L|9)N?MR(_jG}f0*MGe@Pb&JTC39qPa&! z-AY((Ef%rLIQZ)DsqMk)g2rlP%rJ@Z#yRrYcvSF_Uq-v9QJZjrV{6gJ!)!0SjGb_h zDq%~EAPSI9)5Sv|&e}VtjL)cw?zg^JwqWTV6$-iE47X6&I1YD+PJ=t!!eA}DvjcI* zhLl)*emKP*L1j)INOpk31wVW;?%ckHay?1ckc6!>u)L#Z>8Om#x}5~HmoG$Bg&orRO)X3 z@Ng*1{JHm&-=)9Lz!Ca!Wnwc4h_ri_8G}f3GII?g`0CNh%MkJVV_{>8YApaK!d1cV Hngjg@s_ON) diff --git a/_module/ncs/psc_chest_open.ncs b/_module/ncs/psc_chest_open.ncs index 3d58f296d6da4ec9e1de60dd07d6d68734717418..c21a8bd91dc3e5aae4771fdef17edcd08283afbb 100644 GIT binary patch delta 797 zcmX>u_d|l$&pB8j%uvt3iGhKqVj^!VHwzmB5U?^ZRxoayzJ-yA<-=rOCM!QS18Ii; z|NsACW(1Ny7+6@CLCWNSm@Sow8B8yNsDScr$OGjVwLmiLd`!$ttOyaKu0(6B4sc$T17$Kw=ik zfrMQ%L>VL!z+oo|a-dsjPL6+4R%&vIXP#qnNoH9p4v)!9WB>=t0|pjI!juIjMFuu7 h`^Ds~yb4Ue9!@S~aoQ}&C&wu8D;+HH1xy0N9{_^w>_-3q delta 1376 zcmb_bO=}ZT6ut9iCLc|r#l{ek#0=Spi=r_atqVG zE5}BUjsxtSYzCgnG6+lX_Vqh~$RBi-j1f2J4H8ben?#HPfcwWmFio?|E6?O1dL|rU zH=Z{{B(fyZzku~;eTAfn_pDy@h4iHOf_Tl=N6{^Y=qnk9Rjpi_({5xdmAl#5*@8-+ zjnvmbV!d!j6zG(7t6IkDr&T?{s%=#@tPHEVg;f_MI>Dcx%g@8v8a{QT6Lj( zn^~GhqbR?Wy)@(0{WXwn#=*#7xcWtJm?7!s1SuuMw%xiLY&W`91ZmM(*ljp>LyV?3 zWMf>|iP7K~Tkm(rpxXFmv|=f*E!Ac!4{W%^PPl|ECQ35GTFw`1#i?@oW^G|nv=em|4owD&pB8j%uvt3iGhLV+eF?cI;;}X4FCWC|HH&A$H2hA5+DyG8A8D9HYQdk zRu*QE0GK~xG9#1lWCKQVCf3x=o{aODm>BL)e#tCr#Bczjo8d3AS&YVDvy4G{88eYh zVyvBP!D4O9%m}iWfrXWUrG*hl@&pv67929~B4RRZ}Oe&K!*@xg&UKm`pv zVw_ApSlbV%HY76|L1yql%}5C@Day=C$1nx#z#j@A-6F0PsmY}!sW2UQtYrkb6lf(# z_v9W{E*+qDp`g^nl**8N5apLzQ4*A2j$s?v&668g#q@zv-1t-~FrfHkvMsx~7&hZ3 z0fRtRo*5PfazF?DO96+o8xu1q7J&R0lX*EJG=aKBTvCfmit;P*`*8DGj;~CX`H-js z8~lZV1s3i9|Nj<(82j5F5xGFoRwZVzwegc}x#TAQ!s=L0ea=m%ivLuDYTr5U0OlH$OrMG_PxZlyUn{z+M>$t9k7j>#pNWvMu#Qf?vx WI3YZMB!vHeWINy4D)g(oLzsXb9LS>aAealBTv46;9gF1xXBOvtUWoCMMoI zsH=&I#(2_`r(QgHBr$q4o=m)OXcG<^wX_6WXWr~CTYiF3#V${3 zC>y%m-`h8cP{-n9&(g6LbO;%Su||X-LP&hkMSsyK{QpHnBDw_jg2hs|j)_e>STt;Z#<-7r=N(v#+-EQj6XSKrg%oI~zqI^L%m55aisO{ap5A>N>Z`GwJ0 z_DHEkZDjT~Rp~pw1u|hmKG+qqZ4*{>GuHZYQwd&n|7=dnC1zq1+Vs52YcM@VRXlO@ z%;7P^Sbs)D=zfpsv5s-dWez{f+NDd-WDSGoz3C=hms<>NTKv&IYymo)X#XOyg=fvv(9H zYoB0;saa}HJrGt@J1Vqjq6n#h~X&BDe21gs2W%F4jV!mzQrpAi6L#s(n( diff --git a/_module/ncs/psc_pvt_disturb.ncs b/_module/ncs/psc_pvt_disturb.ncs index b2275f1151e3bfd00628c042e7bff3bdff664cf1..47d5524b66c17f0f2bbcc33fd72a301ef88669ae 100644 GIT binary patch delta 1053 zcmZ3X_DzA;&pB8j%uvt3iGe|&Y$9)~BMTb?5U?^ZCNeTI{{R2~2Lp>V1Caj1#0-~8 zK$l{JOT{p5JQ%^m#O^m)nz@CEwRQ4BW(g+tZIgF1%gV9(FoR6|!ob49477t;4oI-y zWCGKyrIWug8!)jyoE*<0I@y+Gp#b|an7tr%9MO~Cu`FX^|Fn4;>v|?8hWnG{6$vFXe`Ah9Sl zur#%(63FN93-^nN4-WJJDrjH=68#Jl<78aH+JNB!)`nz8BghOss2M52B}JKe=@_Pf z9r#0mVe$kn2{8;=upN`{af;~xrG$b~6H_Wf@Tkkbs|K;i}*u0pVI^-s!5O)haO&B?(C46x(A zKs^eHAgHNG264j-^2{p{#4uuV6kn*!-&kv$i!q!7OApeU z)djMdiohZC206GsASXjeK(-(UB$R`c$OVE^^HRc7lRWbCvpqsW0)l~-@_-XMR1j!q M0~0tX-zYEu07_gkMF0Q* delta 1629 zcmah}OHUI~6uxt()0ENzp#_aRoJt@VV|gm^5w*Oerj|lMN;JXJ4hF?m%9O{3ZsZ5p zt1AtWjbY=$uv8NlF5DQ68WVOdHNnIMsSu`)_c7DVln^#^bI(2ZJKy=vcPA&VH#vhn zVev+rx3wDpSMww1N{axvDBw6%Rd;};2H;hJJPzJ24q9>W7I^hF0%6HnbeexyYaO@n z0053Bw|@W&+tuSx$twED*VS7^dbF(_@#M&U1k%;IifoovXupDHEmdgHvQ}Yl)XUSn z&8+YO+OzoBz41nP3L&?F#%*=&++zj+n~dpj`8Wm#9pozf4h6~ukR4xw)@>ImaYz7; zP)d3bO-Vy(DYb-Vt*%qJX_5r4QKkxJDgaw>EEt&x4+ZE+oRtI5(I@MPj3KRxr1kZA zeBJ)}c2C4J?g@>C2P{^M#t8tN;~75@U`VGamxAER?go6sdE5=UOf(>PdVGO^y8&Z( zIf}7EG29rVwy5A>s8Fv1qGe}Id70K?JS?ZC6L(0H89ab`GTBDGFm23h=*7@7&TC`L z_1cEKLwfEi^i1V;_bp1Xv|J|XoOIo*gJzjk_1{Y(GhTmDFJi{5dL0>#gYgjoMXel` zqVc7XBw2#eqCA{jz+F~f-3RH{AXg5BEG@$7D8|ZfnJBnOes5Hc`V+pGJUuTl4w{{C z7g>X5CT;Uipg`4cCUzq8Cu2Q$s%OYlt5Mp%98feF3ee>7VT-G3zKX`Mqx2_;W9(V# zF-Y>1-%OEw23;<_bd;&7&t`D)t`w8|(=#*FGk=(8luZgv9fYf0)C*C#w*@MuN298H z@0eWlyDb7k-XRV;uQ|x24ZBpQ=TFFlSC{5xrPIWu$xy+h_ufgy1UVg}wThqqB)pXT z8g9R!pz;lUF7Ff}Z$#bwK-2pn&t%(6qc4ugF=p*vX--ZhmvnjsXSWnvXZO9yI^|a- z**7(XrIzB@HFLzeo%`-&SjFAf2U~X|>rBCFN~R(#CE{b!H%)h%rn#HO?sM1aj{OoH#H15i2_j!EW|;7n2>t`jS|R-a diff --git a/_module/ncs/psc_pvt_open.ncs b/_module/ncs/psc_pvt_open.ncs index cababc27cb2d53e93763ff3ce17d76e71bcea63d..e972ae3499af8d7d3dc941e6a4a3fcdc9545cec9 100644 GIT binary patch delta 785 zcmbOre?*ek&pB8j%uvt3iGhLV$VA>&ZWcBMAYf%+tYDm+z$&?M!(m1yw&Rmand045 zm>K{7|Nn)7g@qZYgi#Jiu%BmQ2GOj((hNYkKTuw?JWz~b23Te%6EhPlSO)``e|oYs zvm+DxoXK&_6PVbSZ~nln!OX;Pf3g(2tP#Tjhye_Lk&RZEImGmVQr!4dDlnkf60Bd>y4oRp9Z@`=;h;bi~Il%M-^bJ%76#9Y;EX}Ca zPX5m$Yk*-HP}f8TZ~#7l1mOQavY=$f26n}Z$%%Z`Ouy$%zQ-qF^!qX>9Rbs$09X#3 YEP*^Xa5~Ze%hVv!5m08rWDWid02`0r9{>OV delta 1315 zcma)6OK1~87@nPdBr#1(nl;5oo2m{whq=c9@YAc8(G;1wLB4L{*_y`ES zc}N{a!HXU|cu-sMw2s}cF>!TmXTgp3O7yp<>Jr>M=BmVR>kV=D z4IPt9m%|UJ)Kv_=F~i6_8h1ofw`bj$iG4J7m+csN!FDU-@YC3!v-6(q{Wi3lC%jr{zGQo7n~ zfrLhu1N4Yfvu695vvODaYOo0na8|@rE#YY4^%dXQx?bCZ*+P zvooyHGS#M!>9D^U9jXgj3bNEq?FNnXn+aI#wkiB*t8mCgjuh4DIgLc^olHw#TYq)^ z&kNRHy8hr`g2+=z-t9-=+C8qOGo^Dmwj|V|HlCZ`lp-9H){<$i;zWNSJ(1Hr+@C^yZ@Q~+{yS(g27Qbyq=vZrn{@>?B%V)FR zcPUBBT{!~HCl8$^T>C^mVDBMa|NX_7qSYCrk0yE#@5%rh(RvRRial@iv7%^{Tb%7 diff --git a/_module/ncs/ranzisnotfree.ncs b/_module/ncs/ranzisnotfree.ncs index 1d6c7e13ec06377c2baa53ca8bed89d7cd4f7d62..2c713f446d1cb2ed6f7dbe2356ed556cd1a80161 100644 GIT binary patch delta 39 scmaFBc!5#g&pB8j%uvt3iGhLPf*g=w;80*-Vq;=sVFt1pC+cqm0HF2;oB#j- delta 55 zcmcb>_<&L0&pB8j%uvt3iGhLPfgF%v;80*-Vgo{E7G@xik&*HL|NlQ2Sfm+%^q-0H F8v#ZC4!{5a diff --git a/_module/ncs/server_restart.ncs b/_module/ncs/server_restart.ncs index de92c8530ac090544da69c2968bc99dec3e8c252..9a994aafb2409728ffb1122c93626df7e2d1d651 100644 GIT binary patch delta 71 zcmey*I)|0l&pB8j%uvt3iGhJ>&PLvNCIc2$2EO2o(vpG9%;MAhB)FMX4|NsC0 zU|^AE0MdV$LA*ZI7vbuv=;-8GW~2yK3)Cs143uJ2 e6j25Xe1QtEDmpv*_=qU8GBD^dg3b7$zyJW#eK1l0 diff --git a/_module/ncs/socket_ini.ncs b/_module/ncs/socket_ini.ncs index dd235d59d8c11c40cefc407f069646c67f6e86c2..209ae55174d63fce5d37a1b7c3bba9186ed64e86 100644 GIT binary patch delta 454 zcmZ3&Ka+>o&pB8j%uvt3iGhJlawD%dBM0LHIR*v>CYH$wj7m&QzbChVsOytgFqVih ztYu{U|Ns9F1{P@sApHlVkm2rRBPJJPW{|`m1{PKZmKH`J$rDhNT98vms!H)gFz{0`|G=T~1i)ygg8>kpFSS+0h zNdN!;*B9bjB=Um-16VyUB)}d<@_i%7_k1wV1eX+L=B1-L&KDQ}V6%Rpn9|6IZVETd N6wka8R3nf~008=3jFtcZ literal 1956 zcmbVMU2D@&7(PkbZR!-k=#Zg1wJ=tlWmE72LFq?UqoM7Zbj}-Vw#FGY+mfVX^-lEC zd-2W-{TKd#U5fq!!OL9?Q7G71&v{Qyms2(dmXhSW=lyuz=lv+=OuRIop35RM`tc$n zzcGwtMOI>QbgW#-)$&@lT7ZjbN$U6eT@;%{9|?SJ=83G z71!;+Ua@@#+Z&!^*E`tRa{a(ht4RP!Adxs4HM(<@4e{o$yRDYnSi^3^4P1M}eQ5`7 zvyqM?c}`;aKyFXjH_c1_O`pnnz&i@h)8TgcqI5=08Dorn&@|prh;z zilXKrPP1k~FCwbW5xcuZB>AF5n#BuK{Qgj=@6%YOz4ePtVdT(Id#d z34RIt;EVa4W_}@0B*g6v)jm!#94~uL%l4ebw&QigNCK({JR)VK_^7yCGZziOTW2`Y z2e1~gggNp|BRP1)Z9n z=L(1Fn(dWg^@DVAUR%gi4YFwFQ)1%+3zNBuma(*u2YmssYs zoe!W33@(?kafg9?!qWqp1hO9>Bf|+Y8Dw8TwiC)=*`Uv?U-yK;g-E;MG@RlMY6c$J z#v(=@84ymuiLbRZoDP_gUNS;I8PEq$`a}HJrGt@J1Vqjq7+sHeWiP3fPVkUJ)+0Cb!Dwr56C%dp}D>%}P E0DVViP3WMVkUJ)!Of?cDwr6HC%dp}%UH88GcYjx zXJ-8W|NjpL7BKyRfrXWUMU#2*L{>?y-O>y|sXwwnRSe3yKoxN1U!cl?G(`C=Rucdn CT_oKA diff --git a/_module/ncs/spell_missile.ncs b/_module/ncs/spell_missile.ncs index c81fb3c27e5216a31d04f0c2bc17653e71b466e5..dbe3b9877b65e8874e41a756b4439dd1b0b6f9f0 100644 GIT binary patch delta 354 zcmdn#u*;6u&pB8j%uvt3iGe}hY9ntGBNP9o$rBj^nD`SmKW3cA$i#bKvVn-`<{8Y! zy!FhC|NsAg!@$DIz|zPF=6nEiS|FS+$ebU@oIg+wP^Um}YFTp%pEc?PpF zZ#@eugFtX0XDTpngM9XAL)7!^+tgKNwFwMv8$`1qmyTukz#~m zq+&p5um=kp&@GIt3=HPX5Ur%>v4raZI))e7d?Q7eqeYZ~a*T>1%3uMYpTGjFiq4Kc zJ|fCMi}e`67XO%REf~ucBr01p zEUXMHEsQ{tC!i>`Ah9Slur#%(63FN93-^nN4-WJJDrjH=68#Jl{bVM85|a?aE<5>- zm{h(?YH>+XekIhb6zqm6Fn}%p0ks_6C49l9NyW)UnMtXxWvO{3K-;*%ZUOU(!OoFp K06PAM0s{b=TSkxo delta 494 zcmaE=dt0B^&pB8j%uvt3iGe}<_C($}Ok#I8u6`lH!I&(^z`($`dGc&gmwFaf2A+VT z)PlsK)WFizqDp4Q|NsC0U|<0$VekU;{xGlrRdM)*`$fbD2l{|zQka;*^a4hZ`VR~& z(hMMdvLIbNVD=vfslb3_hA7AkS64+xC(kk?#R$bn#rlBIU=J2Hpe{yM1_n!Jm?ofw zyeNuc?h;W3N--*mD1!yQFtC6HSQVWeeSAcefoAA2LY$(&08}V~Vg|^<0RI5Eb;eAL zlVimsCmV^0*dVzQ$)`X+g@b$wq$h)Y3bYVnJhD$G7l=t!<1_%`oCS9P~imbR_e*!9fq!Q4ChP4iZc-j{*SF39C5( diff --git a/_module/ncs/sql_update_pc.ncs b/_module/ncs/sql_update_pc.ncs index 88800a98d777b66f2a547ed9dcf8ca1a9ec9c035..a3362ff8fbf90d784ce360f77be1185541665be9 100644 GIT binary patch delta 592 zcmZpbxhu}==NzmMW~gW2#K6FPcOvgaCRXl=4}zK4Wj32KPGVwWxIg(Mv#b%r0VZZS z1|aw=&G7&K|345Oqp>_l%orrYn90P-!VKbqd9{-zSgehi89|B}SXdcYS{Q*OPe4&> zL1IyAU}EX9#>v!!wf%r z3{$`k{GkBSE#g{{np|3v3e$ndT1JpdfmVWaPtIZG(gA803QA2(sSL>nQGTfvB|-V+ z7`B1kJUM|?Odlx4jZdWl1By>3%d(4$VKZ(LFbHHfpJSiT$nCm-N$ hWcsynvolXTqZ3k~H!`9)734FR4W4-=7>|8FfQ@PYJ8u-||#hS(1F8xO=iP#+2fr6#6ShU9}NztoD7p!{;6FU8z3 zjP!&W*-FqzZZxxu(ark%2E_@&AoVVZC5fJSj>#pNWvLK1Koc3z7n6{}3?*#;PGw>R zhrR|Vk(mSS0Yx_MxHiQa*P9=+E@EW*er0kyyS~t`o!|`N#>5Qq@1L~EC)gvHm{=z( za7chcMgrY8zqUerv)PkFn33tnm&tLQc1%C7PwwXsoxGW|o$2T0%{E-|jDp}u?HQ7T`(+^=pY62!kR$M;*&H=FuOajw40BfK~BLDyZ diff --git a/_module/ncs/store_open.ncs b/_module/ncs/store_open.ncs index 23a5e610c0e630b1b7804f678bd4dc6b47bed219..c1133e88199da441793d3d59a06ebbb1263cb069 100644 GIT binary patch delta 1117 zcmaJ=Ur19?7{A}S_cl>CDs^dzZn{Z`O-%~RNudifYN^xy_)wT$qM#{bk_J{%q(ac@ zK%;+8J|z8H;|lA~gHSK)C8~!Wg76M3uM(uugMr?4&T+$Q3-81EzVrM3{l4!zcVx^E z8#Nf+^&ZQSN=HQ<2Onc$;}D<^Iruh&(K)N!h-4EwbwJkEkEfw@BYs$7#Y&whf5}tC zeDuDMBVS_yId}ny0#C2(mW!`Da|Mn=i}J6+3t;A+0>tC-1y0z)5xGd6xUazp7v$ie zwY-X_)p~8=3dFyPwr{%qwZrTJ0kSo=msQ;m$dnwo$L~AiJ)P1TZm9W*rtjfur@eIgt)7f( zTOp&i>&d8IMn*lv$f#wEjG95o?ADPPgn!9oB*`>-{V7c3;o47PnPSm%i0x+_Fdazj zA`_-Bl#kJ@&hN%gRz6C9Mmtj*0OkmixRhY=I3LkqsTIjfL23qJ9o1BBXgywV; Q(4OP@{;Y_t7rveN3r!z$^Z)<= delta 1605 zcma)6O-vI(6y7)O0)lOn76|c=wQv!F6hRO%u|?D>0ZLVn7_q`ePy<>k+IUdoK`}8g z8DnEKDjI(h6@#mC^6$n;6TpK;(h|W1Ljq9`9AMX(*;cnTM)$C@^X7Zs``*0wcI0+q z*Zo9Ob%iHuhdsZ*$-&UPUej4X1MBc*=tUha$%P~{YVk?Rf~QF+yUc>$Id~~KYcHh3X@;GN zVkrg&gN|}Y!$DzXD)HsH`L#arkk===kBYtk9!ap|5nD2Xb^S^wc9Q!P?}<}jD$qC z+Q<q}y!%8?7#|5mZ{S|K&!tPefl7uXdrE0A_E;b+a zi;;|5qA6$8#3V?P-b525>lt=|M1>Y}3B8v2(Hu0+4dM~MuOsjWr#+5S8Hw>rtrNX1 zfo&ahsTPm>>pG5+%g@*t?{!5}qP+j7l9V{A!g#9k7y%Xv-{AFoUG0u$e_N-hDfnmk zRdsF*@vQv2X!+~^zx*Zo^3&4&y>i8@a*!aE+spvj($?&>M5vLxxyJymVUs;m`j&Uq zfKmkP&9&ht1&z=une1~2?l41sQ6o$;*sY>bKsm|Mxz$}zB@b#>z$B9q`aM?MC+(ic zhctw?o9JX?c#-zP#M{WIkug-&uYgaLEkhGwGI3;ig>RIShm2;xa&Ui2DE>JgS1ZUT@;Pq>!(AXtxFUwi+<)U7nT=-j`d|t0le!=v~ z*O)%}1k)!sQhf`VzLcmwSGzw(T(e%By!~(DMyE9)(w?;geBSVkURJo6$-*?f@CC%{ zg@s?zX!x+>Zr-p(?-Z(~POzLhh3+GR-YN6}cR3g1CMSF;K? z$%u_cQTi`1TeMy1k3s1VFxzMZN6V`8i!nAbBE;rqjimJOx>S{(doXz82t!RYRv`9&mS diff --git a/_module/ncs/summ_heartbeat.ncs b/_module/ncs/summ_heartbeat.ncs index 81fed39b7a497815141c172c239e7a58b9bcbc69..074cfb05ca9d567684ac837b3f87b89bec28e9d0 100644 GIT binary patch delta 532 zcmew_xl)SP&pB8j%uvt3iGhJvb0Y6%#sw1(N^*86G0QVBFmTpQd>rPl%)$m_GcYs$ z|Ns9B0}CqygC-LTi(>%;1HU4h0$BJD0}Dt!19qh#89ty=kP@bglWQ2CF~&?zX4)jQ z7-BLDGe`x{Tu!FRip<@Ni#D%i4rOGNncU48J~@ijxt@gssu1iDRt83UMyM+s4uFgX z8_dDP3^T3)Xq+4nvs8g(7+=6-Kw_*e5Wg{Af{C&)bHLPlLFKlg*k=c~kckCs#5{l2<1v51@&?!S)kdBcXSyLM#G%TR0ehKKCp%#;JDFZ1p9e4LWqfr5gfvTJm46> LqCn%gp%y|NkEh zEUXL+nv9cu8O7yLg;-dCY8m(x*%UyUm`+dbV0^|HHaVYZ6VF^0W{@0ECnw`%W9Dwg zuFde53(2JjbAYY@+spiMat@m!Yq=46A1bcibLWqfr5$t3^9&oTT;_|>|2acC40HxwfHvj+t diff --git a/_module/ncs/summ_pixie.ncs b/_module/ncs/summ_pixie.ncs index eac05fd300ec8c905b494f825d6c8a08e99f47b3..8832f32a379e8e24e058eb41cba8ba07c9e05cbd 100644 GIT binary patch delta 62 zcmX@kc$tyc&pB8j%uvt3iGhLP@bnTu&@DT8CjTt OWb(vp6-Ks+6U+fVMG@=( delta 50 zcmcc2c$|^f&pB8j%uvt3iGhLP_(WbWkz!T`#vKfdjQ{`t|H8l`%>bnTOe|MnWSKa} F8~}nZ5orJb diff --git a/_module/ncs/tochangesportal.ncs b/_module/ncs/tochangesportal.ncs index 4a3ba98be81dfaec9a7f415c3af28ca843aa803b..99e19bedbd7df719c8cdf83c115229fd53819805 100644 GIT binary patch delta 64 zcmbQiG>?hb&pB8j%uvt3iGhJpZX&NOS=c}n3p0phWnkcB Int0V20CV&SVE_OC delta 58 zcmbQoG=quP&pB8j%uvt3iGhJpVj{0CIc``{l0t^tqBMYL1S(rf-D+2>3xSWyK&pB8j%uvt3iGhJ(`9xlE83P>wAQKE^L8LGX8;D|MV9;Tl=#~xu@DT?c diff --git a/_module/ncs/wa_god_spawn.ncs b/_module/ncs/wa_god_spawn.ncs index 52dc2d3f8178094a8ef436fcd313ab03c2c6c087..91ce2df2eda9b2d651e388170c53e7f020e06fd8 100644 GIT binary patch delta 249 zcmcbq{#2dU&pB8j%uvt3iGe}*=|)~TM!{1|%uLKIYz#mk2gJ;WCfhK6P(BG0V_^mg zGJ<6ym6+v0%BsM;$&>w=#QApu)qzy7fW){ICzmp5F@Br8fJui@c=AU!>B%pcc(qF) zrbA2ulT2XMLSQxnm^1;22yB?Fz#O1ysv`j8fPjiDh*W^+XJ-8W|NjpL7FGrZ8Ac$% g#WZ;`vnAuM&1adv^GhSC`2tqM$t2AH(xAWq06Ls1*#H0l delta 237 zcmaE=ep8*-&pB8j%uvt3iGe}*=0;vQM!_RY%uLKIYz#mk2gJ;KCfhK6P(BP3V_^mg zGJ<7-m6+v0%BsM;-pT$<;{2O|>Od-3Kw@0dlS`Sj7(Yy2z@)>-JDCy4f5F77od+=; zViK5S0;}c$vl+mo2}nd>)noP$S?v4F2>0- dnJpO)Y`)C=onI6z`vWY?$tcYLRQf}K0RSc!DTM$4 diff --git a/_module/ncs/wa_killdead.ncs b/_module/ncs/wa_killdead.ncs index 2b07458f9f91c7e490a9b70f4809383e6f4b3c7c..cf0abebe275bf56441f5ce3a91335f7068c94905 100644 GIT binary patch delta 55 ucmZo+>SE&ca}HJrGt@J1Vqjq8n#e0Ir^>>{00b<|=p-uxqch7yn-c)clLk)! delta 49 scmeBTYGLB_a}HJrGt@J1VqjoonaC?HA0x(OF4YdKOk;66&00aX7003kK00OcDvHyVs o0n4+21g{nW8?!MR?F#`dgC8fiA147T9RUH8F&h@QVMGDs>-qi|KmY&$ delta 78 zcmX^8faB-`4qiX!V1+P4Jp(5OCIi=ryjvL;PdseKmcq)ww25gmD`O)w i6{iQfFp6#VmA=l+Xxyx-zFk$FQCpUgeLGP2*J}X0Wf!vm diff --git a/_module/ncs/wa_onperc_1.ncs b/_module/ncs/wa_onperc_1.ncs index ccc3843fb68685d9b5a24748bf2dfeb092ee7ef3..5fdb7a28868ee2a8b2e25250e69dbde5f8c6907b 100644 GIT binary patch delta 4106 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 NV^=gx$8lZeKLCYdDO~^n delta 4179 zcmZu!dq9-M7T+`b?Jm2pyU?-=%d!tx5J6;J6&0;3sCC6kK}CEEW@@2WCZz=;WhB0c zJwEf9cGK%M1;?ywnrNDJEm2X@L>{L2$TST#P1`%)d<)|3?jPUI{ASLXbIzRkotb;L z={S1x=}wst|BQ;^HpPa%`3fj2dRlJ&tRf`3|M zUa$9oRcy!L2uOHBxT}zXTxMs8aE-`W2VtSfb5V^WUJ1tJQUQ;_EBIuJzg!jzIFu}f z{uuO2F#VGlz&u(MlZ8H7;MOToH5rBl3Ol9>kuV$!6;}TqOf5HwsrW$X4n0M*f7l~b z5R%u+WcmoDL*?K)bBLU4m2nqr-1y%j<$Nr)Ma}}u%TmC;iY}^a;=*8L3y%qy(k2A- znqofm-o_E|my`#HbLAds0fmfcq(F7>4F|OmCkjC!vtWUrh1RG#f_{P=SO9;O38F<7 z6F#AK!8~kKnQ@f*Dd>veHsN-4I~a>wFNETCwHDm?Kpke-#4Wc;nnl@Y0b?~5%SMj8 z;9I%Pc+^oGr*V+!KVy+5!u}oKw`S39*$in9AE}C(g8MZ?$>{?$#6M2}J01^k(sF$$ zfqC@XpxF?T!i_%7VksJ5D;cjiiDL~p@E$g-48}Uc>mgnL-z?!U%?Un2w0!J$84CtW zE362x;Vb4r=;)}xu}OXyyf_f`X?i>#G6~k;fY3kSL;8&Qq#RQ zWdgi}vz>|lU3fqoY~$x(+Eyc0J5BHquR7D=HfBXxR8||y)TU}28|8%U>}$n!QA$`K zwp8JKY!cRQwqS3klKvc(sD!U+M28Fj9lFP~$93^0e|Mx@DeZS8zWTBe3pXn9Y`gflP=N_aKzW zdH=E$OZD^g!_FZ9D*Ep(3*^uN2PN9+gzgG}xndJbdMtvwc&x^V@kxPj4xdVTRrfJh zaDj)E9g71=2VpsVujdRksPN`a13CsPlbdD2qXTRB!M7;e1~G$7^L-%{&-)7?Ztdgq zHxYCVGh=Q)GkhZYOxN^lCx><|+Oaf4O9J(n^{kmH`d0z8qo-0Q5(vPmnNA${oSC${ zif=xb2+v~qb7ys9S{!C6!0cW3`~Xja!jA<&>OXkC9F^XASGOYGjKM7SQZ5*9=CDAL zccrykKFkf7Ej^9wp|sxYhb<8H$P5C4qtk3SnYBJ|#n)$suo%0I7Cc%XK-^yAqFtfv7{D*wH(t)WjTd@AcMP!Qtb0i*}0T-uAH0%|Fg`+mtp`$pf=|O6w`*B zZUBQYWNLq?#h`8m^j=n?{feH>o4P^)Pt%Ck&H#+W@;s|5Nz8*~-O!%57&hUyylA0_ z6(WrIn+;1MqiNXd9SCg0#wp=Aex@0&V$~88^~~%ghg>YHG}B9O^#FJV9R*3`1AjWI zfKlGt7Ruxs9$W zvIvaws%E-q)4LgR#?VEj5uWXSDy?YbrUf{q#08^pb;&G7m8SU-P)&QxUoF4|)R&v_ z`r=%eh}!~9IJ_nR3rpS1u8PtG@}UVEOC2QNkBK=Xz)lTH5(`wb z`jlW~G|hOv)k!PUf4`YFua6>7-jXMLI~MKqC0l>U@U`0Eg^iJLN9-`d)xH3$ z^rE4~>zJW-EZCxDB;+>Q>6R^wS(nk8e_aHoy=rD0HhnUk-3A*~2Ar~O16;@Sayuq$ zZ(yVP@)X$0`bA_;tPh@mnHBl)GaItut%?-*wiW+uM?R~yB0iWpS%OPyCg44q52+kq zveOAqGrT*!u`^c%**JDj4tTLB*n|yxX2Cyk6}=W7?cC#09R$AO0fp$lX07%VBhfG!y+?*vC;v5PylH$nmPc4o>7<_T z+5zL+va6Av=m4DhjUV3lzO$C{IB>_upY?@RfvHEMVLhfKSa4d5A9{`&b>rjtM1L_t z z=Cv6e)mrRzJd0!{;F{yp;7in=m<9u};6w==^i9Ztb-1uP3bL@Gx*7Ik-AOa1$NJh(%&r~Itl3=~1$nHWs%Ny#j_GOX zq9*9^*!f`Hkj30-lNgX8yKuz0WY~j8YeKN(oStOQ!vp7{RaYeL;yRUeCepbZZ+5E- zvn9p1)k&Hj^}JqplQ@kQ*Tn-|^3`^2NFSmkN@)|Mr;fNXZpM_`COywGu7Z`*zzB4u zgkoaD6S^9XwU+Hs4H__i%Q2RkqP)u`ndp!aB{s6x&bq6?xVf<$X0(YFE;*m38z{Z1 z7zum517kS{YJchr3u*dKGa%?7k+(eYM3$EC!JFcP>B8yMuUc?!I)Asyhxnd;Z}Pc| z+B^-VMffaDERz&3!`#q_DAYH_!9DER6wfGCy6|XO!G6Cf#PBwsCp|8^iUxK%hP#{6 zoUZslCNKV?__+*g6OM54wW$H@aw!Qaaq1;ITj|O{yTJ6^FhLhOnh;?e>Z@gvFvaQW?B5O@~(<8!YF8uzut|3YwRr&hCRciSN1c% z?}bAs-0Q<`5#A~zj=mR^Xp3R12g`Wye-~|oSEY^M?QtDtKHvRBZypX1>5Nfni~jwd X+_2V1yyJc`RN$ujo#6ofc;EhC)^m{X diff --git a/_module/ncs/wa_spawncrystal.ncs b/_module/ncs/wa_spawncrystal.ncs index 90a39f19db3bd89963bbbbb71428630c336c6900..bce36770973aa3710de7f944e65929b25d9ac2a4 100644 GIT binary patch delta 52 zcmdnQxPwv0&pB8j%uvt3iGhJ(ha8Y#;80-DVgR$av>6l_SlB>y A6951J delta 46 xcmdnNxQS8C&pB8j%uvt3iGhJ(lN^v>;80-DVgR$av>6l_SQ!`-7$)lU006)I2Lb>9 diff --git a/_module/ncs/wa_summongong.ncs b/_module/ncs/wa_summongong.ncs index f32750ca9b67f7a0e73e87dd63585e459e37183e..8244372111f4e6dee2bed84c6b6eaa528da7ebf5 100644 GIT binary patch delta 567 zcmX@5cvzO#&pB8j%uvt3iGhLd@J3!WMkb!R&8Cc=j7*#glN*@UGqG-(Y{=Zn#CB}+ z9%g1{CWiZy53}r4}R>r3RL!7F7cI9Dd<`5%Ix+K0pNxOhBTa0q6*sda%A9 zP<=>-G=dD_gBp?&TvC*omyTf!*o8k7K)OX-D^in7OHyGv@Yu@;aw^bDknYL5xws}5 zaEggxm<@5_dM>dTpcHpdYGR6CYDGyfcD8v4(H~be3(C(Q3=SCo$MlD!SqFYa-Dz=0B8-IhX4Qo delta 937 zcmX>sdrFbl&pB8j%uvt3iGe}j)J9%4Mkc=2&8Cc=j7;3>lMiwzPF~2=$HYEsvLSOP z6UW)jdzhJ-nHV=uKFB6(#5jeCS&o5$fk{o8;s5{tf1tcNd7v1BF<9mr6DtcdhzsH| zb50guw-y2lu`=)k6r~m<7NrK3rWREK4Hwq_!N3Ai#Nfru2r`U;1*nR{FWfI8J~+?^ zERzDUfMLO88#bkSBxRx?Wv;G@j!vFsMv4)Nk%|GK!5%DZK+_mm85k^?A?{OP02;}Q zq84lj&}I>3pcJE`h%#8<3sitr(b>_*M?@KDh8`o>j2~b#M1W?;q2AOjSG{=Px6To|O-C9x#YGtV)(B(p3PVmmbb z0NpjCBw z;mJEV^@V;nfEBqhF+)85S9kJH&Il$Z*2#ff5}@#rL~+gU8o0OECL40AZeGmwmWlE3 ZAMU}a#CVPs)(+QPsfq6p-0F)1(r E0P^GqG5`Po delta 45 zcmXTT=k;?ARtPiHGjL*HV91}ytH)?Q(MDc`m4QKqk%h%+3j>3QB9OzysK5XK&Q%8$ diff --git a/_module/ncs/x3_dm_tool10.ncs b/_module/ncs/x3_dm_tool10.ncs index 9f51145ea7d0ec51bb94ca9768cf78a97c367719..f75904582b486a30b72289e0b05711f820a19fe5 100644 GIT binary patch delta 739 zcmeAPZ1v^!a}HJrGt@J1Vqj2f-N^fbQAd88G{gV@|Nk&C%P}x8@D$1eNygb=_Hrgx zCRP?^pa27yzjLx8lMEBjY#=4h&IA^!1+yVq7cyCN*=O|#}O`BZFQN+aaY4Tf+DIB6xK^i5WPCmdXyLlOB8Z#5a z{mFd1vPKLCAWmcWi|kNFV~|4`j6s?hGm)LiSUWkE*Lre;7>71114|1d3o8RpKv8Nz zVo_>fX=+g=kk8>4?iUds9Owg7(7*&F`WYt1$pE#m*8gAt$^&&VGlBvI%xMG}!3Q-W zCAg$0GcO&(5U|^RD1bDGxK^YlmzJc$bl|a-5o8O{N{G*785rsr7}&su2nD4krc{RH zgDAh$ijtuGatu4c4#zM8W&$@ptqKh29ux*CcTq_!N%YKfOfJbROT}U3BxqQPPL@++ z->fGXDZugSIXD`)CO_nqoV-G@kWp^4l#(i=%v)J-B64?CorGRL w2P<%6Vg|+W|Nn2YC$CqI&;$jdOKNdRQGO-Ljfv5V2crkGCle1O9z1a)#CR~_Mnik^Kq5HK%(l3SiI<(ff8Kxpz5jRTF3cCy z+)y!mxj%U%jZk9#y}E`E8!vhhrF0XdK7^3^F~pwuIgd3RWRP7F3z2xw5Ca0B9bkvw z10tn}*e+ccu}jb_S`)YL{oz)ykJX%xKk)RQTm##DZf( zaOe&WU#sE8yxor!TwQ@6m+1~8VNq*YEEj9l@!Pk!$r;w6k1sXW79flz|81G!`fUeo z4G!FYybo-97h3eplzC&KMviM5)3Lw%_gpFc`Hs((opmxE4*_7bn6MoVkQZ;r?>FfMh#ee@i|aB|eW(q-Te{`j2gUZbBn5>u#h8_>(mni{oFcH5SzX diff --git a/_module/ncs/x3_pl_tool08.ncs b/_module/ncs/x3_pl_tool08.ncs index cd7ac83ea178783bcf223f88264f6caf41c1fe8f..324211dc7aaff6651290c40fdfdb6950b550f052 100644 GIT binary patch delta 122 zcmbQhe}I?Q&pB8j%uvt3iGhLbz(!t2Hb-X0|NsBLVPIipU}kdT02M#lgD z|NmfMk!AqWf0#kM7Yruq!^(XsTdF%?7_kYbPFRZ1A{p; zL?j_15oMqhqoRm1SODlJumG!~v!joXh%(S(Jw~v_KNJ`MNPug3 diff --git a/_module/ncs/x3_pl_tool10.ncs b/_module/ncs/x3_pl_tool10.ncs index 2c3989e9f40be122e5976d830ca4e6b3f0369465..547256ffad16f97e2486947d120cb91f2aa7e46d 100644 GIT binary patch delta 137 zcmX>k^hto%&pB8j%uvt3iGhKmXd~}u_9AA+|NsBLVPIipU}n delta 317 zcmew)a7c*P&pB8j%uvt3iGhLBX(R7vb|xm)$&MT%lNs5B>t8Ui$T0vx7Bl1j|Nq}W zc@x0A4^UncnD+(BD*^Lu&FiD3_w%=fXO!s z3`lB4L26xH>lGcHJj;v}BNQVQ144s6SlEDWVPs`sFlUBn#ij|D9!t0$pksI;7C_a) n+$^FDlwwpAQ3eZqVUT74i?Av>JNo#DC<86lV+33LLxBMRmV{i( diff --git a/_module/ncs/xevent_dmspawn_b.ncs b/_module/ncs/xevent_dmspawn_b.ncs index 4dbe2d538b887bc9acf443bee52eb741481b003e..8b83af9fe92959a1e8a603740dc2efc152f0b7cb 100644 GIT binary patch delta 92 zcmaFKHkFmv&pB8j%uvt3iGhJ>>PB8iMkaq) zKu84!Bx6KD#<;pFIy!ll87W36Mk)q`279ou0W~qQGB8*&L-f=uFaYi3MNtek{pREWJ`*Rv@w JOqOFR2LOqoSWEx_ diff --git a/_module/ncs/xevent_examine_a.ncs b/_module/ncs/xevent_examine_a.ncs index c432b2135f8ccfe883995473b1a89d25864a7a65..923a5566c20e92e92d137b46497b9fe2ed3f705a 100644 GIT binary patch delta 89 zcmX@X`h}U-&pB8j%uvt3iGhLf%S7HHM&^kPtIe1h|NsC0hk=Eafu)5JNb#0sVtfDQNnHQK@?<;tE-};lV_QcVuWI(VnArH2MZfe7b7bJgC#Re6VOgx6tys?i6{f5 z7!^g7!2(|xSil0Tiq4KcJ|fCMGxQk2X8cfK04fwgF+&Y(p??6}K2s)C|AU>+Ho2Oy F5&#ZfWa0n- diff --git a/_module/ncs/xevent_examine_b.ncs b/_module/ncs/xevent_examine_b.ncs index 484550043132c3857d034b5c751f7b4314d245a6..3bb0374635d6c48e23f2c24aff80fd758823da91 100644 GIT binary patch delta 91 zcmbQrevp;d&pB8j%uvt3iGhLX;6&a+CdLaJ8!8yhm>K{7|Nn=9g_VJ&g%L>dxTlu5 nmZj#ExFnV&0{Ps2;eHYEV3A^=ng%8yF^OSvC9}+AIp%Tzsa6>e delta 327 zcmX@eI+dN*&pB8j%uvt3iGhK6>O|f`CZ;7D8!8yRCaOkrXL(+j``e1ID8Ll&fw z2Vxk6RA4|DQ_mm@GRM_b(b37X%t$dpF;X!gG}wcM4XBHem4U&M8KwznCohUxnA1d* zfl`c$BFbQaFAOYT0ait4M;{*%WuO^)j9@cY0B)Zt6RQ8g&S#tK H!BhzV6NY2i diff --git a/_module/ncs/xevent_joinparty.ncs b/_module/ncs/xevent_joinparty.ncs index 1ab81044a8f6a4be1975827dbaafb92e452b46ba..4253ee9dbb537c79c270cefbd18c17e569f9723e 100644 GIT binary patch delta 809 zcmeyRb4`QS&pB8j%uvt3iGe{RY$ESs#_Wk3o!K?z7#J8>ODEScicLPv!!ucy(T4HR z0EaF0vENnnY1{P)z$;!aM$+Y=2 zi#ww!SlJ&27FGt97Dgb+w&>@u^f`K=H}szg*&?*o*@Q_~sJsR3@fBypwP9Dl`2tpTs9?^hW{|;J|PXMFc;P z*9{JSW3bFYMDPP;u1@yndoJAxme&Kx|K5)*|NHXfKz=8oU%_AnZjdDP|NpP+lb7;G yO#aU=A&B9+$*uwu*bjr_mJ67qB{zQ+&}C$NHTfaG>}CfcVP-H>W^;ik7b5^jX5m2q delta 1206 zcmah|OH30{6n$@I+9~}7=~(2?(5NJ6#S%kYxG1F}rdFVS@ROJZCW47Y%M>VTNKD-5 zLh;5uMiwsBx->-BBoJM&F`BqCCM+}|2ARV6J_8I@?ii*e8Xh-*0MD15Es6A&>CnP7qW1@RhtU<(Ru@MohZwHpo ziXajtKC@RR!0bOA*}7v%w$v z2>c|pHBc|j)QRwb#K96`r#Z;ULsmjPS?xwTtM%rzY@R06!V)sg_1Ct9Tr8nfZ=#-f zTwmYPg^kDwX2z?~A z3B7M*{I3)(7R9}7ihxDoDfu>1B5y2kn-)Ak;k3owndpE%Jf=}e+qyO$+j7|9!x*P+ zHcg{owb@X`lw|hhyy`S}{jdB#HwtGZQui&Kj zYt3GEA7&bN?DxhCNccJ`e$_I-asC%J&9z>b@%2~p9dv4=dUhngSqol6vW?1;IDX#c kGlA-VB+t@@U^k7tu;@R8@jR5fY6~^xiiqb6t$}^`H=50BC;$Ke diff --git a/_module/ncs/xp_apply.ncs b/_module/ncs/xp_apply.ncs index 79654c99256d75b2d3f11b87aa334b88c799d5f2..ddc6f7efe2754b6c2e10cf07a7c10f4c059cc03d 100644 GIT binary patch delta 585 zcmaDQdRd6q&pB8j%uvt3iGhJLcq6Y6BNN-!$%>2}TC6jq8UFwO|A&cLj)8%J<$^qr zWcUJNv$8RVi?0;WTP34!A2W{3}ehhHkz?^asjKg5i=vm9Skh23@j~-K$0h*D77H5C^fJ& zwWt!v=kN>ni-->n^Z_bpU;+~TlLa_s>%rQ7K(!&6(Fihw4{AnAa7j^SUOI*;UESElGvxz-=u9BgmydD?z#^@8;l|Jda&W48v@Y3mGP_=MakqN^u9JCZ_nM zR+I$gmt&|@U_f`bFi5#eVo9QBo?~)JW?3pWZ9oeqfr3DVi5V6MazGdTO92P887LBf zyjP$AXYiUlpILe`3#X$XhV7eEIg=Qbe|EAmFvKv5D1$YDz4rePICwrlVo`ws0P=pH AP5=M^ delta 938 zcmcaC^h%W1&pB8j%uvt3iGhLZ)ka<+MkWrQ$%>2}TI>qa4FCWC|HH&A$H2hA`dS`H zGJFBC*^HT3S(rgwFfVNKWkx+FHnqvjOxjGWKPMY7=`pdMoSXonW^SIq)X&7kxOlQ6 ztE>@Y3&b!cHe{oj{J=&VgA8MuhHNy`&dCL=)($MJ3_JlvsRfBesez@bMU~8qKzIFM zU;$}h@B;JxFt7ksarlM%MZ^aO`haCpAeJ#Km^_C?sUAt0C`g&BtD>WmXPJ>=gkq#( zKxnWB3mechMpgy}OJ<1c6c~U;@}j7P*({h>F{R80k88b~@&n8*V2lZk~a7j^SUOLQVIZz~+!Yl@ROb^V%@G?-H zBgEw}yOGop@UuBHG)gAhvPsz>=|c+A|NsA;1qCV49!^G36af7Vu}Kyb5j+sPCpWT5 zAO|+80hJH~{%yr=0656FgHjVy{8B4Qg7V98x<&_LBUpnlNP|maNup<-W3qWkW?3ps zCpe)1-F^v|Ie(urv4X=@1C&reF$; m;Ii@03y8}%pJPvARQ~=6m|$WUMU+87`}ZqE3QT^0c@O~Q3N5Pu diff --git a/_module/ncs/xp_reload.ncs b/_module/ncs/xp_reload.ncs index 1ee755694058c98719893fdb6a59c1b1110d5fd9..be7cad9c58ceb6f2f0aff57b65fc312cdf1596bc 100644 GIT binary patch delta 598 zcmaDL`b&`4&pB8j%uvt3iGhLR*F@eCjy0}$M0 z28sP)V3{1qB|N#2QPUVEz{^4lUX137zHv{5kCT5VU zS!c)tN#-|T_Bke2CRP?^kg;I?gUR=qrI=WcOn%5JIa!27o3S3uie%AaGzYU5vKTS3 zyaF@dvFI``o;;sbWwHaSEMp>2OnGu6kfi_=b6{e=2NZB%oC{Xq#wI&?37gd9S~hh? zDX`{!Y?@3=*T76Bb`8cUP(jYgzU+#O0h9CD^O=6-PJX~HDYzKbiHuvpPGp?9S&c)V zu^t!_LP4pCDU~7lAj&Vbq9iE4oW!u?#-~+*0Vz@&L6Is9QtpyilIWQy@0eVYS(b{! K%1OY;l>q=k0jy;J delta 964 zcmew*_&}7`&pB8j%uvt3iGhLZ!9?CpCZ^XDXY3GTY-D8o|Ns9F1{P@sApJ*w!u^iWt0@K^p%sumDwY_=WpL#0LlZ zfMrscn8EY{u+bl&M*oln>EeM{10fX{kjxMTnc?cH=;-8GW~3OQ7^xT#8tlQs2GqpJ z%D`aB4AE1szyP$67ez7H6rj6Alz~!=iXzHjfiF-2Rz+t=A0H8ApdosUU_*X@%@9E` z18kvx0Ng%fCe(ldyPi#fK?)o!BCZvw$)zQ!(9lVN1&_EnN?-s3$Q=|IK)M-h9MDY= z7a#|Q0s|B4WLqW)VDO5Iqv`+m5aR90X-pPOf14*SV3HL4z{Co41T!c&LE+4%IQbNl z6cZckWqnC zv2`pmOf2$X!KXmMdq6=)#yMbq2CF(_^yCSwPE5?=V1c)+8jM$g0!ouD*c2Hj0+mWn zE@ca0`WZ3#G@GR0QB(&qegiv@@z!QRc6~-Bpl2O8#6X^PL-Xv9gOI@b@fUw!0b`jv zC^a#~FSVj1D8C$Jlr*|gDUfgjhwVlVabl7#FdOhPv4WFs3^kLkIW*~76OrspaU?qc DSlcYs diff --git a/_module/ncs/zep_arm_on_conv.ncs b/_module/ncs/zep_arm_on_conv.ncs index 81ea6eb5c1f22bea31c5c22aa971c3416de18536..866995088cab51d82e4ad58cdffc8c39c3214ecc 100644 GIT binary patch delta 47 zcmeYY;PrD3RtPiHGjL*HUIeWiAfO@(A{8L|nHm58|Nn!5g_VIph7m|`F-;C0C6kRWj`&B@wqsf^8&C$ed1=V7Q}0;%C_0;^{LlO`Y$0fos= z*aDRGbp(JM5Kxf?ky6Zz|NsC0!@$DIz#zj2B)AwS$Ff^89+*6xU7k^F@^`=P)90FcTuu>b%7 diff --git a/_module/ncs/zep_cr_nextcolor.ncs b/_module/ncs/zep_cr_nextcolor.ncs index 13d62ac823c2f1a309687f9c78079af409c42a8e..e2d4f07864c3ebb3c089a2095b5a12ac722f3efc 100644 GIT binary patch delta 79 zcmbPYFw20~&pB8j%uvt3iGe{vY9sG+Mn=)er&**o3oywsGoGES&l<~^F}asjmvQT4 hMNzTI7gg)51Oos7009L600{xJtp;roYW)zZ diff --git a/_module/ncs/zep_cr_nextpart.ncs b/_module/ncs/zep_cr_nextpart.ncs index a7001055a2f52fa7f2ea2eeb0e0162768316eefa..56306a37d57f35ad8caf84edb1838ca6e950b5f9 100644 GIT binary patch delta 77 zcmezG(dx^SjeR4c!EaT$IdpUI( fKTLkjc}hrB&enoJcu delta 83 zcmV-Z0IdIoN&iRg)51Oos7009L600{xJtp;roYW)zZ diff --git a/_module/ncs/zep_cr_prevpart.ncs b/_module/ncs/zep_cr_prevpart.ncs index 296e55fdb1308518b7327d4a977742e39029553d..d8fd7347f1a93cd7d35579d6b73520a5d2b7fb09 100644 GIT binary patch delta 77 zcmezG(dx^SjeR4c!EaT$IdpUI( fKTLkjc}hrB&enoJcu delta 83 zcmV-Z0IdIoN&iRqg!bMjl}nW(EcZMpgy}PR7m6j1^1(%X|nq diff --git a/_module/ncs/zep_cr_stop_make.ncs b/_module/ncs/zep_cr_stop_make.ncs index 828ffa2513e840b47369f54311c44291c74e44d7..1f28ab92bcb61e65faf67ea2073afbba6d92a7d6 100644 GIT binary patch delta 46 ycmey${+pfG&pB8j%uvt3iGhLn_eS0nMj=TSHU=PIVFnV6tPBjCOq**NE0_TEq6km` delta 40 vcmey({*|5A&pB8j%uvt3iGhLn>qg!bMjl}nW(EcZMpgy}PR7m6j1^1(%X|nq diff --git a/_module/ncs/zep_demi_bone_hb.ncs b/_module/ncs/zep_demi_bone_hb.ncs index 8bf1be6a06bbd810821e51d67b361b92ac111650..75d99e348516b12a392d25f9303a31a4cdff5cf2 100644 GIT binary patch delta 60 zcmZ3^zm}iZ&pB8j%uvt3iGhKA?MB{QM#g~6)r>5RjNY3Yn0y(9Bw5%PfPjS=M6xn4 Ma58Pa$$X9(0FDg{ivR!s delta 54 zcmZ3>znq`f&pB8j%uvt3iGhKA`9|JcMn5RjINs-n0y&|gjtvwfPj^Ofs=9b Iedcq_08}3fXaE2J diff --git a/_module/ncs/zep_demi_onspawn.ncs b/_module/ncs/zep_demi_onspawn.ncs index f61b6862108a5bcf9387c2aed64c035b0ac4fd66..f0a0a4a50cf6a79126a26a1ccb4a847f5e763261 100644 GIT binary patch delta 286 zcmZo%&)K`4lh@BVSRu?%&%lX+DZFG$|NkEhEUXL+GK@fii)r$9 zc1y-xlRvV{GYU)=0g~C9IXEp?7$0nQ^UYSGDonyi27Lh= U#L3j0E#96j&bU2WoJq_90J=anjQ{`u delta 270 zcmeBO&)K-1lh@BVSRu?%&%lX+DZFta?_9=nljT{=H$KW`5j?`g%*4#X#sCCzK+L>n zasulI#>0~X*@V@Dm6+v05>;TCUWh6dW}pZoganCmX-@8DOJ!`H{ESs15mo+-GDnepvr2T>I!Ua%2Az(#N~HkXUH Omy0uQFBfMLa{vH7EHxYe diff --git a/_module/ncs/zep_demi_onspell.ncs b/_module/ncs/zep_demi_onspell.ncs index d78dd2ab910b701d9681ddeecaf33a514d604a6e..a0e2d16f289b9cfeb5b958ccf08518623d4bb2c2 100644 GIT binary patch delta 3861 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 diff --git a/_module/ncs/zep_demi_userde.ncs b/_module/ncs/zep_demi_userde.ncs index 56075ef5b3790fc85b24a64e4a93a94eba670ad1..1515c8c87b3672f1685f3b5719ab1880a9a8045e 100644 GIT binary patch delta 299 zcmdnMe}$jd&pB8j%uvt3iGhLr%0^xvMn>JqQH3=o#`MWb%np)ex^Pc{lrg{J W25V)Gn_SJTD6|&CfXyqIIamO9!a*be delta 267 zcmcb@zk#3E&pB8j%uvt3iGhKA!$w{oMn?Y0QH;<$i; zflrZ50WAE7fkl-82<(}d!TcKxEOJ0DtAY}Q50sY&$wLeQ%7P7<{DDzY52ob`L<`GJ zf?60;CWkXA@u8X3%cL&hrNqppz^(wcY6}Z9$VQ+=oQ#t%F&Qw7%_P!vm(!OB*mN0Fmtc~01Bu=IsgCw diff --git a/_module/ncs/zep_demi_userdef.ncs b/_module/ncs/zep_demi_userdef.ncs index 0bc7c1bb319411553dd72bed5eac80650f54da49..4909de34c069ee9a5ffeaf5ed98ff5c38fef4e10 100644 GIT binary patch delta 53 zcmdnax0jFC&pB8j%uvt3iGhLLb|dd(M#hxQ3mMaxgd|zm7=VC<8AP%&FmN($7G_al F1^_Uy2)+OS delta 47 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 diff --git a/_module/ncs/zep_gob_worg_spw.ncs b/_module/ncs/zep_gob_worg_spw.ncs index a2a5c5a2c11483cd5204f4097bb102d518366e23..7f409a379188dbdedd07179c6dae120298ae2def 100644 GIT binary patch delta 313 zcmdnFj`Qd`PF_FfV1+P4Jp(5Orf}DZyrGP@CSPYZ-#9CmMer08GZQll8v_u?0WtHT z$r7v|tWUzkSeSu=j9{5aC1!b$vMMldGDHtV9-)d$f3h=MDr4tl#&EI84ScK?5Gig2 zkXFVL3{6ZR!#F#@su;ke2}ndhZSo(s08LXJ0U!qiRAfP<0z^MEgVZp-qVDnF&Ko-Wn&EA5`m>HjM{v@Kp aB#dOx7qCH`OwG#T?aJbe+m*$c#2f%CZ#S3# delta 292 zcmX@Qj&tWaPF_FfV1+P4Jp(5Orf|!NyrGQeCSPYZpB&)9v2jr$0_$M_lO`Y$0fotb*aDRGbp$|`0D+1uh?HVx{Qv*|9|jgy1_l{MAi>2r zxs=_K@xbKu?DC9alh3nvGj;*V?9InGELa$yZT`;_$ig^fbD-cdX2!Rhe~73s@q&%` W0XBk@u~}cdU0gVZp-qVDnF&Ko-Wn&EA5`m>HjM{v@Kp aB#dOx7qCH`OwG#T?aJbe+m*$c#2f%CZ#S3# delta 292 zcmX@Qj&tWaPF_FfV1+P4Jp(5Orf|!NyrGQeCSPYZpB&)9v2jr$0_$M_lO`Y$0fotb*aDRGbp$|`0D+1uh?HVx{Qv*|9|jgy1_l{MAi>2r zxs=_K@xbKu?DC9alh3nvGj;*V?9InGELa$yZT`;_$ig^fbD-cdX2!Rhe~73s@q&%` W0XBk@u~}cdU0gVZp-qVDnF&Ko-Wn&EA5`m>HjM{v@Kp aB#dOx7qCH`OwG#T?aJbe+m*$c#2f%CZ#S3# delta 292 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 T=`rgg;6Ym&drEY_ao6vE?aNXJ delta 3906 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 EKaVXz6951J diff --git a/_module/ncs/zep_onatk_hama.ncs b/_module/ncs/zep_onatk_hama.ncs index 229c57d2013de672040266c3dfccfb7f9493fc5b..e4caf1eb269738f551d3340db8fa62f1e7fd8230 100644 GIT binary patch delta 3933 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 ZeH?<%N9hbC;?LhQTn^OIXOBbK{{bo`g*pHL delta 4074 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 delta 3898 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 diff --git a/_module/ncs/zep_rust_spawn.ncs b/_module/ncs/zep_rust_spawn.ncs index e9863bda441d33c47f3191547683e2cb558a9b0a..3615a6b9060ac7217e020c1d0da051b175a81e35 100644 GIT binary patch delta 4623 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 N>~th2POjov0syr_D>?uG delta 210 zcmdlcHBXAy&pB8j%uvt3iGhJvZX$1t01p!jGvojN|9>#Bure@cGES^l<+;eh%m4&H zJ}2YEZ5lF_U=@EDSmZ&%vS8j9sQOKep^UP)2FY+wVJY diff --git a/_module/ncs/zep_sarcof1use.ncs b/_module/ncs/zep_sarcof1use.ncs index e5c41ff776b394d93eb4bc0ad6441a97362ff6c9..43c6fde38318fd3adf17113d8c5d0859848f57f8 100644 GIT binary patch delta 61 zcmaFL`I?j0&pB8j%uvt3iGhLT^+w)e7Nraw0R{-*kOk3_ENmc(g&9P$GB9v5O`gNz F2>@!&2;cw! delta 55 zcmaFO`IM8_&pB8j%uvt3iGhLT=|IeWiAfO@(A{8L|nHm58|Nn!5g_VIph7m|`F-;C0C6kRWj`&B@wqsf^8&C$ed1=V7Q}0;%C_0;^{LlO`Y$0fos= z*aDRGbp(JM5Kxf?ky6Zz|NsC0!@$DIz#zj2B)AwS$Ff^89+*6xU7k^F@^`=P)90FcTuu>b%7 diff --git a/_module/ncs/zep_scare_user.ncs b/_module/ncs/zep_scare_user.ncs index 70a513ecbdbb5489aeb49dfab1b1554bf6351e5f..4c20c109af15b51355cc156681b411403a3361c0 100644 GIT binary patch delta 332 zcmZ3sgK5(aCSE`1V1+P4Jp(5OhB-zXc^#t}`zHHGFJe4C`BQWuW9a6Tm?joR$;rS*PZmv4l2c`2 z0|~J(!%0R6o0WmlnPszo$^$0G36l-d`xpf#?@vF>=rg%FLxu78zlrGN{JhPK(O`ian9tuQ=YRglm~g~*W|lXl{TN98p#F#x^QQ6 delta 249 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 diff --git a/_module/ncs/zep_shrieker_spw.ncs b/_module/ncs/zep_shrieker_spw.ncs index 5ecd2f62299d7baff985e9e5eb5aaf47eab80175..d3cb3901eb595555baafea809f255cfabdb1c083 100644 GIT binary patch delta 313 zcmdnFj`Qd`PF_FfV1+P4Jp(5Orf}DZyrGP@CSPYZ-#9CmMer08GZQll8v_u?0WtHT z$r7v|tWUzkSeSu=j9{5aC1!b$vMMldGDHtV9-)d$f3h=MDr4tl#&EI84ScK?5Gig2 zkXFVL3{6ZR!#F#@su;ke2}ndhZSo(s08LXJ0U!qiRAfP<0z^MEgVZp-qVDnF&Ko-Wn&EA5`m>HjM{v@Kp aB#dOx7qCH`OwG#T?aJbe+m*$c#2f%CZ#S3# delta 292 zcmX@Qj&tWaPF_FfV1+P4Jp(5Orf|!NyrGQeCSPYZpB&)9v2jr$0_$M_lO`Y$0fotb*aDRGbp$|`0D+1uh?HVx{Qv*|9|jgy1_l{MAi>2r zxs=_K@xbKu?DC9alh3nvGj;*V?9InGELa$yZT`;_$ig^fbD-cdX2!Rhe~73s@q&%` W0XBk@u~}cdU0TMF0Q* delta 71 zcmbQu)X&80=NzmMW~gW2#K6GFKatmn@$5tgJ)UkBW(FW&WnkcBoY+t)Bdp7SBqGi5 M|Ns9#5K@5w0Qlz-1poj5 diff --git a/_module/ncs/zep_spd_rid_prcv.ncs b/_module/ncs/zep_spd_rid_prcv.ncs index 858d7b43c1888235be70e8442335905f7c267ea0..ec7b4c8b0226105680b1858f4001edb177468b8d 100644 GIT binary patch delta 4237 zcmZu!d0f?17JujW79PuEeGhm%cnhnjY$_UUqLK@#p=9I=xDILtilLz5l1@pY_)RRs zgiIR^2k56wHg1&ZhzYn&qKSew)2Gth^JChZ`@6sQ0CRqS{66QLd(S=lx#xa%P5JS4 zrEcV)bn7b#vGD^Hir>P^bT+zB7B`3L%RVgW6|K@J*r!rTf3-s4Dsa$^lgZ48!Vr_f zZnr-SVKC*!D3E=(Td_q#lGO@QDma)ZC^;YJxS1o-6oH**+-&FEUNH(;9Ao6teir!7 zYR28EhFOxT&J9)awbhSvn20I4mIU!P`jGnXmW8@o`Bo1}i1IxrgWyJdxrbvppo
  • )ovam5S}UB}7Az?PZ|zDDav^Yf$!$0r$P; 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 BZ+-v( delta 3975 zcmZV>dsx&}cFu3!z&wy)V1Ri6f*>#uU}CHcrmim##8VJn#MNfpk~9 zRFnN;o^5PWLgE04PBa5hn@mmhrHd?^ef4IF1wn*LGjvoSSL4 zs87OWSVXPzDdAF1TkPcx1v2kLw|Pt@d<1FR-70-;oY7BIAzkTJAo#dhdwa#t1#$i#(ugCPGFKhRBw_pwvAj1IF<9|*@;rT&zl;nt8k9&wzt*MjQ;N8bg5O@(BfT77ul&6id?~>Z@H&pP+L_Uws(^p75z%7+ zwAgUA7d{PEp}tikTu;KbUW4EROiBpE^q35&#G;r#!DF^RCR!F#>du5`(`cbYlzz$B z?RS^!S`qprdN7_TO03Q`q0_1LKkvx^ z9%6~axC|XmD}0U%oXN0FJQO?OjFLhWZHN-|IxHV-Vu=Hr0HSsco+^MJ9-I?_%Z8YQ zs2_3DkW?6smxo-|zRWe>^=dvjbQsQRldHNA(ZjC8JyZ@~B#r#tfCX&^tR5aEtvA>x zu>34PthI3318Hzlwn}jP*0o%bt%LdA zm5=-_cRi%f@S@nG>^L9}drmaGM93(dnWLsSicl3n<2lqsP#cF_1P$PjBUcUA2#Uu1 zTonX!s61B>s|k7@?uhG^qx7Ig|54M)AEKwLvNSzlxyRKM5U~*F-t&_1@~9*j=Uw?o zp1N)Q+fy$JU(NFe0i9VEM1sER!k@|uA`d{%P_#v>m|}FKK%uK1YsFz>$3hZ8t(1@U zaW-5%E*TOybdR8L4q0bMV!`<7@Cj=iF9Y~1R*VY3+b{h9yRdP>Kw9^hnCVW_C!Ro3 z9XTZut=)<{EoN3WkxDO=ZT`zf8Cn15f=w_R+Y7b|TjluC7t# z)e=drh+F-4<|-@{U^{i(RQQp7K8MP01}2R)u^#XA1sIIO=cNfB`?8XGnMG z+-Sv{%R|7yA@hn55-8%v5p;k<{m1*^`W30dh7htS3_DgRHII3R@)I4l!GgL4MttQ% zIa)t7Yic<~BU091^iaNq{d{Lmxl&Wf={_R;lS5rQ7nGYdxtyZrlzAeB)tBo)SZBfJ zibQhY!}cI7UoA)T${4szi64xwtlR@ll<6i+z!gw}2Qdg<<&>ONdbAj{=)20MInr(G z+8;gC1h|d1)hWnU1#8#ZyG>p@w2NUNF=S~La++2&YRwi8Ene{X6dP9GfpjcbW5wf@ zW8gT4($_@7B7)YCeKaVv?gVy^G)myqwdZ7k)IKSWg!A5DT(18-V%GIkzB|1ES8~TL z-|b1JAuz@RMWJqEI6Pii70R+UsueU4n=5)Nb)t18RouGj%?9c|(9_1g+Z+o}$zaQE zAjt>k#G?P!*)R(;BaHa*)+(ye>K%*l;6ICqTD{YP<7*_%`1sB?F0jSzn1Yh8ieGYiLt45ml-GWpKtOZ;5XA86C&k*GJ;(=Bg5kYk? z1M}ipd0jogXC8SvoPEduPVTdxZ^;#6Gm-0Y%b^!k!+1C)TI>igV|o_N@%jjOMCK1g z$B};cWqlFs6_2HoF6LLa@i^gd8muA)8}2@QRv4wjr47jthII`w;z;28_6XBuw8?5b z%P&@&<0ZUtx$k5&eC z)|2rX#*a*wV3%w1Wsk#RVI$Ul5r%tDhG{3qaRy(`Fq)1Oioc)SrWwbvf`~0x;Po>$ zpEAQad~oV@%~npQi>Aw!f3}M*Hn-x_Rdi=)+ZL#%na}CuQhsa&9_nd?v=}xbVp=k zwU_9=@&lDMANFBlLc;(-At>BIa=$M`?YISV-!Tc4bp5ZSXusp4x~65x6(7)j!*P_G zBD=$ZRabApoM*j(_1AK=+3tr*fXI{`FOD0^Ut-cc&$ZxP&bQocyqn(5aZR^ByvB@_&))ZwDf2!=G)!Rw-oUliOqQXMoxqyPETa<7s<;tVw&8@ZppZ7@@{r{MuEw<*}EBAfMoXOOB@y~j1M+*^9Hgo_HB+8T*l1!d^3xv c3X?FBL0`ZIaWXZVinp7JGj2B(XA*M&0LF$lI{*Lx delta 284 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 delta 5389 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 diff --git a/_module/nss/nwnx_admin.nss b/_module/nss/nwnx_admin.nss index 7cd016e5..86cb319a 100644 --- a/_module/nss/nwnx_admin.nss +++ b/_module/nss/nwnx_admin.nss @@ -2,7 +2,6 @@ /// @brief Various admin related functions /// @{ /// @file nwnx_admin.nss -#include "nwnx" const string NWNX_Administration = "NWNX_Administration"; ///< @private @@ -179,213 +178,161 @@ void NWNX_Administration_SetMaxLevel(int nLevel); string NWNX_Administration_GetPlayerPassword() { - string sFunc = "GetPlayerPassword"; - - NWNX_CallFunction(NWNX_Administration, sFunc); - return NWNX_GetReturnValueString(); + NWNXCall(NWNX_Administration, "GetPlayerPassword"); + return NWNXPopString(); } void NWNX_Administration_SetPlayerPassword(string password) { - string sFunc = "SetPlayerPassword"; - - NWNX_PushArgumentString(password); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(password); + NWNXCall(NWNX_Administration, "SetPlayerPassword"); } void NWNX_Administration_ClearPlayerPassword() { - string sFunc = "ClearPlayerPassword"; - - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXCall(NWNX_Administration, "ClearPlayerPassword"); } string NWNX_Administration_GetDMPassword() { - string sFunc = "GetDMPassword"; - - NWNX_CallFunction(NWNX_Administration, sFunc); - return NWNX_GetReturnValueString(); + NWNXCall(NWNX_Administration, "GetDMPassword"); + return NWNXPopString(); } void NWNX_Administration_SetDMPassword(string password) { - string sFunc = "SetDMPassword"; - - NWNX_PushArgumentString(password); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(password); + NWNXCall(NWNX_Administration, "SetDMPassword"); } void NWNX_Administration_ShutdownServer() { - string sFunc = "ShutdownServer"; - - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXCall(NWNX_Administration, "ShutdownServer"); } void NWNX_Administration_DeletePlayerCharacter(object oPC, int bPreserveBackup = TRUE, string sKickMessage = "") { - string sFunc = "DeletePlayerCharacter"; - - NWNX_PushArgumentString(sKickMessage); - NWNX_PushArgumentInt(bPreserveBackup); - NWNX_PushArgumentObject(oPC); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(sKickMessage); + NWNXPushInt(bPreserveBackup); + NWNXPushObject(oPC); + NWNXCall(NWNX_Administration, "DeletePlayerCharacter"); } void NWNX_Administration_AddBannedIP(string ip) { - string sFunc = "AddBannedIP"; - - NWNX_PushArgumentString(ip); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(ip); + NWNXCall(NWNX_Administration, "AddBannedIP"); } void NWNX_Administration_RemoveBannedIP(string ip) { - string sFunc = "RemoveBannedIP"; - - NWNX_PushArgumentString(ip); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(ip); + NWNXCall(NWNX_Administration, "RemoveBannedIP"); } void NWNX_Administration_AddBannedCDKey(string key) { - string sFunc = "AddBannedCDKey"; - - NWNX_PushArgumentString(key); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(key); + NWNXCall(NWNX_Administration, "AddBannedCDKey"); } void NWNX_Administration_RemoveBannedCDKey(string key) { - string sFunc = "RemoveBannedCDKey"; - - NWNX_PushArgumentString(key); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(key); + NWNXCall(NWNX_Administration, "RemoveBannedCDKey"); } void NWNX_Administration_AddBannedPlayerName(string playerName) { - string sFunc = "AddBannedPlayerName"; - - NWNX_PushArgumentString(playerName); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(playerName); + NWNXCall(NWNX_Administration, "AddBannedPlayerName"); } void NWNX_Administration_RemoveBannedPlayerName(string playerName) { - string sFunc = "RemoveBannedPlayerName"; - - NWNX_PushArgumentString(playerName); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(playerName); + NWNXCall(NWNX_Administration, "RemoveBannedPlayerName"); } string NWNX_Administration_GetBannedList() { - string sFunc = "GetBannedList"; - - NWNX_CallFunction(NWNX_Administration, sFunc); - return NWNX_GetReturnValueString(); + NWNXCall(NWNX_Administration, "GetBannedList"); + return NWNXPopString(); } void NWNX_Administration_SetModuleName(string name) { - string sFunc = "SetModuleName"; - - NWNX_PushArgumentString(name); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(name); + NWNXCall(NWNX_Administration, "SetModuleName"); } void NWNX_Administration_SetServerName(string name) { - string sFunc = "SetServerName"; - - NWNX_PushArgumentString(name); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(name); + NWNXCall(NWNX_Administration, "SetServerName"); } string NWNX_Administration_GetServerName() { - string sFunc = "GetServerName"; - NWNX_CallFunction(NWNX_Administration, sFunc); - return NWNX_GetReturnValueString(); + NWNXCall(NWNX_Administration, "GetServerName"); + return NWNXPopString(); } int NWNX_Administration_GetPlayOption(int option) { - string sFunc = "GetPlayOption"; - - NWNX_PushArgumentInt(option); - NWNX_CallFunction(NWNX_Administration, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(option); + NWNXCall(NWNX_Administration, "GetPlayOption"); + return NWNXPopInt(); } void NWNX_Administration_SetPlayOption(int option, int value) { - string sFunc = "SetPlayOption"; - - NWNX_PushArgumentInt(value); - NWNX_PushArgumentInt(option); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushInt(value); + NWNXPushInt(option); + NWNXCall(NWNX_Administration, "SetPlayOption"); } int NWNX_Administration_DeleteTURD(string playerName, string characterName) { - string sFunc = "DeleteTURD"; - - NWNX_PushArgumentString(characterName); - NWNX_PushArgumentString(playerName); - NWNX_CallFunction(NWNX_Administration, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushString(characterName); + NWNXPushString(playerName); + NWNXCall(NWNX_Administration, "DeleteTURD"); + return NWNXPopInt(); } int NWNX_Administration_GetDebugValue(int type) { - string sFunc = "GetDebugValue"; - - NWNX_PushArgumentInt(type); - NWNX_CallFunction(NWNX_Administration, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(type); + NWNXCall(NWNX_Administration, "GetDebugValue"); + return NWNXPopInt(); } void NWNX_Administration_SetDebugValue(int type, int state) { - string sFunc = "SetDebugValue"; - - NWNX_PushArgumentInt(state); - NWNX_PushArgumentInt(type); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushInt(state); + NWNXPushInt(type); + NWNXCall(NWNX_Administration, "SetDebugValue"); } void NWNX_Administration_ReloadRules() { - string sFunc = "ReloadRules"; - - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXCall(NWNX_Administration, "ReloadRules"); } int NWNX_Administration_GetMinLevel() { - string sFunc = "GetMinLevel"; - NWNX_CallFunction(NWNX_Administration, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Administration, "GetMinLevel"); + return NWNXPopInt(); } void NWNX_Administration_SetMinLevel(int nLevel) { - string sFunc = "SetMinLevel"; - NWNX_PushArgumentInt(nLevel); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushInt(nLevel); + NWNXCall(NWNX_Administration, "SetMinLevel"); } int NWNX_Administration_GetMaxLevel() { - string sFunc = "GetMaxLevel"; - NWNX_CallFunction(NWNX_Administration, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Administration, "GetMaxLevel"); + return NWNXPopInt(); } void NWNX_Administration_SetMaxLevel(int nLevel) { - string sFunc = "SetMaxLevel"; - NWNX_PushArgumentInt(nLevel); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushInt(nLevel); + NWNXCall(NWNX_Administration, "SetMaxLevel"); } diff --git a/_module/nss/nwnx_appearance.nss b/_module/nss/nwnx_appearance.nss index 9e8ed1fd..4c85eb14 100644 --- a/_module/nss/nwnx_appearance.nss +++ b/_module/nss/nwnx_appearance.nss @@ -2,7 +2,6 @@ /// @brief Allows the appearance and some other things of creatures to be overridden per player. /// @{ /// @file nwnx_appearance.nss -#include "nwnx" const string NWNX_Appearance = "NWNX_Appearance"; ///< @private @@ -49,25 +48,18 @@ int NWNX_Appearance_GetOverride(object oPlayer, object oCreature, int nType); void NWNX_Appearance_SetOverride(object oPlayer, object oCreature, int nType, int nValue) { - string sFunc = "SetOverride"; - - NWNX_PushArgumentInt(nValue); - NWNX_PushArgumentInt(nType); - NWNX_PushArgumentObject(oCreature); - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Appearance, sFunc); + NWNXPushInt(nValue); + NWNXPushInt(nType); + NWNXPushObject(oCreature); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Appearance, "SetOverride"); } int NWNX_Appearance_GetOverride(object oPlayer, object oCreature, int nType) { - string sFunc = "GetOverride"; - - NWNX_PushArgumentInt(nType); - NWNX_PushArgumentObject(oCreature); - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Appearance, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(nType); + NWNXPushObject(oCreature); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Appearance, "GetOverride"); + return NWNXPopInt(); } diff --git a/_module/nss/nwnx_area.nss b/_module/nss/nwnx_area.nss index cfb90add..d096c8a4 100644 --- a/_module/nss/nwnx_area.nss +++ b/_module/nss/nwnx_area.nss @@ -2,7 +2,6 @@ /// @brief Functions exposing additional area properties as well as creating transitions. /// @{ /// @file nwnx_area.nss -#include "nwnx" const string NWNX_Area = "NWNX_Area"; ///< @private @@ -353,536 +352,396 @@ void NWNX_Area_SetDefaultObjectUiDiscoveryMask(object oArea, int nObjectTypes, i int NWNX_Area_GetNumberOfPlayersInArea(object area) { - string sFunc = "GetNumberOfPlayersInArea"; - - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetNumberOfPlayersInArea"); + return NWNXPopInt(); } object NWNX_Area_GetLastEntered(object area) { - string sFunc = "GetLastEntered"; - - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueObject(); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetLastEntered"); + return NWNXPopObject(); } object NWNX_Area_GetLastLeft(object area) { - string sFunc = "GetLastLeft"; - - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueObject(); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetLastLeft"); + return NWNXPopObject(); } int NWNX_Area_GetPVPSetting(object area) { - string sFunc = "GetPVPSetting"; - - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetPVPSetting"); + return NWNXPopInt(); } void NWNX_Area_SetPVPSetting(object area, int pvpSetting) { - string sFunc = "SetPVPSetting"; - - NWNX_PushArgumentInt(pvpSetting); - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(pvpSetting); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetPVPSetting"); } int NWNX_Area_GetAreaSpotModifier(object area) { - string sFunc = "GetAreaSpotModifier"; - - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetAreaSpotModifier"); + return NWNXPopInt(); } void NWNX_Area_SetAreaSpotModifier(object area, int spotModifier) { - string sFunc = "SetAreaSpotModifier"; - - NWNX_PushArgumentInt(spotModifier); - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(spotModifier); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetAreaSpotModifier"); } int NWNX_Area_GetAreaListenModifier(object area) { - string sFunc = "GetAreaListenModifier"; - - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetAreaListenModifier"); + return NWNXPopInt(); } void NWNX_Area_SetAreaListenModifier(object area, int listenModifier) { - string sFunc = "SetAreaListenModifier"; - - NWNX_PushArgumentInt(listenModifier); - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(listenModifier); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetAreaListenModifier"); } int NWNX_Area_GetNoRestingAllowed(object area) { - string sFunc = "GetNoRestingAllowed"; - - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetNoRestingAllowed"); + return NWNXPopInt(); } void NWNX_Area_SetNoRestingAllowed(object area, int bNoRestingAllowed) { - string sFunc = "SetNoRestingAllowed"; - - NWNX_PushArgumentInt(bNoRestingAllowed); - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(bNoRestingAllowed); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetNoRestingAllowed"); } int NWNX_Area_GetWindPower(object area) { - string sFunc = "GetWindPower"; - - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetWindPower"); + return NWNXPopInt(); } void NWNX_Area_SetWindPower(object area, int windPower) { - string sFunc = "SetWindPower"; - - NWNX_PushArgumentInt(windPower); - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(windPower); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetWindPower"); } int NWNX_Area_GetWeatherChance(object area, int type) { - string sFunc = "GetWeatherChance"; - - NWNX_PushArgumentInt(type); - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(type); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetWeatherChance"); + return NWNXPopInt(); } void NWNX_Area_SetWeatherChance(object area, int type, int chance) { - string sFunc = "SetWeatherChance"; - - NWNX_PushArgumentInt(chance); - NWNX_PushArgumentInt(type); - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(chance); + NWNXPushInt(type); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetWeatherChance"); } float NWNX_Area_GetFogClipDistance(object area) { - string sFunc = "GetFogClipDistance"; - - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueFloat(); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetFogClipDistance"); + return NWNXPopFloat(); } void NWNX_Area_SetFogClipDistance(object area, float distance) { - string sFunc = "SetFogClipDistance"; - - NWNX_PushArgumentFloat(distance); - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushFloat(distance); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetFogClipDistance"); } int NWNX_Area_GetShadowOpacity(object area) { - string sFunc = "GetShadowOpacity"; - - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetShadowOpacity"); + return NWNXPopInt(); } void NWNX_Area_SetShadowOpacity(object area, int shadowOpacity) { - string sFunc = "SetShadowOpacity"; - - NWNX_PushArgumentInt(shadowOpacity); - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(shadowOpacity); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetShadowOpacity"); } int NWNX_Area_GetDayNightCycle(object area) { - string sFunc = "GetDayNightCycle"; - - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetDayNightCycle"); + return NWNXPopInt(); } void NWNX_Area_SetDayNightCycle(object area, int type) { - string sFunc = "SetDayNightCycle"; - - NWNX_PushArgumentInt(type); - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(type); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetDayNightCycle"); } int NWNX_Area_GetSunMoonColors(object area, int type) { - string sFunc = "GetSunMoonColors"; - - NWNX_PushArgumentInt(type); - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(type); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetSunMoonColors"); + return NWNXPopInt(); } void NWNX_Area_SetSunMoonColors(object area, int type, int color) { - string sFunc = "SetSunMoonColors"; - - NWNX_PushArgumentInt(color); - NWNX_PushArgumentInt(type); - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(color); + NWNXPushInt(type); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetSunMoonColors"); } object NWNX_Area_CreateTransition(object area, object target, float x, float y, float z, float size = 2.0f, string tag="") { - string sFunc = "CreateTransition"; - - NWNX_PushArgumentString(tag); - NWNX_PushArgumentFloat(size); - NWNX_PushArgumentFloat(z); - NWNX_PushArgumentFloat(y); - NWNX_PushArgumentFloat(x); - NWNX_PushArgumentObject(target); - NWNX_PushArgumentObject(area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueObject(); + NWNXPushString(tag); + NWNXPushFloat(size); + NWNXPushFloat(z); + NWNXPushFloat(y); + NWNXPushFloat(x); + NWNXPushObject(target); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "CreateTransition"); + return NWNXPopObject(); } int NWNX_Area_GetTileAnimationLoop(object oArea, float fTileX, float fTileY, int nAnimLoop) { - string sFunc = "GetTileAnimationLoop"; + NWNXPushInt(nAnimLoop); + NWNXPushFloat(fTileY); + NWNXPushFloat(fTileX); + NWNXPushObject(oArea); - NWNX_PushArgumentInt(nAnimLoop); - NWNX_PushArgumentFloat(fTileY); - NWNX_PushArgumentFloat(fTileX); - NWNX_PushArgumentObject(oArea); - - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Area, "GetTileAnimationLoop"); + return NWNXPopInt(); } void NWNX_Area_SetTileAnimationLoop(object oArea, float fTileX, float fTileY, int nAnimLoop, int bEnabled) { - string sFunc = "SetTileAnimationLoop"; - - NWNX_PushArgumentInt(bEnabled); - NWNX_PushArgumentInt(nAnimLoop); - NWNX_PushArgumentFloat(fTileY); - NWNX_PushArgumentFloat(fTileX); - NWNX_PushArgumentObject(oArea); - - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(bEnabled); + NWNXPushInt(nAnimLoop); + NWNXPushFloat(fTileY); + NWNXPushFloat(fTileX); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "SetTileAnimationLoop"); } string NWNX_Area_GetTileModelResRef(object oArea, float fTileX, float fTileY) { - string sFunc = "GetTileModelResRef"; - NWNX_PushArgumentFloat(fTileY); - NWNX_PushArgumentFloat(fTileX); - NWNX_PushArgumentObject(oArea); - - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueString(); + NWNXPushFloat(fTileY); + NWNXPushFloat(fTileX); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetTileModelResRef"); + return NWNXPopString(); } int NWNX_Area_TestDirectLine(object oArea, float fStartX, float fStartY, float fEndX, float fEndY, float fPerSpace, float fHeight, int bIgnoreDoors=FALSE) { - string sFunc = "TestDirectLine"; - - NWNX_PushArgumentInt(bIgnoreDoors); - NWNX_PushArgumentFloat(fHeight); - NWNX_PushArgumentFloat(fPerSpace); - NWNX_PushArgumentFloat(fEndY); - NWNX_PushArgumentFloat(fEndX); - NWNX_PushArgumentFloat(fStartY); - NWNX_PushArgumentFloat(fStartX); - NWNX_PushArgumentObject(oArea); - - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(bIgnoreDoors); + NWNXPushFloat(fHeight); + NWNXPushFloat(fPerSpace); + NWNXPushFloat(fEndY); + NWNXPushFloat(fEndX); + NWNXPushFloat(fStartY); + NWNXPushFloat(fStartX); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "TestDirectLine"); + return NWNXPopInt(); } int NWNX_Area_GetMusicIsPlaying(object oArea, int bBattleMusic = FALSE) { - string sFunc = "GetMusicIsPlaying"; - - NWNX_PushArgumentInt(bBattleMusic); - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(bBattleMusic); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetMusicIsPlaying"); + return NWNXPopInt(); } object NWNX_Area_CreateGenericTrigger(object oArea, float fX, float fY, float fZ, string sTag = "", float fSize = 1.0f) { - string sFunc = "CreateGenericTrigger"; - - NWNX_PushArgumentFloat(fSize); - NWNX_PushArgumentString(sTag); - NWNX_PushArgumentFloat(fZ); - NWNX_PushArgumentFloat(fY); - NWNX_PushArgumentFloat(fX); - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueObject(); + NWNXPushFloat(fSize); + NWNXPushString(sTag); + NWNXPushFloat(fZ); + NWNXPushFloat(fY); + NWNXPushFloat(fX); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "CreateGenericTrigger"); + return NWNXPopObject(); } void NWNX_Area_AddObjectToExclusionList(object oObject) { - string sFunc = "AddObjectToExclusionList"; - - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushObject(oObject); + NWNXCall(NWNX_Area, "AddObjectToExclusionList"); } void NWNX_Area_RemoveObjectFromExclusionList(object oObject) { - string sFunc = "RemoveObjectFromExclusionList"; - - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushObject(oObject); + NWNXCall(NWNX_Area, "RemoveObjectFromExclusionList"); } int NWNX_Area_ExportGIT(object oArea, string sFileName = "", int bExportVarTable = TRUE, int bExportUUID = TRUE, int nObjectFilter = 0, string sAlias = "NWNX") { - string sFunc = "ExportGIT"; - - NWNX_PushArgumentString(sAlias); - NWNX_PushArgumentInt(nObjectFilter); - NWNX_PushArgumentInt(bExportUUID); - NWNX_PushArgumentInt(bExportVarTable); - NWNX_PushArgumentString(sFileName); - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushString(sAlias); + NWNXPushInt(nObjectFilter); + NWNXPushInt(bExportUUID); + NWNXPushInt(bExportVarTable); + NWNXPushString(sFileName); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "ExportGIT"); + return NWNXPopInt(); } struct NWNX_Area_TileInfo NWNX_Area_GetTileInfo(object oArea, float fTileX, float fTileY) { - string sFunc = "GetTileInfo"; - - NWNX_PushArgumentFloat(fTileY); - NWNX_PushArgumentFloat(fTileX); - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - + NWNXPushFloat(fTileY); + NWNXPushFloat(fTileX); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetTileInfo"); struct NWNX_Area_TileInfo str; - - str.nGridY = NWNX_GetReturnValueInt(); - str.nGridX = NWNX_GetReturnValueInt(); - str.nOrientation = NWNX_GetReturnValueInt(); - str.nHeight = NWNX_GetReturnValueInt(); - str.nID = NWNX_GetReturnValueInt(); - + str.nGridY = NWNXPopInt(); + str.nGridX = NWNXPopInt(); + str.nOrientation = NWNXPopInt(); + str.nHeight = NWNXPopInt(); + str.nID = NWNXPopInt(); return str; } int NWNX_Area_ExportARE(object oArea, string sFileName, string sNewName = "", string sNewTag = "", string sAlias = "NWNX") { - string sFunc = "ExportARE"; - - NWNX_PushArgumentString(sAlias); - NWNX_PushArgumentString(sNewTag); - NWNX_PushArgumentString(sNewName); - NWNX_PushArgumentString(sFileName); - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushString(sAlias); + NWNXPushString(sNewTag); + NWNXPushString(sNewName); + NWNXPushString(sFileName); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "ExportARE"); + return NWNXPopInt(); } int NWNX_Area_GetAmbientSoundDay(object oArea) { - string sFunc = "GetAmbientSoundDay"; - - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetAmbientSoundDay"); + return NWNXPopInt(); } int NWNX_Area_GetAmbientSoundNight(object oArea) { - string sFunc = "GetAmbientSoundNight"; - - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetAmbientSoundNight"); + return NWNXPopInt(); } int NWNX_Area_GetAmbientSoundDayVolume(object oArea) { - string sFunc = "GetAmbientSoundDayVolume"; - - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetAmbientSoundDayVolume"); + return NWNXPopInt(); } int NWNX_Area_GetAmbientSoundNightVolume(object oArea) { - string sFunc = "GetAmbientSoundNightVolume"; - - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetAmbientSoundNightVolume"); + return NWNXPopInt(); } object NWNX_Area_CreateSoundObject(object oArea, vector vPosition, string sResRef) { - string sFunc = "CreateSoundObject"; - - NWNX_PushArgumentString(sResRef); - NWNX_PushArgumentFloat(vPosition.z); - NWNX_PushArgumentFloat(vPosition.y); - NWNX_PushArgumentFloat(vPosition.x); - NWNX_PushArgumentObject(oArea); - - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueObject(); + NWNXPushString(sResRef); + NWNXPushVector(vPosition); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "CreateSoundObject"); + return NWNXPopObject(); } void NWNX_Area_RotateArea(object oArea, int nRotation) { - string sFunc = "RotateArea"; - - NWNX_PushArgumentInt(nRotation); - NWNX_PushArgumentObject(oArea); - - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(nRotation); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "RotateArea"); } struct NWNX_Area_TileInfo NWNX_Area_GetTileInfoByTileIndex(object oArea, int nIndex) { - string sFunc = "GetTileInfoByTileIndex"; - - NWNX_PushArgumentInt(nIndex); - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - + NWNXPushInt(nIndex); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetTileInfoByTileIndex"); struct NWNX_Area_TileInfo str; - - str.nGridY = NWNX_GetReturnValueInt(); - str.nGridX = NWNX_GetReturnValueInt(); - str.nOrientation = NWNX_GetReturnValueInt(); - str.nHeight = NWNX_GetReturnValueInt(); - str.nID = NWNX_GetReturnValueInt(); - + str.nGridY = NWNXPopInt(); + str.nGridX = NWNXPopInt(); + str.nOrientation = NWNXPopInt(); + str.nHeight = NWNXPopInt(); + str.nID = NWNXPopInt(); return str; } int NWNX_Area_GetPathExists(object oArea, vector vStartPosition, vector vEndPosition, int nMaxDepth) { - string sFunc = "GetPathExists"; - - NWNX_PushArgumentInt(nMaxDepth); - NWNX_PushArgumentFloat(vEndPosition.y); - NWNX_PushArgumentFloat(vEndPosition.x); - NWNX_PushArgumentFloat(vStartPosition.y); - NWNX_PushArgumentFloat(vStartPosition.x); - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(nMaxDepth); + NWNXPushVector(vEndPosition); + NWNXPushVector(vStartPosition); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetPathExists"); + return NWNXPopInt(); } int NWNX_Area_GetAreaFlags(object oArea) { - string sFunc = "GetAreaFlags"; - - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetAreaFlags"); + return NWNXPopInt(); } void NWNX_Area_SetAreaFlags(object oArea, int nFlags) { - string sFunc = "SetAreaFlags"; - - NWNX_PushArgumentInt(nFlags); - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(nFlags); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "SetAreaFlags"); } struct NWNX_Area_AreaWind NWNX_Area_GetAreaWind(object oArea) { - string sFunc = "GetAreaWind"; struct NWNX_Area_AreaWind data; - - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - - data.fPitch = NWNX_GetReturnValueFloat(); - data.fYaw = NWNX_GetReturnValueFloat(); - data.fMagnitude = NWNX_GetReturnValueFloat(); - data.vDirection.x = NWNX_GetReturnValueFloat(); - data.vDirection.y = NWNX_GetReturnValueFloat(); - data.vDirection.z = NWNX_GetReturnValueFloat(); - + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetAreaWind"); + data.fPitch = NWNXPopFloat(); + data.fYaw = NWNXPopFloat(); + data.fMagnitude = NWNXPopFloat(); + data.vDirection = NWNXPopVector(); return data; } void NWNX_Area_SetDefaultObjectUiDiscoveryMask(object oArea, int nObjectTypes, int nMask, int bForceUpdate = FALSE) { - string sFunc = "SetDefaultObjectUiDiscoveryMask"; - - NWNX_PushArgumentInt(bForceUpdate); - NWNX_PushArgumentInt(nMask); - NWNX_PushArgumentInt(nObjectTypes); - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(bForceUpdate); + NWNXPushInt(nMask); + NWNXPushInt(nObjectTypes); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "SetDefaultObjectUiDiscoveryMask"); } diff --git a/_module/nss/nwnx_chat.nss b/_module/nss/nwnx_chat.nss index ffa12df1..538fb2b8 100644 --- a/_module/nss/nwnx_chat.nss +++ b/_module/nss/nwnx_chat.nss @@ -2,7 +2,6 @@ /// @brief Functions related to chat. /// @{ /// @file nwnx_chat.nss -#include "nwnx" const string NWNX_Chat = "NWNX_Chat"; ///< @private @@ -80,79 +79,61 @@ float NWNX_Chat_GetChatHearingDistance(object listener = OBJECT_INVALID, int cha int NWNX_Chat_SendMessage(int channel, string message, object sender = OBJECT_SELF, object target = OBJECT_INVALID) { - string sFunc = "SendMessage"; - - NWNX_PushArgumentObject(target); - NWNX_PushArgumentObject(sender); - NWNX_PushArgumentString(message); - NWNX_PushArgumentInt(channel); - NWNX_CallFunction(NWNX_Chat, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(target); + NWNXPushObject(sender); + NWNXPushString(message); + NWNXPushInt(channel); + NWNXCall(NWNX_Chat, "SendMessage"); + return NWNXPopInt(); } void NWNX_Chat_RegisterChatScript(string script) { - string sFunc = "RegisterChatScript"; - - NWNX_PushArgumentString(script); - NWNX_CallFunction(NWNX_Chat, sFunc); + NWNXPushString(script); + NWNXCall(NWNX_Chat, "RegisterChatScript"); } void NWNX_Chat_SkipMessage() { - string sFunc = "SkipMessage"; - - NWNX_CallFunction(NWNX_Chat, sFunc); + NWNXCall(NWNX_Chat, "SkipMessage"); } int NWNX_Chat_GetChannel() { - string sFunc = "GetChannel"; - - NWNX_CallFunction(NWNX_Chat, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Chat, "GetChannel"); + return NWNXPopInt(); } string NWNX_Chat_GetMessage() { - string sFunc = "GetMessage"; - - NWNX_CallFunction(NWNX_Chat, sFunc); - return NWNX_GetReturnValueString(); + NWNXCall(NWNX_Chat, "GetMessage"); + return NWNXPopString(); } object NWNX_Chat_GetSender() { - string sFunc = "GetSender"; - - NWNX_CallFunction(NWNX_Chat, sFunc); - return NWNX_GetReturnValueObject(); + NWNXCall(NWNX_Chat, "GetSender"); + return NWNXPopObject(); } object NWNX_Chat_GetTarget() { - string sFunc = "GetTarget"; - - NWNX_CallFunction(NWNX_Chat, sFunc); - return NWNX_GetReturnValueObject(); + NWNXCall(NWNX_Chat, "GetTarget"); + return NWNXPopObject(); } void NWNX_Chat_SetChatHearingDistance(float distance, object listener = OBJECT_INVALID, int channel = NWNX_CHAT_CHANNEL_PLAYER_TALK) { - string sFunc = "SetChatHearingDistance"; - - NWNX_PushArgumentInt(channel); - NWNX_PushArgumentObject(listener); - NWNX_PushArgumentFloat(distance); - NWNX_CallFunction(NWNX_Chat, sFunc); + NWNXPushInt(channel); + NWNXPushObject(listener); + NWNXPushFloat(distance); + NWNXCall(NWNX_Chat, "SetChatHearingDistance"); } float NWNX_Chat_GetChatHearingDistance(object listener = OBJECT_INVALID, int channel = NWNX_CHAT_CHANNEL_PLAYER_TALK) { - string sFunc = "GetChatHearingDistance"; - - NWNX_PushArgumentInt(channel); - NWNX_PushArgumentObject(listener); - NWNX_CallFunction(NWNX_Chat, sFunc); - return NWNX_GetReturnValueFloat(); + NWNXPushInt(channel); + NWNXPushObject(listener); + NWNXCall(NWNX_Chat, "GetChatHearingDistance"); + return NWNXPopFloat(); } diff --git a/_module/nss/nwnx_core.nss b/_module/nss/nwnx_core.nss new file mode 100644 index 00000000..74b02377 --- /dev/null +++ b/_module/nss/nwnx_core.nss @@ -0,0 +1,21 @@ +/// @addtogroup nwnx NWNX +/// @brief Core NWNX Functions. +/// @{ +/// @file nwnx_core.nss + +const string NWNX_Core = "NWNX_Core"; ///< @private + +/// @brief Determines if the given plugin exists and is enabled. +/// @param sPlugin The name of the plugin to check. This is the case sensitive plugin name as used by NWNXCall +/// @note Example usage: NWNX_PluginExists("NWNX_Creature"); +/// @return TRUE if the plugin exists and is enabled, otherwise FALSE. +int NWNX_Core_PluginExists(string sPlugin); + +/// @} + +int NWNX_Core_PluginExists(string sPlugin) +{ + NWNXPushString(sPlugin); + NWNXCall(NWNX_Core, "PluginExists"); + return NWNXPopInt(); +} diff --git a/_module/nss/nwnx_creature.nss b/_module/nss/nwnx_creature.nss index 275638f4..e921e191 100644 --- a/_module/nss/nwnx_creature.nss +++ b/_module/nss/nwnx_creature.nss @@ -2,7 +2,6 @@ /// @brief Functions exposing additional creature properties. /// @{ /// @file nwnx_creature.nss -#include "nwnx" const string NWNX_Creature = "NWNX_Creature"; ///< @private @@ -1007,660 +1006,511 @@ void NWNX_Creature_SetAbilityIncreaseByLevel(object oCreature, int nLevel, int n /// @return The maximum attack range for oCreature to oTarget float NWNX_Creature_GetMaxAttackRange(object oCreature, object oTarget); +/// @brief Returns the creature's multiclass limit. +/// @note Only works on player characters. +/// @param oCreature The creature object. Has to be a player character. +/// @return The PCs multiclass limit. Returns 0 if no limit is set. +int NWNX_Creature_GetMulticlassLimit(object oCreature); + +/// @brief Sets the creature's multiclass limit. +/// @note Only works on player characters and only for future level ups. +/// Classes already taken will continue to be available on level up. +/// The limit must be lower than the server limit set in ruleset.2da MULTICLASS_LIMIT. +/// Setting a value of 0 will remove the limit. +/// @param oCreature The creature object. Has to be a player character. +/// @param nLimit The multiclass limit. +/// @param bPersist Whether the limit should persist to the .bic file. +/// @note Persistence is enabled after a server reset by the first use of this function. +void NWNX_Creature_SetMulticlassLimit(object oCreature, int nLimit, int bPersist = FALSE); + /// @} void NWNX_Creature_AddFeat(object creature, int feat) { - string sFunc = "AddFeat"; - NWNX_PushArgumentInt(feat); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "AddFeat"); } void NWNX_Creature_AddFeatByLevel(object creature, int feat, int level) { - string sFunc = "AddFeatByLevel"; - - NWNX_PushArgumentInt(level); - NWNX_PushArgumentInt(feat); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(level); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "AddFeatByLevel"); } void NWNX_Creature_RemoveFeat(object creature, int feat) { - string sFunc = "RemoveFeat"; - NWNX_PushArgumentInt(feat); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "RemoveFeat"); } void NWNX_Creature_RemoveFeatByLevel(object creature, int feat, int level) { - string sFunc = "RemoveFeatByLevel"; - - NWNX_PushArgumentInt(level); - NWNX_PushArgumentInt(feat); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(level); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "RemoveFeatByLevel"); } int NWNX_Creature_GetKnowsFeat(object creature, int feat) { - string sFunc = "GetKnowsFeat"; - - NWNX_PushArgumentInt(feat); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetKnowsFeat"); + return NWNXPopInt(); } int NWNX_Creature_GetFeatCountByLevel(object creature, int level) { - string sFunc = "GetFeatCountByLevel"; - - NWNX_PushArgumentInt(level); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(level); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetFeatCountByLevel"); + return NWNXPopInt(); } int NWNX_Creature_GetFeatByLevel(object creature, int level, int index) { - string sFunc = "GetFeatByLevel"; - - NWNX_PushArgumentInt(index); - NWNX_PushArgumentInt(level); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(index); + NWNXPushInt(level); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetFeatByLevel"); + return NWNXPopInt(); } int NWNX_Creature_GetFeatCount(object creature) { - string sFunc = "GetFeatCount"; - - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetFeatCount"); + return NWNXPopInt(); } int NWNX_Creature_GetFeatGrantLevel(object creature, int feat) { - string sFunc = "GetFeatGrantLevel"; - - NWNX_PushArgumentInt(feat); - NWNX_PushArgumentObject(creature); - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetFeatGrantLevel"); + return NWNXPopInt(); } int NWNX_Creature_GetFeatByIndex(object creature, int index) { - string sFunc = "GetFeatByIndex"; - - NWNX_PushArgumentInt(index); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(index); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetFeatByIndex"); + return NWNXPopInt(); } int NWNX_Creature_GetMeetsFeatRequirements(object creature, int feat) { - string sFunc = "GetMeetsFeatRequirements"; - - NWNX_PushArgumentInt(feat); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetMeetsFeatRequirements"); + return NWNXPopInt(); } struct NWNX_Creature_SpecialAbility NWNX_Creature_GetSpecialAbility(object creature, int index) { - string sFunc = "GetSpecialAbility"; - struct NWNX_Creature_SpecialAbility ability; - - NWNX_PushArgumentInt(index); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - - ability.level = NWNX_GetReturnValueInt(); - ability.ready = NWNX_GetReturnValueInt(); - ability.id = NWNX_GetReturnValueInt(); - + NWNXPushInt(index); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetSpecialAbility"); + ability.level = NWNXPopInt(); + ability.ready = NWNXPopInt(); + ability.id = NWNXPopInt(); return ability; } int NWNX_Creature_GetSpecialAbilityCount(object creature) { - string sFunc = "GetSpecialAbilityCount"; - - NWNX_PushArgumentObject(creature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetSpecialAbilityCount"); + return NWNXPopInt(); } void NWNX_Creature_AddSpecialAbility(object creature, struct NWNX_Creature_SpecialAbility ability) { - string sFunc = "AddSpecialAbility"; - - NWNX_PushArgumentInt(ability.id); - NWNX_PushArgumentInt(ability.ready); - NWNX_PushArgumentInt(ability.level); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(ability.id); + NWNXPushInt(ability.ready); + NWNXPushInt(ability.level); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "AddSpecialAbility"); } void NWNX_Creature_RemoveSpecialAbility(object creature, int index) { - string sFunc = "RemoveSpecialAbility"; - - NWNX_PushArgumentInt(index); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(index); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "RemoveSpecialAbility"); } void NWNX_Creature_SetSpecialAbility(object creature, int index, struct NWNX_Creature_SpecialAbility ability) { - string sFunc = "SetSpecialAbility"; - - NWNX_PushArgumentInt(ability.id); - NWNX_PushArgumentInt(ability.ready); - NWNX_PushArgumentInt(ability.level); - NWNX_PushArgumentInt(index); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(ability.id); + NWNXPushInt(ability.ready); + NWNXPushInt(ability.level); + NWNXPushInt(index); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetSpecialAbility"); } int NWNX_Creature_GetClassByLevel(object creature, int level) { - string sFunc = "GetClassByLevel"; - - NWNX_PushArgumentInt(level); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(level); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetClassByLevel"); + return NWNXPopInt(); } void NWNX_Creature_SetBaseAC(object creature, int ac) { - string sFunc = "SetBaseAC"; - - NWNX_PushArgumentInt(ac); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(ac); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetBaseAC"); } int NWNX_Creature_GetBaseAC(object creature) { - string sFunc = "GetBaseAC"; - - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetBaseAC"); + return NWNXPopInt(); } void NWNX_Creature_SetRawAbilityScore(object creature, int ability, int value) { - string sFunc = "SetRawAbilityScore"; - - NWNX_PushArgumentInt(value); - NWNX_PushArgumentInt(ability); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(value); + NWNXPushInt(ability); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetRawAbilityScore"); } int NWNX_Creature_GetRawAbilityScore(object creature, int ability) { - string sFunc = "GetRawAbilityScore"; - - NWNX_PushArgumentInt(ability); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(ability); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetRawAbilityScore"); + return NWNXPopInt(); } void NWNX_Creature_ModifyRawAbilityScore(object creature, int ability, int modifier) { - string sFunc = "ModifyRawAbilityScore"; - - NWNX_PushArgumentInt(modifier); - NWNX_PushArgumentInt(ability); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(modifier); + NWNXPushInt(ability); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "ModifyRawAbilityScore"); } int NWNX_Creature_GetPrePolymorphAbilityScore(object creature, int ability) { - string sFunc = "GetPrePolymorphAbilityScore"; - - NWNX_PushArgumentInt(ability); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(ability); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetPrePolymorphAbilityScore"); + return NWNXPopInt(); } int NWNX_Creature_GetRemainingSpellSlots(object creature, int class, int level) { - string sFunc = "GetRemainingSpellSlots"; - - NWNX_PushArgumentInt(level); - NWNX_PushArgumentInt(class); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(level); + NWNXPushInt(class); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetRemainingSpellSlots"); + return NWNXPopInt(); } void NWNX_Creature_SetRemainingSpellSlots(object creature, int class, int level, int slots) { - string sFunc = "SetRemainingSpellSlots"; - - NWNX_PushArgumentInt(slots); - NWNX_PushArgumentInt(level); - NWNX_PushArgumentInt(class); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(slots); + NWNXPushInt(level); + NWNXPushInt(class); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetRemainingSpellSlots"); } void NWNX_Creature_RemoveKnownSpell(object creature, int class, int level, int spellId) { - string sFunc = "RemoveKnownSpell"; + NWNXPushInt(spellId); + NWNXPushInt(level); + NWNXPushInt(class); + NWNXPushObject(creature); - NWNX_PushArgumentInt(spellId); - NWNX_PushArgumentInt(level); - NWNX_PushArgumentInt(class); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXCall(NWNX_Creature, "RemoveKnownSpell"); } void NWNX_Creature_AddKnownSpell(object creature, int class, int level, int spellId) { - string sFunc = "AddKnownSpell"; - - NWNX_PushArgumentInt(spellId); - NWNX_PushArgumentInt(level); - NWNX_PushArgumentInt(class); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(spellId); + NWNXPushInt(level); + NWNXPushInt(class); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "AddKnownSpell"); } int NWNX_Creature_GetMaxSpellSlots(object creature, int class, int level) { - string sFunc = "GetMaxSpellSlots"; - - NWNX_PushArgumentInt(level); - NWNX_PushArgumentInt(class); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(level); + NWNXPushInt(class); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetMaxSpellSlots"); + return NWNXPopInt(); } int NWNX_Creature_GetMaxHitPointsByLevel(object creature, int level) { - string sFunc = "GetMaxHitPointsByLevel"; - - NWNX_PushArgumentInt(level); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(level); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetMaxHitPointsByLevel"); + return NWNXPopInt(); } void NWNX_Creature_SetMaxHitPointsByLevel(object creature, int level, int value) { - string sFunc = "SetMaxHitPointsByLevel"; - - NWNX_PushArgumentInt(value); - NWNX_PushArgumentInt(level); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(value); + NWNXPushInt(level); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetMaxHitPointsByLevel"); } void NWNX_Creature_SetMovementRate(object creature, int rate) { - string sFunc = "SetMovementRate"; - - NWNX_PushArgumentInt(rate); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(rate); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetMovementRate"); } float NWNX_Creature_GetMovementRateFactor(object creature) { - string sFunc = "GetMovementRateFactor"; - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueFloat(); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetMovementRateFactor"); + return NWNXPopFloat(); } void NWNX_Creature_SetMovementRateFactor(object creature, float factor) { - string sFunc = "SetMovementRateFactor"; - - NWNX_PushArgumentFloat(factor); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushFloat(factor); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetMovementRateFactor"); } float NWNX_Creature_GetMovementRateFactorCap(object creature) { - string sFunc = "GetMovementRateFactorCap"; - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueFloat(); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetMovementRateFactorCap"); + return NWNXPopFloat(); } void NWNX_Creature_SetMovementRateFactorCap(object creature, float cap) { - string sFunc = "SetMovementRateFactorCap"; - - NWNX_PushArgumentFloat(cap); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushFloat(cap); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetMovementRateFactorCap"); } void NWNX_Creature_SetAlignmentGoodEvil(object creature, int value) { - string sFunc = "SetAlignmentGoodEvil"; - - NWNX_PushArgumentInt(value); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(value); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetAlignmentGoodEvil"); } void NWNX_Creature_SetAlignmentLawChaos(object creature, int value) { - string sFunc = "SetAlignmentLawChaos"; - - NWNX_PushArgumentInt(value); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(value); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetAlignmentLawChaos"); } void NWNX_Creature_SetSkillRank(object creature, int skill, int rank) { - string sFunc = "SetSkillRank"; - NWNX_PushArgumentInt(rank); - NWNX_PushArgumentInt(skill); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(rank); + NWNXPushInt(skill); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetSkillRank"); } int NWNX_Creature_GetSkillRankByLevel(object creature, int skill, int level) { - string sFunc = "GetSkillRankByLevel"; - - NWNX_PushArgumentInt(level); - NWNX_PushArgumentInt(skill); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(level); + NWNXPushInt(skill); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetSkillRankByLevel"); + return NWNXPopInt(); } void NWNX_Creature_SetSkillRankByLevel(object creature, int skill, int rank, int level) { - string sFunc = "SetSkillRankByLevel"; - - NWNX_PushArgumentInt(level); - NWNX_PushArgumentInt(rank); - NWNX_PushArgumentInt(skill); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(level); + NWNXPushInt(rank); + NWNXPushInt(skill); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetSkillRankByLevel"); } void NWNX_Creature_SetClassByPosition(object creature, int position, int classID, int bUpdateLevels = TRUE) { - string sFunc = "SetClassByPosition"; - NWNX_PushArgumentInt(bUpdateLevels); - NWNX_PushArgumentInt(classID); - NWNX_PushArgumentInt(position); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bUpdateLevels); + NWNXPushInt(classID); + NWNXPushInt(position); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetClassByPosition"); } void NWNX_Creature_SetLevelByPosition(object creature, int position, int level) { - string sFunc = "SetLevelByPosition"; - NWNX_PushArgumentInt(level); - NWNX_PushArgumentInt(position); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(level); + NWNXPushInt(position); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetLevelByPosition"); } void NWNX_Creature_SetBaseAttackBonus(object creature, int bab) { - string sFunc = "SetBaseAttackBonus"; - NWNX_PushArgumentInt(bab); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bab); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetBaseAttackBonus"); } int NWNX_Creature_GetAttacksPerRound(object creature, int bBaseAPR = FALSE) { - string sFunc = "GetAttacksPerRound"; - NWNX_PushArgumentInt(bBaseAPR); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(bBaseAPR); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetAttacksPerRound"); + return NWNXPopInt(); } void NWNX_Creature_RestoreFeats(object creature) { - string sFunc = "RestoreFeats"; - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "RestoreFeats"); } void NWNX_Creature_RestoreSpecialAbilities(object creature) { - string sFunc = "RestoreSpecialAbilities"; - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "RestoreSpecialAbilities"); } void NWNX_Creature_RestoreItems(object creature) { - string sFunc = "RestoreItems"; - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "RestoreItems"); } void NWNX_Creature_SetSize(object creature, int size) { - string sFunc = "SetSize"; - NWNX_PushArgumentInt(size); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(size); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetSize"); } int NWNX_Creature_GetSkillPointsRemaining(object creature) { - string sFunc = "GetSkillPointsRemaining"; - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetSkillPointsRemaining"); + return NWNXPopInt(); } - void NWNX_Creature_SetSkillPointsRemaining(object creature, int skillpoints) { - string sFunc = "SetSkillPointsRemaining"; - NWNX_PushArgumentInt(skillpoints); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(skillpoints); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetSkillPointsRemaining"); } int NWNX_Creature_GetSkillPointsRemainingByLevel(object creature, int level) { - string sFunc = "GetSkillPointsRemainingByLevel"; - - NWNX_PushArgumentInt(level); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(level); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetSkillPointsRemainingByLevel"); + return NWNXPopInt(); } void NWNX_Creature_SetSkillPointsRemainingByLevel(object creature, int level, int value) { - string sFunc = "SetSkillPointsRemainingByLevel"; - - NWNX_PushArgumentInt(value); - NWNX_PushArgumentInt(level); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(value); + NWNXPushInt(level); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetSkillPointsRemainingByLevel"); } void NWNX_Creature_SetRacialType(object creature, int racialtype) { - string sFunc = "SetRacialType"; - NWNX_PushArgumentInt(racialtype); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(racialtype); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetRacialType"); } int NWNX_Creature_GetMovementType(object creature) { - string sFunc = "GetMovementType"; - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetMovementType"); + return NWNXPopInt(); } void NWNX_Creature_SetWalkRateCap(object creature, float fWalkRate = 2000.0f) { - string sFunc = "SetWalkRateCap"; - NWNX_PushArgumentFloat(fWalkRate); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushFloat(fWalkRate); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetWalkRateCap"); } void NWNX_Creature_SetGold(object creature, int gold) { - string sFunc = "SetGold"; - NWNX_PushArgumentInt(gold); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(gold); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetGold"); } void NWNX_Creature_SetCorpseDecayTime(object creature, int nDecayTime) { - string sFunc = "SetCorpseDecayTime"; - NWNX_PushArgumentInt(nDecayTime); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nDecayTime); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetCorpseDecayTime"); } - int NWNX_Creature_GetBaseSavingThrow(object creature, int which) { - string sFunc = "GetBaseSavingThrow"; - NWNX_PushArgumentInt(which); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(which); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetBaseSavingThrow"); + return NWNXPopInt(); } void NWNX_Creature_SetBaseSavingThrow(object creature, int which, int value) { - string sFunc = "SetBaseSavingThrow"; - NWNX_PushArgumentInt(value); - NWNX_PushArgumentInt(which); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(value); + NWNXPushInt(which); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetBaseSavingThrow"); } void NWNX_Creature_LevelUp(object creature, int class, int count = 1, int package = PACKAGE_INVALID) { - string sFunc = "LevelUp"; - NWNX_PushArgumentInt(package); - NWNX_PushArgumentInt(count); - NWNX_PushArgumentInt(class); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(package); + NWNXPushInt(count); + NWNXPushInt(class); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "LevelUp"); } void NWNX_Creature_LevelDown(object creature, int count=1) { - string sFunc = "LevelDown"; - NWNX_PushArgumentInt(count); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(count); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "LevelDown"); } void NWNX_Creature_SetChallengeRating(object creature, float fCR) { - string sFunc = "SetChallengeRating"; - NWNX_PushArgumentFloat(fCR); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushFloat(fCR); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetChallengeRating"); } int NWNX_Creature_GetAttackBonus(object creature, int isMelee = -1, int isTouchAttack = FALSE, int isOffhand = FALSE, int includeBaseAttackBonus = TRUE) { - string sFunc = "GetAttackBonus"; - if (isMelee == -1) { object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, creature); @@ -1674,940 +1524,727 @@ int NWNX_Creature_GetAttackBonus(object creature, int isMelee = -1, int isTouchA isMelee = TRUE; } } - - NWNX_PushArgumentInt(includeBaseAttackBonus); - NWNX_PushArgumentInt(isOffhand); - NWNX_PushArgumentInt(isTouchAttack); - NWNX_PushArgumentInt(isMelee); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(includeBaseAttackBonus); + NWNXPushInt(isOffhand); + NWNXPushInt(isTouchAttack); + NWNXPushInt(isMelee); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetAttackBonus"); + return NWNXPopInt(); } int NWNX_Creature_GetHighestLevelOfFeat(object creature, int feat) { - string sFunc = "GetHighestLevelOfFeat"; - - NWNX_PushArgumentInt(feat); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetHighestLevelOfFeat"); + return NWNXPopInt(); } int NWNX_Creature_GetFeatRemainingUses(object creature, int feat) { - string sFunc = "GetFeatRemainingUses"; - - NWNX_PushArgumentInt(feat); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetFeatRemainingUses"); + return NWNXPopInt(); } int NWNX_Creature_GetFeatTotalUses(object creature, int feat) { - string sFunc = "GetFeatTotalUses"; - - NWNX_PushArgumentInt(feat); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetFeatTotalUses"); + return NWNXPopInt(); } void NWNX_Creature_SetFeatRemainingUses(object creature, int feat, int uses) { - string sFunc = "SetFeatRemainingUses"; - - NWNX_PushArgumentInt(uses); - NWNX_PushArgumentInt(feat); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(uses); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetFeatRemainingUses"); } int NWNX_Creature_GetTotalEffectBonus(object creature, int bonusType=NWNX_CREATURE_BONUS_TYPE_ATTACK, object target=OBJECT_INVALID, int isElemental=0, int isForceMax=0, int savetype=-1, int saveSpecificType=-1, int skill=-1, int abilityScore=-1, int isOffhand=FALSE) { - string sFunc = "GetTotalEffectBonus"; - - NWNX_PushArgumentInt(isOffhand); - NWNX_PushArgumentInt(abilityScore); - NWNX_PushArgumentInt(skill); - NWNX_PushArgumentInt(saveSpecificType); - NWNX_PushArgumentInt(savetype); - NWNX_PushArgumentInt(isForceMax); - NWNX_PushArgumentInt(isElemental); - NWNX_PushArgumentObject(target); - NWNX_PushArgumentInt(bonusType); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(isOffhand); + NWNXPushInt(abilityScore); + NWNXPushInt(skill); + NWNXPushInt(saveSpecificType); + NWNXPushInt(savetype); + NWNXPushInt(isForceMax); + NWNXPushInt(isElemental); + NWNXPushObject(target); + NWNXPushInt(bonusType); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetTotalEffectBonus"); + return NWNXPopInt(); } void NWNX_Creature_SetOriginalName(object creature, string name, int isLastName) { - string sFunc = "SetOriginalName"; - - NWNX_PushArgumentInt(isLastName); - NWNX_PushArgumentString(name); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(isLastName); + NWNXPushString(name); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetOriginalName"); } string NWNX_Creature_GetOriginalName(object creature, int isLastName) { - string sFunc = "GetOriginalName"; - - NWNX_PushArgumentInt(isLastName); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushInt(isLastName); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetOriginalName"); + return NWNXPopString(); } void NWNX_Creature_SetSpellResistance(object creature, int sr) { - string sFunc = "SetSpellResistance"; - - NWNX_PushArgumentInt(sr); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(sr); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetSpellResistance"); } void NWNX_Creature_SetAnimalCompanionCreatureType(object creature, int type) { - string sFunc = "SetAnimalCompanionCreatureType"; - - NWNX_PushArgumentInt(type); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(type); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetAnimalCompanionCreatureType"); } void NWNX_Creature_SetFamiliarCreatureType(object creature, int type) { - string sFunc = "SetFamiliarCreatureType"; - - NWNX_PushArgumentInt(type); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(type); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetFamiliarCreatureType"); } void NWNX_Creature_SetAnimalCompanionName(object creature, string name) { - string sFunc = "SetAnimalCompanionName"; - - NWNX_PushArgumentString(name); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushString(name); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetAnimalCompanionName"); } void NWNX_Creature_SetFamiliarName(object creature, string name) { - string sFunc = "SetFamiliarName"; - - NWNX_PushArgumentString(name); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushString(name); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetFamiliarName"); } int NWNX_Creature_GetDisarmable(object creature) { - string sFunc = "GetDisarmable"; - - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetDisarmable"); + return NWNXPopInt(); } void NWNX_Creature_SetDisarmable(object creature, int disarmable) { - string sFunc = "SetDisarmable"; - - NWNX_PushArgumentInt(disarmable); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(disarmable); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetDisarmable"); } void NWNX_Creature_SetDomain(object creature, int class, int index, int domain) { - string sFunc = "SetDomain"; - - NWNX_PushArgumentInt(domain); - NWNX_PushArgumentInt(index); - NWNX_PushArgumentInt(class); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(domain); + NWNXPushInt(index); + NWNXPushInt(class); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetDomain"); } void NWNX_Creature_SetSpecialization(object creature, int class, int school) { - string sFunc = "SetSpecialization"; - - NWNX_PushArgumentInt(school); - NWNX_PushArgumentInt(class); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(school); + NWNXPushInt(class); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetSpecialization"); } void NWNX_Creature_SetFaction(object oCreature, int nFactionId) { - string sFunc = "SetFaction"; - NWNX_PushArgumentInt(nFactionId); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nFactionId); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetFaction"); } int NWNX_Creature_GetFaction(object oCreature) { - string sFunc = "GetFaction"; - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetFaction"); + return NWNXPopInt(); } int NWNX_Creature_GetFlatFooted(object oCreature) { - string sFunc = "GetFlatFooted"; - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetFlatFooted"); + return NWNXPopInt(); } string NWNX_Creature_SerializeQuickbar(object oCreature) { - string sFunc = "SerializeQuickbar"; - - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueString(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SerializeQuickbar"); + return NWNXPopString(); } int NWNX_Creature_DeserializeQuickbar(object oCreature, string sSerializedQuickbar) { - string sFunc = "DeserializeQuickbar"; - - NWNX_PushArgumentString(sSerializedQuickbar); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushString(sSerializedQuickbar); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "DeserializeQuickbar"); + return NWNXPopInt(); } void NWNX_Creature_SetCasterLevelModifier(object oCreature, int nClass, int nModifier, int bPersist = FALSE) { - string sFunc = "SetCasterLevelModifier"; - - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentInt(nModifier); - NWNX_PushArgumentInt(nClass); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bPersist); + NWNXPushInt(nModifier); + NWNXPushInt(nClass); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetCasterLevelModifier"); } int NWNX_Creature_GetCasterLevelModifier(object oCreature, int nClass) { - string sFunc = "GetCasterLevelModifier"; - - NWNX_PushArgumentInt(nClass); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(nClass); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetCasterLevelModifier"); + return NWNXPopInt(); } void NWNX_Creature_SetCasterLevelOverride(object oCreature, int nClass, int nCasterLevel, int bPersist = FALSE) { - string sFunc = "SetCasterLevelOverride"; - - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentInt(nCasterLevel); - NWNX_PushArgumentInt(nClass); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bPersist); + NWNXPushInt(nCasterLevel); + NWNXPushInt(nClass); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetCasterLevelOverride"); } int NWNX_Creature_GetCasterLevelOverride(object oCreature, int nClass) { - string sFunc = "GetCasterLevelOverride"; - - NWNX_PushArgumentInt(nClass); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(nClass); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetCasterLevelOverride"); + return NWNXPopInt(); } void NWNX_Creature_JumpToLimbo(object oCreature) { - string sFunc = "JumpToLimbo"; - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "JumpToLimbo"); } void NWNX_Creature_SetCriticalMultiplierModifier(object oCreature, int nModifier, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1) { - string sFunc = "SetCriticalMultiplierModifier"; - - NWNX_PushArgumentInt(nBaseItem); - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentInt(nHand); - NWNX_PushArgumentInt(nModifier); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nBaseItem); + NWNXPushInt(bPersist); + NWNXPushInt(nHand); + NWNXPushInt(nModifier); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetCriticalMultiplierModifier"); } int NWNX_Creature_GetCriticalMultiplierModifier(object oCreature, int nHand = 0, int nBaseItem = -1) { - string sFunc = "GetCriticalMultiplierModifier"; - - NWNX_PushArgumentInt(nBaseItem); - NWNX_PushArgumentInt(nHand); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(nBaseItem); + NWNXPushInt(nHand); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetCriticalMultiplierModifier"); + return NWNXPopInt(); } void NWNX_Creature_SetCriticalMultiplierOverride(object oCreature, int nOverride, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1) { - string sFunc = "SetCriticalMultiplierOverride"; - - NWNX_PushArgumentInt(nBaseItem); - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentInt(nHand); - NWNX_PushArgumentInt(nOverride); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nBaseItem); + NWNXPushInt(bPersist); + NWNXPushInt(nHand); + NWNXPushInt(nOverride); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetCriticalMultiplierOverride"); } int NWNX_Creature_GetCriticalMultiplierOverride(object oCreature, int nHand = 0, int nBaseItem = -1) { - string sFunc = "GetCriticalMultiplierOverride"; - - NWNX_PushArgumentInt(nBaseItem); - NWNX_PushArgumentInt(nHand); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(nBaseItem); + NWNXPushInt(nHand); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetCriticalMultiplierOverride"); + return NWNXPopInt(); } void NWNX_Creature_SetCriticalRangeModifier(object oCreature, int nModifier, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1) { - string sFunc = "SetCriticalRangeModifier"; - - NWNX_PushArgumentInt(nBaseItem); - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentInt(nHand); - NWNX_PushArgumentInt(nModifier); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nBaseItem); + NWNXPushInt(bPersist); + NWNXPushInt(nHand); + NWNXPushInt(nModifier); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetCriticalRangeModifier"); } int NWNX_Creature_GetCriticalRangeModifier(object oCreature, int nHand = 0, int nBaseItem = -1) { - string sFunc = "GetCriticalRangeModifier"; + NWNXPushInt(nBaseItem); + NWNXPushInt(nHand); + NWNXPushObject(oCreature); - NWNX_PushArgumentInt(nBaseItem); - NWNX_PushArgumentInt(nHand); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Creature, "GetCriticalRangeModifier"); + return NWNXPopInt(); } void NWNX_Creature_SetCriticalRangeOverride(object oCreature, int nOverride, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1) { - string sFunc = "SetCriticalRangeOverride"; - - NWNX_PushArgumentInt(nBaseItem); - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentInt(nHand); - NWNX_PushArgumentInt(nOverride); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nBaseItem); + NWNXPushInt(bPersist); + NWNXPushInt(nHand); + NWNXPushInt(nOverride); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetCriticalRangeOverride"); } int NWNX_Creature_GetCriticalRangeOverride(object oCreature, int nHand = 0, int nBaseItem = -1) { - string sFunc = "GetCriticalRangeOverride"; + NWNXPushInt(nBaseItem); + NWNXPushInt(nHand); + NWNXPushObject(oCreature); - NWNX_PushArgumentInt(nBaseItem); - NWNX_PushArgumentInt(nHand); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Creature, "GetCriticalRangeOverride"); + return NWNXPopInt(); } void NWNX_Creature_AddAssociate(object oCreature, object oAssociate, int nAssociateType) { - string sFunc = "AddAssociate"; + NWNXPushInt(nAssociateType); + NWNXPushObject(oAssociate); + NWNXPushObject(oCreature); - NWNX_PushArgumentInt(nAssociateType); - NWNX_PushArgumentObject(oAssociate); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXCall(NWNX_Creature, "AddAssociate"); } void NWNX_Creature_OverrideDamageLevel(object oCreature, int nDamageLevel) { - string sFunc = "OverrideDamageLevel"; - - NWNX_PushArgumentInt(nDamageLevel); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nDamageLevel); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "OverrideDamageLevel"); } void NWNX_Creature_SetEncounter(object oCreature, object oEncounter) { - string sFunc = "SetEncounter"; - - NWNX_PushArgumentObject(oEncounter); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushObject(oEncounter); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetEncounter"); } object NWNX_Creature_GetEncounter(object oCreature) { - string sFunc = "GetEncounter"; - - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueObject(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetEncounter"); + return NWNXPopObject(); } int NWNX_Creature_GetIsBartering(object oCreature) { - string sFunc = "GetIsBartering"; - - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetIsBartering"); + return NWNXPopInt(); } void NWNX_Creature_SetLastItemCasterLevel(object oCreature, int nCasterLvl) { - string sFunc = "SetLastItemCasterLevel"; - NWNX_PushArgumentInt(nCasterLvl); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nCasterLvl); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetLastItemCasterLevel"); } int NWNX_Creature_GetLastItemCasterLevel(object oCreature) { - string sFunc = "GetLastItemCasterLevel"; - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetLastItemCasterLevel"); + return NWNXPopInt(); } int NWNX_Creature_GetArmorClassVersus(object oAttacked, object oVersus, int nTouch=FALSE) { - string sFunc = "GetArmorClassVersus"; - NWNX_PushArgumentInt(nTouch); - NWNX_PushArgumentObject(oVersus); - NWNX_PushArgumentObject(oAttacked); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(nTouch); + NWNXPushObject(oVersus); + NWNXPushObject(oAttacked); + NWNXCall(NWNX_Creature, "GetArmorClassVersus"); + return NWNXPopInt(); } int NWNX_Creature_GetWalkAnimation(object oCreature) { - string sFunc = "GetWalkAnimation"; - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetWalkAnimation"); + return NWNXPopInt(); } void NWNX_Creature_SetWalkAnimation(object oCreature, int nAnimation) { - string sFunc = "SetWalkAnimation"; - NWNX_PushArgumentInt(nAnimation); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nAnimation); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetWalkAnimation"); } void NWNX_Creature_SetAttackRollOverride(object oCreature, int nRoll, int nModifier) { - string sFunc = "SetAttackRollOverride"; - NWNX_PushArgumentInt(nModifier); - NWNX_PushArgumentInt(nRoll); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nModifier); + NWNXPushInt(nRoll); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetAttackRollOverride"); } void NWNX_Creature_SetParryAllAttacks(object oCreature, int bParry) { - string sFunc = "SetParryAllAttacks"; - NWNX_PushArgumentInt(bParry); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bParry); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetParryAllAttacks"); } int NWNX_Creature_GetNoPermanentDeath(object oCreature) { - string sFunc = "GetNoPermanentDeath"; - - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetNoPermanentDeath"); + return NWNXPopInt(); } void NWNX_Creature_SetNoPermanentDeath(object oCreature, int bNoPermanentDeath) { - string sFunc = "SetNoPermanentDeath"; - - NWNX_PushArgumentInt(bNoPermanentDeath); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bNoPermanentDeath); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetNoPermanentDeath"); } vector NWNX_Creature_ComputeSafeLocation(object oCreature, vector vPosition, float fRadius = 20.0f, int bWalkStraightLineRequired = TRUE) { - string sFunc = "ComputeSafeLocation"; - - NWNX_PushArgumentInt(bWalkStraightLineRequired); - NWNX_PushArgumentFloat(fRadius); - NWNX_PushArgumentFloat(vPosition.x); - NWNX_PushArgumentFloat(vPosition.y); - NWNX_PushArgumentFloat(vPosition.z); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - vector v; - v.z = NWNX_GetReturnValueFloat(); - v.y = NWNX_GetReturnValueFloat(); - v.x = NWNX_GetReturnValueFloat(); - - return v; + NWNXPushInt(bWalkStraightLineRequired); + NWNXPushFloat(fRadius); + NWNXPushVector(vPosition); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "ComputeSafeLocation"); + return NWNXPopVector(); } void NWNX_Creature_DoPerceptionUpdateOnCreature(object oCreature, object oTargetCreature) { - string sFunc = "DoPerceptionUpdateOnCreature"; - - NWNX_PushArgumentObject(oTargetCreature); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushObject(oTargetCreature); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "DoPerceptionUpdateOnCreature"); } float NWNX_Creature_GetPersonalSpace(object oCreature) { - string sFunc = "GetPersonalSpace"; - - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueFloat(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetPersonalSpace"); + return NWNXPopFloat(); } void NWNX_Creature_SetPersonalSpace(object oCreature, float fPerspace) { - string sFunc = "SetPersonalSpace"; - - NWNX_PushArgumentFloat(fPerspace); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushFloat(fPerspace); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetPersonalSpace"); } float NWNX_Creature_GetCreaturePersonalSpace(object oCreature) { - string sFunc = "GetCreaturePersonalSpace"; - - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueFloat(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetCreaturePersonalSpace"); + return NWNXPopFloat(); } void NWNX_Creature_SetCreaturePersonalSpace(object oCreature, float fCrePerspace) { - string sFunc = "SetCreaturePersonalSpace"; - - NWNX_PushArgumentFloat(fCrePerspace); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushFloat(fCrePerspace); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetCreaturePersonalSpace"); } float NWNX_Creature_GetHeight(object oCreature) { - string sFunc = "GetHeight"; - - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueFloat(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetHeight"); + return NWNXPopFloat(); } void NWNX_Creature_SetHeight(object oCreature, float fHeight) { - string sFunc = "SetHeight"; - - NWNX_PushArgumentFloat(fHeight); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushFloat(fHeight); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetHeight"); } float NWNX_Creature_GetHitDistance(object oCreature) { - string sFunc = "GetHitDistance"; - - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueFloat(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetHitDistance"); + return NWNXPopFloat(); } void NWNX_Creature_SetHitDistance(object oCreature, float fHitDist) { - string sFunc = "SetHitDistance"; - - NWNX_PushArgumentFloat(fHitDist); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushFloat(fHitDist); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetHitDistance"); } float NWNX_Creature_GetPreferredAttackDistance(object oCreature) { - string sFunc = "GetPreferredAttackDistance"; - - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueFloat(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetPreferredAttackDistance"); + return NWNXPopFloat(); } void NWNX_Creature_SetPreferredAttackDistance(object oCreature, float fPrefAtckDist) { - string sFunc = "SetPreferredAttackDistance"; - - NWNX_PushArgumentFloat(fPrefAtckDist); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushFloat(fPrefAtckDist); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetPreferredAttackDistance"); } int NWNX_Creature_GetArmorCheckPenalty(object oCreature) { - string sFunc = "GetArmorCheckPenalty"; - - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetArmorCheckPenalty"); + return NWNXPopInt(); } int NWNX_Creature_GetShieldCheckPenalty(object oCreature) { - string sFunc = "GetShieldCheckPenalty"; - - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetShieldCheckPenalty"); + return NWNXPopInt(); } void NWNX_Creature_SetBypassEffectImmunity(object oCreature, int nImmunityType, int nChance = 100, int bPersist = FALSE) { - string sFunc = "SetBypassEffectImmunity"; - - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentInt(nChance); - NWNX_PushArgumentInt(nImmunityType); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bPersist); + NWNXPushInt(nChance); + NWNXPushInt(nImmunityType); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetBypassEffectImmunity"); } int NWNX_Creature_GetBypassEffectImmunity(object oCreature, int nImmunityType) { - string sFunc = "GetBypassEffectImmunity"; - - NWNX_PushArgumentInt(nImmunityType); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(nImmunityType); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetBypassEffectImmunity"); + return NWNXPopInt(); } void NWNX_Creature_SetLastKiller(object oCreature, object oKiller) { - string sFunc = "SetLastKiller"; - - NWNX_PushArgumentObject(oKiller); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushObject(oKiller); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetLastKiller"); } void NWNX_Creature_DoItemCastSpell(object oCreature, object oTarget, location locTarget, int nSpellID, int nCasterLevel, float fProjectileTime, int nProjectilePathType = PROJECTILE_PATH_TYPE_DEFAULT, int nProjectileSpellID = -1, object oItem = OBJECT_INVALID, string sImpactScript = "") { - string sFunc = "DoItemCastSpell"; - - object oArea = GetAreaFromLocation(locTarget); - vector vPosition = GetPositionFromLocation(locTarget); - - NWNX_PushArgumentString(sImpactScript); - NWNX_PushArgumentObject(oItem); - NWNX_PushArgumentInt(nProjectileSpellID); - NWNX_PushArgumentInt(nProjectilePathType); - NWNX_PushArgumentFloat(fProjectileTime); - NWNX_PushArgumentInt(nCasterLevel); - NWNX_PushArgumentInt(nSpellID); - NWNX_PushArgumentFloat(vPosition.z); - NWNX_PushArgumentFloat(vPosition.y); - NWNX_PushArgumentFloat(vPosition.x); - NWNX_PushArgumentObject(oArea); - NWNX_PushArgumentObject(oTarget); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushString(sImpactScript); + NWNXPushObject(oItem); + NWNXPushInt(nProjectileSpellID); + NWNXPushInt(nProjectilePathType); + NWNXPushFloat(fProjectileTime); + NWNXPushInt(nCasterLevel); + NWNXPushInt(nSpellID); + NWNXPushLocation(locTarget); + NWNXPushObject(oTarget); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "DoItemCastSpell"); } int NWNX_Creature_RunEquip(object oCreature, object oItem, int nInventorySlot) { - string sFunc = "RunEquip"; - - NWNX_PushArgumentInt(nInventorySlot); - NWNX_PushArgumentObject(oItem); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(nInventorySlot); + NWNXPushObject(oItem); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "RunEquip"); + return NWNXPopInt(); } int NWNX_Creature_RunUnequip(object oCreature, object oItem) { - string sFunc = "RunUnequip"; - - NWNX_PushArgumentObject(oItem); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oItem); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "RunUnequip"); + return NWNXPopInt(); } void NWNX_Creature_OverrideRangedProjectileVFX(object oCreature, int nProjectileVFX, int bPersist = FALSE) { - string sFunc = "OverrideRangedProjectileVFX"; - - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentInt(nProjectileVFX); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bPersist); + NWNXPushInt(nProjectileVFX); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "OverrideRangedProjectileVFX"); } void NWNX_Creature_SetInitiativeModifier(object oCreature, int nMod, int bPersist = FALSE) { - string sFunc = "SetInitiativeModifier"; - - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentInt(nMod); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bPersist); + NWNXPushInt(nMod); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetInitiativeModifier"); } int NWNX_Creature_GetInitiativeModifier(object oCreature) { - string sFunc = "GetInitiativeModifier"; - - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetInitiativeModifier"); + return NWNXPopInt(); } object NWNX_Creature_GetBodyBag(object oCreature) { - string sFunc = "GetBodyBag"; - - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueObject(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetBodyBag"); + return NWNXPopObject(); } int NWNX_Creature_AddCastSpellActions(object oCreature, object oTarget, vector vTargetLocation, int nSpellID, int nMultiClass, int nMetaMagic = METAMAGIC_NONE, int nDomainLevel = 0, int nProjectilePathType = PROJECTILE_PATH_TYPE_DEFAULT, int bInstant = FALSE, int bClearActions = FALSE, int bAddToFront = FALSE) { - string sFunc = "AddCastSpellActions"; - - NWNX_PushArgumentInt(bAddToFront); - NWNX_PushArgumentInt(bClearActions); - NWNX_PushArgumentInt(bInstant); - NWNX_PushArgumentInt(nProjectilePathType); - NWNX_PushArgumentInt(nDomainLevel); - NWNX_PushArgumentInt(nMetaMagic); - NWNX_PushArgumentInt(nMultiClass); - NWNX_PushArgumentInt(nSpellID); - NWNX_PushArgumentFloat(vTargetLocation.z); - NWNX_PushArgumentFloat(vTargetLocation.y); - NWNX_PushArgumentFloat(vTargetLocation.x); - NWNX_PushArgumentObject(oTarget); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(bAddToFront); + NWNXPushInt(bClearActions); + NWNXPushInt(bInstant); + NWNXPushInt(nProjectilePathType); + NWNXPushInt(nDomainLevel); + NWNXPushInt(nMetaMagic); + NWNXPushInt(nMultiClass); + NWNXPushInt(nSpellID); + NWNXPushVector(vTargetLocation); + NWNXPushObject(oTarget); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "AddCastSpellActions"); + return NWNXPopInt(); } int NWNX_Creature_GetIsFlanking(object oCreature, object oTargetCreature) { - string sFunc = "GetIsFlanking"; - - NWNX_PushArgumentObject(oTargetCreature); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oTargetCreature); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetIsFlanking"); + return NWNXPopInt(); } void NWNX_Creature_DecrementRemainingSpellSlots(object oCreature, int nClass, int nSpellLevel) { - string sFunc = "DecrementRemainingSpellSlots"; - - NWNX_PushArgumentInt(nSpellLevel); - NWNX_PushArgumentInt(nClass); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nSpellLevel); + NWNXPushInt(nClass); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "DecrementRemainingSpellSlots"); } void NWNX_Creature_IncrementRemainingSpellSlots(object oCreature, int nClass, int nSpellLevel) { - string sFunc = "IncrementRemainingSpellSlots"; - - NWNX_PushArgumentInt(nSpellLevel); - NWNX_PushArgumentInt(nClass); - NWNX_PushArgumentObject(oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nSpellLevel); + NWNXPushInt(nClass); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "IncrementRemainingSpellSlots"); } int NWNX_Creature_GetMaximumBonusAttacks(object oCreature) { - string sFunc = "GetMaximumBonusAttacks"; - - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetMaximumBonusAttacks"); + return NWNXPopInt(); } void NWNX_Creature_SetMaximumBonusAttacks(object oCreature, int nMaxBonusAttacks, int bPersist = FALSE) { - string sFunc = "SetMaximumBonusAttacks"; - - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentInt(nMaxBonusAttacks); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bPersist); + NWNXPushInt(nMaxBonusAttacks); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetMaximumBonusAttacks"); } void NWNX_Creature_DoCleaveAttack(object oCreature) { - string sFunc = "DoCleaveAttack"; - - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "DoCleaveAttack"); } object NWNX_Creature_GetLockOrientationToObject(object oCreature) { - string sFunc = "GetLockOrientationToObject"; - - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueObject(); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetLockOrientationToObject"); + return NWNXPopObject(); } void NWNX_Creature_SetLockOrientationToObject(object oCreature, object oTarget) { - string sFunc = "SetLockOrientationToObject"; - - NWNX_PushArgumentObject(oTarget); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushObject(oTarget); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetLockOrientationToObject"); } void NWNX_Creature_BroadcastAttackOfOpportunity(object oCreature, object oSingleCreature = OBJECT_INVALID, int bMovement = FALSE) { - string sFunc = "BroadcastAttackOfOpportunity"; - - NWNX_PushArgumentInt(bMovement); - NWNX_PushArgumentObject(oSingleCreature); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bMovement); + NWNXPushObject(oSingleCreature); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "BroadcastAttackOfOpportunity"); } int NWNX_Creature_GetMaxSellToStorePriceOverride(object oCreature, object oStore) { - string sFunc = "GetMaxSellToStorePriceOverride"; + NWNXPushObject(oStore); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetMaxSellToStorePriceOverride"); - NWNX_PushArgumentObject(oStore); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueInt(); + return NWNXPopInt(); } void NWNX_Creature_SetMaxSellToStorePriceOverride(object oCreature, object oStore, int nMaxSellToPrice) { - string sFunc = "SetMaxSellToStorePriceOverride"; - - NWNX_PushArgumentInt(nMaxSellToPrice); - NWNX_PushArgumentObject(oStore); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nMaxSellToPrice); + NWNXPushObject(oStore); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetMaxSellToStorePriceOverride"); } int NWNX_Creature_GetAbilityIncreaseByLevel(object oCreature, int nLevel) { - string sFunc = "GetAbilityIncreaseByLevel"; - - NWNX_PushArgumentInt(nLevel); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(nLevel); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetAbilityIncreaseByLevel"); + return NWNXPopInt(); } void NWNX_Creature_SetAbilityIncreaseByLevel(object oCreature, int nLevel, int nAbility) { - string sFunc = "SetAbilityIncreaseByLevel"; - - NWNX_PushArgumentInt(nAbility); - NWNX_PushArgumentInt(nLevel); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nAbility); + NWNXPushInt(nLevel); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetAbilityIncreaseByLevel"); } float NWNX_Creature_GetMaxAttackRange(object oCreature, object oTarget) { - string sFunc = "GetMaxAttackRange"; - - NWNX_PushArgumentObject(oTarget); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueFloat(); + NWNXPushObject(oTarget); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetMaxAttackRange"); + return NWNXPopFloat(); +} + +int NWNX_Creature_GetMulticlassLimit(object oCreature) +{ + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetMulticlassLimit"); + return NWNXPopInt(); +} + + +void NWNX_Creature_SetMulticlassLimit(object oCreature, int nLimit, int bPersist = FALSE) +{ + NWNXPushInt(bPersist); + NWNXPushInt(nLimit); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetMulticlassLimit"); } diff --git a/_module/nss/nwnx_damage.nss b/_module/nss/nwnx_damage.nss index 352d810c..1f4d13ce 100644 --- a/_module/nss/nwnx_damage.nss +++ b/_module/nss/nwnx_damage.nss @@ -2,7 +2,6 @@ /// @brief Run a script before damage and attack events allowing for modification. Includes function to arbitrarily apply damage. /// @{ /// @file nwnx_damage.nss -#include "nwnx" const string NWNX_Damage = "NWNX_Damage"; ///< @private @@ -174,245 +173,223 @@ void NWNX_Damage_DealDamage(struct NWNX_Damage_DamageData data, object oTarget, void NWNX_Damage_SetDamageEventScript(string sScript, object oOwner=OBJECT_INVALID) { - string sFunc = "SetEventScript"; - - NWNX_PushArgumentObject(oOwner); - NWNX_PushArgumentString(sScript); - NWNX_PushArgumentString("DAMAGE"); - - NWNX_CallFunction(NWNX_Damage, sFunc); + NWNXPushObject(oOwner); + NWNXPushString(sScript); + NWNXPushString("DAMAGE"); + NWNXCall(NWNX_Damage, "SetEventScript"); } struct NWNX_Damage_DamageEventData NWNX_Damage_GetDamageEventData() { - string sFunc = "GetDamageEventData"; struct NWNX_Damage_DamageEventData data; - - NWNX_CallFunction(NWNX_Damage, sFunc); - - data.oDamager = NWNX_GetReturnValueObject(); - data.iBludgeoning = NWNX_GetReturnValueInt(); - data.iPierce = NWNX_GetReturnValueInt(); - data.iSlash = NWNX_GetReturnValueInt(); - data.iMagical = NWNX_GetReturnValueInt(); - data.iAcid = NWNX_GetReturnValueInt(); - data.iCold = NWNX_GetReturnValueInt(); - data.iDivine = NWNX_GetReturnValueInt(); - data.iElectrical = NWNX_GetReturnValueInt(); - data.iFire = NWNX_GetReturnValueInt(); - data.iNegative = NWNX_GetReturnValueInt(); - data.iPositive = NWNX_GetReturnValueInt(); - data.iSonic = NWNX_GetReturnValueInt(); - data.iBase = NWNX_GetReturnValueInt(); - data.iCustom1 = NWNX_GetReturnValueInt(); - data.iCustom2 = NWNX_GetReturnValueInt(); - data.iCustom3 = NWNX_GetReturnValueInt(); - data.iCustom4 = NWNX_GetReturnValueInt(); - data.iCustom5 = NWNX_GetReturnValueInt(); - data.iCustom6 = NWNX_GetReturnValueInt(); - data.iCustom7 = NWNX_GetReturnValueInt(); - data.iCustom8 = NWNX_GetReturnValueInt(); - data.iCustom9 = NWNX_GetReturnValueInt(); - data.iCustom10 = NWNX_GetReturnValueInt(); - data.iCustom11 = NWNX_GetReturnValueInt(); - data.iCustom12 = NWNX_GetReturnValueInt(); - data.iCustom13 = NWNX_GetReturnValueInt(); - data.iCustom14 = NWNX_GetReturnValueInt(); - data.iCustom15 = NWNX_GetReturnValueInt(); - data.iCustom16 = NWNX_GetReturnValueInt(); - data.iCustom17 = NWNX_GetReturnValueInt(); - data.iCustom18 = NWNX_GetReturnValueInt(); - data.iCustom19 = NWNX_GetReturnValueInt(); - data.iSpellId = NWNX_GetReturnValueInt(); - + NWNXCall(NWNX_Damage, "GetDamageEventData"); + data.oDamager = NWNXPopObject(); + data.iBludgeoning = NWNXPopInt(); + data.iPierce = NWNXPopInt(); + data.iSlash = NWNXPopInt(); + data.iMagical = NWNXPopInt(); + data.iAcid = NWNXPopInt(); + data.iCold = NWNXPopInt(); + data.iDivine = NWNXPopInt(); + data.iElectrical = NWNXPopInt(); + data.iFire = NWNXPopInt(); + data.iNegative = NWNXPopInt(); + data.iPositive = NWNXPopInt(); + data.iSonic = NWNXPopInt(); + data.iBase = NWNXPopInt(); + data.iCustom1 = NWNXPopInt(); + data.iCustom2 = NWNXPopInt(); + data.iCustom3 = NWNXPopInt(); + data.iCustom4 = NWNXPopInt(); + data.iCustom5 = NWNXPopInt(); + data.iCustom6 = NWNXPopInt(); + data.iCustom7 = NWNXPopInt(); + data.iCustom8 = NWNXPopInt(); + data.iCustom9 = NWNXPopInt(); + data.iCustom10 = NWNXPopInt(); + data.iCustom11 = NWNXPopInt(); + data.iCustom12 = NWNXPopInt(); + data.iCustom13 = NWNXPopInt(); + data.iCustom14 = NWNXPopInt(); + data.iCustom15 = NWNXPopInt(); + data.iCustom16 = NWNXPopInt(); + data.iCustom17 = NWNXPopInt(); + data.iCustom18 = NWNXPopInt(); + data.iCustom19 = NWNXPopInt(); + data.iSpellId = NWNXPopInt(); return data; } void NWNX_Damage_SetDamageEventData(struct NWNX_Damage_DamageEventData data) { - string sFunc = "SetDamageEventData"; + NWNXPushInt(data.iCustom19); + NWNXPushInt(data.iCustom18); + NWNXPushInt(data.iCustom17); + NWNXPushInt(data.iCustom16); + NWNXPushInt(data.iCustom15); + NWNXPushInt(data.iCustom14); + NWNXPushInt(data.iCustom13); + NWNXPushInt(data.iCustom12); + NWNXPushInt(data.iCustom11); + NWNXPushInt(data.iCustom10); + NWNXPushInt(data.iCustom9); + NWNXPushInt(data.iCustom8); + NWNXPushInt(data.iCustom7); + NWNXPushInt(data.iCustom6); + NWNXPushInt(data.iCustom5); + NWNXPushInt(data.iCustom4); + NWNXPushInt(data.iCustom3); + NWNXPushInt(data.iCustom2); + NWNXPushInt(data.iCustom1); + NWNXPushInt(data.iBase); + NWNXPushInt(data.iSonic); + NWNXPushInt(data.iPositive); + NWNXPushInt(data.iNegative); + NWNXPushInt(data.iFire); + NWNXPushInt(data.iElectrical); + NWNXPushInt(data.iDivine); + NWNXPushInt(data.iCold); + NWNXPushInt(data.iAcid); + NWNXPushInt(data.iMagical); + NWNXPushInt(data.iSlash); + NWNXPushInt(data.iPierce); + NWNXPushInt(data.iBludgeoning); - NWNX_PushArgumentInt(data.iCustom19); - NWNX_PushArgumentInt(data.iCustom18); - NWNX_PushArgumentInt(data.iCustom17); - NWNX_PushArgumentInt(data.iCustom16); - NWNX_PushArgumentInt(data.iCustom15); - NWNX_PushArgumentInt(data.iCustom14); - NWNX_PushArgumentInt(data.iCustom13); - NWNX_PushArgumentInt(data.iCustom12); - NWNX_PushArgumentInt(data.iCustom11); - NWNX_PushArgumentInt(data.iCustom10); - NWNX_PushArgumentInt(data.iCustom9); - NWNX_PushArgumentInt(data.iCustom8); - NWNX_PushArgumentInt(data.iCustom7); - NWNX_PushArgumentInt(data.iCustom6); - NWNX_PushArgumentInt(data.iCustom5); - NWNX_PushArgumentInt(data.iCustom4); - NWNX_PushArgumentInt(data.iCustom3); - NWNX_PushArgumentInt(data.iCustom2); - NWNX_PushArgumentInt(data.iCustom1); - NWNX_PushArgumentInt(data.iBase); - NWNX_PushArgumentInt(data.iSonic); - NWNX_PushArgumentInt(data.iPositive); - NWNX_PushArgumentInt(data.iNegative); - NWNX_PushArgumentInt(data.iFire); - NWNX_PushArgumentInt(data.iElectrical); - NWNX_PushArgumentInt(data.iDivine); - NWNX_PushArgumentInt(data.iCold); - NWNX_PushArgumentInt(data.iAcid); - NWNX_PushArgumentInt(data.iMagical); - NWNX_PushArgumentInt(data.iSlash); - NWNX_PushArgumentInt(data.iPierce); - NWNX_PushArgumentInt(data.iBludgeoning); - - NWNX_CallFunction(NWNX_Damage, sFunc); + NWNXCall(NWNX_Damage, "SetDamageEventData"); } void NWNX_Damage_SetAttackEventScript(string sScript, object oOwner=OBJECT_INVALID) { - string sFunc = "SetEventScript"; - - NWNX_PushArgumentObject(oOwner); - NWNX_PushArgumentString(sScript); - NWNX_PushArgumentString("ATTACK"); - - NWNX_CallFunction(NWNX_Damage, sFunc); + NWNXPushObject(oOwner); + NWNXPushString(sScript); + NWNXPushString("ATTACK"); + NWNXCall(NWNX_Damage, "SetEventScript"); } struct NWNX_Damage_AttackEventData NWNX_Damage_GetAttackEventData() { - string sFunc = "GetAttackEventData"; struct NWNX_Damage_AttackEventData data; - - NWNX_CallFunction(NWNX_Damage, sFunc); - - data.oTarget = NWNX_GetReturnValueObject(); - data.iBludgeoning = NWNX_GetReturnValueInt(); - data.iPierce = NWNX_GetReturnValueInt(); - data.iSlash = NWNX_GetReturnValueInt(); - data.iMagical = NWNX_GetReturnValueInt(); - data.iAcid = NWNX_GetReturnValueInt(); - data.iCold = NWNX_GetReturnValueInt(); - data.iDivine = NWNX_GetReturnValueInt(); - data.iElectrical = NWNX_GetReturnValueInt(); - data.iFire = NWNX_GetReturnValueInt(); - data.iNegative = NWNX_GetReturnValueInt(); - data.iPositive = NWNX_GetReturnValueInt(); - data.iSonic = NWNX_GetReturnValueInt(); - data.iBase = NWNX_GetReturnValueInt(); - data.iCustom1 = NWNX_GetReturnValueInt(); - data.iCustom2 = NWNX_GetReturnValueInt(); - data.iCustom3 = NWNX_GetReturnValueInt(); - data.iCustom4 = NWNX_GetReturnValueInt(); - data.iCustom5 = NWNX_GetReturnValueInt(); - data.iCustom6 = NWNX_GetReturnValueInt(); - data.iCustom7 = NWNX_GetReturnValueInt(); - data.iCustom8 = NWNX_GetReturnValueInt(); - data.iCustom9 = NWNX_GetReturnValueInt(); - data.iCustom10 = NWNX_GetReturnValueInt(); - data.iCustom11 = NWNX_GetReturnValueInt(); - data.iCustom12 = NWNX_GetReturnValueInt(); - data.iCustom13 = NWNX_GetReturnValueInt(); - data.iCustom14 = NWNX_GetReturnValueInt(); - data.iCustom15 = NWNX_GetReturnValueInt(); - data.iCustom16 = NWNX_GetReturnValueInt(); - data.iCustom17 = NWNX_GetReturnValueInt(); - data.iCustom18 = NWNX_GetReturnValueInt(); - data.iCustom19 = NWNX_GetReturnValueInt(); - data.iAttackNumber = NWNX_GetReturnValueInt(); - data.iAttackResult = NWNX_GetReturnValueInt(); - data.iWeaponAttackType = NWNX_GetReturnValueInt(); - data.iSneakAttack = NWNX_GetReturnValueInt(); - data.bKillingBlow = NWNX_GetReturnValueInt(); - data.iAttackType = NWNX_GetReturnValueInt(); - data.iToHitRoll = NWNX_GetReturnValueInt(); - data.iToHitModifier = NWNX_GetReturnValueInt(); - + NWNXCall(NWNX_Damage, "GetAttackEventData"); + data.oTarget = NWNXPopObject(); + data.iBludgeoning = NWNXPopInt(); + data.iPierce = NWNXPopInt(); + data.iSlash = NWNXPopInt(); + data.iMagical = NWNXPopInt(); + data.iAcid = NWNXPopInt(); + data.iCold = NWNXPopInt(); + data.iDivine = NWNXPopInt(); + data.iElectrical = NWNXPopInt(); + data.iFire = NWNXPopInt(); + data.iNegative = NWNXPopInt(); + data.iPositive = NWNXPopInt(); + data.iSonic = NWNXPopInt(); + data.iBase = NWNXPopInt(); + data.iCustom1 = NWNXPopInt(); + data.iCustom2 = NWNXPopInt(); + data.iCustom3 = NWNXPopInt(); + data.iCustom4 = NWNXPopInt(); + data.iCustom5 = NWNXPopInt(); + data.iCustom6 = NWNXPopInt(); + data.iCustom7 = NWNXPopInt(); + data.iCustom8 = NWNXPopInt(); + data.iCustom9 = NWNXPopInt(); + data.iCustom10 = NWNXPopInt(); + data.iCustom11 = NWNXPopInt(); + data.iCustom12 = NWNXPopInt(); + data.iCustom13 = NWNXPopInt(); + data.iCustom14 = NWNXPopInt(); + data.iCustom15 = NWNXPopInt(); + data.iCustom16 = NWNXPopInt(); + data.iCustom17 = NWNXPopInt(); + data.iCustom18 = NWNXPopInt(); + data.iCustom19 = NWNXPopInt(); + data.iAttackNumber = NWNXPopInt(); + data.iAttackResult = NWNXPopInt(); + data.iWeaponAttackType = NWNXPopInt(); + data.iSneakAttack = NWNXPopInt(); + data.bKillingBlow = NWNXPopInt(); + data.iAttackType = NWNXPopInt(); + data.iToHitRoll = NWNXPopInt(); + data.iToHitModifier = NWNXPopInt(); return data; } void NWNX_Damage_SetAttackEventData(struct NWNX_Damage_AttackEventData data) { - string sFunc = "SetAttackEventData"; - - NWNX_PushArgumentInt(data.iSneakAttack); - NWNX_PushArgumentInt(data.iAttackResult); - NWNX_PushArgumentInt(data.iCustom19); - NWNX_PushArgumentInt(data.iCustom18); - NWNX_PushArgumentInt(data.iCustom17); - NWNX_PushArgumentInt(data.iCustom16); - NWNX_PushArgumentInt(data.iCustom15); - NWNX_PushArgumentInt(data.iCustom14); - NWNX_PushArgumentInt(data.iCustom13); - NWNX_PushArgumentInt(data.iCustom12); - NWNX_PushArgumentInt(data.iCustom11); - NWNX_PushArgumentInt(data.iCustom10); - NWNX_PushArgumentInt(data.iCustom9); - NWNX_PushArgumentInt(data.iCustom8); - NWNX_PushArgumentInt(data.iCustom7); - NWNX_PushArgumentInt(data.iCustom6); - NWNX_PushArgumentInt(data.iCustom5); - NWNX_PushArgumentInt(data.iCustom4); - NWNX_PushArgumentInt(data.iCustom3); - NWNX_PushArgumentInt(data.iCustom2); - NWNX_PushArgumentInt(data.iCustom1); - NWNX_PushArgumentInt(data.iBase); - NWNX_PushArgumentInt(data.iSonic); - NWNX_PushArgumentInt(data.iPositive); - NWNX_PushArgumentInt(data.iNegative); - NWNX_PushArgumentInt(data.iFire); - NWNX_PushArgumentInt(data.iElectrical); - NWNX_PushArgumentInt(data.iDivine); - NWNX_PushArgumentInt(data.iCold); - NWNX_PushArgumentInt(data.iAcid); - NWNX_PushArgumentInt(data.iMagical); - NWNX_PushArgumentInt(data.iSlash); - NWNX_PushArgumentInt(data.iPierce); - NWNX_PushArgumentInt(data.iBludgeoning); - - NWNX_CallFunction(NWNX_Damage, sFunc); + NWNXPushInt(data.iSneakAttack); + NWNXPushInt(data.iAttackResult); + NWNXPushInt(data.iCustom19); + NWNXPushInt(data.iCustom18); + NWNXPushInt(data.iCustom17); + NWNXPushInt(data.iCustom16); + NWNXPushInt(data.iCustom15); + NWNXPushInt(data.iCustom14); + NWNXPushInt(data.iCustom13); + NWNXPushInt(data.iCustom12); + NWNXPushInt(data.iCustom11); + NWNXPushInt(data.iCustom10); + NWNXPushInt(data.iCustom9); + NWNXPushInt(data.iCustom8); + NWNXPushInt(data.iCustom7); + NWNXPushInt(data.iCustom6); + NWNXPushInt(data.iCustom5); + NWNXPushInt(data.iCustom4); + NWNXPushInt(data.iCustom3); + NWNXPushInt(data.iCustom2); + NWNXPushInt(data.iCustom1); + NWNXPushInt(data.iBase); + NWNXPushInt(data.iSonic); + NWNXPushInt(data.iPositive); + NWNXPushInt(data.iNegative); + NWNXPushInt(data.iFire); + NWNXPushInt(data.iElectrical); + NWNXPushInt(data.iDivine); + NWNXPushInt(data.iCold); + NWNXPushInt(data.iAcid); + NWNXPushInt(data.iMagical); + NWNXPushInt(data.iSlash); + NWNXPushInt(data.iPierce); + NWNXPushInt(data.iBludgeoning); + NWNXCall(NWNX_Damage, "SetAttackEventData"); } void NWNX_Damage_DealDamage(struct NWNX_Damage_DamageData data, object oTarget, object oSource, int iRanged = FALSE) { - string sFunc = "DealDamage"; - - NWNX_PushArgumentInt(iRanged); - NWNX_PushArgumentInt(data.iPower); - NWNX_PushArgumentInt(data.iCustom19); - NWNX_PushArgumentInt(data.iCustom18); - NWNX_PushArgumentInt(data.iCustom17); - NWNX_PushArgumentInt(data.iCustom16); - NWNX_PushArgumentInt(data.iCustom15); - NWNX_PushArgumentInt(data.iCustom14); - NWNX_PushArgumentInt(data.iCustom13); - NWNX_PushArgumentInt(data.iCustom12); - NWNX_PushArgumentInt(data.iCustom11); - NWNX_PushArgumentInt(data.iCustom10); - NWNX_PushArgumentInt(data.iCustom9); - NWNX_PushArgumentInt(data.iCustom8); - NWNX_PushArgumentInt(data.iCustom7); - NWNX_PushArgumentInt(data.iCustom6); - NWNX_PushArgumentInt(data.iCustom5); - NWNX_PushArgumentInt(data.iCustom4); - NWNX_PushArgumentInt(data.iCustom3); - NWNX_PushArgumentInt(data.iCustom2); - NWNX_PushArgumentInt(data.iCustom1); - NWNX_PushArgumentInt(0);// Padding for Base Damage - NWNX_PushArgumentInt(data.iSonic); - NWNX_PushArgumentInt(data.iPositive); - NWNX_PushArgumentInt(data.iNegative); - NWNX_PushArgumentInt(data.iFire); - NWNX_PushArgumentInt(data.iElectrical); - NWNX_PushArgumentInt(data.iDivine); - NWNX_PushArgumentInt(data.iCold); - NWNX_PushArgumentInt(data.iAcid); - NWNX_PushArgumentInt(data.iMagical); - NWNX_PushArgumentInt(data.iSlash); - NWNX_PushArgumentInt(data.iPierce); - NWNX_PushArgumentInt(data.iBludgeoning); - NWNX_PushArgumentObject(oTarget); - NWNX_PushArgumentObject(oSource); - - NWNX_CallFunction(NWNX_Damage, sFunc); + NWNXPushInt(iRanged); + NWNXPushInt(data.iPower); + NWNXPushInt(data.iCustom19); + NWNXPushInt(data.iCustom18); + NWNXPushInt(data.iCustom17); + NWNXPushInt(data.iCustom16); + NWNXPushInt(data.iCustom15); + NWNXPushInt(data.iCustom14); + NWNXPushInt(data.iCustom13); + NWNXPushInt(data.iCustom12); + NWNXPushInt(data.iCustom11); + NWNXPushInt(data.iCustom10); + NWNXPushInt(data.iCustom9); + NWNXPushInt(data.iCustom8); + NWNXPushInt(data.iCustom7); + NWNXPushInt(data.iCustom6); + NWNXPushInt(data.iCustom5); + NWNXPushInt(data.iCustom4); + NWNXPushInt(data.iCustom3); + NWNXPushInt(data.iCustom2); + NWNXPushInt(data.iCustom1); + NWNXPushInt(0);// Padding for Base Damage + NWNXPushInt(data.iSonic); + NWNXPushInt(data.iPositive); + NWNXPushInt(data.iNegative); + NWNXPushInt(data.iFire); + NWNXPushInt(data.iElectrical); + NWNXPushInt(data.iDivine); + NWNXPushInt(data.iCold); + NWNXPushInt(data.iAcid); + NWNXPushInt(data.iMagical); + NWNXPushInt(data.iSlash); + NWNXPushInt(data.iPierce); + NWNXPushInt(data.iBludgeoning); + NWNXPushObject(oTarget); + NWNXPushObject(oSource); + NWNXCall(NWNX_Damage, "DealDamage"); } diff --git a/_module/nss/nwnx_dialog.nss b/_module/nss/nwnx_dialog.nss index 83c5efb6..f270c5cc 100644 --- a/_module/nss/nwnx_dialog.nss +++ b/_module/nss/nwnx_dialog.nss @@ -3,8 +3,6 @@ /// @{ /// @file nwnx_dialog.nss -#include "nwnx" - const string NWNX_Dialog = "NWNX_Dialog"; ///< @private /// @name Dialog Node Types @@ -80,60 +78,46 @@ void NWNX_Dialog_End(object oObject); int NWNX_Dialog_GetCurrentNodeType() { - string sFunc = "GetCurrentNodeType"; - - NWNX_CallFunction(NWNX_Dialog, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Dialog, "GetCurrentNodeType"); + return NWNXPopInt(); } int NWNX_Dialog_GetCurrentScriptType() { - string sFunc = "GetCurrentScriptType"; - - NWNX_CallFunction(NWNX_Dialog, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Dialog, "GetCurrentScriptType"); + return NWNXPopInt(); } int NWNX_Dialog_GetCurrentNodeID() { - string sFunc = "GetCurrentNodeID"; - - NWNX_CallFunction(NWNX_Dialog, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Dialog, "GetCurrentNodeID"); + return NWNXPopInt(); } int NWNX_Dialog_GetCurrentNodeIndex() { - string sFunc = "GetCurrentNodeIndex"; - - NWNX_CallFunction(NWNX_Dialog, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Dialog, "GetCurrentNodeIndex"); + return NWNXPopInt(); } string NWNX_Dialog_GetCurrentNodeText(int language=NWNX_DIALOG_LANGUAGE_ENGLISH, int gender=GENDER_MALE) { - string sFunc = "GetCurrentNodeText"; - - NWNX_PushArgumentInt(gender); - NWNX_PushArgumentInt(language); - NWNX_CallFunction(NWNX_Dialog, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushInt(gender); + NWNXPushInt(language); + NWNXCall(NWNX_Dialog, "GetCurrentNodeText"); + return NWNXPopString(); } void NWNX_Dialog_SetCurrentNodeText(string text, int language=NWNX_DIALOG_LANGUAGE_ENGLISH, int gender=GENDER_MALE) { - string sFunc = "SetCurrentNodeText"; - - NWNX_PushArgumentInt(gender); - NWNX_PushArgumentInt(language); - NWNX_PushArgumentString(text); - NWNX_CallFunction(NWNX_Dialog, sFunc); + NWNXPushInt(gender); + NWNXPushInt(language); + NWNXPushString(text); + NWNXCall(NWNX_Dialog, "SetCurrentNodeText"); } void NWNX_Dialog_End(object oObject) { - string sFunc = "End"; - - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Dialog, sFunc); + NWNXPushObject(oObject); + NWNXCall(NWNX_Dialog, "End"); } diff --git a/_module/nss/nwnx_effect.nss b/_module/nss/nwnx_effect.nss index ffb619ba..1107db35 100644 --- a/_module/nss/nwnx_effect.nss +++ b/_module/nss/nwnx_effect.nss @@ -2,7 +2,6 @@ /// @brief Utility functions to manipulate the builtin effect type. /// @{ /// @file nwnx_effect.nss -#include "nwnx" const string NWNX_Effect = "NWNX_Effect"; ///< @private @@ -143,52 +142,46 @@ effect NWNX_Effect_GetAppliedEffect(object oObject, int nNth); /// @} -struct NWNX_EffectUnpacked __NWNX_Effect_ResolveUnpack(string sFunc, int bLink=TRUE) +struct NWNX_EffectUnpacked __NWNX_Effect_ResolveUnpack(int bLink=TRUE) { struct NWNX_EffectUnpacked n; - n.sItemProp = NWNX_GetReturnValueString(); + n.sItemProp = NWNXPopString(); - n.sTag = NWNX_GetReturnValueString(); + n.sTag = NWNXPopString(); - float fZ = NWNX_GetReturnValueFloat(); - float fY = NWNX_GetReturnValueFloat(); - float fX = NWNX_GetReturnValueFloat(); - n.vParam1 = Vector(fX, fY, fZ); - fZ = NWNX_GetReturnValueFloat(); - fY = NWNX_GetReturnValueFloat(); - fX = NWNX_GetReturnValueFloat(); - n.vParam0 = Vector(fX, fY, fZ); - n.oParam3 = NWNX_GetReturnValueObject(); - n.oParam2 = NWNX_GetReturnValueObject(); - n.oParam1 = NWNX_GetReturnValueObject(); - n.oParam0 = NWNX_GetReturnValueObject(); - n.sParam5 = NWNX_GetReturnValueString(); - n.sParam4 = NWNX_GetReturnValueString(); - n.sParam3 = NWNX_GetReturnValueString(); - n.sParam2 = NWNX_GetReturnValueString(); - n.sParam1 = NWNX_GetReturnValueString(); - n.sParam0 = NWNX_GetReturnValueString(); - n.fParam3 = NWNX_GetReturnValueFloat(); - n.fParam2 = NWNX_GetReturnValueFloat(); - n.fParam1 = NWNX_GetReturnValueFloat(); - n.fParam0 = NWNX_GetReturnValueFloat(); - n.nParam7 = NWNX_GetReturnValueInt(); - n.nParam6 = NWNX_GetReturnValueInt(); - n.nParam5 = NWNX_GetReturnValueInt(); - n.nParam4 = NWNX_GetReturnValueInt(); - n.nParam3 = NWNX_GetReturnValueInt(); - n.nParam2 = NWNX_GetReturnValueInt(); - n.nParam1 = NWNX_GetReturnValueInt(); - n.nParam0 = NWNX_GetReturnValueInt(); - n.nNumIntegers = NWNX_GetReturnValueInt(); + n.vParam1 = NWNXPopVector(); + n.vParam0 = NWNXPopVector(); + n.oParam3 = NWNXPopObject(); + n.oParam2 = NWNXPopObject(); + n.oParam1 = NWNXPopObject(); + n.oParam0 = NWNXPopObject(); + n.sParam5 = NWNXPopString(); + n.sParam4 = NWNXPopString(); + n.sParam3 = NWNXPopString(); + n.sParam2 = NWNXPopString(); + n.sParam1 = NWNXPopString(); + n.sParam0 = NWNXPopString(); + n.fParam3 = NWNXPopFloat(); + n.fParam2 = NWNXPopFloat(); + n.fParam1 = NWNXPopFloat(); + n.fParam0 = NWNXPopFloat(); + n.nParam7 = NWNXPopInt(); + n.nParam6 = NWNXPopInt(); + n.nParam5 = NWNXPopInt(); + n.nParam4 = NWNXPopInt(); + n.nParam3 = NWNXPopInt(); + n.nParam2 = NWNXPopInt(); + n.nParam1 = NWNXPopInt(); + n.nParam0 = NWNXPopInt(); + n.nNumIntegers = NWNXPopInt(); if(bLink) { - n.bLinkRightValid = NWNX_GetReturnValueInt(); - n.eLinkRight = NWNX_GetReturnValueEffect(); - n.bLinkLeftValid = NWNX_GetReturnValueInt(); - n.eLinkLeft = NWNX_GetReturnValueEffect(); + n.bLinkRightValid = NWNXPopInt(); + n.eLinkRight = NWNXPopEffect(); + n.bLinkLeftValid = NWNXPopInt(); + n.eLinkLeft = NWNXPopEffect(); } else { @@ -196,207 +189,166 @@ struct NWNX_EffectUnpacked __NWNX_Effect_ResolveUnpack(string sFunc, int bLink=T n.bLinkLeftValid = FALSE; } - n.nCasterLevel = NWNX_GetReturnValueInt(); - n.bShowIcon = NWNX_GetReturnValueInt(); - n.bExpose = NWNX_GetReturnValueInt(); - n.nSpellId = NWNX_GetReturnValueInt(); - n.oCreator = NWNX_GetReturnValueObject(); + n.nCasterLevel = NWNXPopInt(); + n.bShowIcon = NWNXPopInt(); + n.bExpose = NWNXPopInt(); + n.nSpellId = NWNXPopInt(); + n.oCreator = NWNXPopObject(); - n.nExpiryTimeOfDay = NWNX_GetReturnValueInt(); - n.nExpiryCalendarDay = NWNX_GetReturnValueInt(); - n.fDuration = NWNX_GetReturnValueFloat(); + n.nExpiryTimeOfDay = NWNXPopInt(); + n.nExpiryCalendarDay = NWNXPopInt(); + n.fDuration = NWNXPopFloat(); - n.nSubType = NWNX_GetReturnValueInt(); - n.nType = NWNX_GetReturnValueInt(); - n.sID = NWNX_GetReturnValueString(); + n.nSubType = NWNXPopInt(); + n.nType = NWNXPopInt(); + n.sID = NWNXPopString(); return n; } -void __NWNX_Effect_ResolvePack(string sFunc, struct NWNX_EffectUnpacked e, int bReplace=FALSE) +void __NWNX_Effect_ResolvePack(struct NWNX_EffectUnpacked e, int bReplace=FALSE) { if(!bReplace) - NWNX_PushArgumentInt(e.nType); + NWNXPushInt(e.nType); - NWNX_PushArgumentInt(e.nSubType); + NWNXPushInt(e.nSubType); - NWNX_PushArgumentFloat(e.fDuration); - NWNX_PushArgumentInt(e.nExpiryCalendarDay); - NWNX_PushArgumentInt(e.nExpiryTimeOfDay); + NWNXPushFloat(e.fDuration); + NWNXPushInt(e.nExpiryCalendarDay); + NWNXPushInt(e.nExpiryTimeOfDay); - NWNX_PushArgumentObject(e.oCreator); - NWNX_PushArgumentInt(e.nSpellId); - NWNX_PushArgumentInt(e.bExpose); - NWNX_PushArgumentInt(e.bShowIcon); - NWNX_PushArgumentInt(e.nCasterLevel); + NWNXPushObject(e.oCreator); + NWNXPushInt(e.nSpellId); + NWNXPushInt(e.bExpose); + NWNXPushInt(e.bShowIcon); + NWNXPushInt(e.nCasterLevel); if(!bReplace) { - NWNX_PushArgumentEffect(e.eLinkLeft); - NWNX_PushArgumentInt(e.bLinkLeftValid); - NWNX_PushArgumentEffect(e.eLinkRight); - NWNX_PushArgumentInt(e.bLinkRightValid); + NWNXPushEffect(e.eLinkLeft); + NWNXPushInt(e.bLinkLeftValid); + NWNXPushEffect(e.eLinkRight); + NWNXPushInt(e.bLinkRightValid); } - NWNX_PushArgumentInt(e.nNumIntegers); - NWNX_PushArgumentInt(e.nParam0); - NWNX_PushArgumentInt(e.nParam1); - NWNX_PushArgumentInt(e.nParam2); - NWNX_PushArgumentInt(e.nParam3); - NWNX_PushArgumentInt(e.nParam4); - NWNX_PushArgumentInt(e.nParam5); - NWNX_PushArgumentInt(e.nParam6); - NWNX_PushArgumentInt(e.nParam7); - NWNX_PushArgumentFloat(e.fParam0); - NWNX_PushArgumentFloat(e.fParam1); - NWNX_PushArgumentFloat(e.fParam2); - NWNX_PushArgumentFloat(e.fParam3); - NWNX_PushArgumentString(e.sParam0); - NWNX_PushArgumentString(e.sParam1); - NWNX_PushArgumentString(e.sParam2); - NWNX_PushArgumentString(e.sParam3); - NWNX_PushArgumentString(e.sParam4); - NWNX_PushArgumentString(e.sParam5); - NWNX_PushArgumentObject(e.oParam0); - NWNX_PushArgumentObject(e.oParam1); - NWNX_PushArgumentObject(e.oParam2); - NWNX_PushArgumentObject(e.oParam3); + NWNXPushInt(e.nNumIntegers); + NWNXPushInt(e.nParam0); + NWNXPushInt(e.nParam1); + NWNXPushInt(e.nParam2); + NWNXPushInt(e.nParam3); + NWNXPushInt(e.nParam4); + NWNXPushInt(e.nParam5); + NWNXPushInt(e.nParam6); + NWNXPushInt(e.nParam7); + NWNXPushFloat(e.fParam0); + NWNXPushFloat(e.fParam1); + NWNXPushFloat(e.fParam2); + NWNXPushFloat(e.fParam3); + NWNXPushString(e.sParam0); + NWNXPushString(e.sParam1); + NWNXPushString(e.sParam2); + NWNXPushString(e.sParam3); + NWNXPushString(e.sParam4); + NWNXPushString(e.sParam5); + NWNXPushObject(e.oParam0); + NWNXPushObject(e.oParam1); + NWNXPushObject(e.oParam2); + NWNXPushObject(e.oParam3); - NWNX_PushArgumentFloat(e.vParam0.x); - NWNX_PushArgumentFloat(e.vParam0.y); - NWNX_PushArgumentFloat(e.vParam0.z); + NWNXPushVector(e.vParam0); + NWNXPushVector(e.vParam1); - NWNX_PushArgumentFloat(e.vParam1.x); - NWNX_PushArgumentFloat(e.vParam1.y); - NWNX_PushArgumentFloat(e.vParam1.z); + NWNXPushString(e.sTag); - NWNX_PushArgumentString(e.sTag); - - NWNX_PushArgumentString(e.sItemProp); + NWNXPushString(e.sItemProp); } struct NWNX_EffectUnpacked NWNX_Effect_UnpackEffect(effect e) { - string sFunc = "UnpackEffect"; - - NWNX_PushArgumentEffect(e); - NWNX_CallFunction(NWNX_Effect, sFunc); - - return __NWNX_Effect_ResolveUnpack(sFunc); + NWNXPushEffect(e); + NWNXCall(NWNX_Effect, "UnpackEffect"); + return __NWNX_Effect_ResolveUnpack(); } effect NWNX_Effect_PackEffect(struct NWNX_EffectUnpacked e) { - string sFunc = "PackEffect"; - - __NWNX_Effect_ResolvePack(sFunc, e); - - NWNX_CallFunction(NWNX_Effect, sFunc); - return NWNX_GetReturnValueEffect(); + __NWNX_Effect_ResolvePack(e); + NWNXCall(NWNX_Effect, "PackEffect"); + return NWNXPopEffect(); } int NWNX_Effect_ReplaceEffect(object obj, effect eOld, effect eNew) { - string sFunc = "ReplaceEffect"; - - NWNX_PushArgumentEffect(eNew); - NWNX_PushArgumentEffect(eOld); - NWNX_PushArgumentObject(obj); - - NWNX_CallFunction(NWNX_Effect, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushEffect(eNew); + NWNXPushEffect(eOld); + NWNXPushObject(obj); + NWNXCall(NWNX_Effect, "ReplaceEffect"); + return NWNXPopInt(); } int NWNX_Effect_GetTrueEffectCount(object oObject) { - string sFunc = "GetTrueEffectCount"; - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Effect, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oObject); + NWNXCall(NWNX_Effect, "GetTrueEffectCount"); + return NWNXPopInt(); } struct NWNX_EffectUnpacked NWNX_Effect_GetTrueEffect(object oObject, int nIndex) { - string sFunc = "GetTrueEffect"; - NWNX_PushArgumentInt(nIndex); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Effect, sFunc); - - return __NWNX_Effect_ResolveUnpack(sFunc, FALSE); + NWNXPushInt(nIndex); + NWNXPushObject(oObject); + NWNXCall(NWNX_Effect, "GetTrueEffect"); + return __NWNX_Effect_ResolveUnpack(FALSE); } void NWNX_Effect_ReplaceEffectByIndex(object oObject, int nIndex, struct NWNX_EffectUnpacked e) { - string sFunc = "ReplaceEffectByIndex"; - - __NWNX_Effect_ResolvePack(sFunc, e, TRUE); - - NWNX_PushArgumentInt(nIndex); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Effect, sFunc); + __NWNX_Effect_ResolvePack(e, TRUE); + NWNXPushInt(nIndex); + NWNXPushObject(oObject); + NWNXCall(NWNX_Effect, "ReplaceEffectByIndex"); } int NWNX_Effect_RemoveEffectById(object oObject, string sID) { - string sFunc = "RemoveEffectById"; - NWNX_PushArgumentString(sID); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Effect, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushString(sID); + NWNXPushObject(oObject); + NWNXCall(NWNX_Effect, "RemoveEffectById"); + return NWNXPopInt(); } void NWNX_Effect_Apply(effect eEffect, object oObject) { - string sFunc = "Apply"; - NWNX_PushArgumentObject(oObject); - NWNX_PushArgumentEffect(eEffect); - NWNX_CallFunction(NWNX_Effect, sFunc); + NWNXPushObject(oObject); + NWNXPushEffect(eEffect); + NWNXCall(NWNX_Effect, "Apply"); } effect NWNX_Effect_SetEffectCreator(effect eEffect, object oObject) { - string sFunc = "SetEffectCreator"; - - NWNX_PushArgumentObject(oObject); - NWNX_PushArgumentEffect(eEffect); - - NWNX_CallFunction(NWNX_Effect, sFunc); - - return NWNX_GetReturnValueEffect(); + NWNXPushObject(oObject); + NWNXPushEffect(eEffect); + NWNXCall(NWNX_Effect, "SetEffectCreator"); + return NWNXPopEffect(); } int NWNX_Effect_GetIsEffectValid(effect eEffect) { - string sFunc = "GetIsEffectValid"; - - NWNX_PushArgumentEffect(eEffect); - - NWNX_CallFunction(NWNX_Effect, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushEffect(eEffect); + NWNXCall(NWNX_Effect, "GetIsEffectValid"); + return NWNXPopInt(); } int NWNX_Effect_GetAppliedEffectCount(object oObject) { - string sFunc = "GetAppliedEffectCount"; - - NWNX_PushArgumentObject(oObject); - - NWNX_CallFunction(NWNX_Effect, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oObject); + NWNXCall(NWNX_Effect, "GetAppliedEffectCount"); + return NWNXPopInt(); } effect NWNX_Effect_GetAppliedEffect(object oObject, int nNth) { - string sFunc = "GetAppliedEffect"; - - NWNX_PushArgumentInt(nNth); - NWNX_PushArgumentObject(oObject); - - NWNX_CallFunction(NWNX_Effect, sFunc); - - return NWNX_GetReturnValueEffect(); + NWNXPushInt(nNth); + NWNXPushObject(oObject); + NWNXCall(NWNX_Effect, "GetAppliedEffect"); + return NWNXPopEffect(); } diff --git a/_module/nss/nwnx_elc.nss b/_module/nss/nwnx_elc.nss index 362bac2e..57bb7fbf 100644 --- a/_module/nss/nwnx_elc.nss +++ b/_module/nss/nwnx_elc.nss @@ -2,7 +2,6 @@ /// @brief Replacement for ValidateCharacter: ELC & ILR /// @{ /// @file nwnx_elc.nss -#include "nwnx" const string NWNX_ELC = "NWNX_ELC"; ///< @private @@ -147,95 +146,71 @@ int NWNX_ELC_GetValidationFailureSpellID(); void NWNX_ELC_SetELCScript(string sScript) { - string sFunc = "SetELCScript"; - - NWNX_PushArgumentString(sScript); - NWNX_CallFunction(NWNX_ELC, sFunc); + NWNXPushString(sScript); + NWNXCall(NWNX_ELC, "SetELCScript"); } void NWNX_ELC_EnableCustomELCCheck(int bEnabled) { - string sFunc = "EnableCustomELCCheck"; - - NWNX_PushArgumentInt(bEnabled); - NWNX_CallFunction(NWNX_ELC, sFunc); + NWNXPushInt(bEnabled); + NWNXCall(NWNX_ELC, "EnableCustomELCCheck"); } void NWNX_ELC_SkipValidationFailure() { - string sFunc = "SkipValidationFailure"; - - NWNX_CallFunction(NWNX_ELC, sFunc); + NWNXCall(NWNX_ELC, "SkipValidationFailure"); } int NWNX_ELC_GetValidationFailureType() { - string sFunc = "GetValidationFailureType"; - - NWNX_CallFunction(NWNX_ELC, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_ELC, "GetValidationFailureType"); + return NWNXPopInt(); } int NWNX_ELC_GetValidationFailureSubType() { - string sFunc = "GetValidationFailureSubType"; - - NWNX_CallFunction(NWNX_ELC, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_ELC, "GetValidationFailureSubType"); + return NWNXPopInt(); } int NWNX_ELC_GetValidationFailureMessageStrRef() { - string sFunc = "GetValidationFailureMessageStrRef"; - - NWNX_CallFunction(NWNX_ELC, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_ELC, "GetValidationFailureMessageStrRef"); + return NWNXPopInt(); } void NWNX_ELC_SetValidationFailureMessageStrRef(int nStrRef) { - string sFunc = "SetValidationFailureMessageStrRef"; - - NWNX_PushArgumentInt(nStrRef); - NWNX_CallFunction(NWNX_ELC, sFunc); + NWNXPushInt(nStrRef); + NWNXCall(NWNX_ELC, "SetValidationFailureMessageStrRef"); } object NWNX_ELC_GetValidationFailureItem() { - string sFunc = "GetValidationFailureItem"; - - NWNX_CallFunction(NWNX_ELC, sFunc); - return NWNX_GetReturnValueObject(); + NWNXCall(NWNX_ELC, "GetValidationFailureItem"); + return NWNXPopObject(); } int NWNX_ELC_GetValidationFailureLevel() { - string sFunc = "GetValidationFailureLevel"; - - NWNX_CallFunction(NWNX_ELC, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_ELC, "GetValidationFailureLevel"); + return NWNXPopInt(); } int NWNX_ELC_GetValidationFailureSkillID() { - string sFunc = "GetValidationFailureSkillID"; - - NWNX_CallFunction(NWNX_ELC, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_ELC, "GetValidationFailureSkillID"); + return NWNXPopInt(); } int NWNX_ELC_GetValidationFailureFeatID() { - string sFunc = "GetValidationFailureFeatID"; - - NWNX_CallFunction(NWNX_ELC, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_ELC, "GetValidationFailureFeatID"); + return NWNXPopInt(); } int NWNX_ELC_GetValidationFailureSpellID() { - string sFunc = "GetValidationFailureSpellID"; - - NWNX_CallFunction(NWNX_ELC, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_ELC, "GetValidationFailureSpellID"); + return NWNXPopInt(); } diff --git a/_module/nss/nwnx_encounter.nss b/_module/nss/nwnx_encounter.nss index c067de31..8aadcabe 100644 --- a/_module/nss/nwnx_encounter.nss +++ b/_module/nss/nwnx_encounter.nss @@ -2,7 +2,6 @@ /// @brief Functions exposing additional encounter properties. /// @{ /// @file nwnx_encounter.nss -#include "nwnx" const string NWNX_Encounter = "NWNX_Encounter"; ///< @private @@ -122,205 +121,146 @@ void NWNX_Encounter_SetGeometry(object oTrigger, string sGeometry); void NWNX_Encounter_Destroy(object encounter) { - string sFunc = "Destroy"; - - NWNX_PushArgumentObject(encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "Destroy"); } int NWNX_Encounter_GetNumberOfCreaturesInEncounterList(object encounter) { - string sFunc = "GetNumberOfCreaturesInEncounterList"; - - NWNX_PushArgumentObject(encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetNumberOfCreaturesInEncounterList"); + return NWNXPopInt(); } struct NWNX_Encounter_CreatureListEntry NWNX_Encounter_GetEncounterCreatureByIndex(object encounter, int index) { - string sFunc = "GetEncounterCreatureByIndex"; struct NWNX_Encounter_CreatureListEntry creatureEntry; - - NWNX_PushArgumentInt(index); - NWNX_PushArgumentObject(encounter); - - NWNX_CallFunction(NWNX_Encounter, sFunc); - - creatureEntry.alreadyUsed = NWNX_GetReturnValueInt(); - creatureEntry.unique = NWNX_GetReturnValueInt(); - creatureEntry.challengeRating = NWNX_GetReturnValueFloat(); - creatureEntry.resref = NWNX_GetReturnValueString(); - + NWNXPushInt(index); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetEncounterCreatureByIndex"); + creatureEntry.alreadyUsed = NWNXPopInt(); + creatureEntry.unique = NWNXPopInt(); + creatureEntry.challengeRating = NWNXPopFloat(); + creatureEntry.resref = NWNXPopString(); return creatureEntry; } void NWNX_Encounter_SetEncounterCreatureByIndex(object encounter, int index, struct NWNX_Encounter_CreatureListEntry creatureEntry) { - string sFunc = "SetEncounterCreatureByIndex"; - - NWNX_PushArgumentInt(creatureEntry.alreadyUsed); - NWNX_PushArgumentInt(creatureEntry.unique); - NWNX_PushArgumentFloat(creatureEntry.challengeRating); - NWNX_PushArgumentString(creatureEntry.resref); - NWNX_PushArgumentInt(index); - NWNX_PushArgumentObject(encounter); - - NWNX_CallFunction(NWNX_Encounter, sFunc); + NWNXPushInt(creatureEntry.alreadyUsed); + NWNXPushInt(creatureEntry.unique); + NWNXPushFloat(creatureEntry.challengeRating); + NWNXPushString(creatureEntry.resref); + NWNXPushInt(index); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "SetEncounterCreatureByIndex"); } int NWNX_Encounter_GetFactionId(object encounter) { - string sFunc = "GetFactionId"; - - NWNX_PushArgumentObject(encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetFactionId"); + return NWNXPopInt(); } void NWNX_Encounter_SetFactionId(object encounter, int factionId) { - string sFunc = "SetFactionId"; - - NWNX_PushArgumentInt(factionId); - NWNX_PushArgumentObject(encounter); - - NWNX_CallFunction(NWNX_Encounter, sFunc); + NWNXPushInt(factionId); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "SetFactionId"); } int NWNX_Encounter_GetPlayerTriggeredOnly(object encounter) { - string sFunc = "GetPlayerTriggeredOnly"; - - NWNX_PushArgumentObject(encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetPlayerTriggeredOnly"); + return NWNXPopInt(); } void NWNX_Encounter_SetPlayerTriggeredOnly(object encounter, int playerTriggeredOnly) { - string sFunc = "SetPlayerTriggeredOnly"; - NWNX_PushArgumentInt(playerTriggeredOnly); - NWNX_PushArgumentObject(encounter); - - NWNX_CallFunction(NWNX_Encounter, sFunc); + NWNXPushInt(playerTriggeredOnly); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "SetPlayerTriggeredOnly"); } int NWNX_Encounter_GetCanReset(object encounter) { - string sFunc = "GetCanReset"; - - NWNX_PushArgumentObject(encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetCanReset"); + return NWNXPopInt(); } void NWNX_Encounter_SetCanReset(object encounter, int reset) { - string sFunc = "SetCanReset"; - - NWNX_PushArgumentInt(reset); - NWNX_PushArgumentObject(encounter); - - NWNX_CallFunction(NWNX_Encounter, sFunc); + NWNXPushInt(reset); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "SetCanReset"); } int NWNX_Encounter_GetResetTime(object encounter) { - string sFunc = "GetResetTime"; - - NWNX_PushArgumentObject(encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetResetTime"); + return NWNXPopInt(); } void NWNX_Encounter_SetResetTime(object encounter, int resetTime) { - string sFunc = "SetResetTime"; - - NWNX_PushArgumentInt(resetTime); - NWNX_PushArgumentObject(encounter); - - NWNX_CallFunction(NWNX_Encounter, sFunc); + NWNXPushInt(resetTime); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "SetResetTime"); } int NWNX_Encounter_GetNumberOfSpawnPoints(object encounter) { - string sFunc = "GetNumberOfSpawnPoints"; - - NWNX_PushArgumentObject(encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetNumberOfSpawnPoints"); + return NWNXPopInt(); } location NWNX_Encounter_GetSpawnPointByIndex(object encounter, int index) { - string sFunc = "GetSpawnPointByIndex"; - - NWNX_PushArgumentInt(index); - NWNX_PushArgumentObject(encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - float o = NWNX_GetReturnValueFloat(); - float z = NWNX_GetReturnValueFloat(); - float y = NWNX_GetReturnValueFloat(); - float x = NWNX_GetReturnValueFloat(); - - return Location(GetArea(encounter), Vector(x, y, z), o); + NWNXPushInt(index); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetSpawnPointByIndex"); + float fOrientation = NWNXPopFloat(); + vector vPosition = NWNXPopVector(); + return Location(GetArea(encounter), vPosition, fOrientation); } int NWNX_Encounter_GetMinNumSpawned(object encounter) { - string sFunc = "GetMinNumSpawned"; - - NWNX_PushArgumentObject(encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetMinNumSpawned"); + return NWNXPopInt(); } int NWNX_Encounter_GetMaxNumSpawned(object encounter) { - string sFunc = "GetMaxNumSpawned"; - - NWNX_PushArgumentObject(encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetMaxNumSpawned"); + return NWNXPopInt(); } int NWNX_Encounter_GetCurrentNumSpawned(object encounter) { - string sFunc = "GetCurrentNumSpawned"; - - NWNX_PushArgumentObject(encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetCurrentNumSpawned"); + return NWNXPopInt(); } string NWNX_Encounter_GetGeometry(object oEncounter) { - string sFunc = "GetGeometry"; - - NWNX_PushArgumentObject(oEncounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueString(); + NWNXPushObject(oEncounter); + NWNXCall(NWNX_Encounter, "GetGeometry"); + return NWNXPopString(); } void NWNX_Encounter_SetGeometry(object oEncounter, string sGeometry) { - string sFunc = "SetGeometry"; - - NWNX_PushArgumentString(sGeometry); - NWNX_PushArgumentObject(oEncounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); + NWNXPushString(sGeometry); + NWNXPushObject(oEncounter); + NWNXCall(NWNX_Encounter, "SetGeometry"); } diff --git a/_module/nss/nwnx_events.nss b/_module/nss/nwnx_events.nss index cd6ce5c8..41c0f476 100644 --- a/_module/nss/nwnx_events.nss +++ b/_module/nss/nwnx_events.nss @@ -2,7 +2,6 @@ /// @brief Provides an interface for plugins to create event-based systems, and exposes some events through that interface. /// @{ /// @file nwnx_events.nss -#include "nwnx" const string NWNX_Events = "NWNX_Events"; ///< @private @@ -562,6 +561,11 @@ _______________________________________ `OBJECT_SELF` = The player disconnecting from the server + Event Data Tag | Type | Notes + ----------------------|--------|------- + PLAYER_NAME | string | Player name of the disconnecting client + CDKEY | string | Public cdkey of the disconnecting client + @note This event also runs when a player connects to the server but cancels out of character select. OBJECT_SELF will be OBJECT_INVALID in this case. @@ -1650,6 +1654,18 @@ _______________________________________ NWNX_Events_AddIDToWhitelist("NWNX_ON_BROADCAST_SAFE_PROJECTILE_SPELL", SPELL_*); \endcode `TARGET_OBJECT_ID` will be `OBJECT_INVALID` if the projectile is cast at a location +_______________________________________ + ## SetExperience Events + - NWNX_ON_SET_EXPERIENCE_BEFORE + - NWNX_ON_SET_EXPERIENCE_AFTER + + `OBJECT_SELF` = The player the xp is being set on + + Event Data Tag | Type | Notes + ----------------------|--------|------- + XP | int | The xp value to be set. | + + @note To set a different xp value in the BEFORE event: Skip the event and call NWNX_Events_SetEventResult() with the new value. _______________________________________ ## Broadcast Attack of Opportunity Events - NWNX_ON_BROADCAST_ATTACK_OF_OPPORTUNITY_BEFORE @@ -2282,6 +2298,7 @@ string NWNX_Events_GetEventData(string tag); /// - Broadcast Safe Projectile event /// - Attack of Opportunity events /// - Creature Jump events +/// - SetExperience Events void NWNX_Events_SkipEvent(); /// Set the return value of the event. @@ -2355,163 +2372,127 @@ int NWNX_Events_GetNumSubscribers(string sEvent); void NWNX_Events_SubscribeEvent(string evt, string script) { - string sFunc = "SubscribeEvent"; - - NWNX_PushArgumentString(script); - NWNX_PushArgumentString(evt); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushString(script); + NWNXPushString(evt); + NWNXCall(NWNX_Events, "SubscribeEvent"); } void NWNX_Events_UnsubscribeEvent(string evt, string script) { - string sFunc = "UnsubscribeEvent"; - - NWNX_PushArgumentString(script); - NWNX_PushArgumentString(evt); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushString(script); + NWNXPushString(evt); + NWNXCall(NWNX_Events, "UnsubscribeEvent"); } void NWNX_Events_UnsubscribeAllStartingWith(string prefix) { - string sFunc = "UnsubscribeAllStartingWith"; - - NWNX_PushArgumentString(prefix); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushString(prefix); + NWNXCall(NWNX_Events, "UnsubscribeAllStartingWith"); } void NWNX_Events_SubscribeEventScriptChunk(string sEvent, string sScriptChunk, int bWrapIntoMain = TRUE) { - string sFunc = "SubscribeEventScriptChunk"; - - NWNX_PushArgumentInt(bWrapIntoMain); - NWNX_PushArgumentString(sScriptChunk); - NWNX_PushArgumentString(sEvent); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushInt(bWrapIntoMain); + NWNXPushString(sScriptChunk); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "SubscribeEventScriptChunk"); } void NWNX_Events_UnsubscribeEventScriptChunk(string sEvent, string sScriptChunk, int bWrapIntoMain = TRUE) { - string sFunc = "UnsubscribeEventScriptChunk"; - - NWNX_PushArgumentInt(bWrapIntoMain); - NWNX_PushArgumentString(sScriptChunk); - NWNX_PushArgumentString(sEvent); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushInt(bWrapIntoMain); + NWNXPushString(sScriptChunk); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "UnsubscribeEventScriptChunk"); } void NWNX_Events_PushEventData(string tag, string data) { - string sFunc = "PushEventData"; - - NWNX_PushArgumentString(data); - NWNX_PushArgumentString(tag); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushString(data); + NWNXPushString(tag); + NWNXCall(NWNX_Events, "PushEventData"); } int NWNX_Events_SignalEvent(string evt, object target) { - string sFunc = "SignalEvent"; - - NWNX_PushArgumentObject(target); - NWNX_PushArgumentString(evt); - NWNX_CallFunction(NWNX_Events, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(target); + NWNXPushString(evt); + NWNXCall(NWNX_Events, "SignalEvent"); + return NWNXPopInt(); } string NWNX_Events_GetEventData(string tag) { - string sFunc = "GetEventData"; - - NWNX_PushArgumentString(tag); - NWNX_CallFunction(NWNX_Events, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushString(tag); + NWNXCall(NWNX_Events, "GetEventData"); + return NWNXPopString(); } void NWNX_Events_SkipEvent() { - string sFunc = "SkipEvent"; - - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXCall(NWNX_Events, "SkipEvent"); } void NWNX_Events_SetEventResult(string data) { - string sFunc = "SetEventResult"; - - NWNX_PushArgumentString(data); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushString(data); + NWNXCall(NWNX_Events, "SetEventResult"); } string NWNX_Events_GetCurrentEvent() { - string sFunc = "GetCurrentEvent"; - - NWNX_CallFunction(NWNX_Events, sFunc); - return NWNX_GetReturnValueString(); + NWNXCall(NWNX_Events, "GetCurrentEvent"); + return NWNXPopString(); } void NWNX_Events_ToggleDispatchListMode(string sEvent, string sScriptOrChunk, int bEnable) { - string sFunc = "ToggleDispatchListMode"; - - NWNX_PushArgumentInt(bEnable); - NWNX_PushArgumentString(sScriptOrChunk); - NWNX_PushArgumentString(sEvent); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushInt(bEnable); + NWNXPushString(sScriptOrChunk); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "ToggleDispatchListMode"); } void NWNX_Events_AddObjectToDispatchList(string sEvent, string sScriptOrChunk, object oObject) { - string sFunc = "AddObjectToDispatchList"; - - NWNX_PushArgumentObject(oObject); - NWNX_PushArgumentString(sScriptOrChunk); - NWNX_PushArgumentString(sEvent); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushObject(oObject); + NWNXPushString(sScriptOrChunk); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "AddObjectToDispatchList"); } void NWNX_Events_RemoveObjectFromDispatchList(string sEvent, string sScriptOrChunk, object oObject) { - string sFunc = "RemoveObjectFromDispatchList"; - - NWNX_PushArgumentObject(oObject); - NWNX_PushArgumentString(sScriptOrChunk); - NWNX_PushArgumentString(sEvent); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushObject(oObject); + NWNXPushString(sScriptOrChunk); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "RemoveObjectFromDispatchList"); } void NWNX_Events_ToggleIDWhitelist(string sEvent, int bEnable) { - string sFunc = "ToggleIDWhitelist"; - - NWNX_PushArgumentInt(bEnable); - NWNX_PushArgumentString(sEvent); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushInt(bEnable); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "ToggleIDWhitelist"); } void NWNX_Events_AddIDToWhitelist(string sEvent, int nID) { - string sFunc = "AddIDToWhitelist"; - - NWNX_PushArgumentInt(nID); - NWNX_PushArgumentString(sEvent); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushInt(nID); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "AddIDToWhitelist"); } void NWNX_Events_RemoveIDFromWhitelist(string sEvent, int nID) { - string sFunc = "RemoveIDFromWhitelist"; - - NWNX_PushArgumentInt(nID); - NWNX_PushArgumentString(sEvent); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushInt(nID); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "RemoveIDFromWhitelist"); } int NWNX_Events_GetNumSubscribers(string sEvent) { - string sFunc = "GetNumSubscribers"; - - NWNX_PushArgumentString(sEvent); - NWNX_CallFunction(NWNX_Events, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "GetNumSubscribers"); + return NWNXPopInt(); } diff --git a/_module/nss/nwnx_feat.nss b/_module/nss/nwnx_feat.nss index 19746a6d..8b9468ea 100644 --- a/_module/nss/nwnx_feat.nss +++ b/_module/nss/nwnx_feat.nss @@ -2,7 +2,6 @@ /// @brief Define feat bonuses/penalties /// @{ /// @file nwnx_feat.nss -#include "nwnx" const string NWNX_Feat = "NWNX_Feat"; ///< @private @@ -53,14 +52,11 @@ void NWNX_Feat_SetFeatModifier(int iFeat, int iMod, int iParam1 = 0xDEADBEEF, in void NWNX_Feat_SetFeatModifier(int iFeat, int iMod, int iParam1 = 0xDEADBEEF, int iParam2 = 0xDEADBEEF, int iParam3 = 0xDEADBEEF, int iParam4 = 0xDEADBEEF) { - string sFunc = "SetFeatModifier"; - - NWNX_PushArgumentInt(iParam4); - NWNX_PushArgumentInt(iParam3); - NWNX_PushArgumentInt(iParam2); - NWNX_PushArgumentInt(iParam1); - NWNX_PushArgumentInt(iMod); - NWNX_PushArgumentInt(iFeat); - - NWNX_CallFunction(NWNX_Feat, sFunc); + NWNXPushInt(iParam4); + NWNXPushInt(iParam3); + NWNXPushInt(iParam2); + NWNXPushInt(iParam1); + NWNXPushInt(iMod); + NWNXPushInt(iFeat); + NWNXCall(NWNX_Feat, "SetFeatModifier"); } diff --git a/_module/nss/nwnx_feedback.nss b/_module/nss/nwnx_feedback.nss index 3e56e075..daf3280c 100644 --- a/_module/nss/nwnx_feedback.nss +++ b/_module/nss/nwnx_feedback.nss @@ -10,7 +10,6 @@ /// * -1 = Personal state is not set for Message /// @{ /// @file nwnx_feedback.nss -#include "nwnx" const string NWNX_Feedback = "NWNX_Feedback"; ///< @private @@ -402,95 +401,69 @@ void NWNX_Feedback_SetCombatLogMessageMode(int bWhitelist); int NWNX_Feedback_GetFeedbackMessageHidden(int nMessage, object oPC = OBJECT_INVALID) { - string sFunc = "GetMessageHidden"; - int nMessageType = 0; - - NWNX_PushArgumentInt(nMessage); - NWNX_PushArgumentInt(nMessageType); - NWNX_PushArgumentObject(oPC); - NWNX_CallFunction(NWNX_Feedback, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(nMessage); + NWNXPushInt(0); + NWNXPushObject(oPC); + NWNXCall(NWNX_Feedback, "GetMessageHidden"); + return NWNXPopInt(); } void NWNX_Feedback_SetFeedbackMessageHidden(int nMessage, int isHidden, object oPC = OBJECT_INVALID) { - string sFunc = "SetMessageHidden"; - int nMessageType = 0; - - NWNX_PushArgumentInt(isHidden); - NWNX_PushArgumentInt(nMessage); - NWNX_PushArgumentInt(nMessageType); - NWNX_PushArgumentObject(oPC); - NWNX_CallFunction(NWNX_Feedback, sFunc); + NWNXPushInt(isHidden); + NWNXPushInt(nMessage); + NWNXPushInt(0); + NWNXPushObject(oPC); + NWNXCall(NWNX_Feedback, "SetMessageHidden"); } int NWNX_Feedback_GetCombatLogMessageHidden(int nMessage, object oPC = OBJECT_INVALID) { - string sFunc = "GetMessageHidden"; - int nMessageType = 1; + NWNXPushInt(nMessage); + NWNXPushInt(1); + NWNXPushObject(oPC); + NWNXCall(NWNX_Feedback, "GetMessageHidden"); - NWNX_PushArgumentInt(nMessage); - NWNX_PushArgumentInt(nMessageType); - NWNX_PushArgumentObject(oPC); - NWNX_CallFunction(NWNX_Feedback, sFunc); - - return NWNX_GetReturnValueInt(); + return NWNXPopInt(); } void NWNX_Feedback_SetCombatLogMessageHidden(int nMessage, int isHidden, object oPC = OBJECT_INVALID) { - string sFunc = "SetMessageHidden"; - int nMessageType = 1; - - NWNX_PushArgumentInt(isHidden); - NWNX_PushArgumentInt(nMessage); - NWNX_PushArgumentInt(nMessageType); - NWNX_PushArgumentObject(oPC); - NWNX_CallFunction(NWNX_Feedback, sFunc); + NWNXPushInt(isHidden); + NWNXPushInt(nMessage); + NWNXPushInt(1); + NWNXPushObject(oPC); + NWNXCall(NWNX_Feedback, "SetMessageHidden"); } int NWNX_Feedback_GetJournalUpdatedMessageHidden(object oPC = OBJECT_INVALID) { - string sFunc = "GetMessageHidden"; - int nMessageType = 2; - - NWNX_PushArgumentInt(0); - NWNX_PushArgumentInt(nMessageType); - NWNX_PushArgumentObject(oPC); - NWNX_CallFunction(NWNX_Feedback, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(0); + NWNXPushInt(2); + NWNXPushObject(oPC); + NWNXCall(NWNX_Feedback, "GetMessageHidden"); + return NWNXPopInt(); } void NWNX_Feedback_SetJournalUpdatedMessageHidden(int isHidden, object oPC = OBJECT_INVALID) { - string sFunc = "SetMessageHidden"; - int nMessageType = 2; - - NWNX_PushArgumentInt(isHidden); - NWNX_PushArgumentInt(0); - NWNX_PushArgumentInt(nMessageType); - NWNX_PushArgumentObject(oPC); - NWNX_CallFunction(NWNX_Feedback, sFunc); + NWNXPushInt(isHidden); + NWNXPushInt(0); + NWNXPushInt(2); + NWNXPushObject(oPC); + NWNXCall(NWNX_Feedback, "SetMessageHidden"); } void NWNX_Feedback_SetFeedbackMessageMode(int bWhitelist) { - string sFunc = "SetFeedbackMode"; - int nMessageType = 0; - - NWNX_PushArgumentInt(bWhitelist); - NWNX_PushArgumentInt(nMessageType); - NWNX_CallFunction(NWNX_Feedback, sFunc); + NWNXPushInt(bWhitelist); + NWNXPushInt(0); + NWNXCall(NWNX_Feedback, "SetFeedbackMode"); } void NWNX_Feedback_SetCombatLogMessageMode(int bWhitelist) { - string sFunc = "SetFeedbackMode"; - int nMessageType = 1; - - NWNX_PushArgumentInt(bWhitelist); - NWNX_PushArgumentInt(nMessageType); - NWNX_CallFunction(NWNX_Feedback, sFunc); + NWNXPushInt(bWhitelist); + NWNXPushInt(1); + NWNXCall(NWNX_Feedback, "SetFeedbackMode"); } diff --git a/_module/nss/nwnx_httpclient.nss b/_module/nss/nwnx_httpclient.nss new file mode 100644 index 00000000..878dc3dd --- /dev/null +++ b/_module/nss/nwnx_httpclient.nss @@ -0,0 +1,107 @@ +/// @addtogroup httpclient HTTPClient +/// @brief NWNX HTTPClient +/// @{ +/// @file nwnx_httpclient.nss + +const string NWNX_HTTPClient = "NWNX_HTTPClient"; ///< @private + +/// @name Request Types +/// @anchor request_types +/// +/// @{ +const int NWNX_HTTPCLIENT_REQUEST_METHOD_GET = 0; +const int NWNX_HTTPCLIENT_REQUEST_METHOD_POST = 1; +const int NWNX_HTTPCLIENT_REQUEST_METHOD_DELETE = 2; +const int NWNX_HTTPCLIENT_REQUEST_METHOD_PATCH = 3; +const int NWNX_HTTPCLIENT_REQUEST_METHOD_PUT = 4; +const int NWNX_HTTPCLIENT_REQUEST_METHOD_OPTION = 5; +const int NWNX_HTTPCLIENT_REQUEST_METHOD_HEAD = 6; +///@} + +/// @name Content Types +/// @anchor content_types +/// +/// @{ +const int NWNX_HTTPCLIENT_CONTENT_TYPE_HTML = 0; +const int NWNX_HTTPCLIENT_CONTENT_TYPE_PLAINTEXT = 1; +const int NWNX_HTTPCLIENT_CONTENT_TYPE_JSON = 2; +const int NWNX_HTTPCLIENT_CONTENT_TYPE_FORM_URLENCODED = 3; +const int NWNX_HTTPCLIENT_CONTENT_TYPE_XML = 4; +///@} + +/// @name HTTP Authentication Types +/// @anchor auth_types +/// +/// @{ +const int NWNX_HTTPCLIENT_AUTH_TYPE_NONE = 0; +const int NWNX_HTTPCLIENT_AUTH_TYPE_BASIC = 1; +const int NWNX_HTTPCLIENT_AUTH_TYPE_DIGEST = 2; +const int NWNX_HTTPCLIENT_AUTH_TYPE_BEARER_TOKEN = 3; +///@} + +/// A structure for an HTTP Client Request +struct NWNX_HTTPClient_Request +{ + int nRequestMethod; ///< A @ref request_types "Request Type" + string sTag; ///< A unique tag for this request + string sHost; ///< The host domain name/IP address + string sPath; ///< The path for the url (include the leading /) + string sData; ///< The data being sent + int nContentType; ///< A @ref content_types "Content Type" + int nAuthType; ///< An @ref auth_types "Authentication Type" + string sAuthUserOrToken; ///< The authentication username or token + string sAuthPassword; ///< The authentication password (ignored if just using a token) + int nPort; ///< The host port + string sHeaders; ///< Pipe (|) delimited header pairs, e.g. "User-Agent: My NWNX HTTP Client|Accept: application/vnd.github.v3+json" +}; + +/// @brief Sends an http method to the given host. +/// @param s The structured NWNX_HTTPClient_Request information. +/// @return A unique identifier for the request for later access in the REQUEST_ID event data. +int NWNX_HTTPClient_SendRequest(struct NWNX_HTTPClient_Request s); + +/// @brief Returns an NWNX_HTTP_Client_Request structure +/// @param nRequestId The request id returned from NWNX_HTTPClient_SendRequest() +/// @return The structured NWNX_HTTPClient_Request information +struct NWNX_HTTPClient_Request NWNX_HTTPClient_GetRequest(int nRequestId); + +/// @} + +int NWNX_HTTPClient_SendRequest(struct NWNX_HTTPClient_Request s) +{ + NWNXPushString(s.sHeaders); + NWNXPushInt(s.nPort); + NWNXPushString(s.sAuthPassword); + NWNXPushString(s.sAuthUserOrToken); + NWNXPushInt(s.nAuthType); + NWNXPushString(s.sData); + NWNXPushInt(s.nContentType); + NWNXPushString(s.sPath); + NWNXPushString(s.sHost); + NWNXPushInt(s.nRequestMethod); + NWNXPushString(s.sTag); + NWNXCall(NWNX_HTTPClient, "SendRequest"); + return NWNXPopInt(); +} + +struct NWNX_HTTPClient_Request NWNX_HTTPClient_GetRequest(int nRequestId) +{ + NWNXPushInt(nRequestId); + NWNXCall(NWNX_HTTPClient, "GetRequest"); + + struct NWNX_HTTPClient_Request s; + + s.sTag = NWNXPopString(); + s.nRequestMethod = NWNXPopInt(); + s.sHost = NWNXPopString(); + s.sPath = NWNXPopString(); + s.nContentType = NWNXPopInt(); + s.sData = NWNXPopString(); + s.nAuthType = NWNXPopInt(); + s.sAuthUserOrToken = NWNXPopString(); + s.sAuthPassword = NWNXPopString(); + s.nPort = NWNXPopInt(); + s.sHeaders = NWNXPopString(); + + return s; +} diff --git a/_module/nss/nwnx_item.nss b/_module/nss/nwnx_item.nss index 01cd4ac0..c1d8779c 100644 --- a/_module/nss/nwnx_item.nss +++ b/_module/nss/nwnx_item.nss @@ -2,7 +2,6 @@ /// @brief Functions exposing additional item properties. /// @{ /// @file nwnx_item.nss -#include "nwnx" const string NWNX_Item = "NWNX_Item"; ///< @private @@ -134,169 +133,120 @@ int NWNX_Item_GetMinEquipLevelOverride(object oItem); void NWNX_Item_SetWeight(object oItem, int w) { - string sFunc = "SetWeight"; - - NWNX_PushArgumentInt(w); - NWNX_PushArgumentObject(oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); + NWNXPushInt(w); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "SetWeight"); } void NWNX_Item_SetBaseGoldPieceValue(object oItem, int g) { - string sFunc = "SetBaseGoldPieceValue"; - - NWNX_PushArgumentInt(g); - NWNX_PushArgumentObject(oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); + NWNXPushInt(g); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "SetBaseGoldPieceValue"); } void NWNX_Item_SetAddGoldPieceValue(object oItem, int g) { - string sFunc = "SetAddGoldPieceValue"; - - NWNX_PushArgumentInt(g); - NWNX_PushArgumentObject(oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); + NWNXPushInt(g); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "SetAddGoldPieceValue"); } int NWNX_Item_GetBaseGoldPieceValue(object oItem) { - string sFunc = "GetBaseGoldPieceValue"; - - NWNX_PushArgumentObject(oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "GetBaseGoldPieceValue"); + return NWNXPopInt(); } int NWNX_Item_GetAddGoldPieceValue(object oItem) { - string sFunc = "GetAddGoldPieceValue"; - - NWNX_PushArgumentObject(oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "GetAddGoldPieceValue"); + return NWNXPopInt(); } void NWNX_Item_SetBaseItemType(object oItem, int nBaseItem) { - string sFunc = "SetBaseItemType"; - - NWNX_PushArgumentInt(nBaseItem); - NWNX_PushArgumentObject(oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); + NWNXPushInt(nBaseItem); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "SetBaseItemType"); } void NWNX_Item_SetItemAppearance(object oItem, int nType, int nIndex, int nValue, int bUpdateCreatureAppearance = FALSE) { - string sFunc = "SetItemAppearance"; - - NWNX_PushArgumentInt(bUpdateCreatureAppearance); - NWNX_PushArgumentInt(nValue); - NWNX_PushArgumentInt(nIndex); - NWNX_PushArgumentInt(nType); - NWNX_PushArgumentObject(oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); - + NWNXPushInt(bUpdateCreatureAppearance); + NWNXPushInt(nValue); + NWNXPushInt(nIndex); + NWNXPushInt(nType); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "SetItemAppearance"); } string NWNX_Item_GetEntireItemAppearance(object oItem) { - string sFunc = "GetEntireItemAppearance"; - - NWNX_PushArgumentObject(oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "GetEntireItemAppearance"); + return NWNXPopString(); } void NWNX_Item_RestoreItemAppearance(object oItem, string sApp) { - string sFunc = "RestoreItemAppearance"; - - NWNX_PushArgumentString(sApp); - NWNX_PushArgumentObject(oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); + NWNXPushString(sApp); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "RestoreItemAppearance"); } int NWNX_Item_GetBaseArmorClass(object oItem) { - string sFunc = "GetBaseArmorClass"; - - NWNX_PushArgumentObject(oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "GetBaseArmorClass"); + return NWNXPopInt(); } int NWNX_Item_GetMinEquipLevel(object oItem) { - string sFunc = "GetMinEquipLevel"; - - NWNX_PushArgumentObject(oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "GetMinEquipLevel"); + return NWNXPopInt(); } int NWNX_Item_MoveTo(object oItem, object oTarget, int bHideAllFeedback = FALSE) { - string sFunc = "MoveTo"; - - NWNX_PushArgumentInt(bHideAllFeedback); - NWNX_PushArgumentObject(oTarget); - NWNX_PushArgumentObject(oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(bHideAllFeedback); + NWNXPushObject(oTarget); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "MoveTo"); + return NWNXPopInt(); } void NWNX_Item_SetMinEquipLevelModifier(object oItem, int nModifier, int bPersist = TRUE) { - string sFunc = "SetMinEquipLevelModifier"; - - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentInt(nModifier); - NWNX_PushArgumentObject(oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); + NWNXPushInt(bPersist); + NWNXPushInt(nModifier); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "SetMinEquipLevelModifier"); } int NWNX_Item_GetMinEquipLevelModifier(object oItem) { - string sFunc = "GetMinEquipLevelModifier"; - - NWNX_PushArgumentObject(oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "GetMinEquipLevelModifier"); + return NWNXPopInt(); } void NWNX_Item_SetMinEquipLevelOverride(object oItem, int nOverride, int bPersist = TRUE) { - string sFunc = "SetMinEquipLevelOverride"; - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentInt(nOverride); - NWNX_PushArgumentObject(oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); + NWNXPushInt(bPersist); + NWNXPushInt(nOverride); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "SetMinEquipLevelOverride"); } int NWNX_Item_GetMinEquipLevelOverride(object oItem) { - string sFunc = "GetMinEquipLevelOverride"; - - NWNX_PushArgumentObject(oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "GetMinEquipLevelOverride"); + return NWNXPopInt(); } diff --git a/_module/nss/nwnx_itemprop.nss b/_module/nss/nwnx_itemprop.nss index 2e84b3f0..d956add0 100644 --- a/_module/nss/nwnx_itemprop.nss +++ b/_module/nss/nwnx_itemprop.nss @@ -2,7 +2,6 @@ /// @brief Utility functions to manipulate the builtin itemproperty type. /// @{ /// @file nwnx_itemprop.nss -#include "nwnx" const string NWNX_ItemProperty = "NWNX_ItemProperty"; ///< @private @@ -44,70 +43,58 @@ struct NWNX_IPUnpacked NWNX_ItemProperty_GetActiveProperty(object oItem, int nIn struct NWNX_IPUnpacked NWNX_ItemProperty_UnpackIP(itemproperty ip) { - string sFunc = "UnpackIP"; - - NWNX_PushArgumentItemProperty(ip); - NWNX_CallFunction(NWNX_ItemProperty, sFunc); - + NWNXPushItemProperty(ip); + NWNXCall(NWNX_ItemProperty, "UnpackIP"); struct NWNX_IPUnpacked n; - - n.sID = NWNX_GetReturnValueString(); - n.nProperty = NWNX_GetReturnValueInt(); - n.nSubType = NWNX_GetReturnValueInt(); - n.nCostTable = NWNX_GetReturnValueInt(); - n.nCostTableValue = NWNX_GetReturnValueInt(); - n.nParam1 = NWNX_GetReturnValueInt(); - n.nParam1Value = NWNX_GetReturnValueInt(); - n.nUsesPerDay = NWNX_GetReturnValueInt(); - n.nChanceToAppear = NWNX_GetReturnValueInt(); - n.bUsable = NWNX_GetReturnValueInt(); - n.nSpellId = NWNX_GetReturnValueInt(); - n.oCreator = NWNX_GetReturnValueObject(); - n.sTag = NWNX_GetReturnValueString(); - + n.sID = NWNXPopString(); + n.nProperty = NWNXPopInt(); + n.nSubType = NWNXPopInt(); + n.nCostTable = NWNXPopInt(); + n.nCostTableValue = NWNXPopInt(); + n.nParam1 = NWNXPopInt(); + n.nParam1Value = NWNXPopInt(); + n.nUsesPerDay = NWNXPopInt(); + n.nChanceToAppear = NWNXPopInt(); + n.bUsable = NWNXPopInt(); + n.nSpellId = NWNXPopInt(); + n.oCreator = NWNXPopObject(); + n.sTag = NWNXPopString(); return n; } itemproperty NWNX_ItemProperty_PackIP(struct NWNX_IPUnpacked n) { - string sFunc = "PackIP"; - - NWNX_PushArgumentString(n.sTag); - NWNX_PushArgumentObject(n.oCreator); - NWNX_PushArgumentInt(n.nSpellId); - NWNX_PushArgumentInt(n.bUsable); - NWNX_PushArgumentInt(n.nChanceToAppear); - NWNX_PushArgumentInt(n.nUsesPerDay); - NWNX_PushArgumentInt(n.nParam1Value); - NWNX_PushArgumentInt(n.nParam1); - NWNX_PushArgumentInt(n.nCostTableValue); - NWNX_PushArgumentInt(n.nCostTable); - NWNX_PushArgumentInt(n.nSubType); - NWNX_PushArgumentInt(n.nProperty); - - NWNX_CallFunction(NWNX_ItemProperty, sFunc); - return NWNX_GetReturnValueItemProperty(); + NWNXPushString(n.sTag); + NWNXPushObject(n.oCreator); + NWNXPushInt(n.nSpellId); + NWNXPushInt(n.bUsable); + NWNXPushInt(n.nChanceToAppear); + NWNXPushInt(n.nUsesPerDay); + NWNXPushInt(n.nParam1Value); + NWNXPushInt(n.nParam1); + NWNXPushInt(n.nCostTableValue); + NWNXPushInt(n.nCostTable); + NWNXPushInt(n.nSubType); + NWNXPushInt(n.nProperty); + NWNXCall(NWNX_ItemProperty, "PackIP"); + return NWNXPopItemProperty(); } struct NWNX_IPUnpacked NWNX_ItemProperty_GetActiveProperty(object oItem, int nIndex) { - string sFunc = "GetActiveProperty"; - NWNX_PushArgumentInt(nIndex); - NWNX_PushArgumentObject(oItem); - NWNX_CallFunction(NWNX_ItemProperty, sFunc); - + NWNXPushInt(nIndex); + NWNXPushObject(oItem); + NWNXCall(NWNX_ItemProperty, "GetActiveProperty"); struct NWNX_IPUnpacked n; - - n.nProperty = NWNX_GetReturnValueInt(); - n.nSubType = NWNX_GetReturnValueInt(); - n.nCostTable = NWNX_GetReturnValueInt(); - n.nCostTableValue = NWNX_GetReturnValueInt(); - n.nParam1 = NWNX_GetReturnValueInt(); - n.nParam1Value = NWNX_GetReturnValueInt(); - n.nUsesPerDay = NWNX_GetReturnValueInt(); - n.nChanceToAppear = NWNX_GetReturnValueInt(); - n.bUsable = NWNX_GetReturnValueInt(); - n.sTag = NWNX_GetReturnValueString(); - + n.nProperty = NWNXPopInt(); + n.nSubType = NWNXPopInt(); + n.nCostTable = NWNXPopInt(); + n.nCostTableValue = NWNXPopInt(); + n.nParam1 = NWNXPopInt(); + n.nParam1Value = NWNXPopInt(); + n.nUsesPerDay = NWNXPopInt(); + n.nChanceToAppear = NWNXPopInt(); + n.bUsable = NWNXPopInt(); + n.sTag = NWNXPopString(); return n; } diff --git a/_module/nss/nwnx_lua.nss b/_module/nss/nwnx_lua.nss index 60a645ae..42bf158e 100644 --- a/_module/nss/nwnx_lua.nss +++ b/_module/nss/nwnx_lua.nss @@ -2,7 +2,6 @@ /// @brief Execute Lua code and generate events in NWScript /// @{ /// @file nwnx_lua.nss -#include "nwnx" const string NWNX_Lua = "NWNX_Lua"; ///< @private @@ -25,27 +24,21 @@ void NWNX_Lua_RunEvent(string sEvent, object oObject, string sExtra=""); void NWNX_Lua_EvalVoid(string sCode) { - string sFunc = "EvalVoid"; - - NWNX_PushArgumentString(sCode); - NWNX_CallFunction(NWNX_Lua, sFunc); + NWNXPushString(sCode); + NWNXCall(NWNX_Lua, "EvalVoid"); } string NWNX_Lua_Eval(string sCode) { - string sFunc = "Eval"; - - NWNX_PushArgumentString(sCode); - NWNX_CallFunction(NWNX_Lua, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushString(sCode); + NWNXCall(NWNX_Lua, "Eval"); + return NWNXPopString(); } void NWNX_Lua_RunEvent(string sEvent, object oObject, string sExtra="") { - string sFunc = "RunEvent"; - - NWNX_PushArgumentString(sExtra); - NWNX_PushArgumentObject(oObject); - NWNX_PushArgumentString(sEvent); - NWNX_CallFunction(NWNX_Lua, sFunc); + NWNXPushString(sExtra); + NWNXPushObject(oObject); + NWNXPushString(sEvent); + NWNXCall(NWNX_Lua, "RunEvent"); } diff --git a/_module/nss/nwnx_nostack.nss b/_module/nss/nwnx_nostack.nss index 23a55e1b..159214f9 100644 --- a/_module/nss/nwnx_nostack.nss +++ b/_module/nss/nwnx_nostack.nss @@ -2,7 +2,6 @@ /// @brief Functions to allow more control over ability/skill/bonuses stacking. /// @{ /// @file nwnx_nostack.nss -#include "nwnx" const string NWNX_NoStack = "NWNX_NoStack"; ///< @private @@ -31,10 +30,7 @@ void NWNX_NoStack_SetSpellBonusType(int spell, int type); void NWNX_NoStack_SetSpellBonusType(int spell, int type) { - string sFunc = "SetSpellBonusType"; - - NWNX_PushArgumentInt(type); - NWNX_PushArgumentInt(spell); - - NWNX_CallFunction(NWNX_NoStack, sFunc); + NWNXPushInt(type); + NWNXPushInt(spell); + NWNXCall(NWNX_NoStack, "SetSpellBonusType"); } diff --git a/_module/nss/nwnx_nwsqliteext.nss b/_module/nss/nwnx_nwsqliteext.nss index b4b6b717..953a863a 100644 --- a/_module/nss/nwnx_nwsqliteext.nss +++ b/_module/nss/nwnx_nwsqliteext.nss @@ -2,7 +2,6 @@ /// @brief Various extensions for the game's built-in sqlite database. /// @{ /// @file nwnx_nwsqliteext.nss -#include "nwnx" const string NWNX_NWSQLiteExtensions = "NWNX_NWSQLiteExtensions"; ///< @private @@ -17,9 +16,9 @@ int NWNX_NWSQLiteExtensions_CreateVirtual2DATable(string s2DA, string sColumnTyp int NWNX_NWSQLiteExtensions_CreateVirtual2DATable(string s2DA, string sColumnTypeHints = "", string sTableName = "") { - NWNX_PushArgumentString(sTableName); - NWNX_PushArgumentString(sColumnTypeHints); - NWNX_PushArgumentString(s2DA); - NWNX_CallFunction(NWNX_NWSQLiteExtensions, "CreateVirtual2DATable"); - return NWNX_GetReturnValueInt(); + NWNXPushString(sTableName); + NWNXPushString(sColumnTypeHints); + NWNXPushString(s2DA); + NWNXCall(NWNX_NWSQLiteExtensions, "CreateVirtual2DATable"); + return NWNXPopInt(); } diff --git a/_module/nss/nwnx_object.nss b/_module/nss/nwnx_object.nss index acab7d82..9e51a5ea 100644 --- a/_module/nss/nwnx_object.nss +++ b/_module/nss/nwnx_object.nss @@ -2,7 +2,6 @@ /// @brief Functions exposing additional object properties. /// @{ /// @file nwnx_object.nss -#include "nwnx" const string NWNX_Object = "NWNX_Object"; ///< @private @@ -437,641 +436,475 @@ void NWNX_Object_SetLocalizedName(object oObject, string sName, int nLanguage, i int NWNX_Object_GetLocalVariableCount(object obj) { - string sFunc = "GetLocalVariableCount"; - - NWNX_PushArgumentObject(obj); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "GetLocalVariableCount"); + return NWNXPopInt(); } struct NWNX_Object_LocalVariable NWNX_Object_GetLocalVariable(object obj, int index) { - string sFunc = "GetLocalVariable"; - - NWNX_PushArgumentInt(index); - NWNX_PushArgumentObject(obj); - NWNX_CallFunction(NWNX_Object, sFunc); - + NWNXPushInt(index); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "GetLocalVariable"); struct NWNX_Object_LocalVariable var; - var.key = NWNX_GetReturnValueString(); - var.type = NWNX_GetReturnValueInt(); + var.key = NWNXPopString(); + var.type = NWNXPopInt(); return var; } void NWNX_Object_SetPosition(object oObject, vector vPosition, int bUpdateSubareas = TRUE) { - string sFunc = "SetPosition"; - - NWNX_PushArgumentInt(bUpdateSubareas); - NWNX_PushArgumentFloat(vPosition.x); - NWNX_PushArgumentFloat(vPosition.y); - NWNX_PushArgumentFloat(vPosition.z); - NWNX_PushArgumentObject(oObject); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(bUpdateSubareas); + NWNXPushVector(vPosition); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetPosition"); } int NWNX_Object_GetCurrentHitPoints(object creature) { - string sFunc = "GetCurrentHitPoints"; - - NWNX_PushArgumentObject(creature); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(creature); + NWNXCall(NWNX_Object, "GetCurrentHitPoints"); + return NWNXPopInt(); } void NWNX_Object_SetCurrentHitPoints(object creature, int hp) { - string sFunc = "SetCurrentHitPoints"; - - NWNX_PushArgumentInt(hp); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(hp); + NWNXPushObject(creature); + NWNXCall(NWNX_Object, "SetCurrentHitPoints"); } void NWNX_Object_SetMaxHitPoints(object creature, int hp) { - string sFunc = "SetMaxHitPoints"; - - NWNX_PushArgumentInt(hp); - NWNX_PushArgumentObject(creature); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(hp); + NWNXPushObject(creature); + NWNXCall(NWNX_Object, "SetMaxHitPoints"); } string NWNX_Object_Serialize(object obj) { - string sFunc = "Serialize"; - - NWNX_PushArgumentObject(obj); - - NWNX_CallFunction(NWNX_Object, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "Serialize"); + return NWNXPopString(); } object NWNX_Object_Deserialize(string serialized) { - string sFunc = "Deserialize"; - - NWNX_PushArgumentString(serialized); - - NWNX_CallFunction(NWNX_Object, sFunc); - return NWNX_GetReturnValueObject(); + NWNXPushString(serialized); + NWNXCall(NWNX_Object, "Deserialize"); + return NWNXPopObject(); } string NWNX_Object_GetDialogResref(object obj) { - string sFunc = "GetDialogResref"; - - NWNX_PushArgumentObject(obj); - - NWNX_CallFunction(NWNX_Object, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "GetDialogResref"); + return NWNXPopString(); } void NWNX_Object_SetDialogResref(object obj, string dialog) { - string sFunc = "SetDialogResref"; - - NWNX_PushArgumentString(dialog); - NWNX_PushArgumentObject(obj); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushString(dialog); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "SetDialogResref"); } void NWNX_Object_SetAppearance(object oPlaceable, int nAppearance) { - string sFunc = "SetAppearance"; - - NWNX_PushArgumentInt(nAppearance); - NWNX_PushArgumentObject(oPlaceable); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(nAppearance); + NWNXPushObject(oPlaceable); + NWNXCall(NWNX_Object, "SetAppearance"); } int NWNX_Object_GetAppearance(object oPlaceable) { - string sFunc = "GetAppearance"; - - NWNX_PushArgumentObject(oPlaceable); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oPlaceable); + NWNXCall(NWNX_Object, "GetAppearance"); + return NWNXPopInt(); } int NWNX_Object_GetHasVisualEffect(object obj, int nVFX) { - string sFunc = "GetHasVisualEffect"; - - NWNX_PushArgumentInt(nVFX); - NWNX_PushArgumentObject(obj); - - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(nVFX); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "GetHasVisualEffect"); + return NWNXPopInt(); } int NWNX_Object_GetDamageImmunity(object obj, int damageType) { - string sFunc = "GetDamageImmunity"; - - NWNX_PushArgumentInt(damageType); - NWNX_PushArgumentObject(obj); - - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(damageType); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "GetDamageImmunity"); + return NWNXPopInt(); } void NWNX_Object_AddToArea(object obj, object area, vector pos) { - string sFunc = "AddToArea"; - - NWNX_PushArgumentFloat(pos.z); - NWNX_PushArgumentFloat(pos.y); - NWNX_PushArgumentFloat(pos.x); - NWNX_PushArgumentObject(area); - NWNX_PushArgumentObject(obj); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushVector(pos); + NWNXPushObject(area); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "AddToArea"); } int NWNX_Object_GetPlaceableIsStatic(object obj) { - string sFunc = "GetPlaceableIsStatic"; - - NWNX_PushArgumentObject(obj); - - NWNX_CallFunction(NWNX_Object, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "GetPlaceableIsStatic"); + return NWNXPopInt(); } void NWNX_Object_SetPlaceableIsStatic(object obj, int isStatic) { - string sFunc = "SetPlaceableIsStatic"; - - NWNX_PushArgumentInt(isStatic); - NWNX_PushArgumentObject(obj); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(isStatic); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "SetPlaceableIsStatic"); } int NWNX_Object_GetAutoRemoveKey(object obj) { - string sFunc = "GetAutoRemoveKey"; - - NWNX_PushArgumentObject(obj); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "GetAutoRemoveKey"); + return NWNXPopInt(); } void NWNX_Object_SetAutoRemoveKey(object obj, int bRemoveKey) { - string sFunc = "SetAutoRemoveKey"; - - NWNX_PushArgumentInt(bRemoveKey); - NWNX_PushArgumentObject(obj); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(bRemoveKey); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "SetAutoRemoveKey"); } string NWNX_Object_GetTriggerGeometry(object oTrigger) { - string sFunc = "GetTriggerGeometry"; - - NWNX_PushArgumentObject(oTrigger); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueString(); + NWNXPushObject(oTrigger); + NWNXCall(NWNX_Object, "GetTriggerGeometry"); + return NWNXPopString(); } void NWNX_Object_SetTriggerGeometry(object oTrigger, string sGeometry) { - string sFunc = "SetTriggerGeometry"; - - NWNX_PushArgumentString(sGeometry); - NWNX_PushArgumentObject(oTrigger); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushString(sGeometry); + NWNXPushObject(oTrigger); + NWNXCall(NWNX_Object, "SetTriggerGeometry"); } void NWNX_Object_Export(object oObject, string sFileName, string sAlias = "NWNX") { - string sFunc = "Export"; - - NWNX_PushArgumentString(sAlias); - NWNX_PushArgumentString(sFileName); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushString(sAlias); + NWNXPushString(sFileName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "Export"); } int NWNX_Object_GetInt(object oObject, string sVarName) { - string sFunc = "GetInt"; - - NWNX_PushArgumentString(sVarName); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetInt"); + return NWNXPopInt(); } void NWNX_Object_SetInt(object oObject, string sVarName, int nValue, int bPersist) { - string sFunc = "SetInt"; - - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentInt(nValue); - NWNX_PushArgumentString(sVarName); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(bPersist); + NWNXPushInt(nValue); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetInt"); } void NWNX_Object_DeleteInt(object oObject, string sVarName) { - string sFunc = "DeleteInt"; - - NWNX_PushArgumentString(sVarName); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "DeleteInt"); } string NWNX_Object_GetString(object oObject, string sVarName) { - string sFunc = "GetString"; - - NWNX_PushArgumentString(sVarName); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueString(); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetString"); + return NWNXPopString(); } void NWNX_Object_SetString(object oObject, string sVarName, string sValue, int bPersist) { - string sFunc = "SetString"; - - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentString(sValue); - NWNX_PushArgumentString(sVarName); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(bPersist); + NWNXPushString(sValue); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetString"); } void NWNX_Object_DeleteString(object oObject, string sVarName) { - string sFunc = "DeleteString"; - - NWNX_PushArgumentString(sVarName); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "DeleteString"); } float NWNX_Object_GetFloat(object oObject, string sVarName) { - string sFunc = "GetFloat"; - - NWNX_PushArgumentString(sVarName); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueFloat(); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetFloat"); + return NWNXPopFloat(); } void NWNX_Object_SetFloat(object oObject, string sVarName, float fValue, int bPersist) { - string sFunc = "SetFloat"; - - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentFloat(fValue); - NWNX_PushArgumentString(sVarName); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(bPersist); + NWNXPushFloat(fValue); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetFloat"); } void NWNX_Object_DeleteFloat(object oObject, string sVarName) { - string sFunc = "DeleteFloat"; - - NWNX_PushArgumentString(sVarName); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "DeleteFloat"); } void NWNX_Object_DeleteVarRegex(object oObject, string sRegex) { - string sFunc = "DeleteVarRegex"; - - NWNX_PushArgumentString(sRegex); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushString(sRegex); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "DeleteVarRegex"); } int NWNX_Object_GetPositionIsInTrigger(object oTrigger, vector vPosition) { - string sFunc = "GetPositionIsInTrigger"; - - NWNX_PushArgumentFloat(vPosition.z); - NWNX_PushArgumentFloat(vPosition.y); - NWNX_PushArgumentFloat(vPosition.x); - NWNX_PushArgumentObject(oTrigger); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushVector(vPosition); + NWNXPushObject(oTrigger); + NWNXCall(NWNX_Object, "GetPositionIsInTrigger"); + return NWNXPopInt(); } int NWNX_Object_GetInternalObjectType(object oObject) { - string sFunc = "GetInternalObjectType"; - - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetInternalObjectType"); + return NWNXPopInt(); } int NWNX_Object_AcquireItem(object oObject, object oItem) { - string sFunc = "AcquireItem"; - - NWNX_PushArgumentObject(oItem); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oItem); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "AcquireItem"); + return NWNXPopInt(); } void NWNX_Object_ClearSpellEffectsOnOthers(object oObject) { - string sFunc = "ClearSpellEffectsOnOthers"; - - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "ClearSpellEffectsOnOthers"); } string NWNX_Object_PeekUUID(object oObject) { - string sFunc = "PeekUUID"; - - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueString(); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "PeekUUID"); + return NWNXPopString(); } int NWNX_Object_GetDoorHasVisibleModel(object oDoor) { - string sFunc = "GetDoorHasVisibleModel"; - - NWNX_PushArgumentObject(oDoor); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oDoor); + NWNXCall(NWNX_Object, "GetDoorHasVisibleModel"); + return NWNXPopInt(); } int NWNX_Object_GetIsDestroyable(object oObject) { - string sFunc = "GetIsDestroyable"; - - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetIsDestroyable"); + return NWNXPopInt(); } int NWNX_Object_DoSpellImmunity(object oDefender, object oCaster, int nSpellId=-1) { - string sFunc = "DoSpellImmunity"; - NWNX_PushArgumentInt(nSpellId); - NWNX_PushArgumentObject(oCaster); - NWNX_PushArgumentObject(oDefender); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(nSpellId); + NWNXPushObject(oCaster); + NWNXPushObject(oDefender); + NWNXCall(NWNX_Object, "DoSpellImmunity"); + return NWNXPopInt(); } int NWNX_Object_DoSpellLevelAbsorption(object oDefender, object oCaster, int nSpellId=-1, int nSpellLevel=-1, int nSpellSchool=-1) { - string sFunc = "DoSpellLevelAbsorption"; - NWNX_PushArgumentInt(nSpellSchool); - NWNX_PushArgumentInt(nSpellLevel); - NWNX_PushArgumentInt(nSpellId); - NWNX_PushArgumentObject(oCaster); - NWNX_PushArgumentObject(oDefender); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(nSpellSchool); + NWNXPushInt(nSpellLevel); + NWNXPushInt(nSpellId); + NWNXPushObject(oCaster); + NWNXPushObject(oDefender); + NWNXCall(NWNX_Object, "DoSpellLevelAbsorption"); + return NWNXPopInt(); } void NWNX_Object_SetHasInventory(object obj, int bHasInventory) { - string sFunc = "SetHasInventory"; - - NWNX_PushArgumentInt(bHasInventory); - NWNX_PushArgumentObject(obj); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(bHasInventory); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "SetHasInventory"); } int NWNX_Object_GetCurrentAnimation(object oObject) { - string sFunc = "GetCurrentAnimation"; - - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetCurrentAnimation"); + return NWNXPopInt(); } int NWNX_Object_GetAILevel(object oObject) { - string sFunc = "GetAILevel"; - - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetAILevel"); + return NWNXPopInt(); } void NWNX_Object_SetAILevel(object oObject, int nLevel) { - string sFunc = "SetAILevel"; - - NWNX_PushArgumentInt(nLevel); - NWNX_PushArgumentObject(oObject); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(nLevel); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetAILevel"); } string NWNX_Object_GetMapNote(object oObject, int nID = 0, int nGender = 0) { - string sFunc = "GetMapNote"; - - NWNX_PushArgumentInt(nGender); - NWNX_PushArgumentInt(nID); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueString(); + NWNXPushInt(nGender); + NWNXPushInt(nID); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetMapNote"); + return NWNXPopString(); } void NWNX_Object_SetMapNote(object oObject, string sMapNote, int nID = 0, int nGender = 0) { - string sFunc = "SetMapNote"; - - NWNX_PushArgumentInt(nGender); - NWNX_PushArgumentInt(nID); - NWNX_PushArgumentString(sMapNote); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(nGender); + NWNXPushInt(nID); + NWNXPushString(sMapNote); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetMapNote"); } int NWNX_Object_GetLastSpellCastFeat(object oObject) { - string sFunc = "GetLastSpellCastFeat"; - - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetLastSpellCastFeat"); + return NWNXPopInt(); } void NWNX_Object_SetLastTriggered(object oObject, object oLast) { - string sFunc = "SetLastTriggered"; - - NWNX_PushArgumentObject(oLast); - NWNX_PushArgumentObject(oObject); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushObject(oLast); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetLastTriggered"); } float NWNX_Object_GetAoEObjectDurationRemaining(object oAoE) { - string sFunc = "GetAoEObjectDurationRemaining"; - - NWNX_PushArgumentObject(oAoE); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueFloat(); + NWNXPushObject(oAoE); + NWNXCall(NWNX_Object, "GetAoEObjectDurationRemaining"); + return NWNXPopFloat(); } void NWNX_Object_SetConversationPrivate(object oObject, int bPrivate) { - string sFunc = "SetConversationPrivate"; - - NWNX_PushArgumentInt(bPrivate); - NWNX_PushArgumentObject(oObject); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(bPrivate); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetConversationPrivate"); } void NWNX_Object_SetAoEObjectRadius(object oAoE, float fRadius) { - string sFunc = "SetAoEObjectRadius"; - - NWNX_PushArgumentFloat(fRadius); - NWNX_PushArgumentObject(oAoE); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushFloat(fRadius); + NWNXPushObject(oAoE); + NWNXCall(NWNX_Object, "SetAoEObjectRadius"); } float NWNX_Object_GetAoEObjectRadius(object oAoE) { - string sFunc = "GetAoEObjectRadius"; - - NWNX_PushArgumentObject(oAoE); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueFloat(); + NWNXPushObject(oAoE); + NWNXCall(NWNX_Object, "GetAoEObjectRadius"); + return NWNXPopFloat(); } int NWNX_Object_GetLastSpellCastSpontaneous(object oObject) { - string sFunc = "GetLastSpellCastSpontaneous"; - - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetLastSpellCastSpontaneous"); + return NWNXPopInt(); } int NWNX_Object_GetLastSpellCastDomainLevel(object oObject) { - string sFunc = "GetLastSpellCastDomainLevel"; - - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetLastSpellCastDomainLevel"); + return NWNXPopInt(); } void NWNX_Object_ForceAssignUUID(object oObject, string sUUID) { - string sFunc = "ForceAssignUUID"; - - NWNX_PushArgumentString(sUUID); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushString(sUUID); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "ForceAssignUUID"); } int NWNX_Object_GetInventoryItemCount(object oObject) { - string sFunc = "GetInventoryItemCount"; - - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetInventoryItemCount"); + return NWNXPopInt(); } void NWNX_Object_OverrideSpellProjectileVFX(object oCreature, int nProjectileType = -1, int nProjectilePathType = -1, int nSpellID = -1, int bPersist = FALSE) { - string sFunc = "OverrideSpellProjectileVFX"; - - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentInt(nSpellID); - NWNX_PushArgumentInt(nProjectilePathType); - NWNX_PushArgumentInt(nProjectileType); - NWNX_PushArgumentObject(oCreature); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(bPersist); + NWNXPushInt(nSpellID); + NWNXPushInt(nProjectilePathType); + NWNXPushInt(nProjectileType); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Object, "OverrideSpellProjectileVFX"); } int NWNX_Object_GetLastSpellInstant() { - string sFunc = "GetLastSpellInstant"; - NWNX_CallFunction(NWNX_Object, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Object, "GetLastSpellInstant"); + return NWNXPopInt(); } void NWNX_Object_SetTrapCreator(object oObject, object oCreator) { - string sFunc = "SetTrapCreator"; - NWNX_PushArgumentObject(oCreator); - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushObject(oCreator); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetTrapCreator"); } string NWNX_Object_GetLocalizedName(object oObject, int nLanguage, int nGender = 0) { string sFunc = "GetLocalizedName"; - NWNX_PushArgumentInt(nGender); - NWNX_PushArgumentInt(nLanguage); - NWNX_PushArgumentObject(oObject); + NWNXPushInt(nGender); + NWNXPushInt(nLanguage); + NWNXPushObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - return NWNX_GetReturnValueString(); + NWNXCall(NWNX_Object, sFunc); + return NWNXPopString(); } void NWNX_Object_SetLocalizedName(object oObject, string sName, int nLanguage, int nGender = 0) { string sFunc = "SetLocalizedName"; - NWNX_PushArgumentInt(nGender); - NWNX_PushArgumentInt(nLanguage); - NWNX_PushArgumentString(sName); - NWNX_PushArgumentObject(oObject); + NWNXPushInt(nGender); + NWNXPushInt(nLanguage); + NWNXPushString(sName); + NWNXPushObject(oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXCall(NWNX_Object, sFunc); } diff --git a/_module/nss/nwnx_player.nss b/_module/nss/nwnx_player.nss index 3f4ab659..95d0bcd9 100644 --- a/_module/nss/nwnx_player.nss +++ b/_module/nss/nwnx_player.nss @@ -2,7 +2,6 @@ /// @brief Functions exposing additional player properties. /// @{ /// @file nwnx_player.nss -#include "nwnx" const string NWNX_Player = "NWNX_Player"; ///< @private @@ -458,22 +457,16 @@ void NWNX_Player_ReloadColorPalettes(object oPlayer); void NWNX_Player_ForcePlaceableExamineWindow(object player, object placeable) { - string sFunc = "ForcePlaceableExamineWindow"; - - NWNX_PushArgumentObject(placeable); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(placeable); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "ForcePlaceableExamineWindow"); } void NWNX_Player_ForcePlaceableInventoryWindow(object player, object placeable) { - string sFunc = "ForcePlaceableInventoryWindow"; - - NWNX_PushArgumentObject(placeable); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(placeable); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "ForcePlaceableInventoryWindow"); } void NWNX_Player_INTERNAL_StopGuiTimingBar(object player, string script = "", int id = -1) ///< @private @@ -482,17 +475,12 @@ void NWNX_Player_INTERNAL_StopGuiTimingBar(object player, string script = "", in // Either the timing event was never started, or it already finished. if (activeId == 0) return; - // If id != -1, we ended up here through DelayCommand. Make sure it's for the right ID if (id != -1 && id != activeId) return; - DeleteLocalInt(player, "NWNX_PLAYER_GUI_TIMING_ACTIVE"); - - string sFunc = "StopGuiTimingBar"; - NWNX_PushArgumentObject(player); - NWNX_CallFunction(NWNX_Player, sFunc); - + NWNXPushObject(player); + NWNXCall(NWNX_Player, "StopGuiTimingBar"); if(script != "") { ExecuteScript(script, player); @@ -503,18 +491,13 @@ void NWNX_Player_StartGuiTimingBar(object player, float seconds, string script = { if (GetLocalInt(player, "NWNX_PLAYER_GUI_TIMING_ACTIVE")) return; - - string sFunc = "StartGuiTimingBar"; - NWNX_PushArgumentInt(type); - NWNX_PushArgumentFloat(seconds); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); - + NWNXPushInt(type); + NWNXPushFloat(seconds); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "StartGuiTimingBar"); int id = GetLocalInt(player, "NWNX_PLAYER_GUI_TIMING_ID") + 1; SetLocalInt(player, "NWNX_PLAYER_GUI_TIMING_ACTIVE", id); SetLocalInt(player, "NWNX_PLAYER_GUI_TIMING_ID", id); - DelayCommand(seconds, NWNX_Player_INTERNAL_StopGuiTimingBar(player, script, id)); } @@ -525,638 +508,471 @@ void NWNX_Player_StopGuiTimingBar(object player, string script = "") void NWNX_Player_SetAlwaysWalk(object player, int bWalk=TRUE) { - string sFunc = "SetAlwaysWalk"; - - NWNX_PushArgumentInt(bWalk); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(bWalk); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "SetAlwaysWalk"); } struct NWNX_Player_QuickBarSlot NWNX_Player_GetQuickBarSlot(object player, int slot) { - string sFunc = "GetQuickBarSlot"; struct NWNX_Player_QuickBarSlot qbs; - - NWNX_PushArgumentInt(slot); - NWNX_PushArgumentObject(player); - NWNX_CallFunction(NWNX_Player, sFunc); - - qbs.oAssociate = NWNX_GetReturnValueObject(); - qbs.nAssociateType = NWNX_GetReturnValueInt(); - qbs.nDomainLevel = NWNX_GetReturnValueInt(); - qbs.nMetaType = NWNX_GetReturnValueInt(); - qbs.nINTParam1 = NWNX_GetReturnValueInt(); - qbs.sToolTip = NWNX_GetReturnValueString(); - qbs.sCommandLine = NWNX_GetReturnValueString(); - qbs.sCommandLabel = NWNX_GetReturnValueString(); - qbs.sResRef = NWNX_GetReturnValueString(); - qbs.nMultiClass = NWNX_GetReturnValueInt(); - qbs.nObjectType = NWNX_GetReturnValueInt(); - qbs.oSecondaryItem = NWNX_GetReturnValueObject(); - qbs.oItem = NWNX_GetReturnValueObject(); - + NWNXPushInt(slot); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "GetQuickBarSlot"); + qbs.oAssociate = NWNXPopObject(); + qbs.nAssociateType = NWNXPopInt(); + qbs.nDomainLevel = NWNXPopInt(); + qbs.nMetaType = NWNXPopInt(); + qbs.nINTParam1 = NWNXPopInt(); + qbs.sToolTip = NWNXPopString(); + qbs.sCommandLine = NWNXPopString(); + qbs.sCommandLabel = NWNXPopString(); + qbs.sResRef = NWNXPopString(); + qbs.nMultiClass = NWNXPopInt(); + qbs.nObjectType = NWNXPopInt(); + qbs.oSecondaryItem = NWNXPopObject(); + qbs.oItem = NWNXPopObject(); return qbs; } void NWNX_Player_SetQuickBarSlot(object player, int slot, struct NWNX_Player_QuickBarSlot qbs) { - string sFunc = "SetQuickBarSlot"; - - NWNX_PushArgumentObject(qbs.oItem); - NWNX_PushArgumentObject(qbs.oSecondaryItem); - NWNX_PushArgumentInt(qbs.nObjectType); - NWNX_PushArgumentInt(qbs.nMultiClass); - NWNX_PushArgumentString(qbs.sResRef); - NWNX_PushArgumentString(qbs.sCommandLabel); - NWNX_PushArgumentString(qbs.sCommandLine); - NWNX_PushArgumentString(qbs.sToolTip); - NWNX_PushArgumentInt(qbs.nINTParam1); - NWNX_PushArgumentInt(qbs.nMetaType); - NWNX_PushArgumentInt(qbs.nDomainLevel); - NWNX_PushArgumentInt(qbs.nAssociateType); - NWNX_PushArgumentObject(qbs.oAssociate); - - NWNX_PushArgumentInt(slot); - NWNX_PushArgumentObject(player); - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(qbs.oItem); + NWNXPushObject(qbs.oSecondaryItem); + NWNXPushInt(qbs.nObjectType); + NWNXPushInt(qbs.nMultiClass); + NWNXPushString(qbs.sResRef); + NWNXPushString(qbs.sCommandLabel); + NWNXPushString(qbs.sCommandLine); + NWNXPushString(qbs.sToolTip); + NWNXPushInt(qbs.nINTParam1); + NWNXPushInt(qbs.nMetaType); + NWNXPushInt(qbs.nDomainLevel); + NWNXPushInt(qbs.nAssociateType); + NWNXPushObject(qbs.oAssociate); + NWNXPushInt(slot); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "SetQuickBarSlot"); } string NWNX_Player_GetBicFileName(object player) { - string sFunc = "GetBicFileName"; - - NWNX_PushArgumentObject(player); - NWNX_CallFunction(NWNX_Player, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "GetBicFileName"); + return NWNXPopString(); } void NWNX_Player_ShowVisualEffect(object player, int effectId, vector position, float scale=1.0f, vector translate=[], vector rotate=[]) { - string sFunc = "ShowVisualEffect"; - - NWNX_PushArgumentFloat(rotate.x); - NWNX_PushArgumentFloat(rotate.y); - NWNX_PushArgumentFloat(rotate.z); - NWNX_PushArgumentFloat(translate.x); - NWNX_PushArgumentFloat(translate.y); - NWNX_PushArgumentFloat(translate.z); - NWNX_PushArgumentFloat(scale); - NWNX_PushArgumentFloat(position.x); - NWNX_PushArgumentFloat(position.y); - NWNX_PushArgumentFloat(position.z); - NWNX_PushArgumentInt(effectId); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushVector(rotate); + NWNXPushVector(translate); + NWNXPushFloat(scale); + NWNXPushVector(position); + NWNXPushInt(effectId); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "ShowVisualEffect"); } void NWNX_Player_MusicBackgroundChangeDay(object player, int track) { - string sFunc = "ChangeBackgroundMusic"; - - NWNX_PushArgumentInt(track); - NWNX_PushArgumentInt(TRUE); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(track); + NWNXPushInt(TRUE); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "ChangeBackgroundMusic"); } void NWNX_Player_MusicBackgroundChangeNight(object player, int track) { - string sFunc = "ChangeBackgroundMusic"; - - NWNX_PushArgumentInt(track); - NWNX_PushArgumentInt(FALSE); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(track); + NWNXPushInt(FALSE); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "ChangeBackgroundMusic"); } void NWNX_Player_MusicBackgroundStart(object player) { - string sFunc = "PlayBackgroundMusic"; - - NWNX_PushArgumentInt(TRUE); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(TRUE); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "PlayBackgroundMusic"); } void NWNX_Player_MusicBackgroundStop(object player) { - string sFunc = "PlayBackgroundMusic"; - - NWNX_PushArgumentInt(FALSE); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(FALSE); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "PlayBackgroundMusic"); } void NWNX_Player_MusicBattleChange(object player, int track) { - string sFunc = "ChangeBattleMusic"; - - NWNX_PushArgumentInt(track); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(track); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "ChangeBattleMusic"); } void NWNX_Player_MusicBattleStart(object player) { - string sFunc = "PlayBattleMusic"; - - NWNX_PushArgumentInt(TRUE); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(TRUE); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "PlayBattleMusic"); } void NWNX_Player_MusicBattleStop(object player) { - string sFunc = "PlayBattleMusic"; - - NWNX_PushArgumentInt(FALSE); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(FALSE); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "PlayBattleMusic"); } void NWNX_Player_PlaySound(object player, string sound, object target = OBJECT_INVALID) { - string sFunc = "PlaySound"; - - NWNX_PushArgumentObject(target); - NWNX_PushArgumentString(sound); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(target); + NWNXPushString(sound); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "PlaySound"); } void NWNX_Player_SetPlaceableUsable(object player, object placeable, int usable) { - string sFunc = "SetPlaceableUsable"; - - NWNX_PushArgumentInt(usable); - NWNX_PushArgumentObject(placeable); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(usable); + NWNXPushObject(placeable); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "SetPlaceableUsable"); } void NWNX_Player_SetRestDuration(object player, int duration) { - string sFunc = "SetRestDuration"; - - NWNX_PushArgumentInt(duration); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(duration); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "SetRestDuration"); } void NWNX_Player_ApplyInstantVisualEffectToObject(object player, object target, int visualeffect, float scale=1.0f, vector translate=[], vector rotate=[]) { - string sFunc = "ApplyInstantVisualEffectToObject"; - - NWNX_PushArgumentFloat(rotate.z); - NWNX_PushArgumentFloat(rotate.y); - NWNX_PushArgumentFloat(rotate.x); - NWNX_PushArgumentFloat(translate.z); - NWNX_PushArgumentFloat(translate.y); - NWNX_PushArgumentFloat(translate.x); - NWNX_PushArgumentFloat(scale); - NWNX_PushArgumentInt(visualeffect); - NWNX_PushArgumentObject(target); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushVector(rotate); + NWNXPushVector(translate); + NWNXPushFloat(scale); + NWNXPushInt(visualeffect); + NWNXPushObject(target); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "ApplyInstantVisualEffectToObject"); } void NWNX_Player_UpdateCharacterSheet(object player) { - string sFunc = "UpdateCharacterSheet"; - - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "UpdateCharacterSheet"); } void NWNX_Player_OpenInventory(object player, object target, int open = TRUE) { - string sFunc = "OpenInventory"; - - NWNX_PushArgumentInt(open); - NWNX_PushArgumentObject(target); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(open); + NWNXPushObject(target); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "OpenInventory"); } string NWNX_Player_GetAreaExplorationState(object player, object area) { - string sFunc = "GetAreaExplorationState"; - - NWNX_PushArgumentObject(area); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushObject(area); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "GetAreaExplorationState"); + return NWNXPopString(); } void NWNX_Player_SetAreaExplorationState(object player, object area, string str) { - string sFunc = "SetAreaExplorationState"; - - NWNX_PushArgumentString(str); - NWNX_PushArgumentObject(area); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushString(str); + NWNXPushObject(area); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "SetAreaExplorationState"); } void NWNX_Player_SetRestAnimation(object oPlayer, int nAnimation) { - string sFunc = "SetRestAnimation"; - - NWNX_PushArgumentInt(nAnimation); - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(nAnimation); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetRestAnimation"); } void NWNX_Player_SetObjectVisualTransformOverride(object oPlayer, object oObject, int nTransform, float fValue) { - string sFunc = "SetObjectVisualTransformOverride"; - - NWNX_PushArgumentFloat(fValue); - NWNX_PushArgumentInt(nTransform); - NWNX_PushArgumentObject(oObject); - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushFloat(fValue); + NWNXPushInt(nTransform); + NWNXPushObject(oObject); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetObjectVisualTransformOverride"); } void NWNX_Player_ApplyLoopingVisualEffectToObject(object player, object target, int visualeffect) { - string sFunc = "ApplyLoopingVisualEffectToObject"; - - NWNX_PushArgumentInt(visualeffect); - NWNX_PushArgumentObject(target); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(visualeffect); + NWNXPushObject(target); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "ApplyLoopingVisualEffectToObject"); } void NWNX_Player_SetPlaceableNameOverride(object player, object placeable, string name) { - string sFunc = "SetPlaceableNameOverride"; - - NWNX_PushArgumentString(name); - NWNX_PushArgumentObject(placeable); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushString(name); + NWNXPushObject(placeable); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "SetPlaceableNameOverride"); } int NWNX_Player_GetQuestCompleted(object player, string sQuestName) { - string sFunc = "GetQuestCompleted"; - - NWNX_PushArgumentString(sQuestName); - NWNX_PushArgumentObject(player); - - NWNX_CallFunction(NWNX_Player, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushString(sQuestName); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "GetQuestCompleted"); + return NWNXPopInt(); } void NWNX_Player_SetPersistentLocation(string sCDKeyOrCommunityName, string sBicFileName, object oWP, int bFirstConnectOnly = TRUE) { - string sFunc = "SetPersistentLocation"; - - NWNX_PushArgumentInt(bFirstConnectOnly); - NWNX_PushArgumentObject(oWP); - NWNX_PushArgumentString(sBicFileName); - NWNX_PushArgumentString(sCDKeyOrCommunityName); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(bFirstConnectOnly); + NWNXPushObject(oWP); + NWNXPushString(sBicFileName); + NWNXPushString(sCDKeyOrCommunityName); + NWNXCall(NWNX_Player, "SetPersistentLocation"); } void NWNX_Player_UpdateItemName(object oPlayer, object oItem) { - string sFunc = "UpdateItemName"; - - NWNX_PushArgumentObject(oItem); - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(oItem); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "UpdateItemName"); } int NWNX_Player_PossessCreature(object oPossessor, object oPossessed, int bMindImmune = TRUE, int bCreateDefaultQB = FALSE) { - string sFunc = "PossessCreature"; - - NWNX_PushArgumentInt(bCreateDefaultQB); - NWNX_PushArgumentInt(bMindImmune); - NWNX_PushArgumentObject(oPossessed); - NWNX_PushArgumentObject(oPossessor); - - NWNX_CallFunction(NWNX_Player, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(bCreateDefaultQB); + NWNXPushInt(bMindImmune); + NWNXPushObject(oPossessed); + NWNXPushObject(oPossessor); + NWNXCall(NWNX_Player, "PossessCreature"); + return NWNXPopInt(); } int NWNX_Player_GetPlatformId(object oPlayer) { - string sFunc = "GetPlatformId"; - - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "GetPlatformId"); + return NWNXPopInt(); } int NWNX_Player_GetLanguage(object oPlayer) { - string sFunc = "GetLanguage"; - - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "GetLanguage"); + return NWNXPopInt(); } void NWNX_Player_SetResManOverride(object oPlayer, int nResType, string sOldResName, string sNewResName) { - string sFunc = "SetResManOverride"; - - NWNX_PushArgumentString(sNewResName); - NWNX_PushArgumentString(sOldResName); - NWNX_PushArgumentInt(nResType); - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushString(sNewResName); + NWNXPushString(sOldResName); + NWNXPushInt(nResType); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetResManOverride"); } void NWNX_Player_SetCustomToken(object oPlayer, int nCustomTokenNumber, string sTokenValue) { - string sFunc = "SetCustomToken"; - - NWNX_PushArgumentString(sTokenValue); - NWNX_PushArgumentInt(nCustomTokenNumber); - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushString(sTokenValue); + NWNXPushInt(nCustomTokenNumber); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetCustomToken"); } void NWNX_Player_SetCreatureNameOverride(object oPlayer, object oCreature, string sName) { - string sFunc = "SetCreatureNameOverride"; - - NWNX_PushArgumentString(sName); - NWNX_PushArgumentObject(oCreature); - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushString(sName); + NWNXPushObject(oCreature); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetCreatureNameOverride"); } void NWNX_Player_FloatingTextStringOnCreature(object oPlayer, object oCreature, string sText, int bChatWindow = TRUE) { - string sFunc = "FloatingTextStringOnCreature"; - - NWNX_PushArgumentInt(bChatWindow); - NWNX_PushArgumentString(sText); - NWNX_PushArgumentObject(oCreature); - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(bChatWindow); + NWNXPushString(sText); + NWNXPushObject(oCreature); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "FloatingTextStringOnCreature"); } void NWNX_Player_ToggleDM(object oPlayer, int bIsDM) { - string sFunc = "ToggleDM"; - - NWNX_PushArgumentInt(bIsDM); - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(bIsDM); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "ToggleDM"); } void NWNX_Player_SetObjectMouseCursorOverride(object oPlayer, object oObject, int nCursor) { - string sFunc = "SetObjectMouseCursorOverride"; - - NWNX_PushArgumentInt(nCursor); - NWNX_PushArgumentObject(oObject); - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(nCursor); + NWNXPushObject(oObject); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetObjectMouseCursorOverride"); } void NWNX_Player_SetObjectHiliteColorOverride(object oPlayer, object oObject, int nColor) { - string sFunc = "SetObjectHiliteColorOverride"; - - NWNX_PushArgumentInt(nColor); - NWNX_PushArgumentObject(oObject); - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(nColor); + NWNXPushObject(oObject); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetObjectHiliteColorOverride"); } void NWNX_Player_RemoveEffectFromTURD(object oPlayer, string sEffectTag) { - string sFunc = "RemoveEffectFromTURD"; - - NWNX_PushArgumentString(sEffectTag); - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushString(sEffectTag); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "RemoveEffectFromTURD"); } void NWNX_Player_SetSpawnLocation(object oPlayer, location locSpawn) { - string sFunc = "SetSpawnLocation"; - - vector vPosition = GetPositionFromLocation(locSpawn); - - NWNX_PushArgumentFloat(GetFacingFromLocation(locSpawn)); - NWNX_PushArgumentFloat(vPosition.z); - NWNX_PushArgumentFloat(vPosition.y); - NWNX_PushArgumentFloat(vPosition.x); - NWNX_PushArgumentObject(GetAreaFromLocation(locSpawn)); - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushLocation(locSpawn); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetSpawnLocation"); } void NWNX_Player_SendDMAllCreatorLists(object oPlayer) { - string sFunc = "SendDMAllCreatorLists"; - NWNX_PushArgumentObject(oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SendDMAllCreatorLists"); } int NWNX_Player_AddCustomJournalEntry(object oPlayer, struct NWNX_Player_JournalEntry journalEntry, int nSilentUpdate = 0) { - string sFunc = "AddCustomJournalEntry"; - NWNX_PushArgumentInt(nSilentUpdate); - NWNX_PushArgumentInt(journalEntry.nTimeOfDay); - NWNX_PushArgumentInt(journalEntry.nCalendarDay); - NWNX_PushArgumentInt(journalEntry.nUpdated); - NWNX_PushArgumentInt(journalEntry.nQuestDisplayed); - NWNX_PushArgumentInt(journalEntry.nQuestCompleted); - NWNX_PushArgumentInt(journalEntry.nPriority); - NWNX_PushArgumentInt(journalEntry.nState); - NWNX_PushArgumentString(journalEntry.sTag); - NWNX_PushArgumentString(journalEntry.sText); - NWNX_PushArgumentString(journalEntry.sName); - NWNX_PushArgumentObject(oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(nSilentUpdate); + NWNXPushInt(journalEntry.nTimeOfDay); + NWNXPushInt(journalEntry.nCalendarDay); + NWNXPushInt(journalEntry.nUpdated); + NWNXPushInt(journalEntry.nQuestDisplayed); + NWNXPushInt(journalEntry.nQuestCompleted); + NWNXPushInt(journalEntry.nPriority); + NWNXPushInt(journalEntry.nState); + NWNXPushString(journalEntry.sTag); + NWNXPushString(journalEntry.sText); + NWNXPushString(journalEntry.sName); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "AddCustomJournalEntry"); + return NWNXPopInt(); } struct NWNX_Player_JournalEntry NWNX_Player_GetJournalEntry(object oPlayer, string questTag) { - string sFunc = "GetJournalEntry"; struct NWNX_Player_JournalEntry entry; - - NWNX_PushArgumentString(questTag); - NWNX_PushArgumentObject(oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); - - entry.nUpdated = NWNX_GetReturnValueInt(); + NWNXPushString(questTag); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "GetJournalEntry"); + entry.nUpdated = NWNXPopInt(); if(entry.nUpdated == -1) // -1 set as an indicator to say that the entry was not found { return entry; } - entry.nQuestDisplayed = NWNX_GetReturnValueInt(); - entry.nQuestCompleted = NWNX_GetReturnValueInt(); - entry.nPriority = NWNX_GetReturnValueInt(); - entry.nState = NWNX_GetReturnValueInt(); - entry.nTimeOfDay = NWNX_GetReturnValueInt(); - entry.nCalendarDay = NWNX_GetReturnValueInt(); - entry.sName = NWNX_GetReturnValueString(); - entry.sText = NWNX_GetReturnValueString(); + entry.nQuestDisplayed = NWNXPopInt(); + entry.nQuestCompleted = NWNXPopInt(); + entry.nPriority = NWNXPopInt(); + entry.nState = NWNXPopInt(); + entry.nTimeOfDay = NWNXPopInt(); + entry.nCalendarDay = NWNXPopInt(); + entry.sName = NWNXPopString(); + entry.sText = NWNXPopString(); entry.sTag = questTag; return entry; } void NWNX_Player_CloseStore(object oPlayer) { - string sFunc = "CloseStore"; - - NWNX_PushArgumentObject(oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "CloseStore"); } void NWNX_Player_SetTlkOverride(object oPlayer, int nStrRef, string sOverride, int bRestoreGlobal = TRUE) { - string sFunc = "SetTlkOverride"; - - NWNX_PushArgumentInt(bRestoreGlobal); - NWNX_PushArgumentString(sOverride); - NWNX_PushArgumentInt(nStrRef); - NWNX_PushArgumentObject(oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(bRestoreGlobal); + NWNXPushString(sOverride); + NWNXPushInt(nStrRef); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetTlkOverride"); } void NWNX_Player_ReloadTlk(object oPlayer) { - string sFunc = "ReloadTlk"; - - NWNX_PushArgumentObject(oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "ReloadTlk"); } void NWNX_Player_UpdateWind(object oPlayer, vector vDirection, float fMagnitude, float fYaw, float fPitch) { - string sFunc = "UpdateWind"; - - NWNX_PushArgumentFloat(fPitch); - NWNX_PushArgumentFloat(fYaw); - NWNX_PushArgumentFloat(fMagnitude); - NWNX_PushArgumentFloat(vDirection.x); - NWNX_PushArgumentFloat(vDirection.y); - NWNX_PushArgumentFloat(vDirection.z); - NWNX_PushArgumentObject(oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushFloat(fPitch); + NWNXPushFloat(fYaw); + NWNXPushFloat(fMagnitude); + NWNXPushVector(vDirection); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "UpdateWind"); } void NWNX_Player_UpdateSkyBox(object oPlayer, int nSkyBox) { - string sFunc = "UpdateSkyBox"; - - NWNX_PushArgumentInt(nSkyBox); - NWNX_PushArgumentObject(oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(nSkyBox); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "UpdateSkyBox"); } void NWNX_Player_UpdateFogColor(object oPlayer, int nSunFogColor, int nMoonFogColor) { - string sFunc = "UpdateFogColor"; - - NWNX_PushArgumentInt(nMoonFogColor); - NWNX_PushArgumentInt(nSunFogColor); - NWNX_PushArgumentObject(oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(nMoonFogColor); + NWNXPushInt(nSunFogColor); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "UpdateFogColor"); } void NWNX_Player_UpdateFogAmount(object oPlayer, int nSunFogAmount, int nMoonFogAmount) { - string sFunc = "UpdateFogAmount"; - - NWNX_PushArgumentInt(nMoonFogAmount); - NWNX_PushArgumentInt(nSunFogAmount); - NWNX_PushArgumentObject(oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(nMoonFogAmount); + NWNXPushInt(nSunFogAmount); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "UpdateFogAmount"); } object NWNX_Player_GetGameObject(object oPlayer) { - string sFunc = "GetGameObject"; - - NWNX_PushArgumentObject(oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); - return NWNX_GetReturnValueObject(); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "GetGameObject"); + return NWNXPopObject(); } void NWNX_Player_SetObjectUiDiscoveryMaskOverride(object oPlayer, object oObject, int nMask) { - string sFunc = "SetObjectUiDiscoveryMaskOverride"; - - NWNX_PushArgumentInt(nMask); - NWNX_PushArgumentObject(oObject); - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(nMask); + NWNXPushObject(oObject); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetObjectUiDiscoveryMaskOverride"); } void NWNX_Player_SendPartyInvite(object oPlayer, object oInviter, int bForceInvite = FALSE, int bHideDialog = FALSE) { - string sFunc = "SendPartyInvite"; - - NWNX_PushArgumentInt(bHideDialog); - NWNX_PushArgumentInt(bForceInvite); - NWNX_PushArgumentObject(oInviter); - NWNX_PushArgumentObject(oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(bHideDialog); + NWNXPushInt(bForceInvite); + NWNXPushObject(oInviter); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SendPartyInvite"); } object NWNX_Player_GetTURD(object oPlayer) { - string sFunc = "GetTURD"; - - NWNX_PushArgumentObject(oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); - - return NWNX_GetReturnValueObject(); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "GetTURD"); + return NWNXPopObject(); } void NWNX_Player_ReloadColorPalettes(object oPlayer) { - string sFunc = "ReloadColorPalettes"; - - NWNX_PushArgumentObject(oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "ReloadColorPalettes"); } diff --git a/_module/nss/nwnx_profiler.nss b/_module/nss/nwnx_profiler.nss index 9f641068..9eba0729 100644 --- a/_module/nss/nwnx_profiler.nss +++ b/_module/nss/nwnx_profiler.nss @@ -3,7 +3,6 @@ /// @remark These functions are for advanced users. /// @{ /// @file nwnx_profiler.nss -#include "nwnx" const string NWNX_Profiler = "NWNX_Profiler"; ///< @private @@ -39,22 +38,17 @@ void NWNX_Profiler_PopPerfScope(); void NWNX_Profiler_PushPerfScope(string name, string tag0_tag = "", string tag0_value = "") { - string sFunc = "PushPerfScope"; - - NWNX_PushArgumentString(name); - if (tag0_value != "" && tag0_tag != "") { - NWNX_PushArgumentString(tag0_value); - NWNX_PushArgumentString(tag0_tag); + NWNXPushString(tag0_value); + NWNXPushString(tag0_tag); } - - NWNX_CallFunction(NWNX_Profiler, sFunc); + NWNXPushString(name); + NWNXCall(NWNX_Profiler, "PushPerfScope"); } void NWNX_Profiler_PopPerfScope() { - string sFunc = "PopPerfScope"; + NWNXCall(NWNX_Profiler, "PopPerfScope"); +} - NWNX_CallFunction(NWNX_Profiler, sFunc); -} \ No newline at end of file diff --git a/_module/nss/nwnx_race.nss b/_module/nss/nwnx_race.nss index de8c636c..3b892283 100644 --- a/_module/nss/nwnx_race.nss +++ b/_module/nss/nwnx_race.nss @@ -2,7 +2,6 @@ /// @brief Define racial and subrace characteristics. /// @{ /// @file nwnx_race.nss -#include "nwnx" const string NWNX_Race = "NWNX_Race"; ///< @private @@ -54,37 +53,50 @@ int NWNX_Race_GetParentRace(int iRace); /// or Favored Enemy: Wild Elf void NWNX_Race_SetFavoredEnemyFeat(int iRace, int iFeat); +/// @brief Removes any nwnx_race 'Effects' on the targeted creature. Suppression lasts until levelup, next login, or Reactivated by function. +/// @param oCreature The creature to suppress +/// @note Not all nwnx_race modifiers are achieved via effect. Those that are not directly consider the creatures current race. +void NWNX_Race_SuppressCreatureRaceEffects(object oCreature); + +/// @brief Reactivates the nwnx_race 'Effects' on the targeted creature after they were Suppressed. +/// @param oCreature The creature to reactive +/// @note Safe to use on non-suppressed creatures - Triggers a refresh of effects but won't stack. +void NWNX_Race_ReactivateCreatureRaceEffects(object oCreature); + /// @} void NWNX_Race_SetRacialModifier(int iRace, int iMod, int iParam1, int iParam2 = 0xDEADBEEF, int iParam3 = 0xDEADBEEF) { - string sFunc = "SetRacialModifier"; - - NWNX_PushArgumentInt(iParam3); - NWNX_PushArgumentInt(iParam2); - NWNX_PushArgumentInt(iParam1); - NWNX_PushArgumentInt(iMod); - NWNX_PushArgumentInt(iRace); - - NWNX_CallFunction(NWNX_Race, sFunc); + NWNXPushInt(iParam3); + NWNXPushInt(iParam2); + NWNXPushInt(iParam1); + NWNXPushInt(iMod); + NWNXPushInt(iRace); + NWNXCall(NWNX_Race, "SetRacialModifier"); } int NWNX_Race_GetParentRace(int iRace) { - string sFunc = "GetParentRace"; - - NWNX_PushArgumentInt(iRace); - - NWNX_CallFunction(NWNX_Race, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(iRace); + NWNXCall(NWNX_Race, "GetParentRace"); + return NWNXPopInt(); } void NWNX_Race_SetFavoredEnemyFeat(int iRace, int iFeat) { - string sFunc = "SetFavoredEnemyFeat"; - - NWNX_PushArgumentInt(iFeat); - NWNX_PushArgumentInt(iRace); - - NWNX_CallFunction(NWNX_Race, sFunc); + NWNXPushInt(iFeat); + NWNXPushInt(iRace); + NWNXCall(NWNX_Race, "SetFavoredEnemyFeat"); +} + +void NWNX_Race_SuppressCreatureRaceEffects(object creature) +{ + NWNXPushObject(creature); + NWNXCall(NWNX_Race, "SuppressCreatureRaceEffects"); +} + +void NWNX_Race_ReactivateCreatureRaceEffects(object oCreature) +{ + NWNXPushObject(oCreature); + NWNXCall(NWNX_Race, "ReactivateCreatureRaceEffects"); } diff --git a/_module/nss/nwnx_redis.nss b/_module/nss/nwnx_redis.nss index 26c97a5b..0ead8152 100644 --- a/_module/nss/nwnx_redis.nss +++ b/_module/nss/nwnx_redis.nss @@ -3,7 +3,6 @@ /// @{ /// @file nwnx_redis.nss /// @name Redis Commands -#include "nwnx" #include "nwnx_redis_lib" @@ -3235,32 +3234,32 @@ int NWNX_Redis_APPEND( string key, string value ) { - NWNX_PushArgumentString("APPEND"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("APPEND"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_AUTH( string password ) { - NWNX_PushArgumentString("AUTH"); - NWNX_PushArgumentString(password); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("AUTH"); + NWNXPushString(password); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BGREWRITEAOF() { - NWNX_PushArgumentString("BGREWRITEAOF"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BGREWRITEAOF"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BGSAVE() { - NWNX_PushArgumentString("BGSAVE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BGSAVE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BITCOUNT( @@ -3270,12 +3269,12 @@ int NWNX_Redis_BITCOUNT( // Redis type: integer int end = 0 ) { - NWNX_PushArgumentString("BITCOUNT"); - NWNX_PushArgumentString(key); - if (start != 0) NWNX_PushArgumentString(IntToString(start)); - if (end != 0) NWNX_PushArgumentString(IntToString(end)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BITCOUNT"); + NWNXPushString(key); + if (start != 0) NWNXPushString(IntToString(start)); + if (end != 0) NWNXPushString(IntToString(end)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BITFIELD( @@ -3297,18 +3296,18 @@ int NWNX_Redis_BITFIELD( // Redis type: integer int incrby_increment = 0 ) { - NWNX_PushArgumentString("BITFIELD"); - NWNX_PushArgumentString(key); - if (get_type != "") NWNX_PushArgumentString(get_type); - if (get_offset != 0) NWNX_PushArgumentString(IntToString(get_offset)); - if (set_type != "") NWNX_PushArgumentString(set_type); - if (set_offset != 0) NWNX_PushArgumentString(IntToString(set_offset)); - if (set_value != 0) NWNX_PushArgumentString(IntToString(set_value)); - if (incrby_type != "") NWNX_PushArgumentString(incrby_type); - if (incrby_offset != 0) NWNX_PushArgumentString(IntToString(incrby_offset)); - if (incrby_increment != 0) NWNX_PushArgumentString(IntToString(incrby_increment)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BITFIELD"); + NWNXPushString(key); + if (get_type != "") NWNXPushString(get_type); + if (get_offset != 0) NWNXPushString(IntToString(get_offset)); + if (set_type != "") NWNXPushString(set_type); + if (set_offset != 0) NWNXPushString(IntToString(set_offset)); + if (set_value != 0) NWNXPushString(IntToString(set_value)); + if (incrby_type != "") NWNXPushString(incrby_type); + if (incrby_offset != 0) NWNXPushString(IntToString(incrby_offset)); + if (incrby_increment != 0) NWNXPushString(IntToString(incrby_increment)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BITOP( @@ -3317,12 +3316,12 @@ int NWNX_Redis_BITOP( string destkey, string key ) { - NWNX_PushArgumentString("BITOP"); - NWNX_PushArgumentString(operation); - NWNX_PushArgumentString(destkey); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BITOP"); + NWNXPushString(operation); + NWNXPushString(destkey); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BITPOS( @@ -3334,13 +3333,13 @@ int NWNX_Redis_BITPOS( // Redis type: integer int end = 0 ) { - NWNX_PushArgumentString("BITPOS"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(bit)); - if (start != 0) NWNX_PushArgumentString(IntToString(start)); - if (end != 0) NWNX_PushArgumentString(IntToString(end)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BITPOS"); + NWNXPushString(key); + NWNXPushString(IntToString(bit)); + if (start != 0) NWNXPushString(IntToString(start)); + if (end != 0) NWNXPushString(IntToString(end)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BLPOP( @@ -3348,11 +3347,11 @@ int NWNX_Redis_BLPOP( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("BLPOP"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BLPOP"); + NWNXPushString(key); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BRPOP( @@ -3360,11 +3359,11 @@ int NWNX_Redis_BRPOP( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("BRPOP"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BRPOP"); + NWNXPushString(key); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BRPOPLPUSH( @@ -3375,12 +3374,12 @@ int NWNX_Redis_BRPOPLPUSH( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("BRPOPLPUSH"); - NWNX_PushArgumentString(source); - NWNX_PushArgumentString(destination); - NWNX_PushArgumentString(IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BRPOPLPUSH"); + NWNXPushString(source); + NWNXPushString(destination); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BZPOPMIN( @@ -3388,11 +3387,11 @@ int NWNX_Redis_BZPOPMIN( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("BZPOPMIN"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BZPOPMIN"); + NWNXPushString(key); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BZPOPMAX( @@ -3400,17 +3399,17 @@ int NWNX_Redis_BZPOPMAX( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("BZPOPMAX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BZPOPMAX"); + NWNXPushString(key); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLIENT_ID() { - NWNX_PushArgumentString("CLIENT_ID"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLIENT_ID"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLIENT_KILL( @@ -3420,54 +3419,54 @@ int NWNX_Redis_CLIENT_KILL( string addr_ip_port = "", string skipme_yes_no = "" ) { - NWNX_PushArgumentString("CLIENT_KILL"); - if (ip_port != "") NWNX_PushArgumentString(ip_port); - if (id_client_id != 0) NWNX_PushArgumentString(IntToString(id_client_id)); - if (addr_ip_port != "") NWNX_PushArgumentString(addr_ip_port); - if (skipme_yes_no != "") NWNX_PushArgumentString(skipme_yes_no); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLIENT_KILL"); + if (ip_port != "") NWNXPushString(ip_port); + if (id_client_id != 0) NWNXPushString(IntToString(id_client_id)); + if (addr_ip_port != "") NWNXPushString(addr_ip_port); + if (skipme_yes_no != "") NWNXPushString(skipme_yes_no); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLIENT_LIST() { - NWNX_PushArgumentString("CLIENT_LIST"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLIENT_LIST"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLIENT_GETNAME() { - NWNX_PushArgumentString("CLIENT_GETNAME"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLIENT_GETNAME"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLIENT_PAUSE( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("CLIENT_PAUSE"); - NWNX_PushArgumentString(IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLIENT_PAUSE"); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLIENT_REPLY( // Redis type: enum string reply_mode ) { - NWNX_PushArgumentString("CLIENT_REPLY"); - NWNX_PushArgumentString(reply_mode); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLIENT_REPLY"); + NWNXPushString(reply_mode); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLIENT_SETNAME( string connection_name ) { - NWNX_PushArgumentString("CLIENT_SETNAME"); - NWNX_PushArgumentString(connection_name); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLIENT_SETNAME"); + NWNXPushString(connection_name); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLIENT_UNBLOCK( @@ -3475,69 +3474,69 @@ int NWNX_Redis_CLIENT_UNBLOCK( // Redis type: enum string unblock_type = "" ) { - NWNX_PushArgumentString("CLIENT_UNBLOCK"); - NWNX_PushArgumentString(client_id); - if (unblock_type != "") NWNX_PushArgumentString(unblock_type); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLIENT_UNBLOCK"); + NWNXPushString(client_id); + if (unblock_type != "") NWNXPushString(unblock_type); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_ADDSLOTS( // Redis type: integer int slot ) { - NWNX_PushArgumentString("CLUSTER_ADDSLOTS"); - NWNX_PushArgumentString(IntToString(slot)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_ADDSLOTS"); + NWNXPushString(IntToString(slot)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_COUNT_FAILURE_REPORTS( string node_id ) { - NWNX_PushArgumentString("CLUSTER_COUNT_FAILURE_REPORTS"); - NWNX_PushArgumentString(node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_COUNT_FAILURE_REPORTS"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_COUNTKEYSINSLOT( // Redis type: integer int slot ) { - NWNX_PushArgumentString("CLUSTER_COUNTKEYSINSLOT"); - NWNX_PushArgumentString(IntToString(slot)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_COUNTKEYSINSLOT"); + NWNXPushString(IntToString(slot)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_DELSLOTS( // Redis type: integer int slot ) { - NWNX_PushArgumentString("CLUSTER_DELSLOTS"); - NWNX_PushArgumentString(IntToString(slot)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_DELSLOTS"); + NWNXPushString(IntToString(slot)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_FAILOVER( // Redis type: enum string options = "" ) { - NWNX_PushArgumentString("CLUSTER_FAILOVER"); - if (options != "") NWNX_PushArgumentString(options); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_FAILOVER"); + if (options != "") NWNXPushString(options); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_FORGET( string node_id ) { - NWNX_PushArgumentString("CLUSTER_FORGET"); - NWNX_PushArgumentString(node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_FORGET"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_GETKEYSINSLOT( @@ -3546,26 +3545,26 @@ int NWNX_Redis_CLUSTER_GETKEYSINSLOT( // Redis type: integer int count ) { - NWNX_PushArgumentString("CLUSTER_GETKEYSINSLOT"); - NWNX_PushArgumentString(IntToString(slot)); - NWNX_PushArgumentString(IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_GETKEYSINSLOT"); + NWNXPushString(IntToString(slot)); + NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_INFO() { - NWNX_PushArgumentString("CLUSTER_INFO"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_INFO"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_KEYSLOT( string key ) { - NWNX_PushArgumentString("CLUSTER_KEYSLOT"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_KEYSLOT"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_MEET( @@ -3573,52 +3572,52 @@ int NWNX_Redis_CLUSTER_MEET( // Redis type: integer int port ) { - NWNX_PushArgumentString("CLUSTER_MEET"); - NWNX_PushArgumentString(ip); - NWNX_PushArgumentString(IntToString(port)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_MEET"); + NWNXPushString(ip); + NWNXPushString(IntToString(port)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_NODES() { - NWNX_PushArgumentString("CLUSTER_NODES"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_NODES"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_REPLICATE( string node_id ) { - NWNX_PushArgumentString("CLUSTER_REPLICATE"); - NWNX_PushArgumentString(node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_REPLICATE"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_RESET( // Redis type: enum string reset_type = "" ) { - NWNX_PushArgumentString("CLUSTER_RESET"); - if (reset_type != "") NWNX_PushArgumentString(reset_type); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_RESET"); + if (reset_type != "") NWNXPushString(reset_type); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_SAVECONFIG() { - NWNX_PushArgumentString("CLUSTER_SAVECONFIG"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_SAVECONFIG"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_SET_CONFIG_EPOCH( // Redis type: integer int config_epoch ) { - NWNX_PushArgumentString("CLUSTER_SET_CONFIG_EPOCH"); - NWNX_PushArgumentString(IntToString(config_epoch)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_SET_CONFIG_EPOCH"); + NWNXPushString(IntToString(config_epoch)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_SETSLOT( @@ -3628,125 +3627,125 @@ int NWNX_Redis_CLUSTER_SETSLOT( string subcommand, string node_id = "" ) { - NWNX_PushArgumentString("CLUSTER_SETSLOT"); - NWNX_PushArgumentString(IntToString(slot)); - NWNX_PushArgumentString(subcommand); - if (node_id != "") NWNX_PushArgumentString(node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_SETSLOT"); + NWNXPushString(IntToString(slot)); + NWNXPushString(subcommand); + if (node_id != "") NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_SLAVES( string node_id ) { - NWNX_PushArgumentString("CLUSTER_SLAVES"); - NWNX_PushArgumentString(node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_SLAVES"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_REPLICAS( string node_id ) { - NWNX_PushArgumentString("CLUSTER_REPLICAS"); - NWNX_PushArgumentString(node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_REPLICAS"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_SLOTS() { - NWNX_PushArgumentString("CLUSTER_SLOTS"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_SLOTS"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_COMMAND() { - NWNX_PushArgumentString("COMMAND"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("COMMAND"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_COMMAND_COUNT() { - NWNX_PushArgumentString("COMMAND_COUNT"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("COMMAND_COUNT"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_COMMAND_GETKEYS() { - NWNX_PushArgumentString("COMMAND_GETKEYS"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("COMMAND_GETKEYS"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_COMMAND_INFO( string command_name ) { - NWNX_PushArgumentString("COMMAND_INFO"); - NWNX_PushArgumentString(command_name); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("COMMAND_INFO"); + NWNXPushString(command_name); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CONFIG_GET( string parameter ) { - NWNX_PushArgumentString("CONFIG_GET"); - NWNX_PushArgumentString(parameter); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CONFIG_GET"); + NWNXPushString(parameter); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CONFIG_REWRITE() { - NWNX_PushArgumentString("CONFIG_REWRITE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CONFIG_REWRITE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CONFIG_SET( string parameter, string value ) { - NWNX_PushArgumentString("CONFIG_SET"); - NWNX_PushArgumentString(parameter); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CONFIG_SET"); + NWNXPushString(parameter); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CONFIG_RESETSTAT() { - NWNX_PushArgumentString("CONFIG_RESETSTAT"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CONFIG_RESETSTAT"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_DBSIZE() { - NWNX_PushArgumentString("DBSIZE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("DBSIZE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_DEBUG_OBJECT( string key ) { - NWNX_PushArgumentString("DEBUG_OBJECT"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("DEBUG_OBJECT"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_DEBUG_SEGFAULT() { - NWNX_PushArgumentString("DEBUG_SEGFAULT"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("DEBUG_SEGFAULT"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_DECR( string key ) { - NWNX_PushArgumentString("DECR"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("DECR"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_DECRBY( @@ -3754,44 +3753,44 @@ int NWNX_Redis_DECRBY( // Redis type: integer int decrement ) { - NWNX_PushArgumentString("DECRBY"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(decrement)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("DECRBY"); + NWNXPushString(key); + NWNXPushString(IntToString(decrement)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_DEL( string key ) { - NWNX_PushArgumentString("DEL"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("DEL"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_DISCARD() { - NWNX_PushArgumentString("DISCARD"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("DISCARD"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_DUMP( string key ) { - NWNX_PushArgumentString("DUMP"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("DUMP"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ECHO( string message ) { - NWNX_PushArgumentString("ECHO"); - NWNX_PushArgumentString(message); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ECHO"); + NWNXPushString(message); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_EVAL( @@ -3801,13 +3800,13 @@ int NWNX_Redis_EVAL( string key, string arg ) { - NWNX_PushArgumentString("EVAL"); - NWNX_PushArgumentString(script); - NWNX_PushArgumentString(IntToString(numkeys)); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(arg); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("EVAL"); + NWNXPushString(script); + NWNXPushString(IntToString(numkeys)); + NWNXPushString(key); + NWNXPushString(arg); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_EVALSHA( @@ -3817,28 +3816,28 @@ int NWNX_Redis_EVALSHA( string key, string arg ) { - NWNX_PushArgumentString("EVALSHA"); - NWNX_PushArgumentString(sha1); - NWNX_PushArgumentString(IntToString(numkeys)); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(arg); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("EVALSHA"); + NWNXPushString(sha1); + NWNXPushString(IntToString(numkeys)); + NWNXPushString(key); + NWNXPushString(arg); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_EXEC() { - NWNX_PushArgumentString("EXEC"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("EXEC"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_EXISTS( string key ) { - NWNX_PushArgumentString("EXISTS"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("EXISTS"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_EXPIRE( @@ -3846,11 +3845,11 @@ int NWNX_Redis_EXPIRE( // Redis type: integer int seconds ) { - NWNX_PushArgumentString("EXPIRE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(seconds)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("EXPIRE"); + NWNXPushString(key); + NWNXPushString(IntToString(seconds)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_EXPIREAT( @@ -3858,31 +3857,31 @@ int NWNX_Redis_EXPIREAT( // Redis type: posix time string timestamp ) { - NWNX_PushArgumentString("EXPIREAT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(timestamp); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("EXPIREAT"); + NWNXPushString(key); + NWNXPushString(timestamp); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_FLUSHALL( // Redis type: enum string async = "" ) { - NWNX_PushArgumentString("FLUSHALL"); - if (async != "") NWNX_PushArgumentString(async); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("FLUSHALL"); + if (async != "") NWNXPushString(async); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_FLUSHDB( // Redis type: enum string async = "" ) { - NWNX_PushArgumentString("FLUSHDB"); - if (async != "") NWNX_PushArgumentString(async); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("FLUSHDB"); + if (async != "") NWNXPushString(async); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GEOADD( @@ -3893,35 +3892,35 @@ int NWNX_Redis_GEOADD( float latitude, string member ) { - NWNX_PushArgumentString("GEOADD"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(FloatToString(longitude, 0)); - NWNX_PushArgumentString(FloatToString(latitude, 0)); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GEOADD"); + NWNXPushString(key); + NWNXPushString(FloatToString(longitude, 0)); + NWNXPushString(FloatToString(latitude, 0)); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GEOHASH( string key, string member ) { - NWNX_PushArgumentString("GEOHASH"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GEOHASH"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GEOPOS( string key, string member ) { - NWNX_PushArgumentString("GEOPOS"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GEOPOS"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GEODIST( @@ -3930,13 +3929,13 @@ int NWNX_Redis_GEODIST( string member2, string unit = "" ) { - NWNX_PushArgumentString("GEODIST"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member1); - NWNX_PushArgumentString(member2); - if (unit != "") NWNX_PushArgumentString(unit); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GEODIST"); + NWNXPushString(key); + NWNXPushString(member1); + NWNXPushString(member2); + if (unit != "") NWNXPushString(unit); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GEORADIUS( @@ -3964,21 +3963,21 @@ int NWNX_Redis_GEORADIUS( // Redis type: key string storedist_key = "" ) { - NWNX_PushArgumentString("GEORADIUS"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(FloatToString(longitude, 0)); - NWNX_PushArgumentString(FloatToString(latitude, 0)); - NWNX_PushArgumentString(FloatToString(radius, 0)); - NWNX_PushArgumentString(unit); - if (withcoord != "") NWNX_PushArgumentString(withcoord); - if (withdist != "") NWNX_PushArgumentString(withdist); - if (withhash != "") NWNX_PushArgumentString(withhash); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - if (order != "") NWNX_PushArgumentString(order); - if (store_key != "") NWNX_PushArgumentString(store_key); - if (storedist_key != "") NWNX_PushArgumentString(storedist_key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GEORADIUS"); + NWNXPushString(key); + NWNXPushString(FloatToString(longitude, 0)); + NWNXPushString(FloatToString(latitude, 0)); + NWNXPushString(FloatToString(radius, 0)); + NWNXPushString(unit); + if (withcoord != "") NWNXPushString(withcoord); + if (withdist != "") NWNXPushString(withdist); + if (withhash != "") NWNXPushString(withhash); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (order != "") NWNXPushString(order); + if (store_key != "") NWNXPushString(store_key); + if (storedist_key != "") NWNXPushString(storedist_key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GEORADIUSBYMEMBER( @@ -4003,29 +4002,29 @@ int NWNX_Redis_GEORADIUSBYMEMBER( // Redis type: key string storedist_key = "" ) { - NWNX_PushArgumentString("GEORADIUSBYMEMBER"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_PushArgumentString(FloatToString(radius, 0)); - NWNX_PushArgumentString(unit); - if (withcoord != "") NWNX_PushArgumentString(withcoord); - if (withdist != "") NWNX_PushArgumentString(withdist); - if (withhash != "") NWNX_PushArgumentString(withhash); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - if (order != "") NWNX_PushArgumentString(order); - if (store_key != "") NWNX_PushArgumentString(store_key); - if (storedist_key != "") NWNX_PushArgumentString(storedist_key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GEORADIUSBYMEMBER"); + NWNXPushString(key); + NWNXPushString(member); + NWNXPushString(FloatToString(radius, 0)); + NWNXPushString(unit); + if (withcoord != "") NWNXPushString(withcoord); + if (withdist != "") NWNXPushString(withdist); + if (withhash != "") NWNXPushString(withhash); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (order != "") NWNXPushString(order); + if (store_key != "") NWNXPushString(store_key); + if (storedist_key != "") NWNXPushString(storedist_key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GET( string key ) { - NWNX_PushArgumentString("GET"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GET"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GETBIT( @@ -4033,11 +4032,11 @@ int NWNX_Redis_GETBIT( // Redis type: integer int offset ) { - NWNX_PushArgumentString("GETBIT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(offset)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GETBIT"); + NWNXPushString(key); + NWNXPushString(IntToString(offset)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GETRANGE( @@ -4047,65 +4046,65 @@ int NWNX_Redis_GETRANGE( // Redis type: integer int end ) { - NWNX_PushArgumentString("GETRANGE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(start)); - NWNX_PushArgumentString(IntToString(end)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GETRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(end)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GETSET( string key, string value ) { - NWNX_PushArgumentString("GETSET"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GETSET"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HDEL( string key, string field ) { - NWNX_PushArgumentString("HDEL"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HDEL"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HEXISTS( string key, string field ) { - NWNX_PushArgumentString("HEXISTS"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HEXISTS"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HGET( string key, string field ) { - NWNX_PushArgumentString("HGET"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HGET"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HGETALL( string key ) { - NWNX_PushArgumentString("HGETALL"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HGETALL"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HINCRBY( @@ -4114,12 +4113,12 @@ int NWNX_Redis_HINCRBY( // Redis type: integer int increment ) { - NWNX_PushArgumentString("HINCRBY"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_PushArgumentString(IntToString(increment)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HINCRBY"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(IntToString(increment)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HINCRBYFLOAT( @@ -4128,41 +4127,41 @@ int NWNX_Redis_HINCRBYFLOAT( // Redis type: double float increment ) { - NWNX_PushArgumentString("HINCRBYFLOAT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_PushArgumentString(FloatToString(increment, 0)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HINCRBYFLOAT"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(FloatToString(increment, 0)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HKEYS( string key ) { - NWNX_PushArgumentString("HKEYS"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HKEYS"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HLEN( string key ) { - NWNX_PushArgumentString("HLEN"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HLEN"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HMGET( string key, string field ) { - NWNX_PushArgumentString("HMGET"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HMGET"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HMSET( @@ -4170,12 +4169,12 @@ int NWNX_Redis_HMSET( string field, string value ) { - NWNX_PushArgumentString("HMSET"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HMSET"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HSET( @@ -4183,12 +4182,12 @@ int NWNX_Redis_HSET( string field, string value ) { - NWNX_PushArgumentString("HSET"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HSET"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HSETNX( @@ -4196,41 +4195,41 @@ int NWNX_Redis_HSETNX( string field, string value ) { - NWNX_PushArgumentString("HSETNX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HSETNX"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HSTRLEN( string key, string field ) { - NWNX_PushArgumentString("HSTRLEN"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HSTRLEN"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HVALS( string key ) { - NWNX_PushArgumentString("HVALS"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HVALS"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_INCR( string key ) { - NWNX_PushArgumentString("INCR"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("INCR"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_INCRBY( @@ -4238,11 +4237,11 @@ int NWNX_Redis_INCRBY( // Redis type: integer int increment ) { - NWNX_PushArgumentString("INCRBY"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(increment)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("INCRBY"); + NWNXPushString(key); + NWNXPushString(IntToString(increment)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_INCRBYFLOAT( @@ -4250,35 +4249,35 @@ int NWNX_Redis_INCRBYFLOAT( // Redis type: double float increment ) { - NWNX_PushArgumentString("INCRBYFLOAT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(FloatToString(increment, 0)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("INCRBYFLOAT"); + NWNXPushString(key); + NWNXPushString(FloatToString(increment, 0)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_INFO( string section = "" ) { - NWNX_PushArgumentString("INFO"); - if (section != "") NWNX_PushArgumentString(section); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("INFO"); + if (section != "") NWNXPushString(section); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_KEYS( string pattern ) { - NWNX_PushArgumentString("KEYS"); - NWNX_PushArgumentString(pattern); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("KEYS"); + NWNXPushString(pattern); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LASTSAVE() { - NWNX_PushArgumentString("LASTSAVE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LASTSAVE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LINDEX( @@ -4286,11 +4285,11 @@ int NWNX_Redis_LINDEX( // Redis type: integer int index ) { - NWNX_PushArgumentString("LINDEX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(index)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LINDEX"); + NWNXPushString(key); + NWNXPushString(IntToString(index)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LINSERT( @@ -4300,53 +4299,53 @@ int NWNX_Redis_LINSERT( string pivot, string value ) { - NWNX_PushArgumentString("LINSERT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(where); - NWNX_PushArgumentString(pivot); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LINSERT"); + NWNXPushString(key); + NWNXPushString(where); + NWNXPushString(pivot); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LLEN( string key ) { - NWNX_PushArgumentString("LLEN"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LLEN"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LPOP( string key ) { - NWNX_PushArgumentString("LPOP"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LPOP"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LPUSH( string key, string value ) { - NWNX_PushArgumentString("LPUSH"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LPUSH"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LPUSHX( string key, string value ) { - NWNX_PushArgumentString("LPUSHX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LPUSHX"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LRANGE( @@ -4356,12 +4355,12 @@ int NWNX_Redis_LRANGE( // Redis type: integer int stop ) { - NWNX_PushArgumentString("LRANGE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(start)); - NWNX_PushArgumentString(IntToString(stop)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LREM( @@ -4370,12 +4369,12 @@ int NWNX_Redis_LREM( int count, string value ) { - NWNX_PushArgumentString("LREM"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(count)); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LREM"); + NWNXPushString(key); + NWNXPushString(IntToString(count)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LSET( @@ -4384,12 +4383,12 @@ int NWNX_Redis_LSET( int index, string value ) { - NWNX_PushArgumentString("LSET"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(index)); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LSET"); + NWNXPushString(key); + NWNXPushString(IntToString(index)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LTRIM( @@ -4399,42 +4398,42 @@ int NWNX_Redis_LTRIM( // Redis type: integer int stop ) { - NWNX_PushArgumentString("LTRIM"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(start)); - NWNX_PushArgumentString(IntToString(stop)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LTRIM"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MEMORY_DOCTOR() { - NWNX_PushArgumentString("MEMORY_DOCTOR"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MEMORY_DOCTOR"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MEMORY_HELP() { - NWNX_PushArgumentString("MEMORY_HELP"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MEMORY_HELP"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MEMORY_MALLOC_STATS() { - NWNX_PushArgumentString("MEMORY_MALLOC_STATS"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MEMORY_MALLOC_STATS"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MEMORY_PURGE() { - NWNX_PushArgumentString("MEMORY_PURGE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MEMORY_PURGE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MEMORY_STATS() { - NWNX_PushArgumentString("MEMORY_STATS"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MEMORY_STATS"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MEMORY_USAGE( @@ -4442,20 +4441,20 @@ int NWNX_Redis_MEMORY_USAGE( // Redis type: integer int samples_count = 0 ) { - NWNX_PushArgumentString("MEMORY_USAGE"); - NWNX_PushArgumentString(key); - if (samples_count != 0) NWNX_PushArgumentString(IntToString(samples_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MEMORY_USAGE"); + NWNXPushString(key); + if (samples_count != 0) NWNXPushString(IntToString(samples_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MGET( string key ) { - NWNX_PushArgumentString("MGET"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MGET"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MIGRATE( @@ -4475,24 +4474,24 @@ int NWNX_Redis_MIGRATE( // Redis type: key string keys_key = "" ) { - NWNX_PushArgumentString("MIGRATE"); - NWNX_PushArgumentString(host); - NWNX_PushArgumentString(port); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(destination_db)); - NWNX_PushArgumentString(IntToString(timeout)); - if (copy != "") NWNX_PushArgumentString(copy); - if (replace != "") NWNX_PushArgumentString(replace); - if (auth_password != "") NWNX_PushArgumentString(auth_password); - if (keys_key != "") NWNX_PushArgumentString(keys_key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MIGRATE"); + NWNXPushString(host); + NWNXPushString(port); + NWNXPushString(key); + NWNXPushString(IntToString(destination_db)); + NWNXPushString(IntToString(timeout)); + if (copy != "") NWNXPushString(copy); + if (replace != "") NWNXPushString(replace); + if (auth_password != "") NWNXPushString(auth_password); + if (keys_key != "") NWNXPushString(keys_key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MONITOR() { - NWNX_PushArgumentString("MONITOR"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MONITOR"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MOVE( @@ -4500,59 +4499,59 @@ int NWNX_Redis_MOVE( // Redis type: integer int db ) { - NWNX_PushArgumentString("MOVE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(db)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MOVE"); + NWNXPushString(key); + NWNXPushString(IntToString(db)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MSET( string key, string value ) { - NWNX_PushArgumentString("MSET"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MSET"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MSETNX( string key, string value ) { - NWNX_PushArgumentString("MSETNX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MSETNX"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MULTI() { - NWNX_PushArgumentString("MULTI"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MULTI"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_OBJECT( string subcommand, string arguments = "" ) { - NWNX_PushArgumentString("OBJECT"); - NWNX_PushArgumentString(subcommand); - if (arguments != "") NWNX_PushArgumentString(arguments); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("OBJECT"); + NWNXPushString(subcommand); + if (arguments != "") NWNXPushString(arguments); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PERSIST( string key ) { - NWNX_PushArgumentString("PERSIST"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PERSIST"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PEXPIRE( @@ -4560,11 +4559,11 @@ int NWNX_Redis_PEXPIRE( // Redis type: integer int milliseconds ) { - NWNX_PushArgumentString("PEXPIRE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(milliseconds)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PEXPIRE"); + NWNXPushString(key); + NWNXPushString(IntToString(milliseconds)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PEXPIREAT( @@ -4572,31 +4571,31 @@ int NWNX_Redis_PEXPIREAT( // Redis type: posix time string milliseconds_timestamp ) { - NWNX_PushArgumentString("PEXPIREAT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(milliseconds_timestamp); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PEXPIREAT"); + NWNXPushString(key); + NWNXPushString(milliseconds_timestamp); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PFADD( string key, string element ) { - NWNX_PushArgumentString("PFADD"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(element); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PFADD"); + NWNXPushString(key); + NWNXPushString(element); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PFCOUNT( string key ) { - NWNX_PushArgumentString("PFCOUNT"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PFCOUNT"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PFMERGE( @@ -4605,20 +4604,20 @@ int NWNX_Redis_PFMERGE( // Redis type: key string sourcekey ) { - NWNX_PushArgumentString("PFMERGE"); - NWNX_PushArgumentString(destkey); - NWNX_PushArgumentString(sourcekey); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PFMERGE"); + NWNXPushString(destkey); + NWNXPushString(sourcekey); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PING( string message = "" ) { - NWNX_PushArgumentString("PING"); - if (message != "") NWNX_PushArgumentString(message); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PING"); + if (message != "") NWNXPushString(message); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PSETEX( @@ -4627,67 +4626,67 @@ int NWNX_Redis_PSETEX( int milliseconds, string value ) { - NWNX_PushArgumentString("PSETEX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(milliseconds)); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PSETEX"); + NWNXPushString(key); + NWNXPushString(IntToString(milliseconds)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PUBSUB( string subcommand, string argument = "" ) { - NWNX_PushArgumentString("PUBSUB"); - NWNX_PushArgumentString(subcommand); - if (argument != "") NWNX_PushArgumentString(argument); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PUBSUB"); + NWNXPushString(subcommand); + if (argument != "") NWNXPushString(argument); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PTTL( string key ) { - NWNX_PushArgumentString("PTTL"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PTTL"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PUBLISH( string channel, string message ) { - NWNX_PushArgumentString("PUBLISH"); - NWNX_PushArgumentString(channel); - NWNX_PushArgumentString(message); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PUBLISH"); + NWNXPushString(channel); + NWNXPushString(message); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_QUIT() { - NWNX_PushArgumentString("QUIT"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("QUIT"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_RANDOMKEY() { - NWNX_PushArgumentString("RANDOMKEY"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("RANDOMKEY"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_READONLY() { - NWNX_PushArgumentString("READONLY"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("READONLY"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_READWRITE() { - NWNX_PushArgumentString("READWRITE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("READWRITE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_RENAME( @@ -4695,11 +4694,11 @@ int NWNX_Redis_RENAME( // Redis type: key string newkey ) { - NWNX_PushArgumentString("RENAME"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(newkey); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("RENAME"); + NWNXPushString(key); + NWNXPushString(newkey); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_RENAMENX( @@ -4707,11 +4706,11 @@ int NWNX_Redis_RENAMENX( // Redis type: key string newkey ) { - NWNX_PushArgumentString("RENAMENX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(newkey); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("RENAMENX"); + NWNXPushString(key); + NWNXPushString(newkey); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_RESTORE( @@ -4728,31 +4727,31 @@ int NWNX_Redis_RESTORE( // Redis type: integer int freq_frequency = 0 ) { - NWNX_PushArgumentString("RESTORE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(ttl)); - NWNX_PushArgumentString(serialized_value); - if (replace != "") NWNX_PushArgumentString(replace); - if (absttl != "") NWNX_PushArgumentString(absttl); - if (idletime_seconds != 0) NWNX_PushArgumentString(IntToString(idletime_seconds)); - if (freq_frequency != 0) NWNX_PushArgumentString(IntToString(freq_frequency)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("RESTORE"); + NWNXPushString(key); + NWNXPushString(IntToString(ttl)); + NWNXPushString(serialized_value); + if (replace != "") NWNXPushString(replace); + if (absttl != "") NWNXPushString(absttl); + if (idletime_seconds != 0) NWNXPushString(IntToString(idletime_seconds)); + if (freq_frequency != 0) NWNXPushString(IntToString(freq_frequency)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ROLE() { - NWNX_PushArgumentString("ROLE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ROLE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_RPOP( string key ) { - NWNX_PushArgumentString("RPOP"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("RPOP"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_RPOPLPUSH( @@ -4761,108 +4760,108 @@ int NWNX_Redis_RPOPLPUSH( // Redis type: key string destination ) { - NWNX_PushArgumentString("RPOPLPUSH"); - NWNX_PushArgumentString(source); - NWNX_PushArgumentString(destination); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("RPOPLPUSH"); + NWNXPushString(source); + NWNXPushString(destination); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_RPUSH( string key, string value ) { - NWNX_PushArgumentString("RPUSH"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("RPUSH"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_RPUSHX( string key, string value ) { - NWNX_PushArgumentString("RPUSHX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("RPUSHX"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SADD( string key, string member ) { - NWNX_PushArgumentString("SADD"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SADD"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SAVE() { - NWNX_PushArgumentString("SAVE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SAVE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SCARD( string key ) { - NWNX_PushArgumentString("SCARD"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SCARD"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SCRIPT_DEBUG( // Redis type: enum string mode ) { - NWNX_PushArgumentString("SCRIPT_DEBUG"); - NWNX_PushArgumentString(mode); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SCRIPT_DEBUG"); + NWNXPushString(mode); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SCRIPT_EXISTS( string sha1 ) { - NWNX_PushArgumentString("SCRIPT_EXISTS"); - NWNX_PushArgumentString(sha1); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SCRIPT_EXISTS"); + NWNXPushString(sha1); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SCRIPT_FLUSH() { - NWNX_PushArgumentString("SCRIPT_FLUSH"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SCRIPT_FLUSH"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SCRIPT_KILL() { - NWNX_PushArgumentString("SCRIPT_KILL"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SCRIPT_KILL"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SCRIPT_LOAD( string script ) { - NWNX_PushArgumentString("SCRIPT_LOAD"); - NWNX_PushArgumentString(script); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SCRIPT_LOAD"); + NWNXPushString(script); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SDIFF( string key ) { - NWNX_PushArgumentString("SDIFF"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SDIFF"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SDIFFSTORE( @@ -4870,21 +4869,21 @@ int NWNX_Redis_SDIFFSTORE( string destination, string key ) { - NWNX_PushArgumentString("SDIFFSTORE"); - NWNX_PushArgumentString(destination); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SDIFFSTORE"); + NWNXPushString(destination); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SELECT( // Redis type: integer int index ) { - NWNX_PushArgumentString("SELECT"); - NWNX_PushArgumentString(IntToString(index)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SELECT"); + NWNXPushString(IntToString(index)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SET( @@ -4893,12 +4892,12 @@ int NWNX_Redis_SET( // Redis type: enum string condition = "" ) { - NWNX_PushArgumentString("SET"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - if (condition != "") NWNX_PushArgumentString(condition); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SET"); + NWNXPushString(key); + NWNXPushString(value); + if (condition != "") NWNXPushString(condition); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SETBIT( @@ -4907,12 +4906,12 @@ int NWNX_Redis_SETBIT( int offset, string value ) { - NWNX_PushArgumentString("SETBIT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(offset)); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SETBIT"); + NWNXPushString(key); + NWNXPushString(IntToString(offset)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SETEX( @@ -4921,23 +4920,23 @@ int NWNX_Redis_SETEX( int seconds, string value ) { - NWNX_PushArgumentString("SETEX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(seconds)); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SETEX"); + NWNXPushString(key); + NWNXPushString(IntToString(seconds)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SETNX( string key, string value ) { - NWNX_PushArgumentString("SETNX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SETNX"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SETRANGE( @@ -4946,31 +4945,31 @@ int NWNX_Redis_SETRANGE( int offset, string value ) { - NWNX_PushArgumentString("SETRANGE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(offset)); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SETRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(offset)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SHUTDOWN( // Redis type: enum string save_mode = "" ) { - NWNX_PushArgumentString("SHUTDOWN"); - if (save_mode != "") NWNX_PushArgumentString(save_mode); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SHUTDOWN"); + if (save_mode != "") NWNXPushString(save_mode); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SINTER( string key ) { - NWNX_PushArgumentString("SINTER"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SINTER"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SINTERSTORE( @@ -4978,64 +4977,64 @@ int NWNX_Redis_SINTERSTORE( string destination, string key ) { - NWNX_PushArgumentString("SINTERSTORE"); - NWNX_PushArgumentString(destination); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SINTERSTORE"); + NWNXPushString(destination); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SISMEMBER( string key, string member ) { - NWNX_PushArgumentString("SISMEMBER"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SISMEMBER"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SLAVEOF( string host, string port ) { - NWNX_PushArgumentString("SLAVEOF"); - NWNX_PushArgumentString(host); - NWNX_PushArgumentString(port); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SLAVEOF"); + NWNXPushString(host); + NWNXPushString(port); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_REPLICAOF( string host, string port ) { - NWNX_PushArgumentString("REPLICAOF"); - NWNX_PushArgumentString(host); - NWNX_PushArgumentString(port); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("REPLICAOF"); + NWNXPushString(host); + NWNXPushString(port); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SLOWLOG( string subcommand, string argument = "" ) { - NWNX_PushArgumentString("SLOWLOG"); - NWNX_PushArgumentString(subcommand); - if (argument != "") NWNX_PushArgumentString(argument); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SLOWLOG"); + NWNXPushString(subcommand); + if (argument != "") NWNXPushString(argument); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SMEMBERS( string key ) { - NWNX_PushArgumentString("SMEMBERS"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SMEMBERS"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SMOVE( @@ -5045,12 +5044,12 @@ int NWNX_Redis_SMOVE( string destination, string member ) { - NWNX_PushArgumentString("SMOVE"); - NWNX_PushArgumentString(source); - NWNX_PushArgumentString(destination); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SMOVE"); + NWNXPushString(source); + NWNXPushString(destination); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SORT( @@ -5069,17 +5068,17 @@ int NWNX_Redis_SORT( // Redis type: key string store_destination = "" ) { - NWNX_PushArgumentString("SORT"); - NWNX_PushArgumentString(key); - if (by_pattern != "") NWNX_PushArgumentString(by_pattern); - if (limit_offset != 0) NWNX_PushArgumentString(IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString(IntToString(limit_count)); - if (get_pattern != "") NWNX_PushArgumentString(get_pattern); - if (order != "") NWNX_PushArgumentString(order); - if (sorting != "") NWNX_PushArgumentString(sorting); - if (store_destination != "") NWNX_PushArgumentString(store_destination); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SORT"); + NWNXPushString(key); + if (by_pattern != "") NWNXPushString(by_pattern); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + if (get_pattern != "") NWNXPushString(get_pattern); + if (order != "") NWNXPushString(order); + if (sorting != "") NWNXPushString(sorting); + if (store_destination != "") NWNXPushString(store_destination); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SPOP( @@ -5087,11 +5086,11 @@ int NWNX_Redis_SPOP( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("SPOP"); - NWNX_PushArgumentString(key); - if (count != 0) NWNX_PushArgumentString(IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SPOP"); + NWNXPushString(key); + if (count != 0) NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SRANDMEMBER( @@ -5099,40 +5098,40 @@ int NWNX_Redis_SRANDMEMBER( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("SRANDMEMBER"); - NWNX_PushArgumentString(key); - if (count != 0) NWNX_PushArgumentString(IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SRANDMEMBER"); + NWNXPushString(key); + if (count != 0) NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SREM( string key, string member ) { - NWNX_PushArgumentString("SREM"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SREM"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_STRLEN( string key ) { - NWNX_PushArgumentString("STRLEN"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("STRLEN"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SUNION( string key ) { - NWNX_PushArgumentString("SUNION"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SUNION"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SUNIONSTORE( @@ -5140,11 +5139,11 @@ int NWNX_Redis_SUNIONSTORE( string destination, string key ) { - NWNX_PushArgumentString("SUNIONSTORE"); - NWNX_PushArgumentString(destination); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SUNIONSTORE"); + NWNXPushString(destination); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SWAPDB( @@ -5153,65 +5152,65 @@ int NWNX_Redis_SWAPDB( // Redis type: integer int index_1 ) { - NWNX_PushArgumentString("SWAPDB"); - NWNX_PushArgumentString(IntToString(index)); - NWNX_PushArgumentString(IntToString(index_1)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SWAPDB"); + NWNXPushString(IntToString(index)); + NWNXPushString(IntToString(index_1)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SYNC() { - NWNX_PushArgumentString("SYNC"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SYNC"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_TIME() { - NWNX_PushArgumentString("TIME"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("TIME"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_TOUCH( string key ) { - NWNX_PushArgumentString("TOUCH"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("TOUCH"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_TTL( string key ) { - NWNX_PushArgumentString("TTL"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("TTL"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_TYPE( string key ) { - NWNX_PushArgumentString("TYPE"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("TYPE"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_UNLINK( string key ) { - NWNX_PushArgumentString("UNLINK"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("UNLINK"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_UNWATCH() { - NWNX_PushArgumentString("UNWATCH"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("UNWATCH"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_WAIT( @@ -5220,20 +5219,20 @@ int NWNX_Redis_WAIT( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("WAIT"); - NWNX_PushArgumentString(IntToString(numreplicas)); - NWNX_PushArgumentString(IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("WAIT"); + NWNXPushString(IntToString(numreplicas)); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_WATCH( string key ) { - NWNX_PushArgumentString("WATCH"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("WATCH"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZADD( @@ -5248,24 +5247,24 @@ int NWNX_Redis_ZADD( float score = 0.0, string member = "" ) { - NWNX_PushArgumentString("ZADD"); - NWNX_PushArgumentString(key); - if (condition != "") NWNX_PushArgumentString(condition); - if (change != "") NWNX_PushArgumentString(change); - if (increment != "") NWNX_PushArgumentString(increment); - NWNX_PushArgumentString(FloatToString(score, 0)); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZADD"); + NWNXPushString(key); + if (condition != "") NWNXPushString(condition); + if (change != "") NWNXPushString(change); + if (increment != "") NWNXPushString(increment); + NWNXPushString(FloatToString(score, 0)); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZCARD( string key ) { - NWNX_PushArgumentString("ZCARD"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZCARD"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZCOUNT( @@ -5275,12 +5274,12 @@ int NWNX_Redis_ZCOUNT( // Redis type: double float max ) { - NWNX_PushArgumentString("ZCOUNT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(FloatToString(min, 0)); - NWNX_PushArgumentString(FloatToString(max, 0)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZCOUNT"); + NWNXPushString(key); + NWNXPushString(FloatToString(min, 0)); + NWNXPushString(FloatToString(max, 0)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZINCRBY( @@ -5289,12 +5288,12 @@ int NWNX_Redis_ZINCRBY( int increment, string member ) { - NWNX_PushArgumentString("ZINCRBY"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(increment)); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZINCRBY"); + NWNXPushString(key); + NWNXPushString(IntToString(increment)); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZINTERSTORE( @@ -5308,14 +5307,14 @@ int NWNX_Redis_ZINTERSTORE( // Redis type: enum string aggregate_aggregate = "" ) { - NWNX_PushArgumentString("ZINTERSTORE"); - NWNX_PushArgumentString(destination); - NWNX_PushArgumentString(IntToString(numkeys)); - NWNX_PushArgumentString(key); - if (weights_weight != 0) NWNX_PushArgumentString(IntToString(weights_weight)); - if (aggregate_aggregate != "") NWNX_PushArgumentString(aggregate_aggregate); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZINTERSTORE"); + NWNXPushString(destination); + NWNXPushString(IntToString(numkeys)); + NWNXPushString(key); + if (weights_weight != 0) NWNXPushString(IntToString(weights_weight)); + if (aggregate_aggregate != "") NWNXPushString(aggregate_aggregate); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZLEXCOUNT( @@ -5323,12 +5322,12 @@ int NWNX_Redis_ZLEXCOUNT( string min, string max ) { - NWNX_PushArgumentString("ZLEXCOUNT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(min); - NWNX_PushArgumentString(max); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZLEXCOUNT"); + NWNXPushString(key); + NWNXPushString(min); + NWNXPushString(max); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZPOPMAX( @@ -5336,11 +5335,11 @@ int NWNX_Redis_ZPOPMAX( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("ZPOPMAX"); - NWNX_PushArgumentString(key); - if (count != 0) NWNX_PushArgumentString(IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZPOPMAX"); + NWNXPushString(key); + if (count != 0) NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZPOPMIN( @@ -5348,11 +5347,11 @@ int NWNX_Redis_ZPOPMIN( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("ZPOPMIN"); - NWNX_PushArgumentString(key); - if (count != 0) NWNX_PushArgumentString(IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZPOPMIN"); + NWNXPushString(key); + if (count != 0) NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZRANGE( @@ -5364,13 +5363,13 @@ int NWNX_Redis_ZRANGE( // Redis type: enum string withscores = "" ) { - NWNX_PushArgumentString("ZRANGE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(start)); - NWNX_PushArgumentString(IntToString(stop)); - if (withscores != "") NWNX_PushArgumentString(withscores); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + if (withscores != "") NWNXPushString(withscores); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZRANGEBYLEX( @@ -5382,14 +5381,14 @@ int NWNX_Redis_ZRANGEBYLEX( // Redis type: integer int limit_count = 0 ) { - NWNX_PushArgumentString("ZRANGEBYLEX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(min); - NWNX_PushArgumentString(max); - if (limit_offset != 0) NWNX_PushArgumentString(IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString(IntToString(limit_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZRANGEBYLEX"); + NWNXPushString(key); + NWNXPushString(min); + NWNXPushString(max); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZREVRANGEBYLEX( @@ -5401,14 +5400,14 @@ int NWNX_Redis_ZREVRANGEBYLEX( // Redis type: integer int limit_count = 0 ) { - NWNX_PushArgumentString("ZREVRANGEBYLEX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(max); - NWNX_PushArgumentString(min); - if (limit_offset != 0) NWNX_PushArgumentString(IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString(IntToString(limit_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZREVRANGEBYLEX"); + NWNXPushString(key); + NWNXPushString(max); + NWNXPushString(min); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZRANGEBYSCORE( @@ -5424,37 +5423,37 @@ int NWNX_Redis_ZRANGEBYSCORE( // Redis type: integer int limit_count = 0 ) { - NWNX_PushArgumentString("ZRANGEBYSCORE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(FloatToString(min, 0)); - NWNX_PushArgumentString(FloatToString(max, 0)); - if (withscores != "") NWNX_PushArgumentString(withscores); - if (limit_offset != 0) NWNX_PushArgumentString(IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString(IntToString(limit_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZRANGEBYSCORE"); + NWNXPushString(key); + NWNXPushString(FloatToString(min, 0)); + NWNXPushString(FloatToString(max, 0)); + if (withscores != "") NWNXPushString(withscores); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZRANK( string key, string member ) { - NWNX_PushArgumentString("ZRANK"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZRANK"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZREM( string key, string member ) { - NWNX_PushArgumentString("ZREM"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZREM"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZREMRANGEBYLEX( @@ -5462,12 +5461,12 @@ int NWNX_Redis_ZREMRANGEBYLEX( string min, string max ) { - NWNX_PushArgumentString("ZREMRANGEBYLEX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(min); - NWNX_PushArgumentString(max); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZREMRANGEBYLEX"); + NWNXPushString(key); + NWNXPushString(min); + NWNXPushString(max); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZREMRANGEBYRANK( @@ -5477,12 +5476,12 @@ int NWNX_Redis_ZREMRANGEBYRANK( // Redis type: integer int stop ) { - NWNX_PushArgumentString("ZREMRANGEBYRANK"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(start)); - NWNX_PushArgumentString(IntToString(stop)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZREMRANGEBYRANK"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZREMRANGEBYSCORE( @@ -5492,12 +5491,12 @@ int NWNX_Redis_ZREMRANGEBYSCORE( // Redis type: double float max ) { - NWNX_PushArgumentString("ZREMRANGEBYSCORE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(FloatToString(min, 0)); - NWNX_PushArgumentString(FloatToString(max, 0)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZREMRANGEBYSCORE"); + NWNXPushString(key); + NWNXPushString(FloatToString(min, 0)); + NWNXPushString(FloatToString(max, 0)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZREVRANGE( @@ -5509,13 +5508,13 @@ int NWNX_Redis_ZREVRANGE( // Redis type: enum string withscores = "" ) { - NWNX_PushArgumentString("ZREVRANGE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(start)); - NWNX_PushArgumentString(IntToString(stop)); - if (withscores != "") NWNX_PushArgumentString(withscores); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZREVRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + if (withscores != "") NWNXPushString(withscores); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZREVRANGEBYSCORE( @@ -5531,37 +5530,37 @@ int NWNX_Redis_ZREVRANGEBYSCORE( // Redis type: integer int limit_count = 0 ) { - NWNX_PushArgumentString("ZREVRANGEBYSCORE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(FloatToString(max, 0)); - NWNX_PushArgumentString(FloatToString(min, 0)); - if (withscores != "") NWNX_PushArgumentString(withscores); - if (limit_offset != 0) NWNX_PushArgumentString(IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString(IntToString(limit_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZREVRANGEBYSCORE"); + NWNXPushString(key); + NWNXPushString(FloatToString(max, 0)); + NWNXPushString(FloatToString(min, 0)); + if (withscores != "") NWNXPushString(withscores); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZREVRANK( string key, string member ) { - NWNX_PushArgumentString("ZREVRANK"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZREVRANK"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZSCORE( string key, string member ) { - NWNX_PushArgumentString("ZSCORE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZSCORE"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZUNIONSTORE( @@ -5575,14 +5574,14 @@ int NWNX_Redis_ZUNIONSTORE( // Redis type: enum string aggregate_aggregate = "" ) { - NWNX_PushArgumentString("ZUNIONSTORE"); - NWNX_PushArgumentString(destination); - NWNX_PushArgumentString(IntToString(numkeys)); - NWNX_PushArgumentString(key); - if (weights_weight != 0) NWNX_PushArgumentString(IntToString(weights_weight)); - if (aggregate_aggregate != "") NWNX_PushArgumentString(aggregate_aggregate); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZUNIONSTORE"); + NWNXPushString(destination); + NWNXPushString(IntToString(numkeys)); + NWNXPushString(key); + if (weights_weight != 0) NWNXPushString(IntToString(weights_weight)); + if (aggregate_aggregate != "") NWNXPushString(aggregate_aggregate); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SCAN( @@ -5594,13 +5593,13 @@ int NWNX_Redis_SCAN( int count_count = 0, string type_type = "" ) { - NWNX_PushArgumentString("SCAN"); - NWNX_PushArgumentString(IntToString(cursor)); - if (match_pattern != "") NWNX_PushArgumentString(match_pattern); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - if (type_type != "") NWNX_PushArgumentString(type_type); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SCAN"); + NWNXPushString(IntToString(cursor)); + if (match_pattern != "") NWNXPushString(match_pattern); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (type_type != "") NWNXPushString(type_type); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SSCAN( @@ -5612,13 +5611,13 @@ int NWNX_Redis_SSCAN( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("SSCAN"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(cursor)); - if (match_pattern != "") NWNX_PushArgumentString(match_pattern); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SSCAN"); + NWNXPushString(key); + NWNXPushString(IntToString(cursor)); + if (match_pattern != "") NWNXPushString(match_pattern); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HSCAN( @@ -5630,13 +5629,13 @@ int NWNX_Redis_HSCAN( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("HSCAN"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(cursor)); - if (match_pattern != "") NWNX_PushArgumentString(match_pattern); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HSCAN"); + NWNXPushString(key); + NWNXPushString(IntToString(cursor)); + if (match_pattern != "") NWNXPushString(match_pattern); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZSCAN( @@ -5648,13 +5647,13 @@ int NWNX_Redis_ZSCAN( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("ZSCAN"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(cursor)); - if (match_pattern != "") NWNX_PushArgumentString(match_pattern); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZSCAN"); + NWNXPushString(key); + NWNXPushString(IntToString(cursor)); + if (match_pattern != "") NWNXPushString(match_pattern); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XINFO( @@ -5668,14 +5667,14 @@ int NWNX_Redis_XINFO( // Redis type: enum string help = "" ) { - NWNX_PushArgumentString("XINFO"); - if (consumers_key != "") NWNX_PushArgumentString(consumers_key); - if (consumers_groupname != "") NWNX_PushArgumentString(consumers_groupname); - if (groups_key != "") NWNX_PushArgumentString(groups_key); - if (stream_key != "") NWNX_PushArgumentString(stream_key); - if (help != "") NWNX_PushArgumentString(help); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XINFO"); + if (consumers_key != "") NWNXPushString(consumers_key); + if (consumers_groupname != "") NWNXPushString(consumers_groupname); + if (groups_key != "") NWNXPushString(groups_key); + if (stream_key != "") NWNXPushString(stream_key); + if (help != "") NWNXPushString(help); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XADD( @@ -5685,13 +5684,13 @@ int NWNX_Redis_XADD( string field, string str ) { - NWNX_PushArgumentString("XADD"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(ID); - NWNX_PushArgumentString(field); - NWNX_PushArgumentString(str); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XADD"); + NWNXPushString(key); + NWNXPushString(ID); + NWNXPushString(field); + NWNXPushString(str); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XTRIM( @@ -5703,24 +5702,24 @@ int NWNX_Redis_XTRIM( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("XTRIM"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(strategy); - if (approx != "") NWNX_PushArgumentString(approx); - NWNX_PushArgumentString(IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XTRIM"); + NWNXPushString(key); + NWNXPushString(strategy); + if (approx != "") NWNXPushString(approx); + NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XDEL( string key, string ID ) { - NWNX_PushArgumentString("XDEL"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(ID); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XDEL"); + NWNXPushString(key); + NWNXPushString(ID); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XRANGE( @@ -5730,13 +5729,13 @@ int NWNX_Redis_XRANGE( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("XRANGE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(start); - NWNX_PushArgumentString(end); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XRANGE"); + NWNXPushString(key); + NWNXPushString(start); + NWNXPushString(end); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XREVRANGE( @@ -5746,22 +5745,22 @@ int NWNX_Redis_XREVRANGE( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("XREVRANGE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(end); - NWNX_PushArgumentString(start); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XREVRANGE"); + NWNXPushString(key); + NWNXPushString(end); + NWNXPushString(start); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XLEN( string key ) { - NWNX_PushArgumentString("XLEN"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XLEN"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XREAD( @@ -5774,14 +5773,14 @@ int NWNX_Redis_XREAD( string key = "", string ID = "" ) { - NWNX_PushArgumentString("XREAD"); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - if (block_milliseconds != 0) NWNX_PushArgumentString(IntToString(block_milliseconds)); - NWNX_PushArgumentString(streams); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(ID); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XREAD"); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (block_milliseconds != 0) NWNXPushString(IntToString(block_milliseconds)); + NWNXPushString(streams); + NWNXPushString(key); + NWNXPushString(ID); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XGROUP( @@ -5801,20 +5800,20 @@ int NWNX_Redis_XGROUP( string delconsumer_groupname = "", string delconsumer_consumername = "" ) { - NWNX_PushArgumentString("XGROUP"); - if (create_key != "") NWNX_PushArgumentString(create_key); - if (create_groupname != "") NWNX_PushArgumentString(create_groupname); - if (create_id_or__ != "") NWNX_PushArgumentString(create_id_or__); - if (setid_key != "") NWNX_PushArgumentString(setid_key); - if (setid_groupname != "") NWNX_PushArgumentString(setid_groupname); - if (setid_id_or__ != "") NWNX_PushArgumentString(setid_id_or__); - if (destroy_key != "") NWNX_PushArgumentString(destroy_key); - if (destroy_groupname != "") NWNX_PushArgumentString(destroy_groupname); - if (delconsumer_key != "") NWNX_PushArgumentString(delconsumer_key); - if (delconsumer_groupname != "") NWNX_PushArgumentString(delconsumer_groupname); - if (delconsumer_consumername != "") NWNX_PushArgumentString(delconsumer_consumername); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XGROUP"); + if (create_key != "") NWNXPushString(create_key); + if (create_groupname != "") NWNXPushString(create_groupname); + if (create_id_or__ != "") NWNXPushString(create_id_or__); + if (setid_key != "") NWNXPushString(setid_key); + if (setid_groupname != "") NWNXPushString(setid_groupname); + if (setid_id_or__ != "") NWNXPushString(setid_id_or__); + if (destroy_key != "") NWNXPushString(destroy_key); + if (destroy_groupname != "") NWNXPushString(destroy_groupname); + if (delconsumer_key != "") NWNXPushString(delconsumer_key); + if (delconsumer_groupname != "") NWNXPushString(delconsumer_groupname); + if (delconsumer_consumername != "") NWNXPushString(delconsumer_consumername); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XREADGROUP( @@ -5831,17 +5830,17 @@ int NWNX_Redis_XREADGROUP( string key = "", string ID = "" ) { - NWNX_PushArgumentString("XREADGROUP"); - NWNX_PushArgumentString(group_group); - NWNX_PushArgumentString(group_consumer); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - if (block_milliseconds != 0) NWNX_PushArgumentString(IntToString(block_milliseconds)); - if (noack != "") NWNX_PushArgumentString(noack); - NWNX_PushArgumentString(streams); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(ID); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XREADGROUP"); + NWNXPushString(group_group); + NWNXPushString(group_consumer); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (block_milliseconds != 0) NWNXPushString(IntToString(block_milliseconds)); + if (noack != "") NWNXPushString(noack); + NWNXPushString(streams); + NWNXPushString(key); + NWNXPushString(ID); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XACK( @@ -5849,12 +5848,12 @@ int NWNX_Redis_XACK( string group, string ID ) { - NWNX_PushArgumentString("XACK"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(group); - NWNX_PushArgumentString(ID); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XACK"); + NWNXPushString(key); + NWNXPushString(group); + NWNXPushString(ID); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XCLAIM( @@ -5870,17 +5869,17 @@ int NWNX_Redis_XCLAIM( // Redis type: integer int retrycount_count = 0 ) { - NWNX_PushArgumentString("XCLAIM"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(group); - NWNX_PushArgumentString(consumer); - NWNX_PushArgumentString(min_idle_time); - NWNX_PushArgumentString(ID); - if (idle_ms != 0) NWNX_PushArgumentString(IntToString(idle_ms)); - if (time_ms_unix_time != 0) NWNX_PushArgumentString(IntToString(time_ms_unix_time)); - if (retrycount_count != 0) NWNX_PushArgumentString(IntToString(retrycount_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XCLAIM"); + NWNXPushString(key); + NWNXPushString(group); + NWNXPushString(consumer); + NWNXPushString(min_idle_time); + NWNXPushString(ID); + if (idle_ms != 0) NWNXPushString(IntToString(idle_ms)); + if (time_ms_unix_time != 0) NWNXPushString(IntToString(time_ms_unix_time)); + if (retrycount_count != 0) NWNXPushString(IntToString(retrycount_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XPENDING( @@ -5892,15 +5891,15 @@ int NWNX_Redis_XPENDING( int count = 0, string consumer = "" ) { - NWNX_PushArgumentString("XPENDING"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(group); - if (start != "") NWNX_PushArgumentString(start); - if (end != "") NWNX_PushArgumentString(end); - if (count != 0) NWNX_PushArgumentString(IntToString(count)); - if (consumer != "") NWNX_PushArgumentString(consumer); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XPENDING"); + NWNXPushString(key); + NWNXPushString(group); + if (start != "") NWNXPushString(start); + if (end != "") NWNXPushString(end); + if (count != 0) NWNXPushString(IntToString(count)); + if (consumer != "") NWNXPushString(consumer); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } /// @} diff --git a/_module/nss/nwnx_redis_lib.nss b/_module/nss/nwnx_redis_lib.nss index 1593345f..ce931a2b 100644 --- a/_module/nss/nwnx_redis_lib.nss +++ b/_module/nss/nwnx_redis_lib.nss @@ -3,7 +3,6 @@ /// @{ /// @file nwnx_redis_lib.nss /// @brief Allows connection and interfacing with a redis server. -#include "nwnx" /// @anchor redis_results /// @name Redis Results @@ -65,44 +64,44 @@ string NWNX_Redis_GetResultAsString(int resultId); int NWNX_Redis_GetResultType(int resultId) { - NWNX_PushArgumentInt(resultId); - NWNX_CallFunction("NWNX_Redis", "GetResultType"); - return NWNX_GetReturnValueInt(); + NWNXPushInt(resultId); + NWNXCall("NWNX_Redis", "GetResultType"); + return NWNXPopInt(); } int NWNX_Redis_GetArrayLength(int resultId) { - NWNX_PushArgumentInt(resultId); - NWNX_CallFunction("NWNX_Redis", "GetResultArrayLength"); - return NWNX_GetReturnValueInt(); + NWNXPushInt(resultId); + NWNXCall("NWNX_Redis", "GetResultArrayLength"); + return NWNXPopInt(); } // Returns the last int NWNX_Redis_GetArrayElement(int resultId, int idx) { - NWNX_PushArgumentInt(resultId); - NWNX_PushArgumentInt(idx); - NWNX_CallFunction("NWNX_Redis", "GetResultArrayElement"); - return NWNX_GetReturnValueInt(); + NWNXPushInt(resultId); + NWNXPushInt(idx); + NWNXCall("NWNX_Redis", "GetResultArrayElement"); + return NWNXPopInt(); } float NWNX_Redis_GetResultAsFloat(int resultId) { - NWNX_PushArgumentInt(resultId); - NWNX_CallFunction("NWNX_Redis", "GetResultAsString"); - return StringToFloat(NWNX_GetReturnValueString()); + NWNXPushInt(resultId); + NWNXCall("NWNX_Redis", "GetResultAsString"); + return StringToFloat(NWNXPopString()); } int NWNX_Redis_GetResultAsInt(int resultId) { - NWNX_PushArgumentInt(resultId); - NWNX_CallFunction("NWNX_Redis", "GetResultAsString"); - return StringToInt(NWNX_GetReturnValueString()); + NWNXPushInt(resultId); + NWNXCall("NWNX_Redis", "GetResultAsString"); + return StringToInt(NWNXPopString()); } string NWNX_Redis_GetResultAsString(int resultId) { - NWNX_PushArgumentInt(resultId); - NWNX_CallFunction("NWNX_Redis", "GetResultAsString"); - return NWNX_GetReturnValueString(); + NWNXPushInt(resultId); + NWNXCall("NWNX_Redis", "GetResultAsString"); + return NWNXPopString(); } diff --git a/_module/nss/nwnx_redis_ps.nss b/_module/nss/nwnx_redis_ps.nss index 83ca4485..ca03f317 100644 --- a/_module/nss/nwnx_redis_ps.nss +++ b/_module/nss/nwnx_redis_ps.nss @@ -2,7 +2,6 @@ /// @brief Interface to Redis PUBSUB /// @{ /// @file nwnx_redis_ps.nss -#include "nwnx" /// A redis PUBSUB message struct NWNX_Redis_PubSubMessageData { @@ -15,9 +14,9 @@ struct NWNX_Redis_PubSubMessageData { struct NWNX_Redis_PubSubMessageData NWNX_Redis_GetPubSubMessageData() { struct NWNX_Redis_PubSubMessageData ret; - NWNX_CallFunction("NWNX_Redis", "GetPubSubData"); - ret.message = NWNX_GetReturnValueString(); - ret.channel = NWNX_GetReturnValueString(); + NWNXCall("NWNX_Redis", "GetPubSubData"); + ret.message = NWNXPopString(); + ret.channel = NWNXPopString(); return ret; } /// @} diff --git a/_module/nss/nwnx_redis_short.nss b/_module/nss/nwnx_redis_short.nss index 53b2d01f..ec1945e6 100644 --- a/_module/nss/nwnx_redis_short.nss +++ b/_module/nss/nwnx_redis_short.nss @@ -1,4 +1,3 @@ -#include "nwnx" #include "nwnx_redis_lib" @@ -3230,32 +3229,32 @@ int APPEND( string key, string value ) { - NWNX_PushArgumentString("APPEND"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("APPEND"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int AUTH( string password ) { - NWNX_PushArgumentString("AUTH"); - NWNX_PushArgumentString(password); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("AUTH"); + NWNXPushString(password); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BGREWRITEAOF() { - NWNX_PushArgumentString("BGREWRITEAOF"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BGREWRITEAOF"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BGSAVE() { - NWNX_PushArgumentString("BGSAVE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BGSAVE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BITCOUNT( @@ -3265,12 +3264,12 @@ int BITCOUNT( // Redis type: integer int end = 0 ) { - NWNX_PushArgumentString("BITCOUNT"); - NWNX_PushArgumentString(key); - if (start != 0) NWNX_PushArgumentString(IntToString(start)); - if (end != 0) NWNX_PushArgumentString(IntToString(end)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BITCOUNT"); + NWNXPushString(key); + if (start != 0) NWNXPushString(IntToString(start)); + if (end != 0) NWNXPushString(IntToString(end)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BITFIELD( @@ -3292,18 +3291,18 @@ int BITFIELD( // Redis type: integer int incrby_increment = 0 ) { - NWNX_PushArgumentString("BITFIELD"); - NWNX_PushArgumentString(key); - if (get_type != "") NWNX_PushArgumentString(get_type); - if (get_offset != 0) NWNX_PushArgumentString(IntToString(get_offset)); - if (set_type != "") NWNX_PushArgumentString(set_type); - if (set_offset != 0) NWNX_PushArgumentString(IntToString(set_offset)); - if (set_value != 0) NWNX_PushArgumentString(IntToString(set_value)); - if (incrby_type != "") NWNX_PushArgumentString(incrby_type); - if (incrby_offset != 0) NWNX_PushArgumentString(IntToString(incrby_offset)); - if (incrby_increment != 0) NWNX_PushArgumentString(IntToString(incrby_increment)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BITFIELD"); + NWNXPushString(key); + if (get_type != "") NWNXPushString(get_type); + if (get_offset != 0) NWNXPushString(IntToString(get_offset)); + if (set_type != "") NWNXPushString(set_type); + if (set_offset != 0) NWNXPushString(IntToString(set_offset)); + if (set_value != 0) NWNXPushString(IntToString(set_value)); + if (incrby_type != "") NWNXPushString(incrby_type); + if (incrby_offset != 0) NWNXPushString(IntToString(incrby_offset)); + if (incrby_increment != 0) NWNXPushString(IntToString(incrby_increment)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BITOP( @@ -3312,12 +3311,12 @@ int BITOP( string destkey, string key ) { - NWNX_PushArgumentString("BITOP"); - NWNX_PushArgumentString(operation); - NWNX_PushArgumentString(destkey); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BITOP"); + NWNXPushString(operation); + NWNXPushString(destkey); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BITPOS( @@ -3329,13 +3328,13 @@ int BITPOS( // Redis type: integer int end = 0 ) { - NWNX_PushArgumentString("BITPOS"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(bit)); - if (start != 0) NWNX_PushArgumentString(IntToString(start)); - if (end != 0) NWNX_PushArgumentString(IntToString(end)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BITPOS"); + NWNXPushString(key); + NWNXPushString(IntToString(bit)); + if (start != 0) NWNXPushString(IntToString(start)); + if (end != 0) NWNXPushString(IntToString(end)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BLPOP( @@ -3343,11 +3342,11 @@ int BLPOP( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("BLPOP"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BLPOP"); + NWNXPushString(key); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BRPOP( @@ -3355,11 +3354,11 @@ int BRPOP( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("BRPOP"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BRPOP"); + NWNXPushString(key); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BRPOPLPUSH( @@ -3370,12 +3369,12 @@ int BRPOPLPUSH( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("BRPOPLPUSH"); - NWNX_PushArgumentString(source); - NWNX_PushArgumentString(destination); - NWNX_PushArgumentString(IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BRPOPLPUSH"); + NWNXPushString(source); + NWNXPushString(destination); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BZPOPMIN( @@ -3383,11 +3382,11 @@ int BZPOPMIN( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("BZPOPMIN"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BZPOPMIN"); + NWNXPushString(key); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BZPOPMAX( @@ -3395,17 +3394,17 @@ int BZPOPMAX( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("BZPOPMAX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("BZPOPMAX"); + NWNXPushString(key); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLIENT_ID() { - NWNX_PushArgumentString("CLIENT_ID"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLIENT_ID"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLIENT_KILL( @@ -3415,54 +3414,54 @@ int CLIENT_KILL( string addr_ip_port = "", string skipme_yes_no = "" ) { - NWNX_PushArgumentString("CLIENT_KILL"); - if (ip_port != "") NWNX_PushArgumentString(ip_port); - if (id_client_id != 0) NWNX_PushArgumentString(IntToString(id_client_id)); - if (addr_ip_port != "") NWNX_PushArgumentString(addr_ip_port); - if (skipme_yes_no != "") NWNX_PushArgumentString(skipme_yes_no); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLIENT_KILL"); + if (ip_port != "") NWNXPushString(ip_port); + if (id_client_id != 0) NWNXPushString(IntToString(id_client_id)); + if (addr_ip_port != "") NWNXPushString(addr_ip_port); + if (skipme_yes_no != "") NWNXPushString(skipme_yes_no); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLIENT_LIST() { - NWNX_PushArgumentString("CLIENT_LIST"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLIENT_LIST"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLIENT_GETNAME() { - NWNX_PushArgumentString("CLIENT_GETNAME"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLIENT_GETNAME"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLIENT_PAUSE( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("CLIENT_PAUSE"); - NWNX_PushArgumentString(IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLIENT_PAUSE"); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLIENT_REPLY( // Redis type: enum string reply_mode ) { - NWNX_PushArgumentString("CLIENT_REPLY"); - NWNX_PushArgumentString(reply_mode); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLIENT_REPLY"); + NWNXPushString(reply_mode); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLIENT_SETNAME( string connection_name ) { - NWNX_PushArgumentString("CLIENT_SETNAME"); - NWNX_PushArgumentString(connection_name); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLIENT_SETNAME"); + NWNXPushString(connection_name); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLIENT_UNBLOCK( @@ -3470,69 +3469,69 @@ int CLIENT_UNBLOCK( // Redis type: enum string unblock_type = "" ) { - NWNX_PushArgumentString("CLIENT_UNBLOCK"); - NWNX_PushArgumentString(client_id); - if (unblock_type != "") NWNX_PushArgumentString(unblock_type); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLIENT_UNBLOCK"); + NWNXPushString(client_id); + if (unblock_type != "") NWNXPushString(unblock_type); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_ADDSLOTS( // Redis type: integer int slot ) { - NWNX_PushArgumentString("CLUSTER_ADDSLOTS"); - NWNX_PushArgumentString(IntToString(slot)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_ADDSLOTS"); + NWNXPushString(IntToString(slot)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_COUNT_FAILURE_REPORTS( string node_id ) { - NWNX_PushArgumentString("CLUSTER_COUNT_FAILURE_REPORTS"); - NWNX_PushArgumentString(node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_COUNT_FAILURE_REPORTS"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_COUNTKEYSINSLOT( // Redis type: integer int slot ) { - NWNX_PushArgumentString("CLUSTER_COUNTKEYSINSLOT"); - NWNX_PushArgumentString(IntToString(slot)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_COUNTKEYSINSLOT"); + NWNXPushString(IntToString(slot)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_DELSLOTS( // Redis type: integer int slot ) { - NWNX_PushArgumentString("CLUSTER_DELSLOTS"); - NWNX_PushArgumentString(IntToString(slot)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_DELSLOTS"); + NWNXPushString(IntToString(slot)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_FAILOVER( // Redis type: enum string options = "" ) { - NWNX_PushArgumentString("CLUSTER_FAILOVER"); - if (options != "") NWNX_PushArgumentString(options); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_FAILOVER"); + if (options != "") NWNXPushString(options); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_FORGET( string node_id ) { - NWNX_PushArgumentString("CLUSTER_FORGET"); - NWNX_PushArgumentString(node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_FORGET"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_GETKEYSINSLOT( @@ -3541,26 +3540,26 @@ int CLUSTER_GETKEYSINSLOT( // Redis type: integer int count ) { - NWNX_PushArgumentString("CLUSTER_GETKEYSINSLOT"); - NWNX_PushArgumentString(IntToString(slot)); - NWNX_PushArgumentString(IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_GETKEYSINSLOT"); + NWNXPushString(IntToString(slot)); + NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_INFO() { - NWNX_PushArgumentString("CLUSTER_INFO"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_INFO"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_KEYSLOT( string key ) { - NWNX_PushArgumentString("CLUSTER_KEYSLOT"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_KEYSLOT"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_MEET( @@ -3568,52 +3567,52 @@ int CLUSTER_MEET( // Redis type: integer int port ) { - NWNX_PushArgumentString("CLUSTER_MEET"); - NWNX_PushArgumentString(ip); - NWNX_PushArgumentString(IntToString(port)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_MEET"); + NWNXPushString(ip); + NWNXPushString(IntToString(port)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_NODES() { - NWNX_PushArgumentString("CLUSTER_NODES"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_NODES"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_REPLICATE( string node_id ) { - NWNX_PushArgumentString("CLUSTER_REPLICATE"); - NWNX_PushArgumentString(node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_REPLICATE"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_RESET( // Redis type: enum string reset_type = "" ) { - NWNX_PushArgumentString("CLUSTER_RESET"); - if (reset_type != "") NWNX_PushArgumentString(reset_type); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_RESET"); + if (reset_type != "") NWNXPushString(reset_type); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_SAVECONFIG() { - NWNX_PushArgumentString("CLUSTER_SAVECONFIG"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_SAVECONFIG"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_SET_CONFIG_EPOCH( // Redis type: integer int config_epoch ) { - NWNX_PushArgumentString("CLUSTER_SET_CONFIG_EPOCH"); - NWNX_PushArgumentString(IntToString(config_epoch)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_SET_CONFIG_EPOCH"); + NWNXPushString(IntToString(config_epoch)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_SETSLOT( @@ -3623,125 +3622,125 @@ int CLUSTER_SETSLOT( string subcommand, string node_id = "" ) { - NWNX_PushArgumentString("CLUSTER_SETSLOT"); - NWNX_PushArgumentString(IntToString(slot)); - NWNX_PushArgumentString(subcommand); - if (node_id != "") NWNX_PushArgumentString(node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_SETSLOT"); + NWNXPushString(IntToString(slot)); + NWNXPushString(subcommand); + if (node_id != "") NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_SLAVES( string node_id ) { - NWNX_PushArgumentString("CLUSTER_SLAVES"); - NWNX_PushArgumentString(node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_SLAVES"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_REPLICAS( string node_id ) { - NWNX_PushArgumentString("CLUSTER_REPLICAS"); - NWNX_PushArgumentString(node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_REPLICAS"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_SLOTS() { - NWNX_PushArgumentString("CLUSTER_SLOTS"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CLUSTER_SLOTS"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int COMMAND() { - NWNX_PushArgumentString("COMMAND"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("COMMAND"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int COMMAND_COUNT() { - NWNX_PushArgumentString("COMMAND_COUNT"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("COMMAND_COUNT"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int COMMAND_GETKEYS() { - NWNX_PushArgumentString("COMMAND_GETKEYS"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("COMMAND_GETKEYS"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int COMMAND_INFO( string command_name ) { - NWNX_PushArgumentString("COMMAND_INFO"); - NWNX_PushArgumentString(command_name); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("COMMAND_INFO"); + NWNXPushString(command_name); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CONFIG_GET( string parameter ) { - NWNX_PushArgumentString("CONFIG_GET"); - NWNX_PushArgumentString(parameter); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CONFIG_GET"); + NWNXPushString(parameter); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CONFIG_REWRITE() { - NWNX_PushArgumentString("CONFIG_REWRITE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CONFIG_REWRITE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CONFIG_SET( string parameter, string value ) { - NWNX_PushArgumentString("CONFIG_SET"); - NWNX_PushArgumentString(parameter); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CONFIG_SET"); + NWNXPushString(parameter); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CONFIG_RESETSTAT() { - NWNX_PushArgumentString("CONFIG_RESETSTAT"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("CONFIG_RESETSTAT"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int DBSIZE() { - NWNX_PushArgumentString("DBSIZE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("DBSIZE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int DEBUG_OBJECT( string key ) { - NWNX_PushArgumentString("DEBUG_OBJECT"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("DEBUG_OBJECT"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int DEBUG_SEGFAULT() { - NWNX_PushArgumentString("DEBUG_SEGFAULT"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("DEBUG_SEGFAULT"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int DECR( string key ) { - NWNX_PushArgumentString("DECR"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("DECR"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int DECRBY( @@ -3749,44 +3748,44 @@ int DECRBY( // Redis type: integer int decrement ) { - NWNX_PushArgumentString("DECRBY"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(decrement)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("DECRBY"); + NWNXPushString(key); + NWNXPushString(IntToString(decrement)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int DEL( string key ) { - NWNX_PushArgumentString("DEL"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("DEL"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int DISCARD() { - NWNX_PushArgumentString("DISCARD"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("DISCARD"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int DUMP( string key ) { - NWNX_PushArgumentString("DUMP"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("DUMP"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ECHO( string message ) { - NWNX_PushArgumentString("ECHO"); - NWNX_PushArgumentString(message); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ECHO"); + NWNXPushString(message); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int EVAL( @@ -3796,13 +3795,13 @@ int EVAL( string key, string arg ) { - NWNX_PushArgumentString("EVAL"); - NWNX_PushArgumentString(script); - NWNX_PushArgumentString(IntToString(numkeys)); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(arg); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("EVAL"); + NWNXPushString(script); + NWNXPushString(IntToString(numkeys)); + NWNXPushString(key); + NWNXPushString(arg); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int EVALSHA( @@ -3812,28 +3811,28 @@ int EVALSHA( string key, string arg ) { - NWNX_PushArgumentString("EVALSHA"); - NWNX_PushArgumentString(sha1); - NWNX_PushArgumentString(IntToString(numkeys)); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(arg); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("EVALSHA"); + NWNXPushString(sha1); + NWNXPushString(IntToString(numkeys)); + NWNXPushString(key); + NWNXPushString(arg); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int EXEC() { - NWNX_PushArgumentString("EXEC"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("EXEC"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int EXISTS( string key ) { - NWNX_PushArgumentString("EXISTS"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("EXISTS"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int EXPIRE( @@ -3841,11 +3840,11 @@ int EXPIRE( // Redis type: integer int seconds ) { - NWNX_PushArgumentString("EXPIRE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(seconds)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("EXPIRE"); + NWNXPushString(key); + NWNXPushString(IntToString(seconds)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int EXPIREAT( @@ -3853,31 +3852,31 @@ int EXPIREAT( // Redis type: posix time string timestamp ) { - NWNX_PushArgumentString("EXPIREAT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(timestamp); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("EXPIREAT"); + NWNXPushString(key); + NWNXPushString(timestamp); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int FLUSHALL( // Redis type: enum string async = "" ) { - NWNX_PushArgumentString("FLUSHALL"); - if (async != "") NWNX_PushArgumentString(async); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("FLUSHALL"); + if (async != "") NWNXPushString(async); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int FLUSHDB( // Redis type: enum string async = "" ) { - NWNX_PushArgumentString("FLUSHDB"); - if (async != "") NWNX_PushArgumentString(async); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("FLUSHDB"); + if (async != "") NWNXPushString(async); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GEOADD( @@ -3888,35 +3887,35 @@ int GEOADD( float latitude, string member ) { - NWNX_PushArgumentString("GEOADD"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(FloatToString(longitude, 0)); - NWNX_PushArgumentString(FloatToString(latitude, 0)); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GEOADD"); + NWNXPushString(key); + NWNXPushString(FloatToString(longitude, 0)); + NWNXPushString(FloatToString(latitude, 0)); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GEOHASH( string key, string member ) { - NWNX_PushArgumentString("GEOHASH"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GEOHASH"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GEOPOS( string key, string member ) { - NWNX_PushArgumentString("GEOPOS"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GEOPOS"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GEODIST( @@ -3925,13 +3924,13 @@ int GEODIST( string member2, string unit = "" ) { - NWNX_PushArgumentString("GEODIST"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member1); - NWNX_PushArgumentString(member2); - if (unit != "") NWNX_PushArgumentString(unit); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GEODIST"); + NWNXPushString(key); + NWNXPushString(member1); + NWNXPushString(member2); + if (unit != "") NWNXPushString(unit); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GEORADIUS( @@ -3959,21 +3958,21 @@ int GEORADIUS( // Redis type: key string storedist_key = "" ) { - NWNX_PushArgumentString("GEORADIUS"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(FloatToString(longitude, 0)); - NWNX_PushArgumentString(FloatToString(latitude, 0)); - NWNX_PushArgumentString(FloatToString(radius, 0)); - NWNX_PushArgumentString(unit); - if (withcoord != "") NWNX_PushArgumentString(withcoord); - if (withdist != "") NWNX_PushArgumentString(withdist); - if (withhash != "") NWNX_PushArgumentString(withhash); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - if (order != "") NWNX_PushArgumentString(order); - if (store_key != "") NWNX_PushArgumentString(store_key); - if (storedist_key != "") NWNX_PushArgumentString(storedist_key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GEORADIUS"); + NWNXPushString(key); + NWNXPushString(FloatToString(longitude, 0)); + NWNXPushString(FloatToString(latitude, 0)); + NWNXPushString(FloatToString(radius, 0)); + NWNXPushString(unit); + if (withcoord != "") NWNXPushString(withcoord); + if (withdist != "") NWNXPushString(withdist); + if (withhash != "") NWNXPushString(withhash); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (order != "") NWNXPushString(order); + if (store_key != "") NWNXPushString(store_key); + if (storedist_key != "") NWNXPushString(storedist_key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GEORADIUSBYMEMBER( @@ -3998,29 +3997,29 @@ int GEORADIUSBYMEMBER( // Redis type: key string storedist_key = "" ) { - NWNX_PushArgumentString("GEORADIUSBYMEMBER"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_PushArgumentString(FloatToString(radius, 0)); - NWNX_PushArgumentString(unit); - if (withcoord != "") NWNX_PushArgumentString(withcoord); - if (withdist != "") NWNX_PushArgumentString(withdist); - if (withhash != "") NWNX_PushArgumentString(withhash); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - if (order != "") NWNX_PushArgumentString(order); - if (store_key != "") NWNX_PushArgumentString(store_key); - if (storedist_key != "") NWNX_PushArgumentString(storedist_key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GEORADIUSBYMEMBER"); + NWNXPushString(key); + NWNXPushString(member); + NWNXPushString(FloatToString(radius, 0)); + NWNXPushString(unit); + if (withcoord != "") NWNXPushString(withcoord); + if (withdist != "") NWNXPushString(withdist); + if (withhash != "") NWNXPushString(withhash); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (order != "") NWNXPushString(order); + if (store_key != "") NWNXPushString(store_key); + if (storedist_key != "") NWNXPushString(storedist_key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GET( string key ) { - NWNX_PushArgumentString("GET"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GET"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GETBIT( @@ -4028,11 +4027,11 @@ int GETBIT( // Redis type: integer int offset ) { - NWNX_PushArgumentString("GETBIT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(offset)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GETBIT"); + NWNXPushString(key); + NWNXPushString(IntToString(offset)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GETRANGE( @@ -4042,65 +4041,65 @@ int GETRANGE( // Redis type: integer int end ) { - NWNX_PushArgumentString("GETRANGE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(start)); - NWNX_PushArgumentString(IntToString(end)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GETRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(end)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GETSET( string key, string value ) { - NWNX_PushArgumentString("GETSET"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("GETSET"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HDEL( string key, string field ) { - NWNX_PushArgumentString("HDEL"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HDEL"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HEXISTS( string key, string field ) { - NWNX_PushArgumentString("HEXISTS"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HEXISTS"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HGET( string key, string field ) { - NWNX_PushArgumentString("HGET"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HGET"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HGETALL( string key ) { - NWNX_PushArgumentString("HGETALL"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HGETALL"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HINCRBY( @@ -4109,12 +4108,12 @@ int HINCRBY( // Redis type: integer int increment ) { - NWNX_PushArgumentString("HINCRBY"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_PushArgumentString(IntToString(increment)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HINCRBY"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(IntToString(increment)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HINCRBYFLOAT( @@ -4123,41 +4122,41 @@ int HINCRBYFLOAT( // Redis type: double float increment ) { - NWNX_PushArgumentString("HINCRBYFLOAT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_PushArgumentString(FloatToString(increment, 0)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HINCRBYFLOAT"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(FloatToString(increment, 0)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HKEYS( string key ) { - NWNX_PushArgumentString("HKEYS"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HKEYS"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HLEN( string key ) { - NWNX_PushArgumentString("HLEN"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HLEN"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HMGET( string key, string field ) { - NWNX_PushArgumentString("HMGET"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HMGET"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HMSET( @@ -4165,12 +4164,12 @@ int HMSET( string field, string value ) { - NWNX_PushArgumentString("HMSET"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HMSET"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HSET( @@ -4178,12 +4177,12 @@ int HSET( string field, string value ) { - NWNX_PushArgumentString("HSET"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HSET"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HSETNX( @@ -4191,41 +4190,41 @@ int HSETNX( string field, string value ) { - NWNX_PushArgumentString("HSETNX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HSETNX"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HSTRLEN( string key, string field ) { - NWNX_PushArgumentString("HSTRLEN"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HSTRLEN"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HVALS( string key ) { - NWNX_PushArgumentString("HVALS"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HVALS"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int INCR( string key ) { - NWNX_PushArgumentString("INCR"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("INCR"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int INCRBY( @@ -4233,11 +4232,11 @@ int INCRBY( // Redis type: integer int increment ) { - NWNX_PushArgumentString("INCRBY"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(increment)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("INCRBY"); + NWNXPushString(key); + NWNXPushString(IntToString(increment)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int INCRBYFLOAT( @@ -4245,35 +4244,35 @@ int INCRBYFLOAT( // Redis type: double float increment ) { - NWNX_PushArgumentString("INCRBYFLOAT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(FloatToString(increment, 0)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("INCRBYFLOAT"); + NWNXPushString(key); + NWNXPushString(FloatToString(increment, 0)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int INFO( string section = "" ) { - NWNX_PushArgumentString("INFO"); - if (section != "") NWNX_PushArgumentString(section); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("INFO"); + if (section != "") NWNXPushString(section); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int KEYS( string pattern ) { - NWNX_PushArgumentString("KEYS"); - NWNX_PushArgumentString(pattern); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("KEYS"); + NWNXPushString(pattern); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LASTSAVE() { - NWNX_PushArgumentString("LASTSAVE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LASTSAVE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LINDEX( @@ -4281,11 +4280,11 @@ int LINDEX( // Redis type: integer int index ) { - NWNX_PushArgumentString("LINDEX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(index)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LINDEX"); + NWNXPushString(key); + NWNXPushString(IntToString(index)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LINSERT( @@ -4295,53 +4294,53 @@ int LINSERT( string pivot, string value ) { - NWNX_PushArgumentString("LINSERT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(where); - NWNX_PushArgumentString(pivot); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LINSERT"); + NWNXPushString(key); + NWNXPushString(where); + NWNXPushString(pivot); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LLEN( string key ) { - NWNX_PushArgumentString("LLEN"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LLEN"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LPOP( string key ) { - NWNX_PushArgumentString("LPOP"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LPOP"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LPUSH( string key, string value ) { - NWNX_PushArgumentString("LPUSH"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LPUSH"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LPUSHX( string key, string value ) { - NWNX_PushArgumentString("LPUSHX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LPUSHX"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LRANGE( @@ -4351,12 +4350,12 @@ int LRANGE( // Redis type: integer int stop ) { - NWNX_PushArgumentString("LRANGE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(start)); - NWNX_PushArgumentString(IntToString(stop)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LREM( @@ -4365,12 +4364,12 @@ int LREM( int count, string value ) { - NWNX_PushArgumentString("LREM"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(count)); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LREM"); + NWNXPushString(key); + NWNXPushString(IntToString(count)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LSET( @@ -4379,12 +4378,12 @@ int LSET( int index, string value ) { - NWNX_PushArgumentString("LSET"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(index)); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LSET"); + NWNXPushString(key); + NWNXPushString(IntToString(index)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LTRIM( @@ -4394,42 +4393,42 @@ int LTRIM( // Redis type: integer int stop ) { - NWNX_PushArgumentString("LTRIM"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(start)); - NWNX_PushArgumentString(IntToString(stop)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("LTRIM"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MEMORY_DOCTOR() { - NWNX_PushArgumentString("MEMORY_DOCTOR"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MEMORY_DOCTOR"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MEMORY_HELP() { - NWNX_PushArgumentString("MEMORY_HELP"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MEMORY_HELP"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MEMORY_MALLOC_STATS() { - NWNX_PushArgumentString("MEMORY_MALLOC_STATS"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MEMORY_MALLOC_STATS"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MEMORY_PURGE() { - NWNX_PushArgumentString("MEMORY_PURGE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MEMORY_PURGE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MEMORY_STATS() { - NWNX_PushArgumentString("MEMORY_STATS"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MEMORY_STATS"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MEMORY_USAGE( @@ -4437,20 +4436,20 @@ int MEMORY_USAGE( // Redis type: integer int samples_count = 0 ) { - NWNX_PushArgumentString("MEMORY_USAGE"); - NWNX_PushArgumentString(key); - if (samples_count != 0) NWNX_PushArgumentString(IntToString(samples_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MEMORY_USAGE"); + NWNXPushString(key); + if (samples_count != 0) NWNXPushString(IntToString(samples_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MGET( string key ) { - NWNX_PushArgumentString("MGET"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MGET"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MIGRATE( @@ -4470,24 +4469,24 @@ int MIGRATE( // Redis type: key string keys_key = "" ) { - NWNX_PushArgumentString("MIGRATE"); - NWNX_PushArgumentString(host); - NWNX_PushArgumentString(port); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(destination_db)); - NWNX_PushArgumentString(IntToString(timeout)); - if (copy != "") NWNX_PushArgumentString(copy); - if (replace != "") NWNX_PushArgumentString(replace); - if (auth_password != "") NWNX_PushArgumentString(auth_password); - if (keys_key != "") NWNX_PushArgumentString(keys_key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MIGRATE"); + NWNXPushString(host); + NWNXPushString(port); + NWNXPushString(key); + NWNXPushString(IntToString(destination_db)); + NWNXPushString(IntToString(timeout)); + if (copy != "") NWNXPushString(copy); + if (replace != "") NWNXPushString(replace); + if (auth_password != "") NWNXPushString(auth_password); + if (keys_key != "") NWNXPushString(keys_key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MONITOR() { - NWNX_PushArgumentString("MONITOR"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MONITOR"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MOVE( @@ -4495,59 +4494,59 @@ int MOVE( // Redis type: integer int db ) { - NWNX_PushArgumentString("MOVE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(db)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MOVE"); + NWNXPushString(key); + NWNXPushString(IntToString(db)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MSET( string key, string value ) { - NWNX_PushArgumentString("MSET"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MSET"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MSETNX( string key, string value ) { - NWNX_PushArgumentString("MSETNX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MSETNX"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MULTI() { - NWNX_PushArgumentString("MULTI"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("MULTI"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int OBJECT( string subcommand, string arguments = "" ) { - NWNX_PushArgumentString("OBJECT"); - NWNX_PushArgumentString(subcommand); - if (arguments != "") NWNX_PushArgumentString(arguments); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("OBJECT"); + NWNXPushString(subcommand); + if (arguments != "") NWNXPushString(arguments); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PERSIST( string key ) { - NWNX_PushArgumentString("PERSIST"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PERSIST"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PEXPIRE( @@ -4555,11 +4554,11 @@ int PEXPIRE( // Redis type: integer int milliseconds ) { - NWNX_PushArgumentString("PEXPIRE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(milliseconds)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PEXPIRE"); + NWNXPushString(key); + NWNXPushString(IntToString(milliseconds)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PEXPIREAT( @@ -4567,31 +4566,31 @@ int PEXPIREAT( // Redis type: posix time string milliseconds_timestamp ) { - NWNX_PushArgumentString("PEXPIREAT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(milliseconds_timestamp); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PEXPIREAT"); + NWNXPushString(key); + NWNXPushString(milliseconds_timestamp); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PFADD( string key, string element ) { - NWNX_PushArgumentString("PFADD"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(element); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PFADD"); + NWNXPushString(key); + NWNXPushString(element); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PFCOUNT( string key ) { - NWNX_PushArgumentString("PFCOUNT"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PFCOUNT"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PFMERGE( @@ -4600,20 +4599,20 @@ int PFMERGE( // Redis type: key string sourcekey ) { - NWNX_PushArgumentString("PFMERGE"); - NWNX_PushArgumentString(destkey); - NWNX_PushArgumentString(sourcekey); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PFMERGE"); + NWNXPushString(destkey); + NWNXPushString(sourcekey); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PING( string message = "" ) { - NWNX_PushArgumentString("PING"); - if (message != "") NWNX_PushArgumentString(message); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PING"); + if (message != "") NWNXPushString(message); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PSETEX( @@ -4622,67 +4621,67 @@ int PSETEX( int milliseconds, string value ) { - NWNX_PushArgumentString("PSETEX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(milliseconds)); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PSETEX"); + NWNXPushString(key); + NWNXPushString(IntToString(milliseconds)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PUBSUB( string subcommand, string argument = "" ) { - NWNX_PushArgumentString("PUBSUB"); - NWNX_PushArgumentString(subcommand); - if (argument != "") NWNX_PushArgumentString(argument); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PUBSUB"); + NWNXPushString(subcommand); + if (argument != "") NWNXPushString(argument); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PTTL( string key ) { - NWNX_PushArgumentString("PTTL"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PTTL"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PUBLISH( string channel, string message ) { - NWNX_PushArgumentString("PUBLISH"); - NWNX_PushArgumentString(channel); - NWNX_PushArgumentString(message); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("PUBLISH"); + NWNXPushString(channel); + NWNXPushString(message); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int QUIT() { - NWNX_PushArgumentString("QUIT"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("QUIT"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int RANDOMKEY() { - NWNX_PushArgumentString("RANDOMKEY"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("RANDOMKEY"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int READONLY() { - NWNX_PushArgumentString("READONLY"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("READONLY"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int READWRITE() { - NWNX_PushArgumentString("READWRITE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("READWRITE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int RENAME( @@ -4690,11 +4689,11 @@ int RENAME( // Redis type: key string newkey ) { - NWNX_PushArgumentString("RENAME"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(newkey); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("RENAME"); + NWNXPushString(key); + NWNXPushString(newkey); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int RENAMENX( @@ -4702,11 +4701,11 @@ int RENAMENX( // Redis type: key string newkey ) { - NWNX_PushArgumentString("RENAMENX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(newkey); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("RENAMENX"); + NWNXPushString(key); + NWNXPushString(newkey); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int RESTORE( @@ -4723,31 +4722,31 @@ int RESTORE( // Redis type: integer int freq_frequency = 0 ) { - NWNX_PushArgumentString("RESTORE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(ttl)); - NWNX_PushArgumentString(serialized_value); - if (replace != "") NWNX_PushArgumentString(replace); - if (absttl != "") NWNX_PushArgumentString(absttl); - if (idletime_seconds != 0) NWNX_PushArgumentString(IntToString(idletime_seconds)); - if (freq_frequency != 0) NWNX_PushArgumentString(IntToString(freq_frequency)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("RESTORE"); + NWNXPushString(key); + NWNXPushString(IntToString(ttl)); + NWNXPushString(serialized_value); + if (replace != "") NWNXPushString(replace); + if (absttl != "") NWNXPushString(absttl); + if (idletime_seconds != 0) NWNXPushString(IntToString(idletime_seconds)); + if (freq_frequency != 0) NWNXPushString(IntToString(freq_frequency)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ROLE() { - NWNX_PushArgumentString("ROLE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ROLE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int RPOP( string key ) { - NWNX_PushArgumentString("RPOP"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("RPOP"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int RPOPLPUSH( @@ -4756,108 +4755,108 @@ int RPOPLPUSH( // Redis type: key string destination ) { - NWNX_PushArgumentString("RPOPLPUSH"); - NWNX_PushArgumentString(source); - NWNX_PushArgumentString(destination); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("RPOPLPUSH"); + NWNXPushString(source); + NWNXPushString(destination); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int RPUSH( string key, string value ) { - NWNX_PushArgumentString("RPUSH"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("RPUSH"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int RPUSHX( string key, string value ) { - NWNX_PushArgumentString("RPUSHX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("RPUSHX"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SADD( string key, string member ) { - NWNX_PushArgumentString("SADD"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SADD"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SAVE() { - NWNX_PushArgumentString("SAVE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SAVE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SCARD( string key ) { - NWNX_PushArgumentString("SCARD"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SCARD"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SCRIPT_DEBUG( // Redis type: enum string mode ) { - NWNX_PushArgumentString("SCRIPT_DEBUG"); - NWNX_PushArgumentString(mode); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SCRIPT_DEBUG"); + NWNXPushString(mode); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SCRIPT_EXISTS( string sha1 ) { - NWNX_PushArgumentString("SCRIPT_EXISTS"); - NWNX_PushArgumentString(sha1); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SCRIPT_EXISTS"); + NWNXPushString(sha1); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SCRIPT_FLUSH() { - NWNX_PushArgumentString("SCRIPT_FLUSH"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SCRIPT_FLUSH"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SCRIPT_KILL() { - NWNX_PushArgumentString("SCRIPT_KILL"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SCRIPT_KILL"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SCRIPT_LOAD( string script ) { - NWNX_PushArgumentString("SCRIPT_LOAD"); - NWNX_PushArgumentString(script); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SCRIPT_LOAD"); + NWNXPushString(script); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SDIFF( string key ) { - NWNX_PushArgumentString("SDIFF"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SDIFF"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SDIFFSTORE( @@ -4865,21 +4864,21 @@ int SDIFFSTORE( string destination, string key ) { - NWNX_PushArgumentString("SDIFFSTORE"); - NWNX_PushArgumentString(destination); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SDIFFSTORE"); + NWNXPushString(destination); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SELECT( // Redis type: integer int index ) { - NWNX_PushArgumentString("SELECT"); - NWNX_PushArgumentString(IntToString(index)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SELECT"); + NWNXPushString(IntToString(index)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SET( @@ -4888,12 +4887,12 @@ int SET( // Redis type: enum string condition = "" ) { - NWNX_PushArgumentString("SET"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - if (condition != "") NWNX_PushArgumentString(condition); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SET"); + NWNXPushString(key); + NWNXPushString(value); + if (condition != "") NWNXPushString(condition); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SETBIT( @@ -4902,12 +4901,12 @@ int SETBIT( int offset, string value ) { - NWNX_PushArgumentString("SETBIT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(offset)); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SETBIT"); + NWNXPushString(key); + NWNXPushString(IntToString(offset)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SETEX( @@ -4916,23 +4915,23 @@ int SETEX( int seconds, string value ) { - NWNX_PushArgumentString("SETEX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(seconds)); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SETEX"); + NWNXPushString(key); + NWNXPushString(IntToString(seconds)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SETNX( string key, string value ) { - NWNX_PushArgumentString("SETNX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SETNX"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SETRANGE( @@ -4941,31 +4940,31 @@ int SETRANGE( int offset, string value ) { - NWNX_PushArgumentString("SETRANGE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(offset)); - NWNX_PushArgumentString(value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SETRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(offset)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SHUTDOWN( // Redis type: enum string save_mode = "" ) { - NWNX_PushArgumentString("SHUTDOWN"); - if (save_mode != "") NWNX_PushArgumentString(save_mode); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SHUTDOWN"); + if (save_mode != "") NWNXPushString(save_mode); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SINTER( string key ) { - NWNX_PushArgumentString("SINTER"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SINTER"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SINTERSTORE( @@ -4973,64 +4972,64 @@ int SINTERSTORE( string destination, string key ) { - NWNX_PushArgumentString("SINTERSTORE"); - NWNX_PushArgumentString(destination); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SINTERSTORE"); + NWNXPushString(destination); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SISMEMBER( string key, string member ) { - NWNX_PushArgumentString("SISMEMBER"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SISMEMBER"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SLAVEOF( string host, string port ) { - NWNX_PushArgumentString("SLAVEOF"); - NWNX_PushArgumentString(host); - NWNX_PushArgumentString(port); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SLAVEOF"); + NWNXPushString(host); + NWNXPushString(port); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int REPLICAOF( string host, string port ) { - NWNX_PushArgumentString("REPLICAOF"); - NWNX_PushArgumentString(host); - NWNX_PushArgumentString(port); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("REPLICAOF"); + NWNXPushString(host); + NWNXPushString(port); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SLOWLOG( string subcommand, string argument = "" ) { - NWNX_PushArgumentString("SLOWLOG"); - NWNX_PushArgumentString(subcommand); - if (argument != "") NWNX_PushArgumentString(argument); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SLOWLOG"); + NWNXPushString(subcommand); + if (argument != "") NWNXPushString(argument); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SMEMBERS( string key ) { - NWNX_PushArgumentString("SMEMBERS"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SMEMBERS"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SMOVE( @@ -5040,12 +5039,12 @@ int SMOVE( string destination, string member ) { - NWNX_PushArgumentString("SMOVE"); - NWNX_PushArgumentString(source); - NWNX_PushArgumentString(destination); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SMOVE"); + NWNXPushString(source); + NWNXPushString(destination); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SORT( @@ -5064,17 +5063,17 @@ int SORT( // Redis type: key string store_destination = "" ) { - NWNX_PushArgumentString("SORT"); - NWNX_PushArgumentString(key); - if (by_pattern != "") NWNX_PushArgumentString(by_pattern); - if (limit_offset != 0) NWNX_PushArgumentString(IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString(IntToString(limit_count)); - if (get_pattern != "") NWNX_PushArgumentString(get_pattern); - if (order != "") NWNX_PushArgumentString(order); - if (sorting != "") NWNX_PushArgumentString(sorting); - if (store_destination != "") NWNX_PushArgumentString(store_destination); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SORT"); + NWNXPushString(key); + if (by_pattern != "") NWNXPushString(by_pattern); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + if (get_pattern != "") NWNXPushString(get_pattern); + if (order != "") NWNXPushString(order); + if (sorting != "") NWNXPushString(sorting); + if (store_destination != "") NWNXPushString(store_destination); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SPOP( @@ -5082,11 +5081,11 @@ int SPOP( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("SPOP"); - NWNX_PushArgumentString(key); - if (count != 0) NWNX_PushArgumentString(IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SPOP"); + NWNXPushString(key); + if (count != 0) NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SRANDMEMBER( @@ -5094,40 +5093,40 @@ int SRANDMEMBER( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("SRANDMEMBER"); - NWNX_PushArgumentString(key); - if (count != 0) NWNX_PushArgumentString(IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SRANDMEMBER"); + NWNXPushString(key); + if (count != 0) NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SREM( string key, string member ) { - NWNX_PushArgumentString("SREM"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SREM"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int STRLEN( string key ) { - NWNX_PushArgumentString("STRLEN"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("STRLEN"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SUNION( string key ) { - NWNX_PushArgumentString("SUNION"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SUNION"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SUNIONSTORE( @@ -5135,11 +5134,11 @@ int SUNIONSTORE( string destination, string key ) { - NWNX_PushArgumentString("SUNIONSTORE"); - NWNX_PushArgumentString(destination); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SUNIONSTORE"); + NWNXPushString(destination); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SWAPDB( @@ -5148,65 +5147,65 @@ int SWAPDB( // Redis type: integer int index_1 ) { - NWNX_PushArgumentString("SWAPDB"); - NWNX_PushArgumentString(IntToString(index)); - NWNX_PushArgumentString(IntToString(index_1)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SWAPDB"); + NWNXPushString(IntToString(index)); + NWNXPushString(IntToString(index_1)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SYNC() { - NWNX_PushArgumentString("SYNC"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SYNC"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int TIME() { - NWNX_PushArgumentString("TIME"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("TIME"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int TOUCH( string key ) { - NWNX_PushArgumentString("TOUCH"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("TOUCH"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int TTL( string key ) { - NWNX_PushArgumentString("TTL"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("TTL"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int TYPE( string key ) { - NWNX_PushArgumentString("TYPE"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("TYPE"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int UNLINK( string key ) { - NWNX_PushArgumentString("UNLINK"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("UNLINK"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int UNWATCH() { - NWNX_PushArgumentString("UNWATCH"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("UNWATCH"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int WAIT( @@ -5215,20 +5214,20 @@ int WAIT( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("WAIT"); - NWNX_PushArgumentString(IntToString(numreplicas)); - NWNX_PushArgumentString(IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("WAIT"); + NWNXPushString(IntToString(numreplicas)); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int WATCH( string key ) { - NWNX_PushArgumentString("WATCH"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("WATCH"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZADD( @@ -5243,24 +5242,24 @@ int ZADD( float score = 0.0, string member = "" ) { - NWNX_PushArgumentString("ZADD"); - NWNX_PushArgumentString(key); - if (condition != "") NWNX_PushArgumentString(condition); - if (change != "") NWNX_PushArgumentString(change); - if (increment != "") NWNX_PushArgumentString(increment); - NWNX_PushArgumentString(FloatToString(score, 0)); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZADD"); + NWNXPushString(key); + if (condition != "") NWNXPushString(condition); + if (change != "") NWNXPushString(change); + if (increment != "") NWNXPushString(increment); + NWNXPushString(FloatToString(score, 0)); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZCARD( string key ) { - NWNX_PushArgumentString("ZCARD"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZCARD"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZCOUNT( @@ -5270,12 +5269,12 @@ int ZCOUNT( // Redis type: double float max ) { - NWNX_PushArgumentString("ZCOUNT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(FloatToString(min, 0)); - NWNX_PushArgumentString(FloatToString(max, 0)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZCOUNT"); + NWNXPushString(key); + NWNXPushString(FloatToString(min, 0)); + NWNXPushString(FloatToString(max, 0)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZINCRBY( @@ -5284,12 +5283,12 @@ int ZINCRBY( int increment, string member ) { - NWNX_PushArgumentString("ZINCRBY"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(increment)); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZINCRBY"); + NWNXPushString(key); + NWNXPushString(IntToString(increment)); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZINTERSTORE( @@ -5303,14 +5302,14 @@ int ZINTERSTORE( // Redis type: enum string aggregate_aggregate = "" ) { - NWNX_PushArgumentString("ZINTERSTORE"); - NWNX_PushArgumentString(destination); - NWNX_PushArgumentString(IntToString(numkeys)); - NWNX_PushArgumentString(key); - if (weights_weight != 0) NWNX_PushArgumentString(IntToString(weights_weight)); - if (aggregate_aggregate != "") NWNX_PushArgumentString(aggregate_aggregate); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZINTERSTORE"); + NWNXPushString(destination); + NWNXPushString(IntToString(numkeys)); + NWNXPushString(key); + if (weights_weight != 0) NWNXPushString(IntToString(weights_weight)); + if (aggregate_aggregate != "") NWNXPushString(aggregate_aggregate); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZLEXCOUNT( @@ -5318,12 +5317,12 @@ int ZLEXCOUNT( string min, string max ) { - NWNX_PushArgumentString("ZLEXCOUNT"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(min); - NWNX_PushArgumentString(max); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZLEXCOUNT"); + NWNXPushString(key); + NWNXPushString(min); + NWNXPushString(max); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZPOPMAX( @@ -5331,11 +5330,11 @@ int ZPOPMAX( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("ZPOPMAX"); - NWNX_PushArgumentString(key); - if (count != 0) NWNX_PushArgumentString(IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZPOPMAX"); + NWNXPushString(key); + if (count != 0) NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZPOPMIN( @@ -5343,11 +5342,11 @@ int ZPOPMIN( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("ZPOPMIN"); - NWNX_PushArgumentString(key); - if (count != 0) NWNX_PushArgumentString(IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZPOPMIN"); + NWNXPushString(key); + if (count != 0) NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZRANGE( @@ -5359,13 +5358,13 @@ int ZRANGE( // Redis type: enum string withscores = "" ) { - NWNX_PushArgumentString("ZRANGE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(start)); - NWNX_PushArgumentString(IntToString(stop)); - if (withscores != "") NWNX_PushArgumentString(withscores); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + if (withscores != "") NWNXPushString(withscores); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZRANGEBYLEX( @@ -5377,14 +5376,14 @@ int ZRANGEBYLEX( // Redis type: integer int limit_count = 0 ) { - NWNX_PushArgumentString("ZRANGEBYLEX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(min); - NWNX_PushArgumentString(max); - if (limit_offset != 0) NWNX_PushArgumentString(IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString(IntToString(limit_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZRANGEBYLEX"); + NWNXPushString(key); + NWNXPushString(min); + NWNXPushString(max); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZREVRANGEBYLEX( @@ -5396,14 +5395,14 @@ int ZREVRANGEBYLEX( // Redis type: integer int limit_count = 0 ) { - NWNX_PushArgumentString("ZREVRANGEBYLEX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(max); - NWNX_PushArgumentString(min); - if (limit_offset != 0) NWNX_PushArgumentString(IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString(IntToString(limit_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZREVRANGEBYLEX"); + NWNXPushString(key); + NWNXPushString(max); + NWNXPushString(min); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZRANGEBYSCORE( @@ -5419,37 +5418,37 @@ int ZRANGEBYSCORE( // Redis type: integer int limit_count = 0 ) { - NWNX_PushArgumentString("ZRANGEBYSCORE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(FloatToString(min, 0)); - NWNX_PushArgumentString(FloatToString(max, 0)); - if (withscores != "") NWNX_PushArgumentString(withscores); - if (limit_offset != 0) NWNX_PushArgumentString(IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString(IntToString(limit_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZRANGEBYSCORE"); + NWNXPushString(key); + NWNXPushString(FloatToString(min, 0)); + NWNXPushString(FloatToString(max, 0)); + if (withscores != "") NWNXPushString(withscores); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZRANK( string key, string member ) { - NWNX_PushArgumentString("ZRANK"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZRANK"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZREM( string key, string member ) { - NWNX_PushArgumentString("ZREM"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZREM"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZREMRANGEBYLEX( @@ -5457,12 +5456,12 @@ int ZREMRANGEBYLEX( string min, string max ) { - NWNX_PushArgumentString("ZREMRANGEBYLEX"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(min); - NWNX_PushArgumentString(max); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZREMRANGEBYLEX"); + NWNXPushString(key); + NWNXPushString(min); + NWNXPushString(max); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZREMRANGEBYRANK( @@ -5472,12 +5471,12 @@ int ZREMRANGEBYRANK( // Redis type: integer int stop ) { - NWNX_PushArgumentString("ZREMRANGEBYRANK"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(start)); - NWNX_PushArgumentString(IntToString(stop)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZREMRANGEBYRANK"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZREMRANGEBYSCORE( @@ -5487,12 +5486,12 @@ int ZREMRANGEBYSCORE( // Redis type: double float max ) { - NWNX_PushArgumentString("ZREMRANGEBYSCORE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(FloatToString(min, 0)); - NWNX_PushArgumentString(FloatToString(max, 0)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZREMRANGEBYSCORE"); + NWNXPushString(key); + NWNXPushString(FloatToString(min, 0)); + NWNXPushString(FloatToString(max, 0)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZREVRANGE( @@ -5504,13 +5503,13 @@ int ZREVRANGE( // Redis type: enum string withscores = "" ) { - NWNX_PushArgumentString("ZREVRANGE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(start)); - NWNX_PushArgumentString(IntToString(stop)); - if (withscores != "") NWNX_PushArgumentString(withscores); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZREVRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + if (withscores != "") NWNXPushString(withscores); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZREVRANGEBYSCORE( @@ -5526,37 +5525,37 @@ int ZREVRANGEBYSCORE( // Redis type: integer int limit_count = 0 ) { - NWNX_PushArgumentString("ZREVRANGEBYSCORE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(FloatToString(max, 0)); - NWNX_PushArgumentString(FloatToString(min, 0)); - if (withscores != "") NWNX_PushArgumentString(withscores); - if (limit_offset != 0) NWNX_PushArgumentString(IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString(IntToString(limit_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZREVRANGEBYSCORE"); + NWNXPushString(key); + NWNXPushString(FloatToString(max, 0)); + NWNXPushString(FloatToString(min, 0)); + if (withscores != "") NWNXPushString(withscores); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZREVRANK( string key, string member ) { - NWNX_PushArgumentString("ZREVRANK"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZREVRANK"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZSCORE( string key, string member ) { - NWNX_PushArgumentString("ZSCORE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZSCORE"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZUNIONSTORE( @@ -5570,14 +5569,14 @@ int ZUNIONSTORE( // Redis type: enum string aggregate_aggregate = "" ) { - NWNX_PushArgumentString("ZUNIONSTORE"); - NWNX_PushArgumentString(destination); - NWNX_PushArgumentString(IntToString(numkeys)); - NWNX_PushArgumentString(key); - if (weights_weight != 0) NWNX_PushArgumentString(IntToString(weights_weight)); - if (aggregate_aggregate != "") NWNX_PushArgumentString(aggregate_aggregate); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZUNIONSTORE"); + NWNXPushString(destination); + NWNXPushString(IntToString(numkeys)); + NWNXPushString(key); + if (weights_weight != 0) NWNXPushString(IntToString(weights_weight)); + if (aggregate_aggregate != "") NWNXPushString(aggregate_aggregate); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SCAN( @@ -5589,13 +5588,13 @@ int SCAN( int count_count = 0, string type_type = "" ) { - NWNX_PushArgumentString("SCAN"); - NWNX_PushArgumentString(IntToString(cursor)); - if (match_pattern != "") NWNX_PushArgumentString(match_pattern); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - if (type_type != "") NWNX_PushArgumentString(type_type); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SCAN"); + NWNXPushString(IntToString(cursor)); + if (match_pattern != "") NWNXPushString(match_pattern); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (type_type != "") NWNXPushString(type_type); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SSCAN( @@ -5607,13 +5606,13 @@ int SSCAN( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("SSCAN"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(cursor)); - if (match_pattern != "") NWNX_PushArgumentString(match_pattern); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("SSCAN"); + NWNXPushString(key); + NWNXPushString(IntToString(cursor)); + if (match_pattern != "") NWNXPushString(match_pattern); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HSCAN( @@ -5625,13 +5624,13 @@ int HSCAN( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("HSCAN"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(cursor)); - if (match_pattern != "") NWNX_PushArgumentString(match_pattern); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("HSCAN"); + NWNXPushString(key); + NWNXPushString(IntToString(cursor)); + if (match_pattern != "") NWNXPushString(match_pattern); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZSCAN( @@ -5643,13 +5642,13 @@ int ZSCAN( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("ZSCAN"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(IntToString(cursor)); - if (match_pattern != "") NWNX_PushArgumentString(match_pattern); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("ZSCAN"); + NWNXPushString(key); + NWNXPushString(IntToString(cursor)); + if (match_pattern != "") NWNXPushString(match_pattern); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XINFO( @@ -5663,14 +5662,14 @@ int XINFO( // Redis type: enum string help = "" ) { - NWNX_PushArgumentString("XINFO"); - if (consumers_key != "") NWNX_PushArgumentString(consumers_key); - if (consumers_groupname != "") NWNX_PushArgumentString(consumers_groupname); - if (groups_key != "") NWNX_PushArgumentString(groups_key); - if (stream_key != "") NWNX_PushArgumentString(stream_key); - if (help != "") NWNX_PushArgumentString(help); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XINFO"); + if (consumers_key != "") NWNXPushString(consumers_key); + if (consumers_groupname != "") NWNXPushString(consumers_groupname); + if (groups_key != "") NWNXPushString(groups_key); + if (stream_key != "") NWNXPushString(stream_key); + if (help != "") NWNXPushString(help); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XADD( @@ -5680,13 +5679,13 @@ int XADD( string field, string str ) { - NWNX_PushArgumentString("XADD"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(ID); - NWNX_PushArgumentString(field); - NWNX_PushArgumentString(str); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XADD"); + NWNXPushString(key); + NWNXPushString(ID); + NWNXPushString(field); + NWNXPushString(str); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XTRIM( @@ -5698,24 +5697,24 @@ int XTRIM( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("XTRIM"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(strategy); - if (approx != "") NWNX_PushArgumentString(approx); - NWNX_PushArgumentString(IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XTRIM"); + NWNXPushString(key); + NWNXPushString(strategy); + if (approx != "") NWNXPushString(approx); + NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XDEL( string key, string ID ) { - NWNX_PushArgumentString("XDEL"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(ID); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XDEL"); + NWNXPushString(key); + NWNXPushString(ID); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XRANGE( @@ -5725,13 +5724,13 @@ int XRANGE( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("XRANGE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(start); - NWNX_PushArgumentString(end); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XRANGE"); + NWNXPushString(key); + NWNXPushString(start); + NWNXPushString(end); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XREVRANGE( @@ -5741,22 +5740,22 @@ int XREVRANGE( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("XREVRANGE"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(end); - NWNX_PushArgumentString(start); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XREVRANGE"); + NWNXPushString(key); + NWNXPushString(end); + NWNXPushString(start); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XLEN( string key ) { - NWNX_PushArgumentString("XLEN"); - NWNX_PushArgumentString(key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XLEN"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XREAD( @@ -5769,14 +5768,14 @@ int XREAD( string key = "", string ID = "" ) { - NWNX_PushArgumentString("XREAD"); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - if (block_milliseconds != 0) NWNX_PushArgumentString(IntToString(block_milliseconds)); - NWNX_PushArgumentString(streams); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(ID); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XREAD"); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (block_milliseconds != 0) NWNXPushString(IntToString(block_milliseconds)); + NWNXPushString(streams); + NWNXPushString(key); + NWNXPushString(ID); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XGROUP( @@ -5796,20 +5795,20 @@ int XGROUP( string delconsumer_groupname = "", string delconsumer_consumername = "" ) { - NWNX_PushArgumentString("XGROUP"); - if (create_key != "") NWNX_PushArgumentString(create_key); - if (create_groupname != "") NWNX_PushArgumentString(create_groupname); - if (create_id_or__ != "") NWNX_PushArgumentString(create_id_or__); - if (setid_key != "") NWNX_PushArgumentString(setid_key); - if (setid_groupname != "") NWNX_PushArgumentString(setid_groupname); - if (setid_id_or__ != "") NWNX_PushArgumentString(setid_id_or__); - if (destroy_key != "") NWNX_PushArgumentString(destroy_key); - if (destroy_groupname != "") NWNX_PushArgumentString(destroy_groupname); - if (delconsumer_key != "") NWNX_PushArgumentString(delconsumer_key); - if (delconsumer_groupname != "") NWNX_PushArgumentString(delconsumer_groupname); - if (delconsumer_consumername != "") NWNX_PushArgumentString(delconsumer_consumername); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XGROUP"); + if (create_key != "") NWNXPushString(create_key); + if (create_groupname != "") NWNXPushString(create_groupname); + if (create_id_or__ != "") NWNXPushString(create_id_or__); + if (setid_key != "") NWNXPushString(setid_key); + if (setid_groupname != "") NWNXPushString(setid_groupname); + if (setid_id_or__ != "") NWNXPushString(setid_id_or__); + if (destroy_key != "") NWNXPushString(destroy_key); + if (destroy_groupname != "") NWNXPushString(destroy_groupname); + if (delconsumer_key != "") NWNXPushString(delconsumer_key); + if (delconsumer_groupname != "") NWNXPushString(delconsumer_groupname); + if (delconsumer_consumername != "") NWNXPushString(delconsumer_consumername); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XREADGROUP( @@ -5826,17 +5825,17 @@ int XREADGROUP( string key = "", string ID = "" ) { - NWNX_PushArgumentString("XREADGROUP"); - NWNX_PushArgumentString(group_group); - NWNX_PushArgumentString(group_consumer); - if (count_count != 0) NWNX_PushArgumentString(IntToString(count_count)); - if (block_milliseconds != 0) NWNX_PushArgumentString(IntToString(block_milliseconds)); - if (noack != "") NWNX_PushArgumentString(noack); - NWNX_PushArgumentString(streams); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(ID); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XREADGROUP"); + NWNXPushString(group_group); + NWNXPushString(group_consumer); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (block_milliseconds != 0) NWNXPushString(IntToString(block_milliseconds)); + if (noack != "") NWNXPushString(noack); + NWNXPushString(streams); + NWNXPushString(key); + NWNXPushString(ID); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XACK( @@ -5844,12 +5843,12 @@ int XACK( string group, string ID ) { - NWNX_PushArgumentString("XACK"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(group); - NWNX_PushArgumentString(ID); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XACK"); + NWNXPushString(key); + NWNXPushString(group); + NWNXPushString(ID); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XCLAIM( @@ -5865,17 +5864,17 @@ int XCLAIM( // Redis type: integer int retrycount_count = 0 ) { - NWNX_PushArgumentString("XCLAIM"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(group); - NWNX_PushArgumentString(consumer); - NWNX_PushArgumentString(min_idle_time); - NWNX_PushArgumentString(ID); - if (idle_ms != 0) NWNX_PushArgumentString(IntToString(idle_ms)); - if (time_ms_unix_time != 0) NWNX_PushArgumentString(IntToString(time_ms_unix_time)); - if (retrycount_count != 0) NWNX_PushArgumentString(IntToString(retrycount_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XCLAIM"); + NWNXPushString(key); + NWNXPushString(group); + NWNXPushString(consumer); + NWNXPushString(min_idle_time); + NWNXPushString(ID); + if (idle_ms != 0) NWNXPushString(IntToString(idle_ms)); + if (time_ms_unix_time != 0) NWNXPushString(IntToString(time_ms_unix_time)); + if (retrycount_count != 0) NWNXPushString(IntToString(retrycount_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XPENDING( @@ -5887,13 +5886,13 @@ int XPENDING( int count = 0, string consumer = "" ) { - NWNX_PushArgumentString("XPENDING"); - NWNX_PushArgumentString(key); - NWNX_PushArgumentString(group); - if (start != "") NWNX_PushArgumentString(start); - if (end != "") NWNX_PushArgumentString(end); - if (count != 0) NWNX_PushArgumentString(IntToString(count)); - if (consumer != "") NWNX_PushArgumentString(consumer); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt(); + NWNXPushString("XPENDING"); + NWNXPushString(key); + NWNXPushString(group); + if (start != "") NWNXPushString(start); + if (end != "") NWNXPushString(end); + if (count != 0) NWNXPushString(IntToString(count)); + if (consumer != "") NWNXPushString(consumer); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } diff --git a/_module/nss/nwnx_rename.nss b/_module/nss/nwnx_rename.nss index fbd3cfc8..88231eb8 100644 --- a/_module/nss/nwnx_rename.nss +++ b/_module/nss/nwnx_rename.nss @@ -2,7 +2,6 @@ /// @brief Facilitates renaming, overriding and customization of player names. /// @{ /// @file nwnx_rename.nss -#include "nwnx" const string NWNX_Rename = "NWNX_Rename"; ///< @private @@ -46,35 +45,26 @@ void NWNX_Rename_ClearPCNameOverride(object oTarget, object oObserver = OBJECT_I void NWNX_Rename_SetPCNameOverride(object oTarget, string sNewName, string sPrefix = "" , string sSuffix = "" , int iPlayerNameState = NWNX_RENAME_PLAYERNAME_DEFAULT, object oObserver = OBJECT_INVALID) { - string sFunc = "SetPCNameOverride"; - - NWNX_PushArgumentObject(oObserver); - NWNX_PushArgumentInt(iPlayerNameState); - NWNX_PushArgumentString(sSuffix); - NWNX_PushArgumentString(sPrefix); - NWNX_PushArgumentString(sNewName); - NWNX_PushArgumentObject(oTarget); - - NWNX_CallFunction(NWNX_Rename, sFunc); + NWNXPushObject(oObserver); + NWNXPushInt(iPlayerNameState); + NWNXPushString(sSuffix); + NWNXPushString(sPrefix); + NWNXPushString(sNewName); + NWNXPushObject(oTarget); + NWNXCall(NWNX_Rename, "SetPCNameOverride"); } string NWNX_Rename_GetPCNameOverride(object oTarget, object oObserver = OBJECT_INVALID) { - string sFunc = "GetPCNameOverride"; - - NWNX_PushArgumentObject(oObserver); - NWNX_PushArgumentObject(oTarget); - - NWNX_CallFunction(NWNX_Rename, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushObject(oObserver); + NWNXPushObject(oTarget); + NWNXCall(NWNX_Rename, "GetPCNameOverride"); + return NWNXPopString(); } void NWNX_Rename_ClearPCNameOverride(object oTarget, object oObserver = OBJECT_INVALID, int clearAll = FALSE) { - string sFunc = "ClearPCNameOverride"; - - NWNX_PushArgumentInt(clearAll); - NWNX_PushArgumentObject(oObserver); - NWNX_PushArgumentObject(oTarget); - - NWNX_CallFunction(NWNX_Rename, sFunc); + NWNXPushInt(clearAll); + NWNXPushObject(oObserver); + NWNXPushObject(oTarget); + NWNXCall(NWNX_Rename, "ClearPCNameOverride"); } diff --git a/_module/nss/nwnx_reveal.nss b/_module/nss/nwnx_reveal.nss index 4615e886..12618306 100644 --- a/_module/nss/nwnx_reveal.nss +++ b/_module/nss/nwnx_reveal.nss @@ -2,7 +2,6 @@ /// @brief Allows the selective revealing of a stealthing character to another character or their party. /// @{ /// @file nwnx_reveal.nss -#include "nwnx" const string NWNX_Reveal = "NWNX_Reveal"; ///< @private @@ -28,22 +27,16 @@ void NWNX_Reveal_SetRevealToParty(object oHiding, int bReveal, int iDetectionMet void NWNX_Reveal_RevealTo(object oHiding, object oObserver, int iDetectionMethod = NWNX_REVEAL_HEARD) { - string sFunc = "RevealTo"; - - NWNX_PushArgumentInt(iDetectionMethod); - NWNX_PushArgumentObject(oObserver); - NWNX_PushArgumentObject(oHiding); - - NWNX_CallFunction(NWNX_Reveal, sFunc); + NWNXPushInt(iDetectionMethod); + NWNXPushObject(oObserver); + NWNXPushObject(oHiding); + NWNXCall(NWNX_Reveal, "RevealTo"); } void NWNX_Reveal_SetRevealToParty(object oHiding, int bReveal, int iDetectionMethod = NWNX_REVEAL_HEARD) { - string sFunc = "SetRevealToParty"; - - NWNX_PushArgumentInt(iDetectionMethod); - NWNX_PushArgumentInt(bReveal); - NWNX_PushArgumentObject(oHiding); - - NWNX_CallFunction(NWNX_Reveal, sFunc); + NWNXPushInt(iDetectionMethod); + NWNXPushInt(bReveal); + NWNXPushObject(oHiding); + NWNXCall(NWNX_Reveal, "SetRevealToParty"); } diff --git a/_module/nss/nwnx_ruby.nss b/_module/nss/nwnx_ruby.nss index 3c31819a..ce377cc8 100644 --- a/_module/nss/nwnx_ruby.nss +++ b/_module/nss/nwnx_ruby.nss @@ -2,7 +2,6 @@ /// @brief Allows users to execute arbitrary Ruby from the game. /// @{ /// @file nwnx_ruby.nss -#include "nwnx" const string NWNX_Ruby = "NWNX_Ruby"; ///< @private @@ -13,11 +12,9 @@ string NWNX_Ruby_Evaluate(string sCode); /// @return The output of the call. string NWNX_Ruby_Evaluate(string sCode) { - string sFunc = "Evaluate"; - - NWNX_PushArgumentString(sCode); - NWNX_CallFunction(NWNX_Ruby, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushString(sCode); + NWNXCall(NWNX_Ruby, "Evaluate"); + return NWNXPopString(); } /// @} diff --git a/_module/nss/nwnx_skillranks.nss b/_module/nss/nwnx_skillranks.nss index 9cab9883..ae38d96f 100644 --- a/_module/nss/nwnx_skillranks.nss +++ b/_module/nss/nwnx_skillranks.nss @@ -3,7 +3,6 @@ /// skill related feats as well as modifying stock feats. /// @{ /// @file nwnx_skillranks.nss -#include "nwnx" const string NWNX_SkillRanks = "NWNX_SkillRanks"; ///< @private @@ -144,82 +143,67 @@ void NWNX_SkillRanks_SetAreaModifier(object oArea, int iSkill, int iModifier); int NWNX_SkillRanks_GetSkillFeatCountForSkill(int iSkill) { - string sFunc = "GetSkillFeatCountForSkill"; - - NWNX_PushArgumentInt(iSkill); - NWNX_CallFunction(NWNX_SkillRanks, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(iSkill); + NWNXCall(NWNX_SkillRanks, "GetSkillFeatCountForSkill"); + return NWNXPopInt(); } struct NWNX_SkillRanks_SkillFeat NWNX_SkillRanks_GetSkillFeatForSkillByIndex(int iSkill, int iIndex) { - string sFunc = "GetSkillFeatForSkillByIndex"; - - NWNX_PushArgumentInt(iIndex); - NWNX_PushArgumentInt(iSkill); - NWNX_CallFunction(NWNX_SkillRanks, sFunc); - + NWNXPushInt(iIndex); + NWNXPushInt(iSkill); + NWNXCall(NWNX_SkillRanks, "GetSkillFeatForSkillByIndex"); struct NWNX_SkillRanks_SkillFeat skillFeat; - skillFeat.iSkill = iSkill; - skillFeat.iFeat = NWNX_GetReturnValueInt(); - skillFeat.iModifier = NWNX_GetReturnValueInt(); - skillFeat.iFocusFeat = NWNX_GetReturnValueInt(); - skillFeat.sClasses = NWNX_GetReturnValueString(); - skillFeat.fClassLevelMod = NWNX_GetReturnValueFloat(); - skillFeat.iAreaFlagsRequired = NWNX_GetReturnValueInt(); - skillFeat.iAreaFlagsForbidden = NWNX_GetReturnValueInt(); - skillFeat.iDayOrNight = NWNX_GetReturnValueInt(); - skillFeat.bBypassArmorCheckPenalty = NWNX_GetReturnValueInt(); - skillFeat.iKeyAbilityMask = NWNX_GetReturnValueInt(); - + skillFeat.iFeat = NWNXPopInt(); + skillFeat.iModifier = NWNXPopInt(); + skillFeat.iFocusFeat = NWNXPopInt(); + skillFeat.sClasses = NWNXPopString(); + skillFeat.fClassLevelMod = NWNXPopFloat(); + skillFeat.iAreaFlagsRequired = NWNXPopInt(); + skillFeat.iAreaFlagsForbidden = NWNXPopInt(); + skillFeat.iDayOrNight = NWNXPopInt(); + skillFeat.bBypassArmorCheckPenalty = NWNXPopInt(); + skillFeat.iKeyAbilityMask = NWNXPopInt(); return skillFeat; } struct NWNX_SkillRanks_SkillFeat NWNX_SkillRanks_GetSkillFeat(int iSkill, int iFeat) { - string sFunc = "GetSkillFeat"; - - NWNX_PushArgumentInt(iFeat); - NWNX_PushArgumentInt(iSkill); - NWNX_CallFunction(NWNX_SkillRanks, sFunc); - + NWNXPushInt(iFeat); + NWNXPushInt(iSkill); + NWNXCall(NWNX_SkillRanks, "GetSkillFeat"); struct NWNX_SkillRanks_SkillFeat skillFeat; - skillFeat.iSkill = iSkill; skillFeat.iFeat = iFeat; - skillFeat.iModifier = NWNX_GetReturnValueInt(); - skillFeat.iFocusFeat = NWNX_GetReturnValueInt(); - skillFeat.sClasses = NWNX_GetReturnValueString(); - skillFeat.fClassLevelMod = NWNX_GetReturnValueFloat(); - skillFeat.iAreaFlagsRequired = NWNX_GetReturnValueInt(); - skillFeat.iAreaFlagsForbidden = NWNX_GetReturnValueInt(); - skillFeat.iDayOrNight = NWNX_GetReturnValueInt(); - skillFeat.bBypassArmorCheckPenalty = NWNX_GetReturnValueInt(); - skillFeat.iKeyAbilityMask = NWNX_GetReturnValueInt(); - + skillFeat.iModifier = NWNXPopInt(); + skillFeat.iFocusFeat = NWNXPopInt(); + skillFeat.sClasses = NWNXPopString(); + skillFeat.fClassLevelMod = NWNXPopFloat(); + skillFeat.iAreaFlagsRequired = NWNXPopInt(); + skillFeat.iAreaFlagsForbidden = NWNXPopInt(); + skillFeat.iDayOrNight = NWNXPopInt(); + skillFeat.bBypassArmorCheckPenalty = NWNXPopInt(); + skillFeat.iKeyAbilityMask = NWNXPopInt(); return skillFeat; } void NWNX_SkillRanks_SetSkillFeat(struct NWNX_SkillRanks_SkillFeat skillFeat, int createIfNonExistent = FALSE) { - string sFunc = "SetSkillFeat"; - - NWNX_PushArgumentInt(createIfNonExistent); - NWNX_PushArgumentInt(skillFeat.iKeyAbilityMask); - NWNX_PushArgumentInt(skillFeat.bBypassArmorCheckPenalty); - NWNX_PushArgumentInt(skillFeat.iDayOrNight); - NWNX_PushArgumentInt(skillFeat.iAreaFlagsForbidden); - NWNX_PushArgumentInt(skillFeat.iAreaFlagsRequired); - NWNX_PushArgumentFloat(skillFeat.fClassLevelMod); + NWNXPushInt(createIfNonExistent); + NWNXPushInt(skillFeat.iKeyAbilityMask); + NWNXPushInt(skillFeat.bBypassArmorCheckPenalty); + NWNXPushInt(skillFeat.iDayOrNight); + NWNXPushInt(skillFeat.iAreaFlagsForbidden); + NWNXPushInt(skillFeat.iAreaFlagsRequired); + NWNXPushFloat(skillFeat.fClassLevelMod); // We only need to send the string from the point of the first set bit - NWNX_PushArgumentString(GetStringRight(skillFeat.sClasses,GetStringLength(skillFeat.sClasses)-FindSubString(skillFeat.sClasses,"1"))); - NWNX_PushArgumentInt(skillFeat.iFocusFeat); - NWNX_PushArgumentInt(skillFeat.iModifier); - NWNX_PushArgumentInt(skillFeat.iFeat); - NWNX_PushArgumentInt(skillFeat.iSkill); - NWNX_CallFunction(NWNX_SkillRanks, sFunc); + NWNXPushString(GetStringRight(skillFeat.sClasses,GetStringLength(skillFeat.sClasses)-FindSubString(skillFeat.sClasses,"1"))); + NWNXPushInt(skillFeat.iFocusFeat); + NWNXPushInt(skillFeat.iModifier); + NWNXPushInt(skillFeat.iFeat); + NWNXPushInt(skillFeat.iSkill); + NWNXCall(NWNX_SkillRanks, "SetSkillFeat"); } struct NWNX_SkillRanks_SkillFeat NWNX_SkillRanks_AddSkillFeatClass(struct NWNX_SkillRanks_SkillFeat skillFeat, int iClass) @@ -237,47 +221,35 @@ struct NWNX_SkillRanks_SkillFeat NWNX_SkillRanks_AddSkillFeatClass(struct NWNX_S void NWNX_SkillRanks_SetSkillFeatFocusModifier(int iModifier, int epicFocus = FALSE) { - string sFunc = "SetSkillFeatFocusModifier"; - - NWNX_PushArgumentInt(epicFocus); - NWNX_PushArgumentInt(iModifier); - NWNX_CallFunction(NWNX_SkillRanks, sFunc); + NWNXPushInt(epicFocus); + NWNXPushInt(iModifier); + NWNXCall(NWNX_SkillRanks, "SetSkillFeatFocusModifier"); } int NWNX_SkillRanks_GetBlindnessPenalty() { - string sFunc = "GetBlindnessPenalty"; - - NWNX_CallFunction(NWNX_SkillRanks, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_SkillRanks, "GetBlindnessPenalty"); + return NWNXPopInt(); } void NWNX_SkillRanks_SetBlindnessPenalty(int iModifier) { - string sFunc = "SetBlindnessPenalty"; - - NWNX_PushArgumentInt(iModifier); - NWNX_CallFunction(NWNX_SkillRanks, sFunc); + NWNXPushInt(iModifier); + NWNXCall(NWNX_SkillRanks, "SetBlindnessPenalty"); } int NWNX_SkillRanks_GetAreaModifier(object oArea, int iSkill) { - string sFunc = "GetAreaModifier"; - - NWNX_PushArgumentInt(iSkill); - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_SkillRanks, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(iSkill); + NWNXPushObject(oArea); + NWNXCall(NWNX_SkillRanks, "GetAreaModifier"); + return NWNXPopInt(); } void NWNX_SkillRanks_SetAreaModifier(object oArea, int iSkill, int iModifier) { - string sFunc = "SetAreaModifier"; - - NWNX_PushArgumentInt(iModifier); - NWNX_PushArgumentInt(iSkill); - NWNX_PushArgumentObject(oArea); - NWNX_CallFunction(NWNX_SkillRanks, sFunc); + NWNXPushInt(iModifier); + NWNXPushInt(iSkill); + NWNXPushObject(oArea); + NWNXCall(NWNX_SkillRanks, "SetAreaModifier"); } diff --git a/_module/nss/nwnx_spellcheck.nss b/_module/nss/nwnx_spellcheck.nss index 5a6b268d..45a0e659 100644 --- a/_module/nss/nwnx_spellcheck.nss +++ b/_module/nss/nwnx_spellcheck.nss @@ -2,7 +2,6 @@ /// @brief Functions related to spellchecking /// @{ /// @file nwnx_spellcheck.nss -#include "nwnx" const string NWNX_SpellChecker = "NWNX_SpellChecker"; ///< @private @@ -27,17 +26,14 @@ string NWNX_SpellChecker_GetSuggestSpell(string word); string NWNX_SpellChecker_FindMisspell(string sentence) { - string sFunc = "FindMisspell"; - - NWNX_PushArgumentString(sentence); - NWNX_CallFunction(NWNX_SpellChecker, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushString(sentence); + NWNXCall(NWNX_SpellChecker, "FindMisspell"); + return NWNXPopString(); } string NWNX_SpellChecker_GetSuggestSpell(string word) { - string sFunc = "GetSuggestSpell"; - NWNX_PushArgumentString(word); - NWNX_CallFunction(NWNX_SpellChecker, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushString(word); + NWNXCall(NWNX_SpellChecker, "GetSuggestSpell"); + return NWNXPopString(); } diff --git a/_module/nss/nwnx_sql.nss b/_module/nss/nwnx_sql.nss index f3ab3d20..cb324943 100644 --- a/_module/nss/nwnx_sql.nss +++ b/_module/nss/nwnx_sql.nss @@ -2,7 +2,6 @@ /// @brief Functions to interface with a database through SQL /// @{ /// @file nwnx_sql.nss -#include "nwnx" const string NWNX_SQL = "NWNX_SQL"; ///< @private @@ -116,19 +115,15 @@ void NWNX_SQL_PostgreSQL_SetNextQueryResultsBinaryMode(); int NWNX_SQL_PrepareQuery(string query) { - string sFunc = "PrepareQuery"; - - NWNX_PushArgumentString(query); - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushString(query); + NWNXCall(NWNX_SQL, "PrepareQuery"); + return NWNXPopInt(); } int NWNX_SQL_ExecutePreparedQuery() { - string sFunc = "ExecutePreparedQuery"; - - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_SQL, "ExecutePreparedQuery"); + return NWNXPopInt(); } int NWNX_SQL_ExecuteQuery(string query) @@ -146,76 +141,58 @@ int NWNX_SQL_ExecuteQuery(string query) int NWNX_SQL_ReadyToReadNextRow() { - string sFunc = "ReadyToReadNextRow"; - - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_SQL, "ReadyToReadNextRow"); + return NWNXPopInt(); } void NWNX_SQL_ReadNextRow() { - string sFunc = "ReadNextRow"; - - NWNX_CallFunction(NWNX_SQL, sFunc); + NWNXCall(NWNX_SQL, "ReadNextRow"); } string NWNX_SQL_ReadDataInActiveRow(int column = 0) { - string sFunc = "ReadDataInActiveRow"; - - NWNX_PushArgumentInt(column); - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushInt(column); + NWNXCall(NWNX_SQL, "ReadDataInActiveRow"); + return NWNXPopString(); } void NWNX_SQL_PreparedInt(int position, int value) { - string sFunc = "PreparedInt"; - - NWNX_PushArgumentInt(value); - NWNX_PushArgumentInt(position); - NWNX_CallFunction(NWNX_SQL, sFunc); + NWNXPushInt(value); + NWNXPushInt(position); + NWNXCall(NWNX_SQL, "PreparedInt"); } void NWNX_SQL_PreparedString(int position, string value) { - string sFunc = "PreparedString"; - - NWNX_PushArgumentString(value); - NWNX_PushArgumentInt(position); - NWNX_CallFunction(NWNX_SQL, sFunc); + NWNXPushString(value); + NWNXPushInt(position); + NWNXCall(NWNX_SQL, "PreparedString"); } void NWNX_SQL_PreparedFloat(int position, float value) { - string sFunc = "PreparedFloat"; - - NWNX_PushArgumentFloat(value); - NWNX_PushArgumentInt(position); - NWNX_CallFunction(NWNX_SQL, sFunc); + NWNXPushFloat(value); + NWNXPushInt(position); + NWNXCall(NWNX_SQL, "PreparedFloat"); } void NWNX_SQL_PreparedObjectId(int position, object value) { - string sFunc = "PreparedObjectId"; - - NWNX_PushArgumentObject(value); - NWNX_PushArgumentInt(position); - NWNX_CallFunction(NWNX_SQL, sFunc); + NWNXPushObject(value); + NWNXPushInt(position); + NWNXCall(NWNX_SQL, "PreparedObjectId"); } void NWNX_SQL_PreparedObjectFull(int position, object value, int base64 = TRUE) { - string sFunc = "PreparedObjectFull"; - - NWNX_PushArgumentInt(base64); - NWNX_PushArgumentObject(value); - NWNX_PushArgumentInt(position); - NWNX_CallFunction(NWNX_SQL, sFunc); + NWNXPushInt(base64); + NWNXPushObject(value); + NWNXPushInt(position); + NWNXCall(NWNX_SQL, "PreparedObjectFull"); } void NWNX_SQL_PreparedNULL(int position) { - string sFunc = "PreparedNULL"; - - NWNX_PushArgumentInt(position); - NWNX_CallFunction(NWNX_SQL, sFunc); + NWNXPushInt(position); + NWNXCall(NWNX_SQL, "PreparedNULL"); } void NWNX_SQL_PreparedJson(int position, json value) { @@ -227,60 +204,46 @@ void NWNX_SQL_PreparedJson(int position, json value) object NWNX_SQL_ReadFullObjectInActiveRow(int column = 0, object owner = OBJECT_INVALID, float x = 0.0, float y = 0.0, float z = 0.0, int base64 = TRUE) { - string sFunc = "ReadFullObjectInActiveRow"; - - NWNX_PushArgumentInt(base64); - NWNX_PushArgumentFloat(z); - NWNX_PushArgumentFloat(y); - NWNX_PushArgumentFloat(x); - NWNX_PushArgumentObject(owner); - NWNX_PushArgumentInt(column); - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueObject(); + NWNXPushInt(base64); + NWNXPushFloat(z); + NWNXPushFloat(y); + NWNXPushFloat(x); + NWNXPushObject(owner); + NWNXPushInt(column); + NWNXCall(NWNX_SQL, "ReadFullObjectInActiveRow"); + return NWNXPopObject(); } int NWNX_SQL_GetAffectedRows() { - string sFunc = "GetAffectedRows"; - - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_SQL, "GetAffectedRows"); + return NWNXPopInt(); } string NWNX_SQL_GetDatabaseType() { - string sFunc = "GetDatabaseType"; - - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueString(); + NWNXCall(NWNX_SQL, "GetDatabaseType"); + return NWNXPopString(); } void NWNX_SQL_DestroyPreparedQuery() { - string sFunc = "DestroyPreparedQuery"; - - NWNX_CallFunction(NWNX_SQL, sFunc); + NWNXCall(NWNX_SQL, "DestroyPreparedQuery"); } string NWNX_SQL_GetLastError() { - string sFunc = "GetLastError"; - - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueString(); + NWNXCall(NWNX_SQL, "GetLastError"); + return NWNXPopString(); } int NWNX_SQL_GetPreparedQueryParamCount() { - string sFunc = "GetPreparedQueryParamCount"; - - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_SQL, "GetPreparedQueryParamCount"); + return NWNXPopInt(); } void NWNX_SQL_PostgreSQL_SetNextQueryResultsBinaryMode() { - string sFunc = "PostgreSQL_SetNextQueryResultsBinaryMode"; - - NWNX_CallFunction(NWNX_SQL, sFunc); + NWNXCall(NWNX_SQL, "PostgreSQL_SetNextQueryResultsBinaryMode"); } diff --git a/_module/nss/nwnx_store.nss b/_module/nss/nwnx_store.nss index 00b2014d..8f6d2524 100644 --- a/_module/nss/nwnx_store.nss +++ b/_module/nss/nwnx_store.nss @@ -2,7 +2,6 @@ /// @brief Functions exposing additional store properties. /// @{ /// @file nwnx_store.nss -#include "nwnx" const string NWNX_Store = "NWNX_Store"; ///< @private @@ -51,81 +50,57 @@ int NWNX_Store_GetCurrentCustomersCount(object oStore); int NWNX_Store_GetIsRestrictedBuyItem(object oStore, int nBaseItem) { - string sFunc = "GetIsRestrictedBuyItem"; - - NWNX_PushArgumentInt(nBaseItem); - NWNX_PushArgumentObject(oStore); - - NWNX_CallFunction(NWNX_Store, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(nBaseItem); + NWNXPushObject(oStore); + NWNXCall(NWNX_Store, "GetIsRestrictedBuyItem"); + return NWNXPopInt(); } int NWNX_Store_GetBlackMarketMarkDown(object oStore) { - string sFunc = "GetBlackMarketMarkDown"; - - NWNX_PushArgumentObject(oStore); - - NWNX_CallFunction(NWNX_Store, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oStore); + NWNXCall(NWNX_Store, "GetBlackMarketMarkDown"); + return NWNXPopInt(); } void NWNX_Store_SetBlackMarketMarkDown(object oStore, int nValue) { - string sFunc = "SetBlackMarketMarkDown"; - - NWNX_PushArgumentInt(nValue); - NWNX_PushArgumentObject(oStore); - - NWNX_CallFunction(NWNX_Store, sFunc); + NWNXPushInt(nValue); + NWNXPushObject(oStore); + NWNXCall(NWNX_Store, "SetBlackMarketMarkDown"); } int NWNX_Store_GetMarkDown(object oStore) { - string sFunc = "GetMarkDown"; - - NWNX_PushArgumentObject(oStore); - - NWNX_CallFunction(NWNX_Store, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oStore); + NWNXCall(NWNX_Store, "GetMarkDown"); + return NWNXPopInt(); } void NWNX_Store_SetMarkDown(object oStore, int nValue) { - string sFunc = "SetMarkDown"; - - NWNX_PushArgumentInt(nValue); - NWNX_PushArgumentObject(oStore); - - NWNX_CallFunction(NWNX_Store, sFunc); + NWNXPushInt(nValue); + NWNXPushObject(oStore); + NWNXCall(NWNX_Store, "SetMarkDown"); } int NWNX_Store_GetMarkUp(object oStore) { - string sFunc = "GetMarkUp"; - - NWNX_PushArgumentObject(oStore); - - NWNX_CallFunction(NWNX_Store, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oStore); + NWNXCall(NWNX_Store, "GetMarkUp"); + return NWNXPopInt(); } void NWNX_Store_SetMarkUp(object oStore, int nValue) { - string sFunc = "SetMarkUp"; - - NWNX_PushArgumentInt(nValue); - NWNX_PushArgumentObject(oStore); - - NWNX_CallFunction(NWNX_Store, sFunc); + NWNXPushInt(nValue); + NWNXPushObject(oStore); + NWNXCall(NWNX_Store, "SetMarkUp"); } int NWNX_Store_GetCurrentCustomersCount(object oStore) { - string sFunc = "GetCurrentCustomersCount"; - - NWNX_PushArgumentObject(oStore); - - NWNX_CallFunction(NWNX_Store, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushObject(oStore); + NWNXCall(NWNX_Store, "GetCurrentCustomersCount"); + return NWNXPopInt(); } diff --git a/_module/nss/nwnx_tileset.nss b/_module/nss/nwnx_tileset.nss index eab4e289..fa07a379 100644 --- a/_module/nss/nwnx_tileset.nss +++ b/_module/nss/nwnx_tileset.nss @@ -2,7 +2,6 @@ /// @brief An advanced plugin that exposes additional tileset and tile properties and allows builders to override the tiles of an area created with CreateArea(). /// @{ /// @file nwnx_tileset.nss -#include "nwnx" const string NWNX_Tileset = "NWNX_Tileset"; ///< @private @@ -166,174 +165,160 @@ void NWNX_Tileset_DeleteOverrideTileData(string sOverrideName, int nIndex); struct NWNX_Tileset_TilesetData NWNX_Tileset_GetTilesetData(string sTileset) { - NWNX_PushArgumentString(sTileset); - NWNX_CallFunction(NWNX_Tileset, "GetTilesetData"); - + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTilesetData"); struct NWNX_Tileset_TilesetData str; - str.bHasHeightTransition = NWNX_GetReturnValueInt(); - str.bInterior = NWNX_GetReturnValueInt(); - str.sUnlocalizedName = NWNX_GetReturnValueString(); - str.nDisplayNameStrRef = NWNX_GetReturnValueInt(); - str.sFloorTerrain = NWNX_GetReturnValueString(); - str.sDefaultTerrain = NWNX_GetReturnValueString(); - str.sBorderTerrain = NWNX_GetReturnValueString(); - str.nNumGroups = NWNX_GetReturnValueInt(); - str.nNumCrossers = NWNX_GetReturnValueInt(); - str.nNumTerrain = NWNX_GetReturnValueInt(); - str.fHeightTransition = NWNX_GetReturnValueFloat(); - str.nNumTileData = NWNX_GetReturnValueInt(); - + str.bHasHeightTransition = NWNXPopInt(); + str.bInterior = NWNXPopInt(); + str.sUnlocalizedName = NWNXPopString(); + str.nDisplayNameStrRef = NWNXPopInt(); + str.sFloorTerrain = NWNXPopString(); + str.sDefaultTerrain = NWNXPopString(); + str.sBorderTerrain = NWNXPopString(); + str.nNumGroups = NWNXPopInt(); + str.nNumCrossers = NWNXPopInt(); + str.nNumTerrain = NWNXPopInt(); + str.fHeightTransition = NWNXPopFloat(); + str.nNumTileData = NWNXPopInt(); return str; } string NWNX_Tileset_GetTilesetTerrain(string sTileset, int nIndex) { - NWNX_PushArgumentInt(nIndex); - NWNX_PushArgumentString(sTileset); - NWNX_CallFunction(NWNX_Tileset, "GetTilesetTerrain"); - - return NWNX_GetReturnValueString(); + NWNXPushInt(nIndex); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTilesetTerrain"); + return NWNXPopString(); } string NWNX_Tileset_GetTilesetCrosser(string sTileset, int nIndex) { - NWNX_PushArgumentInt(nIndex); - NWNX_PushArgumentString(sTileset); - NWNX_CallFunction(NWNX_Tileset, "GetTilesetCrosser"); - - return NWNX_GetReturnValueString(); + NWNXPushInt(nIndex); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTilesetCrosser"); + return NWNXPopString(); } struct NWNX_Tileset_TilesetGroupData NWNX_Tileset_GetTilesetGroupData(string sTileset, int nIndex) { - NWNX_PushArgumentInt(nIndex); - NWNX_PushArgumentString(sTileset); - NWNX_CallFunction(NWNX_Tileset, "GetTilesetGroupData"); - + NWNXPushInt(nIndex); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTilesetGroupData"); struct NWNX_Tileset_TilesetGroupData str; - str.nColumns = NWNX_GetReturnValueInt(); - str.nRows = NWNX_GetReturnValueInt(); - str.nStrRef = NWNX_GetReturnValueInt(); - str.sName = NWNX_GetReturnValueString(); - + str.nColumns = NWNXPopInt(); + str.nRows = NWNXPopInt(); + str.nStrRef = NWNXPopInt(); + str.sName = NWNXPopString(); return str; } int NWNX_Tileset_GetTilesetGroupTile(string sTileset, int nGroupIndex, int nTileIndex) { - NWNX_PushArgumentInt(nTileIndex); - NWNX_PushArgumentInt(nGroupIndex); - NWNX_PushArgumentString(sTileset); - NWNX_CallFunction(NWNX_Tileset, "GetTilesetGroupTile"); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(nTileIndex); + NWNXPushInt(nGroupIndex); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTilesetGroupTile"); + return NWNXPopInt(); } string NWNX_Tileset_GetTileModel(string sTileset, int nTileID) { - NWNX_PushArgumentInt(nTileID); - NWNX_PushArgumentString(sTileset); - NWNX_CallFunction(NWNX_Tileset, "GetTileModel"); - - return NWNX_GetReturnValueString(); + NWNXPushInt(nTileID); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTileModel"); + return NWNXPopString(); } string NWNX_Tileset_GetTileMinimapTexture(string sTileset, int nTileID) { - NWNX_PushArgumentInt(nTileID); - NWNX_PushArgumentString(sTileset); - NWNX_CallFunction(NWNX_Tileset, "GetTileMinimapTexture"); - - return NWNX_GetReturnValueString(); + NWNXPushInt(nTileID); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTileMinimapTexture"); + return NWNXPopString(); } struct NWNX_Tileset_TileEdgesAndCorners NWNX_Tileset_GetTileEdgesAndCorners(string sTileset, int nTileID) { - NWNX_PushArgumentInt(nTileID); - NWNX_PushArgumentString(sTileset); - NWNX_CallFunction(NWNX_Tileset, "GetTileEdgesAndCorners"); - + NWNXPushInt(nTileID); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTileEdgesAndCorners"); struct NWNX_Tileset_TileEdgesAndCorners str; - str.sLeft = NWNX_GetReturnValueString(); - str.sBottomLeft = NWNX_GetReturnValueString(); - str.sBottom = NWNX_GetReturnValueString(); - str.sBottomRight = NWNX_GetReturnValueString(); - str.sRight = NWNX_GetReturnValueString(); - str.sTopRight = NWNX_GetReturnValueString(); - str.sTop = NWNX_GetReturnValueString(); - str.sTopLeft = NWNX_GetReturnValueString(); - + str.sLeft = NWNXPopString(); + str.sBottomLeft = NWNXPopString(); + str.sBottom = NWNXPopString(); + str.sBottomRight = NWNXPopString(); + str.sRight = NWNXPopString(); + str.sTopRight = NWNXPopString(); + str.sTop = NWNXPopString(); + str.sTopLeft = NWNXPopString(); return str; } int NWNX_Tileset_GetTileNumDoors(string sTileset, int nTileID) { - NWNX_PushArgumentInt(nTileID); - NWNX_PushArgumentString(sTileset); - NWNX_CallFunction(NWNX_Tileset, "GetTileNumDoors"); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(nTileID); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTileNumDoors"); + return NWNXPopInt(); } struct NWNX_Tileset_TileDoorData NWNX_Tileset_GetTileDoorData(string sTileset, int nTileID, int nIndex = 0) { - NWNX_PushArgumentInt(nIndex); - NWNX_PushArgumentInt(nTileID); - NWNX_PushArgumentString(sTileset); - NWNX_CallFunction(NWNX_Tileset, "GetTileDoorData"); - + NWNXPushInt(nIndex); + NWNXPushInt(nTileID); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTileDoorData"); struct NWNX_Tileset_TileDoorData str; - str.fOrientation = NWNX_GetReturnValueFloat(); - str.fZ = NWNX_GetReturnValueFloat(); - str.fY = NWNX_GetReturnValueFloat(); - str.fX = NWNX_GetReturnValueFloat(); - str.nType = NWNX_GetReturnValueInt(); - + str.fOrientation = NWNXPopFloat(); + str.fZ = NWNXPopFloat(); + str.fY = NWNXPopFloat(); + str.fX = NWNXPopFloat(); + str.nType = NWNXPopInt(); return str; } void NWNX_Tileset_SetAreaTileOverride(string sAreaResRef, string sOverrideName) { - NWNX_PushArgumentString(sOverrideName); - NWNX_PushArgumentString(sAreaResRef); - NWNX_CallFunction(NWNX_Tileset, "SetAreaTileOverride"); + NWNXPushString(sOverrideName); + NWNXPushString(sAreaResRef); + NWNXCall(NWNX_Tileset, "SetAreaTileOverride"); } void NWNX_Tileset_CreateTileOverride(string sOverrideName, string sTileSet, int nWidth, int nHeight) { - NWNX_PushArgumentInt(nHeight); - NWNX_PushArgumentInt(nWidth); - NWNX_PushArgumentString(sTileSet); - NWNX_PushArgumentString(sOverrideName); - NWNX_CallFunction(NWNX_Tileset, "CreateTileOverride"); + NWNXPushInt(nHeight); + NWNXPushInt(nWidth); + NWNXPushString(sTileSet); + NWNXPushString(sOverrideName); + NWNXCall(NWNX_Tileset, "CreateTileOverride"); } void NWNX_Tileset_DeleteTileOverride(string sOverrideName) { - NWNX_PushArgumentString(sOverrideName); - NWNX_CallFunction(NWNX_Tileset, "DeleteTileOverride"); + NWNXPushString(sOverrideName); + NWNXCall(NWNX_Tileset, "DeleteTileOverride"); } void NWNX_Tileset_SetOverrideTileData(string sOverrideName, int nIndex, struct NWNX_Tileset_CustomTileData strCustomTileData) { - NWNX_PushArgumentInt(strCustomTileData.bAnimLoop3); - NWNX_PushArgumentInt(strCustomTileData.bAnimLoop2); - NWNX_PushArgumentInt(strCustomTileData.bAnimLoop1); - NWNX_PushArgumentInt(strCustomTileData.nSourceLightColor2); - NWNX_PushArgumentInt(strCustomTileData.nSourceLightColor1); - NWNX_PushArgumentInt(strCustomTileData.nMainLightColor2); - NWNX_PushArgumentInt(strCustomTileData.nMainLightColor1); - NWNX_PushArgumentInt(strCustomTileData.nHeight); - NWNX_PushArgumentInt(strCustomTileData.nOrientation); - NWNX_PushArgumentInt(strCustomTileData.nTileID); - NWNX_PushArgumentInt(nIndex); - NWNX_PushArgumentString(sOverrideName); - NWNX_CallFunction(NWNX_Tileset, "SetOverrideTileData"); + NWNXPushInt(strCustomTileData.bAnimLoop3); + NWNXPushInt(strCustomTileData.bAnimLoop2); + NWNXPushInt(strCustomTileData.bAnimLoop1); + NWNXPushInt(strCustomTileData.nSourceLightColor2); + NWNXPushInt(strCustomTileData.nSourceLightColor1); + NWNXPushInt(strCustomTileData.nMainLightColor2); + NWNXPushInt(strCustomTileData.nMainLightColor1); + NWNXPushInt(strCustomTileData.nHeight); + NWNXPushInt(strCustomTileData.nOrientation); + NWNXPushInt(strCustomTileData.nTileID); + NWNXPushInt(nIndex); + NWNXPushString(sOverrideName); + NWNXCall(NWNX_Tileset, "SetOverrideTileData"); } void NWNX_Tileset_DeleteOverrideTileData(string sOverrideName, int nIndex) { - NWNX_PushArgumentInt(nIndex); - NWNX_PushArgumentString(sOverrideName); - NWNX_CallFunction(NWNX_Tileset, "DeleteOverrideTileData"); + NWNXPushInt(nIndex); + NWNXPushString(sOverrideName); + NWNXCall(NWNX_Tileset, "DeleteOverrideTileData"); } diff --git a/_module/nss/nwnx_time.nss b/_module/nss/nwnx_time.nss index 44d949e9..7b1788b7 100644 --- a/_module/nss/nwnx_time.nss +++ b/_module/nss/nwnx_time.nss @@ -2,7 +2,6 @@ /// @brief Provides various time related functions /// @{ /// @file nwnx_time.nss -#include "nwnx" #include "nwnx_util" #include "inc_sqlite_time" diff --git a/_module/nss/nwnx_util.nss b/_module/nss/nwnx_util.nss index ef32e355..1de3d14d 100644 --- a/_module/nss/nwnx_util.nss +++ b/_module/nss/nwnx_util.nss @@ -2,7 +2,6 @@ /// @brief Provides various utility functions that don't have a better home /// @{ /// @file nwnx_util.nss -#include "nwnx" const string NWNX_Util = "NWNX_Util"; ///< @private @@ -174,12 +173,6 @@ int NWNX_Util_RegisterServerConsoleCommand(string sCommand, string sScriptChunk) /// @param sCommand The name of the command. void NWNX_Util_UnregisterServerConsoleCommand(string sCommand); -/// @brief Determines if the given plugin exists and is enabled. -/// @param sPlugin The name of the plugin to check. This is the case sensitive plugin name as used by NWNX_CallFunction, NWNX_PushArgumentX -/// @note Example usage: NWNX_Util_PluginExists("NWNX_Creature"); -/// @return TRUE if the plugin exists and is enabled, otherwise FALSE. -int NWNX_Util_PluginExists(string sPlugin); - /// @brief Gets the server's current working user folder. /// @return The absolute path of the server's home directory (-userDirectory) string NWNX_Util_GetUserDirectory(); @@ -228,10 +221,18 @@ int NWNX_Util_GetScriptParamIsSet(string sParamName); /// @param nDawnHour The new dawn hour void NWNX_Util_SetDawnHour(int nDawnHour); +/// @brief Get the module dawn hour. +/// @return The dawn hour +int NWNX_Util_GetDawnHour(); + /// @brief Set the module dusk hour. /// @param nDuskHour The new dusk hour void NWNX_Util_SetDuskHour(int nDuskHour); +/// @brief Get the module dusk hour. +/// @return The dusk hour +int NWNX_Util_GetDuskHour(); + /// @return Returns the number of microseconds since midnight on January 1, 1970. struct NWNX_Util_HighResTimestamp NWNX_Util_GetHighResTimeStamp(); @@ -263,397 +264,327 @@ int NWNX_Util_CleanResourceDirectory(string sAlias, int nResType = 0xFFFF); /// @return The name string NWNX_Util_GetModuleTlkFile(); +/// @brief Update a resource directory by having ResMan reindex it. +/// @param sAlias A resource directory alias, eg: TEMP +/// @return TRUE if successful, FALSE on error. +int NWNX_Util_UpdateResourceDirectory(string sAlias); + /// @} string NWNX_Util_GetCurrentScriptName(int depth = 0) { - string sFunc = "GetCurrentScriptName"; - NWNX_PushArgumentInt(depth); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushInt(depth); + NWNXCall(NWNX_Util, "GetCurrentScriptName"); + return NWNXPopString(); } string NWNX_Util_GetAsciiTableString() { - string sFunc = "GetAsciiTableString"; - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueString(); + NWNXCall(NWNX_Util, "GetAsciiTableString"); + return NWNXPopString(); } int NWNX_Util_Hash(string str) { - string sFunc = "Hash"; - NWNX_PushArgumentString(str); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushString(str); + NWNXCall(NWNX_Util, "Hash"); + return NWNXPopInt(); } int NWNX_Util_GetModuleMtime() { - NWNX_CallFunction(NWNX_Util, "GetModuleMtime"); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Util, "GetModuleMtime"); + return NWNXPopInt(); } string NWNX_Util_GetModuleFile() { - NWNX_CallFunction(NWNX_Util, "GetModuleFile"); - return NWNX_GetReturnValueString(); + NWNXCall(NWNX_Util, "GetModuleFile"); + return NWNXPopString(); } string NWNX_Util_GetCustomToken(int customTokenNumber) { - string sFunc = "GetCustomToken"; - NWNX_PushArgumentInt(customTokenNumber); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushInt(customTokenNumber); + NWNXCall(NWNX_Util, "GetCustomToken"); + return NWNXPopString(); } itemproperty NWNX_Util_EffectToItemProperty(effect e) { - string sFunc = "EffectTypeCast"; - NWNX_PushArgumentEffect(e); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueItemProperty(); + NWNXPushEffect(e); + NWNXCall(NWNX_Util, "EffectTypeCast"); + return NWNXPopItemProperty(); } effect NWNX_Util_ItemPropertyToEffect(itemproperty ip) { - string sFunc = "EffectTypeCast"; - NWNX_PushArgumentItemProperty(ip); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueEffect(); + NWNXPushItemProperty(ip); + NWNXCall(NWNX_Util, "EffectTypeCast"); + return NWNXPopEffect(); } string NWNX_Util_StripColors(string str) { - string sFunc = "StripColors"; - NWNX_PushArgumentString(str); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushString(str); + NWNXCall(NWNX_Util, "StripColors"); + return NWNXPopString(); } string NWNX_Util_GetEnvironmentVariable(string sVarname) { - string sFunc = "GetEnvironmentVariable"; - NWNX_PushArgumentString(sVarname); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueString(); + NWNXPushString(sVarname); + NWNXCall(NWNX_Util, "GetEnvironmentVariable"); + return NWNXPopString(); } int NWNX_Util_GetMinutesPerHour() { - string sFunc = "GetMinutesPerHour"; - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Util, "GetMinutesPerHour"); + return NWNXPopInt(); } void NWNX_Util_SetMinutesPerHour(int minutes) { - string sFunc = "SetMinutesPerHour"; - NWNX_PushArgumentInt(minutes); - NWNX_CallFunction(NWNX_Util, sFunc); + NWNXPushInt(minutes); + NWNXCall(NWNX_Util, "SetMinutesPerHour"); } string NWNX_Util_EncodeStringForURL(string sURL) { - string sFunc = "EncodeStringForURL"; - - NWNX_PushArgumentString(sURL); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueString(); + NWNXPushString(sURL); + NWNXCall(NWNX_Util, "EncodeStringForURL"); + return NWNXPopString(); } string NWNX_Util_GetFirstResRef(int nType, string sRegexFilter = "", int bModuleResourcesOnly = TRUE) { - string sFunc = "GetFirstResRef"; - - NWNX_PushArgumentInt(bModuleResourcesOnly); - NWNX_PushArgumentString(sRegexFilter); - NWNX_PushArgumentInt(nType); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueString(); + NWNXPushInt(bModuleResourcesOnly); + NWNXPushString(sRegexFilter); + NWNXPushInt(nType); + NWNXCall(NWNX_Util, "GetFirstResRef"); + return NWNXPopString(); } string NWNX_Util_GetNextResRef() { - string sFunc = "GetNextResRef"; - - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueString(); + NWNXCall(NWNX_Util, "GetNextResRef"); + return NWNXPopString(); } object NWNX_Util_GetLastCreatedObject(int nObjectType, int nNthLast = 1) { - string sFunc = "GetLastCreatedObject"; - - NWNX_PushArgumentInt(nNthLast); - NWNX_PushArgumentInt(nObjectType); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueObject(); + NWNXPushInt(nNthLast); + NWNXPushInt(nObjectType); + NWNXCall(NWNX_Util, "GetLastCreatedObject"); + return NWNXPopObject(); } string NWNX_Util_AddScript(string sFileName, string sScriptData, int bWrapIntoMain = FALSE, string sAlias = "NWNX") { - string sFunc = "AddScript"; - - NWNX_PushArgumentString(sAlias); - NWNX_PushArgumentInt(bWrapIntoMain); - NWNX_PushArgumentString(sScriptData); - NWNX_PushArgumentString(sFileName); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueString(); + NWNXPushString(sAlias); + NWNXPushInt(bWrapIntoMain); + NWNXPushString(sScriptData); + NWNXPushString(sFileName); + NWNXCall(NWNX_Util, "AddScript"); + return NWNXPopString(); } int NWNX_Util_AddNSSFile(string sFileName, string sContents, string sAlias = "NWNX") { - string sFunc = "AddNSSFile"; - - NWNX_PushArgumentString(sAlias); - NWNX_PushArgumentString(sContents); - NWNX_PushArgumentString(sFileName); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushString(sAlias); + NWNXPushString(sContents); + NWNXPushString(sFileName); + NWNXCall(NWNX_Util, "AddNSSFile"); + return NWNXPopInt(); } int NWNX_Util_RemoveNWNXResourceFile(string sFileName, int nType, string sAlias = "NWNX") { - string sFunc = "RemoveNWNXResourceFile"; - - NWNX_PushArgumentString(sAlias); - NWNX_PushArgumentInt(nType); - NWNX_PushArgumentString(sFileName); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushString(sAlias); + NWNXPushInt(nType); + NWNXPushString(sFileName); + NWNXCall(NWNX_Util, "RemoveNWNXResourceFile"); + return NWNXPopInt(); } void NWNX_Util_SetInstructionLimit(int nInstructionLimit) { - string sFunc = "SetInstructionLimit"; - - NWNX_PushArgumentInt(nInstructionLimit); - NWNX_CallFunction(NWNX_Util, sFunc); + NWNXPushInt(nInstructionLimit); + NWNXCall(NWNX_Util, "SetInstructionLimit"); } int NWNX_Util_GetInstructionLimit() { - string sFunc = "GetInstructionLimit"; - - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Util, "GetInstructionLimit"); + return NWNXPopInt(); } void NWNX_Util_SetInstructionsExecuted(int nInstructions) { - string sFunc = "SetInstructionsExecuted"; - - NWNX_PushArgumentInt(nInstructions); - NWNX_CallFunction(NWNX_Util, sFunc); + NWNXPushInt(nInstructions); + NWNXCall(NWNX_Util, "SetInstructionsExecuted"); } int NWNX_Util_GetInstructionsExecuted() { - string sFunc = "GetInstructionsExecuted"; - - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Util, "GetInstructionsExecuted"); + return NWNXPopInt(); } int NWNX_Util_RegisterServerConsoleCommand(string sCommand, string sScriptChunk) { - string sFunc = "RegisterServerConsoleCommand"; - - NWNX_PushArgumentString(sScriptChunk); - NWNX_PushArgumentString(sCommand); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushString(sScriptChunk); + NWNXPushString(sCommand); + NWNXCall(NWNX_Util, "RegisterServerConsoleCommand"); + return NWNXPopInt(); } void NWNX_Util_UnregisterServerConsoleCommand(string sCommand) { - string sFunc = "UnregisterServerConsoleCommand"; - - NWNX_PushArgumentString(sCommand); - NWNX_CallFunction(NWNX_Util, sFunc); -} - -int NWNX_Util_PluginExists(string sPlugin) -{ - WriteTimestampedLogEntry("WARNING: NWNX_Util_PluginExists is deprecated. You should migrate to NWNX_PluginExists."); - return NWNX_PluginExists(sPlugin); + NWNXPushString(sCommand); + NWNXCall(NWNX_Util, "UnregisterServerConsoleCommand"); } string NWNX_Util_GetUserDirectory() { - string sFunc = "GetUserDirectory"; - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueString(); + NWNXCall(NWNX_Util, "GetUserDirectory"); + return NWNXPopString(); } int NWNX_Util_GetScriptReturnValue() { - string sFunc = "GetScriptReturnValue"; - - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Util, "GetScriptReturnValue"); + return NWNXPopInt(); } object NWNX_Util_CreateDoor(string sResRef, location locLocation, string sNewTag = "", int nAppearanceType = -1) { - string sFunc = "CreateDoor"; - - vector vPosition = GetPositionFromLocation(locLocation); - - NWNX_PushArgumentInt(nAppearanceType); - NWNX_PushArgumentString(sNewTag); - NWNX_PushArgumentFloat(GetFacingFromLocation(locLocation)); - NWNX_PushArgumentFloat(vPosition.z); - NWNX_PushArgumentFloat(vPosition.y); - NWNX_PushArgumentFloat(vPosition.x); - NWNX_PushArgumentObject(GetAreaFromLocation(locLocation)); - NWNX_PushArgumentString(sResRef); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueObject(); + NWNXPushInt(nAppearanceType); + NWNXPushString(sNewTag); + NWNXPushLocation(locLocation); + NWNXPushString(sResRef); + NWNXCall(NWNX_Util, "CreateDoor"); + return NWNXPopObject(); } void NWNX_Util_SetItemActivator(object oObject) { - string sFunc = "SetItemActivator"; - - NWNX_PushArgumentObject(oObject); - NWNX_CallFunction(NWNX_Util, sFunc); + NWNXPushObject(oObject); + NWNXCall(NWNX_Util, "SetItemActivator"); } struct NWNX_Util_WorldTime NWNX_Util_GetWorldTime(float fAdjustment = 0.0f) { - string sFunc = "GetWorldTime"; - - NWNX_PushArgumentFloat(fAdjustment); - NWNX_CallFunction(NWNX_Util, sFunc); - + NWNXPushFloat(fAdjustment); + NWNXCall(NWNX_Util, "GetWorldTime"); struct NWNX_Util_WorldTime strWorldTime; - strWorldTime.nTimeOfDay = NWNX_GetReturnValueInt(); - strWorldTime.nCalendarDay = NWNX_GetReturnValueInt(); - + strWorldTime.nTimeOfDay = NWNXPopInt(); + strWorldTime.nCalendarDay = NWNXPopInt(); return strWorldTime; } void NWNX_Util_SetResourceOverride(int nResType, string sOldName, string sNewName) { - string sFunc = "SetResourceOverride"; - - NWNX_PushArgumentString(sNewName); - NWNX_PushArgumentString(sOldName); - NWNX_PushArgumentInt(nResType); - NWNX_CallFunction(NWNX_Util, sFunc); + NWNXPushString(sNewName); + NWNXPushString(sOldName); + NWNXPushInt(nResType); + NWNXCall(NWNX_Util, "SetResourceOverride"); } string NWNX_Util_GetResourceOverride(int nResType, string sName) { - string sFunc = "GetResourceOverride"; - - NWNX_PushArgumentString(sName); - NWNX_PushArgumentInt(nResType); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueString(); + NWNXPushString(sName); + NWNXPushInt(nResType); + NWNXCall(NWNX_Util, "GetResourceOverride"); + return NWNXPopString(); } int NWNX_Util_GetScriptParamIsSet(string sParamName) { - string sFunc = "GetScriptParamIsSet"; - - NWNX_PushArgumentString(sParamName); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushString(sParamName); + NWNXCall(NWNX_Util, "GetScriptParamIsSet"); + return NWNXPopInt(); } void NWNX_Util_SetDawnHour(int nDawnHour) { - string sFunc = "SetDawnHour"; + NWNXPushInt(nDawnHour); + NWNXCall(NWNX_Util, "SetDawnHour"); +} - NWNX_PushArgumentInt(nDawnHour); - NWNX_CallFunction(NWNX_Util, sFunc); +int NWNX_Util_GetDawnHour() +{ + NWNXCall(NWNX_Util, "GetDawnHour"); + return NWNXPopInt(); } void NWNX_Util_SetDuskHour(int nDuskHour) { - string sFunc = "SetDuskHour"; + NWNXPushInt(nDuskHour); + NWNXCall(NWNX_Util, "SetDuskHour"); +} - NWNX_PushArgumentInt(nDuskHour); - NWNX_CallFunction(NWNX_Util, sFunc); +int NWNX_Util_GetDuskHour() +{ + NWNXCall(NWNX_Util, "GetDuskHour"); + return NWNXPopInt(); } struct NWNX_Util_HighResTimestamp NWNX_Util_GetHighResTimeStamp() { struct NWNX_Util_HighResTimestamp t; - string sFunc = "GetHighResTimeStamp"; - - NWNX_CallFunction(NWNX_Util, sFunc); - t.microseconds = NWNX_GetReturnValueInt(); - t.seconds = NWNX_GetReturnValueInt(); + NWNXCall(NWNX_Util, "GetHighResTimeStamp"); + t.microseconds = NWNXPopInt(); + t.seconds = NWNXPopInt(); return t; } string NWNX_Util_GetTTY() { - string sFunc = "GetTTY"; - - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueString(); + NWNXCall(NWNX_Util, "GetTTY"); + return NWNXPopString(); } void NWNX_Util_SetCurrentlyRunningEvent(int nEventID) { - string sFunc = "SetCurrentlyRunningEvent"; - - NWNX_PushArgumentInt(nEventID); - NWNX_CallFunction(NWNX_Util, sFunc); + NWNXPushInt(nEventID); + NWNXCall(NWNX_Util, "SetCurrentlyRunningEvent"); } int NWNX_Util_GetStringLevenshteinDistance(string sString, string sCompareTo) { - string sFunc = "LevenshteinDistance"; - - NWNX_PushArgumentString(sCompareTo); - NWNX_PushArgumentString(sString); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushString(sCompareTo); + NWNXPushString(sString); + NWNXCall(NWNX_Util, "GetStringLevenshteinDistance"); + return NWNXPopInt(); } void NWNX_Util_UpdateClientObject(object oObjectToUpdate, object oPlayer = OBJECT_INVALID) { - string sFunc = "UpdateClientObject"; - - NWNX_PushArgumentObject(oPlayer); - NWNX_PushArgumentObject(oObjectToUpdate); - NWNX_CallFunction(NWNX_Util, sFunc); + NWNXPushObject(oPlayer); + NWNXPushObject(oObjectToUpdate); + NWNXCall(NWNX_Util, "UpdateClientObject"); } int NWNX_Util_CleanResourceDirectory(string sAlias, int nResType = 0xFFFF) { - string sFunc = "CleanResourceDirectory"; - NWNX_PushArgumentInt(nResType); - NWNX_PushArgumentString(sAlias); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueInt(); + NWNXPushInt(nResType); + NWNXPushString(sAlias); + NWNXCall(NWNX_Util, "CleanResourceDirectory"); + return NWNXPopInt(); } string NWNX_Util_GetModuleTlkFile() { string sFunc = "GetModuleTlkFile"; - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueString(); + NWNXCall(NWNX_Util, sFunc); + return NWNXPopString(); +} + +int NWNX_Util_UpdateResourceDirectory(string sAlias) +{ + NWNXPushString(sAlias); + NWNXCall(NWNX_Util, "UpdateResourceDirectory"); + return NWNXPopInt(); } diff --git a/_module/nss/nwnx_visibility.nss b/_module/nss/nwnx_visibility.nss index 3ef03b1f..be70ed0c 100644 --- a/_module/nss/nwnx_visibility.nss +++ b/_module/nss/nwnx_visibility.nss @@ -2,7 +2,6 @@ /// @brief Functions to manipulate visibility of objects both globally or per observer /// @{ /// @file nwnx_visibility.nss -#include "nwnx" const string NWNX_Visibility = "NWNX_Visibility"; ///< @private @@ -57,21 +56,16 @@ void NWNX_Visibility_SetVisibilityOverride(object oPlayer, object oTarget, int n int NWNX_Visibility_GetVisibilityOverride(object oPlayer, object oTarget) { - string sFunc = "GetVisibilityOverride"; - - NWNX_PushArgumentObject(oTarget); - NWNX_PushArgumentObject(oPlayer); - NWNX_CallFunction(NWNX_Visibility, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oTarget); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Visibility, "GetVisibilityOverride"); + return NWNXPopInt(); } void NWNX_Visibility_SetVisibilityOverride(object oPlayer, object oTarget, int nOverride) { - string sFunc = "SetVisibilityOverride"; - - NWNX_PushArgumentInt(nOverride); - NWNX_PushArgumentObject(oTarget); - NWNX_PushArgumentObject(oPlayer); - NWNX_CallFunction(NWNX_Visibility, sFunc); + NWNXPushInt(nOverride); + NWNXPushObject(oTarget); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Visibility, "SetVisibilityOverride"); } diff --git a/_module/nss/nwnx_weapon.nss b/_module/nss/nwnx_weapon.nss index 8470d9ff..eced73f0 100644 --- a/_module/nss/nwnx_weapon.nss +++ b/_module/nss/nwnx_weapon.nss @@ -2,7 +2,6 @@ /// @brief Functions exposing additional weapon properties. /// @{ /// @file nwnx_weapon.nss -#include "nwnx" const string NWNX_Weapon = "NWNX_Weapon"; ///< @private @@ -138,214 +137,152 @@ void NWNX_Weapon_SetMaxRangedAttackDistanceOverride(int nBaseItem, float fMax, f void NWNX_Weapon_SetWeaponFocusFeat(int nBaseItem, int nFeat) { - string sFunc = "SetWeaponFocusFeat"; - - NWNX_PushArgumentInt(nFeat); - NWNX_PushArgumentInt(nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetWeaponFocusFeat"); } void NWNX_Weapon_SetEpicWeaponFocusFeat(int nBaseItem, int nFeat) { - string sFunc = "SetEpicWeaponFocusFeat"; - - NWNX_PushArgumentInt(nFeat); - NWNX_PushArgumentInt(nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetEpicWeaponFocusFeat"); } void NWNX_Weapon_SetGreaterWeaponFocusFeat(int nBaseItem, int nFeat) { - string sFunc = "SetGreaterWeaponFocusFeat"; - - NWNX_PushArgumentInt(nFeat); - NWNX_PushArgumentInt(nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetGreaterWeaponFocusFeat"); } void NWNX_Weapon_SetWeaponFinesseSize(int nBaseItem, int nSize) { - string sFunc = "SetWeaponFinesseSize"; - - NWNX_PushArgumentInt(nSize); - NWNX_PushArgumentInt(nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nSize); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetWeaponFinesseSize"); } int NWNX_Weapon_GetWeaponFinesseSize(int nBaseItem) { - string sFunc = "GetWeaponFinesseSize"; - - NWNX_PushArgumentInt(nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "GetWeaponFinesseSize"); + return NWNXPopInt(); } void NWNX_Weapon_SetWeaponUnarmed(int nBaseItem) { - string sFunc = "SetWeaponUnarmed"; - - NWNX_PushArgumentInt(nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetWeaponUnarmed"); } void NWNX_Weapon_SetWeaponIsMonkWeapon(int nBaseItem) { WriteTimestampedLogEntry("NWNX_Weapon_SetWeaponIsMonkWeapon() is deprecated. Please use baseitems.2da instead."); - - string sFunc = "SetWeaponIsMonkWeapon"; - - NWNX_PushArgumentInt(nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetWeaponIsMonkWeapon"); } void NWNX_Weapon_SetWeaponImprovedCriticalFeat(int nBaseItem, int nFeat) { - string sFunc = "SetWeaponImprovedCriticalFeat"; - - NWNX_PushArgumentInt(nFeat); - NWNX_PushArgumentInt(nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetWeaponImprovedCriticalFeat"); } void NWNX_Weapon_SetWeaponSpecializationFeat(int nBaseItem, int nFeat) { - string sFunc = "SetWeaponSpecializationFeat"; - - NWNX_PushArgumentInt(nFeat); - NWNX_PushArgumentInt(nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetWeaponSpecializationFeat"); } void NWNX_Weapon_SetGreaterWeaponSpecializationFeat(int nBaseItem, int nFeat) { - string sFunc = "SetGreaterWeaponSpecializationFeat"; - - NWNX_PushArgumentInt(nFeat); - NWNX_PushArgumentInt(nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetGreaterWeaponSpecializationFeat"); } void NWNX_Weapon_SetEpicWeaponSpecializationFeat(int nBaseItem, int nFeat) { - string sFunc = "SetEpicWeaponSpecializationFeat"; - - NWNX_PushArgumentInt(nFeat); - NWNX_PushArgumentInt(nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetEpicWeaponSpecializationFeat"); } void NWNX_Weapon_SetEpicWeaponOverwhelmingCriticalFeat(int nBaseItem, int nFeat) { - string sFunc = "SetEpicWeaponOverwhelmingCriticalFeat"; - - NWNX_PushArgumentInt(nFeat); - NWNX_PushArgumentInt(nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetEpicWeaponOverwhelmingCriticalFeat"); } void NWNX_Weapon_SetEpicWeaponDevastatingCriticalFeat(int nBaseItem, int nFeat) { - string sFunc = "SetEpicWeaponDevastatingCriticalFeat"; - - NWNX_PushArgumentInt(nFeat); - NWNX_PushArgumentInt(nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetEpicWeaponDevastatingCriticalFeat"); } void NWNX_Weapon_SetWeaponOfChoiceFeat(int nBaseItem, int nFeat) { - string sFunc = "SetWeaponOfChoiceFeat"; - - NWNX_PushArgumentInt(nFeat); - NWNX_PushArgumentInt(nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetWeaponOfChoiceFeat"); } void NWNX_Weapon_SetOption(int nOption, int nVal) { - string sFunc = "SetOption"; - - NWNX_PushArgumentInt(nVal); - NWNX_PushArgumentInt(nOption); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nVal); + NWNXPushInt(nOption); + NWNXCall(NWNX_Weapon, "SetOption"); } void NWNX_Weapon_SetDevastatingCriticalEventScript(string sScript) { - string sFunc = "SetDevastatingCriticalEventScript"; - - NWNX_PushArgumentString(sScript); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushString(sScript); + NWNXCall(NWNX_Weapon, "SetDevastatingCriticalEventScript"); } void NWNX_Weapon_BypassDevastatingCritical() { - string sFunc = "SetEventData"; - - NWNX_PushArgumentInt(1); - NWNX_PushArgumentInt(NWNX_WEAPON_SETDATA_DC_BYPASS); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(1); + NWNXPushInt(NWNX_WEAPON_SETDATA_DC_BYPASS); + NWNXCall(NWNX_Weapon, "SetEventData"); } struct NWNX_Weapon_DevastatingCriticalEvent_Data NWNX_Weapon_GetDevastatingCriticalEventData() { - string sFunc = "GetEventData"; struct NWNX_Weapon_DevastatingCriticalEvent_Data data; - - NWNX_PushArgumentInt(NWNX_WEAPON_GETDATA_DC); - NWNX_CallFunction(NWNX_Weapon, sFunc); - - data.oWeapon = NWNX_GetReturnValueObject(); - data.oTarget = NWNX_GetReturnValueObject(); - data.nDamage = NWNX_GetReturnValueInt(); - + NWNXPushInt(NWNX_WEAPON_GETDATA_DC); + NWNXCall(NWNX_Weapon, "GetEventData"); + data.oWeapon = NWNXPopObject(); + data.oTarget = NWNXPopObject(); + data.nDamage = NWNXPopInt(); return data; } void NWNX_Weapon_SetOneHalfStrength(object oWeapon, int nEnable, int bPersist = FALSE) { - string sFunc = "SetOneHalfStrength"; - NWNX_PushArgumentInt(bPersist); - NWNX_PushArgumentInt(nEnable); - NWNX_PushArgumentObject(oWeapon); - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(bPersist); + NWNXPushInt(nEnable); + NWNXPushObject(oWeapon); + NWNXCall(NWNX_Weapon, "SetOneHalfStrength"); } int NWNX_Weapon_GetOneHalfStrength(object oWeapon) { - string sFunc = "GetOneHalfStrength"; - NWNX_PushArgumentObject(oWeapon); - NWNX_CallFunction(NWNX_Weapon, sFunc); - - return NWNX_GetReturnValueInt(); + NWNXPushObject(oWeapon); + NWNXCall(NWNX_Weapon, "GetOneHalfStrength"); + return NWNXPopInt(); } void NWNX_Weapon_SetMaxRangedAttackDistanceOverride(int nBaseItem, float fMax, float fMaxPassive, float fPreferred) { - string sFunc = "SetMaxRangedAttackDistanceOverride"; - - NWNX_PushArgumentFloat(fPreferred); - NWNX_PushArgumentFloat(fMaxPassive); - NWNX_PushArgumentFloat(fMax); - NWNX_PushArgumentInt(nBaseItem); - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushFloat(fPreferred); + NWNXPushFloat(fMaxPassive); + NWNXPushFloat(fMax); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetMaxRangedAttackDistanceOverride"); } diff --git a/_module/nss/nwnx_webhook.nss b/_module/nss/nwnx_webhook.nss index f1f2e82f..2d7e7ed0 100644 --- a/_module/nss/nwnx_webhook.nss +++ b/_module/nss/nwnx_webhook.nss @@ -2,7 +2,6 @@ /// @brief Send messages to external entities through web hooks. /// @{ /// @file nwnx_webhook.nss -#include "nwnx" const string NWNX_WebHook = "NWNX_WebHook"; ///< @private @@ -28,13 +27,12 @@ void NWNX_WebHook_ResendWebHookHTTPS(string host, string path, string sMessage, void NWNX_WebHook_SendWebHookHTTPS(string host, string path, string message, string username = "", int mrkdwn = 1) { - string sFunc = "SendWebHookHTTPS"; - NWNX_PushArgumentInt(mrkdwn); - NWNX_PushArgumentString(username); - NWNX_PushArgumentString(message); - NWNX_PushArgumentString(path); - NWNX_PushArgumentString(host); - NWNX_CallFunction(NWNX_WebHook, sFunc); + NWNXPushInt(mrkdwn); + NWNXPushString(username); + NWNXPushString(message); + NWNXPushString(path); + NWNXPushString(host); + NWNXCall(NWNX_WebHook, "SendWebHookHTTPS"); } void NWNX_WebHook_ResendWebHookHTTPS(string host, string path, string sMessage, float delay = 0.0f)