code:
@BONUS
#DIM PAGE
#DIM CONST MAXPAGE = 7
;PAGE 0=안면 1=호감도 2=팬티 3=함락 4=잉태 5=기능 6=탄막승부 7=어빌

CALL 실적플래그이행
CALL 보너스소질판정

TRYCALLFORM PRINT_BONUS_{PAGE}

DRAWLINE
PRINTFORML
PRINTFORMC [998] 이전페이지
PRINTFORMC 페이지 {PAGE + 1} / {MAXPAGE + 1}
PRINTFORMC [999] 다음페이지
PRINTL
PRINTC
PRINTFORMC [0] 돌아간다 [1000] 실적취득현황보존
INPUT
SELECTCASE RESULT
	CASE 0
		RETURN
	CASE 998
		PAGE --
	CASE 999
		PAGE ++
	CASE 1000
		PRINTFORMW 현재의 실적취득 현황을 글로벌 세이브에 저장합니다.
		FOR LOCAL, 3, 10
			GLOBAL_BONUS:LOCAL = FLAG:(LOCAL + 700)
			SAVEGLOBAL
		NEXT
		;개인 임의수정, 한판 전용 기술보너스 인계를 위한 추가 저장절차
		GLOBAL_BONUS_KR:0 = FLAG:(0 + 810)
		SAVEGLOBAL
	CASEELSE
		TRYCALLFORM REWARD_BONUS_{PAGE}(RESULT)
ENDSELECT
SIF PAGE >= MAXPAGE + 1
	PAGE = 0
SIF PAGE < 0
	PAGE = MAXPAGE
RESTART

@보너스소질판정(ARG)
;안면 2, 위치짐작
IF GETBIT(FLAG:안면보너스취득상황, 2)
	SETBIT TALENT:MASTER:위치짐작, 0
ELSE
	CLEARBIT TALENT:MASTER:위치짐작, 0
ENDIF

;안면 3, 집합
TALENT:MASTER:집합 = GETBIT(FLAG:안면보너스취득상황, 3)

;안면 4, 위치짐작Ⅱ
IF GETBIT(FLAG:안면보너스취득상황, 4)
	SETBIT TALENT:MASTER:위치짐작, 1
ELSE
	CLEARBIT TALENT:MASTER:위치짐작, 1
ENDIF

;안면 5, 천객만래
TALENT:MASTER:천객만래 = GETBIT(FLAG:안면보너스취득상황, 5)

;호감도 5, 오방짐작
TALENT:MASTER:오방짐작 = GETBIT(FLAG:호감도보너스취득상황, 5)

;호감도 6, 팬티밀수
TALENT:MASTER:팬티밀수 = GETBIT(FLAG:호감도보너스취득상황, 6)

;호감도 8, 붉은실 ;KR판 오리지날, 일판은 폴리아모리
TALENT:MASTER:붉은실 = GETBIT(FLAG:호감도보너스취득상황, 8)

;팬티2, 정욕감지
IF GETBIT(FLAG:팬티보너스취득상황, 2)
	SETBIT TALENT:MASTER:정욕감지, 0
ELSE
	CLEARBIT TALENT:MASTER:정욕감지, 0
ENDIF

;팬티 5, 정욕감지Ⅱ
IF GETBIT(FLAG:팬티보너스취득상황, 5)
	SETBIT TALENT:MASTER:정욕감지, 1
ELSE
	CLEARBIT TALENT:MASTER:정욕감지, 1
ENDIF

;팬티 8, 절륜 ;KR판 오리지날 또는 구잔재
TALENT:MASTER:절륜 = GETBIT(FLAG:팬티보너스취득상황, 8)

;함락 1, 일광욕 ;KR판 오리지날 또는 구잔재
TALENT:MASTER:일광욕 = GETBIT(FLAG:함락보너스취득상황, 1)

;함락 3, 수수께끼의매력
TALENT:MASTER:수수께끼의매력 = GETBIT(FLAG:함락보너스취득상황, 3)

;함락 4, 회복 빠름
TALENT:MASTER:회복속도 = GETBIT(FLAG:함락보너스취득상황, 4)

;함락 5, 생리주기가시화
FLAG:1007 = GETBIT(FLAG:함락보너스취득상황, 5)

;함락 6, 월광욕 ;KR판 오리지날 또는 구잔재
TALENT:MASTER:월광욕 = GETBIT(FLAG:함락보너스취득상황, 6)

;함락 7, 매력
TALENT:MASTER:매력 = GETBIT(FLAG:함락보너스취득상황, 7)

;LOOP 사용해 정리하는 것이 좋을지도 모르지만, 조정하거나 개변하거나 하기 쉽기 때문에 이대로에
;잉태 1, 만능
TALENT:MASTER:만능잉태 = GETBIT(FLAG:잉태보너스취득상황, 1)

;잉태 2, 무녀
TALENT:MASTER:무녀잉태 = GETBIT(FLAG:잉태보너스취득상황, 2)

;잉태 3, 요정
TALENT:MASTER:요정잉태 = GETBIT(FLAG:잉태보너스취득상황, 3)

;잉태 4, 신령
TALENT:MASTER:신령잉태 = GETBIT(FLAG:잉태보너스취득상황, 4)

;잉태 5, 츠쿠모가미
TALENT:MASTER:츠쿠모가미잉태 = GETBIT(FLAG:잉태보너스취득상황, 5)

;잉태 6, 오니
TALENT:MASTER:오니잉태 = GETBIT(FLAG:잉태보너스취득상황, 6)

;잉태 7, 텐구
TALENT:MASTER:텐구잉태 = GETBIT(FLAG:잉태보너스취득상황, 7)

;잉태 8, 봉래
TALENT:MASTER:봉래잉태 = GETBIT(FLAG:잉태보너스취득상황, 8)

;잉태 9, 요괴
TALENT:MASTER:요괴잉태 = GETBIT(FLAG:잉태보너스취득상황, 9)

