code:
;コンフィグ画面とゲーム設定に関する処理

;-------------------------------------------------
;コンフィグの初期設定
;-------------------------------------------------
@INIT_CONFIG
CONFIG:3 = 50
CONFIG:4 = 30
CONFIG:9 = 1
CONFIG:80 = 2
CONFIG:15 = 1

;FLの要素に関するコンフィグの初期設定
CALL INIT_CONFIG_FLCONFIG
; ;SLG部分のコンフィグの初期設定
; CALL INIT_CONFIG_SLG
;デイリー部分のコンフィグの初期設定
CALL INIT_CONFIG_DAILY
;-------------------------------------------------
;コンフィグ画面の処理
;-------------------------------------------------
@SHOW_CONFIG
#DIM FIRST_LINE
FIRST_LINE = LINECOUNT
CALL SINGLE_DRAWLINE
PRINTL ★★各種設定やデータの操作を行います★★
CALL SINGLE_DRAWLINE
; PRINTBUTTON "  0[ＳＬＧパートに関する設定]", 0
; PRINTL
PRINTBUTTON "  1[       調教に関する設定]", 1
PRINTL
PRINTBUTTON "  2[   領内活動に関する設定]", 2
PRINTL
PRINTL
PRINTBUTTON "  5[  特殊な性癖に関する設定]", 5
PRINTL
PRINTBUTTON "  6[  デイリーイベントの設定]", 6
PRINTL
PRINTBUTTON "  7[    口上デイリーフィルタ]", 7
PRINTL
PRINTBUTTON "  8[      既存のキャラの保存]", 8
PRINTL
PRINTBUTTON " 10[        コマンドフィルタ]", 10
PRINTL
PRINTBUTTON " 11[ゲームプレイに関する設定]", 11
PRINTL
PRINTL
PRINTBUTTON " 80[        現在の設定を保存]", 80
PRINTL
PRINTBUTTON " 81[  保存した設定の読み込み]", 81
PRINTL
PRINTL
PRINTBUTTON " 82[        現在の設定を保存(ＳＬＧパートに関する設定以外)]", 82
PRINTL
PRINTBUTTON " 83[  保存した設定の読み込み(ＳＬＧパートに関する設定以外)]", 83
PRINTL
PRINTBUTTON " 84[    デイリーの設定を保存]", 84
PRINTL
PRINTBUTTON " 85[  デイリーの設定をロード]", 85
PRINTL
CALL COLOR_LINE
PRINTBUTTON " 90[          ヘルプ]", 90
PRINTL
PRINTBUTTON " 91[特典コードの入力]", 91
PRINTL
[IF_DEBUG]
PRINTBUTTON @" {GAMEBASE_VERSION}[  デバッグ]", GAMEBASE_VERSION
PRINTL
[ENDIF]
;PRINTBUTTON " 85[データ操作]", 85
;PRINTL
CALL SINGLE_DRAWLINE
PRINTBUTTON " 99[      戻る]", 99
PRINTL
$INPUT_LOOP
INPUT

IF RESULT == 99
	RETURN
ELSEIF RESULT == 1
	CALL CONFIG_OTHERS
ELSEIF RESULT == 2
	CALL CONFIG_HOUSING
ELSEIF RESULT == 5
	;特殊設定
	CALL CONFIG_OTHERS_SP
ELSEIF RESULT == 6
	;イベント設定
	CALL CONFIG_EVENT_DAILY
ELSEIF RESULT == 7
	CALL CONFIG_KOJO_DAILY
ELSEIF RESULT == 8
	CALL CONFIG_SAVE_EXIST_CHARA
ELSEIF RESULT == 10
	CALL CONFIG_COM_FILTER
ELSEIF RESULT == 11
	CALL CONFIG_GAMEPLAY
ELSEIF GROUPMATCH(RESULT, 80, 82)
	CALL CONFIG_SAVE(RESULT == 80)
ELSEIF GROUPMATCH(RESULT, 81, 83)
	CALL CONFIG_LOAD(RESULT == 81)
ELSEIF RESULT == 84
	CALL CONFIG_DAILY_SAVE()
ELSEIF RESULT == 85
	CALL CONFIG_DAILY_LOAD()
ELSEIF RESULT == 90
	CALL CONFIG_HELPMENU
ELSEIF RESULT == 91
	CALL CONFIG_INPUT_CODE
	[IF_DEBUG]
ELSEIF RESULT == GAMEBASE_VERSION
	CALL CONFIG_DATA_EDIT
	[ENDIF]
ENDIF
CLEARLINE LINECOUNT - FIRST_LINE
RESTART

;-------------------------------------------------
;desc  :コンフィグの書き込み
;param :全て:全コンフィグを保存する（指定しない場合SLGを除く)
;-------------------------------------------------
@CONFIG_SAVE(全て)
#DIM 全て
#DIM 番号
CALL SINGLE_DRAWLINE
PRINTFORML どこにセーブしますか？
CALL SINGLE_DRAWLINE

CALL LISTUP_CONFIG

PRINTFORML [99] 戻る

$INPUT_LOOP
INPUT

SIF RESULT == 99
	RETURN

SIF !INRANGE(RESULT, 0, VARSIZE("G_CONFIG_NAME"))
	GOTO INPUT_LOOP

番号 = RESULT

PRINTFORML 設定データの名前を入力して下さい
PRINTFORML (何も入力しないと「設定{番号}」になります)

$INPUT_LOOP_2
INPUTS

IF RESULTS == ""
	G_CONFIG_NAME:番号 = 設定{番号}
ELSE
	G_CONFIG_NAME:番号 = %RESULTS%
ENDIF

SIF 全て
	CALL CONFIG_SAVE_SLG(番号)

CALL CONFIG_SAVE_EXCEPT_SLG(番号)

;-------------------------------------------------
;desc  :コンフィグの読み取り
;param :全て:全コンフィグを読む
;-------------------------------------------------
@CONFIG_LOAD(全て)
#DIM 全て
#DIM 番号
CALL SINGLE_DRAWLINE
PRINTFORML どれをロードしますか？
CALL SINGLE_DRAWLINE

CALL LISTUP_CONFIG

PRINTFORML [99] 戻る

$INPUT_LOOP
INPUT

SIF RESULT == 99
	RETURN

SIF !INRANGE(RESULT, 0, VARSIZE("G_CONFIG_NAME")) || !CONFIG_EXISTS()
	GOTO INPUT_LOOP

番号 = RESULT

SIF 全て
	CALL CONFIG_LOAD_SLG(番号)

CALL CONFIG_LOAD_EXCEPT_SLG(番号)

;-------------------------------------------------
;desc  :コンフィグの書き込み
;param :全て:全コンフィグを保存する（指定しない場合SLGを除く)
;-------------------------------------------------
@CONFIG_DAILY_SAVE()
#DIM 番号
CALL SINGLE_DRAWLINE
PRINTFORML どこにセーブしますか？
CALL SINGLE_DRAWLINE

CALL LISTUP_CONFIG_DAILY

PRINTFORML [99] 戻る

$INPUT_LOOP
INPUT

SIF RESULT == 99
	RETURN

SIF !INRANGE(RESULT, 0, VARSIZE("G_CONFIG_DAILY_NAME"))
	GOTO INPUT_LOOP

番号 = RESULT

PRINTFORML 設定データの名前を入力して下さい
PRINTFORML (何も入力しないと「設定{番号}」になります)

$INPUT_LOOP_2
INPUTS

IF RESULTS == ""
	G_CONFIG_DAILY_NAME:番号 = 設定{番号}
ELSE
	G_CONFIG_DAILY_NAME:番号 = %RESULTS%
ENDIF

CALL CONFIG_SAVE_DAILY(番号)

;-------------------------------------------------
;desc  :コンフィグの読み取り
;param :全て:全コンフィグを読む
;-------------------------------------------------
@CONFIG_DAILY_LOAD()
#DIM 番号
CALL SINGLE_DRAWLINE
PRINTFORML どれをロードしますか？
CALL SINGLE_DRAWLINE

CALL LISTUP_CONFIG_DAILY

PRINTFORML [99] 戻る

$INPUT_LOOP
INPUT

SIF RESULT == 99
	RETURN

SIF !INRANGE(RESULT, 0, VARSIZE("G_CONFIG_DAILY_NAME")) || !CONFIG_DAILY_EXISTS()
	GOTO INPUT_LOOP

番号 = RESULT

CALL CONFIG_LOAD_DAILY(番号)

;-------------------------------------------------
;desc  :コンフィグをリストアップして印字する
;-------------------------------------------------
@LISTUP_CONFIG()
FOR LOCAL, 0, VARSIZE("G_CONFIG_NAME")
	PRINTBUTTON @"[{LOCAL}] 設定{LOCAL} - %G_CONFIG_NAME:LOCAL%", LOCAL
	PRINTL
NEXT

;-------------------------------------------------
;desc  :コンフィグをリストアップして印字する
;-------------------------------------------------
@LISTUP_CONFIG_FILTER()
FOR LOCAL, 0, VARSIZE("G_CONFIG_FILTER_NAME")
	PRINTBUTTON @"[{LOCAL}] 設定{LOCAL} - %G_CONFIG_FILTER_NAME:LOCAL%", LOCAL
	PRINTL
NEXT

;-------------------------------------------------
;desc  :コンフィグをリストアップして印字する
;-------------------------------------------------
@LISTUP_CONFIG_DAILY()
FOR LOCAL, 0, VARSIZE("G_CONFIG_DAILY_NAME")
	PRINTBUTTON @"[{LOCAL}] 設定{LOCAL} - %G_CONFIG_DAILY_NAME:LOCAL%", LOCAL
	PRINTL
NEXT

;-------------------------------------------------
;desc  :指定番号のコンフィグが存在するか返す
;param :番号:コンフィグ配列のインデックス
;return:1か0:存在するかどうか
;-------------------------------------------------
@CONFIG_EXISTS(番号)
#FUNCTION
#DIM 番号
RETURNF G_CONFIG_NAME:番号 != ""

;-------------------------------------------------
;desc  :指定番号のコンフィグが存在するか返す
;param :番号:コンフィグ配列のインデックス
;return:1か0:存在するかどうか
;-------------------------------------------------
@CONFIG_DAILY_EXISTS(番号)
#FUNCTION
#DIM 番号
RETURNF G_CONFIG_DAILY_NAME:番号 != ""

;-------------------------------------------------
;その他の部分に関する設定
;-------------------------------------------------
@CONFIG_OTHERS
#DIM FIRST_LINE
FIRST_LINE = LINECOUNT
CALL SINGLE_DRAWLINE
PRINTL ●交流パートに関する設定●
CALL SINGLE_DRAWLINE

LOCALS:0 = 妊娠の有無
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON "  1[変更]", 1
PRINT
SELECTCASE CONFIG:1
	CASE 0
		PRINT 妊娠する
	CASE 1
		PRINT 妊娠しない
ENDSELECT
PRINTL

LOCALS:0 = ランダムキャラの男性率
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON "  3[変更]", 3
PRINT
PRINTFORM {CONFIG:3}\%
PRINTL

LOCALS:0 = 子供の男性率
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON "  4[変更]", 4
PRINT
PRINTFORM {CONFIG:4}\%
PRINTL

LOCALS:0 = 子供の性別に女双を許可
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON "  5[変更]", 5
PRINT
SELECTCASE CONFIG:5
	CASE 0
		PRINT しない
	CASE 1
		PRINT する
ENDSELECT
PRINTL

LOCALS:0 = 子供の性別に男双、男の娘を許可
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON "  6[変更]", 6
PRINT
SELECTCASE CONFIG:6
	CASE 0
		PRINT 両方許可しない
	CASE 1
		PRINT 両方許可する
	CASE 2
		PRINT 男双のみ許可する
	CASE 3
		PRINT 男の娘のみ許可する
ENDSELECT
PRINTL

LOCALS:0 = 捕虜の扱い設定
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON "  7[変更]", 7
PRINT
SELECTCASE CONFIG:7
	CASE 0
		PRINT 拠点フェイズ終了時に選択
	CASE 1
		PRINT 拠点フェイズのメニューから選択
ENDSELECT
PRINTL

LOCALS:0 = 男主人公への逆調教の傾向
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON "  8[変更]", 8
PRINT
SELECTCASE CONFIG:8
	CASE 0
		PRINT 搾り取る
	CASE 1
		PRINT 射精管理
ENDSELECT
PRINTL

LOCALS:0 = 潮吹きの有無
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON "  9[変更]", 9
PRINT
SELECTCASE CONFIG:9
	CASE 0
		PRINT 無効
	CASE 1
		PRINT 有効
ENDSELECT
PRINTL

LOCALS:0 = コンドーム自動装着＆補給
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON " 10[変更]", 10
PRINT
SELECTCASE CONFIG:10
	CASE 0
		PRINT なし
	CASE 1
		PRINT 有効（主人公以外）
	CASE 2
		PRINT 全員
ENDSELECT
PRINTL

LOCALS:0 = キャラクターの自立行動の許可
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON @" 11[変更]", 11
PRINT
SELECTCASE FLCONFIG:リアクション許可
	CASE 0
		PRINT しない
	CASE 1
		PRINT する
ENDSELECT
PRINTL

; LOCALS:0 = 「民の慰安」で在野武将が出るか
; PRINTFORM %LOCALS:0, 35, RIGHT% -
; PRINTBUTTON " 15[変更]", 15
; PRINT
; SELECTCASE CONFIG:15
; 	CASE 0
; 		PRINT でる
; 	CASE 1
; 		PRINT でない
; ENDSELECT
; PRINTL

LOCALS:0 = 生まれた子供の扱い
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON " 16[変更]", 16
PRINT
SELECTCASE CONFIG:16
	CASE 0
		PRINT 都度選択する
	CASE 1
		PRINT 自動で登用する
	CASE 2
		PRINT 自動で非登用にする
ENDSELECT
PRINTL

;
;LOCALS:0 = 陰毛状態の表示
;PRINTFORM %LOCALS:0, 35, RIGHT% -
;PRINTBUTTON " 15[変更]", 15
;PRINT
;SELECTCASE CONFIG:15
;	CASE 0
;		PRINT 表示する
;		COM_FILTER:113 = 0
;	CASE 2
;		PRINT 表示しない
;	CASE 1
;		PRINT コマンドも表示しない
;		COM_FILTER:113 = 1
;ENDSELECT
;PRINTL
;
;LOCALS:0 = タトゥの表示
;PRINTFORM %LOCALS:0, 35, RIGHT% -
;PRINTBUTTON " 16[変更]", 16
;PRINT
;SELECTCASE CONFIG:16
;	CASE 0
;		PRINT 表示する
;		COM_FILTER:92 = 0
;	CASE 2
;		PRINT 表示しない
;	CASE 1
;		PRINT コマンドも表示しない
;		COM_FILTER:92 = 1
;ENDSELECT
;PRINTL
;
LOCALS:0 = 捕虜あなた逆調教の参加者
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON " 17[変更]", 17
PRINT
SELECTCASE CONFIG:17
	CASE 0
		PRINT 全員参加しうる
	CASE 1
		PRINT 面識のある相手のみ参加しうる
ENDSELECT
PRINTL

LOCALS:0 = 仲間同士の恋愛
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON " 18[変更]", 18
PRINT
SELECTCASE CONFIG:18
	CASE 0
		PRINT 無効
	CASE 1
		PRINT 有効
	CASE 2
		PRINT 異性のみ有効
	CASE 3
		PRINT 男同士のみ有効
	CASE 4
		PRINT 女同士のみ有効
