軽く改造
#module mod_label i_name,i_ID,i_l_value #modinit str p_name,int p_ID,int p_l_value i_name=p_name i_ID=p_ID i_l_value=p_l_value return #modcfunc get_i_name return i_name #modcfunc get_i_ID return i_ID #modcfunc get_i_l_value return i_l_value #deffunc x_label_init int sw_new_p,str _p_name,int _p_l_value ; global fv_ID if sw_new_p==1{ fv_ID=0 } newmod o_label,mod_label,_p_name,fv_ID,_p_l_value fv_ID++ return #defcfunc get_x_label_l_value str __p_name,int __p_ID,local r_name r_name=get_i_name(o_label.__p_ID) if r_name!=__p_name:return -1 return get_i_l_value(o_label.__p_ID) #global #define ctype l_avoid(%1) goto *l_a_%1 #define ctype catch_l_avoid(%1)*l_a_%1 #define ctype l_def(%1)*l_def_%1 #define ctype l_def_go(%1) *l_def_%1 ;goto *l_def_A goto l_def(A) l_def(E): #define ctype before_l(%1):l_avoid(%1):l_def(%1) #define ctype after_l(%1,%2)goto l_def(%1):catch_l_avoid(%2) ;case 1:my_pc++: before_l(A):x_label_init 1,"a",1:after_l(B,A)// label ;*l_def_B ;x_label_init 1,"a",1 ;0 ;x_label_init 0,"aa1",11 ;1 ;x_label_init 0,"ab1",13 ;2 ;x_label_init 0,"ax1a",15 ;3 dim one_code,256 x=0 f_stop=0 // ボタンによって選択される選択肢のID selected_btnext="a" #enum nop=0 #enum en_get_my_label #enum en_button_A #enum en_button_B #enum en_cls0 #enum en_objsize #enum en_pos #enum en_mes #enum en_stop my_pc=1 my_pc_B=1 *sw_begin await 1 switch my_pc case 1:my_pc++: before_l(A):x_label_init 1,"a",1:after_l(B,A)// label case 2:my_pc++: cr_com=en_cls0:goto *com_sw case 3: if my_pc_B==1{my_pc_B++:cp1=120:goto *sw_begin } if my_pc_B==2{my_pc_B++:cp2=24: goto *sw_begin } if my_pc_B==3{cr_com=en_objsize: my_pc_B=1:my_pc++:goto *com_sw } case 4: if my_pc_B==1{my_pc_B++:cp1="aa1":goto *sw_begin } if my_pc_B==2{my_pc_B++:cp2=1: goto *sw_begin } if my_pc_B==3{cr_com=en_get_my_label: my_pc_B=1:my_pc++:goto *com_sw } case 5: if my_pc_B==1{my_pc_B++:cp1="X足す1":goto *sw_begin } if my_pc_B==2{my_pc_B++:bt_pc_1=my_label: goto *sw_begin } if my_pc_B==3{cr_com=en_button_A my_pc_B=1:my_pc++:goto *com_sw } case 6: if my_pc_B==1{my_pc_B++:cp1="ab1":goto *sw_begin } if my_pc_B==2{my_pc_B++:cp2=2: goto *sw_begin } if my_pc_B==3{cr_com=en_get_my_label: my_pc_B=1:my_pc++:goto *com_sw } case 7: if my_pc_B==1{my_pc_B++:cp1="X引く1":goto *sw_begin } if my_pc_B==2{my_pc_B++:bt_pc_2=my_label: goto *sw_begin } if my_pc_B==3{cr_com=en_button_B my_pc_B=1:my_pc++:goto *com_sw } case 8: if my_pc_B==1{my_pc_B++:cp1=150:goto *sw_begin } if my_pc_B==2{my_pc_B++:cp2=0: goto *sw_begin } if my_pc_B==3{cr_com=en_pos: my_pc_B=1:my_pc++:goto *com_sw } case 9: if my_pc_B==1{my_pc_B++:cp1="ボタンを押してください":goto *sw_begin } if my_pc_B==2{cr_com=en_mes: my_pc_B=1:my_pc++:goto *com_sw } case 10:my_pc++: cr_com=en_stop:goto *com_sw case 11:my_pc++: before_l(B):x_label_init 0,"aa1",11:after_l(C,B)// label case 12: if my_pc_B==1{my_pc_B++:cp1="ax1a":goto *sw_begin } if my_pc_B==2{my_pc_B++:cp2=3: goto *sw_begin } if my_pc_B==3{cr_com=en_get_my_label: my_pc_B=1:my_pc++:goto *com_sw } case 13:my_pc++: x+=1:my_pc=my_label:goto *com_sw case 14:my_pc++: before_l(C):x_label_init 0,"ab1",14:after_l(D,C)// label case 15: if my_pc_B==1{my_pc_B++:cp1="ax1a":goto *sw_begin } if my_pc_B==2{my_pc_B++:cp2=3: goto *sw_begin } if my_pc_B==3{cr_com=en_get_my_label: my_pc_B=1:my_pc++:goto *com_sw } case 16:my_pc++: x-=1:my_pc=my_label:goto *sw_begin //*ax case 17:my_pc++: before_l(D):x_label_init 0,"ax1a",17:after_l(E,D)// label case 18:my_pc++: cr_com=en_cls0:goto *com_sw case 19: if my_pc_B==1{my_pc_B++:cp1=120:goto *sw_begin } if my_pc_B==2{my_pc_B++:cp2=24: goto *sw_begin } if my_pc_B==3{cr_com=en_objsize: my_pc_B=1:my_pc++:goto *com_sw } case 20: if my_pc_B==1{my_pc_B++:cp1="a":goto *sw_begin } if my_pc_B==2{my_pc_B++:cp2=0: goto *sw_begin } if my_pc_B==3{cr_com=en_get_my_label: my_pc_B=1:my_pc++:goto *com_sw } case 21: if my_pc_B==1{my_pc_B++:cp1="NEXT":goto *sw_begin } if my_pc_B==2{my_pc_B++:bt_pc_1=my_label: goto *sw_begin } if my_pc_B==3{cr_com=en_button_A my_pc_B=1:my_pc++:goto *com_sw } ;case 20:my_pc++: cr_com=en_button_A:cp1="NEXT":bt_pc_1=1:goto *com_sw case 22: if my_pc_B==1{my_pc_B++:cp1=150:goto *sw_begin } if my_pc_B==2{my_pc_B++:cp2=0: goto *sw_begin } if my_pc_B==3{cr_com=en_pos: my_pc_B=1:my_pc++:goto *com_sw } case 23: if my_pc_B==1{my_pc_B++:cp1="Xの値は"+x+"です":goto *sw_begin } if my_pc_B==2{cr_com=en_mes: my_pc_B=1:my_pc++:goto *com_sw } case 24:my_pc++: cr_com=en_stop:goto *com_sw swend stop *com_sw switch cr_com case en_get_my_label: my_label=get_x_label_l_value(cp1,cp2):swbreak case en_button_A: button cp1,*bt_hoge_1:swbreak case en_button_B: button cp1,*bt_hoge_2:swbreak case en_cls0: cls 0:swbreak case en_objsize:objsize cp1,cp2:swbreak case en_pos: pos cp1,cp2:swbreak case en_mes: mes ""+cp1:swbreak case en_stop: f_stop=1::swbreak swend if f_stop==1:f_stop=0:stop goto *sw_begin *get_my_label my_label=get_x_label_l_value(cp1,cp2) ; my_label=get_x_label_l_value("a",0) goto *sw_begin *bt_hoge_1 ; mes my_pc my_pc=bt_pc_1 goto *sw_begin *bt_hoge_2 my_pc=bt_pc_2 goto *sw_begin *sw_end stop