code:
;요소명→ID변환용 함수의 존부 확인용 함수
;변환 가능(ID와 요소명의 관계가 항상 변화하지 않는다)이라면 설치
;상황에 의해 이름이 바뀌는 것 같은 것은 불가능
;WEAPONID는 변환 가능
@EXIST_하반신속옷_비켜놓기가능_ID
#LOCALSIZE 1
#LOCALSSIZE 1

;요소명→ID변환용 함수
;필요하면 각 오브젝트로와 같이  작성
@하반신속옷_비켜놓기가능_ID(ARG:0, ARGS:0, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS V_NAME                  ;작성하는 변수명
#DIMS C_NAME, OBJ_ID_LAST + 1 ;데이터 보유
#DIM  O_ID                    ;참조용
IF ARGS:0 == "RESET"
	VARSET C_NAME
	FOR O_ID, 1, OBJ_ID_LAST + 1
		C_NAME:O_ID = %GET_STR(, "하반신속옷_비켜놓기가능", O_ID, "이름")%
	NEXT
ELSE
	O_ID = FINDELEMENT(C_NAME, ESCAPE(ARGS:0), , , 1)
	CALLF MAKE_INT(V_NAME, O_ID)
ENDIF

;존부 함수
;F함수는 TRYCALL계를 사용할 수 없기 때문에 통상 함수로 존부 배열을 만들어버린다
@EXIST_하반신속옷_비켜놓기가능0
#LOCALSIZE 1
#LOCALSSIZE 1

;오브젝트 본체
@하반신속옷_비켜놓기가능0(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	;STR형의 일시 변수를 정의하는 명령
	CALLF MAKE_STR(V_NAME, "노팬티")
CASE "입다"
;노팬티를 신는다고는
	SIF (TALENT:ARG:걸레 || TALENT:ARG:소악마 || TALENT:ARG:섹프 || ABL:ARG:노출벽 >= 8) && !RAND:5
		CALLF MAKE_INT(V_NAME, 1)
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, 0)
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능1
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능1(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "트렁크스")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "남자용품의")
CASE "비쳐보이는"
	CALLF MAKE_INT(V_NAME, 1)
CASE "갈아입히기 가능"
	CALLF MAKE_INT(V_NAME, 1)
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "T셔츠"))
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능2

@하반신속옷_비켜놓기가능2(ARG, O_DATA, V_NAME)
#FUNCTION
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "드로워즈")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "완만한 구조의")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	SIF !RAND:(1 + (2 * 승부속옷판정(ARG)))
		CALLF MAKE_INT(V_NAME, 1)
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, 0)

CASE "콜렉션 표시 가능"
	CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능3
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능3(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "쿠마짱 팬티")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "마스코트의 프린트가 사랑스러운")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	IF TALENT:ARG:소악마 || TALENT:ARG:섹프
	ELSEIF TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:무지
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, 0)

CASE "콜렉션 표시 가능"
	IF TALENT:ARG:소악마 || TALENT:ARG:섹프
	ELSEIF TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:무지
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능4
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능4(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "물방울 팬티")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "아이 같은 무늬의")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	IF TALENT:ARG:소악마 || TALENT:ARG:섹프
	ELSEIF TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, 0)

CASE "콜렉션 표시 가능"
	IF TALENT:ARG:소악마 || TALENT:ARG:섹프
	ELSEIF TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능5
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능5(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "줄무늬 팬티")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "영덩이의 라인이 강조되는")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	SIF !RAND:(1 + (2 * 승부속옷판정(ARG)))
		CALLF MAKE_INT(V_NAME, 1)
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, 0)

CASE "콜렉션 표시 가능"
	CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능6
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능6(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "프릴 팬티")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "사랑스러운 프릴이 쓰인")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	IF TALENT:ARG:소악마 || TALENT:ARG:섹프
	ELSEIF TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, 0)

CASE "콜렉션 표시 가능"
	IF TALENT:ARG:소악마 || TALENT:ARG:섹프
	ELSEIF TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능7
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능7(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "민무늬 팬티")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "꾸밈없는")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	IF TALENT:ARG:소악마 || TALENT:ARG:섹프
	ELSEIF !RAND:(1 + (2 * 승부속옷판정(ARG)))
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, 0)

CASE "콜렉션 표시 가능"
	IF TALENT:ARG:소악마 || TALENT:ARG:섹프
	ELSE
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능10
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능10(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "로레그 팬티")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "심플한 디자인의")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	IF !RAND:(1 + (2 * 승부속옷판정(ARG)))
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, 0)

CASE "콜렉션 표시 가능"
	CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능11
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능11(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "로라이즈 팬티")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "엉덩이의 균열부가 보일 것 같은")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	SIF !RAND:(2 - TALENT:ARG:연모)
		CALLF MAKE_INT(V_NAME, 1)
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, 0)

CASE "콜렉션 표시 가능"
	CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능12
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능12(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "하이레그 팬티")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "아슬아슬하게 째진")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	SIF !RAND:(2 - TALENT:ARG:연모)
		CALLF MAKE_INT(V_NAME, 1)
CASE "관련 속옷"
	SELECTCASE RAND:(1 + 승부속옷판정(ARG))
		CASE 1
			CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "베이비돌"))
		CASEELSE
			CALLF MAKE_INT(V_NAME, 0)
	ENDSELECT

CASE "콜렉션 표시 가능"
	CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능13
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능13(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "레이스 팬티(흰색)")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "청초하지만 어렴풋이 비쳐보이는")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	IF !(TALENT:ARG:소악마 || TALENT:ARG:연모) && (TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지)
		CALLF MAKE_INT(V_NAME, 0)
	ELSEIF !RAND:(3 - TALENT:ARG:연모 - 승부속옷판정(ARG))
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
CASE "관련 속옷"
	SELECTCASE (RAND:2 + 승부속옷판정(ARG))
		CASE 2
			CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "베이비돌"))
		CASE 1
			CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "레이스 브라(흰색)"))
		CASEELSE
			CALLF MAKE_INT(V_NAME, 0)
	ENDSELECT

CASE "콜렉션 표시 가능"
	IF !(TALENT:ARG:소악마 || TALENT:ARG:연모) && (TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지)
	ELSE
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
CASE "콜렉션 해금 조건"
	CALLF MAKE_STR(V_NAME, "해금：연모")
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능14
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능14(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	;STR형의 일시 변수를 정의하는 명령
	CALLF MAKE_STR(V_NAME, "레이스 팬티(흑)")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "어른의 색기가 넘치는")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	IF !(TALENT:ARG:소악마 || TALENT:ARG:연모) && (TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지)
		CALLF MAKE_INT(V_NAME, 0)
	ELSEIF !RAND:(3 - TALENT:ARG:연모 - 승부속옷판정(ARG))
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
CASE "관련 속옷"
	SELECTCASE (RAND:2 + 승부속옷판정(ARG))
		CASE 2
			CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "베이비돌"))
		CASE 1
			CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "레이스 브라(흑)"))
		CASEELSE
			CALLF MAKE_INT(V_NAME, 0)
	ENDSELECT

CASE "콜렉션 표시 가능"
	IF !(TALENT:ARG:소악마 || TALENT:ARG:연모) && (TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지)
	ELSE
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
CASE "콜렉션 해금 조건"
	CALLF MAKE_STR(V_NAME, "해금：연모")
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능15
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능15(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "T 백")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "엉덩이가 들어나는 대담한")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "입다"
	SIF (TALENT:ARG:걸레 || TALENT:ARG:소악마 || TALENT:ARG:연모) && !RAND:(3 -  TALENT:ARG:연모 - 승부속옷판정(ARG))
		CALLF MAKE_INT(V_NAME, 1)
CASE "관련 속옷"
	SELECTCASE RAND:(1 + 승부속옷판정(ARG))
		CASE 1
			CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "베이비돌"))
		CASEELSE
			CALLF MAKE_INT(V_NAME, 0)
	ENDSELECT

CASE "콜렉션 표시 가능"
	SIF TALENT:ARG:걸레 || TALENT:ARG:소악마 || TALENT:ARG:연모
		CALLF MAKE_INT(V_NAME, 1)
CASE "콜렉션 해금 조건"
	CALLF MAKE_STR(V_NAME, "해금：연모")
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능16
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능16(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "끈 팬티")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "가는 끈으로 허리에 매인")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	SIF (TALENT:ARG:걸레 || TALENT:ARG:소악마 || TALENT:ARG:연모) && !RAND:(2 -  TALENT:ARG:연모)
		CALLF MAKE_INT(V_NAME, 1)
CASE "관련 속옷"
	SELECTCASE RAND:(1 + 승부속옷판정(ARG))
		CASE 1
			CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "베이비돌"))
		CASEELSE
			CALLF MAKE_INT(V_NAME, 0)
	ENDSELECT

CASE "콜렉션 표시 가능"
	SIF TALENT:ARG:걸레 || TALENT:ARG:소악마 || TALENT:ARG:연모
		CALLF MAKE_INT(V_NAME, 1)
CASE "콜렉션 해금 조건"
	CALLF MAKE_STR(V_NAME, "해금：연모")
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능17
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능17(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "가죽 팬티")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "세로 지퍼가 달린")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "입다"
	SIF (TALENT:ARG:걸레 || TALENT:ARG:소악마 || TALENT:ARG:연모 || TALENT:ARG:섹프) && ABL:ARG:새드끼 > 4 && !RAND:3
		CALLF MAKE_INT(V_NAME, 1)
CASE "관련 속옷"
	IF !RAND:2
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "벨트 브라"))
	ELSE
		CALLF MAKE_INT(V_NAME, 0)
	ENDIF

CASE "콜렉션 표시 가능"
	SIF TALENT:ARG:걸레 || TALENT:ARG:소악마 || TALENT:ARG:연모 || TALENT:ARG:섹프
		CALLF MAKE_INT(V_NAME, 1)
CASE "콜렉션 해금 조건"
	IF (TALENT:ARG:걸레 || TALENT:ARG:소악마 || TALENT:ARG:연모 || TALENT:ARG:섹프) && ABL:ARG:새드끼 <= 4
		CALLF MAKE_STR(V_NAME, "해금：새드끼 5")
	ELSE
		CALLF MAKE_STR(V_NAME, "해금：연모")
	ENDIF
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능18
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능18(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, @"%UNIQUE_UNDERWARE_BOTTOM(ARG)%")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, @"%UNIQUE_UNDERWARE_ADJ(ARG)%")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, UNIQUE_UNDERWARE_TRANSPARENCY_FRONT(ARG))
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, UNIQUE_UNDERWARE_TRANSPARENCY_BACK(ARG))
CASE "입다"
	CALLF MAKE_INT(V_NAME, UNIQUE_UNDERWARE_ABLE(ARG))
CASE "관련 속옷"
	;固有ブラ
	IF GET_INT(ARG, "캐릭터데이터", ARG, "고유 상반신속옷")
		CALLF MAKE_INT(V_NAME, 13)
	ELSE
		CALLF MAKE_INT(V_NAME, 0)
	ENDIF
;우선 이번은 무조건으로 던지지만 본래는 캐릭터데이터함수에 건네주어 반환값을 봐야 함
;그렇다면 착용 조건의 유무까지 설정할 수 있지만, 다시 전캐릭터 분의 설정이 필요하게 된다
;거기까지 하는 것 큰 일이겠지
CASE "콜렉션 표시 가능"
	CALLF MAKE_INT(V_NAME, 1)
CASE "콜렉션 해금 조건"
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능19
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능19(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "쇼츠")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "소녀다운 깜찍한")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	CALLF MAKE_INT(V_NAME, 1)
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, 0)

CASE "콜렉션 표시 가능"
	CALLF MAKE_INT(V_NAME, 1)
CASE "콜렉션 해금 조건"
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능20
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능20(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "스캔티")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "기장이 극히 짧은")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	SIF FLAG:섹시팬티추가 && !RAND:(2 - TALENT:ARG:연모)
		CALLF MAKE_INT(V_NAME, 1)
CASE "관련 속옷"
	SELECTCASE RAND:(1 + 승부속옷판정(ARG))
		CASE 1
			CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "베이비돌"))
		CASEELSE
			CALLF MAKE_INT(V_NAME, 0)
	ENDSELECT

CASE "콜렉션 표시 가능"
	SIF FLAG:섹시팬티추가
		CALLF MAKE_INT(V_NAME, 1)