ENDSELECT
PRINTL

; LOCALS:0 = 東方キャラの口上の表示
; PRINTFORM %LOCALS:0, 35, RIGHT% -
; PRINTBUTTON " 40[変更]", 40
; PRINT
; SELECTCASE CONFIG:40
; 	CASE 0
; 		PRINT 表示する
; 	CASE 1
; 		PRINT 表示しない
; ENDSELECT
; PRINTL

LOCALS:0 = 汎用キャラの口上の表示
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON " 41[変更]", 41
PRINT
SELECTCASE CONFIG:41
	CASE 0
		PRINT 表示する
	CASE 1
		PRINT 表示しない
ENDSELECT
PRINTL

LOCALS:0 = 交流終了後性癖レベル自動上昇
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON " 42[変更]", 42
PRINT
SELECTCASE CONFIG:42
	CASE 0
		PRINT しない
	CASE 1
		PRINT する
ENDSELECT
PRINTL

;LOCALS:0 = ミドルネームの並び順を洋風にする
;PRINTFORM %LOCALS:0, 35, RIGHT% -
;PRINTBUTTON " 43[変更]", 43
;PRINT
;SELECTCASE CONFIG:43
;	CASE 0
;		PRINT しない
;	CASE 1
;		PRINT する
;ENDSELECT
;PRINTL

LOCALS:0 = 出産後のバストと体重を出産前の値に
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON " 44[変更]", 44
PRINT
SELECTCASE CONFIG:44
	CASE 0
		PRINT 戻さずランダムにする
	CASE 1
		PRINT 戻す
ENDSELECT
PRINTL

LOCALS:0 = ルビの表示
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON @"{50, 3}[変更]", 50
PRINT
SELECTCASE FLCONFIG:ルビ表示
	CASE 0
		PRINT 表示しない
	CASE 1
		PRINT 漢字を含む場合のみ表示する
	CASE 2
		PRINT 表示する
ENDSELECT
PRINTL

[IF_DEBUG]
PRINTL

LOCALS '= ""
PRINTFORM %LOCALS:0, 35, RIGHT%
PRINTL 【デバッグモード専用設定】

LOCALS:0 = 可能性がある場合は絶対妊娠する
LOCAL = GETNUM(FLCONFIG, "絶対妊娠")
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON @"{LOCAL, 3}[変更]", LOCAL
PRINT
SELECTCASE FLCONFIG:絶対妊娠
	CASE 0
		PRINT しない (通常の確率で妊娠)
	CASE 1
		PRINT する
ENDSELECT
PRINTL

LOCALS:0 = 生まれた子供を里子に出さない
LOCAL = GETNUM(FLCONFIG, "里子に出さない")
PRINTFORM %LOCALS:0, 35, RIGHT% -
PRINTBUTTON @"{LOCAL, 3}[変更]", LOCAL
PRINT
SELECTCASE FLCONFIG:里子に出さない
	CASE 0
		PRINT 里子に出す (通常の確率で判定)
	CASE 1
		PRINT 里子に出さない
ENDSELECT
PRINTL
[ENDIF]

PRINTL

CALL SINGLE_DRAWLINE
PRINTBUTTON " 99[決定]", 99
PRINTL

$INPUT_LOOP
INPUT

IF RESULT == 99
	RETURN
ELSEIF RESULT == 0
	CALL CONFIG_TOGGLE(0)
ELSEIF RESULT == 1
	CALL CONFIG_TOGGLE(1)
ELSEIF RESULT == 2 && CONFIG:1 == 0
	CALL CONFIG_TOGGLE(2)
ELSEIF RESULT == 3
	CONFIG:3 += 10
	IF CONFIG:3 > 100
		CONFIG:3 = 0
	ENDIF
ELSEIF RESULT == 4
	CONFIG:4 += 10
	IF CONFIG:4 > 100
		CONFIG:4 = 0
	ENDIF
ELSEIF RESULT == 5
	CALL CONFIG_TOGGLE(5)
ELSEIF RESULT == 6
	CONFIG:6 = ROUND_INCREMENT(CONFIG:6, 0, 3)
ELSEIF RESULT == 7
	CALL CONFIG_TOGGLE(7)
ELSEIF RESULT == 8
	CALL CONFIG_TOGGLE(8)
ELSEIF RESULT == 9
	CALL CONFIG_TOGGLE(9)
ELSEIF RESULT == 10
	CONFIG:10 = ROUND_INCREMENT(CONFIG:10, 0, 2)
ELSEIF RESULT == 11
	INVERTBIT FLCONFIG:リアクション許可, 0
ELSEIF RESULT == 15
	CALL CONFIG_TOGGLE(15)
ELSEIF RESULT == 16
	CONFIG:16 = ROUND_INCREMENT(CONFIG:16, 0, 2)
ELSEIF RESULT == 17
	SELECTCASE CONFIG:17
		CASE 0
			CONFIG:17 = 1
		CASE 1
			CONFIG:17 = 0
	ENDSELECT
ELSEIF RESULT == 18
	CONFIG:18 = ROUND_INCREMENT(CONFIG:18, 0, 4)
ELSEIF RESULT == 40
	CALL CONFIG_TOGGLE(40)
ELSEIF RESULT == 41
	CALL CONFIG_TOGGLE(41)
ELSEIF RESULT == 42
	CALL CONFIG_TOGGLE(42)
ELSEIF RESULT == 43
	CALL CONFIG_TOGGLE(43)
ELSEIF RESULT == 44
	CALL CONFIG_TOGGLE(44)
ELSEIF RESULT == 50
	FLCONFIG:ルビ表示 = ROUND_INCREMENT(FLCONFIG:ルビ表示, 0, 2)
	[IF_DEBUG]
ELSEIF RESULT == GETNUM(FLCONFIG, "絶対妊娠")
	INVERTBIT FLCONFIG:絶対妊娠, 0
ELSEIF RESULT == GETNUM(FLCONFIG, "里子に出さない")
	INVERTBIT FLCONFIG:里子に出さない, 0
	[ENDIF]
ELSE
	GOTO INPUT_LOOP
ENDIF
CLEARLINE LINECOUNT - FIRST_LINE
RESTART

;-------------------------------------------------
;特殊設定(主に好き嫌いが分かれやすい要素の設定)
;-------------------------------------------------
@CONFIG_OTHERS_SP
#DIM L_COUNTER
#DIM FIRST_LINE
#DIM CONST COM_AUTO_ADD_INPUT_NUM = 300	;おまかせ系の入力値に加算する値
#DIM COM_AUTO_INPUT_RESULT_NUM			;おまかせ系の入力値に加算する値を減算した値

FIRST_LINE = LINECOUNT
CALL SINGLE_DRAWLINE
PRINTL ●特殊設定●
CALL SINGLE_DRAWLINE
; PRINTL ◇特殊勢力◇

; LOCALS:0 = 特殊勢力による捕虜への調教1
; PRINTFORM %LOCALS:0, 50, RIGHT% -
; PRINTBUTTON @"{80, 4}[変更]", 80
; PRINT
; SELECTCASE CONFIG:80
; 	CASE 0
; 		PRINT 発生しない
; 	CASE 1
; 		PRINT 女性・女ふたなりのみ発生
; 	CASE 2
; 		PRINT 全ての性別で発生
; ENDSELECT
; PRINTL

; LOCALS:0 = 特殊勢力による捕虜への調教2
; PRINTFORM %LOCALS:0, 50, RIGHT% -
; PRINTBUTTON @"{81, 4}[変更]", 81
; PRINT
; SELECTCASE CONFIG:81
; 	CASE 0
; 		PRINT 全特殊勢力で発生
; 	CASE 1
; 		PRINT 自分が所属する特殊勢力のみで発生
; 	CASE 2
; 		PRINT 自分が所属する特殊勢力以外で発生
; ENDSELECT
; PRINTL

; LOCALS:0 = 特殊勢力による捕虜への調教3
; PRINTFORM %LOCALS:0, 50, RIGHT% -
; PRINTBUTTON @"{82, 4}[変更]", 82
; PRINT
; SELECTCASE CONFIG:82
; 	CASE 0
; 		PRINT 捕虜・士官に対して発生
; 	CASE 1
; 		PRINT 捕虜のみ（士官を弾く）
; 	CASE 2
; 		PRINT その勢力の士官のみ（捕虜を弾く）
; ENDSELECT
; PRINTL

; CALL COLOR_LINE
PRINTL ◇全般◇

LOCALS:0 = 男同士のコマンドフィルタ（一部）
PRINTFORM %LOCALS:0, 50, RIGHT% -
PRINTBUTTON @"{201, 3}[変更]", 201
PRINT
SELECTCASE CONFIG:201
	CASE 0
		PRINT 無効
	CASE 1
		PRINT 有効
ENDSELECT
PRINTL

LOCALS:0 = 男の娘を男扱いする
PRINTFORM %LOCALS:0, 50, RIGHT% -
PRINTBUTTON @"{202}[変更]", 202
PRINT
SELECTCASE CONFIG:202
	CASE 0
		PRINT 無効
	CASE 1
		PRINT 有効
ENDSELECT
PRINTL

LOCALS:0 = 超短小ペニスは挿入に使えない
PRINTFORM %LOCALS:0, 50, RIGHT% -
PRINTBUTTON @"{203}[変更]", 203
PRINT
SELECTCASE CONFIG:203
	CASE 0
		PRINT 無効
	CASE 1
		PRINT 有効
ENDSELECT
PRINTL

LOCALS:0 = 調教中に主人公の反応を表示する
PRINTFORM %LOCALS:0, 50, RIGHT% -
PRINTBUTTON "441[変更]", 441
PRINT
SELECTCASE CONFIG:441
	CASE 0
		PRINT しない
	CASE 1
		PRINT する
ENDSELECT
PRINTL

CALL COLOR_LINE
PRINTL ◇おまかせ時の行動◇
FOR L_COUNTER, 1, COM_AUTO_FILTER_MAX + 1
	SIF COM_AUTO_FILTER_NAME(L_COUNTER) == ""
		CONTINUE
	LOCALS:0 = %COM_AUTO_FILTER_NAME(L_COUNTER)%
	PRINTFORM %LOCALS:0, 50, RIGHT% -
	PRINTBUTTON @"{L_COUNTER + COM_AUTO_ADD_INPUT_NUM, 4}[変更]", L_COUNTER + COM_AUTO_ADD_INPUT_NUM
	PRINT
	SELECTCASE GETBIT(CONFIG:11, L_COUNTER)
		CASE 0
			PRINT 無効
		CASE 1
			PRINT 有効
	ENDSELECT
	PRINTL
NEXT

CALL COLOR_LINE

PRINTL ◇スカ系◇
LOCALS:0 = 絶頂や尿意の限界によるおもらし
PRINTFORM %LOCALS:0, 50, RIGHT% -
PRINTBUTTON @"{90, 4}[変更]", 90
PRINT
SELECTCASE CONFIG:90
	CASE 0
		PRINT 無効
	CASE 1
		PRINT 有効
ENDSELECT
PRINTL

LOCALS:0 = 恐怖の異常上昇によるおもらし
PRINTFORM %LOCALS:0, 50, RIGHT% -
PRINTBUTTON @"{91, 4}[変更]", 91
PRINT
SELECTCASE CONFIG:91
	CASE 0
		PRINT 無効
	CASE 1
		PRINT 有効
ENDSELECT
PRINTL

LOCALS:0 = デイリーイベントによる排泄経験値の上昇
PRINTFORM %LOCALS:0, 50, RIGHT% -
PRINTBUTTON @"{92, 4}[変更]", 92
PRINT
SELECTCASE CONFIG:92
	CASE 0
		PRINT 許可
	CASE 1
		PRINT 禁止
ENDSELECT
PRINTL

CALL COLOR_LINE

CALL SINGLE_DRAWLINE

PRINTL [99] 決定

$INPUT_LOOP
INPUT

IF RESULT == 99
	RETURN
ELSEIF RESULT == 70
	CONFIG:70 ++
	IF CONFIG:70 >= 2
		CONFIG:70 = 0
	ENDIF
ELSEIF RESULT == 71
	CONFIG:71 ++
	IF CONFIG:71 >= 3
		CONFIG:71 = 0
	ENDIF
ELSEIF RESULT == 79 && CONFIG:71 == 2
	CONFIG:79 ++
	IF CONFIG:79 >= 3
		CONFIG:79 = 0
	ENDIF
ELSEIF RESULT == 72 && (CONFIG:70 || CONFIG:71)
	CONFIG:72 ++
	IF CONFIG:72 >= 2
		CONFIG:72 = 0
	ENDIF
ELSEIF RESULT == 73 && (CONFIG:70 || CONFIG:71)
	CONFIG:73 ++
	IF CONFIG:73 >= 2
		CONFIG:73 = 0
	ENDIF
ELSEIF RESULT == 77 && (CONFIG:70 || CONFIG:71) && CONFIG:73 == 1
	CONFIG:77 ++
	IF CONFIG:77 >= 6
		CONFIG:77 = 0
	ENDIF
ELSEIF RESULT == 78 && (CONFIG:70 || CONFIG:71) && CONFIG:73 == 1
	CONFIG:78 ++
	IF CONFIG:78 >= 2
		CONFIG:78 = 0
	ENDIF
ELSEIF RESULT == 74 && (CONFIG:70 || CONFIG:71)
	CONFIG:74 ++
	IF CONFIG:74 >= 2
		CONFIG:74 = 0
	ENDIF
ELSEIF RESULT == 75 && (CONFIG:70 || CONFIG:71)
	CONFIG:75 ++
	IF CONFIG:75 >= 2
		CONFIG:75 = 0
	ENDIF
ELSEIF RESULT == 76 && (CONFIG:70 || CONFIG:71) && CONFIG:1 == 0
	CONFIG:76 ++
	IF CONFIG:76 >= 2
		CONFIG:76 = 0
	ENDIF
ELSEIF RESULT == 80
	CONFIG:80 ++
	IF CONFIG:80 >= 3
		CONFIG:80 = 0
	ENDIF
ELSEIF RESULT == 81
	CONFIG:81 ++
	IF CONFIG:81 >= 3
		CONFIG:81 = 0
	ENDIF
ELSEIF RESULT == 82
	CONFIG:82 ++
	IF CONFIG:82 >= 3
		CONFIG:82 = 0
	ENDIF
ELSEIF RESULT == 83
	CONFIG:83 ++
	IF CONFIG:83 >= 3
		CONFIG:83 = 0
	ENDIF
ELSEIF RESULT == 84
	CONFIG:84 ++
	IF CONFIG:84 >= 3
		CONFIG:84 = 0
	ENDIF
ELSEIF RESULT == 85
	CONFIG:85 ++
	IF CONFIG:85 >= 2
		CONFIG:85 = 0
	ENDIF
ELSEIF RESULT == 86
	CONFIG:86 ++
	IF CONFIG:86 >= 3
		CONFIG:86 = 0
	ENDIF
ELSEIF RESULT == 87
	CONFIG:87 ++
	IF CONFIG:87 >= 2
		CONFIG:87 = 0
	ENDIF
ELSEIF RESULT == 90
	CONFIG:90 ++
	IF CONFIG:90 >= 2
		CONFIG:90 = 0
	ENDIF
ELSEIF RESULT == 91
	CONFIG:91 ++
	IF CONFIG:91 >= 2
		CONFIG:91 = 0
	ENDIF
ELSEIF RESULT == 92
	CONFIG:92 ++
	IF CONFIG:92 >= 2
		CONFIG:92 = 0
	ENDIF

