#define global push_on_button_set_A %tbt_set_unil_A %i0
#define global get_on_button_set_A %tbt_set_unil_A *%p
#define global pop_on_button_set_A %tbt_set_unil_A *%o
#define global push_on_button_set_B %tbt_set_unil_B %i0
#define global get_on_button_set_B %tbt_set_unil_B *%p
#define global pop_on_button_set_B %tbt_set_unil_B *%o

//	特殊マクロについて 詳しくは、HSP Document Libraryの#defineのページにて

//	buttonを押すと変数に値を代入してからjumpするマクロ
//	%1:buttonに表示する文字列
//	%2:buttonを押すと代入する対象
//	%3:代入する値
//	%4:buttonを押すと代入をしてからjumpするラベル

#define global ctype button_set(%1,%2,%3,%4):push_on_button_set_A:push_on_button_set_B:\
button %1,get_on_button_set_A:goto get_on_button_set_B:pop_on_button_set_A:%2=%3:goto %4:pop_on_button_set_B

//	ユニークlabelを使わない時はこんなかんじ
//	primitive:原始

#define global ctype primitive_button_set(%1,%2,%3,%4,%5):\
button %2,*%1_next_A:\
goto *%1_next_B:\
*%1_next_A:%3=%4:goto %5:\
*%1_next_B

/*	TEST
button_set("A",x,"Aだよ",*lmes)
button_set("B",x,"Bだよ",*lmes)
button_set("C",x,"Cだよ",*lmes)
button_set("D",x,"Dだよ",*lmes)

primitive_button_set(tmp_AA,"AA",x,"AAだよ",*lmes)
primitive_button_set(tmp_BB,"BB",x,"BBだよ",*lmes)
primitive_button_set(tmp_CC,"CC",x,"CCだよ",*lmes)
primitive_button_set(tmp_DD,"DD",x,"DDだよ",*lmes)
stop
*lmes
mes x
stop*/