CASE "콜렉션 해금 조건"
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능21
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능21(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "훈도시")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "엉덩이에 꽉 죄인")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "입다"
	SIF FLAG:섹시팬티추가 && !RAND:(3 + 승부속옷판정(ARG))
		CALLF MAKE_INT(V_NAME, 1)
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "사라시"))

CASE "콜렉션 표시 가능"
	SIF FLAG:섹시팬티추가
		CALLF MAKE_INT(V_NAME, 1)
CASE "콜렉션 해금 조건"
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능22
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능22(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "G스트링")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "극소 면적의 끈과 다름없는")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "입다"
	IF !(FLAG:섹시팬티추가 && ABL:ARG:노출벽 >= 4)
		CALLF MAKE_INT(V_NAME, 0)
	ELSEIF !(TALENT:ARG:걸레 || TALENT:ARG:소악마 || TALENT:ARG:연모 || TALENT:ARG:섹프) && (TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지)
		CALLF MAKE_INT(V_NAME, 0)
	ELSEIF !RAND:(3 - TALENT:ARG:연모 - 승부속옷판정(ARG))
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
CASE "관련 속옷"
	SELECTCASE RAND:(1 + 승부속옷판정(ARG))
		CASE 1
			CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "베이비돌"))
		CASEELSE
			CALLF MAKE_INT(V_NAME, 0)
	ENDSELECT

CASE "콜렉션 표시 가능"
	IF !(FLAG:섹시팬티추가 && ABL:ARG:노출벽 >= 4)
		CALLF MAKE_INT(V_NAME, 0)
	ELSEIF !(TALENT:ARG:걸레 || TALENT:ARG:소악마 || TALENT:ARG:연모 || TALENT:ARG:섹프) && (TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지)
		CALLF MAKE_INT(V_NAME, 0)
	ELSE
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
CASE "콜렉션 해금 조건"
	IF (TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지) && ABL:ARG:노출벽 >= 4
		CALLF MAKE_STR(V_NAME, "해금：연모")
	ELSEIF ABL:ARG:노출벽 < 4
		CALLF MAKE_STR(V_NAME, "해금：노출벽 4")
	ENDIF
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능23
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능23(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "시스루 쇼츠")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "중요한 부분이 비치는")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	IF !(FLAG:섹시팬티추가 && ABL:ARG:노출벽 >= 4)
		CALLF MAKE_INT(V_NAME, 0)
	ELSEIF !(TALENT:ARG:걸레 || TALENT:ARG:소악마 || TALENT:ARG:연모 || TALENT:ARG:섹프) && (TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지)
		CALLF MAKE_INT(V_NAME, 0)
	ELSEIF !RAND:(3 - TALENT:ARG:연모 - 승부속옷판정(ARG))
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
CASE "관련 속옷"
	SELECTCASE (RAND:2 + 승부속옷판정(ARG))
		CASE 2
			CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "베이비돌"))
		CASE 1
			CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "시스루 브라"))
		CASEELSE
			CALLF MAKE_INT(V_NAME, 0)
	ENDSELECT

CASE "콜렉션 표시 가능"
	IF !(FLAG:섹시팬티추가 && ABL:ARG:노출벽 >= 4)
		CALLF MAKE_INT(V_NAME, 0)
	ELSEIF !(TALENT:ARG:걸레 || TALENT:ARG:소악마 || TALENT:ARG:연모 || TALENT:ARG:섹프) && (TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지)
		CALLF MAKE_INT(V_NAME, 0)
	ELSE
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
CASE "콜렉션 해금 조건"
	IF (TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지) && ABL:ARG:노출벽 >= 4
		CALLF MAKE_STR(V_NAME, "해금：연모")
	ELSEIF ABL:ARG:노출벽 < 4
		CALLF MAKE_STR(V_NAME, "해금：노출벽 4")
	ENDIF
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능24
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능24(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "오픈 쇼츠")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "휑하게 치부를 드러낸")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	IF !(FLAG:섹시팬티추가 && ABL:ARG:노출벽 >= 4)
		CALLF MAKE_INT(V_NAME, 0)
	ELSEIF !(TALENT:ARG:걸레 || TALENT:ARG:소악마 || TALENT:ARG:연모 || TALENT:ARG:섹프) && (TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지)
		CALLF MAKE_INT(V_NAME, 0)
	ELSEIF !RAND:(4 - TALENT:ARG:연모 - (2 * 승부속옷판정(ARG)))
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
CASE "관련 속옷"
	SELECTCASE (RAND:2 + 승부속옷판정(ARG))
		CASE 2
			CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "베이비돌"))
		CASE 1
			CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "톱리스 브라"))
		CASEELSE
			CALLF MAKE_INT(V_NAME, 0)
	ENDSELECT

CASE "콜렉션 표시 가능"
	IF !(FLAG:섹시팬티추가 && ABL:ARG:노출벽 >= 4)
		CALLF MAKE_INT(V_NAME, 0)
	ELSEIF !(TALENT:ARG:걸레 || TALENT:ARG:소악마 || TALENT:ARG:연모 || TALENT:ARG:섹프) && (TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지)
		CALLF MAKE_INT(V_NAME, 0)
	ELSE
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
CASE "콜렉션 해금 조건"
	IF (TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지) && ABL:ARG:노출벽 >= 4
		CALLF MAKE_STR(V_NAME, "해금：연모")
	ELSEIF ABL:ARG:노출벽 < 4
		CALLF MAKE_STR(V_NAME, "해금：노출벽 4")
	ENDIF
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능25
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능25(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "반창고")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "세로로 찰싹 붙이기만 한")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "입다"
	IF !(FLAG:섹시팬티추가 && ABL:ARG:노출벽 >= 4)
		CALLF MAKE_INT(V_NAME, 0)
	ELSEIF (TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지) && !RAND:3
		CALLF MAKE_INT(V_NAME, 1)
	ELSE
		CALLF MAKE_INT(V_NAME, 0)
	ENDIF
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "반창고"))

CASE "콜렉션 표시 가능"
	IF !(FLAG:섹시팬티추가 && ABL:ARG:노출벽 >= 4)
		CALLF MAKE_INT(V_NAME, 0)
	ELSEIF (TALENT:ARG:유치 || TALENT:ARG:애같음 || TALENT:ARG:체형 < 0 || TALENT:ARG:무지)
		CALLF MAKE_INT(V_NAME, 1)
	ELSE
		CALLF MAKE_INT(V_NAME, 0)
	ENDIF
CASE "콜렉션 해금 조건"
	IF ABL:ARG:노출벽 < 4
		CALLF MAKE_STR(V_NAME, "해금：노출벽 4")
	ENDIF
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능26
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능26(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "드로워즈(가랑이 열림)")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "배변용으로 가랑이가 크게 벌어진")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "입다"
	IF FLAG:섹시팬티추가 && (TALENT:ARG:섹프 && ABL:ARG:노출벽 >= 5 || TALENT:ARG:무지) && !RAND:4
		CALLF MAKE_INT(V_NAME, 1)
	ELSE
		CALLF MAKE_INT(V_NAME, 0)
	ENDIF
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, 0)

CASE "콜렉션 표시 가능"
	IF !FLAG:섹시팬티추가
		CALLF MAKE_INT(V_NAME, 0)
	ELSEIF (TALENT:ARG:섹프 && ABL:ARG:노출벽 >= 5 || TALENT:ARG:무지)
		CALLF MAKE_INT(V_NAME, 1)
	ELSE
		CALLF MAKE_INT(V_NAME, 0)
	ENDIF
CASE "콜렉션 해금 조건"
	IF TALENT:ARG:무지
	ELSEIF TALENT:ARG:섹프 && ABL:ARG:노출벽 >= 5
	ELSEIF TALENT:ARG:섹프
		CALLF MAKE_STR(V_NAME, "해금：노출벽 5")
	ELSEIF ABL:ARG:노출벽 >= 5
		CALLF MAKE_STR(V_NAME, "해금：섹프")
	ENDIF
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능27
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능27(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "정조대")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "튼튼한 열쇠가 잠긴 금속제의")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "정조대 브라"))
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능28
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능28(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "촉수 속옷")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "안쪽에서 뭔가 꿈틀꿈틀 움직이는")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "촉수 브라"))
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능29
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능29(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "바이브 팬티")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "원통형의 이물이 장치된")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, 0)
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능30
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능30(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "두 구멍 바이브 팬티")
CASE "묘사"
	CALLF MAKE_STR(V_NAME, "두 개의 봉이 가랑이에서 방방 굽이치는")
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, 0)
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능31
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능31(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "비키니 보텀")
;하반신속옷2의 20
CASE "갈아입히기 가능"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "비키니 탑"))
ENDSELECT

@EXIST_하반신속옷_비켜놓기가능32
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기가능32(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "마이크로 보텀")
;하반신속옷2の21
CASE "갈아입히기 가능"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "관련 속옷"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "마이크로 탑"))
ENDSELECT

@승부속옷판정(ARG)
#FUNCTION
IF !TALENT:ARG:무지
	SIF (CFLAG:ARG:기정사실 & 합의_우후후 || TALENT:ARG:연모) && CFLAG:ARG:다음날내방
		RETURNF 1
	IF DAY:2 == 1
		SELECTCASE DAY:3
			CASE 14
				SIF TALENT:ARG:연모
					RETURNF 1
		ENDSELECT
	ELSEIF DAY:2 == 4
		SELECTCASE DAY:3
			CASE 14, 24, 25
				SIF TALENT:ARG:연모
					RETURNF 1
		ENDSELECT
	ENDIF
ENDIF
RETURNF 0


code:
;하반신속옷_비켜놓기불가
;요소명→ID변환용 함수의 존부 확인용 함수
;변환 가능(ID와 요소명의 관계가 항상 변화하지 않는다)이라면 설치
;상황에 의해 이름이 바뀌는 것 같은 것은 불가능
@EXIST_하반신속옷_비켜놓기불가_ID
#LOCALSIZE 1
#LOCALSSIZE 1

;요소명→ID변환용 함수
;필요하면 각 오브젝트로와 같이  작성
@하반신속옷_비켜놓기불가_ID(ARG:0, ARGS:0, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS V_NAME                  ;작성하는 변수명
#DIMS C_NAME, OBJ_ID_LAST + 1 ;데이터 보유
#DIM  O_ID                    ;참조용
IF ARGS:0 == "RESET"
	VARSET C_NAME
	FOR O_ID, 1, OBJ_ID_LAST + 1
		C_NAME:O_ID = %GET_STR(, "하반신속옷_비켜놓기불가", O_ID, "이름")%
	NEXT
ELSE
	O_ID = FINDELEMENT(C_NAME, ESCAPE(ARGS:0), , , 1)
	CALLF MAKE_INT(V_NAME, O_ID)
ENDIF

@EXIST_하반신속옷_비켜놓기불가1
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기불가1(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "샅바")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「하반신속옷1」")
;구장비 처리와의 조회용, 하반신속옷1의 1
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 0)
ENDSELECT

@EXIST_하반신속옷_비켜놓기불가2
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기불가2(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "마에바리")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「하반신속옷1」")
;구장비 처리와의 조회용, 하반신속옷1의 2
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 0)
ENDSELECT

@EXIST_하반신속옷_비켜놓기불가3
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기불가3(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "반창고")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「하반신속옷1」")
;구장비 처리와의 조회용, 하반신속옷1의 3
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 0)
ENDSELECT

@EXIST_하반신속옷_비켜놓기불가4
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기불가4(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "스패츠")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「하반신속옷1」")
;구장비 처리와의 조회용, 하반신속옷1의 4
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 1)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

@EXIST_하반신속옷_비켜놓기불가5
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기불가5(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "정조대")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「하반신속옷1」")
;구장비 처리와의 조회용, 하반신속옷1의 5
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 0)
ENDSELECT

@EXIST_하반신속옷_비켜놓기불가6
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기불가6(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "라비아 피어스")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「하반신속옷1」")
;구장비 처리와의 조회용, 하반신속옷1의 6
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 0)
ENDSELECT

@EXIST_하반신속옷_비켜놓기불가7
#LOCALSIZE 1
#LOCALSSIZE 1

@하반신속옷_비켜놓기불가7(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "클리 피어스")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「하반신속옷1」")
;구장비 처리와의 조회용, 하반신속옷1의 7
CASE "비쳐보이는(앞)"
	CALLF MAKE_INT(V_NAME, 0)
CASE "비쳐보이는(뒤)"
	CALLF MAKE_INT(V_NAME, 0)