ELSEIF RESULT == 201
	CONFIG:201 = !CONFIG:201
ELSEIF RESULT == 202
	CONFIG:202 = !CONFIG:202
ELSEIF RESULT == 203
	CONFIG:203 = !CONFIG:203
ELSEIF RESULT == 441
	CALL CONFIG_TOGGLE(441)
	;おまかせの設定
ELSEIF RESULT >= 1 + COM_AUTO_ADD_INPUT_NUM && RESULT <= COM_AUTO_FILTER_MAX + COM_AUTO_ADD_INPUT_NUM
	COM_AUTO_INPUT_RESULT_NUM = RESULT - COM_AUTO_ADD_INPUT_NUM
	IF GETBIT(CONFIG:11, COM_AUTO_INPUT_RESULT_NUM)
		CLEARBIT CONFIG:11, COM_AUTO_INPUT_RESULT_NUM
	ELSE
		SETBIT CONFIG:11, COM_AUTO_INPUT_RESULT_NUM
	ENDIF
ELSE
	GOTO INPUT_LOOP
ENDIF
CLEARLINE LINECOUNT - FIRST_LINE
RESTART

;-------------------------------------------------
;既存のキャラをカスタムキャラとして保存する
;-------------------------------------------------
@CONFIG_SAVE_EXIST_CHARA()
#DIM FIRST_LINE, 2
#DIM 対象
#DIM ページ
FIRST_LINE:0 = LINECOUNT
CALL SINGLE_DRAWLINE
PRINTFORML 既存のキャラをカスタムキャラとして残せます
PRINTFORML (血縁関係など、一部設定は消去されます)
CALL SINGLE_DRAWLINE
CALL SELECT_CHARA_LIST_ONLY_LOGIC_SLG("SAME_FACTION", "NONE")

IF RESULT == -1
	RETURN 0
ENDIF

対象 = RESULT

FIRST_LINE:1 = LINECOUNT

$LISTUP_LOOP

CALL LISTUP_CUSTOM_CHARACTER(0, ページ, 20)
CALL SINGLE_DRAWLINE
PRINTBUTTON "[戻る]", 10000

INPUT

IF RESULT == 10000
	CLEARLINE LINECOUNT - FIRST_LINE
	RESTART
ELSEIF RESULT == MAX_CUSTOM_CHARA
	ページ = ROUND_DECREMENT(ページ, 0, MAX_CUSTOM_CHARA / 20)
ELSEIF RESULT == MAX_CUSTOM_CHARA + 1
	ページ = ROUND_INCREMENT(ページ, 0, MAX_CUSTOM_CHARA / 20)
ELSEIF INRANGE(RESULT, 0, MAX_CUSTOM_CHARA)
	LOCAL = RESULT
	IF FIND_CHARADATA(TOSTR(LOCAL))
		PRINTFORML {LOCAL}番にはカスタムキャラが存在します
		PRINTFORML 上書きしますか？
		CALL ASK_YN()
		IF RESULT == 1
			CLEARLINE LINECOUNT - FIRST_LINE:1
			GOTO LISTUP_LOOP
		ENDIF
	ENDIF
	CALL SAVE_CUSTOM_DATA(LOCAL, 対象)
	PRINTFORML セーブしました
	CLEARLINE LINECOUNT - FIRST_LINE
	RESTART
ENDIF

CLEARLINE LINECOUNT - FIRST_LINE:1
GOTO LISTUP_LOOP

;-------------------------------------------------
;コマンドフィルタ
;-------------------------------------------------
@CONFIG_COM_FILTER
#DIM FIRST_LINE
#DIM 有効コマンド数
#DIM ページ数
#DIM 現在ページ
#DIM 始点
#DIM 終点
#DIM ページ内表示数
#DIM 改行カウンタ

;ページ数の計算
有効コマンド数 = 0
FOR LOCAL:0, 0, 1000
	IF TRAINNAME:(LOCAL:0) != ""
		有効コマンド数 ++
	ENDIF
NEXT
ページ数 = (有効コマンド数 - 1) / 66 + 1
現在ページ = 1

CALL SINGLE_DRAWLINE
CALL COLOR_PRINTL("※特定のコマンドをフィルターした場合、一部のイベントが正しく動作しない可能性があります※", カラー_注意)
CALL COLOR_PRINTL("※動作が保証されないことを理解した上で利用してください※", カラー_注意)
PRINTFORML 緑色表示のコマンドはシステムの都合上フィルタ不可です
CALL SINGLE_DRAWLINE
FIRST_LINE = LINECOUNT
$SHOW_LOOP

;コマンドの表示
有効コマンド数 = 0
始点 = (現在ページ - 1) * 88
終点 = 現在ページ * 88
改行カウンタ = 0
FOR LOCAL:0, 0, 1000
	IF TRAINNAME:(LOCAL:0) != ""
		IF 有効コマンド数 >= 始点 && 有効コマンド数 < 終点
			IF 改行カウンタ >= 1 && 改行カウンタ % 4 == 0
				PRINTL
			ENDIF
			RESULT = 0
			TRYCALLFORM COM_FILTER_FORCE_OFF{LOCAL:0}
			IF RESULT
				SETCOLOR カラー_パ緑
				PRINTPLAINFORM [{LOCAL:0, 3}] %TRAINNAME:(LOCAL:0), 21, LEFT%
			ELSE
				IF COM_FILTER:(LOCAL:0)
					SETCOLOR カラー_選択不可
				ENDIF
				PRINTFORM [{LOCAL:0, 3}] %TRAINNAME:(LOCAL:0), 21, LEFT%
			ENDIF
			RESETCOLOR
			改行カウンタ ++
		ENDIF
		有効コマンド数 ++
	ENDIF
NEXT
PRINTL
CALL SINGLE_DRAWLINE

PRINT [990] 前のページ
PRINTPLAINFORM page{現在ページ}/{ページ数}
PRINTL [991] 次のページ

CALL SINGLE_DRAWLINE
PRINTL [997] セーブ
PRINTL [998] ロード
PRINTL [999] 戻る

REDRAW 0

$INPUT_LOOP
INPUT

IF RESULT == 999
	REDRAW 1
	RETURN
ELSEIF RESULT == 997
	CALL CONFIG_COM_FILTER_SAVE()
	CLEARLINE LINECOUNT - FIRST_LINE
	GOTO SHOW_LOOP
ELSEIF RESULT == 998
	CALL CONFIG_COM_FILTER_LOAD()
	CLEARLINE LINECOUNT - FIRST_LINE
	GOTO SHOW_LOOP
ELSEIF RESULT == 990
	現在ページ --
	IF 現在ページ < 1
		現在ページ = ページ数
	ENDIF
	CLEARLINE LINECOUNT - FIRST_LINE
	GOTO SHOW_LOOP
ELSEIF RESULT == 991
	現在ページ ++
	IF 現在ページ > ページ数
		現在ページ = 1
	ENDIF
	CLEARLINE LINECOUNT - FIRST_LINE
	GOTO SHOW_LOOP
ELSEIF RESULT >= 0 && RESULT < 1000
	LOCAL:5 = RESULT
	IF TRAINNAME:(LOCAL:5) != ""
		RESULT = 0
		TRYCALLFORM COM_FILTER_FORCE_OFF{LOCAL:5}
		IF !RESULT
			COM_FILTER:(LOCAL:5) = !COM_FILTER:(LOCAL:5)
			CLEARLINE LINECOUNT - FIRST_LINE
			GOTO SHOW_LOOP
		ENDIF
	ENDIF
ENDIF
CLEARLINE 1
GOTO INPUT_LOOP

;-------------------------------------------------
;DESC  :コマンドフィルタのセーブ
;ARG   ::
;-------------------------------------------------
@CONFIG_COM_FILTER_SAVE()
#DIM 番号

CALL SINGLE_DRAWLINE
PRINTFORML どこにセーブしますか？
CALL SINGLE_DRAWLINE

CALL LISTUP_CONFIG_FILTER

PRINTFORML [99] 戻る

$INPUT_LOOP
INPUT

SIF RESULT == 99
	RETURN

SIF !INRANGE(RESULT, 0, VARSIZE("G_CONFIG_NAME"))
	GOTO INPUT_LOOP

番号 = RESULT

PRINTFORML 設定データの名前を入力して下さい
PRINTFORML (何も入力しないと「設定{番号}」になります)

$INPUT_LOOP_2
INPUTS

IF RESULTS == ""
	G_CONFIG_FILTER_NAME:番号 = 設定{番号}
ELSE
	G_CONFIG_FILTER_NAME:番号 = %RESULTS%
ENDIF

FOR LOCAL, 0, VARSIZE("COM_FILTER")
	G_FILTER:番号:(LOCAL:0) = COM_FILTER:(LOCAL:0)
NEXT

;グローバル変数を保存
SAVEGLOBAL
RETURN

;-------------------------------------------------
;desc  :コンフィグの読み取り
;-------------------------------------------------
@CONFIG_COM_FILTER_LOAD()
#DIM 番号
CALL SINGLE_DRAWLINE
PRINTFORML どれをロードしますか？
CALL SINGLE_DRAWLINE

FOR LOCAL, 0, VARSIZE("G_CONFIG_FILTER_NAME")
	PRINTBUTTON @"[{LOCAL}] 設定{LOCAL} - %G_CONFIG_FILTER_NAME:LOCAL%", LOCAL
	PRINTL
NEXT

PRINTFORML [99] 戻る

$INPUT_LOOP
INPUT

SIF RESULT == 99
	RETURN

SIF !INRANGE(RESULT, 0, VARSIZE("G_CONFIG_FILTER_NAME")) || G_CONFIG_FILTER_NAME:RESULT == ""
	GOTO INPUT_LOOP

番号 = RESULT

FOR LOCAL, 0, VARSIZE("COM_FILTER")
	COM_FILTER:(LOCAL:0) = G_FILTER:番号:(LOCAL:0)
NEXT

;-------------------------------------------------
;0か1だけのCONFIG切り替え
;-------------------------------------------------
@CONFIG_TOGGLE(ARG)
CONFIG:ARG ++
CONFIG:ARG &= 0x1
RETURN 0


code:
#DIM CONST FLCONFIG_SIZE = 300
#DIM CONST CONFIG_SAVE_SLOT_SIZE = 5
#DIM SAVEDATA FLCONFIG, FLCONFIG_SIZE
#DIM GLOBAL SAVEDATA G_FLCONFIG, CONFIG_SAVE_SLOT_SIZE, FLCONFIG_SIZE
#DIM SAVEDATA FLTUTOR, 10

repo_name: napo/erafl

license: unknown


code:
;コンフィグから行う強制データ操作

;-------------------------------------------------
;データ操作
;-------------------------------------------------
@CONFIG_DATA_EDIT
CALL SINGLE_DRAWLINE
PRINTL 行う操作を選択して下さい
SETCOLOR 0xD0A080
PRINTL   ◎操作によっては重篤な不具合が発生する場合があります
PRINTL   ◎濫用するとゲームの楽しみを損なう恐れがあります
PRINTL   以上を理解した上でご利用下さい
RESETCOLOR
CALL SINGLE_DRAWLINE

PRINTBUTTON " 0[キャラデータの個別書き換え]", 0
PRINTL
PRINTBUTTON " 1[キャラデータの一括書き換え]", 1
PRINTL
PRINTBUTTON " 2[所持金の追加]", 2
PRINTL
PRINTBUTTON " 4[全アイテム追加]", 4
PRINTL
PRINTBUTTON " 5[時期設定]", 5
PRINTL
PRINTBUTTON " 7[引継ぎデータ作成]", 7
PRINTL
PRINTBUTTON " 9[乱数調整]", 9
PRINTL
PRINTBUTTON "10[ランダムキャラ追加]", 10
PRINTL
PRINTBUTTON "12[複数キャラクターをランダムで死亡させる]", 12
PRINTL
PRINTBUTTON "13[ランダムキャラ複数追加]", 13
PRINTL
PRINTBUTTON "15[MASTERとキャラを入れ替える]", 15
PRINTL
PRINTBUTTON "16[既存のキャラのクローン生成]", 16
PRINTL
PRINTBUTTON "17[全キャラの行動済みをリセット]", 17
PRINTL
PRINTBUTTON "18[XMLファイルリロード]", 18
PRINTL
CALL SINGLE_DRAWLINE
PRINTBUTTON " 99[戻る]", 99
PRINTL

REDRAW 0

$INPUT_LOOP
INPUT

IF RESULT == 99
	REDRAW 1
	RETURN
ELSEIF RESULT == 0
	REDRAW 1
	WHILE 1
		CALL SELECT_CHARA_LIST_ONLY_LOGIC_SLG("NONE", "NONE")
		SIF RESULT == -1
			BREAK
		CALL CHARACTER_EDIT(RESULT, 1)
	WEND
ELSEIF RESULT == 1
	REDRAW 1
	CALL CONFIG_DATA_EDIT_CHARA_ALL
ELSEIF RESULT == 2
	REDRAW 1
	PRINTFORML 追加する所持金の額を入力して下さい(現在:{MONEY})
	INPUT
	MONEY = LIMIT(MONEY + RESULT, 0, 9999999999999)
ELSEIF RESULT == 4
	CALL ASK_YN("番号指定", "全追加")
	IF RESULT == 0
		PRINTFORML 番号指定
		INPUT
		LOCAL:1 = RESULT
		PRINTFORML 個数指定
		INPUT
		LOCAL:2 = RESULT
		ITEM:(LOCAL:1) = LOCAL:2
	ELSE
		REDRAW 1
		PRINTFORML 購入可能な全アイテムを販売開始し、かつ追加しておきました
		FOR LOCAL, 0, 499
			IF ITEMNAME:LOCAL != ""
				SELECTCASE LOCAL
					CASE 140
						ITEMSALES:LOCAL = 1
						ITEMTERM:LOCAL = 0
						ITEM:LOCAL = 1
					CASE 141, 142
						ITEMSALES:LOCAL = 1
						ITEMTERM:LOCAL = 0
					CASE 100 TO 149
						ITEMSALES:LOCAL = 0
						ITEM:LOCAL = 1
						ITEMTERM:LOCAL = 0
					CASE 150 TO 199
						ITEMSALES:LOCAL = 1
						ITEM:LOCAL = 99
						ITEMTERM:LOCAL = 0
					CASE 200 TO 249
						ITEMSALES:LOCAL = 0
						ITEM:LOCAL = 1
						ITEMTERM:LOCAL = 0
					CASE 250 TO 279
						ITEMSALES:LOCAL = 1
						ITEM:LOCAL = 99
						ITEMTERM:LOCAL = 0
					CASE IS >= 280
						ITEMSALES:LOCAL = 1
						ITEMTERM:LOCAL = 0
				ENDSELECT
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 5
	REDRAW 1
	PRINTFORML 第何期にしますか？(現在:{DAY})
	PRINTFORML 0以下入力でキャンセルできます
	INPUT
	IF RESULT <= 0
		PRINTFORML キャンセルしました
	ELSE
		PRINTFORML {RESULT}期にしました
		DAY = RESULT
	ENDIF
