#author("2018-01-05T14:55:01+09:00","","")
[[簡単言語]]
**NO_592_SUBR VAR [#pd7f3ac2]
変数manage書きましたよー~
ちゃんとID代入して~
繰り返しで検索するようにしましたw~
しかし、現在、二つくらい改善案あります~
・配列にマイナスのインデックスを渡すバグ修正~
使う人のバグではあるがw~
 #module mod_variable v_i_name,v_i_ID,v_i_v_value
 #modinit str p_name,int p_ID,int p_v_value
 	v_i_name=p_name
 	v_i_ID=p_ID
 	v_i_v_value=p_v_value
 	return
 #modcfunc local get_i_name
 	return v_i_name
 #modcfunc local get_i_ID
 	return v_i_ID
 #modcfunc local get_i_v_value
 	return v_i_v_value
 #modfunc local set_i_v_value var _p4set_value
 	v_i_v_value = _p4set_value
 	return
 #modfunc local dump
 mes "dump_A"+v_i_v_value
 mes "dump_B"+v_i_ID
 return
 #global
 #module variable_manage
 #deffunc local set_ID_sw_zero
 	fv_ID=0
 	return
 #deffunc local x_var_init str _p_name,int _p_ID,int _p_v_value
 	newmod o_var,mod_variable,_p_name,_p_ID,_p_v_value
 ;	mes get_i_ID@mod_variable(o_var.fv_ID)
 	fv_ID++
 	return
 #defcfunc local var_search_from_ID int _3p_ID,local loc_i,local loc_get_index
 	for loc_i,0,fv_ID,1
 		loc_get_index=get_i_ID@mod_variable(o_var.loc_i)
 ;		mes "ID"+get_i_ID@mod_variable(o_var.loc_i)
 		if loc_get_index==_3p_ID:return loc_i
 	next
 	dialog "don't find from varID"+_3p_ID,1
 	return -1
 #defcfunc local is_hit_after_var_search str _4p_name,int _4p_i
 	if _4p_i==-1:return -1
 	rr_name=get_i_name@mod_variable(o_var._4p_i)
 	if rr_name==_4p_name:return 1
 	dialog "don't hit from varID"+_4p_i,1
 ;	dialog ""+rr_name,1
 	return -1
 #deffunc local set_x_var_value str _p3c_name,int _p3c_ID,var _p3c_4set,local loc_sch_b,local loc_hit_b
 	loc_sch_b=var_search_from_ID@variable_manage(_p3c_ID)
 	loc_hit_b=is_hit_after_var_search@variable_manage(_p3c_name,loc_sch_b)
 	if (loc_sch_b!=-1){
 		if (loc_hit_b!=-1){
 			pre_set_x_var_value@variable_manage _p3c_name,loc_sch_b,_p3c_4set
 		}
 	}
 	return -1
 #defcfunc local pre_get_x_var_value str __p_name,int __p_ID,local r_name
 	r_name=get_i_name@mod_variable(o_var.__p_ID)
 	if r_name!=__p_name:return -1
 	return get_i_v_value@mod_variable(o_var.__p_ID)
 #deffunc local pre_set_x_var_value str __p_name,int __p_ID,var __p4set,local r_name
 	r_name=get_i_name@mod_variable(o_var.__p_ID)
 	logmes ""+__p4set
 	logmes ""+r_name
 	if r_name!=__p_name:return -1
 	set_i_v_value@mod_variable o_var.__p_ID,__p4set
 	return
 #defcfunc local get_x_var_value str __p_name,int _p3b_ID,local loc_sch,local loc_hit
 	loc_sch=var_search_from_ID@variable_manage(_p3b_ID)
 	loc_hit=is_hit_after_var_search@variable_manage(__p_name,loc_sch)
 	if (loc_sch!=-1){
 		if (loc_hit!=-1){
 			return pre_get_x_var_value@variable_manage(__p_name,loc_sch)
 		}
 	}
 	return -1
 #deffunc local dump
 	dump@mod_variable o_var.0
 	dump@mod_variable o_var.1
 return
 #global
 set_ID_sw_zero@variable_manage
 x_var_init@variable_manage "x",1,2
 x_var_init@variable_manage "y",6,4
 dump@variable_manage
 ;sch1=var_search_from_ID@variable_manage(1)
 ;mes "search "+sch1
 ;sch2=var_search_from_ID@variable_manage(6)
 ;mes "search "+sch2
 ;sch3=var_search_from_ID@variable_manage(3)
 ;mes "search "+sch3
 ;mes "hit"+is_hit_after_var_search@variable_manage("x",sch1)
 ;mes "hit"+is_hit_after_var_search@variable_manage("xx",sch1)
 ;mes "hit"+is_hit_after_var_search@variable_manage("y",sch2)
 ;mes "hit"+is_hit_after_var_search@variable_manage("y",sch3)
 
 *begin
 cls 0
 button "add",*l_add
 stop
 
 *l_add
 	cls 0
 	
 	v1=0
 	v2=0
 	v1=get_x_var_value@variable_manage("x",1)
 	v1=get_x_var_value@variable_manage("x",10);error
 	v2=get_x_var_value@variable_manage("y",6)
 	dump@variable_manage
 ;	sch1=var_search_from_ID@variable_manage(1)
 ;	mes "search "+sch1
 ;	hit1=is_hit_after_var_search@variable_manage("x",sch1)
 ;	mes "hit"+hit1
 ;	if (sch1!=-1)&&(hit1!=-1){
 ;		v1=get_x_var_value@variable_manage("x",sch1)
 ;	}
 ;	sch2=var_search_from_ID@variable_manage(6)
 ;	mes "search "+sch2
 ;	hit2=is_hit_after_var_search@variable_manage("y",sch2)
 ;	mes "hit"+hit2
 ;	if (sch2!=-1)&&(hit2!=-1){
 ;		v2=pre_get_x_var_value@variable_manage("y",sch2)
 ;	}
 	mes v1
 	mes v2
 	v1=v1+1
 	v2=v2+2
 	set_x_var_value@variable_manage "x",1,v1
 	set_x_var_value@variable_manage "y",6,v2
 	set_x_var_value@variable_manage "z",11,v2;error
 	mes v1
 	mes v2
 	dump@variable_manage
 	button "NEXT",*l_add
 	stop
 ;	sch1=var_search_from_ID@variable_manage(1)
 ;	mes "search "+sch1
 ;	hit1=is_hit_after_var_search@variable_manage("x",sch1)
 ;	mes "hit"+hit1
 ;	if (sch1!=-1)&&(hit1!=-1){
 ;;		v1=get_x_var_value@variable_manage("x",hit1)
 ;		pre_set_x_var_value@variable_manage "x",sch1,v1
 ;	}
 ;;	set_x_var_value@variable_manage "x",1,v1
 ;	sch2=var_search_from_ID@variable_manage(6)
 ;	mes "search "+sch2
 ;	hit2=is_hit_after_var_search@variable_manage("y",sch2)
 ;	mes "hit"+hit2
 ;	if (sch2!=-1)&&(hit2!=-1){
 ;;		v2=get_x_var_value@variable_manage("y",hit2)
 ;		pre_set_x_var_value@variable_manage "y",sch2,v2
 ;	}
 ;;	set_x_var_value@variable_manage "y",6,v2
 ;	mes v1
 ;	mes v2
 ;	dump@variable_manage
 ;	button "NEXT",*l_add
 ;	stop