ENDSELECT

repo_name: DNS/eraTWKR

license: mit


code:
;요소명→ID변환용 함수의 존부 확인용 함수
;변환 가능(ID와 요소명의 관계가 항상 변화하지 않는다)이라면 설치
;상황에 의해 이름이 바뀌는 것 같은 것은 불가능
@EXIST_의상세트_ID
#LOCALSIZE 1
#LOCALSSIZE 1

;요소명→ID변환용 함수
;필요하면 각 오브젝트로와 같이  작성
@의상세트_ID(ARG:0, ARGS:0, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS V_NAME                  ;작성하는 변수명
#DIMS C_NAME, OBJ_ID_LAST + 1 ;데이터 보유
#DIM  O_ID                    ;참조용
IF ARGS:0 == "RESET"
	VARSET C_NAME
	FOR O_ID, 1, OBJ_ID_LAST + 1
		C_NAME:O_ID = %GET_STR(, "의상세트", O_ID, "이름")%
	NEXT
ELSE
	O_ID = FINDELEMENT(C_NAME, ESCAPE(ARGS:0), , , 1)
	CALLF MAKE_INT(V_NAME, O_ID)
ENDIF

;존부 함수
;F함수는 TRYCALL계를 사용할 수 없기 때문에 통상 함수로 존부 배열을 만들어버린다
@EXIST_의상세트1
#LOCALSIZE 1
#LOCALSSIZE 1

;오브젝트 본체
@의상세트1(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "남장 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)

;여기서부터 의상 설정계
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "바지"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("바지", "바지"))
CASE "상반신속옷1"
;오토메는 사라시를 붙인다
	IF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "사라시"))
	ELSE
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "T셔츠"))
	ENDIF
CASE "상반신윗도리1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리1", "윗도리"))
ENDSELECT

@EXIST_의상세트2
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트2(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "여장 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)

;여기서부터 의상 설정계
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "치마"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "치마"))
CASE "상반신속옷1"
;오토코노코는 브래지어를 착용하지 않는다
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "브래지어"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "블라우스"))
ENDSELECT

@EXIST_의상세트3
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트3(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "집사 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)

;여기서부터 의상 설정계
CASE "상반신속옷1"
;오토코노코는 브래지어를 착용하지 않는다
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "브래지어"))
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "상반신윗도리1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리1", "셔츠"))
CASE "상반신속옷1"
;오토코노코는 브래지어를 착용하지 않는다
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "브래지어"))
CASE "하반신속옷2"
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("하반신속옷2", "트렁크스"))
CASE "외투"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("외투", "쟈켓"))
CASE "그외1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외1", "넥타이"))
CASE "그외2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외2", "숄더백"))
CASE "바지"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("바지", "슬랙스(평상복 바지)"))
CASE "완부의복"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("완부의복", "실크 글러브"))
ENDSELECT

@EXIST_의상세트4
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트4(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "가정부 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)

;여기서부터 의상 설정계
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "머리 장식"))
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "기모노"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("기모노", "기모노"))
CASE "상반신속옷1"
;오토코노코는 브래지어를 착용하지 않는다
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "브래지어"))
CASE "외투"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("외투", "일본식 앞치마"))
ENDSELECT

@EXIST_의상세트5
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트5(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "신관 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)

;여기서부터 의상 설정계
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "설태"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "버선"))
CASE "바지"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("바지", "하카마"))
CASE "상반신속옷1"
;오토메는 사라시를 붙인다
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "사라시"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "흰 소매"))
ENDSELECT

@EXIST_의상세트6
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트6(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "작업복 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)

;여기서부터 의상 설정계
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "설태"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "버선"))
CASE "상반신속옷1"
;오토메는 사라시를 붙인다
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "사라시"))
CASE "상반신윗도리1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리1", "작업복(위)"))
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "손수건"))
CASE "바지"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("바지", "작업복(아래)"))
ENDSELECT

@EXIST_의상세트7
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트7(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "평상복 차림 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)

;여기서부터 의상 설정계
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "설태"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "버선"))
CASE "상반신속옷1"
;오토메는 사라시를 붙인다
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "사라시"))
CASE "기모노"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("기모노", "기모노"))
CASE "그외1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외1", "띠"))
CASE "외투"
	SIF DAY:2 == 3 || DAY:2 == 4
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("외투", "하오리"))
ENDSELECT

@EXIST_의상세트8
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트8(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "도복 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)

;여기서부터 의상 설정계
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "짚신"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "버선"))
CASE "상반신속옷1"
	;남장
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "사라시"))
CASE "하반신속옷1"
	;남자
	SIF !GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("하반신속옷1", "샅바"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "도복"))
CASE "바지"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("바지", "하카마"))
ENDSELECT

@EXIST_의상세트9
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트9(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "학생 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)

;여기서부터 의상 설정계
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "부츠"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "상반신속옷2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷2", "컬러 셔츠"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "긴 일본옷"))
CASE "바지"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("바지", "하카마"))
CASE "외투"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("외투", "케이프 망토"))
ENDSELECT

@EXIST_의상세트10
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트10(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "여학생 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)

;여기서부터 의상 설정계
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "부츠"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "상반신속옷1"
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "브래지어"))
CASE "하반신속옷1"
	SIF !GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("하반신속옷1", "샅바"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "코몬"))
CASE "치마"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "남자용치마"))
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "리본"))
ENDSELECT

;MOB 추가
@EXIST_의상세트11
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트11(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "기모노 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)

;여기서부터 의상 설정계
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "기모노"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("기모노", "기모노"))
CASE "상반신속옷1"
;오토코노코는 브래지어를 착용하지 않는다
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "브래지어"))
ENDSELECT

@EXIST_의상세트12
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트12(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "캇파 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)

;여기서부터 의상 설정계
CASE "액세서리"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("액세서리", "고글"))
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "카스케트"))
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "그외1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외1", "배낭"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "블라우스"))
CASE "상반신윗도리1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리1", "윗도리"))
CASE "치마"
	;SIF DAY:2 != 2
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "치마"))
CASE "상반신속옷1"
;오토코노코는 브래지어를 착용하지 않는다
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "브래지어"))
ENDSELECT

@EXIST_의상세트13
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트13(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "요정 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "리본"))
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "원피스"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("원피스", "원피스"))
ENDSELECT

@EXIST_의상세트14
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트14(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "백랑텐구 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "두건"))
CASE "액세서리"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("액세서리", "소매"))
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "나막신"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "치마"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "치마"))
CASE "상반신윗도리1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리1", "민소매 윗도리"))
ENDSELECT

@EXIST_의상세트15
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트15(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "까마귀 텐구 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "두건"))
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "나막신"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "치마"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "치마"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "블라우스"))
CASE "그외1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외1", "넥타이"))
ENDSELECT

@EXIST_의상세트16
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트16(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "이나바 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "원피스"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("원피스", "원피스"))
ENDSELECT

@EXIST_의상세트17
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트17(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "옥토 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "치마"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "치마"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "와이셔츠"))
CASE "상반신윗도리1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리1", "블레이저 코트"))
CASE "그외1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외1", "넥타이"))
ENDSELECT

@EXIST_의상세트18
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트18(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "鬼 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "나막신"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "버선"))
CASE "기모노"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("기모노", "기모노"))
CASE "그외1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외1", "구속도구"))
CASE "상반신속옷1"
;오토코노코는 브래지어를 착용하지 않는다
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "사라시"))
ENDSELECT

@EXIST_의상세트19
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트19(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "사복A 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "치마"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "치마"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "T셔츠"))
ENDSELECT

@EXIST_의상세트20
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트20(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "사복B 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "치마"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "치마"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "반소매 블라우스"))
CASE "그외1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외1", "넥타이"))
ENDSELECT

@EXIST_의상세트21
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트21(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "사복CA 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "바지"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("바지", "바지"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "T셔츠"))
CASE "외투"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("외투", "쟈켓"))
CASE "액세서리"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("액세서리", "목걸이"))
CASE "그외1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외1", "벨트"))
ENDSELECT

@EXIST_의상세트22
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트22(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "사복CB 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "바지"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("바지", "바지"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "T셔츠"))
CASE "액세서리"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("액세서리", "목걸이"))
CASE "그외1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외1", "벨트"))
ENDSELECT

@EXIST_의상세트23
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트23(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "사복D 세트")
CASE "기본 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "원피스"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("원피스", "원피스"))
ENDSELECT

;------------------------------------
;파자마
;------------------------------------
@EXIST_의상세트31
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트31(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "파자마(주반) 세트")
CASE "파자마 세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "기모노"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("기모노", "주반"))
ENDSELECT

@EXIST_의상세트32
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트32(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "파자마(네글리제) 세트")
CASE "파자마 세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "원피스"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("원피스", "롱 네글리제"))
ENDSELECT

@EXIST_의상세트33
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트33(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "파자마(베이비돌) 세트")
CASE "파자마 세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "원피스"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("원피스", "베이비돌"))
ENDSELECT

@EXIST_의상세트34
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트34(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "파자마(바지) 세트")
CASE "파자마 세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "바지"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("바지", "파자마 바지"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "파자마 윗도리"))
ENDSELECT

@EXIST_의상세트35
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트35(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "파자마(치마) 세트")
CASE "파자마 세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "치마"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "파자마 치마"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "파자마 윗도리"))
ENDSELECT

@EXIST_의상세트36
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트36(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "파자마(바지＋후드) 세트")
CASE "파자마 세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "후드"))
CASE "바지"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("바지", "파자마 바지"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "파자마 윗도리"))
ENDSELECT

@EXIST_의상세트37
#LOCALSIZE 1
#LOCALSSIZE 1
;우선 만들었지만 할당하지 않다

@의상세트37(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "파자마(치마＋후드) 세트")
CASE "파자마 세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "후드"))
CASE "치마"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "파자마 치마"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "파자마 윗도리"))
ENDSELECT

@EXIST_의상세트38
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트38(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "파자마(바지＋캡) 세트")
CASE "파자마 세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "나이트캡"))
CASE "바지"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("바지", "파자마 바지"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "파자마 윗도리"))
ENDSELECT

@EXIST_의상세트39
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트39(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "파자마(치마＋캡) 세트")
CASE "파자마 세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "나이트캡"))
CASE "치마"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "파자마 치마"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "파자마 윗도리"))
ENDSELECT

@EXIST_의상세트40
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트40(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "파자마(네글리제＋캡) 세트")
CASE "파자마 세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "나이트캡"))
CASE "원피스"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("원피스", "롱 네글리제"))
ENDSELECT

@EXIST_의상세트41
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트41(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "파자마(베이비돌＋캡) 세트")
CASE "파자마 세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "나이트캡"))
CASE "원피스"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("원피스", "베이비돌"))
ENDSELECT

@EXIST_의상세트42
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트42(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "파자마(원피스) 세트")
CASE "파자마 세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "원피스"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("원피스", "원피스"))
ENDSELECT

@EXIST_의상세트43
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트43(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "파자마(목욕타올) 세트")
CASE "파자마 세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "원피스"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("원피스", "목욕타올"))
ENDSELECT

;------------------------------------
;코스프레 의상
;------------------------------------
@EXIST_의상세트50
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트50(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "양호실의 여교사 세트")
CASE "코스프레 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "액세서리"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("액세서리", "안경"))
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "가터 스타킹"))
CASE "상반신속옷1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "브래지어"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "가슴 열림 터틀넥"))
CASE "치마"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "치마"))
CASE "외투"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("외투", "백의"))
CASE "그외1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외1", "벨트"))
ENDSELECT

@EXIST_의상세트51
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트51(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "메이드 세트")
CASE "코스프레 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "화이트브림"))
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "가터 스타킹"))
CASE "상반신속옷1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "브래지어"))
CASE "원피스"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("원피스", "에이프런 드레스"))
ENDSELECT

@EXIST_의상세트52
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트52(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "비키니 세트")
CASE "코스프레 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "상반신속옷2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷2", "비키니 탑"))
CASE "하반신속옷2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("하반신속옷2", "비키니 보텀"))
ENDSELECT

@EXIST_의상세트53
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트53(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "마이크로 비키니 세트")
CASE "코스프레 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "상반신속옷2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷2", "마이크로브라"))
CASE "하반신속옷2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("하반신속옷2", "마이크로 보텀"))
ENDSELECT