ELSEIF RESULT == 6 && IS_COUNTRY(CFLAG:MASTER:所属)
	VARSET LOCAL
	VARSET LOCALS
	$DEPLOMACY_LOOP
	CALL SINGLE_DRAWLINE
	PRINTL 関係設定を行う勢力を選択して下さい
	PRINTFORML 現在の外交警戒値:{DIPLOMACY_HATE:(CFLAG:MASTER:所属)}
	PRINTBUTTON " [外交警戒値を変更する]", 100
	CALL SINGLE_DRAWLINE
	PRINTL                     【関係】【友好度／敵対度】  【印象】  【囚えている捕虜】        【囚われている捕虜】

	CALL SINGLE_DRAWLINE
	PRINTBUTTON "98[一括]", 98
	PRINTL
	PRINTBUTTON "99[戻る]", 99
	PRINTL
	REDRAW 0

	$INPUT_LOOP2
	INPUT

	IF RESULT >= 1 && RESULT < MAX_COUNTRY && RESULT != CFLAG:MASTER:所属 && IS_COUNTRY(RESULT) && !COUNTRY_IS_CLOSED:RESULT
		LOCAL:1 = RESULT
		REDRAW 1
		PRINTFORML 友好度をいくらにしますか？(負の数で現状維持、最大値1500)
		INPUT
		IF RESULT < 0
		ELSE
			REL_LIKE:(GET_COUNTRY_BOSS(LOCAL:1)):(GET_COUNTRY_BOSS(CFLAG:MASTER:所属)) = MIN(RESULT, 1500)
		ENDIF
		PRINTFORML 敵対度をいくらにしますか？(負の数で現状維持、最大値1500)
		INPUT
		IF RESULT < 0
		ELSE
			REL_HATE:(GET_COUNTRY_BOSS(LOCAL:1)):(GET_COUNTRY_BOSS(CFLAG:MASTER:所属)) = MIN(RESULT, 1500)
		ENDIF
		PRINTFORMW 設定しました
		GOTO DEPLOMACY_LOOP
	ELSEIF RESULT == 98
		REDRAW 1
		PRINTFORML 友好度をいくらにしますか？(負の数で現状維持、最大値1500)
		INPUT
		IF RESULT < 0
		ELSE
			FOR LOCAL, 0, MAX_COUNTRY
				IF IS_COUNTRY(LOCAL) && !COUNTRY_IS_CLOSED:LOCAL && LOCAL != CFLAG:MASTER:所属
					REL_LIKE:(GET_COUNTRY_BOSS(LOCAL)):(GET_COUNTRY_BOSS(CFLAG:MASTER:所属)) = MIN(RESULT, 1500)
				ENDIF
			NEXT
		ENDIF
		PRINTFORML 敵対度をいくらにしますか？(負の数で現状維持、最大値1500)
		INPUT
		IF RESULT < 0
		ELSE
			FOR LOCAL, 0, MAX_COUNTRY
				IF IS_COUNTRY(LOCAL) && !COUNTRY_IS_CLOSED:LOCAL && LOCAL != CFLAG:MASTER:所属
					REL_HATE:(GET_COUNTRY_BOSS(LOCAL)):(GET_COUNTRY_BOSS(CFLAG:MASTER:所属)) = MIN(RESULT, 1500)
				ENDIF
			NEXT
		ENDIF
		PRINTFORMW 設定しました
		GOTO DEPLOMACY_LOOP
	ELSEIF RESULT == 100
		REDRAW 1
		PRINTFORML 外交警戒値をいくらにしますか？(負の数で現状維持)
		INPUT
		IF RESULT < 0
		ELSE
			DIPLOMACY_HATE:(CFLAG:MASTER:所属) = RESULT
		ENDIF
		PRINTFORMW 設定しました
		GOTO DEPLOMACY_LOOP
	ELSEIF RESULT != 99
		CLEARLINE 1
		GOTO INPUT_LOOP2
	ENDIF
	REDRAW 1
	RESTART
ELSEIF RESULT == 7
	PRINTFORMW 引継ぎデータを作成します
	FLAG:クリア直後フラグ = 1
	CALL SAVE_GAME
	FLAG:クリア直後フラグ = 0
ELSEIF RESULT == 9
	PRINTFORML 乱数発生回数を入力(0以下を入力でキャンセル)
	INPUT
	IF RESULT > 0
		LOCAL:1 = RESULT
		FOR LOCAL, 0, LOCAL:1
			LOCAL:2 = RAND:2
		NEXT
	ENDIF
ELSEIF RESULT == 10
ELSEIF RESULT == 11
	FOR LOCAL:0, 1, MAX_COUNTRY
		SIF IS_COUNTRY(LOCAL:0)
			PRINTFORML [{LOCAL:0}] - %ANAME(GET_COUNTRY_BOSS(LOCAL:0))%
	NEXT
	PRINTFORML [99] 戻る
	$INPUT_LOOP_SOLDIER
	INPUT
	IF RESULT == 99
	ELSEIF IS_COUNTRY(RESULT)
		LOCAL = RESULT
		PRINTFORML 増やす数を入力
		INPUT
		COUNTRY_SOLDIER:(LOCAL:0) += RESULT
	ELSE
		GOTO INPUT_LOOP_SOLDIER
	ENDIF
ELSEIF RESULT == 12
	CALL CONFIG_DATA_EDIT_RANDOM_DEAD
ELSEIF RESULT == 13
	CALL CONFIG_DATA_EDIT_ADD_RANDOM_CHARA_MULTI
ELSEIF RESULT == 15
	CALL CONFIG_DATA_EDIT_SWAP_MASTER
ELSEIF RESULT == 16
	CALL CONFIG_DATA_EDIT_CREATE_CLONE
ELSEIF RESULT == 17
	FOR LOCAL, 0, CHARANUM
		CFLAG:LOCAL:行動済み = 0
	NEXT
ELSEIF RESULT == 18
	CALL FL_INIT_LOADER
ELSE
	CLEARLINE 1
	GOTO INPUT_LOOP
ENDIF
RESTART

;-------------------------------------------------
;キャラデータの書き換え
;-------------------------------------------------
@CONFIG_DATA_EDIT_CHARA_ALL
#DIM FIRST_LINE
FIRST_LINE = LINECOUNT
CALL SINGLE_DRAWLINE
PRINTFORML キャラデータの変更(一括)    ※主人公は変更の適用外です
CALL SINGLE_DRAWLINE

LOCALS:0 = 全員に陥落素質を付ける
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 100[  恋慕]", 100
PRINTBUTTON " 101[  親愛]", 101
PRINTBUTTON " 102[  恋人]", 102
PRINTL
PRINTFORM %TOSTR_SPACE(28)%
PRINTBUTTON " 103[  服従]", 103
PRINTBUTTON " 104[  隷属]", 104
PRINTBUTTON " 107[  主人]", 107
PRINTBUTTON " 108[所有者]", 108
PRINTBUTTON " 105[  烙印]", 105
PRINTBUTTON " 106[  合意]", 106
PRINTL

LOCALS:0 = 全員の性別を変更
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 110[  男性]", 110
PRINTBUTTON " 111[  女性]", 111
PRINTBUTTON " 112[  女双]", 112
PRINTL
PRINTFORM %TOSTR_SPACE(28)%
PRINTBUTTON " 113[  男双]", 113
PRINTBUTTON " 114[男の娘]", 114
PRINTBUTTON " 115[男の娘双]", 115
PRINTL

LOCALS:0 = 全員の性経験を変更
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 120[  処女]", 120
PRINTBUTTON " 121[非処女]", 121
PRINTBUTTON " 122[  童貞]", 122
PRINTBUTTON " 123[非童貞]", 123
PRINTBUTTON " 124[キス未経験]", 124
PRINTBUTTON " 125[キス経験済]", 125
PRINTBUTTON " 126[アナル処女]", 126
PRINTBUTTON " 127[アナル非処女]", 127
PRINTBUTTON " 128[全コマンド熟練]", 128
PRINTBUTTON " 129[全コマンド未経験]", 129
PRINTL

LOCALS:0 = 全員を捕虜にする
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 130[他国の士官のみ]", 130
PRINTBUTTON " 131[全ての士官]", 131
PRINTL
PRINTL

LOCALS:0 = 全員を士官にする
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 150[全ての士官]", 150
PRINTL
PRINTL

LOCALS:0 = 全員の好感度を変更
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 200[  固定]", 200
PRINTBUTTON " 201[  以上]", 201
PRINTBUTTON " 202[  以下]", 202
PRINTL

LOCALS:0 = 全員の従属度を変更
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 210[  固定]", 210
PRINTBUTTON " 211[  以上]", 211
PRINTBUTTON " 212[  以下]", 212
PRINTL

LOCALS:0 = 全員の依存度を変更
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 220[  固定]", 220
PRINTBUTTON " 221[  以上]", 221
PRINTBUTTON " 222[  以下]", 222
PRINTL
PRINTL

LOCALS:0 = 全員の支配度を変更
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 230[  固定]", 230
PRINTBUTTON " 231[  以上]", 231
PRINTBUTTON " 232[  以下]", 232
PRINTL
PRINTL

LOCALS:0 = 全員に素質を追加
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 300[名称指定]", 300
PRINTBUTTON " 301[番号指定]", 301
PRINTL

LOCALS:0 = 全員に淫乱系素質を追加
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 302[名称指定]", 302
PRINTBUTTON " 303[番号指定]", 303
PRINTL

LOCALS:0 = 特殊勢力陥落素質を追加
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 304[名称指定]", 304
PRINTBUTTON " 305[番号指定]", 305
PRINTL

LOCALS:0 = デイリー系素質を追加
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 306[名称指定]", 306
PRINTBUTTON " 307[番号指定]", 307
PRINTL

LOCALS:0 = 全員の素質を削除
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 310[名称指定]", 310
PRINTBUTTON " 311[番号指定]", 311
PRINTL

LOCALS:0 = 全員の淫乱系素質を削除
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 312[名称指定]", 312
PRINTBUTTON " 313[番号指定]", 313
PRINTL

LOCALS:0 = 特殊勢力陥落素質を削除
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 314[名称指定]", 314
PRINTBUTTON " 315[番号指定]", 315
PRINTL

LOCALS:0 = デイリー系素質を削除
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 316[名称指定]", 316
PRINTBUTTON " 317[番号指定]", 317
PRINTL
PRINTL

LOCALS:0 = 全員の能力値を変更
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINT  名称指定→
PRINTBUTTON " 320[  固定]", 320
PRINTBUTTON " 321[  以上]", 321
PRINTBUTTON " 322[  以下]", 322
PRINTL
PRINTFORM %TOSTR_SPACE(29)%番号指定→
PRINTBUTTON " 330[  固定]", 330
PRINTBUTTON " 331[  以上]", 331
PRINTBUTTON " 332[  以下]", 332
PRINTL
PRINTL
LOCALS:0 = 全員の体力を変更
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINT  名称指定→
PRINTBUTTON " 340[  固定]", 340
PRINTBUTTON " 341[  以上]", 341
PRINTBUTTON " 342[  以下]", 342
PRINTL
LOCALS:0 = 全員の気力を変更
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINT  名称指定→
PRINTBUTTON " 350[  固定]", 350
PRINTBUTTON " 351[  以上]", 351
PRINTBUTTON " 352[  以下]", 352
PRINTL
LOCALS:0 = 全員の精神力を変更
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINT  名称指定→
PRINTBUTTON " 360[  固定]", 360
PRINTBUTTON " 361[  以上]", 361
PRINTBUTTON " 362[  以下]", 362
PRINTL

LOCALS:0 = 全員の対面状態を変更
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 400[初対面]", 400
PRINTBUTTON " 401[対面済み]", 401
PRINTL

LOCALS:0 = 全員の子宮・腸・胃の精液をリセット
PRINTFORM    %LOCALS:0, 24, RIGHT%
PRINTBUTTON " 500[リセット]", 500
PRINTL

CALL SINGLE_DRAWLINE
PRINTBUTTON " 999[戻る]", 999
PRINTL

REDRAW 0

$INPUT_LOOP
INPUT

IF RESULT == 999
	REDRAW 1
	RETURN
