;#USE-FONT	ipam
	[loadplugin fn="ipam"]	; この行は触らないで下さい
	[loadplugin fn="SourceHanSansCN_Normal"]	; この行は触らないで下さい
;*********************************************************
;	定数
;*********************************************************
; 各種効果音を指定
[let name="sysse_ok1" text="BurstB_11"]
[let name="sysse_ok2" text="BellA_16"]
[let name="sysse_ok2_long" text="BellB_11"]
[let name="sysse_cancel" text="bell05"]
[let name="sysse_choice" text="wood04"]

; メッセージウインドウにボタンを配置するか（システムメニュー）
[let name="useSysMenu" text=true]

; 立ち絵配置位置定数
;	[lay pos=&pos.l	等として使用。
;	組み込みで「c」という指定が出来る。例：pos=c、pos="c"
;	これを指定すると画面中央。（pos、leftを省略するとpos=c扱い）
[let name="pos.l" text="140"]
[let name="pos.c" text="&const.an.xmlConfig.window.width /2"]
[let name="pos.r" text="&const.an.xmlConfig.window.width -pos.l"]
[let name="pos.lc" text="&(pos.c + pos.l) /2"]
[let name="pos.rc" text="&(pos.r + pos.c) /2"]

; 「桜の樹の下には」特有の立ち絵配置位置定数
[let name="pos.vleft_disp_x" text="&40 + 280"]
[let name="pos.vleft_disp_w" text="&const.an.xmlConfig.window.width - pos.vleft_disp_x"]

[let name="pos.l1c" text="&pos.vleft_disp_x + pos.vleft_disp_w * (1/2)"]

[let name="pos.l2l" text="&pos.vleft_disp_x + pos.vleft_disp_w * (1/4)"]
[let name="pos.l2r" text="&pos.vleft_disp_x + pos.vleft_disp_w * (3/4)"]

; 表示されるレイヤ（セーブ・スナップショットなどの対象）
[let name="dsp_lays_grp" text="base,0,1,2"]	; 画像
[let name="dsp_lays" text="&dsp_lays_grp +',mes'"]	; 文字
[let name="dsp_lays" text="&dsp_lays_grp +',mes,mes_sysmenu'" cond=useSysMenu]

;*********************************************************
; マクロ タイトル開始共通処理（main.anで呼ぶ）
;*********************************************************
[macro name=sys_title_start]
	[let name="lastVoice" text=""]
	[let name="isGameState" text=false]
	[let name="sys:doResume" text=false]
	[let name="save:an.doRecLog" text=false]

	[txt_lay_fullscreen b_alpha=0 onend=leave no_sysmenu_draw=true]
	[er]	; ページ両面の文字消去＆改ページ
		; （改ページしないと履歴がページからあふれる）
	[set_focus to=null]
	[fadeoutse buf="SE" time=500]
	[sys_menu visible=false]
[endmacro]

;*********************************************************
; マクロ シナリオ開始時共通処理（ロード時にもコール）
;*********************************************************
[macro name=sys_scenario_start]
	[let name="lastVoice" text=""]
	[let name="isGameState" text=true]
	[let name="save:an.doRecLog" text=true]

	[fadeoutbgm time=300]
	[fadeoutse buf="SE" time=500]

	; テキストレイヤ全画面設定
	[txt_lay_fullscreen b_alpha=0 no_sysmenu_draw=true]
	[lay layer="mes" page=back layout='fontFamily="ipam" fontLookup="embeddedCFF"']
	[grp bg="black" sys_menu=false b_alpha=0]

	[record_place layer=&dsp_lays]
		[sys_resume_save cond="! sys:doResume && ! no_resume_save"]
		[let name="sys:doResume" text=true]

[jump label=*game_inited cond="const.game.inited"]
[let name="const.game.inited" text=true]

	[call fn=extG_*]	; extG_*.anというスクリプトを全部コールする
	[call fn="_hidetext"]
	[call fn="_submenu"]
	[call fn="_saveload"]
	[call fn="_history"]
	[call fn="_config"]
	[call fn="_album"]

	[event global=true call=true key=a label=*toggle_auto_read]
	[event global=true call=true key=f label=*toggle_skip]

*game_inited
	[lay layer="_syslay.mes" page=fore visible=false]
	[lay layer="_syslay.mes" page=back visible=false]
	[clear_lay layer="_syslay.mes" page=both]
	[lay layer="_syslay.bg" page=fore visible=false]
	[lay layer="_syslay.bg" page=back visible=false]
	[clear_lay layer="_syslay.bg" page=both]

	[enable_event enabled=true]
	[set_focus to=null]
[endmacro]

;*********************************************************
; マクロ レジューム処理
[macro name=sys_resume_load]
	[jump fn=_saveload label=*do_load_resume cond=sys:doResume]
[endmacro]

;*********************************************************
; マクロ レジューム退避処理
[macro name=sys_resume_save]
	[call fn=_saveload label=*do_save_resume]
[endmacro]


;*********************************************************
; マクロ システムメニュー描画処理
[macro name=sysmenu_draw]
	[return cond=!useSysMenu]
	[return cond="mp:no_sysmenu_draw != null"]

	[let name=l text=%l|40]
	[let name=w text=%w|292]
	[let name=sysmenu_left text=&l-30]
	[let name=sysmenu_left2 text=&sysmenu_left+w+13]

	[sys_menu visible=false]
	[clear_lay layer="mes_sysmenu" page=both]
	[lay layer="mes_sysmenu" page=back]
	[if exp="mp:bp=='rl'"]
		[button layer="mes_sysmenu" page=back pic="Mnu_btnQSave" rotation=-90 left=&sysmenu_left2 top=600 global=true event_at_down=true fn="_saveload" label=*quick_save call=true hint="クイックセーブ" enterse=&sysse_choice]
		[button layer="mes_sysmenu" page=back pic="Mnu_btnQLoad" rotation=-90 left=&sysmenu_left2 top=720 global=true event_at_down=true fn="_saveload" label=*quick_load call=true hint="クイックロード" enterse=&sysse_choice]

		[button layer="mes_sysmenu" page=back pic="Mnu_btnTitle" rotation=-90 left=&sysmenu_left top=220 global=true event_at_down=true fn="sub" label=*title_sys call=true hint="タイトルへ" enterse=&sysse_choice]
			; どの本文スクリプトから呼ばれるか不明なので、
			; 同一スクリプトへのコールだがfn属性を省略してはいけない

		[button layer="mes_sysmenu" page=back pic="Mnu_btnSave" rotation=-90 left=&sysmenu_left top=320 global=true event_at_down=true fn="_saveload" label=*rclick_save call=true hint="セーブ" enterse=&sysse_choice]
		[button layer="mes_sysmenu" page=back pic="Mnu_btnLoad" rotation=-90 left=&sysmenu_left top=420 global=true event_at_down=true fn="_saveload" label=*rclick_load call=true hint="ロード" enterse=&sysse_choice]
		[button layer="mes_sysmenu" page=back pic="Mnu_btnHideText" rotation=-90 left=&sysmenu_left top=520 global=true event_at_down=true fn=_hidetext label=*main call=true hint="文字非表示" enterse=&sysse_choice]
		[button layer="mes_sysmenu" page=back pic="Mnu_btnHistory" rotation=-90 left=&sysmenu_left top=620 global=true event_at_down=true fn=_history label=*show_history call=true hint="履歴を表示" enterse=&sysse_choice]
		[button layer="mes_sysmenu" page=back pic="Mnu_btnConfig" rotation=-90 left=&sysmenu_left top=720 global=true event_at_down=true fn=_config label=*keycall_config call=true hint="ゲーム設定" enterse=&sysse_choice join=true]
			; 最後の[button]にjoin=trueを入れるのがポイント
	[else]
		[button layer="mes_sysmenu" page=back pic="Mnu_btnQSave" left=905 top=430 global=true event_at_down=true fn="_saveload" label=*quick_save call=true hint="快速存档" enterse=&sysse_choice]
		[button layer="mes_sysmenu" page=back pic="Mnu_btnQLoad" left=905 top=470 global=true event_at_down=true fn="_saveload" label=*quick_load call=true hint="快速读取" enterse=&sysse_choice]

		[button layer="mes_sysmenu" page=back pic="Mnu_btnTitle" left=905 top=510 global=true event_at_down=true fn="sub" label=*title_sys call=true hint="回到标题" enterse=&sysse_choice]
			; どの本文スクリプトから呼ばれるか不明なので、
			; 同一スクリプトへのコールだがfn属性を省略してはいけない

		[button layer="mes_sysmenu" page=back pic="Mnu_btnSave" left=905 top=550 global=true event_at_down=true fn="_saveload" label=*rclick_save call=true hint="保存" enterse=&sysse_choice]
		[button layer="mes_sysmenu" page=back pic="Mnu_btnLoad" left=905 top=590 global=true event_at_down=true fn="_saveload" label=*rclick_load call=true hint="读取" enterse=&sysse_choice]
		[button layer="mes_sysmenu" page=back pic="Mnu_btnHideText" left=905 top=630 global=true event_at_down=true fn=_hidetext label=*main call=true hint="隐藏文本窗口" enterse=&sysse_choice]
		[button layer="mes_sysmenu" page=back pic="Mnu_btnHistory" left=905 top=670 global=true event_at_down=true fn=_history label=*show_history call=true hint="显示文本历史" enterse=&sysse_choice]
		[button layer="mes_sysmenu" page=back pic="Mnu_btnConfig" left=905 top=710 global=true event_at_down=true fn=_config label=*keycall_config call=true hint="游戏设置" enterse=&sysse_choice join=true]
			; 最後の[button]にjoin=trueを入れるのがポイント
	[endif]
	[trans layer="mes_sysmenu" time=0]
	[wt]	; 裏から表へコピー（save対策）
[endmacro]

;-----------------------------
; マクロ システムメニュー表示切り替え
[macro name=sys_menu]
	[lay layer="mes_sysmenu" visible=%visible|true cond=useSysMenu]
[endmacro]

[add_lay layer="mes_sysmenu" class=txt cond=useSysMenu]
[let name=sysmenu_left text=NaN]

;*********************************************************
; マクロ システム用レイヤ初期化
[macro name=sys_syslay.init]
	[jump label=*_syslay.inited cond="const._syslay.inited"]
	[add_lay layer="_syslay.bg" class=grp]
	[add_lay layer="_syslay.0" class=grp]
	[add_lay layer="_syslay.1" class=grp]
	[add_lay layer="_syslay.2" class=grp]
	[add_lay layer="_syslay.mes" class=txt]
	[let name="const._syslay.inited" text=true]
*_syslay.inited
[endmacro]

;*********************************************************
; マクロ テキストレイヤ縦書き左設定
[macro name="txt_lay_v_left"]
	[let name="l" text=%l|40]
	[let name="w" text=%w|292]
	&pl = l +26
	&pt = 66
	&pr = const.an.xmlConfig.window.width -(l +w) +26
	&pb = 66
	[let name="fcol" text=%fcol|0xFFFFFF]
	; こちらの素材をお借りしました。
	; びたちー素材館　メッセージボックス・メッセージウィンドウ・フレーム　フリー素材 http://www.vita-chi.net/message.htm
	[lay * layer=%layer|"mes" page=%page|back visible=%visible|true b_left=&l b_top=0 b_pic=%b_pic|wafuu1 b_alpha=%b_alpha|&sys:TextLayer.Back.Alpha r_color=&fcol r_size=12 max_col=25 bura_col=2 max_row=%max_row|7 onsplit="enter" layout=#&'lineHeight="36" justificationRule="space" columnGap="0" paddingLeft="$pl" paddingTop="$pt" paddingRight="$pr" paddingBottom="$pb" verticalAlign="inherit" blockProgression="rl" lineBreak="explicit" fontLookup="embeddedCFF" renderingMode="cff" fontSize="24" locale="ja" kerning="off" trackingRight="0" color="$fcol" whiteSpaceCollapse="preserve"'#]
; 以下はテキストレイヤに画像を使わない版
;	[lay * layer=%layer|"mes" page=%page|back visible=%visible|true b_left=&l b_top=0 b_width=&w b_height=&const.an.xmlConfig.window.height b_color=%b_color|0xffffff b_alpha=%b_alpha|&sys:TextLayer.Back.Alpha r_color=&fcol r_size=12 max_col=25 bura_col=2 max_row=%max_row|7 onsplit="enter" layout=#&'lineHeight="36" justificationRule="space" columnGap="0" paddingLeft="$pl" paddingTop="$pt" paddingRight="$pr" paddingBottom="$pb" verticalAlign="inherit" blockProgression="rl" lineBreak="explicit" fontLookup="embeddedCFF" renderingMode="cff" fontSize="24" locale="ja" kerning="off" trackingRight="0" color="$fcol" whiteSpaceCollapse="preserve"'#]

	[sysmenu_draw * bp=rl]
[endmacro]

;*********************************************************
; マクロ テキストレイヤ縦書き中設定
[macro name="txt_lay_v_center"]
	[txt_lay_v_left * l=%l|366]
[endmacro]

;*********************************************************
; マクロ テキストレイヤ縦書きWide中設定
[macro name="txt_lay_v_center_wide"]
	[txt_lay_v_center * l=%l|294 w=436 max_row=11 b_pic=wafuu1w]
; 以下はテキストレイヤに画像を使わない版
;	[txt_lay_v_center * l=%l|294 w=436 max_row=11]
[endmacro]

;*********************************************************
; マクロ テキストレイヤ全画面設定
[macro name="txt_lay_fullscreen"]
	[let name="t" text=%t|40]
	[let name="h" text=%h|"&const.an.xmlConfig.window.height -40*2"]
;	&pl = 70
	&pl = 70-24
	&pt = t +30
	&pr = 70
	&pb = 70
	[let name="fcol" text=%fcol|0xFFFFFF]
	[lay * layer=%layer|"mes" page=%page|back visible=%visible|true b_left=0 b_top=%t b_pic=%b_pic|hakkou1 b_alpha=%b_alpha|&sys:TextLayer.Back.Alpha r_color=&fcol r_size=12 max_col=35 bura_col=2 max_row=%max_row|18 onsplit="enter" layout=#&'lineHeight="36" justificationRule="space" columnGap="0" paddingLeft="$pl" paddingTop="$pt" paddingRight="$pr" paddingBottom="$pb" verticalAlign="inherit" blockProgression="tb" lineBreak="explicit" fontLookup="embeddedCFF" renderingMode="cff" fontSize="24" locale="ja" kerning="off" trackingRight="0" color="$fcol" whiteSpaceCollapse="preserve"'#]
; 以下はテキストレイヤに画像を使わない版
;	[lay * layer=%layer|"mes" page=%page|back visible=%visible|true b_left=40 b_top=&t b_width="&const.an.xmlConfig.window.width -40*2" b_height=&h b_color=%b_color|0x000000 b_alpha=%b_alpha|&sys:TextLayer.Back.Alpha r_color=&fcol r_size=12 max_col=35 bura_col=2 max_row=%max_row|18 onsplit="enter" layout=#&'lineHeight="36" justificationRule="space" columnGap="0" paddingLeft="$pl" paddingTop="$pt" paddingRight="$pr" paddingBottom="$pb" verticalAlign="inherit" blockProgression="tb" lineBreak="explicit" fontLookup="embeddedCFF" renderingMode="cff" fontSize="24" locale="ja" kerning="off" trackingRight="0" color="$fcol" whiteSpaceCollapse="preserve"'#]

	[sysmenu_draw * bp=tb]
[endmacro]

;*********************************************************
; マクロ テキストレイヤ横書きWide下設定
[macro name="txt_lay_h_bottom_wide"]
;	[txt_lay_fullscreen * t=%t|472 h=266 max_row=6]
	[txt_lay_fullscreen * t=%t|540 h=228 max_row=6]
[endmacro]

;*********************************************************
; マクロ ＢＧＭ切り替え
[macro name="bgm"]
	[stopbgm cond="mp:time == null || an.skip.enabled"]
	
	[let name=t text=%time|500]	;省略した時の初期値
	[stopse buf=BGM_FO]
	[xchgbuf buf=BGM buf2=BGM_FO]

	[if exp="mp:time == null || an.skip.enabled"]
		[playbgm *]
	[else]
		[fadeoutse buf=BGM_FO time=&t]
		[playbgm * volume=0]
		[fadebgm * volume=&sys:const.an.sound.BGM.volume time=&t]
	[endif]
[endmacro]

;*********************************************************
; マクロ 音声履歴開始
[macro name="h_voice"]
	[rec_ch text=#&'｜　《link｜{"fn":"sub","label":"*h_voice","call":"true","global":"true","arg":"$lastVoice"}》'# r=false]
[endmacro]

;*********************************************************
; マクロ 音声履歴終了
[macro name="end_h_voice"]
	[rec_ch text="｜　《endlink｜》" r=false]
[endmacro]

;*********************************************************
; マクロ 改ページ
[macro name="plc"]
	[ws buf="音声" canskip=true cond="an.auto.enabled && !an.skip.enabled"]
	[p visible=%visible|true]
	[er]
	[record_place layer=&dsp_lays]
		[sys_resume_save]
	[let name="lastVoice" text=""]
	[fadeoutse buf="SE" time=%time|500 cond="mp:no_se_stop === null && !an.skip.enabled"]
	[stopse buf="SE" cond="an.skip.enabled"]
	[stopse buf=%buf|音声 cond="mp:no_voice_stop === null || an.skip.enabled"]
	&save:page = save:page+1 = int
[endmacro]

;*********************************************************
; マクロ 選択肢直後にすべき処理
[macro name="after_choice"]
	[pop_stack]
	[record_place layer=&dsp_lays]
		[sys_resume_save]
[endmacro]

;*********************************************************
; マクロ 履歴画面で選択位置から再開する
[let name="const.h_save.max_count" text=50]
[macro name="h_save"]
	[let name="h_save_idx" text="0" cond="h_save_idx == null"]
	
	[let name="place" text="&'h_'+ h_save_idx"]
	[call fn=_saveload label=*do_save_noss]
	
	[rec_ch text=#&'｜　《grp｜｜{"pic":"app-storage:/bookmark/'+ place +'.jpg","width":"198","height":"149"}》'# r=false]
	[rec_ch text=#&'｜　《link｜{"fn":"sub","label":"*h_jmp","call":"true","global":"true","arg":"$place"}》'# r=false]
	[rec_ch text="【このページから再開】"]
	[rec_r][rec_r]
	
	[rec_ch text="｜　《endlink｜》" r=false]
	[let name="h_ss_idx" text="&h_save_idx %const.h_save.max_count"]
	[let name="h_save_idx" text="&(h_save_idx +1) %const.h_save.max_count"]
[endmacro]

;*********************************************************
; マクロ 履歴画面用スナップショットを撮る
[macro name="h_ss_upd"]
	[snapshot fn="& 'app-storage:/bookmark/h_'+ h_ss_idx" layer=&dsp_lays width=198 height=149 quality=90 smoothing=true cond="(h_save_idx != null) && (h_ss_idx != h_save_idx)"]
	[let name="h_ss_idx" text="&h_save_idx" cond="h_save_idx != null"]
[endmacro]

;*********************************************************
; マクロ 場面転換
;*********************************************************
[macro name="grp"]
	[let name=t text=%t_time|300]	;省略した時の初期値
	[let name=t text=0 cond="an.skip.enabled"]
	[let name=tt text=%time|1000]	;省略した時の初期値
	[let name=tt text=0 cond="an.skip.enabled"]

	; テキストOff
	[if exp="mp:nofo_txt == null"]
		[sys_menu visible=false]
		[lay layer=mes page=back visible=false]
		[trans layer=mes time=&t]
		[wt]
		[er rec_page_break=false]
	[endif]

	; 効果音
	[se fn=%se cond="mp:se != null"]

	; レイヤ切り替え・メイン
	[lay layer=base page=back fn=%bg scale_x=%sxb|null face=%fb|null visible=true cond="mp:bg != null"]
	[img layer=0 fn=%l0|null pos=%pos0|null left=%left0|null top=%top0|null alpha=%o0|null scale_x=%sx0|null face=%f0|null]
	[img layer=1 fn=%l1|null pos=%pos1|null left=%left1|null top=%top1|null alpha=%o1|null scale_x=%sx1|null face=%f1|null]
	[img layer=2 fn=%l2|null pos=%pos2|null left=%left2|null top=%top2|null alpha=%o2|null scale_x=%sx2|null face=%f2|null]
	[trans * layer=&dsp_lays_grp time=&tt]
	[wt]

	; テキストOn
	[if exp="mp:nofi_txt == null"]
		[lay layer=mes page=back visible=true b_alpha=%b_alpha|&sys:TextLayer.Back.Alpha]
		[trans layer=mes time=&t]
		[wt]
		[sys_menu visible=%sys_menu|true]
	[endif]
[endmacro]

;*********************************************************
; マクロ 文字数分のウェイトを入れる
[macro name="wc"]
	[wait cond="mp:time != null && sys:an.tagCh.doWait && !an.skip.enabled" time="&mp:time * sys:an.tagCh.msecWait"]
[endmacro]



;*********************************************************
[return]

;*********************************************************
*toggle_auto_read
	[let name="tmp:an.auto.enabled" text=true]
	[set_cancel_skip]
	[notice text=&mes.自動読み進みOn left="&const.an.xmlConfig.window.width -10 -300" top=10]
	[return]

*toggle_skip
	[let name="tmp:an.skip.enabled" text=true]
	[set_cancel_skip]
	[notice text=&mes.強制スキップOn left="&const.an.xmlConfig.window.width -10 -300" top=10]
	[return]

*h_voice
	[voice fn=&const.an.eventArg]
	[return]

*h_jmp
	[let name="place" text=&const.an.eventArg]

	[history_let_page name=h_page]
	[history_let_page_count name=h_page_count]
	[notice text="容量制限により、これ以前で再開できません" left="&const.an.xmlConfig.window.width -10 -300" top=10 cond="h_page_count -h_page > const.h_save.max_count"]
	[return cond="h_page_count -h_page > const.h_save.max_count"]

		[ask_ync_cleartext]
		[button enabled=false layer="mes_yesno" page=fore pic="& 'app-storage:/bookmark/'+ place +'.jpg'" left=570 top=220]
		[ask_ync mes=&mes.ここから再開しますか？ no_cleartext=true]
	[return cond="_yesno != 'y'"]

	[call fn=_history label=*cancel]
	[jump fn=_saveload label=*end_load]

;*********************************************************
*title_sys
	[enable_event enabled=false]
	[enable_event layer="mes_sysmenu" enabled=false]
	[ask_ync mes=&mes.タイトルに戻りますか？]
	[enable_event enabled=true]
	[enable_event layer="mes_sysmenu" enabled=true]
	[return cond="_yesno != 'y'"]

	[fadeoutse buf=音声 time=1000]
	; テキストレイヤ全画面設定
	[txt_lay_fullscreen b_alpha=0]
	[grp bg="black" sys_menu=false b_alpha=0]

	[pop_stack clear=true]
	[jump fn="main" label=*title]