@EXIST_의상세트54
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트54(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "샅바오토메 세트")
CASE "코스프레 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "상반신속옷1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "사라시"))
CASE "하반신속옷1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("하반신속옷1", "샅바"))
ENDSELECT

@EXIST_의상세트55
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트55(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "바니 걸 세트")
CASE "코스프레 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "토끼귀 헤어밴드"))
CASE "완부의복"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("완부의복", "커프스"))
CASE "레오타드"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("레오타드", "바니 슈트(흑)"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "그물 타이츠"))
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "하이힐"))
CASE "그외1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외1", "넥타이"))
ENDSELECT

@EXIST_의상세트56
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트56(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "백의의 천사 세트")
CASE "코스프레 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "간호사 캡"))
CASE "원피스"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("원피스", "간호사 옷"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "팬티 스타킹"))
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "간호사 샌들"))
ENDSELECT

@EXIST_의상세트57
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트57(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "산타옷 세트")
CASE "코스프레 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "산타모"))
;수염
CASE "그외1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외1", "수염"))
CASE "외투"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("외투", "케이프"))
;상반신윗도리
CASE "상반신윗도리1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리1", "윗도리"))
;미니스커트
CASE "치마"
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "미니스커트"))
;브래지어
CASE "상반신속옷1"
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "브래지어"))
CASE "바지"
	SIF !GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("바지", "바지"))
;오늘의팬티
;CASE "하반신속옷2"
;	CALLF MAKE_INT(V_NAME, 오늘의팬티(ARG))
;양말
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
;롱 부츠
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "롱 부츠"))
ENDSELECT

@EXIST_의상세트58
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트58(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "테니스 웨어 세트")
CASE "코스프레 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
;선바이저
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "선바이저"))
;반소매 블라우스
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "반소매 블라우스"))
CASE "치마"
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "미니스커트"))
CASE "바지"
	SIF !GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("바지", "쇼트 바지"))
;스포츠브라
CASE "상반신속옷1"
	SIF GETBIT(TALENT:ARG:2, 0)
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "스포츠브라"))
;양말
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
;신발
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
ENDSELECT

@EXIST_의상세트59
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트59(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "닌자 세트")
CASE "코스프레 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
CASE "갈아입히기 속성"
	CALLF MAKE_STR(V_NAME, "「코스프레」")
;여기서부터 의상 설정계
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "작업화"))
CASE "기모노"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("기모노", "인의복"))
CASE "레오타드"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("레오타드", "사슬갑옷"))
CASE "완부의복"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("완부의복", "토시"))
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "탈"))
ENDSELECT

@EXIST_의상세트60
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트60(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "알몸 와이셔츠 세트")
CASE "코스프레 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
;와이셔츠(유일한 복장. 외는 전해제)
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "와이셔츠"))
ENDSELECT

@EXIST_의상세트61
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트61(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "웨딩 세트")
CASE "코스프레 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "웨딩 베일"))
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "뮬"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "니삭스"))
CASE "상반신속옷1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "브래지어"))
CASE "원피스"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("원피스", "웨딩드레스"))
ENDSELECT

@EXIST_의상세트62
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트62(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "멋진 T셔츠 세트")
CASE "코스프레 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "치마"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "삼색치마"))
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "부츠"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "지옥T셔츠"))
ENDSELECT

@EXIST_의상세트63
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트63(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "고스로리 세트")
CASE "코스프레 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "하이 부츠"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "가터 스타킹"))
CASE "상반신속옷1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신속옷1", "브래지어"))
CASE "원피스"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("원피스", "고스로리 드레스"))
ENDSELECT

@EXIST_의상세트64
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트64(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "라이더 세트")
CASE "코스프레 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "부츠"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "보디슈트"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("보디슈트", "라이더 슈트"))
CASE "그외1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외1", "스카프"))
ENDSELECT

;------------------------------------
;캐릭터 특수 의상(외부로부터 참조 가능)
;------------------------------------
@EXIST_의상세트70
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트70(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "카스케트 아야 세트")
CASE "캐릭터 특수 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
;카스케트
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "카스케트"))
;펌프스
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "펌프스"))
;양말
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
;와이셔츠
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "와이셔츠"))
;숏 팬츠
CASE "바지"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("바지", "숏 팬츠"))
;넥타이
CASE "그외1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외1", "넥타이"))
;숄더백
CASE "그외2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외2", "숄더백"))
;슈트 쟈켓
CASE "외투"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("외투", "슈트 쟈켓"))
ENDSELECT

@EXIST_의상세트71
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트71(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "우동게 약장수 세트")
CASE "캐릭터 특수 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "삿갓"))
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "설태"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "버선"))
;오늘의팬티
CASE "기모노"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("기모노", "기모노"))
CASE "완부의복"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("완부의복", "토시"))
CASE "그외1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외1", "옷고리짝"))
CASE "그외2"
;다리의 게이톨 같은 그것은 붕대로 대용
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외2", "붕대"))
ENDSELECT

@EXIST_의상세트72
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트72(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "마미조 의복 세트")
CASE "캐릭터 특수 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
;머리 장식
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "머리 장식"))
;나막신
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "나막신"))
;버선
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "버선"))
CASE "그외1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외1", "담뱃대"))
CASE "그외2"
	SIF DAY:2 == 4
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("그외2", "머플러"))
;안경
CASE "액세서리"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("액세서리", "안경"))
;하오리
CASE "외투"
	SIF DAY:2 == 4 || DAY:2 == 3
		CALLF MAKE_INT(V_NAME, CLOTHES_ID("외투", "하오리"))
;긴 일본옷
CASE "상반신윗도리2"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리2", "긴 일본옷"))
CASE "치마"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "치마"))
ENDSELECT

@EXIST_의상세트73
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트73(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "맨다리 메이링 세트")
CASE "캐릭터 특수 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "모자"))
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "원피스"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("원피스", "차이나 드레스"))
ENDSELECT

@EXIST_의상세트74
#LOCALSIZE 1
#LOCALSSIZE 1

@의상세트74(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "세일러 사나에 세트")
CASE "캐릭터 특수 의상세트"
	CALLF MAKE_INT(V_NAME, 1)
;여기서부터 의상 설정계
CASE "모자"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("모자", "머리 장식"))
CASE "신발"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("신발", "가죽 신발"))
CASE "양말"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("양말", "양말"))
CASE "상반신윗도리1"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("상반신윗도리1", "세라복"))
CASE "치마"
	CALLF MAKE_INT(V_NAME, CLOTHES_ID("치마", "치마"))
ENDSELECT


code:
;캐캐릭터리스트
;요소명→ID변환용 함수의 존부 확인용 함수
;변환 가능(ID와 요소명의 관계가 항상 변화하지 않는다)이라면 설치
;상황에 의해 이름이 바뀌는 것 같은 것은 불가능
@EXIST_캐릭터리스트_ID
#LOCALSIZE 1
#LOCALSSIZE 1