ELSEIF RESULT == 100
	PRINTFORML 主人公を除く全てのキャラに[恋慕]を付け、好感度を1500、依存度を300にします
	PRINTFORML 現在の好感度・依存度がこれ以上の場合は、その値が維持されます
	PRINTFORML また、全てのキャラについて、初対面状態が解除されます
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):服従 = 0
				TALENT:(LOCAL:0):隷属 = 0
				TALENT:(LOCAL:0):親友 = 0
				TALENT:(LOCAL:0):主人 = 0
				TALENT:(LOCAL:0):所有者 = 0
				TALENT:(LOCAL:0):恋慕 = 1
				CFLAG:(LOCAL:0):好感度 = MAX(CFLAG:(LOCAL:0):好感度, 1500)
				CFLAG:(LOCAL:0):依存度 = MAX(CFLAG:(LOCAL:0):依存度, 300)
				CFLAG:(LOCAL:0):面識 = 1
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 101
	PRINTFORML 主人公を除く全てのキャラに[親愛]を付け、好感度を10000、依存度を3000にします
	PRINTFORML 現在の好感度・依存度がこれ以上の場合は、その値が維持されます
	PRINTFORML また、全てのキャラについて、初対面状態が解除されます
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):服従 = 0
				TALENT:(LOCAL:0):隷属 = 0
				TALENT:(LOCAL:0):親友 = 0
				TALENT:(LOCAL:0):主人 = 0
				TALENT:(LOCAL:0):所有者 = 0
				TALENT:(LOCAL:0):恋慕 = 1
				TALENT:(LOCAL:0):親愛 = 1
				CFLAG:(LOCAL:0):好感度 = MAX(CFLAG:(LOCAL:0):好感度, 10000)
				CFLAG:(LOCAL:0):依存度 = MAX(CFLAG:(LOCAL:0):依存度, 3000)
				CFLAG:(LOCAL:0):面識 = 1
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 102
	PRINTFORML 主人公を除く全てのキャラに[恋人]を付けます
	PRINTFORML また、全てのキャラについて、初対面状態が解除されます
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):烙印 = 0
				TALENT:(LOCAL:0):恋人 = 1
				CFLAG:(LOCAL:0):面識 = 1
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 103
	PRINTFORML 主人公を除く全てのキャラに[服従]を付け、従属度を1500、依存度を300にします
	PRINTFORML 現在の従属度・依存度がこれ以上の場合は、その値が維持されます
	PRINTFORML また、全てのキャラについて、初対面状態が解除されます
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):恋慕 = 0
				TALENT:(LOCAL:0):親愛 = 0
				TALENT:(LOCAL:0):親友 = 0
				TALENT:(LOCAL:0):主人 = 0
				TALENT:(LOCAL:0):所有者 = 0
				TALENT:(LOCAL:0):服従 = 1
				CFLAG:(LOCAL:0):従属度 = MAX(CFLAG:(LOCAL:0):従属度, 1500)
				CFLAG:(LOCAL:0):依存度 = MAX(CFLAG:(LOCAL:0):依存度, 300)

				CFLAG:(LOCAL:0):面識 = 1
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 104
	PRINTFORML 主人公を除く全てのキャラに[隷属]を付け、従属度を10000、依存度を3000にします
	PRINTFORML 現在の従属度・依存度がこれ以上の場合は、その値が維持されます
	PRINTFORML また、全てのキャラについて、初対面状態が解除されます
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):恋慕 = 0
				TALENT:(LOCAL:0):親愛 = 0
				TALENT:(LOCAL:0):親友 = 0
				TALENT:(LOCAL:0):主人 = 0
				TALENT:(LOCAL:0):所有者 = 0
				TALENT:(LOCAL:0):服従 = 1
				TALENT:(LOCAL:0):隷属 = 1
				CFLAG:(LOCAL:0):従属度 = MAX(CFLAG:(LOCAL:0):従属度, 10000)
				CFLAG:(LOCAL:0):依存度 = MAX(CFLAG:(LOCAL:0):依存度, 3000)
				CFLAG:(LOCAL:0):面識 = 1
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 107
	PRINTFORML 主人公を除く全てのキャラに[所有者]を付け、支配度を10000、依存度を3000にします
	PRINTFORML 現在の支配度・依存度がこれ以上の場合は、その値が維持されます
	PRINTFORML また、全てのキャラについて、初対面状態が解除されます
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):恋慕 = 0
				TALENT:(LOCAL:0):親愛 = 0
				TALENT:(LOCAL:0):親友 = 0
				TALENT:(LOCAL:0):服従 = 0
				TALENT:(LOCAL:0):隷属 = 0
				TALENT:(LOCAL:0):主人 = 1
				TALENT:(LOCAL:0):所有者 = 1
				CFLAG:(LOCAL:0):支配度 = MAX(CFLAG:(LOCAL:0):支配度, 10000)
				CFLAG:(LOCAL:0):依存度 = MAX(CFLAG:(LOCAL:0):依存度, 3000)
				CFLAG:(LOCAL:0):面識 = 1
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 108
	PRINTFORML 主人公を除く全てのキャラに[主人]を付け、支配度を1500、依存度を300にします
	PRINTFORML 現在の支配度・依存度がこれ以上の場合は、その値が維持されます
	PRINTFORML また、全てのキャラについて、初対面状態が解除されます
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):恋慕 = 0
				TALENT:(LOCAL:0):親愛 = 0
				TALENT:(LOCAL:0):親友 = 0
				TALENT:(LOCAL:0):服従 = 0
				TALENT:(LOCAL:0):隷属 = 0
				TALENT:(LOCAL:0):主人 = 1
				TALENT:(LOCAL:0):所有者 = 0
				CFLAG:(LOCAL:0):支配度 = MAX(CFLAG:(LOCAL:0):支配度, 1500)
				CFLAG:(LOCAL:0):依存度 = MAX(CFLAG:(LOCAL:0):依存度, 300)
				CFLAG:(LOCAL:0):面識 = 1
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 105
	PRINTFORML 主人公を除く全てのキャラに[烙印]を付けます
	PRINTFORML また、全てのキャラについて、初対面状態が解除されます
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):恋人 = 0
				TALENT:(LOCAL:0):烙印 = 1
				CFLAG:(LOCAL:0):面識 = 1
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 106
	PRINTFORML 主人公を除く全てのキャラに[合意]を付けます
	PRINTFORML また、全てのキャラについて、初対面状態が解除されます
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):合意 = 1
				CFLAG:(LOCAL:0):面識 = 1
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 110
	PRINTFORML 主人公を除く全てのキャラを男性にします
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):性別 = 0
				CALL CLEAR_PIERCE_HOLE_SEX_CHANGE(LOCAL)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 111
	PRINTFORML 主人公と動物を除く全てのキャラを女性にします
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER && !IS_ANIMAL(LOCAL:0)
				TALENT:(LOCAL:0):性別 = 1
				CALL CLEAR_PIERCE_HOLE_SEX_CHANGE(LOCAL)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 112
	PRINTFORML 主人公と動物を除く全てのキャラを女性(ふたなり)にします
	CALL ASK_MULTI("実行", "キャンセル", "女性のみ性別変更")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER && !IS_ANIMAL(LOCAL:0)
				TALENT:(LOCAL:0):性別 = 2
				CALL CLEAR_PIERCE_HOLE_SEX_CHANGE(LOCAL)
			ENDIF
		NEXT
	ELSEIF RESULT == 2
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER && !IS_ANIMAL(LOCAL:0) && IS_FEMALE(LOCAL:0)
				TALENT:(LOCAL:0):性別 = 2
				CALL CLEAR_PIERCE_HOLE_SEX_CHANGE(LOCAL)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 113
	PRINTFORML 主人公を除く全てのキャラを男性(ふたなり)にします
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER && !IS_ANIMAL(LOCAL:0)
				TALENT:(LOCAL:0):性別 = 3
				CALL CLEAR_PIERCE_HOLE_SEX_CHANGE(LOCAL)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 114
	PRINTFORML 主人公を除く全てのキャラを男の娘にします
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER && !IS_ANIMAL(LOCAL:0)
				TALENT:(LOCAL:0):性別 = 4
				CALL CLEAR_PIERCE_HOLE_SEX_CHANGE(LOCAL)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 115
	PRINTFORML 主人公を除く全てのキャラを男の娘(ふたなり)にします
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER && !IS_ANIMAL(LOCAL:0)
				TALENT:(LOCAL:0):性別 = 5
				CALL CLEAR_PIERCE_HOLE_SEX_CHANGE(LOCAL)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 120
	PRINTFORML 主人公を除く全てのキャラを処女にします(感度や経験は変更されません)
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CALL VIRGINIZE(LOCAL:0, 初体験_処女)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 121
	PRINTFORML 主人公を除く全てのキャラを非処女にします
	CALL ASK_MULTI("実行", "キャンセル", "対象名を入力")
	IF RESULT == 2
		PRINTFORML 誰が奪ったかを入力してください
		INPUTS
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):処女 = 0
				SEXUAL_EXPERIENCE:(LOCAL:0):初体験_処女 = %RESULTS%
				SEXUAL_LAST_EXPERIENCE:(LOCAL:0):初体験_処女 = %RESULTS%
			ENDIF
		NEXT
	ELSEIF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):処女 = 0
				SEXUAL_EXPERIENCE:(LOCAL:0):初体験_処女 = 不明
				SEXUAL_LAST_EXPERIENCE:(LOCAL:0):初体験_処女 = 不明
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 122
	PRINTFORML 主人公を除く全てのキャラを童貞にします(感度や経験は変更されません)
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CALL VIRGINIZE(LOCAL:0, 初体験_童貞)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 123
	PRINTFORML 主人公を除く全てのキャラを非童貞にします
	CALL ASK_MULTI("実行", "キャンセル", "対象名を入力")
	IF RESULT == 2
		PRINTFORML 誰が奪ったかを入力してください
		INPUTS
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):童貞 = 0
				SEXUAL_EXPERIENCE:(LOCAL:0):初体験_童貞 = %RESULTS%
				SEXUAL_LAST_EXPERIENCE:(LOCAL:0):初体験_童貞 = %RESULTS%
			ENDIF
		NEXT
	ELSEIF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):童貞 = 0
				SEXUAL_EXPERIENCE:(LOCAL:0):初体験_童貞 = 不明
				SEXUAL_LAST_EXPERIENCE:(LOCAL:0):初体験_童貞 = 不明
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 124
	PRINTFORML 主人公を除く全てのキャラのキスの経験を消去します
	CALL ASK_MULTI("実行",　"キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CALL VIRGINIZE(LOCAL:0, 初体験_キス)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 125
	PRINTFORML 主人公を除く全てのキャラをキス経験済みにします
	CALL ASK_MULTI("実行", "キャンセル", "対象名を入力")
	IF RESULT == 2
		PRINTFORML 誰が奪ったかを入力してください
		INPUTS
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):キス未経験 = 0
				SEXUAL_EXPERIENCE:(LOCAL:0):初体験_キス = %RESULTS%
				SEXUAL_LAST_EXPERIENCE:(LOCAL:0):初体験_キス = %RESULTS%
			ENDIF
		NEXT
	ELSEIF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):キス未経験 = 0
				SEXUAL_EXPERIENCE:(LOCAL:0):初体験_キス = 不明
				SEXUAL_LAST_EXPERIENCE:(LOCAL:0):初体験_キス = 不明
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 126
	PRINTFORML 主人公を除く全てのキャラの尻穴の経験を消去します
	CALL ASK_MULTI("実行",　"キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CALL VIRGINIZE(LOCAL:0, 初体験_アナル処女)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 127
	PRINTFORML 主人公を除く全てのキャラのアナルを経験済みにします
	CALL ASK_MULTI("実行", "キャンセル", "対象名を入力")
	IF RESULT == 2
		PRINTFORML 誰が奪ったかを入力してください
		INPUTS
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):アナル処女 = 0
				SEXUAL_EXPERIENCE:(LOCAL:0):初体験_アナル処女 = %RESULTS%
				SEXUAL_LAST_EXPERIENCE:(LOCAL:0):初体験_アナル処女 = %RESULTS%
			ENDIF
		NEXT
	ELSEIF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				TALENT:(LOCAL:0):アナル処女 = 0
				SEXUAL_EXPERIENCE:(LOCAL:0):初体験_アナル処女 = 不明
				SEXUAL_LAST_EXPERIENCE:(LOCAL:0):初体験_アナル処女 = 不明
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 128
	PRINTL 全てのキャラの全てのコマンドの実行回数を100にします
	PRINTL 既に100を超えているものについては現在の値が維持されます
	PRINTL 主に性癖設定での好みLvを自由に変更するために使います
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			FOR LOCAL:1, 0, 900
				COM_EXP:(LOCAL:0):(LOCAL:1) = MAX(COM_EXP:(LOCAL:0):(LOCAL:1), 1000)
				COM_EXP:(LOCAL:0):(LOCAL:1 + 1000) = MAX(COM_EXP:(LOCAL:0):(LOCAL:1), 1000)
				COM_EXP:(LOCAL:0):(LOCAL:1 + 2000) = MAX(COM_EXP:(LOCAL:0):(LOCAL:1), 1000)
			NEXT
		NEXT
	ENDIF
ELSEIF RESULT == 129
	PRINTL 全てのキャラの全てのコマンドの実行回数を0にします
	PRINTL 主に性癖設定での好みLvを育て直すために使います
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			FOR LOCAL:1, 0, 900
				COM_EXP:(LOCAL:0):(LOCAL:1) = 0
				COM_EXP:(LOCAL:0):(LOCAL:1 + 1000) = 0
				COM_EXP:(LOCAL:0):(LOCAL:1 + 2000) = 0
			NEXT
		NEXT
	ENDIF
ELSEIF RESULT == 130
	PRINTFORML 主人公と別の勢力に所属する、未登場・死亡済み・君主でない全キャラを捕虜にします
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 1, CHARANUM
			SIF CFLAG:LOCAL:特殊状態 == 特殊状態_死亡 || (!CFLAG:LOCAL:所属 && !CFLAG:LOCAL:特殊状態) || GET_COUNTRY_BOSS(CFLAG:LOCAL:所属) == LOCAL:0
				CONTINUE
			IF CFLAG:MASTER:所属 != CFLAG:LOCAL:所属
				CALL CAPTURE(LOCAL:0, CFLAG:MASTER:所属)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 131
	PRINTFORML 未登場・死亡済み・君主でない全キャラを捕虜にします
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 1, CHARANUM
			SIF CFLAG:LOCAL:特殊状態 == 特殊状態_死亡 || (!CFLAG:LOCAL:所属 && !CFLAG:LOCAL:特殊状態) || GET_COUNTRY_BOSS(CFLAG:LOCAL:所属) == LOCAL:0
				CONTINUE
			CALL CAPTURE(LOCAL:0, CFLAG:MASTER:所属)
		NEXT
	ENDIF
ELSEIF RESULT == 150
	PRINTFORML 未登場・死亡済み・君主でない全キャラを自国の士官にします
	PRINTFORML 主人公が放浪している場合、全員放浪します
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			SIF CFLAG:LOCAL:特殊状態 == 特殊状態_死亡 || (!CFLAG:LOCAL:所属 && !CFLAG:LOCAL:特殊状態) || GET_COUNTRY_BOSS(CFLAG:LOCAL:所属) == LOCAL:0
				CONTINUE
			CALL CHANGE_COUNTRY(LOCAL:0, CFLAG:MASTER:所属, 1)
		NEXT
	ENDIF
ELSEIF RESULT == 200
	PRINTFORML 全てのキャラの好感度を、指定した値に変更します
	PRINTFORML 指定できる値は -1000～999999999999 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= -1000 && RESULT <= 999999999999
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CFLAG:(LOCAL:0):好感度 = RESULT
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 201
	PRINTFORML 全てのキャラの好感度を、指定した値に変更します
	PRINTFORML ただし、元の好感度が指定した値より大きい場合、元の値が維持されます
	PRINTFORML 指定できる値は -1000～999999999999 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= -1000 && RESULT <= 999999999999
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CFLAG:(LOCAL:0):好感度 = MAX(CFLAG:(LOCAL:0):好感度, RESULT)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 202
	PRINTFORML 全てのキャラの好感度を、指定した値に変更します
	PRINTFORML ただし、元の好感度が指定した値より小さい場合、元の値が維持されます
	PRINTFORML 指定できる値は -1000～999999999999 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= -1000 && RESULT <= 999999999999
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CFLAG:(LOCAL:0):好感度 = MIN(CFLAG:(LOCAL:0):好感度, RESULT)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 210
	PRINTFORML 全てのキャラの従属度を、指定した値に変更します
	PRINTFORML 指定できる値は -1000～999999999999 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= -1000 && RESULT <= 999999999999
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CFLAG:(LOCAL:0):従属度 = RESULT
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 211
	PRINTFORML 全てのキャラの従属度を、指定した値に変更します
	PRINTFORML ただし、元の好感度が指定した値より大きい場合、元の値が維持されます
	PRINTFORML 指定できる値は -1000～999999999999 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= -1000 && RESULT <= 999999999999
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CFLAG:(LOCAL:0):従属度= MAX(CFLAG:(LOCAL:0):従属度, RESULT)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 212
	PRINTFORML 全てのキャラの従属度を、指定した値に変更します
	PRINTFORML ただし、元の好感度が指定した値より小さい場合、元の値が維持されます
	PRINTFORML 指定できる値は -1000～999999999999 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= -1000 && RESULT <= 999999999999
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CFLAG:(LOCAL:0):従属度 = MIN(CFLAG:(LOCAL:0):従属度, RESULT)
			ENDIF
		NEXT
	ENDIF

ELSEIF RESULT == 220
	PRINTFORML 全てのキャラの依存度を、指定した値に変更します
	PRINTFORML 指定できる値は -1000～999999999999 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= -1000 && RESULT <= 999999999999
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CFLAG:(LOCAL:0):依存度 = RESULT
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 221
	PRINTFORML 全てのキャラの依存度を、指定した値に変更します
	PRINTFORML ただし、元の好感度が指定した値より大きい場合、元の値が維持されます
	PRINTFORML 指定できる値は -1000～999999999999 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= -1000 && RESULT <= 999999999999
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CFLAG:(LOCAL:0):依存度 = MAX(CFLAG:(LOCAL:0):依存度, RESULT)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 222
	PRINTFORML 全てのキャラの依存度を、指定した値に変更します
	PRINTFORML ただし、元の好感度が指定した値より小さい場合、元の値が維持されます
	PRINTFORML 指定できる値は -1000～999999999999 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= -1000 && RESULT <= 999999999999
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CFLAG:(LOCAL:0):依存度 = MIN(CFLAG:(LOCAL:0):依存度, RESULT)
			ENDIF
		NEXT
	ENDIF

ELSEIF RESULT == 230
	PRINTFORML 全てのキャラの支配度を、指定した値に変更します
	PRINTFORML 指定できる値は -1000～999999999999 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= -1000 && RESULT <= 999999999999
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CFLAG:(LOCAL:0):支配度 = RESULT
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 231
	PRINTFORML 全てのキャラの支配度を、指定した値に変更します
	PRINTFORML ただし、元の好感度が指定した値より大きい場合、元の値が維持されます
	PRINTFORML 指定できる値は -1000～999999999999 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= -1000 && RESULT <= 999999999999
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CFLAG:(LOCAL:0):支配度 = MAX(CFLAG:(LOCAL:0):支配度, RESULT)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 232
	PRINTFORML 全てのキャラの支配度を、指定した値に変更します
	PRINTFORML ただし、元の好感度が指定した値より小さい場合、元の値が維持されます
	PRINTFORML 指定できる値は -1000～999999999999 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= -1000 && RESULT <= 999999999999
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CFLAG:(LOCAL:0):支配度 = MIN(CFLAG:(LOCAL:0):支配度, RESULT)
			ENDIF
		NEXT
	ENDIF

	;素質の追加