;;잉태 10, 금단의지식
;TALENT:MASTER:금단의지식 = GETBIT(FLAG:잉태보너스취득상황, 10

;잉태 11,유령
TALENT:MASTER:유령잉태 = GETBIT(FLAG:잉태보너스취득상황, 11)

;잉태 12,인형
TALENT:MASTER:인형잉태 = GETBIT(FLAG:잉태보너스취득상황, 12)

;잉태 13, 조합지식 ;KR판 오리지날 또는 구잔재
;TALENT:MASTER:조합지식 = GETBIT(FLAG:잉태보너스취득상황, 13)

;기능 1, C둔감무시
TALENT:MASTER:C둔감무시 = GETBIT(FLAG:기능보너스취득상황, 1)

;기능 2, B둔감무시
TALENT:MASTER:B둔감무시 = GETBIT(FLAG:기능보너스취득상황, 2)

;기능 3, V둔감무시
TALENT:MASTER:V둔감무시 = GETBIT(FLAG:기능보너스취득상황, 3)

;기능 4, A둔감무시
TALENT:MASTER:A둔감무시 = GETBIT(FLAG:기능보너스취득상황, 4)

;기능 5, 매혹
TALENT:MASTER:매혹 = GETBIT(FLAG:기능보너스취득상황, 5)

;탄막승부 2, 그레이즈능숙함
TALENT:MASTER:그레이즈능숙함 = GETBIT(FLAG:탄막승부보너스취득상황, 2)

;탄막승부 4, 영력충전
TALENT:MASTER:영력충전 = GETBIT(FLAG:탄막승부보너스취득상황, 4)

;탄막승부 5, 익스텐드
TALENT:MASTER:익스텐드 = GETBIT(FLAG:탄막승부보너스취득상황, 5)

;탄막승부 6, 루나슈터
TALENT:MASTER:루나슈터 = GETBIT(FLAG:탄막승부보너스취득상황, 6)

;기술 1, 방중술
TALENT:MASTER:방중술 = GETBIT(FLAG:기술보너스취득상황, 1)
;기술 2, 달변
TALENT:MASTER:달변 = GETBIT(FLAG:기술보너스취득상황, 2)
;기술 3, 채음보양
IF GETBIT(FLAG:기술보너스취득상황, 3)
	SETBIT TALENT:MASTER:179,2
ELSE
	CLEARBIT TALENT:MASTER:179,2
ENDIF
;기술 6, 습득빠름
TALENT:MASTER:습득속도 = GETBIT(FLAG:기술보너스취득상황, 6)
;기술 7, 채양보음
IF GETBIT(FLAG:기술보너스취득상황,7)
	SETBIT TALENT:MASTER:179,3
ELSE
	CLEARBIT TALENT:MASTER:179,3
ENDIF

@BONUS_CAUTION
CALL COLORMESSAGE(@"지금 단계에서 이 실적을 되돌리면 재취득할 수 없습니다", C_ORANGE, 1)
CALL COLORMESSAGE(@"정말 되돌려도 되겠습니까? ", C_ORANGE, 1)
CALL ASK_YN
RETURN RESULT

;----------------------------------------
;안면 보너스
;----------------------------------------
@PRINT_BONUS_0
#DIMS BONUSTEXT
PRINTFORML ★현재의 안면 인원수：{안면카운트(), 4}명
FOR LOCAL, 1,6
	BONUSTEXT '= @"안면 {CONDITION_안면보너스(LOCAL)}명 보너스 - %BONUS_NAME_0(LOCAL)%"
	IF !GETBIT (FLAG:안면보너스취득상황, LOCAL) && !CONDITION_안면보너스(LOCAL, 1)
		PRINTPLAINFORM [{LOCAL}] - 해방 조건：안면 {CONDITION_안면보너스(LOCAL)}명 이상 - %BONUS_NAME_0(LOCAL)%
	ELSE
		IF GETBIT (FLAG:안면보너스취득상황, LOCAL)
			IF !REMOVABLE_BONUS_0(LOCAL)
				SETCOLOR 100, 100, 100
				PRINTPLAINFORM [{LOCAL}] - %BONUSTEXT%【완료】
			ELSE
				IF !CONDITION_안면보너스(LOCAL, 1)
					SETCOLOR C_ORANGE
				ELSE
					SETCOLOR C_P_BLUE
				ENDIF
				PRINTFORM [{LOCAL}] - %BONUSTEXT%【완료】
			ENDIF
		ELSE
			SETCOLOR C_AQUA
			PRINTFORM [{LOCAL}] - %BONUSTEXT%
		ENDIF
		RESETCOLOR
	ENDIF
	PRINTL
NEXT

@CONDITION_안면보너스(ARG, ARG:1)
;ARG:1이 진이라면 보너스 잡힐까 돌려준다
#FUNCTION
#DIM 필요수

SELECTCASE ARG
	CASE 1
		필요수 = 10
	CASE 2
		필요수 = 30
	CASE 3
		필요수 = 50
	CASE 4
		필요수 = 80
	CASE 5
		필요수 = 120
ENDSELECT

IF ARG:1
	IF 안면카운트() >= 필요수 || GETBIT(GLOBAL_BONUS:4, ARG)
		RETURNF 1
	ELSE
		RETURNF 0
	ENDIF
ELSE
	RETURNF 필요수
ENDIF

@REWARD_BONUS_0(ARG)
SIF GETBIT (FLAG:안면보너스취득상황, ARG) && !REMOVABLE_BONUS_0(ARG)
	RETURN
IF !CONDITION_안면보너스(ARG, 1)
	;주회 후, 채우지 않지만 취득하고 있는 상태
	IF GETBIT (FLAG:안면보너스취득상황, ARG)
		CALL BONUS_CAUTION
		SIF RESULT
			RETURN
	ELSE
		RETURN
	ENDIF
ENDIF
INVERTBIT FLAG:안면보너스취득상황, ARG
SIF !GETBIT (FLAG:안면보너스취득상황, ARG)
	RETURN
SELECTCASE ARG
	CASE 1
		PRINTW \5000 얻었습니다.
		MONEY += 5000
	CASE 2
		;호감도로부터 이동
		PRINTW 【소녀가 있는 곳을 짐작하는 정도의 능력】을 얻었습니다.
	CASE 3
		PRINTW 집합 커맨드를 사용할 수 있게 되었습니다.
	CASE 4
		PRINTW 【소녀의 내방을 짐작하는 정도의 능력】을 얻었습니다.
	CASE 5
		;팬티 8으로부터 이행
		PRINTW 【천객만래】를 얻었습니다.
	CASEELSE
		RETURN
ENDSELECT

@BONUS_NAME_0(ARG)
#FUNCTIONS
SELECTCASE ARG
	CASE 1
		RETURNF "\\5000"
	CASE 2
		RETURNF "【소녀가 있는 곳을 짐작하는 정도의 능력】"
	CASE 3
		RETURNF "집합 커맨드"
	CASE 4
		RETURNF "【소녀의 내방을 짐작하는 정도의 능력】"
	CASE 5
		RETURNF "【천객만래】"
ENDSELECT

@REMOVABLE_BONUS_0(ARG)
#FUNCTION
SELECTCASE ARG
	CASE 2, 3, 4, 5
		RETURNF 1
	CASEELSE
		RETURNF 0
ENDSELECT

@안면카운트
#FUNCTION
#DIM 안면카운트
안면카운트 = 0
FOR LOCAL, 1, CHARANUM
	SIF CFLAG:LOCAL:안면
		안면카운트 ++
NEXT
RETURNF 안면카운트
;----------------------------------------
;호감도보너스
;----------------------------------------

@PRINT_BONUS_1
#DIMS BONUSTEXT
VARSET RESULT

PRINTFORML ★현재의 최대호감도：{최대호감도(), 7}\@ RESULT:1 ?  (%CALLNAME:(RESULT:1)%) # \@
FOR LOCAL, 1,9
	BONUSTEXT '= @"호감도 {CONDITION_호감도보너스(LOCAL)} 돌파 보너스 - %BONUS_NAME_1(LOCAL)%"
	IF !GETBIT (FLAG:호감도보너스취득상황, LOCAL) && !CONDITION_호감도보너스(LOCAL, 1)
		PRINTPLAINFORM [{LOCAL}] - 해방 조건：호감도 {CONDITION_호감도보너스(LOCAL)} 돌파 - %BONUS_NAME_1(LOCAL)%
	ELSE
		IF GETBIT (FLAG:호감도보너스취득상황, LOCAL)
			IF !REMOVABLE_BONUS_1(LOCAL)
				SETCOLOR 100, 100, 100
				PRINTPLAINFORM [{LOCAL}] - %BONUSTEXT% 【완료】
			ELSE
				IF !CONDITION_호감도보너스(LOCAL, 1)
					SETCOLOR C_ORANGE
				ELSE
					SETCOLOR C_P_BLUE
				ENDIF
				PRINTFORM [{LOCAL}] - %BONUSTEXT% 【완료】
			ENDIF
		ELSE
			SETCOLOR C_AQUA
			PRINTFORM [{LOCAL}] - %BONUSTEXT%
		ENDIF
		RESETCOLOR
	ENDIF
	PRINTFORML
NEXT

@CONDITION_호감도보너스(ARG, ARG:1)
;ARG:1이 진이라면 호감도보너스 잡힐까 돌려준다
#FUNCTION
#DIM 필요호감도
SELECTCASE ARG
	CASE 1
		필요호감도 = 100
	CASE 2
		필요호감도 = 500
	CASE 3
		필요호감도 = 1000
	CASE 4
		필요호감도 = 10000
	CASE 5
		필요호감도 = 30000
	CASE 6
		필요호감도 = 50000
	CASE 7
		필요호감도 = 100000
	CASE 8 ;KR판 수치조정, 일판 1000000
		필요호감도 = 500000
ENDSELECT

IF ARG:1
	IF 최대호감도() >= 필요호감도 || GETBIT (GLOBAL_BONUS:3, ARG)
		RETURNF 1
	ELSE
		RETURNF 0
	ENDIF
ELSE
	RETURNF 필요호감도
ENDIF

@REWARD_BONUS_1(ARG)
SIF GETBIT (FLAG:호감도보너스취득상황, ARG) && !REMOVABLE_BONUS_1(ARG)
	RETURN
IF !CONDITION_호감도보너스(ARG, 1)
	;주회 후, 채우지 않지만 취득하고 있는 상태
	IF GETBIT (FLAG:호감도보너스취득상황, ARG)
		CALL BONUS_CAUTION
		SIF RESULT
			RETURN
	ELSE
		RETURN
	ENDIF
ENDIF
INVERTBIT FLAG:호감도보너스취득상황, ARG
SIF !GETBIT (FLAG:호감도보너스취득상황, ARG)
	RETURN
SELECTCASE ARG
	CASE 1
		PRINTW \5000 얻었습니다.
		MONEY += 5000
	CASE 2
		PRINTW 100카리스마 얻었습니다.
		MONEY:2 += 100
	CASE 3 ;KR판 오리지날, 일판은 체력상한 100 증가
		PRINTW 회화경험이 올랐습니다
		exp:MASTER:회화경험 += 100
	CASE 4 ;KR판 오리지날, 일판은 현재 해당 항목 비활성화
		;4. 620 proto 현재 없어?
		ITEM:미라다의돌 += 1
		PRINTFORMW 애욕을 독점하는 미라다의돌밀레니엄을 얻었습니다.
	CASE 5
		PRINTW 【더러운 방을 짐작하는 정도의 능력】을 얻었습니다.
	CASE 6
		PRINTW 【팬티밀수】를 얻었습니다. 몸 검사를 회피하기 쉬워집니다.
	CASE 7 ;KR판 오리지날 또는 구잔재, 일판은 정력 100 증가
		PRINTFORMW 기교가 올랐습니다.
		ABL:MASTER:기교 += 1
	CASE 8 ;KR판 오리지날
		PRINTW 【붉은실】을 얻었습니다. 데이트시 낮은 확률로 좋은 일이 생길지도?
	CASEELSE
		RETURN
ENDSELECT

@BONUS_NAME_1(ARG)
#FUNCTIONS
SELECTCASE ARG
	CASE 1
		RETURNF "\\5000"
	CASE 2
		RETURNF "100카리스마"
	CASE 3
		RETURNF "회화경험 +50"
	CASE 4
		RETURNF "미라다의 돌"
	CASE 5
		RETURNF "【더러운 방을 짐작하는 정도의 능력】"
	CASE 6
		RETURNF "【팬티밀수】"
	CASE 7
		RETURNF "기교 UP"
	CASE 8
		RETURNF "【붉은실】"
ENDSELECT

@REMOVABLE_BONUS_1(ARG)
#FUNCTION
SELECTCASE ARG
	CASE 5, 6, 8
		RETURNF 1
	CASEELSE
		RETURNF 0
ENDSELECT

@최대호감도
#FUNCTION
#DIM 최대호감도
FOR LOCAL, 1, CHARANUM - 1
	IF CFLAG:LOCAL:호감도 > 최대호감도
		최대호감도 = CFLAG:LOCAL:호감도
		RESULT:1 = LOCAL
	ENDIF
NEXT
RETURNF 최대호감도
;----------------------------------------
;팬티 보너스
;----------------------------------------

@CONDITION_팬티보너스(ARG, ARG:1)
;ARG:1이 진이라면 보너스 잡힐까 돌려준다
#FUNCTION
#DIM 필요종수
SELECTCASE ARG
	CASE 1
		필요종수 = 10
	CASE 2
		필요종수 = 30
	CASE 3
		필요종수 = 100
	CASE 4
		필요종수 = 300
	CASE 5
		필요종수 = 500
	CASE 6 ;KR판 수치조정, 일판 750
		필요종수 = 700
	CASE 7
		필요종수 = 1000
	CASE 8 ;KR판 수치조정, 일판 2000
		필요종수 = 1200
	CASEELSE
		필요종수 = 9999
ENDSELECT

IF ARG:1
	IF FLAG:획득팬티총수 >= 필요종수 || GETBIT (GLOBAL_BONUS:5, ARG)
		RETURNF 1
	ELSE
		RETURNF 0
	ENDIF
ELSE
	RETURNF 필요종수
ENDIF

@PRINT_BONUS_2
#DIMS BONUSTEXT
PRINTFORML ★현재의 획득 팬티 종류수：{FLAG:획득팬티총수, 3}종
FOR LOCAL, 1,9
	BONUSTEXT '= @"팬티 {CONDITION_팬티보너스(LOCAL)}종 수집 보너스 - %BONUS_NAME_2(LOCAL)%"
	IF !GETBIT (FLAG:팬티보너스취득상황, LOCAL) && !CONDITION_팬티보너스(LOCAL, 1)
		PRINTPLAINFORM [{LOCAL}] - 해방 조건：팬티를 {CONDITION_팬티보너스(LOCAL)}종 모은다 - %BONUS_NAME_2(LOCAL)%
	ELSE
		IF GETBIT (FLAG:팬티보너스취득상황, LOCAL)
			IF !REMOVABLE_BONUS_2(LOCAL)
				SETCOLOR 100, 100, 100
				PRINTPLAINFORM [{LOCAL}] - %BONUSTEXT% 【완료】
			ELSE
				IF !CONDITION_팬티보너스(LOCAL, 1)
					SETCOLOR C_ORANGE
				ELSE
					SETCOLOR C_P_BLUE
				ENDIF
				PRINTFORM [{LOCAL}] - %BONUSTEXT% 【완료】
			ENDIF
		ELSE
			SETCOLOR C_AQUA
			PRINTFORM [{LOCAL}] - %BONUSTEXT%
		ENDIF
		RESETCOLOR
	ENDIF
	PRINTL
NEXT

@REWARD_BONUS_2(ARG)
SIF GETBIT (FLAG:팬티보너스취득상황, ARG) && !REMOVABLE_BONUS_2(ARG)
	RETURN
IF !CONDITION_팬티보너스(ARG, 1)
	;주회 후, 채우지 않지만 취득하고 있는 상태(팬티는 인계되므로 현재는 관계없다)
	IF GETBIT (FLAG:팬티보너스취득상황, ARG)
		CALL BONUS_CAUTION
		SIF RESULT
			RETURN
	ELSE
		RETURN
	ENDIF
ENDIF
INVERTBIT FLAG:팬티보너스취득상황, ARG
SIF !GETBIT (FLAG:팬티보너스취득상황, ARG)
	RETURN
SELECTCASE ARG
	CASE 1
		CALL AddEXP("청소경험", MASTER, 30)
	CASE 2
		PRINTFORML 신에 대한 헌신을 쌓기 시작한 %마스터는%, 그 기적의 일부에 닿는 것이 허락되었다
		PRINTFORMW %마스터는% 【성욕을 주체 못하고 있는 소녀를 간파하는 정도의 능력】을 얻었다
	CASE 3 ;KR판 오리지날, 일판은 체력상한 300 증가
		PRINTW 기교가 올랐습니다.
		ABL:MASTER:기교 ++
	CASE 4
		PRINTL 팬티 님에게 제단을 받았습니다.
		PRINTFORMW 자기 방에서 발원하거나 하늘의 소리를 들을 수가 있게 됩니다.
		ITEM:제단 = 1
	CASE 5
		PRINTFORML 신에 대한 헌신을 거듭한 %마스터는% 새로운 기적에 닿는 것이 허락되었다
		PRINTFORMW %마스터는% 【성욕을 주체 못하고 있는 소녀를 찾아내는 정도의 능력】을 얻었다
	CASE 6 ;KR판 오리지날, 일판은 체력상한 200 증가
	;상승량 500이었던 것을 200으로 해 300을 2000종 보너스에
		PRINTW 기교가 올랐습니다.
		ABL:MASTER:기교 ++
	CASE 7 ;KR판 오리지날, 일판은 정력상한 100 증가
		;회복 빠름은 연인에 이행, 대신에 새롭게 정력 업
		PRINTW 정력의 상한이 올랐습니다.
		MAXBASE:MASTER:정력 = MIN(MAXBASE:MASTER:정력*3/2, 3000)
	CASE 8 ;KR판 오리지날, 일판은 체력상한 300 증가
		;천객만래는 면식 5에 이행
		PRINTW 【절륜】을 얻었습니다. 사정량이 증가하며 사정해도 지치지 않습니다.
ENDSELECT

@BONUS_NAME_2(ARG)
#FUNCTIONS
SELECTCASE ARG
	CASE 1
		RETURNF "청소경험 +30"
	CASE 2
		RETURNF "【성욕을 주체 못하고 있는 소녀를 간파하는 정도의 능력】"
	CASE 3
		RETURNF "기교 UP"
	CASE 4
		RETURNF "제단"
	CASE 5
		RETURNF "【성욕을 주체 못하고 있는 소녀를 찾아내는 정도의 능력】"
	CASE 6
		RETURNF "기교 UP"
	CASE 7
		RETURNF "최대 정력×1.5 (3000까지)"
	CASE 8
		RETURNF "【절륜】"
ENDSELECT

@REMOVABLE_BONUS_2(ARG)
#FUNCTION
SELECTCASE ARG
	CASE 2, 5,8
		RETURNF 1
	CASEELSE
		RETURNF 0
ENDSELECT

;----------------------------------------
;함락 보너스
;----------------------------------------
@PRINT_BONUS_3

#DIM 연모카운트
#DIM 섹프카운트
#DIM 위험일삽입
#DIM 순애파
#DIM 합의없음
#DIM 합의Get

연모카운트 = 0
섹프카운트 = 0
위험일삽입 = 0
순애파 = 0
합의Get = 0
VARSET BONUS_3_ABLE

FOR LOCAL, 1, CHARANUM
	SIF TALENT:LOCAL:스침
		CONTINUE
	SIF TALENT:LOCAL:연모
		연모카운트 ++
	SIF TALENT:LOCAL:섹프
		섹프카운트 ++
	SIF CFLAG:LOCAL:생해금 >= 2
		위험일삽입 ++
	SIF CFLAG:LOCAL:깨끗한교제
		순애파 ++
	SIF CFLAG:LOCAL:대주고말았다
		합의없음 ++
	SIF CFLAG:LOCAL:기정사실 & 합의_우후후
		합의Get ++
NEXT

BONUS_3_DESCRIPTION:1 = 연모 취득
SIF 연모카운트 >= 1
	BONUS_3_ABLE:1 = 1

BONUS_3_DESCRIPTION:2 = 연모 3명
SIF 연모카운트 >= 3
	BONUS_3_ABLE:2 = 1

BONUS_3_DESCRIPTION:3 = 연모 5명
SIF 연모카운트 >= 5
	BONUS_3_ABLE:3 = 1

BONUS_3_DESCRIPTION:4 = 연인 취득
SIF TALENT:MASTER:연인
	BONUS_3_ABLE:4 = 1

BONUS_3_DESCRIPTION:5 = 위험일삽입의 합의 취득
SIF 위험일삽입
	BONUS_3_ABLE:5 = 1

BONUS_3_DESCRIPTION:6 = 섹프 취득
SIF 섹프카운트 >= 1
	BONUS_3_ABLE:6 = 1

BONUS_3_DESCRIPTION:7 = 섹프 3명
SIF 섹프카운트 >= 3
	BONUS_3_ABLE:7 = 1

BONUS_3_DESCRIPTION:8 = 섹프 5명
SIF 섹프카운트 >= 5
	BONUS_3_ABLE:8 = 1

BONUS_3_DESCRIPTION:9 = 범하지 않고 연모 취득
SIF 순애파
	BONUS_3_ABLE:9 = 1

BONUS_3_DESCRIPTION:10 = 섹스의 합의를 얻는다
SIF 합의Get
	BONUS_3_ABLE:10 = 1

BONUS_3_DESCRIPTION:11 = 합의를 얻지 않고 의식이 있는 상대와 행위에 이른다
SIF 합의없음
	BONUS_3_ABLE:11 = 1

FOR LOCAL,1, 12
	SIF GETBIT (GLOBAL_BONUS:6, LOCAL)
		BONUS_3_ABLE:LOCAL = 1
NEXT

PRINTFORML ★현재의 연모：{연모카운트, 3}명/섹프：{섹프카운트, 3}명
FOR LOCAL, 1,12
	IF !BONUS_3_ABLE:LOCAL && !GETBIT (FLAG:함락보너스취득상황, LOCAL)
		PRINTPLAINFORM [{LOCAL}] - 해방 조건：%BONUS_3_DESCRIPTION:LOCAL% - %BONUS_NAME_3(LOCAL)%
	ELSE
		IF GETBIT (FLAG:함락보너스취득상황, LOCAL)
			IF !REMOVABLE_BONUS_3(LOCAL)
				SETCOLOR 100, 100, 100
				PRINTPLAINFORM [{LOCAL}] - %BONUS_3_DESCRIPTION:LOCAL%보너스【완료】%BONUS_NAME_3(LOCAL)%
			ELSE
				IF !BONUS_3_ABLE:LOCAL
					SETCOLOR C_ORANGE
				ELSE
					SETCOLOR C_P_BLUE
				ENDIF
				PRINTFORM [{LOCAL}] - %BONUS_3_DESCRIPTION:LOCAL%보너스【완료】%BONUS_NAME_3(LOCAL)%
			ENDIF
		ELSE
			SETCOLOR C_AQUA
			PRINTFORM [{LOCAL}] - %BONUS_3_DESCRIPTION:LOCAL%보너스 - %BONUS_NAME_3(LOCAL)%
		ENDIF
		RESETCOLOR
	ENDIF
	PRINTL
NEXT

@REWARD_BONUS_3(ARG)
SIF GETBIT (FLAG:함락보너스취득상황, ARG) && !REMOVABLE_BONUS_3(ARG)
	RETURN
IF !BONUS_3_ABLE:ARG
	;주회 후, 채우지 않지만 취득하고 있는 상태
	IF GETBIT (FLAG:함락보너스취득상황, ARG)
		CALL BONUS_CAUTION
		SIF RESULT
			RETURN
	ELSE
		RETURN
	ENDIF
ENDIF
INVERTBIT FLAG:함락보너스취득상황, ARG
SIF !GETBIT (FLAG:함락보너스취득상황, ARG)
	RETURN
SELECTCASE ARG
	CASE 1 ;KR판 오리지날, 일판은 기력상한 100 증가
		PRINTW 【일광욕】을 얻었습니다.
	CASE 2 ;KR판 오리지날, 일판은 기력상한 300 증가
		;생리주기는 생해금에 이행
		;연모 보너스 3번째였던 것을 2번째에 이행
		PRINTW 기교가 올랐습니다.
		ABL:MASTER:기교 ++
	CASE 3
		;4번째로부터 수수께끼의매력을 이행
		;기력 업은 2번째에 이행
		PRINTW 【수수께끼의매력】을 얻었습니다.
	CASE 4
		;팬티 보너스로부터 이행
		PRINTW 【회복 빠름】을 얻었습니다.
	CASE 5
		PRINTW 생리주기를 알 수 있게 되었습니다.
	CASE 6 ;KR판 오리지날, 일판은 정력 100 증가

		PRINTW 【월광욕】을 얻었습니다.
	CASE 7
		;신규
		PRINTW 【매력】을 얻었습니다.
	CASE 8 ;KR판 오리지날, 일판은 정력상한 100 증가
		;신규
		PRINTW 기교가 올랐습니다.
		ABL:MASTER:기교 ++
	CASE 9 ;KR판 오리지날, 일판은 기력상한 300 증가
		;신규
		ITEM:미라다의돌 += 1
		PRINTFORMW 애욕을 독점하는 미라다의돌밀레니엄을 얻었습니다.
	CASE 10 ;KR판 오리지날, 일판은 카리스마 100
		ITEM:미라다의돌 += 1
		PRINTFORMW 애욕을 독점하는 미라다의돌밀레니엄을 얻었습니다.
	CASE 11
		ITEM:미라다의돌 += 1
		PRINTFORMW 애욕을 독점하는 미라다의돌밀레니엄을 얻었습니다.
ENDSELECT

@BONUS_NAME_3(ARG)
#FUNCTIONS
SELECTCASE ARG
	CASE 1
		RETURNF "【일광욕】"
	CASE 2
		RETURNF "기교 UP"
	CASE 3
		RETURNF "【수수께끼의매력】"
	CASE 4
		RETURNF "【회복 빠름】"
	CASE 5
		RETURNF "생리주기가시화"
	CASE 6
		RETURNF "【월광욕】"
	CASE 7
		RETURNF "【매력】"
	CASE 8
		RETURNF "기교 UP"
	CASE 9
		RETURNF "미라다의 돌"
	CASE 10
		RETURNF "미라다의 돌"
	CASE 11
		RETURNF "미라다의 돌"
ENDSELECT

@REMOVABLE_BONUS_3(ARG)
#FUNCTION
SELECTCASE ARG
	CASE 1,3, 4, 5,6, 7
		RETURNF 1
	CASEELSE
		RETURNF 0
ENDSELECT

;----------------------------------------
;잉태 보너스
;----------------------------------------

@PRINT_BONUS_4
#DIM 잉태종족수
VARSET BONUS_4_ABLE
FOR LOCAL,1,CHARANUM
	;임신하고 있어 출산경험 있어
	;추가 종족 관계로 1 캐릭터로 2종류를 획득할 수 있는 경우도 있다(인형+메이드 루코토)
	IF CFLAG:LOCAL:임신경과일수 || CFLAG:LOCAL:아이인원수
		SIF CHECK_CHARA(LOCAL, "무녀")
			BONUS_4_ABLE:2 = 1
		SIF CHECK_CHARA(LOCAL, "요정")
			BONUS_4_ABLE:3 = 1
		SIF CHECK_CHARA(LOCAL, "신령")
			BONUS_4_ABLE:4 = 1
		SIF CHECK_CHARA(LOCAL, "츠쿠모가미")
			BONUS_4_ABLE:5 = 1
		SIF CHECK_CHARA(LOCAL, "오니")
			BONUS_4_ABLE:6 = 1
		SIF CHECK_CHARA(LOCAL, "텐구")
			BONUS_4_ABLE:7 = 1
		SIF CHECK_CHARA(LOCAL, "봉래인")
			BONUS_4_ABLE:8 = 1
		;오니と텐구は別途
		SIF CHECK_CHARA(LOCAL, "요괴") && !CHECK_CHARA(LOCAL, "오니") && !CHECK_CHARA(LOCAL, "텐구")
			BONUS_4_ABLE:9 = 1
		SIF CHECK_CHARA(LOCAL, "마법사")
			BONUS_4_ABLE:10 = 1
		SIF CHECK_CHARA(LOCAL, "유령")
			BONUS_4_ABLE:11 = 1
		SIF CHECK_CHARA(LOCAL, "인형")
			BONUS_4_ABLE:12 = 1
		SIF CHECK_CHARA(LOCAL, "메이드")
			BONUS_4_ABLE:14 = 1
	ENDIF
NEXT
;BONUS_4_ABLE:2～12、14の合計
잉태종족수 = SUMARRAY(BONUS_4_ABLE, 2, 13) + BONUS_4_ABLE:14
SIF (잉태종족수) >= 5
	BONUS_4_ABLE:1 = 1

BONUS_4_DESCRIPTION:1 = 5종족 이상
BONUS_4_DESCRIPTION:2 = 무녀
BONUS_4_DESCRIPTION:3 = 요정
BONUS_4_DESCRIPTION:4 = 신령
BONUS_4_DESCRIPTION:5 = 츠쿠모가미
BONUS_4_DESCRIPTION:6 = 오니
BONUS_4_DESCRIPTION:7 = 텐구
BONUS_4_DESCRIPTION:8 = 봉래인
BONUS_4_DESCRIPTION:9 = 요괴
BONUS_4_DESCRIPTION:10 = 마법사
BONUS_4_DESCRIPTION:11 = 유령
BONUS_4_DESCRIPTION:12 = 인형

BONUS_4_DESCRIPTION:13 = 스친 상대
BONUS_4_DESCRIPTION:14 = 메이드

SIF FLAG:스침잉태수
	BONUS_4_ABLE:13 = 1

FOR LOCAL,1, 15
	SIF GETBIT (GLOBAL_BONUS:7, LOCAL)
		BONUS_4_ABLE:LOCAL = 1
NEXT

PRINTFORML ★현재의 잉태종족수：{잉태종족수, 2}종
FOR LOCAL,1,15
	SIF BONUS_4_DESCRIPTION:LOCAL == ""
		CONTINUE
	IF !BONUS_4_ABLE:LOCAL && !GETBIT (FLAG:잉태보너스취득상황, LOCAL)
		PRINTPLAINFORM [{LOCAL}] - 해방 조건：%조사처리(BONUS_4_DESCRIPTION:LOCAL,"를")% 잉태 - %BONUS_NAME_4(LOCAL)%
	ELSE
		IF GETBIT (FLAG:잉태보너스취득상황, LOCAL)
			IF !REMOVABLE_BONUS_4(LOCAL)
				SETCOLOR 100, 100, 100
				PRINTPLAINFORM [{LOCAL}] - %BONUS_4_DESCRIPTION:LOCAL%잉태 보너스【완료】%BONUS_NAME_4(LOCAL)%
			ELSE
				IF !BONUS_4_ABLE:LOCAL
					SETCOLOR C_ORANGE
				ELSE
					SETCOLOR C_P_BLUE
				ENDIF
				PRINTFORM [{LOCAL}] - %BONUS_4_DESCRIPTION:LOCAL%잉태 보너스【완료】%BONUS_NAME_4(LOCAL)%
			ENDIF
		ELSE
			SETCOLOR C_AQUA
			PRINTFORM [{LOCAL}] - %조사처리(BONUS_4_DESCRIPTION:LOCAL,"를")% 잉태
		ENDIF
		RESETCOLOR
	ENDIF
	PRINTL
NEXT

@REWARD_BONUS_4(ARG)
SIF GETBIT (FLAG:잉태보너스취득상황, ARG) && !REMOVABLE_BONUS_4(ARG)
	RETURN
IF !BONUS_4_ABLE:ARG
	;주회 후, 채우지 않지만 취득하고 있는 상태
	IF GETBIT (FLAG:잉태보너스취득상황, ARG)
		CALL BONUS_CAUTION
		SIF RESULT
			RETURN
	ELSE
		RETURN
	ENDIF
ENDIF
INVERTBIT FLAG:잉태보너스취득상황, ARG
SIF !GETBIT (FLAG:잉태보너스취득상황, ARG)
	RETURN
SELECTCASE ARG
	CASE 1
		PRINTW 【만능잉태】를 얻었습니다.
	CASE 2
		PRINTW 【무녀잉태】를 얻었습니다.
	CASE 3
		PRINTW 【요정잉태】를 얻었습니다.
	CASE 4
		PRINTW 【신령잉태】를 얻었습니다.
	CASE 5
		PRINTW 【츠쿠모가미잉태】를 얻었습니다.
	CASE 6
		PRINTW 【오니잉태】를 얻었습니다.
	CASE 7
		PRINTW 【텐구잉태】를 얻었습니다.
	CASE 8
		PRINTW 【봉래잉태】를 얻었습니다.
	CASE 9
		PRINTW 【요괴잉태】를 얻었습니다.
	CASE 10
		PRINTW 【금단의지식】을 얻었습니다.
		TALENT:MASTER:금단의지식 = 1
	CASE 11
		PRINTW 【유령잉태】를 얻었습니다.
	CASE 12
		PRINTW 【인형잉태】를 얻었습니다.
	CASE 13 ;KR판 오리지날, 일판은 기력상한 300 증가
		;신규
		IF !TALENT:MASTER:조합지식
			PRINTW 【조합지식】을 얻었습니다.
			TALENT:MASTER:조합지식 = 1
		ELSEIF TALENT:MASTER:조합지식 < 6
			PRINTW 【조합지식】의 레벨이 올랐습니다.
			TALENT:MASTER:조합지식 ++
		ELSE
			PRINTW 【조합지식】의 레벨은 이미 최대입니다.
		ENDIF
	CASE 14
		;新規
		PRINTW 요리경험을 얻었습니다.
		EXP:MASTER:요리경험 += 150
ENDSELECT

@BONUS_NAME_4(ARG)
#FUNCTIONS
SELECTCASE ARG
	CASE 1
		RETURNF "【만능잉태】"
	CASE 2
		RETURNF "【무녀잉태】"
	CASE 3
		RETURNF "【요정잉태】"
	CASE 4
		RETURNF "【신령잉태】"
	CASE 5
		RETURNF "【츠쿠모가미잉태】"
	CASE 6
		RETURNF "【오니잉태】"
	CASE 7
		RETURNF "【텐구잉태】"
	CASE 8
		RETURNF "【봉래잉태】"
	CASE 9
		RETURNF "【요괴잉태】"
	CASE 10
		RETURNF "【금단의지식】"
	CASE 11
		RETURNF "【유령잉태】"
	CASE 12
		RETURNF "【인형잉태】"
	CASE 13
		RETURNF "【조합지식】"
	CASE 14
		RETURNF "요리경험+150"
ENDSELECT

@REMOVABLE_BONUS_4(ARG)
#FUNCTION
SELECTCASE ARG
	;거의 모두 1이므로 ELSE가 외와는 역
	CASE 10, 13, 14
		RETURNF 0
	CASEELSE
		RETURNF 1
ENDSELECT

;----------------------------------------
;기능 보너스
;----------------------------------------

@PRINT_BONUS_5

#DIM 음유인원수
#DIM 음호인원수
#DIM 항문광인원수
#DIM 키스마인원수
#DIM 자위중독인원수
음유인원수 = 0
음호인원수 = 0
항문광인원수 = 0
키스마인원수 = 0
자위중독인원수 = 0

VARSET BONUS_5_ABLE

FOR LOCAL,1,CHARANUM
	SIF TALENT:LOCAL:음유 || GETBIT (CFLAG:LOCAL:인계, 5)
		음유인원수 ++
	SIF TALENT:LOCAL:음호 || GETBIT (CFLAG:LOCAL:인계, 3)
		음호인원수 ++
	SIF TALENT:LOCAL:항문광 || GETBIT (CFLAG:LOCAL:인계, 4)
		항문광인원수 ++
	SIF TALENT:LOCAL:키스마 || GETBIT (CFLAG:LOCAL:인계, 6)
		키스마인원수 ++
	SIF TALENT:LOCAL:자위중독
		자위중독인원수 ++
NEXT

BONUS_5_DESCRIPTION:1 = 자위중독 3명
SIF 자위중독인원수 >= 3
	BONUS_5_ABLE:1 = 1

BONUS_5_DESCRIPTION:2 = 음유 3명
SIF 음유인원수 >= 3
	BONUS_5_ABLE:2 = 1

BONUS_5_DESCRIPTION:3 = 음호 3명
SIF 음호인원수 >= 3
	BONUS_5_ABLE:3 = 1

BONUS_5_DESCRIPTION:4 = 항문광 3명
SIF 항문광인원수 >= 3
	BONUS_5_ABLE:4 = 1

BONUS_5_DESCRIPTION:5 = 키스마 3명
SIF 키스마인원수 >= 3
	BONUS_5_ABLE:5 = 1

FOR LOCAL,1, 6
	SIF GETBIT (GLOBAL_BONUS:8, LOCAL)
		BONUS_5_ABLE:LOCAL = 1
NEXT

PRINTFORML ★현재의 자위중독：{자위중독인원수, 3}명/음유：{음유인원수, 3}명/음호：{음호인원수, 3}명/항문광：{항문광인원수, 3}명/키스마：{키스마인원수, 3}명
SIF FLAG:주회수
	PRINTFORML 　(자위중독 이외는 과거에 취득한 것이 있는 캐릭터도 포함됩니다)
FOR LOCAL,1,6
	;스키마가 없기 때문에
;	SIF BONUS_5_DESCRIPTION:LOCAL == ""
;		CONTINUE
	IF !BONUS_5_ABLE:LOCAL && !GETBIT (FLAG:기능보너스취득상황, LOCAL)
		PRINTPLAINFORM [{LOCAL}] - 해방 조건：%BONUS_5_DESCRIPTION:LOCAL% - %BONUS_NAME_5(LOCAL)%
	ELSE
		IF GETBIT (FLAG:기능보너스취득상황, LOCAL)
			IF !REMOVABLE_BONUS_5(LOCAL)
				SETCOLOR 100, 100, 100
				PRINTPLAINFORM [{LOCAL}] - %BONUS_5_DESCRIPTION:LOCAL%보너스【완료】%BONUS_NAME_5(LOCAL)%
			ELSE
				IF !BONUS_5_ABLE:LOCAL
					SETCOLOR C_ORANGE
				ELSE
					SETCOLOR C_P_BLUE
				ENDIF
				PRINTFORM [{LOCAL}] - %BONUS_5_DESCRIPTION:LOCAL%보너스【완료】%BONUS_NAME_5(LOCAL)%
			ENDIF
		ELSE
			SETCOLOR C_AQUA
			PRINTFORM [{LOCAL}] - %BONUS_5_DESCRIPTION:LOCAL%
		ENDIF
		RESETCOLOR
	ENDIF
	PRINTL
NEXT

@REWARD_BONUS_5(ARG)
SIF GETBIT (FLAG:기능보너스취득상황, ARG) && !REMOVABLE_BONUS_5(ARG)
	RETURN
IF !BONUS_5_ABLE:ARG
	;주회 후, 채우지 않지만 취득하고 있는 상태
	IF GETBIT (FLAG:기능보너스취득상황, ARG)
		CALL BONUS_CAUTION
		SIF RESULT
			RETURN
	ELSE
		RETURN
	ENDIF
ENDIF
INVERTBIT FLAG:기능보너스취득상황, ARG
SIF !GETBIT (FLAG:기능보너스취득상황, ARG)
	RETURN
SELECTCASE ARG
	CASE 1
		PRINTW 【C둔감무시】를 얻었습니다.
	CASE 2
		PRINTW 【B둔감무시】를 얻었습니다.
	CASE 3
		PRINTW 【V둔감무시】를 얻었습니다.
	CASE 4
		PRINTW 【A둔감무시】를 얻었습니다.
	CASE 5
		PRINTW 【매혹】을 얻었습니다.
ENDSELECT

@BONUS_NAME_5(ARG)
#FUNCTIONS
SELECTCASE ARG
	CASE 1
		RETURNF "【C둔감무시】"
	CASE 2
		RETURNF "【B둔감무시】"
	CASE 3
		RETURNF "【V둔감무시】"
	CASE 4
		RETURNF "【A둔감무시】"
	CASE 5
		RETURNF "【매혹】"
ENDSELECT

@REMOVABLE_BONUS_5(ARG)
#FUNCTION
;모두 1
RETURNF 1

SELECTCASE ARG
	CASE 0
		RETURNF 0
	CASEELSE
ENDSELECT

;----------------------------------------
;탄막승부 보너스
;----------------------------------------
@PRINT_BONUS_6
PRINTFORML ★현재의 탄막승부승리 인원수：{탄막승부승리카운트(), 4}명
FOR LOCAL, 1,7
	IF !GETBIT (FLAG:탄막승부보너스취득상황, LOCAL) && !CONDITION_탄막승부보너스(LOCAL, 1)
		IF LOCAL != 6
			PRINTPLAINFORM [{LOCAL}] - 해방 조건：탄막승부승리 {CONDITION_탄막승부보너스(LOCAL)}명 이상 - %BONUS_NAME_6(LOCAL)%
		ELSE
			PRINTPLAINFORM [{LOCAL}] - 해방 조건：요리히메와 헤카티아에게 탄막승부로 승리한다
		ENDIF
	ELSE
		IF GETBIT (FLAG:탄막승부보너스취득상황, LOCAL)
			IF !REMOVABLE_BONUS_6(LOCAL)
				SETCOLOR 100, 100, 100
				PRINTPLAINFORM [{LOCAL}] - 탄막승부승리 {CONDITION_탄막승부보너스(LOCAL)}명 보너스【완료】- %BONUS_NAME_6(LOCAL)%
			ELSE
				IF !CONDITION_탄막승부보너스(LOCAL, 1)
					SETCOLOR C_ORANGE
				ELSE
					SETCOLOR C_P_BLUE
				ENDIF
				IF LOCAL != 6
					PRINTFORM [{LOCAL}] - 탄막승부승리 {CONDITION_탄막승부보너스(LOCAL)}명 보너스【완료】- %BONUS_NAME_6(LOCAL)%
				ELSE
					PRINTFORM [{LOCAL}] - 요리히메와 헤카티아에게 탄막승부로 승리한 보너스【완료】%BONUS_NAME_6(LOCAL)%
				ENDIF
			ENDIF
		ELSE
			SETCOLOR C_AQUA
			IF LOCAL != 6
				PRINTFORM [{LOCAL}] - 탄막승부승리 {CONDITION_탄막승부보너스(LOCAL)}명 보너스
			ELSE
				PRINTFORM [{LOCAL}] - 요리히메와 헤카티아에게 탄막승부로 승리한 보너스
			ENDIF
		ENDIF
		RESETCOLOR
	ENDIF
	PRINTL
NEXT

@CONDITION_탄막승부보너스(ARG, ARG:1)
;ARG:1이 진이라면 보너스 잡힐까 돌려준다
#FUNCTION
#DIM 필요수

SELECTCASE ARG
	CASE 1
		필요수 = 10
	CASE 2
		필요수 = 25
	CASE 3
		필요수 = 50
	CASE 4
		필요수 = 75
	CASE 5
		필요수 = 100
ENDSELECT

IF ARG:1
	IF GETBIT (GLOBAL_BONUS:9, ARG)
		RETURNF 1
	ELSEIF 탄막승부승리카운트() >= 필요수 && ARG < 6
		RETURNF 1
	ELSEIF CFLAG:98:탄막승부승리 && CFLAG:113:탄막승부승리 && ARG == 6
		RETURNF 1
	ELSE
		RETURNF 0
	ENDIF
ELSE
	RETURNF 필요수
ENDIF

@REWARD_BONUS_6(ARG)
SIF GETBIT (FLAG:탄막승부보너스취득상황, ARG)
	RETURN
IF !CONDITION_탄막승부보너스(ARG, 1)
	;주회 후, 채우지 않지만 취득하고 있는 상태
	IF GETBIT (FLAG:탄막승부보너스취득상황, ARG)
		CALL BONUS_CAUTION
		SIF RESULT
			RETURN
	ELSE
		RETURN
	ENDIF
ENDIF
INVERTBIT FLAG:탄막승부보너스취득상황, ARG
SIF !GETBIT (FLAG:탄막승부보너스취득상황, ARG)
	RETURN
SELECTCASE ARG
	CASE 1
		PRINTW 전투경험을 얻었습니다.
		EXP:MASTER:전투경험 += 30
	CASE 2
		PRINTL 【그레이즈능숙함】을 얻었습니다.
		PRINTW 탄막승부에서 「회피에 전념한다」를 선택했을 때에 받는 대미지가 줄어듭니다.
	CASE 3
		PRINTW 체력의 상한이 올랐습니다.
		MAXBASE:MASTER:체력 += 300
	CASE 4
		PRINTL 【영력충전】을 얻었습니다.
		PRINTW 탄막승부에서 「회피에 전념한다」를 선택한 직후의 주사위값이 증가합니다.
	CASE 5
		PRINTL 【익스텐드】를 얻었습니다.
		PRINTW 탄막승부에서 초기 잔기가 +1됩니다.
	CASE 6
		PRINTL 【루나슈터】를 얻었습니다.
		PRINTW 탄막승부에서 폭탄의 소지수가 +1되고 폭탄의 효과치가 오릅니다.
	CASEELSE
		RETURN
ENDSELECT

@BONUS_NAME_6(ARG)
#FUNCTIONS
SELECTCASE ARG
	CASE 1
		RETURNF "전투경험 +30"
	CASE 2
		RETURNF "【그레이즈능숙함】"
	CASE 3
		RETURNF "최대 체력 +300"
	CASE 4
		RETURNF "【영력충전】"
	CASE 5
		RETURNF "【익스텐드】"
	CASE 6
		RETURNF "【루나슈터】"
ENDSELECT

@REMOVABLE_BONUS_6(ARG)
#FUNCTION
;모두 1
RETURNF 1

SELECTCASE ARG
	CASE 0
		RETURNF 0
	CASEELSE
ENDSELECT

@탄막승부승리카운트
#FUNCTION
#DIM 탄막승부승리카운트
탄막승부승리카운트 = 0
FOR LOCAL, 1, CHARANUM
	SIF CFLAG:LOCAL:탄막승부승리
		탄막승부승리카운트 ++
NEXT
RETURNF 탄막승부승리카운트

;----------------------------------------
;KR판 오리지날, 기술보너스
;----------------------------------------

@PRINT_BONUS_7
VARSET BONUS_7_ABLE

BONUS_7_DESCRIPTION:1 = 교양 5이상
SIF ABL:MASTER:교양 >= 5
	BONUS_7_ABLE:1 = 1

BONUS_7_DESCRIPTION:2 = 화술기능 5이상
SIF ABL:MASTER:화술기능 >= 5
	BONUS_7_ABLE:2 = 1

BONUS_7_DESCRIPTION:3 = 전투능력 5이상
SIF ABL:MASTER:전투능력 >= 5
	BONUS_7_ABLE:3 = 1

BONUS_7_DESCRIPTION:4 = 청소기능 5이상
SIF ABL:MASTER:청소기능 >= 5
	BONUS_7_ABLE:4 = 1

BONUS_7_DESCRIPTION:5 = 요리기능 5이상
SIF ABL:MASTER:요리기능 >= 5
	BONUS_7_ABLE:5 = 1

BONUS_7_DESCRIPTION:6 = 음악기능 5이상
SIF ABL:MASTER:음악기능 >=5
	BONUS_7_ABLE:6 = 1

BONUS_7_DESCRIPTION:7 = 허리기술 5이상
SIF ABL:MASTER:허리 >= 5
	BONUS_7_ABLE:7 = 1

FOR LOCAL,1, 8
	SIF GETBIT (GLOBAL_BONUS_KR:0, LOCAL)
		BONUS_7_ABLE:LOCAL = 1
NEXT

PRINTFORML ★교양: {ABL:MASTER:교양} / 화술기능: {ABL:MASTER:화술기능} / 전투능력: {ABL:MASTER:전투능력} / 청소기능: {ABL:MASTER:청소기능} / 음악기능: {ABL:MASTER:음악기능} / 허리기술: {ABL:MASTER:허리}
FOR LOCAL, 1,8
	IF !BONUS_7_ABLE:LOCAL && !GETBIT (FLAG:기술보너스취득상황, LOCAL)
		PRINTPLAINFORM [{LOCAL}] - 해방 조건：%BONUS_7_DESCRIPTION:LOCAL%  - %BONUS_NAME_7(LOCAL)%
	ELSE
		IF GETBIT (FLAG:기술보너스취득상황, LOCAL)
			IF !REMOVABLE_BONUS_7(LOCAL)
				SETCOLOR 100, 100, 100
				PRINTPLAINFORM [{LOCAL}] - %BONUS_7_DESCRIPTION:LOCAL%보너스【완료】%BONUS_NAME_7(LOCAL)%
			ELSE
				IF !BONUS_7_ABLE:LOCAL
					SETCOLOR C_ORANGE
				ELSE
					SETCOLOR C_P_BLUE
				ENDIF
				PRINTFORM [{LOCAL}] - %BONUS_7_DESCRIPTION:LOCAL%보너스【완료】%BONUS_NAME_7(LOCAL)%
			ENDIF
		ELSE
			SETCOLOR C_AQUA
			PRINTFORM [{LOCAL}] - %BONUS_7_DESCRIPTION:LOCAL%보너스 - %BONUS_NAME_7(LOCAL)%
		ENDIF
		RESETCOLOR
	ENDIF
	PRINTL
NEXT

@REWARD_BONUS_7(ARG)
SIF GETBIT (FLAG:기술보너스취득상황, ARG) && !REMOVABLE_BONUS_7(ARG)
	RETURN
IF !BONUS_7_ABLE:ARG
	;주회 후, 채우지 않지만 취득하고 있는 상태
	IF GETBIT (FLAG:기술보너스취득상황, ARG)
		CALL BONUS_CAUTION
		SIF RESULT
			RETURN
	ELSE
		RETURN
	ENDIF
ENDIF
INVERTBIT FLAG:기술보너스취득상황, ARG
SIF !GETBIT (FLAG:기술보너스취득상황, ARG)
	RETURN
SELECTCASE ARG
	CASE 1
		PRINTL 【방중술】을 얻었습니다.
		PRINTW 사정시 사정자와 피사정자의 기력이 소량 회복되며 총 기력이 소량 증가합니다.
	CASE 2
		PRINTL 【달변】를 얻었습니다.
		PRINTW 대화하다가 어색해지지 않습니다.
	CASE 3
		PRINTL 【채음보양】를 얻었습니다.
		PRINTW 사정시 피사정자의 체력을 사정자가 일부 가져가며 사정자의 총 체력이 오릅니다.
	CASE 4
		PRINTL 청소기를 얻었습니다.
		PRINTW 청소 시간이 빨라집니다
		ITEM:910 = 1
	CASE 5
		PRINTL 간편 요리 도구를 얻었습니다.
		PRINTW 어디서든 요리할 수 있습니다. 단, 경식만 가능합니다.
		ITEM:911 = 1
	CASE 6
		PRINTW 【습득 빠름】를 얻었습니다.
	CASE 7
		PRINTL 【채양보음】를 얻었습니다.
		PRINTW 사정시 사정자의 체력을 피사정자에게 나눠주며 피사정자의 총 체력이 오릅니다.
ENDSELECT

@BONUS_NAME_7(ARG)
#FUNCTIONS
SELECTCASE ARG
	CASE 1
		RETURNF "【방중술】"
	CASE 2
		RETURNF "【달변】"
	CASE 3
		RETURNF "【채음보양】"
	CASE 4
		RETURNF "청소기"
	CASE 5
		RETURNF "간편 요리 도구"
	CASE 6
		RETURNF "【습득 빠름】"
	CASE 7
		RETURNF "【채양보음】"
ENDSELECT

@REMOVABLE_BONUS_7(ARG)
#FUNCTION
SELECTCASE ARG
	;거의 모두 1이므로 ELSE가 외와는 역
	CASE 4, 5
		RETURNF 0
	CASEELSE
		RETURNF 1
ENDSELECT

;----------------------------------------

@실적플래그이행
SIF GETBIT (FLAG:701,0)
	SETBIT FLAG:호감도보너스취득상황, 1
SIF GETBIT (FLAG:701,12)
	SETBIT FLAG:호감도보너스취득상황, 2
SIF GETBIT (FLAG:701,2)
	SETBIT FLAG:호감도보너스취득상황, 3
;호감도보너스의 위치짐작은 안면 30명에게 이동
;SIF GETBIT (FLAG:701,3)
;	SETBIT FLAG:호감도보너스취득상황, 4
SIF GETBIT (FLAG:701,5)
	SETBIT FLAG:호감도보너스취득상황, 5
SIF GETBIT (FLAG:701,9)
	SETBIT FLAG:호감도보너스취득상황, 6

;위치짐작
SIF GETBIT (FLAG:701,3)
	SETBIT FLAG:안면보너스취득상황, 2
;집합
SIF GETBIT (FLAG:701,10)
	SETBIT FLAG:안면보너스취득상황, 3

;천객만래는 안면에
SIF GETBIT (FLAG:701,8)
	SETBIT FLAG:안면보너스취득상황, 5

SIF GETBIT (FLAG:701,1)
	SETBIT FLAG:팬티보너스취득상황, 1
SIF GETBIT (FLAG:701,16)
	SETBIT FLAG:팬티보너스취득상황, 2
SIF GETBIT (FLAG:701,4)
	SETBIT FLAG:팬티보너스취득상황, 3
SIF GETBIT (FLAG:701,13)
	SETBIT FLAG:팬티보너스취득상황, 4
SIF GETBIT (FLAG:701,15)
	SETBIT FLAG:팬티보너스취득상황, 5
IF GETBIT (FLAG:701,7)
	SETBIT FLAG:팬티보너스취득상황, 6
	SETBIT FLAG:팬티보너스취득상황, 8
ENDIF
;회복 빠름은 연인에
SIF GETBIT (FLAG:701,6)
	SETBIT FLAG:함락보너스취득상황, 4
;연모 5명의 가시화는 생해금에
SIF GETBIT (FLAG:702,10)
	SETBIT FLAG:함락보너스취득상황, 5

;시간경험 100으로부터 섹프에
SIF GETBIT (FLAG:702,8)
	SETBIT FLAG:함락보너스취득상황, 6

;지설 3
SIF GETBIT (FLAG:702,0)
	SETBIT FLAG:기능보너스취득상황, 1
;음유 5
SIF GETBIT (FLAG:702,1)
	SETBIT FLAG:기능보너스취득상황, 2
;음호 5명
SIF GETBIT (FLAG:702,2)
	SETBIT FLAG:기능보너스취득상황, 3
;항문광 5명
SIF GETBIT (FLAG:702,3)
	SETBIT FLAG:기능보너스취득상황, 4
;키스마 5
SIF GETBIT (FLAG:702,4)
	SETBIT FLAG:기능보너스취득상황, 5

SIF GETBIT (FLAG:702,5)
	SETBIT FLAG:함락보너스취득상황, 1
;가시화는 보존하고 있지 않기 때문에 2는 스킵
SIF GETBIT (FLAG:702,6)
	SETBIT FLAG:함락보너스취득상황, 3
SIF GETBIT (FLAG:702,7)
	SETBIT FLAG:함락보너스취득상황, 4


code:
;---------------------------------------------------------------------
;ITEMの細かい分類等をまとめて設定する関数
;主に통신판매をはじめショップ用
;SALES  0=購入可, -1=売切, -2=封印, ただしまとめ買いできるものはITEMSALES:ARGを返す
;ARG:1  補足用の引数,値段の割引など
;---------------------------------------------------------------------
@ITEMDATA(ARG, ARGS, ARG:1)
SELECTCASE ITEMNAME:ARG
;무효인 아이템
CASE ""
	RETURN 0
CASE "로터",
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		SIF !RESULT
			ITEM:ARG ++
	CASE "TYPE:조교", "TYPE:캇파 도구", "TYPE:로터", "SHOP:통신판매", "SHOP:캇파의 도구점", "SHOP:진찰"
		RETURN 1
	ENDSELECT
CASE "E마사지기", "클리캡", "오나홀", "바이브", "애널바이브", "유두캡", "착유기", "페니스밴드", "눈가리개", "밧줄", "플레이매트", "에이프런", "【포박기능】"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		SIF !RESULT
			ITEM:ARG ++
	CASE "TYPE:조교", "TYPE:캇파 도구", "SHOP:통신판매", "SHOP:캇파의 도구점", "SHOP:진찰"
		RETURN 1
	ENDSELECT
CASE  "애널비즈", "空気ポンプ", "확장벌룬", "浣腸器＋プラグ", "鞭", "針", "볼개그", "비디오카메라", "大鏡", "首輪", "電極プラグ", "触手使役術"
	;현재 미실장
CASE "스카우터", "슈터깁스", "조제용품 세트", "보온전기밥통", "낚싯대", "믹서", "곤충채집세트"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		SIF !RESULT
			ITEM:ARG ++
	CASE "TYPE:일용품", "TYPE:캇파 도구", "SHOP:통신판매", "SHOP:캇파의 도구점"
		RETURN 1
	ENDSELECT
CASE "전기톱"
	;전기톱は通販で買えない
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		SIF !RESULT
			ITEM:ARG ++
	CASE "TYPE:일용품", "TYPE:캇파 도구", "SHOP:캇파의 도구점"
		RETURN 1
	ENDSELECT
CASE "간이풀장"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		SIF !RESULT
			ITEM:ARG ++
	CASE "TYPE:일용품", "TYPE:캇파 도구", "TYPE:개조가능", "SHOP:통신판매", "SHOP:캇파의 도구점"
		RETURN 1
	ENDSELECT
CASE "접는우산"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		IF !RESULT
			ITEM:ARG ++
			PRINTFORMW 새로운 것을 샀으므로 망가진우산은 처분했습니다
			ITEM:망가진우산 = 0
		ENDIF
	CASE "TYPE:일용품", "TYPE:캇파 도구", "SHOP:통신판매", "SHOP:캇파의 도구점"
		RETURN 1
	ENDSELECT
CASE "키보드", "피아노", "기타", "트럼펫", "바이올린"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		SIF !RESULT
			ITEM:ARG ++
	CASE "TYPE:일용품", "TYPE:캇파 도구", "SHOP:통신판매", "SHOP:캇파의 도구점"
		RETURN 1
	ENDSELECT
CASE "덫사냥용품【소형】", "덫사냥용품【중형】", "덫사냥용품【대형】"
	SELECTCASE ARGS
	CASE "SALES"
		;無限に補充される
		RETURN 99
	CASE "구입"
		CALL ITEM_MATOMEGAI(ARG, ARG:1)
	CASE "TYPE:소모품", "TYPE:캇파 도구", "SHOP:통신판매", "SHOP:캇파의 도구점"
		RETURN 1
	ENDSELECT
CASE "로션", "콘돔", "피임약"
	SELECTCASE ARGS
	CASE "SALES"
		;無限に補充される
		RETURN 99
	CASE "구입"
		CALL ITEM_MATOMEGAI(ARG, ARG:1)
	CASE "TYPE:소모품", "TYPE:토끼 약품", "SHOP:통신판매"
		RETURN 1
	ENDSELECT
CASE "미약", "이뇨제"
	SELECTCASE ARGS
	CASE "SALES"
		IF ABL:MASTER:교양 >= 2
			;無限に補充される
			RETURN 99
		ELSE
			RETURN -2
		ENDIF
	CASE "구입"
		CALL ITEM_MATOMEGAI(ARG, ARG:1)
	CASE "TYPE:소모품", "SHOP:통신판매"
		RETURN 1
	ENDSELECT
CASE "역서", "미라다의돌", "리버스페더"
	SELECTCASE ARGS
	CASE "TYPE:소모품"
		RETURN 1
	ENDSELECT
CASE "붕대"
	SELECTCASE ARGS
	CASE "SALES"
		;無限に補充される
		RETURN 99
	CASE "구입"
		CALL ITEM_MATOMEGAI(ARG, ARG:1)
	CASE "TYPE:소모품", "TYPE:토끼 약품"
		RETURN 1
	ENDSELECT
CASE "ビデオテープ", "フィルム", "低温蝋燭"
	;현재 미실장
CASE "싸구려식재", "상급식재", "고급식재", "감미재"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEMSALES:ARG <= 0
			RETURN -1
		ELSE
			RETURN ITEMSALES:ARG
		ENDIF
	CASE "구입"
		CALL ITEM_MATOMEGAI(ARG, ARG:1)
	CASE "TYPE:식재료", "SHOP:식료품점", "SHOP:통신판매"
		RETURN 1
	ENDSELECT
CASE "탁주", "청주", "오니고로시", "감주"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEMSALES:ARG <= 0
			RETURN -1
		ELSE
			RETURN ITEMSALES:ARG
		ENDIF
	CASE "구입"
		CALL ITEM_MATOMEGAI(ARG, ARG:1)
	CASE "TYPE:주류", "SHOP:술집", "SHOP:통신판매"
		RETURN 1
	ENDSELECT
CASE "신주", "증류주", "약주", "하룻밤의쿠시나다"
	;비매품
	SELECTCASE ARGS
	CASE "TYPE:주류"
		RETURN 1
	ENDSELECT
;(酒造パッチ)アイテム追加
CASE "고구마소주", "벌꿀주", "과일와인", "프랑부아즈", "화이트럼", "와인", "골드럼", "다크럼", "주정강화와인", "귀부와인", "숙성와인", "빈티지와인", "브랜디VS", "브랜디VSOP", "브랜디XO", "아쿠모찌자케", "포머스브랜디", "레이무의쿠치카미자케", "사나에의쿠치카미자케", "레이무와사나에의쿠치카미자케"
	;非売品
	SELECTCASE ARGS
	CASE "TYPE:주류"
		RETURN 1
	ENDSELECT
CASE "매실주", "", "", "", "", "", ""
	;현재 미실장
CASE "크리스마스선물"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		IF !RESULT
			ITEM:ARG ++
			PRINTFORMW 겨울의 24일 한정으로, 데이트 중에 건네줄 수 있습니다
		ENDIF
	CASE "TYPE:일용품", "SHOP:통신판매"
		RETURN 1
	ENDSELECT
CASE "과자상자"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		SIF !RESULT
			ITEM:ARG ++
	CASE "TYPE:일용품", "SHOP:통신판매"
		RETURN 1
	ENDSELECT
CASE "山吹色の菓子折り", "白装束", "風呂敷", "エンゲージリング"
	;現座未実装
CASE "원예용품일식"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		SIF !RESULT
			ITEM:ARG ++
	CASE "TYPE:원예용품", "SHOP:꽃집"
		RETURN 1
	ENDSELECT
CASE "양배추의모종", "딸기의모종", "순무의모종", "오이의모종", "토마토의모종", "양파의모종", "수박의모종", "가지의모종", "고구마의모종", "호박의모종", "배추의모종", "당근의모종", "파의모종", "로터의모종", "거름"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEMSALES:ARG <= 0
			RETURN -1
		ELSE
			RETURN ITEMSALES:ARG
		ENDIF
	CASE "구입"
		CALL ITEM_MATOMEGAI(ARG, ARG:1)
	CASE "TYPE:원예용품", "SHOP:꽃집"
		RETURN 1
	ENDSELECT
CASE "양배추", "딸기", "순무", "오이", "토마토", "양파", "수박", "가지", "고구마", "호박", "배추", "당근", "파"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEMSALES:ARG <= 0
			RETURN -1
		ELSE
			RETURN ITEMSALES:ARG
		ENDIF
	CASE "구입"
		CALL ITEM_MATOMEGAI(ARG, ARG:1)
	CASE "TYPE:야채", "SHOP:야채가게"
		RETURN 1
	ENDSELECT
CASE "짐승고기", "새고기"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEMSALES:ARG <= 0
			RETURN -1
		ELSE
			RETURN ITEMSALES:ARG
		ENDIF
	CASE "구입"
		CALL ITEM_MATOMEGAI(ARG, ARG:1)
	CASE "TYPE:고기", "SHOP:식료품점"
		RETURN 1
	ENDSELECT
CASE "구리꿩", "정체불명고기"
	;비매품
	SELECTCASE ARGS
	CASE "TYPE:고기"
		RETURN 1
	ENDSELECT
CASE "개구리", "물고기", "맛있는물고기", "벌레", "희귀한벌레"
	SELECTCASE ARGS
	CASE "TYPE:고기"
		RETURN 1
	ENDSELECT
CASE "블랙썬더", "초콜릿", "고급초콜릿", "진심초콜릿"
	SELECTCASE ARGS
	CASE "TYPE:초콜릿"
		RETURN 1
	ENDSELECT
CASE "녹즙", "불끈불끈Z", "반짝반짝Ｘ", "정력제『천원凸파』"
	SELECTCASE ARGS
	CASE "TYPE:회복"
		RETURN 1
	ENDSELECT
CASE "포션", "매직포션", "잠깨기포션", "엘릭서", "선단"
	SELECTCASE ARGS
	CASE "TYPE:회복"
		RETURN 1
	ENDSELECT
;(酒造パッチ)アイテム追加
CASE "아쿠마키", "휴대용타코"
	SELECTCASE ARGS
	CASE "TYPE:회복"
		RETURN 1
	ENDSELECT
CASE "떡잎으로싼떡", "아이스크림", "홍차", "엿", "스포츠드링크", "야트메꼬치"
	SELECTCASE ARGS
	CASE "SALES"
		;無限に補充される
		RETURN 99
	CASE "TYPE:회복"
		RETURN 1
	ENDSELECT
CASE "영양드링크", "정력제", "우콘드링크"
	SELECTCASE ARGS
	CASE "SALES"
		;無限に補充される
		RETURN 99
	CASE "구입"
		CALL ITEM_MATOMEGAI(ARG, ARG:1)
	CASE "TYPE:회복", "TYPE:토끼 약품"
		RETURN 1
	ENDSELECT
CASE "선향옥토", "국사무쌍약", "가싱가든", "포이즌바디"
	SELECTCASE ARGS
	CASE "SALES"
		;인카운트 판매원용
		RETURN 1
	CASE "TYPE:조합물"
		RETURN 1
	ENDSELECT
CASE "춘약", "수면제", "영양강화제"
	SELECTCASE ARGS
	CASE "SALES"
		;無限に補充される
		RETURN 99
	CASE "구입"
		CALL ITEM_MATOMEGAI(ARG, ARG:1)
	CASE "TYPE:조합물", "TYPE:토끼 약품"
		RETURN 1
	ENDSELECT
CASE "보통버섯", "독버섯", "끈적끈적버섯", "동충하초", "위험한버섯", "마법의버섯", "용의손톱", "약초", "상약초", "얼음의비늘", "목재"
	SELECTCASE ARGS
	CASE "TYPE:소재"
		RETURN 1
	ENDSELECT
CASE "산나물", "독초", "특약초", "피안화", "눈의영초", "참마", "우콘", "고려인삼", "쓴뿌리", "만드라고라"
	SELECTCASE ARGS
	CASE "TYPE:소재"
		RETURN 1
	ENDSELECT
CASE "하얀수지", "노란수지", "향기로운수지", "악화의유액", "용혈", "나무딸기", "벌꿀", "으름덩굴", "죽순", "선도"
	SELECTCASE ARGS
	CASE "TYPE:소재"
		RETURN 1
	ENDSELECT
CASE "뼛조각", "석고", "활석", "용골", "진사", "변", "탕화", "방황하는영혼", "다크매터", "봉황의꼬리"
	SELECTCASE ARGS
	CASE "TYPE:소재"
		RETURN 1
	ENDSELECT
CASE "두꺼비기름", "어박", "용연향", "통나무", "대나무", "향목", "용주", "육골분"
	SELECTCASE ARGS
	CASE "TYPE:소재"
		RETURN 1
	ENDSELECT
;(酒造パッチ)アイテム追加
CASE "모로미(고구마)", "숙성전프랑부아즈", "발효된설탕즙", "숙성전럼", "머루", "곰팡이핀포도", "초목회", "포머스"
	SELECTCASE ARGS
	CASE "TYPE:소재"
		RETURN 1
	ENDSELECT
CASE "【금단의지식】"
	SELECTCASE ARGS
	CASE "SALES"
		IF TALENT:MASTER:금단의지식
			RETURN -1
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		SIF !RESULT
			TALENT:MASTER:금단의지식 = 1
	CASE "TYPE:소질", "SHOP:통신판매"
		RETURN 1
	ENDSELECT
CASE "【기교UP】"
	SELECTCASE ARGS
	CASE "SALES"
		IF ABL:MASTER:기교 < 5
			RETURN 0
		ELSE
			RETURN -2
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		SIF !RESULT
			ABL:MASTER:기교 ++
	CASE "TYPE:소질", "SHOP:통신판매"
		RETURN 1
	ENDSELECT
CASE "【기교DOWN】"
	SELECTCASE ARGS
	CASE "SALES"
		IF ABL:MASTER:기교
			RETURN 0
		ELSE
			RETURN -2
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		SIF !RESULT
			ABL:MASTER:기교 --
	CASE "TYPE:소질", "SHOP:통신판매"
		RETURN 1
	ENDSELECT
CASE "【악취내성UP】"
	SELECTCASE ARGS
	CASE "SALES"
		IF TALENT:MASTER:악취내성 < 2
			RETURN 0
		ELSE
			RETURN -2
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		SIF !RESULT
			TALENT:MASTER:악취내성 ++
	CASE "TYPE:소질", "SHOP:통신판매"
		RETURN 1
	ENDSELECT
CASE "【악취내성DOWN】"
	SELECTCASE ARGS
	CASE "SALES"
		IF TALENT:MASTER:악취내성 > -2
			RETURN 0
		ELSE
			RETURN -2
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		SIF !RESULT
			TALENT:MASTER:악취내성 --
	CASE "TYPE:소질", "SHOP:통신판매"
		RETURN 1
	ENDSELECT
CASE "【새드끼DOWN】"
	SELECTCASE ARGS
	CASE "SALES"
		IF ABL:MASTER:새드끼
			RETURN 0
		ELSE
			RETURN -2
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		IF !RESULT
			ABL:MASTER:새드끼 --
			JUEL:MASTER:우월 = 0
			EXP:MASTER:가학쾌락경험 = MAX(EXP:MASTER:가학쾌락경험 - 200, 0)
		ENDIF
	CASE "TYPE:소질", "SHOP:통신판매"
		RETURN 1
	ENDSELECT
CASE "【마조끼DOWN】"
	SELECTCASE ARGS
	CASE "SALES"
		IF ABL:MASTER:마조끼
			RETURN 0
		ELSE
			RETURN -2
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		IF !RESULT
			ABL:MASTER:마조끼 --
			JUEL:MASTER:고통 = 0
			EXP:MASTER:고통쾌락경험 = MAX(EXP:MASTER:고통쾌락경험 - 200, 0)
		ENDIF
	CASE "TYPE:소질", "SHOP:통신판매"
		RETURN 1
	ENDSELECT
CASE "【조합지식】", "【오명반납】"
	;현재 미실장
CASE "약의재료(쌍)"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSEIF !TALENT:MASTER:금단의지식 || FINDCHARA(TALENT:성별, 1) == -1
			RETURN -2
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
	CASE "TYPE:체질 변화"
		RETURN 1
	ENDSELECT
CASE "약의재료(소)"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSEIF !TALENT:MASTER:금단의지식 || FINDCHARA(TALENT:성별, 3) == -1
			RETURN -2
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
	CASE "TYPE:체질 변화"
		RETURN 1
	ENDSELECT
CASE "붉은캔디"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSEIF !TALENT:MASTER:금단의지식 || ALLSAMES(-1, FINDCHARA(TALENT:처녀, 0), FINDCHARA(TALENT:처녀, -1))
			RETURN -2
		ELSE
			RETURN 0
		ENDIF
	CASE "TYPE:체질 변화"
		RETURN 1
	ENDSELECT
CASE "갈색의캔디"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSEIF !TALENT:MASTER:금단의지식 || FINDCHARA(TALENT:동물귀, 0) == -1
			RETURN -2
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
	CASE "TYPE:체질 변화"
		RETURN 1
	ENDSELECT
CASE "물색의캔디"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSEIF !TALENT:MASTER:금단의지식 || !SUMCARRAY(TALENT:동물귀)
			RETURN -2
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
	CASE "TYPE:체질 변화"
		RETURN 1
	ENDSELECT
CASE "배란유발제"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSEIF !TALENT:MASTER:금단의지식
			RETURN -2
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
	CASE "TYPE:체질 변화"
		RETURN 1
	ENDSELECT
CASE "元気になる薬", "青いキャンディ", "豊胸剤", "縮胸剤", "記憶消去薬"
	;현재 미실장
CASE "마수정의팬던트", "콜렉션의스키마", "인스턴트결계", "세방울의천수", "루나슈터양성깁스", "스위티숙면배개"
	SELECTCASE ARGS
	CASE "TYPE:특수"
		RETURN 1
	ENDSELECT
CASE "토부「개운대문」"
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSE
			RETURN 0
		ENDIF
	CASE "특수", "TYPE:토끼 약품"
		RETURN 1
	ENDSELECT
CASE "메이드옷", "간호사 옷", "산타옷"
	SELECTCASE ARGS
	CASE "TYPE:의상"
		RETURN 1
	ENDSELECT
CASE "폭발성시약", "아이시클봄", "태을의불씨", "매혹의미끼", "현자의돌", "바렛골렘", "에피타프", "킹・크림슨", "목숨의카드", "스펠의카드"
	SELECTCASE ARGS
	CASE "TYPE:탄막"
		RETURN 1
	ENDSELECT
CASE "제단", "히노끼욕조", "오동나무침대", "은행나무도마", "느티책상의자", "참나무쇼파", "커스텀대비"
	SELECTCASE ARGS
	CASE "TYPE:특수"
		RETURN 1
	ENDSELECT
CASE "전술지도서", "조리지도서", "사전", "단편소설", "연주지도서", "그림연극", "생선도감", "채집가이드", "약학교본", "나무꾼의마음가짐"
	SELECTCASE ARGS
	CASE "TYPE:서적"
		RETURN 1
	ENDSELECT
CASE "모리야부적", "망가진우산", "숙제"
	SELECTCASE ARGS
	CASE "그 외"
		RETURN 1
	ENDSELECT
CASE "마음에드는아이템"
	;分類しない
CASE "약혼반지" ;KR판 오리지날 약혼반지
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -1
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		SIF !RESULT
			ITEM:ARG ++
	CASE "TYPE:일용품", "SHOP:통신판매"
		RETURN 1
	ENDSELECT
CASE "【문따기기능】" ;KR판 오리지날 문따기 기능
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:ARG
			RETURN -2
		ELSE
			RETURN 0
		ENDIF
	CASE "구입"
		CALL SHOP_ASK(ARG, ARG:1)
		SIF !RESULT
			ITEM:ARG = 1
	CASE "TYPE:소질", "SHOP:통신판매"
		RETURN 1
	ENDSELECT
CASE "주택" ;KR판 오리지날 주택/저택 기능
	SELECTCASE ARGS
	CASE "SALES"
		IF ITEM:주택 < 4
			RETURN 0
		ELSE
			RETURN -2
		ENDIF
	CASE "구입"
		VARSET LOCAL ;가격
		VARSET LOCALS ;출력텍스트
		SELECTCASE ITEM:주택
			CASE 0
				LOCAL = ITEMPRICE:ARG * (100 - ARG:1) / 100
				LOCALS '= @"주택을 구입하겠습니까? 가격: " + 금액표시(LOCAL)
			CASE 1
				LOCAL = ITEMPRICE:ARG * (100 - ARG:1) / 100 * 3
				LOCALS '= @"저택으로 증축하겠습니까? 가격: " + 금액표시(LOCAL)
			CASE 2,3
				LOCAL = ITEMPRICE:ARG * (100 - ARG:1) / 100 * 3
				LOCALS '= @"더욱 증축하겠습니까? 가격: " + 금액표시(LOCAL)
			ENDSELECT
		PRINTSL LOCALS
		CALL ASK_YN
		IF !RESULT
			IF LOCAL <= MONEY
				MONEY -= LOCAL
				PRINTFORMW %조사처리(ITEMNAME:ARG,"를")% %금액표시(LOCAL)%에 구입했습니다
			ELSE
				PRINTFORMW 돈이 부족하다…
				RETURN 0
			ENDIF
			ITEM:ARG ++
			;주거설정 처리 ;주택/저택 첫구매
			SIF GROUPMATCH(ITEM:ARG, 1,2)
				CALL SET_MAINHOME
		ENDIF
	CASE "TYPE:특수", "SHOP:통신판매"
		RETURN 1
	ENDSELECT
ENDSELECT
;購入時はRESULTを返す
SIF ARGS == "구입"
	RETURN RESULT

repo_name: DNS/eraTWKR

license: mit


code:
;FILTER용의 COMNAME 취득 함수
;우선 0~599의 범위에서 사용해주세요
@GET_COMNAME(ID_COM)
#FUNCTIONS
#DIM ID_COM
;파생 커맨드 용
SIF INRANGE(ID_COM, 500, 599)
	RETURNF STR:(1000 + ID_COM)
SIF INRANGE(ID_COM, 0, 499)
	RETURNF TRAINNAME:ID_COM
THROW 부정한 COM 번호가 건네받았던 {ID_COM}

@QUICKFILTER(ID_COM)
#FUNCTION
#DIM ID_COM
#DIM CONST BIT_V계       = 1
#DIM CONST BIT_A계       = 2
#DIM CONST BIT_봉사계     = 5
#DIM CONST BIT_SM계       = 6
#DIM CONST BIT_성희롱계 = 7
#DIM CONST BIT_가사계     = 9
#DIM CONST BIT_자위계     = 13  ;아마 사용하지 않다
SIF IS_COM_VAGINA(ID_COM)   && !CFLAG:TARGET:V언필터
	RETURNF 0
SIF IS_COM_ANAL(ID_COM)     && !CFLAG:TARGET:A언필터
	RETURNF 0
SIF IS_COM_HOUSI(ID_COM)    && !CFLAG:TARGET:봉사언필터
	RETURNF 0
SIF IS_COM_SM(ID_COM)       && !CFLAG:TARGET:SM언필터
	RETURNF 0
SIF IS_COM_KAJI(ID_COM)     && !FLAG:가사언필터
	RETURNF 0
SIF IS_COM_SEKUHARA(ID_COM) && !CFLAG:TARGET:성희롱언필터 && (!FLAG:70 || CFLAG:TARGET:344 == 1)
	RETURNF 0
;SIF IS_COM_ONANISM(ID_COM)  && !CFLAG:TARGET:자위 안필터
;	RETURNF 0
RETURNF 1

@필터표시
;Act_COMのラインと合体
SELECTCASE CFLAG:오토신음
	CASE 0
		LOCALS = 오토신음：하지 않는다
	CASE 1
		LOCALS = 오토신음：한다
	CASE 2
		LOCALS = 오토신음：상스럽다
ENDSELECT
PRINTFORM %"=" * 6% Act_COM ==
SIF STALKED == TARGET && STALKED
	SETCOLOR C_YELLOW
PRINTBUTTON "【★】", TARGET + 4000
RESETCOLOR
CALL PRINTBUTTON_EX("[V]", 831,!CFLAG:TARGET:V언필터)
PRINTPLAIN =
CALL PRINTBUTTON_EX("[A]", 832,!CFLAG:TARGET:A언필터)
PRINTPLAIN =
CALL PRINTBUTTON_EX("[SM]", 836,!CFLAG:TARGET:SM언필터)
PRINTPLAIN =
CALL PRINTBUTTON_EX("[봉사]", 835,!CFLAG:TARGET:봉사언필터)
PRINTPLAIN =
;CALL PRINTBUTTON_EX("[자위]", 843,!CFLAG:TARGET:자위 안필터)
;PRINTPLAIN =
CALL PRINTBUTTON_EX("[성희롱]", 837,!CFLAG:TARGET:성희롱언필터)
PRINTPLAIN =
CALL PRINTBUTTON_EX("[가사]", 839,!FLAG:가사언필터)
PRINTPLAIN =
CALL PRINTBUTTON_EX("[자동콘돔]",838,!CFLAG:자동고무)
PRINTPLAIN =
IF TARGET != MASTER
	CALL PRINTBUTTON_EX(@"[%LOCALS%]",4000,!CFLAG:오토신음)
	; 개인 임의수정, CONFIG 폭에 따른 = 개수 자동조정
	PRINTFORM %"=" * (GETCONFIG("ウィンドウ幅") / 8 - 73 - STRLENS(LOCALS))%
ELSE
	; 개인 임의수정, CONFIG 폭에 따른 = 개수 자동조정
	PRINTFORM %"=" * (GETCONFIG("ウィンドウ幅") / 8 - 71)%
ENDIF
PRINTL

;캐릭터라인 변수에 보존해 보았다
@OPTION_COMMAND_FILTER
#LOCALSIZE 600
#DIM ID_COM
CALL LOAD_COM_FILTER(LOCAL)
DRAWLINE
FOR ID_COM , 0, 600
	SIF !STRLENS(GET_COMNAME(ID_COM))
		CONTINUE
	CALL PRINTBUTTON_EXC(@"%GET_COMNAME(ID_COM)%[{ID_COM, 3}]", ID_COM, STRCOUNT(SAVESTR:0, @"/{ID_COM}/"))
NEXT
PRINTL
DRAWLINE
PRINTFORML [1101] - V필터     [1102] - A필터       [1103] - 봉사 필터
PRINTFORML [1104] - SM필터   [1105] - 성희롱필터 [1106] - 가사 필터
PRINTFORML [1111] - ALL 필터
PRINTFORML [2000] - USERCOM필터
PRINTFORML [3000] - 필터의 보존 [3001] - 필터의 독입
PRINTFORML [1000] - 결정
PRINTL
PRINTFORML [9999] - 리셋
PRINTL
INPUT
SELECTCASE RESULT
CASE 1000
	RETURN 0
CASE 9999
	SAVESTR:0 =
CASE 3000
	CALL SAVE_GLOBAL_COM_FILTER
CASE 3001
	CALL LOAD_GLOBAL_COM_FILTER
CASE 2000
	CALL SETUP_USERCOM_FILTER
CASE 1101
	CALL SET_FILTER_NG_VAGINA
CASE 1102
	CALL SET_FILTER_NG_ANAL
CASE 1103
	CALL SET_FILTER_NG_HOUSI
CASE 1104
	CALL SET_FILTER_NG_SM
CASE 1105
	CALL SET_FILTER_NG_SEKUHARA
CASE 1106
	CALL SET_FILTER_NG_KAJI
CASE 1111
	CALL SET_FILTER_NG_ALL
CASEELSE
	IF STRLENS(GET_COMNAME(RESULT))
		LOCAL:RESULT = !LOCAL:RESULT
		IF LOCAL:RESULT
			CALL ADD_COM_FILTER(RESULT)
		ELSE
			CALL DEL_COM_FILTER(RESULT)
			;SAVE_COM_FILTER(LOCAL)
		ENDIF
	ENDIF
ENDSELECT
RESTART

;필터에 NG인 COM 추가하는 함수
@ADD_COM_FILTER(NG_ID)
#DIM NG_ID
SIF SAVESTR:0 == ""
	SAVESTR:0 = /
SIF STRCOUNT(SAVESTR:0, @"/{NG_ID}/")
	RETURN
SAVESTR:0 += @"{NG_ID}/"

;필터로부터 NG인 COM 삭제하는 함수
;정규 표현이라든지 제대로 손댄 적 없지만 이것으로 움직이는 응?
@DEL_COM_FILTER(NG_ID)
#DIM NG_ID
SIF !STRCOUNT(SAVESTR:0, @"/{NG_ID}/")
	RETURN
SAVESTR:0 '= REPLACE(SAVESTR:0, @"%ESCAPE("/")%{NG_ID}%ESCAPE("/")%", ESCAPE("/"))

;REF 사용 COM_FILTER 보존 함수
;배열→캐릭터라인
;배열의 요소수가 600 미만이라고 화가 난다
@SAVE_COM_FILTER(NG_LIST)
#DIM REF NG_LIST
#DIM ID_COM
SAVESTR:0 = /
FOR ID_COM, 0, 600
	SIF !NG_LIST:ID_COM
		CONTINUE
	SIF STRCOUNT(SAVESTR:0, @"/{ID_COM}/")
		CONTINUE
	SAVESTR:0 += @"{ID_COM}/"
NEXT
;#;PRINTFORML SAVE_COM_FILTER：%SAVESTR:0%

;REF 사용 COM_FILTER독입함수
;캐릭터라인→배열
;배열의 요소수가 600 미만이라고 화가 난다
@LOAD_COM_FILTER(NG_LIST)
#DIM REF NG_LIST
#DIM ID_COM
VARSET NG_LIST
IF SAVESTR:0 == ""
	SAVESTR:0 = /
ELSE
	FOR ID_COM, 0, 600
		SIF STRCOUNT(SAVESTR:0, @"/{ID_COM}/")
			NG_LIST:ID_COM = 1
	NEXT
ENDIF
;#;PRINTFORML LOAD_COM_FILTER：%SAVESTR:0%

;NG캐릭터라인을 GLOBAL에 보존
@SAVE_GLOBAL_COM_FILTER
LOADGLOBAL
FOR LOCAL, 0, 3
	PRINTFORM [{LOCAL}] -
	IF STRLENS(GLOBALS:(LOCAL * 2 + 1))
		PRINTFORML 【%GLOBALS:(LOCAL * 2 + 1)%】
	ELSE
		PRINTL ----------
	ENDIF
NEXT
PRINTL [100] - 돌아간다
INPUT
DO
	LOCAL = RESULT
	SIF RESULT == 100
		RETURN
	SIF !INRANGE(RESULT, 0, 2)
		CONTINUE
	SIF STRLENS(GLOBALS:(RESULT * 2 + 1))
		PRINTFORML 【%GLOBALS:(RESULT * 2 + 1)%】 이 데이터에 덧쓰기합니다
	PRINTL 커맨드필터의 이름을 등록해 주세요
	INPUTS
	GLOBALS:(LOCAL * 2 + 1) = %RESULTS%
	GLOBALS:(LOCAL * 2) = %SAVESTR:0%
	PRINTFORMW 커맨드필터【%GLOBALS:(LOCAL * 2 + 1)%】를 등록했습니다
	SAVEGLOBAL
	RETURN
LOOP 1

;NG캐릭터라인을 GLOBAL로부터 독입
@LOAD_GLOBAL_COM_FILTER
LOADGLOBAL
FOR LOCAL, 0, 3
	PRINTFORM [{LOCAL}] -
	IF STRLENS(GLOBALS:(LOCAL * 2 + 1))
		PRINTFORML 【%GLOBALS:(LOCAL * 2 + 1)%】
	ELSE
		PRINTL ----------
	ENDIF
NEXT
PRINTL [100] - 돌아간다
INPUT
DO
	SIF RESULT == 100
		RETURN
	SIF !INRANGE(RESULT, 0, 2)
		CONTINUE
	PRINTFORMW 커맨드필터 【%GLOBALS:(RESULT * 2 + 1)%】를 읽어들였습니다
	SAVESTR:0 = %GLOBALS:(RESULT * 2)%
	RETURN
LOOP 1

;솔직히 사용하지 않는 생각이 든다
@SETUP_USERCOM_FILTER
CALL PRINTBUTTON_EXC("이력 표시[800]",             800, GETBIT(FLAG:USERCOM필터, 12))
CALL PRINTBUTTON_EXC("불결 표시[801]",             801, GETBIT(FLAG:USERCOM필터,  0))
CALL PRINTBUTTON_EXC("상대를 바꾼다[802]",         802, GETBIT(FLAG:USERCOM필터,  1))
CALL PRINTBUTTON_EXC("능력 표시[803]",             803, GETBIT(FLAG:USERCOM필터,  2))
CALL PRINTBUTTON_EXC("능력 표시(마스터)[804]", 804, GETBIT(FLAG:USERCOM필터,  3))
CALL PRINTBUTTON_EXC("아이템 확인[805]", 805, GETBIT(FLAG:USERCOM필터,  4))
CALL PRINTBUTTON_EXC("자동 시간정지 이동[995]", 995, GETBIT(FLAG:USERCOM필터,  13))

;자동청소
CALL PRINTBUTTON_EXC("자동청소[996]", 996, GETBIT(FLAG:USERCOM필터,  14))

CALL PRINTBUTTON_EXC("커맨드필터[809]",     809, GETBIT(FLAG:USERCOM필터, 11))
PRINTL
PRINTC 돌아오는 [0]
INPUT
SELECTCASE RESULT
CASE 0
	RETURN
CASE 801
	INVERTBIT FLAG:USERCOM필터, 0
CASE 802
	INVERTBIT FLAG:USERCOM필터, 1
CASE 803
	INVERTBIT FLAG:USERCOM필터, 2
CASE 804
	INVERTBIT FLAG:USERCOM필터, 3
CASE 805
	INVERTBIT FLAG:USERCOM필터, 4
CASE 809
	INVERTBIT FLAG:USERCOM필터, 11
	IF GETBIT (FLAG:USERCOM필터, 11)
		PRINTW 결정하면 수동으로 [809]를 입력하거나 OPTION으로부터 나오지 않으면 되돌릴 수 없게 됩니다
		CLEARLINE 1
	ENDIF
CASE 800
	INVERTBIT FLAG:USERCOM필터, 12
CASE 995
	INVERTBIT FLAG:USERCOM필터, 13
;自動掃除
CASE 996
	INVERTBIT FLAG:USERCOM필터, 14
ENDSELECT
CLEARLINE 3
RESTART

;V사용 커맨드 판정
;FLAG:1013, 1
@IS_COM_VAGINA(ID_COM)
#FUNCTION
#DIM ID_COM
SIF GROUPMATCH(ID_COM, 3, 44, 60, 61, 65, 67, 68, 71, 122, 141, 143, 185, 316, 369, 503, 504, 506, 507, 513)
	RETURNF 1
RETURNF 0

@SET_FILTER_NG_VAGINA
#DIM ID_COM
FOR ID_COM, 0, 600
	;V
	SIF !IS_COM_VAGINA(ID_COM)
		CONTINUE
	CALL ADD_COM_FILTER(ID_COM)
NEXT

;A사용 커맨드 판정
;FLAG:1013, 2
@IS_COM_ANAL(ID_COM)
#FUNCTION
#DIM ID_COM
SIF GROUPMATCH(ID_COM, 4, 5, 45, 62, 63, 66, 69, 70, 314, 142, 143, 146, 147, 148, 314, 369, 514, 515)
	RETURNF 1
RETURNF 0

@SET_FILTER_NG_ANAL
#DIM ID_COM
FOR ID_COM, 0, 600
	;A
	SIF !IS_COM_ANAL(ID_COM)
		CONTINUE
	CALL ADD_COM_FILTER(ID_COM)
NEXT

;봉사 커맨드 판정
;FLAG:1013, 5
@IS_COM_HOUSI(ID_COM)
#FUNCTION
#DIM ID_COM
SIF INRANGE(ID_COM, 80, 85) || GROUPMATCH(ID_COM, 120, 121, 140, 501, 505, 508, 509, 510, 511, 512)
	RETURNF 1
RETURNF 0

@SET_FILTER_NG_HOUSI
#DIM ID_COM
FOR ID_COM, 0, 600
	;HOUSI
	SIF !IS_COM_HOUSI(ID_COM)
		CONTINUE
	CALL ADD_COM_FILTER(ID_COM)
NEXT

;SM 커맨드 판정
;FLAG:1013, 6
@IS_COM_SM(ID_COM)
#FUNCTION
#DIM ID_COM
SIF INRANGE(ID_COM, 100, 119) || INRANGE(ID_COM, 140, 159)
	RETURNF 1
RETURNF 0

@SET_FILTER_NG_SM
#DIM ID_COM
FOR ID_COM, 0, 600
	;SM
	SIF !IS_COM_SM(ID_COM)
		CONTINUE
	CALL ADD_COM_FILTER(ID_COM)
NEXT

;성희롱 커맨드 판정
;FLAG:1013, 7
@IS_COM_SEKUHARA(ID_COM)
#FUNCTION
#DIM ID_COM
SIF INRANGE(ID_COM, 305, 316) || INRANGE(ID_COM, 560, 563) || GROUPMATCH(ID_COM, 325,326,330, 350, 352,380, 429) ;KR판 오리지날 또는 구잔재, 325,326,380
	RETURNF 1
RETURNF 0

@SET_FILTER_NG_SEKUHARA
#DIM ID_COM
FOR ID_COM, 0, 600
	;성희롱
	SIF !IS_COM_SEKUHARA(ID_COM)
		CONTINUE
	CALL ADD_COM_FILTER(ID_COM)
NEXT

;가사 커맨드 판정
;FLAG:1013, 9
@IS_COM_KAJI(ID_COM)
#FUNCTION
#DIM ID_COM
SIF INRANGE(ID_COM, 410, 419) || GROUPMATCH(ID_COM, 403, 450)
	RETURNF 1
RETURNF 0

@SET_FILTER_NG_KAJI
#DIM ID_COM
FOR ID_COM, 0, 600
	SIF !IS_COM_KAJI(ID_COM)
		CONTINUE
	CALL ADD_COM_FILTER(ID_COM)
NEXT

;자위 커맨드 판정
;FLAG:1013, 13
@IS_COM_ONANISM(ID_COM)
#FUNCTION
#DIM ID_COM
SIF INRANGE(ID_COM, 700, 712) || INRANGE(ID_COM, 740, 752) || GROUPMATCH(ID_COM, 433)
	RETURNF 1
RETURNF 0

@SET_FILTER_NG_ONANISM
#DIM ID_COM
FOR ID_COM, 0, 600
	SIF !IS_COM_ONANISM(ID_COM)
		CONTINUE
	CALL ADD_COM_FILTER(ID_COM)
NEXT

;ALL 커맨드 판정
@SET_FILTER_NG_ALL
#DIM ID_COM
FOR ID_COM, 0, 600
	CALL ADD_COM_FILTER(ID_COM)
NEXT


code:
;옵션 설정 처리
@OPTION
#DIM L_COUNT
#DIM L_FEED
#DIM TEMP
VARSET LOCAL
L_FEED = LINECOUNT
TOOLTIP_SETDELAY 100
TEMP = CURRENTREDRAW()
REDRAW 0
DRAWLINEFORM =
FOR L_COUNT, 0, 91
	CALL OPTION_SETNAME(L_COUNT)
	SIF !RESULT
		CONTINUE
	LOCAL:L_COUNT = 1
	IF RESULTS:2 == ""
		PRINTFORML [{L_COUNT, 2}] - %RESULTS:0, 30, RIGHT%：%RESULTS:1%
	ELSE
		HTML_PRINT @"<button value='{L_COUNT}' title='%RESULTS:2%'>[{L_COUNT, 2}] - %RESULTS:0, 30, RIGHT%：%RESULTS:1%</button>"
	ENDIF
NEXT
DRAWLINEFORM －
PRINTFORML [91] - 오토신음일괄설정
PRINTFORML [92] - 간이 필터의 일괄 설정
PRINTFORML [93] - 그림 상세 설정
PRINTFORML [94] - 등장캐릭터변환
PRINTFORML [95] - 커맨드필터
;#;PRINTFORML [96] - 카운터 행동 필터（디버그용）
;PRINTFORML [97] - 요리의 옵션 설정
DRAWLINE

SIF DAY > 124 || FLAG:엔딩여부 ;KR판 오리지날, 엔딩여부 체크로 강하게 뉴게임 가능
	HTML_PRINT @"<button value='200' title='【경고】 여기 뒤로는 읽어서는 안된다'>[200] - 바이쳐・더스트</button>"

PRINTFORML [999] - 설정 완료
INPUT
SELECTCASE RESULT
CASE 0 TO 90
	SIF LOCAL:RESULT
		CALL OPTION_SETTING(RESULT)
	CLEARLINE LINECOUNT - L_FEED
CASE 91
	CALL OPTION_오토신음일괄설정
CASE 92
	CALL 간이필터일괄설정
CASE 93
	CALL OPTION_화상표시상세설정
CASE 94
	CALL 등장캐릭터변환
CASE 95
	CALL OPTION_COMMAND_FILTER
[IF_DEBUG]
CASE 96
	CALL OPTION_COUNTER_FILTER
[ENDIF]
;CASE 97
;	CALL SET_OPTION_COOKING
CASE 200
	TOOLTIP_SETDELAY 500
	IF DAY <= 124 && !FLAG:엔딩여부 ;KR판 오리지날, 엔딩여부 체크로 강하게 뉴게임 가능
		REDRAW TEMP
		RETURN
	ENDIF
	PRINTFORML 시간을 날려버려서 1일째로 되돌아가겠습니까?
	PRINTL
	PRINTL [0] 「스위치」를 누르게 하지맛――
	PRINTL [1] 아냐! 한계다 누를래! 지금이닷!
	INPUT
	IF RESULT == 1
		CALL 강하게뉴게임
	ELSE
;		PRINTW 「스위치」를 누르는 건 멈추지 못했지만, 운 좋게도 옵션 선택까지밖에 돌아가지 않았다.
	ENDIF
CASEELSE
	REDRAW TEMP
	TOOLTIP_SETDELAY 500
	RETURN
ENDSELECT
RESTART

@OPTION_SETNAME(ARG)
;RESULT:2	ツールチップ表記内容
VARSET RESULTS
RESULT = 1
SELECTCASE ARG
CASE 0
	RESULTS:0 = 임신 유무
	IF FLAG:임신스위치
		RESULTS:1 = 임신한다
		RESULTS:2 = ※여아나타의 임신 기능은 미실장※
	ELSE
		RESULTS:1 = 임신하지 않는다
	ENDIF
CASE 1
	RESULTS:0 = 자식의성별
	SELECTCASE FLAG:자식의성별
	CASE 0
		RESULTS:1 = 랜덤
	CASE 1
		RESULTS:1 = 여자아이
	CASE 2
		RESULTS:1 = 남자아이
	ENDSELECT
	SIF !FLAG:임신스위치
		RESULT = 0
CASE 2
	RESULTS:0 = 자식묘사
	IF FLAG:자식묘사
		RESULTS:1 = 있음
	ELSE
		RESULTS:1 = 없음
	ENDIF
	SIF !FLAG:임신스위치
		RESULT = 0
CASE 3
	RESULTS:0 = 더부살이이벤트
	IF FLAG:더부살이이벤트
		RESULTS:1 = 없음
	ELSE
		RESULTS:1 = 있음
		RESULTS:2 = 친한 캐릭터가 자택 지역으로 이사옵니다
	ENDIF
CASE 4
	RESULTS:0 = 연회 발생
	IF FLAG:연회의유무
		RESULTS:1 = 있음
	ELSE
		RESULTS:1 = 없음
	ENDIF
CASE 5
	RESULTS:0 = 상대 쪽의 고백
	IF FLAG:고백금지
		RESULTS:1 = 고백하지 않는다
	ELSE
		RESULTS:1 = 고백한다
	ENDIF
CASE 6
	RESULTS:0 = 섹프계 함락에서 연모계 함락으로 변화
	IF FLAG:함락노선변화
		RESULTS:1 = 변화한다
	ELSE
		RESULTS:1 = 변화하지 않는다
	ENDIF
CASE 7
	RESULTS:0 = 이벤트로 [무지] 상실 발생
	IF FLAG:무지자동상실금지
		RESULTS:1 = 상실하지 않는다
	ELSE
		RESULTS:1 = 상실한다
	ENDIF
CASE 8
	RESULTS:0 = 텍스트 설정
	IF FLAG:정경텍스트설정 == 1 && FLAG:구상텍스트설정 == 2
		RESULTS:1 = 구상＋정경 텍스트
	ELSEIF FLAG:정경텍스트설정 == 1 && FLAG:구상텍스트설정 == -1
		RESULTS:1 = 정경 텍스트만
	ELSEIF FLAG:정경텍스트설정 == 0 && FLAG:구상텍스트설정 == -1
		RESULTS:1 = 텍스트를 표시하지 않는다
	ENDIF
CASE 9
	RESULTS:0 = 구상색
	IF FLAG:구상색
		RESULTS:1 = 있음
	ELSE
		RESULTS:1 = 없음
	ENDIF
CASE 10
	RESULTS:0 = 불결도 표시
	IF FLAG:쓰레기표시OFF
		RESULTS:1 = 하지 않는다
	ELSE
		RESULTS:1 = 한다
	ENDIF
CASE 11
	RESULTS:0 = 카운터시 지문
	IF FLAG:카운터지문제어
		RESULTS:1 = 소질에 따라 변화한다
	ELSE
		RESULTS:1 = 변화하지 않는다
	ENDIF
CASE 12
	RESULTS:0 = 가슴 관련 텍스트 설정
	IF FLAG:Look표시용유방 == 1 && FLAG:Look표시용유두 == 1
		RESULTS:1 = 가슴 관련 전부 고정 묘사
	ELSEIF FLAG:Look표시용유방 == 1 && FLAG:Look표시용유두 == 0
		RESULTS:1 = 유방만 고정 묘사
	ELSEIF FLAG:Look표시용유방 == 0 && FLAG:Look표시용유두 == 1
		RESULTS:1 = 유두만 고정 묘사
	ELSEIF FLAG:Look표시용유방 == 0 && FLAG:Look표시용유두 == 0
		RESULTS:1 = 가슴 관련 랜덤 묘사
	ENDIF
;CASE 13
;	RESULTS:0 = 호의/이성의 벽 단축표시
;	IF FLAG:호의이성단축
;		RESULTS:1 = 단축한다
;	ELSE
;		RESULTS:1 = 단축하지 않는다
;	ENDIF
;	RESULTS:2 = ※현재 미작동※
;CASE 14
;	RESULTS:0 = 능력 표시 버튼 표기
;	IF FLAG:능력표기
;		RESULTS:1 = 숫자 표기
;	ELSE
;		RESULTS:1 = 기호 표기
;	ENDIF
;	RESULTS:2 = ※현재 미작동※
CASE 15
	RESULTS:0 = 턴마다 나오는 ABLUP 생략
	IF FLAG:ABLUP생략
		RESULTS:1 = 생략한다
	ELSE
		RESULTS:1 = 생략하지 않는다
	ENDIF
CASE 16
	RESULTS:0 = 첫키스 기록 상황 설정
	SELECTCASE FLAG:FK판정
	CASE 0
		RESULTS:1 = 키스만·자각했을 때만
	CASE 1
		RESULTS:1 = 키스만·미자각 포함
	CASE 2
		RESULTS:1 = 펠라 포함·자각했을 때만
	CASE 3
		RESULTS:1 = 펠라 포함·미자각 포함
	ENDSELECT
CASE 17
	RESULTS:0 = 이동시 멈춰 서기
	SELECTCASE FLAG:멈춰서기
	CASE 0
		RESULTS:1 = 무조건 멈춰 선다
	CASE 1
		RESULTS:1 = 대사가 존재할 경우에만
	CASE 2
		RESULTS:1 = 멈춰 서지 않는다
	ENDSELECT
CASE 18
	RESULTS:0 = 캐릭터 만남시 의뢰 표시
	IF FLAG:의뢰패스
		RESULTS:1 = 표시하지 않는다
	ELSE
		RESULTS:1 = 표시한다
	ENDIF
CASE 19
	RESULTS:0 = 소모품의 자동 구입
	IF FLAG:소모품자동구입
		RESULTS:1 = 한다
		RESULTS:2 = 로션만 구매한다
	ELSE
		RESULTS:1 = 하지 않는다
	ENDIF
CASE 20
	RESULTS:0 = 자동 시간정지 이동
	SELECTCASE FLAG:순간이동
	CASE 0
		RESULTS:1 = ＯＦＦ
	CASE 1
		RESULTS:1 = 외출지 산책시에만
	CASE 2
		RESULTS:1 = 거점내 이동시에만
	CASE 3
		RESULTS:1 = 외출지/거점내 양쪽 다
	ENDSELECT
CASE 21
	RESULTS:0 = 능력을 비교해서 덮쳐지지 않게 되는 판정
	IF FLAG:덮치기
		RESULTS:1 = 있음
	ELSE
		RESULTS:1 = 없음
	ENDIF
CASE 22
	RESULTS:0 = 경고장사용
	IF FLAG:경고장사용
		RESULTS:1 = 있음
		RESULTS:2 = 지나친 성희롱 등으로 발급되며 모이면 게임 오버가 됩니다
	ELSE
		RESULTS:1 = 없음
	ENDIF
CASE 23
	RESULTS:0 = 내방모드
	SELECTCASE FLAG:교류내방모드
	CASE 0
		RESULTS:1 = 통상
	CASE 1 ;KR판 구잔재, 일판은 내방플래그.ERB 변경되어 50
		RESULTS:1 = 호감도 0은 내방하지 않는다
	CASE 2
		RESULTS:1 = 함락된 캐릭터만
	CASE 3
		RESULTS:1 = 내방하지 않는다
	ENDSELECT
	RESULTS:2 = 자택 지역에 캐릭터가 방문하는 조건
CASE 24
	RESULTS:0 = 탈의시 명령 선택
	SELECTCASE FLAG:탈의선택
	CASE 0
		RESULTS:1 = 매번 선택
	CASE 1
		RESULTS:1 = 전라
	CASE 2
		RESULTS:1 = 반라
	ENDSELECT
CASE 25
	RESULTS:0 = 시간정지 탈의시 팬티 처리
	SELECTCASE FLAG:팬티도둑
	CASE 0
		RESULTS:1 = 매번 선택
	CASE 1
		RESULTS:1 = 항상 훔친다
	CASE 2
		RESULTS:1 = 항상 벗기기만 할 뿐
	ENDSELECT
CASE 26
	RESULTS:0 = 일부 캐릭터의 니삭스 착용
	IF FLAG:니삭스착용
		RESULTS:1 = 있음
	ELSE
		RESULTS:1 = 없음
	ENDIF
CASE 27
	RESULTS:0 = 야한 속옷을 추가한다
	IF FLAG:섹시팬티추가
		RESULTS:1 = 추가한다
	ELSE
		RESULTS:1 = 추가하지 않는다
	ENDIF
CASE 28
	RESULTS:0 = 팬티 수집 상황 표시
	IF FLAG:팬티수집상황타입B
		RESULTS:1 = 미입수여도 표시한다
	ELSE
		RESULTS:1 = 미입수를 표시하지 않는다
	ENDIF
CASE 29
	RESULTS:0 = 지도 표시 타입
	IF RECOLOREDMAPS
		IF ANIMATERECOLOREDMAPS
			RESULTS:1 = 컬러맵 + 영상모드
		ELSE
			RESULTS:1 = 컬러맵
		ENDIF
	ELSE
		RESULTS:1 = 디폴트
	ENDIF
CASE 30
	RESULTS:0 = 캐릭터리스트 표시 순서
	IF FLAG:정렬
		RESULTS:1 = 원작순
	ELSE
		RESULTS:1 = ＴＷ순
	ENDIF
CASE 31
	RESULTS:0 = 방뇨와 오줌싸개버릇의 유효화
	IF FLAG:오줌유효
		RESULTS:1 = 유효
	ELSE
		RESULTS:1 = 무효
	ENDIF
CASE 32
	RESULTS:0 = 채집시 재추첨 기능
	IF FLAG:채집재추첨
		RESULTS:1 = 유효
	ELSE
		RESULTS:1 = 무효
	ENDIF
CASE 33
	RESULTS:0 = 시간 날씨에 따른 배경색 추이
	IF FLAG:배경색추이
		RESULTS:1 = 유효
	ELSE
		RESULTS:1 = 무효
	ENDIF
CASE 34
	RESULTS:0 = 카운터 중의 체벌
	SELECTCASE FLAG:카운터제재
	CASE 0
		RESULTS:1 = 있음
		RESULTS:2 = 약점을 잡히면 드물게 발생해 우후후가 중단됩니다
	CASE 1
		RESULTS:1 = 과격한 체벌은 금지
		RESULTS:2 = 도구를 이용한 체벌을 금지합니다
	CASE 2
		RESULTS:1 = 없음
	ENDSELECT
CASE 35
	RESULTS:0 = 아나타의 애널 개발 허가
	IF FLAG:애널개발무효
		RESULTS:1 = 금지
		RESULTS:2 = 아나타에 대한 쾌A 소스가 발생되는 카운터 행동이 금지됩니다
	ELSE
		RESULTS:1 = 허가
	ENDIF
CASE 36
	RESULTS:0 = 일상 행동중의 바람치라 발생
	IF FLAG:바람치라발생
		RESULTS:1 = 유효
	ELSE
		RESULTS:1 = 무효
	ENDIF
CASE 37 ;KR판 오리지날
	RESULTS:0 = 일상 호감 신뢰 상승 배율 설정
	IF FLAG:호감신뢰상승률
		RESULTS:1 = (현재 {1+FLAG:호감신뢰상승률}배)
	ELSE
		RESULTS:1 = 디폴트
	ENDIF
CASE 38 ;KR판 오리지날
	RESULTS:0 = 의뢰 호감 신뢰 상승 배율 설정
	IF FLAG:의뢰호감신뢰상승률
		RESULTS:1 = (현재 {1+FLAG:의뢰호감신뢰상승률}배)
	ELSE
		RESULTS:1 = 디폴트
	ENDIF
CASEELSE
	RESULT = 0
ENDSELECT
RETURN RESULT

@OPTION_SETTING(ARG)
CALL OPTION_SETNAME(ARG)
SELECTCASE RESULTS:0
CASE "임신 유무"
	FLAG:임신스위치 = !FLAG:임신스위치
CASE "텍스트 설정"
	IF FLAG:정경텍스트설정 == 1 && FLAG:구상텍스트설정 == 2
		FLAG:정경텍스트설정 = 1
		FLAG:구상텍스트설정 = -1
	ELSEIF FLAG:정경텍스트설정 == 1 && FLAG:구상텍스트설정 == -1
		FLAG:정경텍스트설정 = 0
		FLAG:구상텍스트설정 = -1
	ELSEIF FLAG:정경텍스트설정 == 0 && FLAG:구상텍스트설정 == -1
		FLAG:정경텍스트설정 = 1
		FLAG:구상텍스트설정 = 2
	ENDIF
CASE "소모품의 자동 구입"
	FLAG:소모품자동구입 = !FLAG:소모품자동구입
CASE "불결도 표시"
	FLAG:쓰레기표시OFF = !FLAG:쓰레기표시OFF
CASE "이동시 멈춰 서기"
	CALL 옵션바꿔치기("멈춰서기", 2)
CASE "능력을 비교해서 덮쳐지지 않게 되는 판정"
	FLAG:덮치기 = !FLAG:덮치기
CASE "자동 시간정지 이동"
	CALL 옵션바꿔치기("순간이동", 3)
CASE "더부살이이벤트"
	FLAG:더부살이이벤트 = !FLAG:더부살이이벤트
CASE "경고장사용"
	FLAG:경고장사용 = !FLAG:경고장사용
CASE "일부 캐릭터의 니삭스 착용"
	FLAG:니삭스착용 = !FLAG:니삭스착용
CASE "연회 발생"
	FLAG:연회의유무 = !FLAG:연회의유무
CASE "내방모드"
	CALL 옵션바꿔치기("교류내방모드", 3)
CASE "탈의시 명령 선택"
	CALL 옵션바꿔치기("탈의선택", 2)
CASE "시간정지 탈의시 팬티 처리"
	CALL 옵션바꿔치기("팬티도둑", 2)
CASE "구상색"
	FLAG:구상색 = !FLAG:구상색
CASE "가슴 관련 텍스트 설정"
	IF FLAG:Look표시용유방 == 1 && FLAG:Look표시용유두 == 1
		FLAG:Look표시용유방 = 1
		FLAG:Look표시용유두 = 0
	ELSEIF FLAG:Look표시용유방 == 1 && FLAG:Look표시용유두 == 0
		FLAG:Look표시용유방 = 0
		FLAG:Look표시용유두 = 1
	ELSEIF FLAG:Look표시용유방 == 0 && FLAG:Look표시용유두 == 1
		FLAG:Look표시용유방 = 0
		FLAG:Look표시용유두 = 0
	ELSEIF FLAG:Look표시용유방 == 0 && FLAG:Look표시용유두 == 0
		FLAG:Look표시용유방 = 1
		FLAG:Look표시용유두 = 1
	ENDIF
CASE "능력 표시 버튼 표기"
	FLAG:능력표기 = !FLAG:능력표기
CASE "카운터시 지문"
	FLAG:카운터지문제어 = !FLAG:카운터지문제어
CASE "야한 속옷을 추가한다"
	FLAG:섹시팬티추가 = !FLAG:섹시팬티추가
	IF !FLAG:섹시팬티추가
		PRINTFORMW 환상향에 찾아든 야한 속옷 붐이 종식되었습니다
		PRINTL
		PRINTFORML 보유하고 있는 야한 속옷을 삭제하겠습니까?
		PRINTFORML 삭제 대상：스캔티, 훈도시, G스트링, 시스루 쇼츠, 오픈 쇼츠, 반창고, 드로워즈(가랑이 뚫림)
		PRINTL
		PRINTL [0] 이젠 필요 없어
		PRINTL [1] 소중히 보관한다
		INPUT
		IF RESULT == 0
			CALL DELETE_SEXYPANTS
			CLEARLINE 10
		ELSE
			CLEARLINE 8
		ENDIF
	ENDIF
CASE "섹프계 함락에서 연모계 함락으로 변화"
	FLAG:함락노선변화 = !FLAG:함락노선변화
CASE "상대 쪽의 고백"
	FLAG:고백금지 = !FLAG:고백금지
CASE "턴마다 나오는 ABLUP 생략"
	FLAG:ABLUP생략 = !FLAG:ABLUP생략
CASE "이벤트로 [무지] 상실 발생"
	FLAG:무지자동상실금지 = !FLAG:무지자동상실금지
CASE "호의/이성의 벽 단축표시"
	FLAG:호의이성단축 = !FLAG:호의이성단축
CASE "자식묘사"
	FLAG:자식묘사 = !FLAG:자식묘사
CASE "자식의성별"
	CALL 옵션바꿔치기("자식의성별", 2)
CASE "팬티 수집 상황 표시"
	FLAG:팬티수집상황타입B = !FLAG:팬티수집상황타입B
CASE "첫키스 기록 상황 설정"
	CALL 옵션바꿔치기("FK판정", 3)
CASE "캐릭터 만남시 의뢰 표시"
	FLAG:의뢰패스 = !FLAG:의뢰패스
CASE "지도 표시 타입"
	IF RECOLOREDMAPS
		IF ANIMATERECOLOREDMAPS
			RECOLOREDMAPS = 0
			ANIMATERECOLOREDMAPS = 0
		ELSE
			ANIMATERECOLOREDMAPS = 1000
		ENDIF
	ELSE
		RECOLOREDMAPS = 1
	ENDIF
CASE "캐릭터리스트 표시 순서"
	FLAG:정렬 = !FLAG:정렬
CASE "방뇨와 오줌싸개버릇의 유효화"
	FLAG:오줌유효 = !FLAG:오줌유효
CASE "채집시 재추첨 기능"
	FLAG:채집재추첨 = !FLAG:채집재추첨
CASE "시간 날씨에 따른 배경색 추이"
	FLAG:배경색추이 = !FLAG:배경색추이
CASE "카운터 중의 체벌"
	CALL 옵션바꿔치기("카운터제재", 2)
CASE "아나타의 애널 개발 허가"
	FLAG:애널개발무효 = !FLAG:애널개발무효
CASE "일상 행동중의 바람치라 발생"
	FLAG:바람치라발생 = !FLAG:바람치라발생
CASE "일상 호감 신뢰 상승 배율 설정"
	PRINTFORML 변경할 일반 호감도/신뢰 추가 획득 배율 입력 『현재 : {1 + FLAG:호감신뢰상승률}x, 최대 20』
	INPUT
	FLAG:호감신뢰상승률 = LIMIT(RESULT, 0, 20)
CASE "의뢰 호감 신뢰 상승 배율 설정"
	PRINTFORML 변경할 의뢰 호감도/신뢰 추가 획득 배율 입력 『현재 : {1 + FLAG:의뢰호감신뢰상승률}x, 최대 10』
	INPUT
	FLAG:의뢰호감신뢰상승률 = LIMIT(RESULT, 0, 10)
ENDSELECT

@옵션바꿔치기(ARGS, ARG)
FLAG:ARGS ++
SIF FLAG:ARGS > ARG
	FLAG:ARGS = 0

@OPTION_오토신음일괄설정
CALL ASK_M("전원없음",1,"전원있음（천박함 없음）",1,"전원있음（천박함 있음）",1, "취소한다",1)
IF INRANGE(RESULT, 0, 2)
	FOR LOCAL,1,CHARANUM
		CFLAG:LOCAL:오토신음 = RESULT
	NEXT
	PRINTFORMW 일괄설정했습니다.
ENDIF

@등장캐릭터변환
PRINTL 　지정한 캐릭터가 등장하지 않도록 합니다. ("*"는 대사가 있는 캐릭터)
DRAWLINE
SIF FLAG:정렬
	CALL CHARASORT_EX
FOR LOCAL:1, 1, EX_CHARANUM
	IF FLAG:정렬
		LOCAL = RESULT:(LOCAL:1)
		SIF LOCAL < 0
			CONTINUE
	ELSE
		LOCAL = LOCAL:1
		SIF LOCAL >= CHARANUM
			BREAK
	ENDIF
	SIF TALENT:LOCAL:스침
		CONTINUE
	SIF CFLAG:LOCAL:출금
		SETCOLOR C_D_RED
	RESULT = 0
	TRYCALLFORM M_KOJO_K{NO:LOCAL}
	PRINTFORMLC [{LOCAL, 3}] \@ RESULT ? * # \@%CALLNAME:LOCAL%
	RESETCOLOR
NEXT
PRINTL
DRAWLINE
PRINTFORML [999] 설정 종료　출연금지 캐릭터：{FLAG:출금인원수}명　[998]리셋
$LOOP
INPUT
IF RESULT >= 1 && RESULT <= CHARANUM
	IF CFLAG:RESULT:출금 && FLAG:역극 != RESULT
		CFLAG:RESULT:출금 = 0
		SIF CFLAG:RESULT:현재위치 == CFLAG:RESULT:초기위치 && CFLAG:RESULT:수면
			LOCK:(CFLAG:RESULT:초기위치) = 1
		FLAG:출금인원수 --
	ELSEIF TALENT:RESULT:스침
		PRINTFORMW 이 캐릭터는 출연금지를 해제할 수 없습니다
		GOTO LOOP
	ELSEIF FLAG:역극 == RESULT
		IF CFLAG:(FLAG:역극):출금 == 1
			PRINTFORML 현재 그 캐릭터의 역극 중이기에, %CALLNAME:RESULT%가 두 명 있게 됩니다만…
			PRINTL 그래도 등장시키겠습니까?
			PRINTL [0]네 [1]아니오
			INPUT
			IF RESULT == 0
				CFLAG:(FLAG:역극):출금 = 0
				SIF CFLAG:(FLAG:역극):현재위치 == CFLAG:(FLAG:역극):초기위치 && CFLAG:(FLAG:역극):수면
					LOCK:(CFLAG:(FLAG:역극):초기위치) = 1
				FLAG:출금인원수 --
				PRINTFORMW %CALLNAME:(FLAG:역극)%를 등장시킵니다
			ELSE
				GOTO LOOP
			ENDIF
		ELSE
			CFLAG:(FLAG:역극):출금 = 1
			SIF LOCK:(CFLAG:(FLAG:역극):초기위치) && CFLAG:(FLAG:역극):초기위치 < 100
				LOCK:(CFLAG:(FLAG:역극):초기위치) = 0
			FLAG:출금인원수 ++
		ENDIF
	ELSE
		CFLAG:RESULT:출금 = 1
		SIF LOCK:(CFLAG:RESULT:초기위치) && CFLAG:RESULT:초기위치 < 100
			LOCK:(CFLAG:RESULT:초기위치) = 0
		FLAG:출금인원수 ++
	ENDIF
	RESTART
ELSEIF RESULT == 999
	PRINTW 설정 종료했습니다.
ELSEIF RESULT == 998
	FOR LOCAL,1,CHARANUM
		SIF FLAG:역극 == LOCAL
			CONTINUE
		SIF TALENT:LOCAL:스침
			CONTINUE
		CFLAG:LOCAL:출금 = 0
	NEXT
	FLAG:출금인원수 = 0
	RESTART
ELSE
	GOTO LOOP
ENDIF

;간이 필터 제어 함수
;사양상의 문제로서 설정 항목이 너무 증가하면 설계를 다시 할 필요가 있다
@간이필터일괄설정
#DIM OP_CFLAG_V언필터
#DIM OP_CFLAG_A언필터
#DIM OP_CFLAG_SM언필터
#DIM OP_CFLAG_봉사언필터
#DIM OP_CFLAG_성희롱언필터
#DIM OP_SETTING
IF !LOCAL
	OP_CFLAG_V언필터       = GETNUM(CFLAG, "V언필터")
	OP_CFLAG_A언필터       = GETNUM(CFLAG, "A언필터")
	OP_CFLAG_SM언필터     = GETNUM(CFLAG, "SM언필터")
	OP_CFLAG_봉사언필터     = GETNUM(CFLAG, "봉사언필터")
	OP_CFLAG_성희롱언필터 = GETNUM(CFLAG, "성희롱언필터")
	LOCAL ++
ENDIF
PRINTFORML ～간이 필터 설정～
PRINTFORML ※개별적인 커맨드필터는 이것과는 별도로 설정되어 있습니다
PRINTFORML
PRINTFORML [29] 전 캐릭터의 모든 간이 필터 오프
PRINTFORML [28] 전 캐릭터별 [V]를 개방
PRINTFORML [27] 전 캐릭터별 [A]를 개방
PRINTFORML [26] 전 캐릭터별 [SM]를 개방
PRINTFORML [25] 전 캐릭터별 [봉사]를 개방
PRINTFORML [24] 전 캐릭터별 [성희롱]을 개방
PRINTFORML [23] [가사]를 개방
PRINTFORML
PRINTFORML [19] 전 캐릭터의 모든 간이 필터 온
PRINTFORML [18] 전 캐릭터별 [V]를 제한
PRINTFORML [17] 전 캐릭터별 [A]를 제한
PRINTFORML [16] 전 캐릭터별 [SM]를 제한
PRINTFORML [15] 전 캐릭터별 [봉사]를 제한
PRINTFORML [14] 전 캐릭터별 [성희롱]을 제한
PRINTFORML [13] [가사]를 제한
PRINTFORML
PRINTFORML [99] 설정 종료
DO
	INPUT
	OP_SETTING = (RESULT / 10) - 1
	;20그리고 1, 10으로 0
	SELECTCASE RESULT
	CASE 29, 19
		CVARSET CFLAG, OP_CFLAG_V언필터, OP_SETTING
		CVARSET CFLAG, OP_CFLAG_A언필터, OP_SETTING
		CVARSET CFLAG, OP_CFLAG_SM언필터, OP_SETTING
		CVARSET CFLAG, OP_CFLAG_봉사언필터, OP_SETTING
		CVARSET CFLAG, OP_CFLAG_성희롱언필터, OP_SETTING
		FLAG:가사언필터 = OP_SETTING
		IF OP_SETTING
			PRINTFORMW 전 캐릭터의 모든 간이 필터를 ＜OFF＞했습니다
		ELSE
			PRINTFORMW 전 캐릭터의 모든 간이 필터를 ＜ON＞했습니다
		ENDIF
	CASE 28, 18
		CVARSET CFLAG, OP_CFLAG_V언필터, OP_SETTING
		IF OP_SETTING
			PRINTFORMW 전 캐릭터별 [V] 커맨드를 ＜개방＞합니다
		ELSE
			PRINTFORMW 전 캐릭터별 [V] 커맨드를 ＜제한＞합니다
		ENDIF
	CASE 27, 17
		CVARSET CFLAG, OP_CFLAG_A언필터, OP_SETTING
		IF OP_SETTING
			PRINTFORMW 전 캐릭터별 [A] 커맨드를 ＜개방＞합니다
		ELSE
			PRINTFORMW 전 캐릭터별 [A] 커맨드를 ＜제한＞합니다
		ENDIF
	CASE 26, 16
		CVARSET CFLAG, OP_CFLAG_SM언필터, OP_SETTING
		IF OP_SETTING
			PRINTFORMW 전 캐릭터별 [SM] 커맨드를 ＜개방＞합니다
		ELSE
			PRINTFORMW 전 캐릭터별 [SM] 커맨드를 ＜제한＞합니다
		ENDIF
	CASE 25, 15
		CVARSET CFLAG, OP_CFLAG_봉사언필터, OP_SETTING
		IF OP_SETTING
			PRINTFORMW 전 캐릭터별 [봉사] 커맨드를 ＜개방＞합니다
		ELSE
			PRINTFORMW 전 캐릭터별 [봉사] 커맨드를 ＜제한＞합니다
		ENDIF
	CASE 24, 14
		CVARSET CFLAG, OP_CFLAG_성희롱언필터, OP_SETTING
		IF OP_SETTING
			PRINTFORMW 전 캐릭터별 [성희롱] 커맨드를 ＜개방＞합니다
		ELSE
			PRINTFORMW 전 캐릭터별 [성희롱] 커맨드를 ＜제한＞합니다
		ENDIF
	CASE 23, 13
		FLAG:가사언필터 = OP_SETTING
		IF OP_SETTING
			PRINTFORMW 가사 커맨드를 ＜개방＞합니다
		ELSE
			PRINTFORMW 가사 커맨드를 ＜제한＞합니다
		ENDIF
	CASE 99
		PRINTFORMW 간이 필터의 설정을 종료합니다
		RETURN
	CASEELSE
		PRINTFORML 무효인 입력입니다
		CONTINUE
	ENDSELECT
	BREAK
LOOP 1
RESTART

;---------------------------------------------------------------
;	그림 상세 설정
;	설정이 증가했으므로 신설
;---------------------------------------------------------------
@OPTION_화상표시상세설정
TARGET = [[레이무]]
FOR LOCAL, 1, 11
	TARGET:LOCAL = LOCAL
NEXT
PRINTL ▼샘플▼
CALL PRINT_TARGET_IMAGE(TARGET)
PRINTL
PRINTFORML [ 0] - 화상표시를 \@ FLAG:화상표시 ? 한다 # 안한다 \@
IF FLAG:화상표시
	PRINTFORML [ *]┬ 현재의 \@ FLAG:스탠딩종류 ? 얼굴 그림 # 스탠딩 \@의 표시 인원수 {FLAG:화상표시}인 화상사이즈{100 + isModifier}％
	PRINTFORML [ 1]├ 늘린다
	PRINTFORML [ 2]└ 줄인다
	PRINTFORML [ 3] - 캐릭터 그림의 타입 \@ FLAG:스탠딩종류 ? [얼굴] # [스탠딩] \@
	PRINTFORML [ 4]┬ 현재의 화상 사이즈[\@ FLAG:멀티사이즈? 원본크기 # {デフォルトキャラ画像横幅} \@]：{100 + isModifier}％
	PRINTFORML [ 5]├ 확대
	PRINTFORML [ 6]└ 축소
	PRINTFORML [ 7] - \@ FLAG:스탠딩종류 ? 얼굴 그림 # 스탠딩 \@의 표시 위치 [\@ FLAG:화상표시위치 ? 왼쪽 맞춤# 중앙 맞춤 \@]
	PRINTFORML [ 8] - 그림 표시에 테두리를 친다 \@ FLAG:화상범위표시 ? ON # OFF \@
	PRINTFORML [ 9] - \@ FLAG:거유차이표시? 거유 이상의 별도 화상이 있는 캐릭터라면 표시한다# 거유차이를 표시하지 않는다\@
	PRINTFORML [10] - \@ FLAG:追加エフェクト? 추가 이펙트를 표시한다# 추가 이펙트를 표시하지 않는다\@
	PRINTFORML [11] - 취침후의 \@ FLAG:自慰画像非表示? 자위화상을 표시하지 않는다 # 자위화상을 표시한다\@
	PRINTFORML [12] - 얼굴 그림이 첨부된 메시지 \@ 顔絵付きメッセージ ? 있음 # 없음\@
	PRINTL
	PRINTFORML [13]\@ FLAG:화상표시 ? ┬ # %" "%- \@ 삽화를 표시한다 \@ FLAG:삽화표시 ? ON # OFF \@
	IF FLAG:화상표시
		PRINT [14]└ 사정 그림의 종류
		SELECTCASE FLAG:사정화상종류
			CASE 0
				PRINTL  [단면＋효과음]
			CASE 1
				PRINTL  [단면만]
			CASE 2
				PRINTL  [효과음만]
		ENDSELECT
	ELSE
		PRINTL
	ENDIF
	PRINTFORML [15]\@ FLAG:애니메이션 ? ┬ # %" "%- \@애니메이션 설정 \@ FLAG:애니메이션 ? 반복 회수 {FLAG:애니메이션}회 # OFF \@
	IF FLAG:애니메이션
		PRINTFORML [ 7]└삽입중에는 매턴 애니메이션 표시：\@FLAG:삽입애니메이션필터 & 아니메필터_삽입 ? [×]# [O]\@
	ELSE
		PRINTL
	ENDIF
ELSE
	FOR LOCAL, 1, 13
		PRINTL
	NEXT
ENDIF
PRINTFORML [999] - 돌아간다
INPUT
IF RESULT == 999
	VARSET TARGET
	RETURN 0
ELSEIF RESULT == 0
	FLAG:화상표시 = !FLAG:화상표시
ELSEIF RESULT == 1
	FLAG:화상표시++
	SIF FLAG:화상표시 > 10
		FLAG:화상표시 = 10
ELSEIF RESULT == 2
	FLAG:화상표시--
	SIF FLAG:화상표시 < 1
		FLAG:화상표시 = 1
ELSEIF RESULT == 3
	FLAG:스탠딩종류 = !FLAG:스탠딩종류
ELSEIF RESULT == 4
	IF FLAG:멀티사이즈
		FLAG:멀티사이즈 = !FLAG:멀티사이즈
		デフォルトキャラ画像横幅 = 180
	ELSEIF デフォルトキャラ画像横幅 == 180
		デフォルトキャラ画像横幅 = 270
	ELSEIF デフォルトキャラ画像横幅 == 270
		デフォルトキャラ画像横幅 = 360
	ELSEIF デフォルトキャラ画像横幅 == 360
		デフォルトキャラ画像横幅 = 540
	ELSEIF デフォルトキャラ画像横幅 == 540
		デフォルトキャラ画像横幅 = 720
	ELSE
		FLAG:멀티사이즈 = !FLAG:멀티사이즈
	ENDIF
ELSEIF RESULT == 5
	isModifier = MIN(isModifier + 10, 50)
ELSEIF RESULT == 6
	isModifier = MAX(isModifier - 10, -50)
ELSEIF RESULT == 7
	FLAG:화상표시위치 = !FLAG:화상표시위치
ELSEIF RESULT == 8
	FLAG:화상범위표시 = !FLAG:화상범위표시
ELSEIF RESULT == 9
	FLAG:거유차이표시 = !FLAG:거유차이표시
ELSEIF RESULT == 10
	FLAG:追加エフェクト = !FLAG:追加エフェクト
ELSEIF RESULT == 11
	FLAG:自慰画像非表示 = !FLAG:自慰画像非表示
ELSEIF RESULT == 12
	INVERTBIT 顔絵付きメッセージ, 0
ELSEIF RESULT == 13
	FLAG:삽화표시 = !FLAG:삽화표시
ELSEIF RESULT == 14 && FLAG:삽화표시
	FLAG:사정화상종류++
	SIF FLAG:사정화상종류 >= 3
		FLAG:사정화상종류 = 0
ELSEIF RESULT == 15
	FLAG:애니메이션++
	SIF FLAG:애니메이션 >= 6
		FLAG:애니메이션 = 0
ELSEIF RESULT == 16
	INVERTBIT FLAG:삽입애니메이션필터, 0
	;CALL ASK_M("삽입 표시 전환", 1,"절정 표시 전환", 1,"사정 표시 전환", 1,"사정 표시 전환", 1,"돌아간다", 1)
	;SIF RESULT == 4
	;	RESTART
	;INVERTBIT FLAG:가사언필터, RESULT
	RESTART
ENDIF
RESTART

;카운터 행동 필터
@OPTION_COUNTER_FILTER
#DIM CCOM_ID
#DIM L_FEED
#DIM TEMP
TEMP = CURRENTREDRAW()
REDRAW 0
LOADGLOBAL
CALL COLORMESSAGE, "※ 필터의 남용은 고장의 원인이 될 수 있습니다 ※", C_YELLOW, 2
DRAWLINE
DO
	L_FEED = LINECOUNT
	FOR CCOM_ID, 0, CCOM_MAXNUM
		SIF STR:(4000 + CCOM_ID) == ""
			CONTINUE
		CALL PRINTBUTTON_EXC(@"%STR:(4000 + CCOM_ID)%[{CCOM_ID,3}]", CCOM_ID, CCOM_FILTER:CCOM_ID)
	NEXT
	PRINTL
	DRAWLINE
	PRINTL [500] - 전부 무효
	PRINTL [501] - 리셋
	PRINTL
	PRINTL [999] - 결정
	INPUT
	SELECTCASE RESULT
	CASE 0 TO CCOM_MAXNUM
		SIF STR:(4000 + RESULT) != ""
			CCOM_FILTER:RESULT = !(CCOM_FILTER:RESULT)
	CASE 500, 501
		VARSET CCOM_FILTER, (RESULT == 500)
	CASE 999
		SAVEGLOBAL
		REDRAW TEMP
		RETURN
	ENDSELECT
	CLEARLINE LINECOUNT - L_FEED
LOOP 1

[SKIPSTART]
;요리 옵션 설정 함수
;0:수동 결정,1:이물 불가,2:약물 불가
@SET_OPTION_COOKING
#DIM CONST OP_BIT_수동결정 = 0
#DIM CONST OP_BIT_이물불가 = 1
#DIM CONST OP_BIT_약물불가 = 2
#DIM CONST OP_BIT_채점온 = 3
PRINTFORML 요리 관련의 옵션을 설정합니다
PRINTFORML 현재의 설정
IF GET_OPTION_COOKING("요리 내용 수동 결정")
	PRINTFORML 　요리 내용：수동으로 결정
ELSE
	PRINTFORML 　요리 내용：자동으로 결정
ENDIF
IF GET_OPTION_COOKING("이물 혼입 불가")
	PRINTFORML 　이물 혼입：하지 않는다
ELSE
	PRINTFORML 　이물 혼입：한다
ENDIF
IF GET_OPTION_COOKING("약물 혼입 불가")
	PRINTFORML 　약물 혼입：하지 않는다
ELSE
	PRINTFORML 　약물 혼입：한다
ENDIF
SELECTCASE GET_OPTION_COOKING("자동 맛내기 설정")
CASE 0
	PRINTFORML 　자동 맛내기：하지 않는다
CASE 10
	PRINTFORML 　자동 맛내기：자동으로 보통 맛
CASE 11
	PRINTFORML 　자동 맛내기：자동으로 진한 맛
CASE 12
	PRINTFORML 　자동 맛내기：자동으로 담백한 맛
ENDSELECT
IF GET_OPTION_COOKING("채점 기능 오프")
	PRINTFORML 　채점 기능：오프
ELSE
	PRINTFORML 　채점 기능：온
ENDIF
DO
	PRINTFORML [9] 요리 내용의 설정 변경
	PRINTFORML [8] 이물 혼입의 설정 변경
	PRINTFORML [7] 약물 혼입의 설정 변경
	PRINTFORML [6] 자동 맛내기의 설정 변경
	PRINTFORML [5] 채점 기능의 설정 변경
	PRINTFORML
	PRINTFORML
	PRINTFORML [0] 결정
	INPUT
	SELECTCASE RESULT
	CASE 9
		INVERTBIT FLAG:요리옵션, OP_BIT_수동결정
	CASE 8
		INVERTBIT FLAG:요리옵션, OP_BIT_이물불가
	CASE 7
		INVERTBIT FLAG:요리옵션, OP_BIT_약물불가
	CASE 6
		PRINTFORML 자동 맛내기 기능의 설정
		PRINTFORML [12] 자동 맛내기 ＜담백한 맛＞
		PRINTFORML [11] 자동 맛내기 ＜진한 맛＞
		PRINTFORML [10] 자동 맛내기 ＜보통 맛＞
		PRINTFORML [ 0] 자동 맛내기를 사용하지 않는다
		DO
			INPUT
			SELECTCASE RESULT
			CASE 10, 11, 12
				CLEARBIT FLAG:요리옵션, 10, 11, 12
				SETBIT   FLAG:요리옵션, RESULT
			CASE 0
				CLEARBIT FLAG:요리옵션, 10, 11, 12
			CASEELSE
			PRINTFORML 무효인 입력입니다
			CONTINUE
			ENDSELECT
			BREAK
		LOOP 1
	CASE 5
		INVERTBIT FLAG:요리옵션, OP_BIT_채점온
	CASE 0
		RETURN
	CASEELSE
		PRINTFORML 무효인 입력입니다
		CONTINUE
	ENDSELECT
	BREAK
LOOP 1
RESTART

;요리옵션의 내용 취득 함수
@GET_OPTION_COOKING(TYPE)
#FUNCTION
#DIMS DYNAMIC TYPE
#DIM CONST OP_BIT_수동결정 = 0
#DIM CONST OP_BIT_이물혼입불가 = 1
#DIM CONST OP_BIT_약물혼입불가 = 2
#DIM CONST OP_BIT_채점기능온 = 3
#DIM CONST OP_BIT_자동맛내기_보통 = 10
#DIM CONST OP_BIT_자동맛내기_진한 = 11
#DIM CONST OP_BIT_자동맛내기_얇은 = 12
SELECTCASE TYPE
CASE "요리 내용 수동 결정"
	SIF GETBIT(FLAG:요리옵션, OP_BIT_수동결정)
		RETURNF 1
CASE "요리 내용 자동 결정"
	RETURNF !GET_OPTION_COOKING("요리 내용 수동 결정")

CASE "이물 혼입 불가"
	SIF GETBIT(FLAG:요리옵션, OP_BIT_이물혼입불가)
		RETURNF 1
CASE "이물 혼입 가능"
	RETURNF !GET_OPTION_COOKING("이물 혼입 불가")

CASE "약물 혼입 불가"
	SIF GETBIT(FLAG:요리옵션, OP_BIT_약물혼입불가)
		RETURNF 1
CASE "약물 혼입 가능"
	RETURNF !GET_OPTION_COOKING("약물 혼입 불가")
CASE "자동 맛내기 설정"
	SIF GETBIT(FLAG:요리옵션, OP_BIT_자동맛내기_보통)
		RETURNF OP_BIT_자동맛내기_보통
	SIF GETBIT(FLAG:요리옵션, OP_BIT_자동맛내기_진한)
		RETURNF OP_BIT_자동맛내기_진한
	SIF GETBIT(FLAG:요리옵션, OP_BIT_자동맛내기_얇은)
		RETURNF OP_BIT_자동맛내기_얇은
CASE "채점 기능 온"
	SIF GETBIT(FLAG:요리옵션, OP_BIT_채점기능온)
		RETURNF 1
CASE "채점 기능 오프"
	RETURNF !GET_OPTION_COOKING("채점 기능 온")
CASEELSE
	THROW 불명한 TYPE%TYPE%
ENDSELECT
RETURNF 0
[SKIPEND]

@SIMATTYAUOJISAN
;TW414_이동 패치에서 오른쪽 클릭이나 매크로에 의한 스킵도 끝내버리도록 수정
;PRINT에서의 웨이트를 없애는 대신에 FORCEWAIT로 스킵 해제하도록
;
FORCEWAIT
PRINT 「화면상에 표시되지 않는 숫자를 입력한 아이가 여기 있어?」
FORCEWAIT
PRINT 치워버리자 아저씨가 나타났다!
FORCEWAIT
PRINT 「자, 화면상에 표시되지 않는 숫자를 입력한 아이의 돈은, 자꾸자꾸 치워버릴 거란다」
FORCEWAIT
PRINTFORM 치워버리자 아저씨는 %CALLNAME:MASTER%의 있는 돈을 모조리 치워버렸다
MONEY = 0
FORCEWAIT
PRINT 「화면상에 표시되지 않는 숫자를 입력하는 아이의 아이템도, 자꾸자꾸 치워버릴 거란다」
FORCEWAIT
PRINTFORM %CALLNAME:MASTER%의 아이템은 치워져버렸다
FOR LOCAL, 0,500
	ITEM:LOCAL = 0
NEXT
FORCEWAIT
PRINT 「화면상에 표시되지 않는 숫자를 입력하는 아이의 기교도, 자꾸자꾸 치워버릴 거란다」
FORCEWAIT
PRINTFORM %CALLNAME:MASTER%의 기교는 치워져버렸다
FORCEWAIT
FOR LOCAL, 0,100
	ABL:0:LOCAL = 0
NEXT
PRINT 「화면상에 표시되지 않는 숫자를 입력하는 아이의 경험도, 자꾸자꾸 치워버릴 거란다」
FORCEWAIT
PRINTFORM %CALLNAME:MASTER%의 경험은 치워져버렸다
FORCEWAIT
FOR LOCAL, 0,100
	EXP:0:LOCAL = 0
NEXT
;하는 김에 콜렉션도 치워버리자(eraTW4.15 팬티 대책 패치에서 추가)
;
PRINT 「화면상에 표시되지 않는 숫자를 입력하는 아이의 팬티 콜렉션도, 자꾸자꾸 치워버릴 거란다」
FORCEWAIT
PRINTFORM %마스터가% 정성들여 수집한, 주옥같은 팬티 콜렉션은 치워져버렸다
FORCEWAIT
FLAG:700 = 0
FOR LOCAL,1,CHARANUM
	FOR LOCAL:1,0,MAXPANTS
		CFLAG:LOCAL:(LOCAL:1 + 팬티관리) = 0
	NEXT
NEXT
PRINT 「화면상에 표시되지 않는 숫자를 입력하는 아이의 신뢰도, 자꾸자꾸 치워버릴 거란다」
FORCEWAIT
PRINTFORM %CALLNAME:MASTER%에게 소녀들이 보내는 신뢰는 치워져버렸다
FOR LOCAL,1,CHARANUM
	CFLAG:LOCAL:신뢰도 = 0
NEXT
FORCEWAIT
;
;
;PRINT 「화면상에 표시되지 않는 숫자를 입력하는 아이의 기초 능력도, 자꾸자꾸 치워버릴 거란다」
;FORCEWAIT
;PRINTFORM %CALLNAME:MASTER%의 기초 능력은 치워져버렸다
;FOR LOCAL, 0,9
;	MAXBASE:0:LOCAL = 99
;	BASE:0:LOCAL = min(MAXBASE:0:LOCAL, BASE:0:LOCAL)
;NEXT
;과연 너무 하고 는 좋지 않다고 생각했으므로 클릭 연타로 용서(허락)해 보았다
;작자님에게 마음대로 맞힌 패치이므로 불쾌하다면 이 부분만큼 패치 앞에 되돌려 주셔 상관하지 않습니다.
;
;
FORCEWAIT
PRINTW 다 망했어∼~~~

;섹시 팬티 삭제
@DELETE_SEXYPANTS
#DIM 대상
#DIM 종류
#DIM 소유수

VARSET RESULT

FOR 대상, 1, CHARANUM
	FOR 종류, 20,26
		소유수 = CFLAG:대상:(종류 + 100)
		IF 소유수 >= 1
			RESULT:0 += (소유수)
			CFLAG:대상:(종류 + 100) = 0
		ENDIF
	NEXT
NEXT

;바이브 팬티 삭제
@DELETE_VIBEPANTS
#DIM 대상
#DIM 종류
#DIM 소유수

VARSET RESULT

FOR 대상, 1, CHARANUM
	FOR 종류, 27,30
		소유수 = CFLAG:대상:(종류 + 100)
		IF 소유수 >= 1
			RESULT:0 += (소유수)
			CFLAG:대상:(종류 + 100) = 0
		ENDIF
	NEXT
NEXT


code:
;-----------------------------------------------------------
;釣った魚リストの表示
;-----------------------------------------------------------
@SHOW_COLLECTION_FISH
#DIM 選んだ魚
#DIM 全種数
#DIM 釣った種数
#DIM 釣った総数
#DIM 최대사이즈
#DIM 消去行数

VARSET LOCAL
全種数 = 0
釣った種数 = 0
釣った総数 = 0
최대사이즈 = 0
消去行数 = 0

CLEARLINE 1
PRINTFORML 지금까지 잡은 물고기 목록
DRAWLINE
FOR LOCAL, 1, 61
	;魚が無名でない
	IF FISH_NAME(LOCAL) != ""
		全種数 ++
		SIF LOCAL < 10
			PRINTFORM
		IF FISH_EXP:(LOCAL)
			釣った種数 ++
			PRINTFORM [{LOCAL}] %FISH_NAME(LOCAL), 18, LEFT%
			SETCOLOR C_L_GRAY
			PRINTFORM （잡은 수：
			SELECTCASE FISH_EXP:LOCAL
				CASE IS < 10
					PRINTFORM
				CASE IS < 100
					PRINTFORM
				CASE IS < 1000
					PRINTFORM
				CASE IS < 10000
					PRINTFORM
			ENDSELECT
			釣った総数 += FISH_EXP:LOCAL
			PRINTFORM {FISH_EXP:LOCAL}마리／최대사이즈：
			SELECTCASE FISHSIZE_RECORD:LOCAL
				CASE IS < 10
					PRINTFORM
				CASE IS < 100
					PRINTFORM
			ENDSELECT
			PRINTFORML {FISHSIZE_RECORD:LOCAL}cm ）
			SIF FISHSIZE_RECORD:LOCAL > 최대사이즈
				최대사이즈 = FISHSIZE_RECORD:LOCAL
		ELSE
			PRINTFORML [{LOCAL}] ????????????
		ENDIF
	ENDIF
	RESETCOLOR
NEXT
SETCOLOR 0x00FF00
PRINTFORM 잡은 물고기의 종류：{釣った種数}／{全種数}
IF 釣った総数
	PRINTFORML 　잡은 물고기의 총 수량：{釣った総数}마리　지금까지 잡은 물고기의 최대사이즈：{최대사이즈}cm
ELSE
	PRINTL
ENDIF
RESETCOLOR
DRAWLINE
PRINT [0] - 돌아간다

$LOOP
INPUT

選んだ魚 = RESULT
SELECTCASE 選んだ魚
	CASE 1 TO 60
		IF FISH_NAME(選んだ魚) != ""
			CLEARLINE 1
			CALL PRINT_FISHINFO(選んだ魚)
			IF FISH_EXP:選んだ魚
				消去行数 = 9
			ELSE
				消去行数 = 2
			ENDIF
			CLEARLINE 消去行数
			GOTO LOOP
		ELSE
			CLEARLINE 1
			GOTO LOOP
		ENDIF
	CASE 0
		RETURN
	CASEELSE
		CLEARLINE 1
		GOTO LOOP
ENDSELECT

;-----------------------------------------------------------
;選択した魚の説明／ヒント表記
;ARG …選んだ魚番号
;-----------------------------------------------------------
@PRINT_FISHINFO(ARG)

DRAWLINE
IF FISH_EXP:ARG
	PRINTPLAINFORM [{ARG}] %FISH_NAME(ARG)%
	PRINTFORML （잡은 수：{FISH_EXP:ARG}마리／최대사이즈：{FISHSIZE_RECORD:ARG}cm ）
	IF ABL:MASTER:교양 < 3
		CALL COLORMESSAGE(@"　　（교양Lv을 올리면 분포 지역이나 낚시철을 알 것 같다...）",C_L_GRAY,1)
	ELSE
		CALL FISHING_HINT(ARG)
	ENDIF
	CALL FISHING_EXPLANATION(ARG)
ELSE
	PRINTPLAINFORM [{ARG}] ?????????????
	CALL FISHING_HINT(ARG)
ENDIF
WAIT

;-----------------------------------------------------------
;選択した魚のヒント文
;ARG …選んだ魚番号
;-----------------------------------------------------------
@FISHING_HINT(ARG)

SELECTCASE ARG
	CASE 1 ;ウグイ
		PRINTFORML 　　현무의 늪、구천의 폭포、산의 호수에 분포　난이도★
	CASE 2 ;アマゴ
		PRINTFORML 　　현무의 늪、구천의 폭포에 분포　난이도★★
	CASE 3 ;ヤマメちゃん
		PRINTFORML 　　현무의 늪、구천의 폭포에 분포　난이도★★★
	CASE 4 ;イワナ
		PRINTFORML 　　현무의 늪、구천의 폭포에 분포　난이도★★★
	CASE 5 ;アブラハヤ
		PRINTFORML 　　안개의 호수、큰두꺼비의 연못에 분포　난이도★
	CASE 6 ;オイカワ
		PRINTFORML 　　삼도천、지옥의 깊은길、순호 저택 안뜰에 분포　난이도★
	CASE 7 ;フナ
		PRINTFORML 　　삼도천、산의 호수에 분포　난이도★★
	CASE 8 ;ピラニア
		PRINTFORML 　　지옥의 깊은길、순호 저택 안뜰에 분포　난이도★★
	CASE 9 ;ガーパイク
		PRINTFORML 　　지옥의 깊은길에 분포　난이도★★★
	CASE 10 ;ブルーギル
		PRINTFORML 　　안개의 호수、산의 호수에 분포　난이도★★★
	CASE 11 ;サケ
		PRINTFORML 　　현무의 늪、구천의 폭포에 분포　낚시철은 가을　난이도★★★★
	CASE 12 ;ワカサギ
		PRINTFORML 　　안개의 호수、현무의 늪、구천의 폭포、큰두꺼비의 연못、산의 호수에 분포　낚시철은 겨울　난이도★★★★
	CASE 13 ;ニジマス
		PRINTFORML 　　현무의 늪、구천의 폭포에 분포　낚시철은 봄~여름　난이도★★★★
	CASE 14 ;ヤツメウナギ
		PRINTFORML 　　현무의 늪、구천의 폭포에 분포　난이도★★★★
	CASE 15 ;カムルチー
		PRINTFORML 　　현무의 늪에 분포　난이도★★★★★
	CASE 16 ;カジカ
		PRINTFORML 　　안개의 호수、삼도천、산의 호수에 분포　난이도★★★
	CASE 17 ;アユ
		PRINTFORML 　　삼도천、지옥의 깊은길、순호 저택 안뜰에 분포　낚시철은 봄~여름　난이도★★★
	CASE 18 ;ナマズ
		PRINTFORML 　　안개의 호수、산의 호수에 분포　낚시철은 봄~가을　난이도★★★★
	CASE 19 ;ウナギ
		PRINTFORML 　　삼도천、지옥의 깊은길、순호 저택 안뜰에 분포　난이도★★★★
	CASE 20 ;ヒメマス
		PRINTFORML 　　안개의 호수에 분포　난이도★★★★
	CASE 22 ;コイ
		PRINTFORML 　　삼도천、큰두꺼비의 연못、산의 호수、순호 저택 안뜰에 분포　난이도★★★★
	CASE 23 ;シーラカンス
		PRINTFORML 　　삼도천에 분포　난이도★★★★★
	CASE 24 ;チョウザメ
		PRINTFORML 　　지옥의 깊은길에 분포　난이도★★★★
	CASE 25 ;クニマス
		PRINTFORML 　　안개의 호수에 분포　난이도★★★★★
	CASE 26 ;ソウギョ
		PRINTFORML 　　삼도천에 분포　난이도★★★★★
	CASE 27 ;ヘラブナ
		PRINTFORML 　　큰두꺼비의 연못에 분포　난이도★★★★★
	CASE 28 ;イトウ
		PRINTFORML 　　구천의 폭포에 분포　난이도★★★★★
	CASE 29 ;オオクチバス
		PRINTFORML 　　산의 호수에 분포　난이도★★★★★
	CASE 30 ;ピラルクー
		PRINTFORML 　　지옥의 깊은길에 분포　난이도★★★★★
	CASE 31; タキタロウ
		PRINTFORML 　　안개의 호수에 분포　삭월 밤에만 나타난다는 소문이 있다.　난이도EXTREAM！！
	CASE 32;アオウオ
		PRINTFORML 　　순호 저택 안뜰에 분포　난이도★★★★★
ENDSELECT


code:
;-----------------------------------------------------------
;사냥한 조수 목록 표시
;-----------------------------------------------------------
@SHOW_COLLECTION_HUNTED
#DIM 선택한짐승
#DIM 전체종수
#DIM 사냥한종수
#DIM 사냥한총수
#DIM 소거행수
#DIM 개행

VARSET LOCAL
전체종수 = 0
사냥한종수 = 0
사냥한총수 = 0
소거행수 = 0
개행 = 0

CLEARLINE 1
PRINTFORML 지금까지 사냥한 조수 목록
DRAWLINE
FOR LOCAL, 1, 61
	CALL CRITTER_DATA(LOCAL)
	;獣が無名でない
	IF CritterName != ""
		전체종수 ++
		SIF LOCAL < 10
			PRINTFORM
		IF CAPTURE_RECORD:LOCAL
			사냥한종수 ++
			PRINTFORM [{LOCAL}] %CritterName, 20, LEFT%
			SETCOLOR C_L_GRAY
			PRINTFORM （사냥한 개체 수：
			SELECTCASE CAPTURE_RECORD:LOCAL
				CASE IS < 10
					PRINTFORM
				CASE IS < 100
					PRINTFORM
				CASE IS < 1000
					PRINTFORM
				CASE IS < 10000
					PRINTFORM
			ENDSELECT
			사냥한총수 += CAPTURE_RECORD:LOCAL
			IF STRCOUNT(CritterTribe, "새/")
				PRINTFORM {CAPTURE_RECORD:LOCAL}마리 ）
			ELSE
				PRINTFORM {CAPTURE_RECORD:LOCAL}필 ）
			ENDIF
		ELSE
			PRINTFORM [{LOCAL}] ????????????
		ENDIF
		개행 ++
		IF 개행 == 2
			PRINTL
			개행 = 0
		ELSE
			PRINT
		ENDIF
	ENDIF
	RESETCOLOR
	;獣関連の変数リセット
	CALL CRITTER_V_RESET
NEXT
PRINTL
SETCOLOR 0x00FF00
PRINTFORM 사냥한 조수의 종류：{사냥한종수}／{전체종수}
IF 사냥한총수
	PRINTFORML 　사낭한 조수의 총수：{사냥한총수}두・마리
ELSE
	PRINTL
ENDIF
RESETCOLOR
DRAWLINE
PRINT [0] - 돌아간다

$LOOP
INPUT

선택한짐승 = RESULT
SELECTCASE 선택한짐승
	CASE 1 TO 61
		CALL CRITTER_DATA(선택한짐승)
		IF CritterName != ""
			CLEARLINE 1
			CALL PRINT_CRITTERINFO(선택한짐승)
			IF CAPTURE_RECORD:선택한짐승
				소거행수 = 5
			ELSE
				소거행수 = 2
			ENDIF
			CLEARLINE 소거행수
			GOTO LOOP
		ELSE
			CLEARLINE 1
			GOTO LOOP
		ENDIF
	CASE 0
		RETURN
		;獣関連の変数リセット
		CALL CRITTER_V_RESET
	CASEELSE
		CLEARLINE 1
		GOTO LOOP
ENDSELECT

;-----------------------------------------------------------
;選択した獣の説明／ヒント表記
;ARG …선택한짐승番号
;-----------------------------------------------------------
@PRINT_CRITTERINFO(ARG)

DRAWLINE
IF CAPTURE_RECORD:ARG
	FONTSTYLE 1
	PRINTPLAINFORM [{ARG}] %CritterName%
	FONTREGULAR
	IF STRCOUNT(CritterTribe, "새/")
		PRINTFORML （사냥한 수：{CAPTURE_RECORD:ARG}마리 ）
	ELSE
		PRINTFORML （사냥한 수：{CAPTURE_RECORD:ARG}두 ）
	ENDIF
	IF ABL:MASTER:교양 < 3
		CALL COLORMESSAGE(@"　　（교양Lv을 올리면、분포 영역·사냥 시기를 알수 있겠다…）",C_L_GRAY,1)
	ELSE
		PRINTFORML 　　%CritterHint%
	ENDIF
	PRINTFORML 　　◇평균적인 수확물： %ITEMNAME:CritterMeat% × {CritterMeat_Value} ◇
	PRINTFORML 　　%CritterIntro%
ELSE
	PRINTPLAINFORM [{ARG}] ?????????????
	PRINTFORML 　　%CritterHint%
ENDIF
WAIT


code:
;-----------------------------------------------------------
;	手に入れた楽譜の表示
;-----------------------------------------------------------
@SHOW_COLLECTION_SCORE
DRAWLINE
CALL DISPLAY_ALL_COLLECTION_SCORE

PRINTL
PRINTFORML 모은 악보의 수 ({RESULT:2}/{RESULT:1})

PRINT [0] - 돌아간다

$SCORE_INPUT
INPUT
IF RESULT == 0
	RETURN 0
ELSE
	CLEARLINE 1
ENDIF
GOTO SCORE_INPUT

;-----------------------------------------------------------
;全楽譜コレクション表示
;SHOW_EMPTY_SERIES_FLAG 未入手のシリーズを表示する場合、1
;
;RESULT:1 総数
;RESULT:2 所有数
;-----------------------------------------------------------
@DISPLAY_ALL_COLLECTION_SCORE(SHOW_EMPTY_SERIES_FLAG=1)
#DIM SHOW_EMPTY_SERIES_FLAG	; 未入手のシリーズを表示する場合、1

#DIM SCORE_NO			; 楽譜番号
#DIM SERIES_NO			; シリーズ番号
#DIM SERIES_SCORE_NO	; シリーズ内の楽譜番号
#DIMS sPrint_Text		; HTML_PRINTする文字列TEMP

RESULT:1 = 0
RESULT:2 = 0
FOR LOCAL, 0, 악보최대수
	SCORE_NO = (악보명개시번호 + LOCAL)
	SERIES_NO = GET_SERIES_NO(SCORE_NO)
	SERIES_SCORE_NO = GET_SERIES_SCORE_NO(SCORE_NO)

	IF SERIES_SCORE_NO == 0
		LOCAL:1 = EXEC_SCORES(악보처리모드：총수카운트, -1, SERIES_NO)	; 総数
		LOCAL:2 = EXEC_SCORES(악보처리모드：소지수카운트, -1, SERIES_NO); 所持数
		LOCAL:3 = (SHOW_EMPTY_SERIES_FLAG || (0 < LOCAL:2))					; 表示判定

		; 結果に加算
		RESULT:1 += LOCAL:1
		RESULT:2 += LOCAL:2

		IF (0 < LOCAL:1) && LOCAL:3
			PRINTFORML
			PRINTFORML 【{SERIES_NO + 1,2}:%GET_SERIES_NAME(SERIES_NO)%】({LOCAL:2}/{LOCAL:1})
		ENDIF
	ENDIF

	IF (STR:SCORE_NO != "")
		; 楽譜表示
		IF LOCAL:3
			sPrint_Text =
<nobr>
			sPrint_Text += @"  <button value='{SCORE_NO}' title='入手条件：%GET_SCORE_INFO_MESSAGE(SCORE_NO)%'>"
			sPrint_Text += @"{SERIES_SCORE_NO + 1,2}:%GET_SCORE_NAME(SCORE_NO, !HAVE_SCORE(SCORE_NO))%"
			sPrint_Text += @"</button>"
			sPrint_Text += @"
"
			HTML_PRINT sPrint_Text
		ENDIF
	ENDIF
NEXT


code:
@SHOW_COLLECTION
#DIM 총수
#DIM 착용가능수
DRAWLINE
IF FLAG:팬티수집상황타입B
	PRINT [0] - 디폴트 정렬
	PRINT [1] - 미소지 수 오름차순 정렬
	INPUT
ENDIF
IF FLAG:팬티수집상황타입B && RESULT
	CALL DISPLAY_SORT_ALL_COLLECTION
ELSE
	CALL DISPLAY_ALL_COLLECTION
ENDIF
총수 = RESULT:0
FLAG:획득팬티총수 = RESULT:1
착용가능수 = RESULT:2
PRINTL
IF FLAG:팬티수집상황타입B == 0
	PRINTFORML 총수：{총수}매　　종별：{FLAG:획득팬티총수}종　　중복：{총수 - FLAG:획득팬티총수}매
ELSE
	PRINTFORML 총수：{총수}매　　종별：{FLAG:획득팬티총수}/{착용가능수}종　　중복：{총수 - FLAG:획득팬티총수}매
ENDIF
PRINT [0] - 돌아간다
SIF 총수 - FLAG:획득팬티총수
	PRINT [1] - 1장만 남기고 전부 매각한다
INPUT
IF RESULT == 1 && (총수 - FLAG:획득팬티총수) != 0
	CALL SPEND_COLLECTION
	PRINTFORMW 총 {RESULT:0}장 \\{100 * RESULT:0}로 팔렸습니다
	MONEY += 100 * RESULT:0
ELSE
	RETURN 0
ENDIF
RESTART

;전 콜렉션 표시
;인수	ARG:0	표시 대상	0=콜렉션	,1=소지
;		ARG:1	표시 종류	0=통상 표시		,1=선택
;반환값	RESULT:0	총수
;		RESULT:1	소유종류수
@DISPLAY_ALL_COLLECTION(ARG:0=0, ARG:1=0)
#DIM 대상
#DIM 총수
#DIM 소유종류수
#DIM 착용가능수

VARSET RESULT
총수 = 0
소유종류수 = 0
착용가능수 = 0

FOR 대상, 1, CHARANUM
	CALL CHECK_COLLECTION(대상, ARG:0)
	;한 장도 팬티 가지지 않은 캐릭터라도 착용가능수를 카운트 하기 위한(해)
	IF FLAG:팬티수집상황타입B && ARG:0 == 0
		PRINTL
		PRINTFORML 【%CALLNAME:대상%】
		CALL DISPLAY_COLLECTION_B(대상, ARG:0, ARG:1)
		총수 += RESULT:0
		소유종류수 += RESULT:1
		착용가능수 += RESULT:2
	ELSEIF RESULT:0 > 0
		PRINTL
		PRINTFORML 【%CALLNAME:대상%】
		CALL DISPLAY_COLLECTION(대상, ARG:0, ARG:1)
		총수 += RESULT:0
		소유종류수 += RESULT:1
	ENDIF
NEXT
RETURN 총수, 소유종류수, 착용가능수

;전체 컬렉션 오름차순 표시
@DISPLAY_SORT_ALL_COLLECTION
#DIM 대상
#DIM 총수
#DIM 소유종류수
#DIM 착용가능수
#DIM 미소지수
;사실은 999가 아니라 CHARANUM 사용하고 싶어
#DIM 미소지수배열,999
#DIM 캐릭터배열,999
미소지수배열:0 = -1
VARSET RESULT
총수 = 0
소유종류수 = 0
착용가능수 = 0

SIF !FLAG:팬티수집상황타입B
	RETURN

FOR 대상,1,CHARANUM
	CALL CHECK_COLLECTION(대상)
	미소지수 = RESULT:2 - RESULT:1
	;0 대입하면 ARRAYMSORT가 기능을 하지 않기 때문에 -1을 대신 넣는
	미소지수배열:대상 = 미소지수 ? 미소지수 # -1
	캐릭터배열:대상 = 대상
NEXT
ARRAYMSORT 미소지수배열,캐릭터배열
FOR 대상,1,CHARANUM
	PRINTL
	PRINTFORML 【%CALLNAME:(캐릭터배열:대상)%】
	CALL DISPLAY_COLLECTION_B(캐릭터배열:대상)
	총수 += RESULT:0
	소유종류수 += RESULT:1
	착용가능수 += RESULT:2
NEXT
RETURN 총수, 소유종류수, 착용가능수

;콜렉션 표시
;인수 대상 표시 대상ID
;		ARG:0	표시 대상	0=콜렉션	,1=소지
;		ARG:1	표시 종류	0=통상 표시		,1=선택
;반환값	RESULT:0	총수
;		RESULT:1	소유종류수
@DISPLAY_COLLECTION(대상, ARG:0=0, ARG:1=0)
#DIM 대상
#DIM 종류
#DIM 소유수
#DIM 개행용
#DIM 총수
#DIM 소유종류수
#DIM 하반신속옷확인보존
#DIM 파자마하반신속옷확인보존

VARSET RESULT
총수 = 0
소유종류수 = 0
개행용 = 0
하반신속옷확인보존 = CFLAG:대상:하반신속옷확인
파자마하반신속옷확인보존 = CFLAG:대상:파자마하반신속옷확인

FOR 종류, 0, MAXPANTS
	IF ARG:0 == 0
		소유수 = CFLAG:대상:(종류 + 팬티관리)
	ELSE
		;소유수 = STRCOUNT(CSTR:MASTER:12, CALLNAME:대상 + TOSTR(종류) + "/")
		소유수 = PANTS_TEMP:대상:종류
		IF CFLAG:대상:(종류 + 팬티관리) == 0
			SETCOLOR COLOR("PINK")
		ELSE
			RESETCOLOR
		ENDIF
	ENDIF
	IF 소유수
		총수 += 소유수
		소유종류수 ++
		개행용 ++
		SIF LINEISEMPTY()
			PRINTFORM
		IF ARG:1 == 0
			PRINTFORM %PANTSNAME(종류, 대상), 22, LEFT%{소유수, 3}장
		ELSE
			LOCALS = [%PANTSNAME(종류, 대상)%]
			LOCALS = %LOCALS, 24, LEFT%{소유수, 3}장
			PRINTBUTTON LOCALS, (대상 * 100 + 종류)
			PRINTS "  "
		ENDIF
		IF 개행용 % 4 == 0 && 개행용
			PRINTL
			개행용 = 0
		ENDIF
	ENDIF
NEXT
SIF 개행용
	PRINTL

CFLAG:대상:하반신속옷확인 = 하반신속옷확인보존
CFLAG:대상:파자마하반신속옷확인 = 파자마하반신속옷확인보존

RESETCOLOR
RETURN 총수, 소유종류수

;콜렉션 소비
;인수	ARG:0	소비 대상 종류	-1=1장 남기고 소비
;반환값	RESULT:0	소비수
@SPEND_COLLECTION(ARG=-1)
#DIM 대상
#DIM 종류
#DIM 소유수

VARSET RESULT

IF ARG == -1
	FOR 대상, 1, CHARANUM
		FOR 종류, 0, MAXPANTS
			소유수 = CFLAG:대상:(종류 + 팬티관리)
			IF 소유수 > 1
				RESULT:0 += (소유수 - 1)
				CFLAG:대상:(종류 + 팬티관리) = 1
			ENDIF
		NEXT
	NEXT
ELSE
	대상 = ARG / 100
	종류 = ARG % 100
	IF CFLAG:대상:(종류 + 팬티관리) >= 1
		RESULT:0 = 1
		CFLAG:대상:(종류 + 팬티관리) -= 1
	ENDIF
ENDIF

RETURN (RESULT:0)

;콜렉션 매수 확인
;인수	ARG:0		대상
;인수	ARG:1		표시 대상	0=콜렉션	,1=소지
;반환값	RESULT:0	총수
;		RESULT:1	종류수
;		RESULT:2	착용가능수
@CHECK_COLLECTION(대상, ARG:1=0)
#DIM 대상
#DIM 종류
#DIM 소지수

VARSET RESULT

FOR 종류, 0, MAXPANTS
	IF ARG:1 == 0
		소지수 = CFLAG:대상:(종류 + 팬티관리)
	ELSE
		소지수 = PANTS_TEMP:대상:종류
	ENDIF
	IF 소지수
		RESULT:0 += 소지수
		RESULT:1 ++
		RESULT:2 ++
	ELSEIF GET_INT(대상, "하반신속옷_비켜놓기불가", 종류, "콜렉션 표시 가능")
		RESULT:2 ++
	ENDIF
NEXT

RETURN RESULT:0, RESULT:1, RESULT:2

;수중에 있는 콜렉션 1장 소비(DISPLAY_COLLECTION(1,1)와 병용)
;인수	ARG:0	소비 대상 종류
;반환값	RESULT:0	소비 판정
@SPEND_HAVE_COLLECTION(ARG)
#DIM 대상
#DIM 종류
#DIM 소유수
#DIM 소비플래그

VARSET LOCALS
VARSET RESULT
소유수 = 0
FOR 대상, 1, CHARANUM
	FOR 종류, 0, MAXPANTS
		;LOCALS:0 = %CALLNAME:대상%{종류}/
		;소유수 = STRCOUNT(CSTR:MASTER:12, LOCALS:0)
		;IF 소유수
		IF PANTS_TEMP:대상:종류
			소비플래그 = 0
			IF ARG != 0 && ARG == (대상 * 100 + 종류)
				소비플래그 = 1
				RESULT:0 = 1
				;팬티 플래그
				CFLAG:대상:293 = 0
				PANTS_TEMP:대상:종류 -= 1
			ENDIF
			;LOCALS:1 = %LOCALS:1 + LOCALS:0 * (소유수 - 소비플래그)%
		ENDIF
		SIF PANTS_TEMP:대상:종류
			소유수 += PANTS_TEMP:대상:종류
	NEXT
NEXT
SIF !소유수
	FLAG:팬티수송 = 0
;CSTR:MASTER:12 = %LOCALS:1%

RETURN (RESULT:0)

;콜렉션 표시 TypeB
;취득 가능한 팬티를 모두 표시
;인수 대상 표시 대상ID
;반환값	RESULT:0	총수
;	RESULT:1	소유종류수
;	RESULT:2	착용가능수
@DISPLAY_COLLECTION_B(대상, ARG:0=0, ARG:1=0)
#DIM 대상
#DIM 종류
#DIM 소유수
#DIM 개행용
#DIM 총수
#DIM 하반신속옷확인보존
#DIM 파자마하반신속옷확인보존
#DIM 소유종류수
#DIM 착용가능수
#DIM 조건있어
#DIMS 조건

VARSET RESULT
총수 = 0
하반신속옷확인보존 = CFLAG:대상:하반신속옷확인
파자마하반신속옷확인보존 = CFLAG:대상:파자마하반신속옷확인
소유종류수 = 0
개행용 = 0
착용가능수 = 0

;남성 용례외 처리
;일단 들어갈 수 있었지만 이것 실제로 작동하는 것 맞나?
IF TALENT:대상:성별  == 2
	FOR 종류, 0, MAXPANTS
		SIF !GET_INT(대상, "하반신속옷_비켜놓기가능", 종류, "남성 속옷")
			CONTINUE
		IF 소유수 > 0
			총수 += 소유수
			소유종류수 ++
		ELSE
			SETCOLOR C_GRAY
		ENDIF
		착용가능수 ++
		PRINTL
		SIF LINEISEMPTY()
			PRINTFORM
		PRINTFORM %COLLECTION_B_PANTS_STR(대상, 종류, 소유수)%
		RESETCOLOR
		IF 개행용 % 4 == 0 && 개행용
			PRINTL
			개행용 = 0
		ENDIF
	NEXT
	SIF 개행용
		PRINTL
	RETURN 총수, 소유종류수, 착용가능수
ENDIF

;이후, 여성과 뚜껑
FOR 종류, 0, MAXPANTS
	소유수 = CFLAG:대상:(종류 + 팬티관리)
	IF 소유수
		총수 += 소유수
		소유종류수 ++
		착용가능수 ++
		개행용 ++
		SIF 종류 == 18
			SETCOLOR C_H_PINK
	ELSE
		SIF !GET_INT(대상, "하반신속옷_비켜놓기가능", 종류, "콜렉션 표시 가능")
			CONTINUE
		착용가능수 ++
		개행용 ++
		SETCOLOR C_GRAY
	ENDIF
	SIF LINEISEMPTY()
		PRINTFORM
	PRINTFORM %COLLECTION_B_PANTS_STR(대상, 종류, 소유수)%
	RESETCOLOR
	IF 개행용 % 4 == 0 && 개행용
		PRINTL
		개행용 = 0
	ENDIF
NEXT
SIF 개행용
	PRINTL

CFLAG:대상:하반신속옷확인 = 하반신속옷확인보존
CFLAG:대상:파자마하반신속옷확인 = 파자마하반신속옷확인보존

RETURN 총수, 소유종류수, 착용가능수

;콜렉션 표시 캐릭터라인
@COLLECTION_B_PANTS_STR(대상, 종류, 소유수)
#FUNCTIONS
#DIM  대상
#DIM  종류
#DIM  소유수
#DIMS 조건
#DIMS 팬티캐릭터라인
IF 소유수
		팬티캐릭터라인 '= @"%PANTSNAME(종류, 대상), 22, LEFT%{LIMIT(소유수, 0, 999), 3}매" + "　"
ELSE
	조건 '= GET_STR(대상, "하반신속옷_비켜놓기가능", 종류, "콜렉션 해금 조건")
	IF 종류 == 18
		조건 '= "?????"
		;부여 캐릭터라인은 「XXX장　」(으)로 전각3+반각 1
		팬티캐릭터라인 '= @"%조건, 22, LEFT%" + " " + "　" * 3
	ELSEIF STRLENS(조건)
		팬티캐릭터라인 '= @"%조건, 22, LEFT%" + " " + "　" * 3
	ELSE
		팬티캐릭터라인 '= @"%PANTSNAME(종류, 대상), 22, LEFT%" + " " + "　" * 3
	ENDIF
ENDIF
RETURNF 팬티캐릭터라인


code:
;----------------------------------------------------------------------
;SHOPの통신판매
;----------------------------------------------------------------------
@ITEM_BUY(ARG)
#DIM LCOUNT
#DIMS TYPE
#DIM SELECT_ITEM
#DIM 루프
;모두의 것↓은 거동 확인용 같았기 때문에 없고 좋다
;PRINTFORML {ITEMSALES:62}
;購入条件設定
FOR LOCAL, 0, 1000
	CALL ITEMDATA(LOCAL, "SALES")
	ITEMSALES:LOCAL = RESULT
NEXT
IF !루프
	DRAWLINE
	CALL LIST_ITEM("전부")
ENDIF
DRAWLINE
;우선 무조건 전부 표시로 했지만 TYPE 지정도 가능
PRINTFORML 구입할 아이템을 선택해주세요 소지금: %금액표시(MONEY)%
DRAWLINE
CALL SHOW_SHOPPING("통신판매", TYPE)
LCOUNT = RESULT
DRAWLINE
PRINTL [990] - 모두 표시　[991] - 조교 아이템　[992] - 소모품　[993] - 일용품　[994] - 식재료　[995] - 주류　[996] - 소질
PRINT [999] - 돌아간다
INPUT

;戻る
IF RESULT == 999
	루프 = 0
	RETURN
ELSEIF INRANGE(RESULT, 990, 996)
	SELECTCASE RESULT
	CASE 990
		TYPE =
	CASE 991
		TYPE = 조교
	CASE 992
		TYPE = 소모품
	CASE 993
		TYPE = 일용품
	CASE 994
		TYPE = 식재료
	CASE 995
		TYPE = 주류
	CASE 996
		TYPE = 소질
	ENDSELECT
ELSEIF INRANGE(RESULT, 0, 1000)
	SELECT_ITEM = RESULT
	SELECTCASE ITEMSTOCK(SELECT_ITEM)
	CASE 1, 4
		PRINTW 유효하지 않은 입력입니다
	CASE 2
		PRINTW 품절입니다
	CASE 3
		PRINTW 소지금이 충분하지 않습니다
	CASE 5
		PRINTW 이미 충분히 가지고 있습니다
	CASEELSE
		CALL ITEMDATA(SELECT_ITEM, "구입")
		루프 = 0
		RESTART
	ENDSELECT
	LCOUNT ++
ENDIF
루프 = 1
CLEARLINE 7 + LCOUNT
RESTART

;----------------------------------------------------------------------
;기본 가게 메뉴
;----------------------------------------------------------------------
@SHOW_SHOPPING(판매점, TYPE, 할인)
#DIMS 판매점
#DIMS TYPE
#DIM 할인
#DIM 표시수
#DIM 표시행
#DIM 가격
표시수 = 0
표시행 = 0
FOR LOCAL, 0 , 1000
	CALL ITEMDATA(LOCAL, "SHOP:" + 판매점)
	IF RESULT
		IF TYPE != ""
			CALL ITEMDATA(LOCAL, "TYPE:" + TYPE)
		ELSE
			RESULT = 1
		ENDIF
		IF RESULT
			가격 = ITEMPRICE:LOCAL * (100 - 할인) / 100
			SELECTCASE ITEMSTOCK(LOCAL, 가격)
			CASE 1
				LOCALS:1 = 존재하지 않음
				CONTINUE
			CASE 2
				LOCALS:1 = 매진
				SETCOLOR C_GRAY
			CASE 3
				LOCALS:1 = %금액표시(가격)%
				SETCOLOR C_GRAY
			CASE 4
				LOCALS:1 = 봉인
				CONTINUE
			CASE 5
				LOCALS:1 = 다 들 수 없다
				SETCOLOR C_GRAY
			CASEELSE
				LOCALS:1 = %금액표시(가격)%
			ENDSELECT
			LOCALS = [{LOCAL,2}]%ITEMNAME:LOCAL%
			PRINTFORM %LOCALS, 24, LEFT% %LOCALS:1, 8%
			RESETCOLOR
			표시수 ++
			IF 표시수 % 3 == 0
				PRINTL
				표시행 ++
			ENDIF
		ENDIF
	ENDIF
NEXT
IF 표시수 % 3 != 0
	PRINTL
	표시행 ++
ENDIF
RETURN 표시행

;---------------------------------------------------------------------
;ITEM 소지수리스트 표시 함수
;---------------------------------------------------------------------
@LIST_ITEM(TYPE = "전부")
#DIMS TYPE
#DIM 표시수

SELECTCASE TYPE
CASE "전부"
	CALL LIST_ITEM("조교")
	CALL LIST_ITEM("일용품")
	CALL LIST_ITEM("소질")
	CALL LIST_ITEM("체질 변화")
	CALL LIST_ITEM("조합물")
	CALL LIST_ITEM("탄막")
	CALL LIST_ITEM("소모품")
	CALL LIST_ITEM("주류")
	CALL LIST_ITEM("식재료")
	CALL LIST_ITEM("야채")
	CALL LIST_ITEM("고기")
	CALL LIST_ITEM("초콜릿")
	CALL LIST_ITEM("회복")
	CALL LIST_ITEM("원예용품")
	CALL LIST_ITEM("소재")
	CALL LIST_ITEM("의상")
	CALL LIST_ITEM("서적")
	CALL LIST_ITEM("특수")
	CALL LIST_ITEM("그 외")
CASEELSE
	;KR 개인패치, 아이템 리스트 개선 start
    PRINTFORML □ %TYPE% □
	;KR 개인패치, 아이템 리스트 개선 end
	;全部回す
	표시수 = 0
	FOR LOCAL, 0, 1100
		CALL ITEMDATA(LOCAL, "TYPE:" + TYPE)
		IF RESULT && ITEM:LOCAL
			PRINTFORMLC %ITEMNAME:LOCAL%({ITEM:LOCAL})
			표시수 ++
			SIF 표시수 % 4 == 0
				PRINTL
		ENDIF
	NEXT
	SIF 표시수 % 4 != 0
		PRINTL
	;KR 개인패치, 아이템 리스트 개선 start
    PRINTL

    SIF 표시수 == 0
        CLEARLINE 2
	;KR 개인패치, 아이템 리스트 개선 end
ENDSELECT

;----------------------------------------------------------------------
;買う前に最終チェックをするもの
;ITEMDATAから呼ばれる
;購入後どうなるかはアイテム次第（主に素質）
;----------------------------------------------------------------------
@SHOP_ASK(ARG, 할인)
#DIM 할인
#DIM price
PRINTFORML %조사처리(ITEMNAME:ARG,"를")% 구입하시겠습니까?
CALL ASK_YN
IF !RESULT
	IF ITEMPRICE:ARG * (100 - 할인) / 100 <= MONEY
		price = ITEMPRICE:ARG * (100 - 할인) / 100
		MONEY -= price
		PRINTFORMW %조사처리(ITEMNAME:ARG,"를")% %금액표시(price)%에 구입했습니다
	ELSE
		PRINTFORMW 돈이 부족하다…
		RETURN 2
	ENDIF
ENDIF
RETURN RESULT

;--------------------------------------------------------------
;아이템 정리하고 구매 함수
;任意の갯수で購入できるものはこれ
;우동 로부터 정리하고 사고 하고 싶었기 때문에 독립 함수화
;반드시 먼저@ITEMSTOCK로 판정해 구입 가능한 아이템만으로 호출하는 것
;단체 구입 전용이겠지만 정리하고 사 가능하겠지만 구입 가불가의 판정은 필요해서 먼저 공통으로 가 주세요
;ARG：구입 대상 아이템
;買ったら가격を返す
;--------------------------------------------------------------
@ITEM_MATOMEGAI(ARG, 할인)
#DIM 할인
#DIM 가격
PRINTFORM %조사처리(ITEMNAME:ARG,"를")% 몇 개 구입하겠습니까?(재고: {ITEMSALES:ARG} 소지수: {ITEM:ARG})
PRINTL
가격 = ITEMPRICE:ARG * (100 - 할인) / 100
;돈부족, 아이템수의 초과는 나중에 맞춘다
SIF ITEMSALES:ARG
	PRINTL [ 1]  - 1
SIF MIN(ITEMSALES:ARG, 소지수제한 - ITEM:ARG) >= 5
	PRINTL [ 5]  - 5
SIF MIN(ITEMSALES:ARG, 소지수제한 - ITEM:ARG) >= 10
	PRINTL [10] - 10
SIF MIN(ITEMSALES:ARG, 소지수제한 - ITEM:ARG) >= 20
	PRINTL [20] - 20
SIF MIN(ITEMSALES:ARG, 소지수제한 - ITEM:ARG) >= 50
	PRINTL [50] - 50
PRINTFORML [{MIN(ITEMSALES:ARG, 소지수제한 - ITEM:ARG), 2}] 전부
PRINTL [ 0]  - 그만둔다
INPUT
IF INRANGE(RESULT, 1, ITEMSALES:ARG)
	IF 가격 * RESULT > MONEY
		PRINTFORMW 돈이 부족하다…
		RETURN 0
	ELSEIF ITEM:ARG + RESULT > 소지수제한
		PRINTFORMW 그렇게 사면 다 들 수 없다！
		RETURN 0
	ENDIF
	MONEY -= 가격 * RESULT
	ITEMSALES:ARG -= RESULT
	ITEM:ARG += RESULT
	PRINTFORMW %조사처리(ITEMNAME:ARG,"를")% {RESULT}개, %금액표시(가격 *RESULT)%에 구입했습니다
	RETURN 가격
ENDIF
RETURN 0

;----------------------------------------------------------------------
;アイテムをカートンで買う関数
;購入数が固定のものはこれ,
;1個でも最終チェックを飛ばして買うのに使う
;ARG：購入対象アイテム
;カートン商品は소지수제한を超えた場合でも余剰分を省いて購入できる
;品物を購入すると가격を返す、なんやかんやで買ってないと0
;----------------------------------------------------------------------
@ITEM_CARTON(ARG, 가격, 갯수, 할인)
#DIM 갯수
#DIM 가격
#DIM 할인
IF !갯수
	갯수 = 1
ELSEIF ITEM:ARG + 갯수 > 소지수제한
	갯수 = 소지수제한 - ITEM:ARG
ENDIF
SIF !가격
	가격 = ITEMPRICE:ARG * 갯수
가격 = 가격 * (100 - 할인) / 100

IF 가격 > MONEY
	PRINTW 돈이 부족하다…
ELSEIF ITEMSALES:ARG == -1
	PRINTW 매진입니다
ELSEIF ITEM:ARG >= 소지수제한
	PRINTW 충분히 가지고 있다
ELSE
	MONEY -= 가격
	ITEMSALES:ARG -= 갯수
	ITEM:ARG += 갯수
	PRINTFORMW %조사처리(ITEMNAME:ARG,"를")% {갯수}개、%금액표시(가격)%에 구입했습니다
	RETURN 가격
ENDIF
RETURN 0

;----------------------------------------------------------------------
;설명문付きのアイテム陳列 ;KR판 임의수정, 일판 LOCALS 처리 불량이었음
;----------------------------------------------------------------------
@ITEM_SHOPPING(ARG, 설명문, 할인)
#DIMS 설명문
#DIM 할인
#DIM 가격
가격 = ITEMPRICE:ARG * (100 - 할인) / 100
;在庫確認
CALL ITEMDATA(ARG, "SALES")
ITEMSALES:ARG = RESULT
LOCALS '= 금액표시(가격)
IF RESULT <= 0
	SETCOLOR C_GRAY
	LOCALS = 매진
ENDIF
SIF 가격 > MONEY
	SETCOLOR C_GRAY
IF ITEM:ARG >= 소지수제한
	SETCOLOR C_GRAY
	LOCALS = 가질 수 없다
ENDIF
LOCALS = [{ARG, 3}] %ITEMNAME:ARG, 22, LEFT% %금액표시(가격)%

;LOCALS = [{ARG, 3}] %ITEMNAME:ARG, 22, LEFT% %LOCALS%

PRINTFORML %LOCALS, 48, LEFT% %설명문%
RESETCOLOR

;----------------------------------------------------------------------
;カートン商品等の特殊なアイテム陳列
;----------------------------------------------------------------------
@EX_SHOPPING(ARG, 상품명, 설명문, 가격, 갯수, 표시번호)
#DIMS 상품명
#DIMS 설명문
#DIM 할인
#DIM 가격
#DIM 갯수
#DIM 표시번호
SIF !가격
	가격 = ITEMPRICE:ARG * 갯수
SIF !표시번호
	표시번호 = ARG
LOCALS = [{표시번호, 3}] %상품명, 22, LEFT% %금액표시(가격)%
CALL ITEMDATA(ARG, "SALES")
ITEMSALES:ARG = RESULT
SIF RESULT <= 0
	SETCOLOR C_GRAY
SIF 가격 > MONEY
	SETCOLOR C_GRAY
SIF ITEM:ARG >= 소지수제한
	SETCOLOR C_GRAY
PRINTFORML %LOCALS,48,LEFT%%설명문%
RESETCOLOR

;------------------------------------------------------------------------
;  쌀·술·모종의 재고 보충
;	싸구려식재는 1일의 마지막에+10, 가게에는 최대로 20이 보관됩니다
;	상급식재는 1일의 마지막에+7, 가게의 최대재고는 15입니다
;	고급식재는 1일의 마지막에+5, 가게의 최대재고는 10입니다
;----------------------------------------------------------------------
@EVENTTURNEND
#PRI
CALL 가게에입하(GETNUM(ITEM, "싸구려식재"),	10,	20)
CALL 가게에입하(GETNUM(ITEM, "상급식재"), 7, 15)
CALL 가게에입하(GETNUM(ITEM, "고급식재"), 5, 10)
CALL 가게에입하(GETNUM(ITEM, "감미재"), 5, 10)
CALL 가게에입하(GETNUM(ITEM, "짐승고기",), 5, 10)
CALL 가게에입하(GETNUM(ITEM, "새고기",), 5, 10)
;술집은 독자적으로 입하
CALL 술집의재고

CALL 가게에입하(GETNUM(ITEM, "거름"), 1, 3)
; 모종은 1종 1일 1개 입하, 최대재고도 3입니다
;	모종을 허술하게 하면(자) 할까 링에 화를 들어요?
FOR LOCAL, 0, 1000
	IF STRCOUNT(ITEMNAME:LOCAL, "의모종")
		CALL 가게에입하(LOCAL, 1, 3)
	ELSE
		;ついでに야채가게,入荷しないこともある
		CALL ITEMDATA(LOCAL, "SHOP:야채가게")
		SIF RESULT
			CALL 가게에입하(LOCAL, RAND:2, 5)
	ENDIF
NEXT

; RETURN 1 해서는 안됩니다

;----------------------------------------------------------------------
; 가게에입하 함수
;	EVENTTURNEND에서의 입하와 술집에서의 매각때에 사용한다
;----------------------------------------------------------------------
@가게에입하(ARG, 입하량, 최대재고)
#DIM 입하량
#DIM 최대재고
SELECTCASE ITEMSALES:ARG
CASE IS >= 최대재고
	; 과잉 재고 때는 재고 입하하지 않는다
CASE -1, 0
	ITEMSALES:ARG = 입하량
CASEELSE
	ITEMSALES:ARG = MIN(ITEMSALES:ARG + 입하량, 최대재고)
ENDSELECT