;요소명→ID변환용 함수
;필요하면 각 오브젝트로와 같이  작성
@캐릭터리스트_ID(ARG:0, ARGS:0, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS V_NAME                  ;작성하는 변수명
#DIMS C_NAME, OBJ_ID_LAST + 1 ;데이터 보유
#DIM  O_ID                    ;참조용
IF ARGS:0 == "RESET"
	VARSET C_NAME
	FOR O_ID, 1, OBJ_ID_LAST + 1
		C_NAME:O_ID = %GET_STR(, "캐릭터리스트", O_ID, "이름")%
	NEXT
ELSE
	O_ID = FINDELEMENT(C_NAME, ESCAPE(ARGS:0), , , 1)
	CALLF MAKE_INT(V_NAME, O_ID)
ENDIF

@EXIST_캐릭터리스트1
#LOCALSIZE 1
#LOCALSSIZE 1

;오브젝트 본체
@캐릭터리스트1(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "존재하는 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	SIF CHECK_CHARA(ARG, "존재")
		CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

@EXIST_캐릭터리스트2
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트2(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "주인공 이외의캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	IF ARG == MASTER || !CHECK_CHARA(ARG, "존재")
	ELSE
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
ENDSELECT

@EXIST_캐릭터리스트3
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트3(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "함락않다 보고 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	IF !CHECK_CHARA(ARG, "존재")
	ELSEIF CHECK_CHARA(ARG, "함락")
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
ENDSELECT

@EXIST_캐릭터리스트4
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트4(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "깨끗한교제 취득 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	SIF CHECK_CHARA(ARG, "깨끗한교제")
		CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

@EXIST_캐릭터리스트6
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트6(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "주인공의 약점을 잡는 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	SIF CHECK_CHARA(ARG, "약점잡음")
		CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

@EXIST_캐릭터리스트7
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트7(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "주인공에게 약점이 있는 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	SIF CHECK_CHARA(ARG, "약점잡힘")
		CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

@EXIST_캐릭터리스트8
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트8(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "반발각인 떡캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	SIF CHECK_CHARA(ARG, "반발각인")
		CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

@EXIST_캐릭터리스트9
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트9(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "시간각인 떡캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	SIF CHECK_CHARA(ARG, "시간각인")
		CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

@EXIST_캐릭터리스트10
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트10(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "동실에 있는 캐릭터리스트")
CASE "판정"
	SIF CHECK_CHARA(ARG, "동실")
		CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

@EXIST_캐릭터리스트11
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트11(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "말떡캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	SIF CHECK_CHARA(ARG, "구상실장상황")
		CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

@EXIST_캐릭터리스트12
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트12(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "임신중 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	SIF CHECK_CHARA(ARG, "임신")
		CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

@EXIST_캐릭터리스트13
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트13(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "육아중 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	SIF CHECK_CHARA(ARG, "육아중")
		CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

@EXIST_캐릭터리스트14
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트14(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "아이 딸린 사람 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	SIF CHECK_CHARA(ARG, "아이 딸린 사람")
		CALLF MAKE_INT(V_NAME, 1)
ENDSELECT

;종족
@EXIST_캐릭터리스트22
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트22(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "무녀 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	IF !CHECK_CHARA(ARG, "존재")
	ELSEIF CHECK_CHARA(ARG, "무녀")
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
ENDSELECT

@EXIST_캐릭터리스트23
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트23(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "요정 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	IF !CHECK_CHARA(ARG, "존재")
	ELSEIF CHECK_CHARA(ARG, "요정")
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
ENDSELECT

@EXIST_캐릭터리스트24
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트24(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "신령 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	IF !CHECK_CHARA(ARG, "존재")
	ELSEIF CHECK_CHARA(ARG, "신령")
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
ENDSELECT

@EXIST_캐릭터리스트25
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트25(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "츠쿠모가미 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	IF !CHECK_CHARA(ARG, "존재")
	ELSEIF CHECK_CHARA(ARG, "츠쿠모가미")
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
ENDSELECT

@EXIST_캐릭터리스트26
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트26(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "오니 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	IF !CHECK_CHARA(ARG, "존재")
	ELSEIF CHECK_CHARA(ARG, "오니")
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
ENDSELECT

@EXIST_캐릭터리스트27
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트27(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "텐구 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	IF !CHECK_CHARA(ARG, "존재")
	ELSEIF CHECK_CHARA(ARG, "텐구")
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
ENDSELECT

@EXIST_캐릭터리스트28
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트28(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "봉래인 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	IF !CHECK_CHARA(ARG, "존재")
	ELSEIF CHECK_CHARA(ARG, "봉래인")
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
ENDSELECT

@EXIST_캐릭터리스트29
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트29(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "요괴 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	IF !CHECK_CHARA(ARG, "존재")
	ELSEIF CHECK_CHARA(ARG, "요괴")
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
ENDSELECT

@EXIST_캐릭터리스트30
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트30(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "마법사 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	IF !CHECK_CHARA(ARG, "존재")
	ELSEIF CHECK_CHARA(ARG, "마법사")
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
ENDSELECT

;복합 조건계

@EXIST_캐릭터리스트31
#LOCALSIZE 1
#LOCALSSIZE 1

;오브젝트 본체
@캐릭터리스트31(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "갈아입히기 가능 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
;갈아입히기일이 생긴다
	IF ARG == MASTER
		CALLF MAKE_INT(V_NAME, 1)
	ELSEIF !CHECK_CHARA(ARG, "존재") || !CHECK_CHARA(ARG, "동실")
	ELSEIF FLAG:시간정지 == 1
		CALLF MAKE_INT(V_NAME, 1)
	ELSEIF 수면시간(ARG)
	ELSEIF CHECK_CHARA(ARG, "함락")
		CALLF MAKE_INT(V_NAME, 1)
	ELSEIF CHECK_CHARA(ARG, "약점잡음")
	ELSEIF CHECK_CHARA(ARG, "약점잡힘")
		CALLF MAKE_INT(V_NAME, 1)
	ELSE
	ENDIF
ENDSELECT

@EXIST_캐릭터리스트32
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트32(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "평상복 모방 가능 캐릭터리스트")
CASE "SHOP 표시"
	CALLF MAKE_INT(V_NAME, 1)
CASE "판정"
	IF ARG == MASTER
	ELSEIF !CHECK_CHARA(ARG, "존재")
	ELSEIF CHECK_CHARA(ARG, "약점잡음")
	ELSEIF CHECK_CHARA(ARG, "함락") || CHECK_CHARA(ARG, "약점잡힘")
		CALLF MAKE_INT(V_NAME, 1)
	ELSE
	ENDIF
ENDSELECT

@EXIST_캐릭터리스트33
#LOCALSIZE 1
#LOCALSSIZE 1

@캐릭터리스트33(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "TARGET 리스트")
CASE "판정"
	IF ARG == MASTER
	ELSEIF !CHECK_CHARA(ARG, "존재") || !CHECK_CHARA(ARG, "동실")
	ELSE
		CALLF MAKE_INT(V_NAME, 1)
	ENDIF
ENDSELECT


code:
;OBJ 존재 설정 함수
@SETLIST_EXIST(CLASS_NAME, O_FIRST = OBJ_ID_FIRST, O_LAST = OBJ_ID_LAST)
#DIMS CLASS_NAME
#DIM O_FIRST
#DIM O_LAST
#DIM O_ID
;변수명 F_NAME를 작성한다
CALLF MAKE_EXIST(CLASS_NAME)

FOR O_ID, O_FIRST, O_LAST + 1
	;개개의 F_NAME:LCOUNT를 설정한다
	TRYCCALLFORM EXIST_%CLASS_NAME%{O_ID}
		;DEBUGPRINTFORML EXIST %CLASS_NAME%{O_ID}
		CALLF SET_EXIST(CLASS_NAME, O_ID)
	CATCH
	ENDCATCH
NEXT

;ID취득 함수용의 설정을 실시한다
TRYCCALLFORM EXIST_%CLASS_NAME%_ID
	;DEBUGPRINTFORML EXIST %CLASS_NAME%NAME_TO_ID
	CALLF OBJNAME_TO_ID(, "RESET", CLASS_NAME)
CATCH
ENDCATCH

;함수의 존재 판정용 함수군
;변수의 의사 정의
@MAKE_EXIST(CLASS_NAME)
#FUNCTION
#DIMS CLASS_NAME
RETURNF OBJ_EXIST("MAKE", CLASS_NAME)

;개개의 함수의 존재 판정을 설정
;먼저 CF_MAKE가 필요
@SET_EXIST(CLASS_NAME, O_ID)
#FUNCTION
#DIMS CLASS_NAME
#DIM  O_ID
RETURNF OBJ_EXIST("SET", CLASS_NAME, O_ID)

;개개의 INDEX의 존재 판정
@GET_EXIST(CLASS_NAME, O_ID)
#FUNCTION
#DIMS CLASS_NAME
#DIM  O_ID
RETURNF OBJ_EXIST("GET", CLASS_NAME, O_ID)

;OBJ의 존재 상태의 보유 함수
;
;거의 일시 변수 보유 변수의 유용으로 일차원 배열로부터 이차원 배열로 했을 뿐
;CLEAR계 명령이 없기 때문에 오소거의 걱정은 없다
@OBJ_EXIST(COMMAND, ARGS:0, ARG:0)
#FUNCTION
#DIMS CLASS_NAME, CLASS_NUM + 1
#DIMS COMMAND
#DIM EXIST, CLASS_NUM + 1, OBJ_ID_LAST + 1
#DIM OBJ_CNT
SELECTCASE COMMAND
;변수의 의사 정의
CASE "MAKE"
	SIF !STRLENS(ARGS:0)
		THROW 변수명을 설정해 주세요
	SIF FINDELEMENT(CLASS_NAME, ESCAPE(ARGS:0) , 1, , 1) > 0
		THROW 이미 설정이 끝난 변수입니다 %ARGS:0%
	SIF OBJ_CNT == CLASS_NUM
		THROW 보유 변수가 상한에 이르고 있습니다
	OBJ_CNT ++
	CLASS_NAME:(OBJ_CNT) = %ARGS:0%
;개개의 변수의 설정
CASE "SET"
	SIF !INRANGE(ARG:0, OBJ_ID_FIRST, OBJ_ID_LAST)
		THROW 배열의 범위외입니다{ARG}
	SIF !STRLENS(ARGS:0)
		THROW 변수명을 설정해 주세요
	LOCAL:0 = FINDELEMENT(CLASS_NAME, ESCAPE(ARGS:0) , 1, , 1)
	SIF LOCAL:0 < 0
		THROW 미설정의 변수입니다 %ARGS:0%
	EXIST:(LOCAL:0):(ARG:0) = 1
;각 함수의 유무 판정
CASE "GET"
	SIF !INRANGE(ARG:0, OBJ_ID_FIRST, OBJ_ID_LAST)
		THROW 배열의 범위외입니다{ARG}
	SIF !STRLENS(ARGS:0)
		THROW 변수명을 설정해 주세요
	LOCAL:0 = FINDELEMENT(CLASS_NAME, ESCAPE(ARGS:0) , 1, , 1)
	SIF LOCAL:0 < 0
		THROW 미설정의 변수입니다 %ARGS:0%
	RETURNF EXIST:(LOCAL:0):(ARG:0)
CASEELSE
	THROW 미설정 명령%COMMAND%
ENDSELECT


code:
;-----------------------------------------------
;오브젝트 참조 함수군
;-----------------------------------------------
;OBJ의 INT 정보의 참조 함수
@GET_INT(ARG, CLASS_NAME, O_ID, O_DATA)
#FUNCTION
#DIMS CLASS_NAME  ;OBJ의 이름(예：WEAPON)
#DIM  O_ID        ;참조하는 OBJ의 ID(예：1)
#DIMS O_DATA      ;참조하고 싶은 정보의 이름(예：가격)
;DEBUGPRINTFORML GET_INT ARG：{ARG}, CLASS_NAME：%CLASS_NAME%, O_ID：{O_ID}, O_DATA：%O_DATA%
LOCALS = %GET_OBJ(ARG, CLASS_NAME, O_ID, O_DATA)%
;DEBUGPRINTFORML GET_INT LOCALS：%LOCALS%
SIF !STRLENS(LOCALS)
	RETURNF 0
SIF !ISNUMERIC(LOCALS)
	RETURNF 0
RETURNF TOINT(LOCALS)

;OBJ의 STR 정보의 참조 함수
@GET_STR(ARG, CLASS_NAME, O_ID, O_DATA)
#FUNCTIONS
#DIMS CLASS_NAME  ;OBJ의 이름(예：WEAPON)
#DIM  O_ID        ;참조하는 OBJ의 ID(예：1)
#DIMS O_DATA      ;참조하고 싶은 정보의 이름(예：이름)
;DEBUGPRINTFORML GET_STR ARG：{ARG}, CLASS_NAME：%CLASS_NAME%, O_ID：{O_ID}, O_DATA：%O_DATA%
RETURNF GET_OBJ(ARG, CLASS_NAME, O_ID, O_DATA)

;-----------------------------------------------
;OBJ 참조 함수
;-----------------------------------------------
;이 함수는 직접 부르지 않고 GET_INT/GET_STR를 개입시켜 참조하는 것
;GET_INT측에서 TOINT 해 두면 참조원에서의 수고를 줄일 수 있다 라는 실마리-도 없는 이유
@GET_OBJ(ARG, CLASS_NAME, O_ID, O_DATA)
#FUNCTIONS
#DIMS CLASS_NAME    ;CLASS의 이름(예：WEAPON)
#DIM  O_ID          ;참조하는 OBJ의 ID(예：1)
#DIMS O_DATA        ;참조하고 싶은 정보의 이름(예：가격)
#DIM  STACK         ;호출 OBJ의 스택 카운터
#DIMS V_NAME , 100  ;VAR 변수명의 보유
#DIMS T_NAME        ;TEMP, 초기화의 형편상 퇴피의 필요가 있으므로

;전OBJ의 ID의 범위외이다
SIF !INRANGE(O_ID, OBJ_ID_FIRST, OBJ_ID_LAST)
	RETURNF
;OBJ에 그 ID가 존재하지 않는다
SIF !GET_EXIST(CLASS_NAME, O_ID)
	RETURNF

STACK ++
V_NAME:STACK = VAR{STACK}_%CLASS_NAME%{O_ID}_%O_DATA%
CALLFORMF %CLASS_NAME%{O_ID}(ARG, O_DATA, V_NAME:STACK)
T_NAME = %V_NAME:STACK%
V_NAME:STACK =
STACK --
;DEBUGPRINTFORML GET_OBJ T_NAME=%T_NAME%

;변수가 작성되지 않았던 때는 연주한다
SIF TEMP_GET("GET_ID", T_NAME) == "0"
	RETURNF

RETURNF TEMP_RE_STR(T_NAME)

;-----------------------------------------------
;OBJ의 ID취득 함수
;-----------------------------------------------
;ARG는 등록 번호 상정
;CLASS의 요소명으로부터 ID를 취득한다(존재하지 않는 경우는―1, 요소 0을 묶지 않았던 탓)
;기동시에 CLASS_NAME 마다 RESET를 걸칠 필요가 있는 것 외에
;사용할 수 있도록(듯이) 하려면  CLASS 마다 전용의 함수가 필요
;일원 관리하고 있지 않는 것은 FINDELEMENT가 1 차원 변수로 밖에 사용할 수 없기 때문에
;이 외 , 상황에 의해 이름이 변화하는 것 같은 CLASS의 이름의 변환에는 향하지 않는다
;
;ERB 문법에 익숙해 있기 위해서(때문에) 가짜 때에―1은 불안정의 온상이 되기 어렵지 라고 생각했지만
;중도의 자작 시스템으로 요소 0을 사용하고 싶기 때문에 불가피
@OBJNAME_TO_ID(ARG, COMMAND, CLASS_NAME, KEY)
#FUNCTION
#DIMS COMMAND     ;처리 내용
#DIMS CLASS_NAME  ;대상의 CLASS명
#DIMS KEY         ;검색하는 캐릭터라인
#DIM  STACK       ;호출 스택
#DIMS V_NAME, 100 ;주는 변수명
#DIMS T_NAME      ;퇴피용
SELECTCASE COMMAND
;@SETLIST_EXIST 이외로부터 RESET를 걸치지 않는 것
CASE "RESET"
	CALLFORMF %CLASS_NAME%_ID(ARG, COMMAND)
CASE "GET"
	STACK ++
	V_NAME:STACK = %CLASS_NAME%{STACK}_%COMMAND%
	CALLFORMF %CLASS_NAME%_ID(ARG, KEY, V_NAME:STACK)
	T_NAME = %V_NAME:STACK%
	V_NAME:STACK =
	STACK --
	RETURNF TEMP_RE_INT(T_NAME)
ENDSELECT

;-----------------------------------------------
;모든 클래스 함수의 존부를 설정한다
;로드/뉴 게임시에 반드시 1회는 설정할 필요가 있지만
;1회이상 설정할 필요는 없다
;-----------------------------------------------
@MAKE_ALL_CLASS_LIST
SIF LOCAL
	RETURN
CALL SETLIST_EXIST("캐릭터데이터", 0, 캐릭터수상한)
CALL SETLIST_EXIST("캐릭터리스트", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("의상세트", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("완부의복", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("머리장비", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("기모노", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("상반신윗도리_탈의불가", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("상반신윗도리_탈의가능", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("상반신속옷_탈의불가", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("상반신속옷_탈의가능", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("양말", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("신발", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("외투", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("하반신속옷_비켜놓기불가", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("하반신속옷_비켜놓기가능", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("원피스", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("레오타드", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("보디슈트", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("그외의상", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("바지", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("치마", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("액세서리", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("일반의뢰", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("FreeAct", 0, OBJ_ID_LAST)
CALL SETLIST_EXIST("술데이터", 0, OBJ_ID_LAST)
LOCAL ++


code:
#DIM CONST VAR_TEMP_MAX    = 100 ;일시 변수의 보유 수상한, 100 이하
#DIM CONST CLASS_NUM       =  25 ;클래스(라고 하는 표현으로 좋은 것인지)의 종수, 현상으로 25 종류 이내

#DIM CONST OBJ_ID_FIRST    =   0 ;오브젝트 전체의 ID의 범위, 0~130의 범위내
#DIM CONST OBJ_ID_LAST     = 캐릭터수상한 ;각 클래스 내부의 ID는 이 범위로부터 초과하지 않게 해 주세요


code:
[SKIPSTART]
·F함수계에 TRYCALL가 의가 키트이입니다(존재하지 않아도 에러 토하지 않게는 되지 않는 것인가? )
→존부를 사전에 변수로서 보유 해 존재하지 않으면 먼저 거기서 연주하는, 이것으로 k
·F함수계는 하나의 함수에 대해 반환값이 STR 혹은 INT로 한정되어 귀찮아서
→@TEMP_STOCK를 경유한 변통으로 해결
→FUNCTIONS라면 STR형으로 TOSTR(INT)를 돌려줄 수 있는, INT 변수를 준비해 두면 보유 자체는 여유
·정수형·캐릭터라인형 변수를 조합해 참조하고 싶다
→전부 인수의 모습으로 건네주어 하면 된다
·함수간에서의 변수의 유연한 수수(한 글자 변수 지옥은 이야)
→CALLF의 활용에 의해 의사적으로 변수를 정의해 주면 함수를 넘었다 변수의 교환이 가능
→변수명을 매회 자기 부담으로 정의할 수 있기 때문에 한 글자 변수와 달리 덧쓰기의 걱정이 없어!

결점
·변수 관리의 수고가 번잡하게 된다
·메모리 리크의 우려가 있다
·변수를 스택 너무 시키면(자) 에러
·변수 이름에 밤오소거의 우려

·우선 GET_INT/GET_STR 해 사용하는 분에는 너무 신경쓰지 않아도 된다

2017/02/22
·디버그문을 너무 가르쳐 디버그 모드가 제길 무거웠기 때문에 코멘트 아웃

[SKIPEND]

;디버그용, 일시 변수의 열거
;소문의 REF 변수의 유효 활용예
@TEST_TEMPLIST(VAR_NAME, VAR_STR, VAR_INT, VAR_CNT)
#FUNCTIONS
#DIMS REF VAR_NAME ;변수명의 보유
#DIMS REF VAR_STR  ;변수 정보(STR)의 보유
#DIM  REF VAR_INT  ;변수 정보(INT)의 보유
#DIM  REF VAR_CNT  ;변수의 보유 수
#DIM  VAR_ID
DEBUGPRINTFORM TEMPLIST VAR_NAME：%VAR_NAME:VAR_CNT%
DEBUGPRINTFORML VAR_CNT：{VAR_CNT}
DEBUGPRINTFORM
FOR VAR_ID, 1, VAR_TEMP_MAX + 1
	SIF !STRLENS(VAR_NAME:VAR_ID)
		BREAK
	DEBUGPRINTFORM VAR_ID：{VAR_ID}
	DEBUGPRINTFORM VAR_NAME：%VAR_NAME:VAR_ID%
	DEBUGPRINTFORM VAR_STR：%VAR_STR:VAR_ID%
	DEBUGPRINTFORM VAR_INT：%VAR_STR:VAR_ID%
NEXT
DEBUGPRINTFORML

;-----------------------------------------------
;여기에서 본체
;-----------------------------------------------
;일시 변수 보유 함수 본체
;이 함수는 직접 부르지 않는, 참조나 조작은 후술의 함수를 개입시켜 실시하는 것
;-----------------------------------------------
;변수의 보유 함수
;우선 1~99까지의 99개를 사용 가능
;0(을)를 사용하지 않은 것은 ID0를 돌려주었을 때의 거동이 까다로워지기 (위해)때문에
;점점더 THROW가 많은 것은 만약을 위해
@TEMP_STOCK(COMMAND, ARGS:0, ARGS:1, ARG:0, ARG:1)
#FUNCTIONS
#DIMS COMMAND                       ;변수에 대한 실행 커맨드
#DIMS VAR_NAME,  (VAR_TEMP_MAX + 1) ;변수명의 보유
#DIMS VAR_STR,   (VAR_TEMP_MAX + 1) ;변수 정보(STR)의 보유
#DIM  VAR_INT,   (VAR_TEMP_MAX + 1) ;변수 정보(INT)의 보유
#DIM  VAR_CNT                       ;변수의 보유 수
#DIM LCOUNT
#DIM TEMP_ID
#DIM TEMP_CNT
;DEBUGPRINTFORML TEMP_STOCK_%COMMAND%, %ARGS:0%, %ARGS:1%, {ARG:0}, {ARG:1}

SELECTCASE COMMAND
;각종의 취득 커맨드, 돌아가 값에 의미가 있다
;보유 하고 있는 변수의 총수를 돌려준다
CASE "GET_TOTAL"
	;DEBUGPRINTFORML TEMP_STOCK VAR_CNT：{VAR_CNT}
	RETURNF TOSTR(VAR_CNT)

;변수명으로부터 내용을 참조
CASE "GET_VALUE_BY_NAME"
	SIF !STRLENS(ARGS:0)
		THROW 변수명을 설정해 주세요
	TEMP_ID = FINDELEMENT(VAR_NAME, ESCAPE(ARGS:0), 1, , 1)
	SIF TEMP_ID <= 0
		THROW 존재하지 않는 변수를 참조했던 %ARGS:0%
	IF STRLENS(VAR_STR:TEMP_ID)
		;DEBUGPRINTFORML TEMP_STOCK VAR_STR:TEMP_ID：%VAR_STR:TEMP_ID%
		RETURNF VAR_STR:TEMP_ID
	ELSE
		;DEBUGPRINTFORML TEMP_STOCK VAR_INT:TEMP_ID：{VAR_INT:TEMP_ID}
		RETURNF TOSTR(VAR_INT:TEMP_ID)
	ENDIF

;ID로부터 내용을 참조
CASE "GET_VALUE_BY_ID"
	SIF !ARG:0
		THROW ID를 설정해 주세요
	SIF !INRANGE(ARG:0, 1, VAR_CNT)
		THROW 존재하지 않는 변수를 참조했던{ARG:0}
	IF STRLENS(VAR_STR:TEMP_ID)
		;DEBUGPRINTFORML TEMP_STOCK VAR_STR:TEMP_ID：%VAR_STR:TEMP_ID%
		RETURNF VAR_STR:TEMP_ID
	ELSE
		;DEBUGPRINTFORML TEMP_STOCK VAR_INT:TEMP_ID：{VAR_INT:TEMP_ID}
		RETURNF TOSTR(VAR_INT:TEMP_ID)
	ENDIF

;변수명으로부터 변수의 ID를 돌려준다
;존재하지 않을 때는 0
CASE "GET_ID"
	SIF !STRLENS(ARGS:0)
		THROW 변수명을 설정해 주세요
	TEMP_ID = FINDELEMENT(VAR_NAME, ESCAPE(ARGS:0), 1, , 1)
	SIF TEMP_ID <= 0
		TEMP_ID = 0
	;DEBUGPRINTFORML TEMP_STOCK TEMP_ID：{TEMP_ID}
	RETURNF TOSTR(TEMP_ID)

;ARGS:0이 포함되는 변수명의 수를 돌려준다
CASE "GET_CNT_NAME"
	TEMP_CNT = 0
	FOR TEMP_ID, 1, VAR_CNT + 1
		SIF STRCOUNT(VAR_NAME:TEMP_ID, ARGS:0)
			TEMP_CNT ++
	NEXT
	;DEBUGPRINTFORML TEMP_STOCK TEMP_CNT：{TEMP_CNT}
	RETURNF TOSTR(TEMP_CNT)

;변수의 위치로부터 변수명을 돌려준다
;존재하지 않을 때는 하늘의 캐릭터라인을 돌려준다
CASE "GET_NAME"
	TEMP_ID = ARG:0
	SIF !INRANGE(ARG:0, 1, VAR_TEMP_MAX)
		TEMP_ID = 0
	;DEBUGPRINTFORML TEMP_STOCK TEMP_ID：{TEMP_ID}
	RETURNF VAR_NAME:TEMP_ID

;여기에서 명령계, CALLF로 각 함수를 개입시켜 사용
;변수의 작성
CASE "VARMAKE"
	SIF !STRLENS(ARGS:0)
		THROW 변수명을 설정해 주세요
	SIF VAR_CNT >= VAR_TEMP_MAX
		THROW 보유 변수가 상한에 이르고 있기 (위해)때문에 새로운 변수를 정의할 수 없습니다
	SIF ISNUMERIC(ARGS:0)
		THROW 숫자만으로부터 되는 캐릭터라인을 변수 이름에 설정할 수 없습니다 %ARGS:0%
	SIF FINDELEMENT(VAR_NAME, ESCAPE(ARGS:0), 1, , 1) > 0
		THROW 그 변수명은 벌써 존재하는 %ARGS:0%
	VAR_CNT ++
	VAR_NAME:VAR_CNT = %ARGS:0%
	VAR_INT:VAR_CNT  = ARG:0
	VAR_STR:VAR_CNT  = %ARGS:1%
	;#; CALLF TEST_TEMPLIST(VAR_NAME, VAR_STR, VAR_INT, VAR_CNT)

;대입 처리
;ID로 변수를 지정해 대입
CASE "VARSET_BY_ID"
	SIF !INRANGE(ARG:0, 1, VAR_CNT)
		THROW 존재하지 않는 변수를 참조했던{ARG:0}
	VAR_INT:TEMP_ID  = ARG:1
	VAR_STR:TEMP_ID  = %ARGS:0%
;이름으로 변수를 지정해 대입
CASE "VARSET_BY_NAME"
	SIF !STRLENS(ARGS:0)
		THROW 변수명을 설정해 주세요
	TEMP_ID = FINDELEMENT(VAR_NAME, ESCAPE(ARGS:0), 1, , 1)
	SIF !INRANGE(TEMP_ID, 1, VAR_CNT)
		THROW 존재하지 않는 변수를 참조했던 %ARGS:0%
	VAR_INT:TEMP_ID  = ARG:0
	VAR_STR:TEMP_ID  = %ARGS:1%

;하나의 변수를 초기화
;ARGS가 수치의 경우에는 INDEX라고 해석한다
;그 이외라면 일치하는 변수명의 위치를 검색한다
;존재하지 않을 때는 에러

;ID지정으로 변수를 제거
CASE "VARCLEAR_BY_ID"
	SIF !INRANGE(ARG:0, 1, VAR_CNT)
		THROW 존재하지 않는 변수를 참조했던{ARG:0}
	;CALLF TEST_TEMPLIST(VAR_NAME, VAR_STR, VAR_INT, VAR_CNT)
	ARRAYREMOVE VAR_NAME, ARG:0, 1
	ARRAYREMOVE VAR_INT , ARG:0, 1
	ARRAYREMOVE VAR_STR , ARG:0, 1
	VAR_CNT --
	;#; CALLF TEST_TEMPLIST(VAR_NAME, VAR_STR, VAR_INT, VAR_CNT)
;변수명 지정으로 변수를 제거
CASE "VARCLEAR_BY_NAME"
	TEMP_ID = FINDELEMENT(VAR_NAME, ESCAPE(ARGS:0), 1, , 1)
	SIF TEMP_ID <= 0
		THROW 존재하지 않는 변수를 참조했던 %ARGS:0%
	;CALLF TEST_TEMPLIST(VAR_NAME, VAR_STR, VAR_INT, VAR_CNT)
	ARRAYREMOVE VAR_NAME, TEMP_ID, 1
	ARRAYREMOVE VAR_INT , TEMP_ID, 1
	ARRAYREMOVE VAR_STR , TEMP_ID, 1
	VAR_CNT --
	;CALLF TEST_TEMPLIST(VAR_NAME, VAR_STR, VAR_INT, VAR_CNT)
;변수명을 부분 일치 검색해 초기화
;연루 주의
CASE "VARCLEAR_BY_KEYWORD"
	SIF !STRLENS(ARGS:0)
		THROW 검색 어구를 설정해 주세요
	TEMP_ID = FINDELEMENT(VAR_NAME, ESCAPE(ARGS:0), 1, , 0)
	WHILE LOCAL > 0
		ARRAYREMOVE VAR_NAME, TEMP_ID, 1
		ARRAYREMOVE VAR_INT , TEMP_ID, 1
		ARRAYREMOVE VAR_STR , TEMP_ID, 1
		VAR_CNT --
		SIF !VAR_CNT
			BREAK
		TEMP_ID = FINDELEMENT(VAR_NAME, ESCAPE(ARGS:0), 1, , 0)
	WEND
;변수를 모두 초기화
CASE "ALLCLEAR"
	VARSET VAR_NAME
	VARSET VAR_INT
	VARSET VAR_STR
	VARSET VAR_CNT
;산술계는 변수의 위치의 판정이 공통된의로 정리해 먼저
;ARGS가 수치의 경우에는 INDEX라고 해석한다
;그 이외라면 일치하는 변수명의 위치를 검색한다
CASE "ADD_BY_ID", "TIMES_BY_ID", "PERCENT_BY_ID", "PPM_BY_ID",
	SIF !INRANGE(ARG:0, 1, VAR_CNT)
		THROW 존재하지 않는 변수를 참조했던{ARG:0}

	SELECTCASE COMMAND
	;가산, 물론 음수도 가능
	CASE "ADD_BY_ID"
		VAR_INT:(ARG:0) += ARG:1
	;곱셈, 소수치는 건네줄 수 없기 때문에 주의
	CASE "TIMES_BY_ID"
		VAR_INT:(ARG:0) *= ARG:1
	;지정 변수를 ARG 퍼센트로 한다
	CASE "PERCENT_BY_ID"
		VAR_INT:(ARG:0) *= ARG:1
		VAR_INT:(ARG:0) /= 100
	;PPM=백만분 율
	CASE "PPM_BY_ID"
		VAR_INT:(ARG:0) *= ARG:1
		VAR_INT:(ARG:0) /= 1000000
	CASEELSE
		THROW 미설정의 명령 %COMMAND%
	ENDSELECT
CASE "ADD_BY_NAME", "TIMES_BY_NAME", "PERCENT_BY_NAME", "PPM_BY_NAME"
	SIF !STRLENS(ARGS:0)
		THROW 변수명을 설정해 주세요
	TEMP_ID = FINDELEMENT(VAR_NAME, ESCAPE(ARGS:0), 1, , 1)
	SIF TEMP_ID <= 0
		THROW 존재하지 않는 변수를 참조했던 %ARGS:0%

	SELECTCASE COMMAND
	;가산, 물론 음수도 가능
	CASE "ADD_BY_NAME"
		VAR_INT:TEMP_ID += ARG:0
	;곱셈, 소수치는 건네줄 수 없기 때문에 주의
	CASE "TIMES_NAME"
		VAR_INT:TEMP_ID *= ARG:0
	;지정 변수를 ARG 퍼센트로 한다
	CASE "PERCENT_NAME"
		VAR_INT:TEMP_ID *= ARG:0
		VAR_INT:TEMP_ID /= 100
	;PPM=백만분 율
	CASE "PPM_NAME"
		VAR_INT:TEMP_ID *= ARG:0
		VAR_INT:TEMP_ID /= 1000000
	CASEELSE
		THROW 미설정의 명령 %COMMAND%
	ENDSELECT
CASEELSE
	THROW 미설정의 명령 %COMMAND%
ENDSELECT
RETURNF

;-----------------------------------------------
;일시 변수 취득 함수
;-----------------------------------------------
;식중함수
;ID를 건네줄 때에도"3"등 캐릭터라인으로 건네주지 않는다고 에러를 토한다
;INT/STR는 「변수의 내용」에서도 「제일 인수의 형태」도 아닌 것에 주의
;이것은 「반환값의 형태」인(즉 TOINT()의 생략을 하고 싶었다)
;반환값이 STR가 되는 것은 GET_NAME와 GET_VALUE의 내용이 STR때만
@TEMP_INT(COMMAND, ARGS:0)
#FUNCTION
#DIMS COMMAND
RETURNF TOINT(TEMP_GET(COMMAND, ARGS:0))

@TEMP_STR(COMMAND, ARGS:0)
#FUNCTIONS
#DIMS COMMAND
RETURNF TEMP_GET(COMMAND, ARGS:0)

@TEMP_GET(COMMAND = "GET_VALUE", ARGS:0)
#FUNCTIONS
#DIMS COMMAND
SELECTCASE COMMAND
CASE "GET_TOTAL"
	RETURNF TEMP_STOCK("GET_TOTAL")
CASE "GET_VALUE"
	;숫자 같으면 ID로 간주한다
	IF ISNUMERIC(ARGS:0)
		RETURNF TEMP_STOCK("GET_VALUE_BY_ID", , , TOINT(ARGS:0))
	ELSE
		RETURNF TEMP_STOCK("GET_VALUE_BY_NAME", ARGS:0)
	ENDIF
;변수명으로부터 변수의 ID를 돌려준다
;존재하지 않을 때는 0
CASE "GET_ID"
	RETURNF TEMP_STOCK("GET_ID", ARGS:0)
;ARGS:0이 포함되는 변수명의 수를 돌려준다
CASE "GET_CNT_NAME"
	RETURNF TEMP_STOCK("GET_CNT_NAME", ARGS:0)
;변수의 위치로부터 변수명을 돌려준다
;존재하지 않을 때는 하늘의 캐릭터라인을 돌려준다
CASE "GET_NAME"
	RETURNF TEMP_STOCK("GET_NAME", , , TOINT(ARGS:0))
CASEELSE
	THROW 불명한 커맨드 %COMMAND%
ENDSELECT

;-----------------------------------------------
;RETURN계 함수
;-----------------------------------------------
;식중함수
;변수명 혹은 ID를 참조해 그 변수의 내용(INTorSTR)을 취득하는 함수
;F함수로 RETURN계라고 하는 것도 좀 이상하지만 명명 센스가 죽고 있을 뿐이므로 신경쓰지 말아라
;이 함수의 특징은 취득 후에 참조 원래 변수를 소거하는 점, 사용할 기회는 많을 것
;변수 만들 뿐은 곧 가득 되어버리니까
;다른 정보로 취득 직후에 지운다고 하는 처리가 필요라고 생각되지 않기 때문에 VALUE 전용

@TEMP_RE_INT(ARGS)
#FUNCTION
LOCAL = TEMP_INT("GET_VALUE", ARGS)
CALLF TEMP_VARCLEAR(ARGS)
RETURNF LOCAL

@TEMP_RE_STR(ARGS)
#FUNCTIONS
LOCALS = %TEMP_STR("GET_VALUE", ARGS)%
CALLF TEMP_VARCLEAR(ARGS)
RETURNF LOCALS

;-----------------------------------------------
;대입·초기화계 함수
;-----------------------------------------------
;CALLF로 사용
;일시 변수 작성 함수
;이것이 없으면 시작하지 않는다
;변수 작성과 초기치의 설정
;벌써 존재하면(자) 에러
;MAKE_INT로 INT 변수, MAKE_STR로 STR 변수를 작성한다
@MAKE_INT(V_NAME, V_INT)
#FUNCTIONS
#DIMS V_NAME
#DIM  V_INT
RETURNF TEMP_VARMAKE(V_NAME, , V_INT)

@MAKE_STR(V_NAME, V_STR)
#FUNCTIONS
#DIMS V_NAME
#DIMS V_STR
RETURNF TEMP_VARMAKE(V_NAME, V_STR)

@TEMP_VARMAKE(V_NAME, V_STR, V_INT)
#FUNCTIONS
#DIMS V_NAME
#DIMS V_STR
#DIM  V_INT
RETURNF TEMP_STOCK("VARMAKE", V_NAME, V_STR, V_INT)

;대입 함수
;CALLF로 사용
;변수가 존재하지 않으면 에러
;STR와 INT의 양쪽 모두의 VALUE에 정보가 들어가있는 때는 STR가 되돌아 온다
;
;대입 함수 사용하고 싶을 때는
;	CALLF SET_INT/STR
;그리고 사용해주세요
@SET_INT(V_NAME, V_INT)
#FUNCTION
#DIMS V_NAME
#DIM  V_INT
RETURNF TOINT(TEMP_VARSET(V_NAME, , V_INT))

@SET_STR(V_NAME, V_STR)
#FUNCTIONS
#DIMS V_NAME
#DIMS V_STR
RETURNF TEMP_VARSET(V_NAME, V_STR)

@TEMP_VARSET(V_NAME, V_STR, V_INT)
#FUNCTIONS
#DIMS V_NAME
#DIMS V_STR
#DIM  V_INT
;숫자 같으면 ID로 간주한다
IF ISNUMERIC(V_NAME)
	RETURNF TEMP_STOCK("VARSET_BY_ID", , V_STR, TOINT(V_NAME), V_INT)
ELSE
	RETURNF TEMP_STOCK("VARSET_BY_NAME", V_NAME, V_STR, V_INT)
ENDIF

;변수의 초기화 함수
@TEMP_VARCLEAR(ARGS:0, OP = "NORMAL")
#FUNCTIONS
#DIMS OP
SELECTCASE OP
;통상은 변수명, 혹은 ID에 일치하는 변수만을 소거
CASE "NORMAL"
	IF ISNUMERIC(ARGS:0)
		RETURNF TEMP_STOCK("VARCLEAR_BY_ID", , , TOINT(ARGS:0))
	ELSE
		RETURNF TEMP_STOCK("VARCLEAR_BY_NAME", ARGS:0)
	ENDIF
;변수 이름에 키워드를 포함하는 것을 소거, 말려들게 해 주의
CASE "KEY"
		RETURNF TEMP_STOCK("VARCLEAR_BY_KEYWORD", ARGS:0)
;전소거, 너무 강력해 그다지 다용은 할 수 없다
CASE "ALL"
		RETURNF TEMP_STOCK("ALLCLEAR")
ENDSELECT

;-----------------------------------------------
;산술계 함수
;-----------------------------------------------
;솔직히,  존재 의의가 미묘한 생각이 들지만 일단 만들어 두어
;CALLF로 사용
;COMMAND는 ADD, TIMES, PERCENT, PPM
;PPM는 얼마든지 늘릴 수 있어라는 예로 농담으로 만들었다
@TEMP_METH(V_NAME, COMMAND, ARG:0)
#FUNCTIONS
#DIMS V_NAME
#DIMS COMMAND
IF ISNUMERIC(V_NAME)
	RETURNF TEMP_STOCK(@"%COMMAND%_BY_ID", , , TOINT(V_NAME), ARG:0)
ELSE
	RETURNF TEMP_STOCK(@"%COMMAND%_BY_NAME", V_NAME, , ARG:0)
ENDIF


code:
;----------------------------------
;은밀중 플래그 세트 CFLAG:330SET
;호출시의 정합성을 판정해 인수로서 건네받은 값을 플래그에 세트 한다
;ARG=SET치 ARG:1=세트 대상 ARG:2=MASTER 연동
;----------------------------------
@SET_SNEAK(ARG,ARG:1,ARG:2)
SELECTCASE ARG
	;FLAG_OFF
	CASE 0
		;정합성 체크
		CFLAG:(ARG:1):은밀중 = 0
		IF ARG:2 == 1
			CFLAG:MASTER:은밀중 = 0
		ELSEIF ARG:2 == 2
			SIF CFLAG:(ARG:1):현재위치 == CFLAG:MASTER:현재위치
				CFLAG:MASTER:은밀중 = 0
		ENDIF
	;FLAG_ON
	CASE 1
		;정합성 체크
		;TARGET와 MASTER가 동실 또한 수면중이 아니면 세트는 할 수 없다
		IF CFLAG:(ARG:1):현재위치 == CFLAG:MASTER:현재위치 && CFLAG:(ARG:1):수면
			CFLAG:(ARG:1):은밀중 = 1
			SIF ARG:2 == 1
				CFLAG:MASTER:은밀중 = 1
		ELSE
		ENDIF
ENDSELECT

;----------------------------------
;장난 플래그 세트 CFLAG:331SET
;호출시의 정합성을 판정해 인수로서 건네받은 값을 플래그에 세트 한다
;ARG=SET치 ARG:1=세트 대상 ARG:2=MASTER 연동 ON
;----------------------------------
@SET_PRANK(ARG,ARG:1,ARG:2)
SELECTCASE ARG
	;FLAG_OFF
	CASE 0
		;정합성 체크
		CFLAG:(ARG:1):장난 = 0
		IF ARG:2 == 1
			CFLAG:MASTER:장난 = 0
		ELSEIF ARG:2 == 2
			SIF CFLAG:(ARG:1):현재위치 == CFLAG:MASTER:현재위치
				CFLAG:MASTER:장난 = 0
		ENDIF
	;FLAG_ON
	CASE 1
		;정합성 체크
		;TARGET와 MASTER가 동실·은밀중·수면중이 아니면 세트는 할 수 없다
		IF CFLAG:(ARG:1):현재위치 == CFLAG:MASTER:현재위치 && CFLAG:(ARG:1):은밀중 == CFLAG:MASTER:은밀중 && CFLAG:(ARG:1):수면
			CFLAG:(ARG:1):장난 = 1
			SIF ARG:2 == 1
				CFLAG:MASTER:장난 = 1
		ELSE

		ENDIF
	;과격한 장난 FLAG_ON
	CASE 2
		;정합성 체크
		;TARGET와 MASTER가 동실·은밀중·수면중·이미 장난 FLAG_ON가 아니면 세트는 할 수 없다
		IF CFLAG:(ARG:1):현재위치 == CFLAG:MASTER:현재위치 && CFLAG:(ARG:1):은밀중 == CFLAG:MASTER:은밀중 && CFLAG:(ARG:1):장난 > 0 && CFLAG:(ARG:1):수면
			CFLAG:(ARG:1):장난 = 2
			SIF ARG:2 == 1
				CFLAG:MASTER:장난 = 2
		ELSE

		ENDIF
ENDSELECT

;----------------------------------
;동침 플래그 세트 CFLAG:334SET
;호출시의 정합성을 판정해 인수로서 건네받은 값을 플래그에 세트 한다
;ARG=SET치 ARG:1=세트 대상 ARG:2=MASTER 연동 ON (1=무조건 일어나는 2=동실이라면 일어난다)
;----------------------------------
@SET_TOGETHER(ARG,ARG:1,ARG:2)
SELECTCASE ARG
	;FLAG_OFF
	CASE 0
		;정합성 체크
		CFLAG:(ARG:1):동침중 = 0
		IF ARG:2 == 1
			CFLAG:MASTER:동침중 = 0
		ELSEIF ARG:2 == 2
			SIF CFLAG:(ARG:1):현재위치 == CFLAG:MASTER:현재위치
				CFLAG:MASTER:동침중 = 0
		ENDIF
	;FLAG_ON
	CASE 1
		;정합성 체크
		;TARGET와 MASTER가 동실·수면중이 아니면 세트는 할 수 없다
		IF CFLAG:(ARG:1):현재위치 == CFLAG:MASTER:현재위치 && CFLAG:(ARG:1):수면
			CFLAG:(ARG:1):동침중 = 1
			SIF ARG:2 == 1
				CFLAG:MASTER:동침중 = 1
		ELSE
		ENDIF
ENDSELECT

;----------------------------------
;수면중 플래그 세트 CFLAG:313SET
;호출시의 정합성을 판정해 인수로서 건네받은 값을 플래그에 세트 한다
;ARG=SET치 ARG:1=세트 대상 ARG:2=MASTER 연동 ON
;----------------------------------
@SET_SLEEP(ARG,ARG:1,ARG:2)
SELECTCASE ARG
	;FLAG_OFF
	CASE 0
		;정합성 체크
		CFLAG:(ARG:1):수면 = 0
		;수면 플래그로 MASTER 연동은 사용하지 않겠지 지만… 이라든가 말하고 있으면(자) 동침으로 사용하는 것에…
		IF ARG:2 == 1
			CFLAG:MASTER:수면 = 0
		ELSEIF ARG:2 == 2
			SIF CFLAG:(ARG:1):현재위치 == CFLAG:MASTER:현재위치
				CFLAG:MASTER:수면 = 0
		ENDIF
		SETBIT CFLAG:(ARG:1):갈아입음실행, 0
		CLEARBIT CFLAG:(ARG:1):갈아입음실행, 1
		;피로와 수면심도를 리셋
		TCVAR:ARG:피로도   = 0
		TCVAR:ARG:수면심도 = 0
	;FLAG_ON
	CASE 1
		;정합성 체크
		;데일리중은 세트 할 수 없다
		IF !CFLAG:(ARG:1):데일리 || ARG:1 == MASTER
			CFLAG:(ARG:1):수면 = 1
			CFLAG:(ARG:1):데이트중 = MAIN_MAP
			;MASTER 연동은 사용하는거야 n(ry
			SIF ARG:2 == 1
				CFLAG:MASTER:수면 = 1
		;쇠약시는 데일리중도 잔다
		ELSEIF CFLAG:(ARG:1):쇠약
			CFLAG:(ARG:1):수면 = 1
			CFLAG:(ARG:1):데이트중 = MAIN_MAP
			;MASTER 연동은 사용하는거야 n(ry
			SIF ARG:2 == 1
				CFLAG:MASTER:수면 = 1
		ENDIF
		IF CFLAG:(ARG:1):수면 == 1 && GETBIT(CFLAG:(ARG:1):갈아입음실행, 0)
			TCVAR:(ARG:1):수면심도 = 1200 * (TCVAR:(ARG:1):수면제강도 + 1)
			TCVAR:(ARG:1):수면심도 += TCVAR:(ARG:1):피로도 / 3
		ENDIF
		SETBIT CFLAG:(ARG:1):갈아입음실행, 1
		CLEARBIT CFLAG:(ARG:1):갈아입음실행, 0
		IF CFLAG:(ARG:1):데일리 || !수면시간(ARG:1) || (CFLAG:(ARG:1):쇠약 && CFLAG:(ARG:1):현재위치 != CFLAG:(ARG:1):초기위치)
			SETBIT CFLAG:(ARG:1):갈아입음실행, 0
			CLEARBIT CFLAG:(ARG:1):갈아입음실행, 1
		ENDIF
		SIF ARG:1 == MASTER
			CALL BUFF_RESET
ENDSELECT

;수면 관련 처리로서 여기에 추가
;----------------------------------
;피로도 산출 함수
;DOWNBASE로부터 피로 도를 산출한다
;√0피하고를 위해서(때문에) 작성
;ARG:RETURNF
;_10:_1
;_25:_2
;_50:10
;100:30
;125:36
;150:45
;200:89
;DOWNBASE에는 체력이라면 x12, 기력이라면 x8의 계수가 다해 실제의 피로도 가산치는
;체력 100 소비로 1314, 체력 200 소비로 3718
;기력 100 소비로 715, 기력 200 소비로 2023
;(계산기로 계산했으므로 오차가 나옵니다)
;악천후로 훈련하면(자) 「죽는 만큼 지친다」
;----------------------------------
@CULC_TIRED(ARG)
#FUNCTION
SIF ARG < 10
	RETURNF 0
LOCAL = ARG / 10
RETURNF LOCAL * SQRT(LOCAL)

;----------------------------------
;피로도 가산 함수 TCVAR:151ADD
;주인의 MASTER 피하고와 수면 판정을 위해서(때문에) 작성
;----------------------------------
@ADD_TIRED(CHARA, VALUE)
#DIM CHARA
#DIM VALUE
SIF CHARA == MASTER || CFLAG:CHARA:수면
	RETURN
TCVAR:CHARA:피로도 += VALUE

;-----------------------------------------------------------
;데이트 플래그 세트라는 이름의 나간다 세트 함수
;（현재는 CFLAG:데이트중 은 현재위치의 MAPID로 사용됨）
;호출시의 무결성을 판정하고、P_ID로의 각종 외출 플래그를 설정한다
;P_ID              외출한 곳의 MAPID, MAXHOME이상이면 귀가
;C_ID              동행하는 캐릭터 ID
;소요시간          도중에 걸리는 시간
;시간정지점프  시간정지로 나간다（FLAG:시간정지 를 사용하지 않음）
;-----------------------------------------------------------
@SET_DATE(P_ID, C_ID, 소요시간, 시간정지점프)
#DIM P_ID
#DIM C_ID
#DIM 소요시간
#DIM 시간정지점프
#DIM 현위치MAPID
;お出掛け終了
IF P_ID >= MAXHOME
	;정합성 체크
	IF CHK_DATENOW(CFLAG:C_ID:데이트중)
		CFLAG:MASTER:데이트중 = MAIN_MAP
		FLAG:데이트상대 = 0
		TFLAG:데이트전호감도 = 0
		CFLAG:MASTER:현재위치 = GET_ENTRANCE(MAIN_MAP)
		TFLAG:데이트도중 = 0
		IF C_ID
			CFLAG:C_ID:데이트중 = MAIN_MAP
			CFLAG:C_ID:현재위치 = GET_ENTRANCE(MAIN_MAP)
		ENDIF
	ENDIF
;お出掛け開始
ELSE
	;정합성 체크
	SIF BASE:MASTER:기력 <= 0
		RETURN
	IF C_ID
		SIF CFLAG:C_ID:쇠약
			RETURN
		SIF BASE:C_ID:기력 <= 0
			RETURN
	ENDIF
	CFLAG:MASTER:데이트중 = P_ID
	현위치MAPID = GET_MAPID(CFLAG:MASTER:현재위치)
	;C_IDとデート
	IF C_ID
		FLAG:데이트상대 = C_ID
		CFLAG:C_ID:데이트중 = P_ID
		TFLAG:데이트전호감도 = CFLAG:C_ID:호감도
		;人里デート専用処理
		IF P_ID == 2
			CALL EX_COSTUME(C_ID, "마을 데이트")
			SIF RESULT
				PRINTFORMW %CALLNAME:C_ID%는 마을에 맞는 옷으로 갈아입었습니다
		ENDIF
		CFLAG:MASTER:현재위치 = ROAD_TO(P_ID)
		CFLAG:C_ID:현재위치 = ROAD_TO(P_ID)
		;開始時は+1000する
		TFLAG:데이트도중 = 소요시간 + 1000
	;一人でお出掛け
	ELSE
		CFLAG:MASTER:현재위치 = GET_ENTRANCE(P_ID)
		IF 시간정지점프
			BASE:MASTER:TSP -= 소요시간 * 3
		ELSE
			TIME += 소요시간
		ENDIF
	ENDIF
	CALL HappenToChild
	CALL PICK_RUNINTO(P_ID)
ENDIF

;----------------------------------
;행동 억제 시간 세트 CFLAG:313SET
;현재의 장소에에 세트 한다
;ARG=호출 종류 ARG:1=세트 대상
;----------------------------------
@SET_DERAY(ARG,ARG:1)
IF !CFLAG:(ARG:1):데일리
	;호출 형식에 의해 처리 변경 1=장소에 의한 데일리 2이후=이벤트에 의한 데일리
	SELECTCASE ARG
		;특정의 장소에 들어가면(자) 데일리
		CASE 1
			SELECTCASE CFLAG:(ARG:1):현재위치
				;부엌은 요리하므로 데일리 발생
				CASE 11
					IF ABL:(ARG:1):요리기능 >= 3
						CFLAG:(ARG:1):데일리 = 30
					ELSEIF ABL:(ARG:1):요리기능 > 1 && ABL:(ARG:1):요리기능 < 3
						CFLAG:(ARG:1):데일리 = 60
					ELSE
						CFLAG:(ARG:1):데일리 = 120
					ENDIF
				;목욕을 하면(자) 데일리 발생
				CASE 12
					CFLAG:(ARG:1):데일리 = 60
			ENDSELECT
		;아침에 일어 나면(자) 데일리(아침은 기분이 결정되지 않고 네)
		CASE 2
			CFLAG:(ARG:1):데일리 = 60
		;일종료후는 데일리
		CASE 3
			CFLAG:(ARG:1):데일리 = 20
		;동침 하면(자) 노력해 일어나 준다(쇠약시 이외)
		CASE 4
			SIF !CFLAG:(ARG:1):쇠약
				CFLAG:(ARG:1):데일리 = 60
		;밀어넘어뜨려지고 달래면(자) 데일리
		CASE 5
			CFLAG:(ARG:1):데일리 = 40
		;무릎베개시는 데일리
		CASE 6
			CFLAG:(ARG:1):데일리 = 10
		CASE 99
			;Deray Clear to Do nothing
	ENDSELECT
ELSE
	SELECTCASE ARG
		;데일리를 클리어
		CASE 99
			CFLAG:(ARG:1):데일리 = 0
	ENDSELECT
ENDIF