ELSEIF RESULT == 300 || RESULT == 301
	LOCAL:5 = -1
	IF RESULT == 300
		PRINTFORML 追加する素質の名称を入力して下さい(完全一致)
		INPUTS
		IF RESULTS != ""
			FOR LOCAL:0, 0, 1000
				IF TALENTNAME:(LOCAL:0) == RESULTS
					LOCAL:5 = LOCAL:0
					BREAK
				ENDIF
			NEXT
		ENDIF
		IF LOCAL:5 == -1 && RESULTS != ""
			PRINTFORMW 「%RESULTS%」と一致する名称の素質は存在しません
		ENDIF
	ELSE
		PRINTFORML 追加する素質の番号を入力して下さい
		INPUT
		IF RESULT >= 0 && RESULT <= 999 && TALENTNAME:RESULT != ""
			LOCAL:5 = RESULT
		ENDIF
		IF LOCAL:5 == -1
			PRINTFORMW その番号の素質は定義されていません
		ENDIF
	ENDIF
	IF LOCAL:5 >= 0
		IF IS_CONTROLABLE_TALENT(LOCAL:5)
			FOR LOCAL:0, 0, CHARANUM
				IF LOCAL:0 != MASTER
					TALENT:(LOCAL:0):(LOCAL:5) = 1
				ENDIF
			NEXT
			PRINTFORMW 全てのキャラに「%TALENTNAME:(LOCAL:5)%」を追加しました
		ELSE
			PRINTFORMW 素質「%TALENTNAME:(LOCAL:5)%」を直接操作することは出来ません
		ENDIF
	ENDIF

	;素質の削除
ELSEIF RESULT == 310 || RESULT == 311
	LOCAL:5 = -1
	IF RESULT == 310
		PRINTFORML 削除する素質の名称を入力して下さい(完全一致)
		INPUTS
		IF RESULTS != ""
			FOR LOCAL:0, 0, 1000
				IF TALENTNAME:(LOCAL:0) == RESULTS
					LOCAL:5 = LOCAL:0
					BREAK
				ENDIF
			NEXT
		ENDIF
		IF LOCAL:5 == -1 && RESULTS != ""
			PRINTFORMW 「%RESULTS%」と一致する名称の素質は存在しません
		ENDIF
	ELSE
		PRINTFORML 削除する素質の番号を入力して下さい
		INPUT
		IF RESULT >= 0 && RESULT <= 999 && TALENTNAME:RESULT != ""
			LOCAL:5 = RESULT
		ENDIF
		IF LOCAL:5 == -1
			PRINTFORMW その番号の素質は定義されていません
		ENDIF
	ENDIF
	IF LOCAL:5 >= 0
		IF IS_CONTROLABLE_TALENT(LOCAL:5)
			FOR LOCAL:0, 0, CHARANUM
				IF LOCAL:0 != MASTER
					TALENT:(LOCAL:0):(LOCAL:5) = 0
				ENDIF
			NEXT
			PRINTFORMW 全てのキャラから「%TALENTNAME:(LOCAL:5)%」を削除しました
		ELSE
			PRINTFORMW 素質「%TALENTNAME:(LOCAL:5)%」を直接操作することは出来ません
		ENDIF
	ENDIF

	;淫乱系素質の追加
ELSEIF RESULT == 302 || RESULT == 303
	LOCAL:5 = -1
	IF RESULT == 302
		PRINTFORML 追加する淫乱系素質の名称を入力して下さい(完全一致)
		INPUTS
		IF RESULTS != ""
			FOR LOCAL:0, 0, VARSIZE("SEX_TALENT_NAME")
				IF SEX_TALENT_NAME:(LOCAL:0) == RESULTS
					LOCAL:5 = LOCAL:0
					BREAK
				ENDIF
			NEXT
		ENDIF
		IF LOCAL:5 == -1 && RESULTS != ""
			PRINTFORMW 「%RESULTS%」と一致する名称の素質は存在しません
		ENDIF
	ELSE
		PRINTFORML 追加する素質の番号を入力して下さい
		INPUT
		IF RESULT >= 0 && RESULT <= VARSIZE("SEX_TALENT_NAME") && SEX_TALENT_NAME:RESULT != ""
			LOCAL:5 = RESULT
		ENDIF
		IF LOCAL:5 == -1
			PRINTFORMW その番号の素質は定義されていません
		ENDIF
	ENDIF
	IF LOCAL:5 >= 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				SETBIT TALENT:(LOCAL:0):淫乱系, LOCAL:5
			ENDIF
		NEXT
		PRINTFORMW 全てのキャラに「%SEX_TALENT_NAME:(LOCAL:5)%」を追加しました
	ENDIF

	;淫乱系素質の削除
ELSEIF RESULT == 312 || RESULT == 313
	LOCAL:5 = -1
	IF RESULT == 312
		PRINTFORML 削除する淫乱素質の名称を入力して下さい(完全一致)
		INPUTS
		IF RESULTS != ""
			FOR LOCAL:0, 0, VARSIZE("SEX_TALENT_NAME")
				IF SEX_TALENT_NAME:(LOCAL:0) == RESULTS
					LOCAL:5 = LOCAL:0
					BREAK
				ENDIF
			NEXT
		ENDIF
		IF LOCAL:5 == -1 && RESULTS != ""
			PRINTFORMW 「%RESULTS%」と一致する名称の素質は存在しません
		ENDIF
	ELSE
		PRINTFORML 削除する素質の番号を入力して下さい
		INPUT
		IF RESULT >= 0 && RESULT <= VARSIZE("SEX_TALENT_NAME") && SEX_TALENT_NAME:RESULT != ""
			LOCAL:5 = RESULT
		ENDIF
		IF LOCAL:5 == -1
			PRINTFORMW その番号の素質は定義されていません
		ENDIF
	ENDIF
	IF LOCAL:5 >= 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CLEARBIT TALENT:(LOCAL:0):淫乱系, LOCAL:5
			ENDIF
		NEXT
		PRINTFORMW 全てのキャラから「%SEX_TALENT_NAME:(LOCAL:5)%」を削除しました
	ENDIF

	;特殊勢力陥落系素質の追加
ELSEIF RESULT == 304 || RESULT == 305
	LOCAL:5 = -1
	IF RESULT == 304
		PRINTFORML 追加する特殊勢力陥落系素質の名称を入力して下さい(完全一致)
		INPUTS
		IF RESULTS != ""
			FOR LOCAL:0, 0, VARSIZE("SP_FALLEN_TALENT_NAME")
				IF SP_FALLEN_TALENT_NAME:(LOCAL:0) == RESULTS
					LOCAL:5 = LOCAL:0
					BREAK
				ENDIF
			NEXT
		ENDIF
		IF LOCAL:5 == -1 && RESULTS != ""
			PRINTFORMW 「%RESULTS%」と一致する名称の素質は存在しません
		ENDIF
	ELSE
		PRINTFORML 追加する素質の番号を入力して下さい
		INPUT
		IF RESULT >= 0 && RESULT <= VARSIZE("SP_FALLEN_TALENT_NAME") && SP_FALLEN_TALENT_NAME:RESULT != ""
			LOCAL:5 = RESULT
		ENDIF
		IF LOCAL:5 == -1
			PRINTFORMW その番号の素質は定義されていません
		ENDIF
	ENDIF
	IF LOCAL:5 >= 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				SETBIT TALENT:(LOCAL:0):特殊勢力陥落系, LOCAL:5
			ENDIF
		NEXT
		PRINTFORMW 全てのキャラに「%SP_FALLEN_TALENT_NAME:(LOCAL:5)%」を追加しました
	ENDIF

	;特殊勢力陥落系素質の削除
ELSEIF RESULT == 314 || RESULT == 315
	LOCAL:5 = -1
	IF RESULT == 314
		PRINTFORML 削除する特殊勢力陥落系素質の名称を入力して下さい(完全一致)
		INPUTS
		IF RESULTS != ""
			FOR LOCAL:0, 0, VARSIZE("SP_FALLEN_TALENT_NAME")
				IF SP_FALLEN_TALENT_NAME:(LOCAL:0) == RESULTS
					LOCAL:5 = LOCAL:0
					BREAK
				ENDIF
			NEXT
		ENDIF
		IF LOCAL:5 == -1 && RESULTS != ""
			PRINTFORMW 「%RESULTS%」と一致する名称の素質は存在しません
		ENDIF
	ELSE
		PRINTFORML 削除する素質の番号を入力して下さい
		INPUT
		IF RESULT >= 0 && RESULT <= VARSIZE("SP_FALLEN_TALENT_NAME") && SP_FALLEN_TALENT_NAME:RESULT != ""
			LOCAL:5 = RESULT
		ENDIF
		IF LOCAL:5 == -1
			PRINTFORMW その番号の素質は定義されていません
		ENDIF
	ENDIF
	IF LOCAL:5 >= 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CLEARBIT TALENT:(LOCAL:0):特殊勢力陥落系, LOCAL:5
			ENDIF
		NEXT
		PRINTFORMW 全てのキャラから「%SP_FALLEN_TALENT_NAME:(LOCAL:5)%」を削除しました
	ENDIF

	;デイリー系素質の追加
ELSEIF RESULT == 306 || RESULT == 307
	LOCAL:5 = -1
	IF RESULT == 306
		PRINTFORML 追加するデイリー系素質の名称を入力して下さい(完全一致)
		INPUTS
		IF RESULTS != ""
			FOR LOCAL:0, 0, VARSIZE("DAILY_TALENT_NAME")
				IF DAILY_TALENT_NAME:(LOCAL:0) == RESULTS
					LOCAL:5 = LOCAL:0
					BREAK
				ENDIF
			NEXT
		ENDIF
		IF LOCAL:5 == -1 && RESULTS != ""
			PRINTFORMW 「%RESULTS%」と一致する名称の素質は存在しません
		ENDIF
	ELSE
		PRINTFORML 追加する素質の番号を入力して下さい
		INPUT
		IF RESULT >= 0 && RESULT <= VARSIZE("DAILY_TALENT_NAME") && DAILY_TALENT_NAME:RESULT != ""
			LOCAL:5 = RESULT
		ENDIF
		IF LOCAL:5 == -1
			PRINTFORMW その番号の素質は定義されていません
		ENDIF
	ENDIF
	IF LOCAL:5 >= 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				SETBIT TALENT:(LOCAL:0):デイリー系, LOCAL:5
			ENDIF
		NEXT
		PRINTFORMW 全てのキャラに「%DAILY_TALENT_NAME:(LOCAL:5)%」を追加しました
	ENDIF

	;デイリー系素質の削除
ELSEIF RESULT == 316 || RESULT == 317
	LOCAL:5 = -1
	IF RESULT == 316
		PRINTFORML 削除する特殊勢力陥落系素質の名称を入力して下さい(完全一致)
		INPUTS
		IF RESULTS != ""
			FOR LOCAL:0, 0, VARSIZE("DAILY_TALENT_NAME")
				IF DAILY_TALENT_NAME:(LOCAL:0) == RESULTS
					LOCAL:5 = LOCAL:0
					BREAK
				ENDIF
			NEXT
		ENDIF
		IF LOCAL:5 == -1 && RESULTS != ""
			PRINTFORMW 「%RESULTS%」と一致する名称の素質は存在しません
		ENDIF
	ELSE
		PRINTFORML 削除する素質の番号を入力して下さい
		INPUT
		IF RESULT >= 0 && RESULT <= VARSIZE("DAILY_TALENT_NAME") && DAILY_TALENT_NAME:RESULT != ""
			LOCAL:5 = RESULT
		ENDIF
		IF LOCAL:5 == -1
			PRINTFORMW その番号の素質は定義されていません
		ENDIF
	ENDIF
	IF LOCAL:5 >= 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CLEARBIT TALENT:(LOCAL:0):デイリー系, LOCAL:5
			ENDIF
		NEXT
		PRINTFORMW 全てのキャラから「%DAILY_TALENT_NAME:(LOCAL:5)%」を削除しました
	ENDIF

ELSEIF GROUPMATCH(RESULT, 320, 321, 322, 330, 331, 332)
	LOCAL:5 = -1
	LOCAL:6 = RESULT % 10
	IF RESULT < 330
		PRINTFORML 追加する能力の名称を入力して下さい(完全一致)
		INPUTS
		IF RESULTS != ""
			FOR LOCAL:0, 0, 100
				IF ABLNAME:(LOCAL:0) == RESULTS
					LOCAL:5 = LOCAL:0
					BREAK
				ENDIF
			NEXT
		ENDIF
		IF LOCAL:5 == -1 && RESULTS != ""
			PRINTFORMW 「%RESULTS%」と一致する名称の能力は存在しません
		ENDIF
	ELSE
		PRINTFORML 追加する能力の番号を入力して下さい
		INPUT
		IF RESULT >= 0 && RESULT <= 99 && ABLNAME:RESULT != ""
			LOCAL:5 = RESULT
		ENDIF
		IF LOCAL:5 == -1
			PRINTFORMW その番号の能力は定義されていません
		ENDIF
	ENDIF
	IF LOCAL:5 >= 0
		IF LOCAL:6 == 1
			PRINTFORML 「%ABLNAME:(LOCAL:5)%」の値を入力して下さい({ABL_MIN:(LOCAL:5)}～{ABL_MAX:(LOCAL:5)})
			PRINTFORML 現在の値が入力した値よりも大きい場合、現在の値が維持されます
			PRINTFORML 範囲外の値を入力した場合、キャンセル扱いになります
			INPUT
			IF RESULT >= ABL_MIN:(LOCAL:5) && RESULT <= ABL_MAX:(LOCAL:5)
				FOR LOCAL:0, 0, CHARANUM
					IF LOCAL:0 != MASTER
						ABL:(LOCAL:0):(LOCAL:5) = MAX(ABL:(LOCAL:0):(LOCAL:5), RESULT)
					ENDIF
				NEXT
			ENDIF
			PRINTFORMW 全てのキャラの「%ABLNAME:(LOCAL:5)%」を{RESULT}以上に設定しました
		ELSEIF LOCAL:6 == 2
			PRINTFORML 「%ABLNAME:(LOCAL:5)%」の値を入力して下さい({ABL_MIN:(LOCAL:5)}～{ABL_MAX:(LOCAL:5)})
			PRINTFORML 現在の値が入力した値よりも小さい場合、現在の値が維持されます
			PRINTFORML 範囲外の値を入力した場合、キャンセル扱いになります
			INPUT
			IF RESULT >= ABL_MIN:(LOCAL:5) && RESULT <= ABL_MAX:(LOCAL:5)
				FOR LOCAL:0, 0, CHARANUM
					IF LOCAL:0 != MASTER
						ABL:(LOCAL:0):(LOCAL:5) = MIN(ABL:(LOCAL:0):(LOCAL:5), RESULT)
					ENDIF
				NEXT
			ENDIF
			PRINTFORMW 全てのキャラの「%ABLNAME:(LOCAL:5)%」を{RESULT}以下に設定しました
		ELSE
			PRINTFORML 「%ABLNAME:(LOCAL:5)%」の値を入力して下さい({ABL_MIN:(LOCAL:5)}～{ABL_MAX:(LOCAL:5)})
			PRINTFORML 範囲外の値を入力した場合、キャンセル扱いになります
			INPUT
			IF RESULT >= ABL_MIN:(LOCAL:5) && RESULT <= ABL_MAX:(LOCAL:5)
				FOR LOCAL:0, 0, CHARANUM
					IF LOCAL:0 != MASTER
						ABL:(LOCAL:0):(LOCAL:5) = RESULT
					ENDIF
				NEXT
			ENDIF
			PRINTFORMW 全てのキャラの「%ABLNAME:(LOCAL:5)%」を{RESULT}に設定しました
		ENDIF
	ENDIF
