簡単言語_NO454toNO463

NO_461

ラベル定義でっちあげてみました

だんだん見にくくなってます

めんどくさくてユニークラベル使ってないw

#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

x_label_init 1,"a",1 ;0
x_label_init 0,"aa1",10 ;1
x_label_init 0,"ab1",12 ;2
x_label_init 0,"ax1a",14 ;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
*sw_begin
	await 1
switch my_pc
case 1:my_pc++:		cr_com=en_cls0:goto *com_sw
case 2:my_pc++:		cr_com=en_objsize:cp1=120:cp2=24:goto *com_sw
case 3:my_pc++:		cr_com=en_get_my_label:cp1="aa1":cp2=1:goto *com_sw
case 4:my_pc++:		cr_com=en_button_A:cp1="X足す1":bt_pc_1=my_label:goto *com_sw
case 5:my_pc++:		cr_com=en_get_my_label:cp1="ab1":cp2=2:goto *com_sw
case 6:my_pc++:		cr_com=en_button_B:cp1="X引く1":bt_pc_2=my_label:goto *com_sw
case 7:my_pc++:		cr_com=en_pos:cp1=150:cp2=0:goto *com_sw
case 8:my_pc++:		cr_com=en_mes:cp1="ボタンを押してください":goto *com_sw
case 9:my_pc++:		cr_com=en_stop:goto *com_sw

case 10:my_pc++:	cr_com=en_get_my_label:cp1="ax1a":cp2=3:goto *com_sw	
case 11:my_pc++:	x+=1:my_pc=my_label:goto *com_sw	
case 12:my_pc++:	cr_com=en_get_my_label:cp1="ax1a":cp2=3:goto *com_sw	
case 13:my_pc++:	x-=1:my_pc=my_label:goto *sw_begin
 //*ax
case 14:my_pc++:	cr_com=en_cls0:goto *com_sw
case 15:my_pc++:	cr_com=en_objsize:cp1=120:cp2=24:goto *com_sw
case 16:my_pc++:	cr_com=en_get_my_label:cp1="a":cp2=0:goto *com_sw
case 17:my_pc++:	cr_com=en_button_A:cp1="NEXT":bt_pc_1=my_label:goto *com_sw
case 18:my_pc++:	cr_com=en_pos:cp1=150:cp2=0:goto *com_sw
case 19:my_pc++:	cr_com=en_mes:cp1="Xの値は"+x+"です":goto *com_sw
case 20: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
;	mes cp1
;	mes cp2
	my_pc=bt_pc_1
	goto *sw_begin
*bt_hoge_2
	my_pc=bt_pc_2
	goto *sw_begin
*sw_end
	stop