ELSEIF RESULT == 340
	PRINTFORML 全てのキャラの体力を、指定した値に変更します
	PRINTFORML 指定できる値は 1～5000 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= 1 && RESULT <= 5000
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				MAXBASE:LOCAL:体力 = RESULT
				BASE:LOCAL:体力 = RESULT
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 341
	PRINTFORML 全てのキャラの体力を、指定した値に変更します
	PRINTFORML ただし、元の体力が指定した値より大きい場合、元の値が維持されます
	PRINTFORML 指定できる値は 1～5000 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= 1 && RESULT <= 5000
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				MAXBASE:LOCAL:体力 = MAX(MAXBASE:LOCAL:体力, RESULT)
				BASE:LOCAL:体力 = MAX(MAXBASE:LOCAL:体力, RESULT)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 342
	PRINTFORML 全てのキャラの体力を、指定した値に変更します
	PRINTFORML ただし、元の体力が指定した値より小さい場合、元の値が維持されます
	PRINTFORML 指定できる値は 1～5000 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= 1 && RESULT <= 5000
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				MAXBASE:LOCAL:体力 = MIN(MAXBASE:LOCAL:体力, RESULT)
				BASE:LOCAL:体力 = MIN(MAXBASE:LOCAL:体力, RESULT)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 350
	PRINTFORML 全てのキャラの気力を、指定した値に変更します
	PRINTFORML 指定できる値は 1～5000 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= 1 && RESULT <= 5000
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				MAXBASE:LOCAL:気力 = RESULT
				BASE:LOCAL:気力 = RESULT
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 351
	PRINTFORML 全てのキャラの気力を、指定した値に変更します
	PRINTFORML ただし、元の気力が指定した値より大きい場合、元の値が維持されます
	PRINTFORML 指定できる値は 1～5000 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= 1 && RESULT <= 5000
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				MAXBASE:LOCAL:気力 = MAX(MAXBASE:LOCAL:気力, RESULT)
				BASE:LOCAL:気力 = MAX(MAXBASE:LOCAL:気力, RESULT)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 352
	PRINTFORML 全てのキャラの気力を、指定した値に変更します
	PRINTFORML ただし、元の気力が指定した値より小さい場合、元の値が維持されます
	PRINTFORML 指定できる値は 1～5000 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= 1 && RESULT <= 5000
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				MAXBASE:LOCAL:気力 = MIN(MAXBASE:LOCAL:気力, RESULT)
				BASE:LOCAL:気力= MIN(MAXBASE:LOCAL:気力, RESULT)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 360
	PRINTFORML 全てのキャラの精神力を、指定した値に変更します
	PRINTFORML 指定できる値は 1～5000 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= 1 && RESULT <= 5000
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				MAXBASE:LOCAL:精神力 = RESULT
				BASE:LOCAL:精神力 = RESULT
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 361
	PRINTFORML 全てのキャラの精神力を、指定した値に変更します
	PRINTFORML ただし、元の精神力が指定した値より大きい場合、元の値が維持されます
	PRINTFORML 指定できる値は 1～5000 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= 1 && RESULT <= 5000
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				MAXBASE:LOCAL:精神力 = MAX(MAXBASE:LOCAL:精神力, RESULT)
				BASE:LOCAL:精神力 = MAX(MAXBASE:LOCAL:精神力, RESULT)
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 362
	PRINTFORML 全てのキャラの精神力を、指定した値に変更します
	PRINTFORML ただし、元の精神力が指定した値より小さい場合、元の値が維持されます
	PRINTFORML 指定できる値は 1～5000 で、範囲外の値はキャンセル扱いになります
	PRINTFORML 指定する値を入力して下さい
	INPUT
	IF RESULT >= 1 && RESULT <= 5000
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				MAXBASE:LOCAL:精神力 = MIN(MAXBASE:LOCAL:精神力, RESULT)
				BASE:LOCAL:精神力= MIN(MAXBASE:LOCAL:精神力, RESULT)
			ENDIF
		NEXT
	ENDIF

ELSEIF RESULT == 400
	PRINTFORML 全てのキャラを初対面の状態に戻します
	CALL ASK_MULTI("実行(フラグのみリセット)", "実行(フラグ・好感度・従属度・依存度・陥落素質をリセット)", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CFLAG:(LOCAL:0):面識 = 0
			ENDIF
		NEXT
	ELSEIF RESULT == 1
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CFLAG:(LOCAL:0):面識 = 0
				CFLAG:(LOCAL:0):好感度 = 0
				CFLAG:(LOCAL:0):依存度 = 0
				CFLAG:(LOCAL:0):従属度 = 0
				TALENT:(LOCAL:0):恋慕 = 0
				TALENT:(LOCAL:0):親愛 = 0
				TALENT:(LOCAL:0):親友 = 0
				TALENT:(LOCAL:0):恋人 = 0
				TALENT:(LOCAL:0):服従 = 0
				TALENT:(LOCAL:0):隷属 = 0
				TALENT:(LOCAL:0):烙印 = 0
				TALENT:(LOCAL:0):合意 = 0
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 401
	PRINTFORML 全てのキャラと面識がある状態にします
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER
				CFLAG:(LOCAL:0):面識 = 1
			ENDIF
		NEXT
	ENDIF
ELSEIF RESULT == 500
	PRINTFORML 全員の子宮・腸・胃の精液をリセットします
	CALL ASK_YN("実行", "キャンセル")
	IF RESULT == 0
		FOR LOCAL, 0, WOMB_RECORD_MAX
			CVARSET WOMB_SPERM_ID, LOCAL
			CVARSET WOMB_SPERM_AMOUNT, LOCAL
			CVARSET WOMB_SPERM_COUNT, LOCAL
			CVARSET WOMB_SPERM_TIME, LOCAL
			CVARSET STOMACH_SPERM_ID, LOCAL
			CVARSET STOMACH_SPERM_AMOUNT, LOCAL
			CVARSET STOMACH_SPERM_COUNT, LOCAL
			CVARSET STOMACH_SPERM_TIME, LOCAL
			CVARSET ANUS_SPERM_ID, LOCAL
			CVARSET ANUS_SPERM_AMOUNT, LOCAL
			CVARSET ANUS_SPERM_COUNT, LOCAL
			CVARSET ANUS_SPERM_TIME, LOCAL
		NEXT
	ENDIF
ELSE
	CLEARLINE 1
	GOTO INPUT_LOOP
ENDIF
CLEARLINE LINECOUNT - FIRST_LINE
RESTART

;-------------------------------------------------
;素質が全員一括のデータ操作で変更可能かどうかを調べる関数
;-------------------------------------------------
@IS_CONTROLABLE_TALENT(ARG:0)
#FUNCTION
SIF ARG:0 == GETNUM(TALENT, "チョロイン")
	RETURNF 1
SIF ARG:0 <= 9 || ARG:0 >= 300
	RETURNF 0
SIF GROUPMATCH(TALENTNAME:(ARG:0), "妊娠", "育児中", "触手妊娠", "Ａ触手妊娠", "Ｕ触手妊娠")
	RETURNF 0
SIF GROUPMATCH(TALENTNAME:(ARG:0), "バストサイズ", "ペニスサイズ")
	RETURNF 0
RETURNF 1

@CONFIG_DATA_EDIT_RANDOM_DEAD
#DIM LOOP_C
#DIM 種別
#DIM 割合
#DIM 削除しない

PRINTFORML ある種別に属する全てのキャラクターを、乱数の結果次第で死亡させます
PRINTFORML （「MASTER」「君主」「捕虜」「妊娠中」「動物」は対象外）
PRINTFORML 東方キャラ以外の場合、キャラクターデータ自体を削除することも可能です
PRINTFORML

PRINTFORML キャラクターの種別は？
CALL ASK_MULTI("（キャンセル）", "全て", "東方キャラ", "ランダムキャラ（子供以外）", "子供", "特殊キャラ（動物以外）")
IF RESULT == 0
	PRINTFORML キャンセルしました
	RETURN
ENDIF
種別 = RESULT

SIF 種別 == 1
	PRINT 東方キャラ以外の場合、
IF 種別 != 2
	PRINTFORML キャラクターデータ自体を削除しますか？
	CALL ASK_YN("削除する（二度と復活できません）", "「特殊状態」等の書き換えのみ（復活可能）")
	削除しない = RESULT
ENDIF

PRINTFORML 死亡状態にする確率（パーセント）は？（101以上または0以下入力でキャンセルできます）
PRINTFORML [0] [50] [100]
INPUT
IF RESULT <= 0 || RESULT > 100
	PRINTFORML キャンセルしました
	RETURN
ENDIF
割合 = RESULT

FOR LOOP_C, CHARANUM - 1, -1, -1
	SIF (LOOP_C == MASTER) || (GET_COUNTRY_FROM_BOSS_ID(GET_ID(LOOP_C)) > 0) || CFLAG:LOOP_C:捕虜先 || TALENT:LOOP_C:妊娠
		CONTINUE
	SIF (種別 == 2) && !IS_UNIQUE_CHARA(LOOP_C)
		CONTINUE
	SIF (種別 == 3) && !IS_RANDOM_CHARA(LOOP_C)
		CONTINUE
	SIF (種別 == 4) && !IS_CHILD(LOOP_C)
		CONTINUE
	SIF (種別 == 5) && !IS_SP_CHARA(LOOP_C)
		CONTINUE
	SIF IS_ANIMAL(LOOP_C) ; IS_ANIMAL が真の場合は IS_SP_CHARA も真のはずだけど一応単独でチェックしておく
		CONTINUE
	SIF RAND:100 >= 割合
		CONTINUE
	IF IS_UNIQUE_CHARA(LOOP_C) || 削除しない
		IF  (CFLAG:LOOP_C:特殊状態 != 特殊状態_死亡)
			PRINTFORML %ANAME(LOOP_C)%を死亡状態にします。
			CALL CHANGE_COUNTRY(LOOP_C, 0, 1, 1)
		ENDIF
	ELSE
		PRINTFORML %ANAME(LOOP_C)%を削除します。
		CALL DELETE_CHARA(LOOP_C)
	ENDIF
NEXT

@CONFIG_DATA_EDIT_ADD_RANDOM_CHARA_MULTI
#DIM 所属
#DIM 人数
#DIM LOOP1
#DIM 性別
#DIM 特殊

IF !CAN_ADD_RANDOM_CHARA()
	PRINTFORML ランダムキャラが満員なので追加できないよ
	RETURN
ENDIF

PRINTFORML ランダムキャラを複数追加します（名前や能力の傾向は指定できません）
PRINTFORML 特殊キャラ扱いにすることも可能です
PRINTFORML

PRINTFORML キャラクターの性別は？
CALL ASK_MULTI("（キャンセル）", "問わない", "男性", "女性", "女双", "男双", "男の娘", "男の娘双")
IF RESULT == 0
	PRINTFORML キャンセルしました
	RETURN
ENDIF
性別 = RESULT - 2

PRINTFORML キャラクターの種別は？（※ 特殊キャラの放浪はおすすめできないかもしれません）
CALL ASK_YN("ランダムキャラ", "特殊キャラ扱い")
特殊 = RESULT

PRINTFORML 所属は？
CALL ASK_YN("放浪", "MASTERと同じ")
所属 = RESULT
SIF 所属
	所属 = CFLAG:MASTER:所属

PRINTFORML 追加する人数は？（0以下入力でキャンセルできます）
PRINTFORML [0] [5] [10] [20]
INPUT
IF RESULT <= 0
	PRINTFORML キャンセルしました
	RETURN
ENDIF
人数 = RESULT
FOR LOOP1, 0, 人数
	CALL CREATE_RANDOM_CHARA(,,性別)
	IF RESULT < 0
		PRINTFORML {LOOP1}人 生成しました
		RETURN
	ELSE
		IF 特殊
			; @VIGILANTE_INIT を参考にする。
			FLAG:汎用武将カウント --
			NO:RESULT = GET_EMPTY_NO()
			;CALL INIT_NEWCHARA(RESULT)
		ENDIF
		CALL CHANGE_COUNTRY(RESULT, 所属)
	ENDIF
NEXT
PRINTFORML {人数}人 生成しました

@CONFIG_DATA_EDIT_CREATE_CLONE
#DIM 対象

CALL SINGLE_DRAWLINE
PRINTFORML クローンを作るキャラを選択
CALL SINGLE_DRAWLINE

CALL SELECT_CHARA_LIST_ONLY_LOGIC_SLG("NONE", "NONE")

SIF RESULT == -1
	RETURN
対象 = RESULT
CALL SAVE_CUSTOM_DATA(-1, 対象)
CALL LOAD_CUSTOM_DATA(-1)

CFLAG:RESULT:所属 = CFLAG:対象:所属
CFLAG:RESULT:捕虜先 = CFLAG:対象:捕虜先
CFLAG:RESULT:特殊状態 = CFLAG:対象:特殊状態

@CONFIG_DATA_EDIT_SWAP_MASTER
#DIM 対象
; データ操作でMASTERあなたとランダムキャラを入れ替えるパッチ
PRINTFORML 他のキャラと入れ替えできます
PRINTFORML どのキャラクターと入れ替えますか？
CALL SELECT_CHARA_LIST_ONLY_LOGIC_SLG("SWAP_MASTER", "NONE")
SIF RESULT < 0
	RETURN
対象 = RESULT
CALL SWAP_CHARA(MASTER, 対象)
;とりあえず 好感度、依存度、従属度 はそのままにしておく

@SELECT_CHARA_LIST_SHOW_LOGIC_SWAP_MASTER(対象)
#DIM 対象
RETURN IS_UNIQUE_CHARA(対象) || IS_SP_CHARA(対象)


code:
@CREATE_HELP_MAP()
VARSET HELP_CONTENT_NAME
VARSET HELP_CONTENT_NAME_ENG
VARSET HELP_CONTENT_NUM

CALL REGISTER_HELP("ゲームの流れ", "ABOUT_GAME_FLOW")
CALL REGISTER_HELP("領内活動での交流について", "QUICKSTART")
CALL REGISTER_HELP("スケジュールを割り当ててみよう", "SET_SCHEDULE")
CALL REGISTER_HELP("アイテムの販売", "HOW_TO_SHOP")
CALL REGISTER_HELP("娼館の運用", "HOW_TO_PROSTITUTE")
CALL REGISTER_HELP("宿場の運用", "HOW_TO_MANAGE_INN")
CALL REGISTER_HELP("能力値について", "ABOUT_ABL")
CALL REGISTER_HELP("戦闘パラメーターについて", "ABOUT_COMBAT_ABL")
CALL REGISTER_HELP("素材アイテムの入手法", "ITEM_1")
;CALL REGISTER_HELP("能力値の意味"           , "ABOUT_ABL")
;CALL REGISTER_HELP("素質の意味"          	, "ABOUT_TALENT")
; CALL REGISTER_HELP("拠点フェイズのコマンド" , "ABOUT_LIFE_PHASE_COMMAND")
; CALL REGISTER_HELP("戦略フェイズのコマンド" , "ABOUT_SLG_PHASE_COMMAND")
; CALL REGISTER_HELP("基本戦術"               , "BASIC_STRATEGY")
; CALL REGISTER_HELP("士官を増やす"           , "GET_OFFICER")
; CALL REGISTER_HELP("クールタイム"           , "ABOUT_COOLTIME")
; CALL REGISTER_HELP("外交について"           , "ABOUT_DIPLOMACY")
; CALL REGISTER_HELP("捕虜調教のやりかた"     , "HOW_TO_TRAIN_HOSTAGE")
; CALL REGISTER_HELP("士官の陥落"             , "GET_TALENT")
; CALL REGISTER_HELP("陥落素質"               , "SPECIAL_TALENT")
; CALL REGISTER_HELP("デイリーイベント"       , "ABOUT_DAILY_EVENT")
; CALL REGISTER_HELP("士官の鍛えかた"         , "HOW_TO_BUILD_CHARA")
; CALL REGISTER_HELP("士官がすぐ怒って帰る"   , "THEY_GET_MAD")
; CALL REGISTER_HELP("士官がすぐ気絶する"     , "THEY_EASYLY_GET_UNCONSCIOUS")
; CALL REGISTER_HELP("好感度補正"             , "ABOUT_LOVE_POWER")
; CALL REGISTER_HELP("士官が捕虜になった"     , "THEY_GET_CAPTURED")
; CALL REGISTER_HELP("各勢力にすごく嫌われる" , "THEY_HATE_ME")
; CALL REGISTER_HELP("特殊な勢力"             , "SP_COUNTRY")
; CALL REGISTER_HELP("兵が足りない"           , "SOLDIER_DOESNT_INCREASE")
; CALL REGISTER_HELP("外交要求が通らない"     , "THEY_WONT_ACCEPT_REQUEST")
; CALL REGISTER_HELP("謀反と蜂起"             , "THEY_REBEL_AGAINST_ME")
; CALL REGISTER_HELP("子育てについて"         , "HOW_TO_KOSODATE")
; CALL REGISTER_HELP("注意すべきキャラ"       , "BEWARE_HER")

@REGISTER_HELP(HELPNAME, HELPNAME_ENG, HELPPAGENUM)
#DIMS HELPNAME
#DIMS HELPNAME_ENG
#DIM HELPPAGENUM
HELP_CONTENT_NAME:HELP_CONTENT_NUM '= HELPNAME
HELP_CONTENT_NAME_ENG:HELP_CONTENT_NUM '= HELPNAME_ENG
HELP_CONTENT_NUM ++
;-------------------------------------------------
;攻略情報メニュー
;-------------------------------------------------
@CONFIG_HELPMENU
#DIM FIRST_LINE
#DIM FIRST_LINE2

;今見てるメニューのページ
#DIM MENUPAGE
;今見てるヘルプのHELP_CONTENT_系変数におけるインデックス
#DIM HELPINDEX
;今見てるヘルプ項目のページ
#DIM HELPPAGE
;現在のREDRAWを保存
#DIM NOWREDRAW

;メニューのページ数
#DIM PAGENUM

;ヘルプの行数
#DIM MAXHELPLINE
;ページあたりのコンテンツ数
#DIM CONTENTPERPAGE

FIRST_LINE = LINECOUNT
MENUPAGE = 1
HELPINDEX = 0
HELPPAGE = 1
CURRENTREDRAW
NOWREDRAW = RESULT:0

CONTENTPERPAGE = 10
PAGENUM = (HELP_CONTENT_NUM - 1) / CONTENTPERPAGE + 1

;カスタマイズ用……ヘルプのページ当たり行数
MAXHELPLINE = 30

VARSET HELP_CONTENT_LINE
VARSET HELP_CONTENT_LINE_NUM

;初期化処理
CALLFORM PREPARE_HELP_CONTENT_%HELP_CONTENT_NAME_ENG:HELPINDEX%()

$SHOW_LOOP
REDRAW 0

CALL SINGLE_DRAWLINE
PRINT ●攻略情報●
PRINTBUTTON "    1000[前のページ]", 1000
PRINTFORM     ページ {MENUPAGE} / {PAGENUM}
PRINTBUTTON "    1001[次のページ]", 1001
PRINTL

CALL SINGLE_DRAWLINE

FOR LOCAL, CONTENTPERPAGE * (MENUPAGE - 1), MIN(HELP_CONTENT_NUM, CONTENTPERPAGE * MENUPAGE)
	CALL HELP_COLORBUTTON(HELPINDEX, LOCAL, HELP_CONTENT_NAME:LOCAL)
NEXT

IF LINECOUNT - FIRST_LINE < CONTENTPERPAGE + 3
	LOCAL:1 = (CONTENTPERPAGE + 3) - (LINECOUNT - FIRST_LINE)
	FOR LOCAL:0, 0, LOCAL:1
		PRINTL
	NEXT
ENDIF

CALL SINGLE_DRAWLINE
FIRST_LINE2 = LINECOUNT
CALL SHOW_HELP_CONTENT_VIEW(HELPINDEX, HELPPAGE, MAXHELPLINE)

IF LINECOUNT - FIRST_LINE2 < MAXHELPLINE + 3
	LOCAL:1 = MAXHELPLINE - (LINECOUNT - FIRST_LINE2)
	FOR LOCAL:0, 0, LOCAL:1
		PRINTL
	NEXT
ENDIF
CALL SINGLE_DRAWLINE
PRINTBUTTON "    2000[前のページ]", 2000
PRINTFORM     ページ {HELPPAGE} / {(HELP_CONTENT_LINE_NUM -1 )/ MAXHELPLINE + 1}
PRINTBUTTON "    2001[次のページ]", 2001
PRINTL
CALL SINGLE_DRAWLINE
PRINTBUTTON " 999[      戻る]", 999
PRINTL

$INPUT_LOOP
INPUT

IF RESULT == 999
	REDRAW NOWREDRAW
	CLEARLINE LINECOUNT - FIRST_LINE
	RETURN

ELSEIF RESULT == 1000
	MENUPAGE -= 1
	IF MENUPAGE < 1
		MENUPAGE = PAGENUM
	ENDIF
	CLEARLINE LINECOUNT - FIRST_LINE

ELSEIF RESULT == 1001
	MENUPAGE += 1
	IF MENUPAGE > PAGENUM
		MENUPAGE = 1
	ENDIF
	CLEARLINE LINECOUNT - FIRST_LINE

ELSEIF RESULT == 2000
	HELPPAGE --
	SIF HELPPAGE < 1
		HELPPAGE = (HELP_CONTENT_LINE_NUM - 1) / MAXHELPLINE + 1
	CLEARLINE LINECOUNT - FIRST_LINE

ELSEIF RESULT == 2001
	HELPPAGE ++
	SIF HELPPAGE > (HELP_CONTENT_LINE_NUM - 1) / MAXHELPLINE + 1
		HELPPAGE = 1
	CLEARLINE LINECOUNT - FIRST_LINE
ELSEIF INRANGE(RESULT, 0, HELP_CONTENT_NUM - 1)
	HELPINDEX = RESULT
	HELPPAGE = 1
	VARSET HELP_CONTENT_LINE
	VARSET HELP_CONTENT_LINE_NUM
	CALLFORM PREPARE_HELP_CONTENT_%HELP_CONTENT_NAME_ENG:HELPINDEX%()
	CLEARLINE LINECOUNT - FIRST_LINE
ELSE
	GOTO INPUT_LOOP
ENDIF
GOTO SHOW_LOOP

;-------------------------------------------------
;ヘルプのコンテント部分の表示
;-------------------------------------------------
@SHOW_HELP_CONTENT_VIEW(HELPINDEX, HELPPAGE, MAXHELPLINE)
#DIM HELPINDEX
#DIM HELPPAGE
#DIM MAXHELPLINE

SIF !INRANGE(HELPINDEX, 0, HELP_CONTENT_NUM - 1)
	HELPINDEX = 0
SIF HELPPAGE > (HELP_CONTENT_LINE_NUM - 1) / MAXHELPLINE + 1
	HELPPAGE = 1
SIF HELPPAGE < 1
	HELPPAGE = (HELP_CONTENT_LINE_NUM - 1) / MAXHELPLINE + 1

PRINTFORML %HELP_CONTENT_NAME:HELPINDEX%
CALL SINGLE_DRAWLINE
FOR LOCAL, (HELPPAGE - 1) * MAXHELPLINE, HELPPAGE * MAXHELPLINE
	CALL PRINT_HELP_CONTENT(HELP_CONTENT_LINE:LOCAL, LOCAL == 0)
NEXT

;-------------------------------------------------
;ヘルプの中身を追加する関数
;-------------------------------------------------
@ADD_HELP_LINE(LINE)
#DIMS LINE
HELP_CONTENT_LINE:HELP_CONTENT_LINE_NUM '= LINE
HELP_CONTENT_LINE_NUM ++

;-------------------------------------------------
;ヘルプの各行を描画する関数
;-------------------------------------------------
@PRINT_HELP_CONTENT(ORIGSTR, INDENTRESET)
#DIMS ORIGSTR
#DIMS SEPSTR, 1000
#DIM SHORTHANDFLAG, 1000
#DIM POINTER
#DIM SEPNUM
#DIM SHORTHANDPOINT,3
#DIM SHORTHANDAREA, 2
#DIM SHORTHANDTYPE
#DIM CONST ショートハンド_ランク = 1
#DIM CONST ショートハンド_コンテント = 2
#DIM CONST ショートハンド_数値 = 3
#DIMS CONST SHORTHAND_START_CHARA = "", "<", "`", "'"
#DIMS CONST SHORTHAND_END_CHARA = "", ">", "`", "'"
#DIM INDENTFLAG
#DIM INDENTRESET

VARSET SEPSTR
VARSET SHORTHANDFLAG
VARSET POINTER
VARSET SEPNUM
VARSET SHORTHANDPOINT
VARSET SHORTHANDAREA
VARSET SHORTHANDTYPE

PRINT

;空文字列またはインデントリセットの場合、インデントを解除する
IF ORIGSTR == "" || INDENTRESET == 1
	INDENTFLAG = 0
	IF ORIGSTR == ""
		PRINTFORML
		RETURN
	ENDIF
ENDIF

WHILE 1

	FOR LOCAL, 0, VARSIZE("SHORTHANDPOINT")
		SHORTHANDPOINT:LOCAL = STRFINDU(ORIGSTR, SHORTHAND_START_CHARA:(LOCAL + 1), POINTER)
	NEXT

	;もうショートハンドがない
	IF ALLSAMES(SHORTHANDPOINT:0, SHORTHANDPOINT:1, SHORTHANDPOINT:2)
		SUBSTRINGU ORIGSTR, POINTER, -1
		IF RESULTS != ""
			SEPSTR:SEPNUM = %RESULTS%
			SEPNUM ++
		ENDIF
		BREAK
	ENDIF

	FOR LOCAL, 0, VARSIZE("SHORTHANDPOINT")
		SIF SHORTHANDPOINT:LOCAL == -1
			SHORTHANDPOINT:LOCAL = __INT_MAX__
	NEXT

	;ショートハンドがある場合
	SHORTHANDAREA:0 = MINARRAY(SHORTHANDPOINT)
	;ショートハンドの種類を取得
	SHORTHANDTYPE = FINDELEMENT(SHORTHAND_START_CHARA, SUBSTRINGU(ORIGSTR, SHORTHANDAREA:0, 1))
	;ショートハンドの終了位置を取得
	SHORTHANDAREA:1 = STRFINDU(ORIGSTR, SHORTHAND_END_CHARA:SHORTHANDTYPE, SHORTHANDAREA:0 + 1)

	SUBSTRINGU ORIGSTR, POINTER, SHORTHANDAREA:0 - POINTER
	SEPSTR:SEPNUM = %RESULTS%
	SEPNUM ++
	SUBSTRINGU ORIGSTR, SHORTHANDAREA:0 + 1, SHORTHANDAREA:1 - SHORTHANDAREA:0 - 1
	SEPSTR:SEPNUM = %RESULTS%
	SHORTHANDFLAG:SEPNUM = SHORTHANDTYPE
	SEPNUM ++
	POINTER = SHORTHANDAREA:1 + 1
WEND

SIF INDENTFLAG && FINDELEMENT(SHORTHANDFLAG, ショートハンド_コンテント) == -1
	PRINTFORM %HELP_CONTENTS_TOSTR_SPACE()%

FOR LOCAL, 0, SEPNUM
	SELECTCASE SHORTHANDFLAG:LOCAL
		CASE ショートハンド_コンテント
			INDENTFLAG = 1
			PRINTFORM %HELP_CONTENTS(SEPSTR:LOCAL)%
		CASE ショートハンド_数値
			PRINTFORM %HELP_NUMBERCOLOR(SEPSTR:LOCAL)%
		CASE ショートハンド_ランク
			PRINTFORM %HELP_RANKCOLOR(SEPSTR:LOCAL)%
		CASEELSE
			PRINTFORM %SEPSTR:LOCAL%
	ENDSELECT
NEXT

PRINTL

;-------------------------------------------------
;デザイン統一用関数
;表示中のメニューを色つきにするボタン
; ARG:0 = 表示中のページ
; ARG:1 = ボタン番号
; ARGS:2 = タイトル
;-------------------------------------------------
@HELP_COLORBUTTON(ARG:0, ARG:1, ARGS:2)
IF ARG:0 == ARG:1
	SETCOLOR カラー_選択中
ENDIF
PRINTFORML [{ARG:1, 2}] %ARGS:2%
RESETCOLOR
RETURN

;-------------------------------------------------
;デザイン統一用式中関数
;素質名等を左側にタイトルとして表示するとき
; ARGS:0 = タイトル
; %HELP_CONTENTS("恋慕")%
;-------------------------------------------------
@HELP_CONTENTS(ARGS:0)
#FUNCTIONS
SETCOLOR カラー_選択不可
PRINT ・
RESETCOLOR
LOCALS:0 = %ARGS:0%
PRINTFORM %LOCALS:0, 14, LEFT%
SETCOLOR カラー_選択不可
PRINT  -
RESETCOLOR
RETURNF

;-------------------------------------------------
;デザイン統一用式中関数
;素質名等を左側にタイトルとして表示するとき
;説明文が二行にまたがる場合に左側に空けるスペース
; %HELP_CONTENTS_TOSTR_SPACE()%
;-------------------------------------------------
@HELP_CONTENTS_TOSTR_SPACE()
#FUNCTIONS
PRINTFORM %TOSTR_SPACE(20)%
RETURNF

;-------------------------------------------------
;デザイン統一用式中関数
;数字を強調する
; ARGS:0 = 数字
; %HELP_RANKカラー_S%
;-------------------------------------------------
@HELP_NUMBERCOLOR(ARGS:0)
#FUNCTIONS
SETCOLOR カラー_選択中
PRINTFORM %ARGS:0%
RESETCOLOR
RETURNF

;-------------------------------------------------
;デザイン統一用式中関数
;ランク表示に色をつける（@PRINT_ALPHABET_RANKに準拠）
; ARGS:0 = ランク（全角）
; %HELP_RANKカラー_S%
;-------------------------------------------------
@HELP_RANKCOLOR(ARGS:0)
#FUNCTIONS

SETCOLOR GET_RANK_COLOR(ARGS:0)
PRINTFORM %ARGS:0%
RESETCOLOR
RETURNF