code:
;FileName_MOVEMENT.ERB ----------------------------- Rev1. 00
;시간경과 처리
;CALL		USER
;ARG		경과시간전
;RETURN		시간경과량
;COMMENT
;-----------------------------------------------------------
@TIME_PROGRESS(ARG)
#FUNCTION
SIF TIME + DAY * 1440 < ARG
	RETURNF 0
RETURNF TIME + DAY * 1440 - ARG

;FileName_MOVEMENT.ERB ----------------------------- Rev1. 01
;캐릭터 귀가 처리
;CALL		USER
;ARG		0:캐릭터 NO
;RETURN		VOID
;COMMENT
;-----------------------------------------------------------
@KITAKU(ARG)
#DIMS 귀가이유
;오전 3시 ~ 오전 7시
IF INRANGE(TIME, 180, 420)
	귀가이유 = 날도 밝아오니、
;오전 7시 ~ 오후 3시
ELSEIF INRANGE(TIME, 421, 899)
	귀가이유 = 딱 좋은 시간이 되었으니、
;오후 3시 ~ 오후 7시
ELSEIF INRANGE(TIME, 900, 1140)
	귀가이유 = 해도 졌으니、
;오후 7시 ~ 오전 3시
ELSE
	귀가이유 = 밤도 벌써 깊어졌으니、
ENDIF

IF CFLAG:ARG:현재위치 == CFLAG:MASTER:현재위치 && !CFLAG:MASTER:수면 && CFLAG:ARG:현재위치 != CFLAG:ARG:초기위치
	CALL OneNightStay(ARG)
	SIF CFLAG:ARG:신사거주
		RETURN
	IF 수면시간(ARG)
		PRINTFORMW %ARG는% 잠자리에 들었다.
	;데이트중
	ELSEIF CHK_DATENOW(CFLAG:(ARG):데이트중)
		;うふふ中は非表示
		SIF !CFLAG:ARG:우후후
			PRINTFORMW %귀가이유% %ARG와%의 데이트는 여기까지다.
		;자택에 있을 때, 초대방에 있을 때는 우후후 하고 있지 않을 때
		IF CFLAG:ARG:현재위치 == CFLAG:ARG:자택위치 || (CFLAG:ARG:현재위치 == OMANEKIBEYA() && !CFLAG:ARG:우후후)
			;帰宅口上,3,玄関先で見送り
			CALL KOJO_MESSAGE_SEND("EVENT", 20, ARG, 3)
		;통상의 데이트중
		ELSE
			;お誘い
			IF (TALENT:ARG:연모 || TALENT:ARG:섹프 == 2) && CFLAG:ARG:욕구불만도 >= (700 + TALENT:ARG:수치심 * 150) && !CFLAG:ARG:신사거주 && !TCVAR:ARG:연속숙박금지 && CFLAG:(ARG):현재위치 != OMANEKIBEYA()
				PRINTFORML %ARG로%부터 방에 오지 않겠냐고 권유받았다.
				;帰宅口上,4,部屋に来ないかと誘う
				CALL KOJO_MESSAGE_SEND("EVENT", 20, ARG, 4)
				CALL ASK_YN("간다","그만둔다")
				IF !RESULT
					IF CFLAG:ARG:자택위치
						PRINTFORML %CALLNAME:ARG%에게 권유받은 대로, %마스터는% %CALLNAME:ARG%의 방으로 향했다……
						PRINTFORMW +{TIME_REQUIRED(CFLAG:ARG:현재위치 / 100, CFLAG:ARG:자택위치 / 100)}분
						TIME += TIME_REQUIRED(CFLAG:ARG:현재위치 / 100, CFLAG:ARG:자택위치 / 100)
					ELSE
						PRINTFORML %CALLNAME:ARG%에게 권유받은 대로, %마스터는% 어딘지도 모르는 %CALLNAME:ARG%의 방으로 향했다……
						PRINTFORMW +30분
						TIME += 30
					ENDIF
					;帰宅口上,5,誘われるまま行く
					CALL KOJO_MESSAGE_SEND("EVENT", 20, ARG, 5, 0)
					CALL OMANEKI_ENTER(ARG)
					CALL TARGETSET_CHACK
				ELSE
					PRINTFORMW %ARG는% 섭섭해 보인다……
					;帰宅口上,6,誘いを断る
					CALL KOJO_MESSAGE_SEND("EVENT", 20, ARG, 6)
					SIF (CFLAG:MASTER:현재위치 % 100) % 10 && CHK_DATENOW(CFLAG:MASTER:데이트중) && FLAG:데이트상대 == ARG && CFLAG:MASTER:현재위치 != OMANEKIBEYA()
						CFLAG:MASTER:현재위치 = CFLAG:MASTER:데이트중 * 100
				ENDIF
			ELSE
				;帰宅口上,2,デート中帰宅
				CALL KOJO_MESSAGE_SEND("EVENT", 20, ARG, 2)
				SIF (CFLAG:MASTER:현재위치 % 100) % 10 && CHK_DATENOW(CFLAG:MASTER:데이트중) && FLAG:데이트상대 == ARG && CFLAG:MASTER:현재위치 != OMANEKIBEYA()
					CFLAG:MASTER:현재위치 = CFLAG:MASTER:데이트중 * 100
			ENDIF
		ENDIF
	;신사내에 있을까 자택에서도 초대방도 아닌 장소
	ELSEIF AT_HOME(ARG) || (CFLAG:(ARG):현재위치 != CFLAG:(ARG):자택위치 && CFLAG:(ARG):현재위치 != OMANEKIBEYA()) && CFLAG:ARG:행동 != 5
		;帰宅口上,1,通常帰宅
		CALL KOJO_MESSAGE_SEND("EVENT", 20, ARG, 1)
		PRINTFORMW %귀가이유% %ARG는% 돌아갔습니다.
		CALL SET_TOGETHER(0,ARG,1)
		SIF (CFLAG:MASTER:현재위치 % 100) % 10 && CHK_DATENOW(CFLAG:MASTER:데이트중) && FLAG:데이트상대 == ARG && CFLAG:MASTER:현재위치 != OMANEKIBEYA()
			CFLAG:MASTER:현재위치 = CFLAG:MASTER:데이트중 * 100
	ENDIF
	IF CFLAG:(ARG):우후후 > 0 || CHK_DATENOW(CFLAG:(ARG):데이트중)
		FOR LOCAL,1,CHARANUM
			;초대중은 계속
			SIF CFLAG:MASTER:초대 != LOCAL && CFLAG:LOCAL:우후후
				CALL ENDUFUFU(LOCAL)
			;데이트는 사라진다
			CFLAG:LOCAL:데이트중 = MAIN_MAP
			FLAG:데이트상대 = 0
			TFLAG:데이트전호감도 = 0
		NEXT
		;불러 우후후 안은 계속
		SIF !CFLAG:MASTER:초대
			CFLAG:MASTER:우후후 = 0
		CFLAG:MASTER:동행 = 0
	ENDIF
ENDIF
CFLAG:ARG:동행 = 0

IF !TCVAR:ARG:휴식중 && !CFLAG:ARG:초대
	;거점에서 돌아간다면 오늘은 더 이상 내방하지 않는다
	SIF IN_HOME(CFLAG:ARG:현재위치) && !CFLAG:MASTER:수면
		CFLAG:ARG:거점내방 = 0
	;활동시간외는 자택이 있으면 잘 때까지 자택에 있다
	IF CFLAG:ARG:자택위치 && !IN_HOME(CFLAG:ARG:자택위치) && !수면시간(ARG)
		CFLAG:ARG:현재위치 = CFLAG:ARG:자택위치
	;자택이 없는가 자면(자) 사라진다
	ELSE
		CFLAG:ARG:현재위치 = SUKIMA()
	ENDIF
ENDIF

@침실로부터내쫓아(ARG)
SIF !AT_HOME(MASTER)
	RETURN
SIF !ARG
	RETURN
SIF CFLAG:ARG:현재위치 != CFLAG:MASTER:현재위치
	RETURN
SIF !수면시간(ARG)
	RETURN
SIF CFLAG:ARG:현재위치 != CFLAG:ARG:초기위치
	RETURN
SIF !SHIRAHU(ARG)
	RETURN
	;잠입중
SIF CFLAG:ARG:은밀중
	RETURN
SIF 침실허가(ARG, 1)
	RETURN

;なんのためのCLEARLINE？
;CLEARLINE 1
PRINTFORMW 졸린 듯한 %CALLNAME:ARG%에게 쫓겨났다…
;おやすみ口上,7-1,部屋から追い出して寝た
CALL KOJO_MESSAGE_SEND("EVENT", 3, ARG, 7, 1)
;잠입해 OFF
CALL SET_SNEAK(0,ARG,2)
;장난 OFF
CALL SET_PRANK(0,ARG,2)
;우후후 리셋
CALL ENDUFUFU_ALL
;밤 침입 성공 플래그 클리어
CLEARBIT CFLAG:ARG:요바이, 8
;이동 가능한 장소에 이동
CALL GETOUT(MASTER)

@목욕탕으로부터내쫒아(ARG)
SETCOLOR 150,150,250
PRINTL 【목욕탕의 난입자】
RESETCOLOR
IF TALENT:ARG:수치심 < 0
	IF ABL:ARG:친밀 < 5
		PRINTFORML %ARG는% 태연하게, 막 들어왔으니 나가라고 말했다.
		CFLAG:ARG:호감도 -= (20 - ABL:ARG:친밀 * 2)
		CFLAG:ARG:신뢰도 -= (20 - ABL:ARG:친밀 * 2)
		SOURCE:ARG:반감 += 300
		CFLAG:MASTER:현재위치 = KICKOUT()
	;ELSE
	;	PRINTFORML %ARG는% 태연하게, 함께 들어가고 싶은 것인지라고 (들)물어 왔다
	ENDIF
ELSE
	PRINTFORML %ARG는% 자신이 처한 상황을 깨닫자 비명과 함께 목욕탕에서 뛰쳐나갔다
	CFLAG:ARG:호감도 -= (50 - ABL:ARG:친밀 * 2)
	CFLAG:ARG:신뢰도 -= (50 - ABL:ARG:친밀 * 2)
	SOURCE:ARG:반감 += 1000
	BASE:ARG:분노 += (1500 - ABL:ARG:친밀 * 100)
	CFLAG:ARG:현재위치 = KICKOUT()
	;캐릭터를 움직였으므로 TARGET재설정
ENDIF
CFLAG:ARG:호감도 = MAX(CFLAG:ARG:호감도, 0)
CFLAG:ARG:신뢰도 = MAX(CFLAG:ARG:신뢰도, 0)
CALL TARGETSET_CHACK
CFLAG:ARG:동실 = 0
RETURN 1

@초대방처리(ARG)
SIF FLAG:시간정지 || !CFLAG:ARG:초대
	RETURN

;초대방에서 나오면(자) 일상에 돌아간다
;묵기 전인가 후인가는 연속숙박금지 플래그를 참조하고 있습니다
IF CFLAG:MASTER:현재위치 != OMANEKIBEYA()
	CALL 초대방에서나온다(ARG)

;다음날 일하러 가는 경우
ELSEIF 업무중체크(ARG) && TCVAR:ARG:연속숙박금지 && CFLAG:ARG:우후후 != 1
	CFLAG:MASTER:현재위치 = CFLAG:ARG:자택위치
	IF CFLAG:ARG:우후후
		PRINTFORMW %ARG는% 지금부터 일이 있는 것 같다…
		CALL ENDUFUFU(LOCAL)
		PRINTFORMW %ARG는% 아쉬운 듯하면서도 밖으로 나갔다.
	ELSE
		PRINTFORMW %ARG는% 일이 있는지 밖으로 나갔다
	ENDIF
	CALL 초대방에서나온다(ARG)

;데이트중
ELSEIF CHK_DATENOW(CFLAG:ARG:데이트중)
	IF CFLAG:ARG:신사거주
		;더부살이캐릭터는 수면시간에 되면(자) 데이트 종료
		IF 수면시간(ARG)
			CFLAG:ARG:데이트중 = MAIN_MAP
			FLAG:데이트상대 = 0
		ENDIF
	ELSE
		;데이트중에 돌아가는 시간이 오면(자) 메시지＆데이트만 지운다
		IF !VISIT(ARG)
			CALL KITAKU(ARG)
		ENDIF
	ENDIF
ENDIF

@초대방에서나온다(ARG)
;만남 플래그를 자택위치로 설정(연동하고 있다고(면) 다른 캐릭터가 달려 들어 오는 것은 사양)
CFLAG:ARG:만난위치 = CFLAG:ARG:자택위치
;초기위치를 바탕으로 되돌린다(참배길저편이나 0도 있지만 99에서도 k)
IF CFLAG:ARG:신사거주
	CFLAG:ARG:초기위치 = CFLAG:ARG:신사거주
ELSE
	CFLAG:ARG:초기위치 = SUKIMA()
ENDIF
;활동시간이라면 그대로 데이트. 더부살이캐릭터는 일어나고 있으면 데이트
;의 예정이었지만 밸런스 브레이커생각이 드는＆아침 돌아오는 길은 한사람이 분위기 나오므로 더부살이캐릭터만
;활동전도 배치하게 되었으므로 기상시간이라면 밖으로 나오도록(듯이)
IF CFLAG:ARG:신사거주
	CFLAG:ARG:현재위치 = 97 + MAIN_MAP * 100
	CFLAG:ARG:데이트중 = MAIN_MAP
	FLAG:데이트상대 = 0
	TFLAG:데이트전호감도 = 0
ELSE
	IF !수면시간(ARG) && !CFLAG:ARG:수면
		;자택위치에 이동
		CFLAG:ARG:현재위치 = CFLAG:ARG:만난위치
		;묵기 전or더부살이캐릭터라면 데이트 계속, 워프 이동하고 있으면(자) 안 돼
		IF !TCVAR:ARG:연속숙박금지 && CHK_DATENOW(CFLAG:ARG:데이트중) && !AT_HOME(MASTER)
			CFLAG:ARG:데이트중 = (CFLAG:ARG:자택위치) / 100
			CFLAG:ARG:동행 = 60
		ENDIF
	;자고 있는 경우는 안보이는 곳에 이동
	;더부살이캐릭터는 식별하기 위해서 현재위치 97을 사용하고 있기 때문에 요주의(MOVEMENT2의 SLEEP에 계속된다)
	ELSE
		CFLAG:ARG:현재위치 = SUKIMA()
		CFLAG:ARG:데이트중 = MAIN_MAP
		FLAG:데이트상대 = 0
		TFLAG:데이트전호감도 = 0
	ENDIF
ENDIF

;초대 플래그를 지워 일상에 되돌린다
CFLAG:ARG:초대 = 0
CFLAG:MASTER:초대 = 0
LOCK:(OMANEKIBEYA()) = 0

@OneNightStay(ARG)
#DIM YANUSHI
#DIM REQUIRED_DESIRE
YANUSHI = PRIVATEROOM:(CFLAG:MASTER:초기위치 % 100)
SIF CFLAG:ARG:욕구불만도 < 800
	RETURN
SIF CFLAG:ARG:현재위치 != CFLAG:MASTER:현재위치
	RETURN
SIF FLAG:일시체재
	RETURN
SIF CFLAG:ARG:신사거주
	RETURN
SIF !AT_HOME(MASTER)
	RETURN
REQUIRED_DESIRE = 10
SIF TALENT:ARG:연모 || TALENT:ARG:섹프
	REQUIRED_DESIRE -= 5
SIF TALENT:ARG:사모
	REQUIRED_DESIRE -= 2
IF !CFLAG:ARG:기정사실 & 합의_우후후
	REQUIRED_DESIRE += TALENT:ARG:일선을넘지않음 * 2
	REQUIRED_DESIRE += TALENT:ARG:정조 * 2
ENDIF
SIF TALENT:ARG:걸레
	REQUIRED_DESIRE = 0
SIF ABL:ARG:욕망 < REQUIRED_DESIRE
	RETURN

PRINTFORML %ARG는% 오늘 밤은 돌아가기 싫다고 말을 꺼냈다…
;帰宅口上,7,今夜は帰りたくない
CALL KOJO_MESSAGE_SEND("EVENT", 20, ARG, 7)
CALL ASK_YN("묵게 한다","묵게 하지 않는다")
IF !RESULT
	IF YANUSHI
		PRINTFORMW 재워주고 싶은 마음은 굴뚝같지만 %조사처리(CALLNAME:YANUSHI,"가")% 무섭다…
		GOTO REFUSAL
	ENDIF
	FLAG:일시체재 = ARG
	CFLAG:ARG:본래의초기위치 = CFLAG:ARG:초기위치
	CFLAG:ARG:초기위치 = CFLAG:MASTER:초기위치
	CFLAG:ARG:신사거주 = CFLAG:ARG:초기위치
	PRINTFORMW %ARG는% %NAME_FROM_PLACE(CFLAG:MASTER:초기위치)%에서 자고 가게 되었다.
	;帰宅口上,8,泊まっていくことになる
	CALL KOJO_MESSAGE_SEND("EVENT", 20, ARG, 8)
ELSE
	$REFUSAL
	PRINTFORMW %마스터는% 정중히 거절했다.
	;帰宅口上,9,断った
	CALL KOJO_MESSAGE_SEND("EVENT", 20, ARG, 9)
ENDIF

@SET_OneNightStay()


code:
;----------------------------
;여기서 1을 돌려주는 캐릭터는 MOVEMENT 관계의 처리를 일절 실시하지 않는다
;----------------------------
@MOVEMENT스킵판정(ARG)
#FUNCTION
SIF TALENT:ARG:망상의산물
	RETURNF 1
SIF FLAG:모리야복권데이트상대 == ARG && GET_MAPID(CFLAG:MASTER:현재위치) != MAIN_MAP
	RETURNF 1
SIF CFLAG:ARG:출금
	RETURNF 1
RETURNF 0

;----------------------------
;MASTER 포함한 모든 캐릭터에게 적용
;시간경과에 의한 자연 변동, 회화 누적도, 목욕탕의 처리
;----------------------------
@MOVEMENT공통처리(ARG)
;BASE의 자연 변동
CALL BASE자연변동(ARG)

;회화 누적치(100이상 회화하면(자) 시간경과 100분 경과까지 회화불능)
SIF TCVAR:ARG:301 > 100
	TCVAR:ARG:302 = 1
TCVAR:ARG:301 = MAX(TCVAR:ARG:301 - TIME_PROGRESS(TIME:1) , 0)
;시각 경과로 누적치가 0이 되면 회화 가능
SIF TCVAR:ARG:301 == 0
	TCVAR:ARG:302 = 0

;몸의 청결도
LOCAL = CFLAG:ARG:목욕탕

;DEBUGPRINTFORML 【MOVEMENT】BATH_NO:{ARG} , {LOCAL} , \@ CFLAG:ARG:현재위치 == BATHROOM() ?  in_BATH # {CFLAG:ARG:현재위치} \@

;IF BATHCHECK(CFLAG:ARG:현재위치) && GET_MAPID(CFLAG:ARG:현재위치) == MAIN_MAP
IF BATHROOM(CFLAG:ARG:현재위치) && GET_MAPID(CFLAG:ARG:현재위치) == MAIN_MAP
	;악취내성이 낮을 정도(수록) 오래도록 목욕을 즐김(목욕탕 플래그가 내리기 어렵다), 하루 분의 더러움은 대체로 30분에 세정
	CFLAG:ARG:목욕탕 = MAX(CFLAG:ARG:목욕탕 - TIME_PROGRESS(TIME:1) * (50 + TALENT:ARG:악취내성 * 15), 0)
ELSE
	;이틀분약까지 축적
	CFLAG:ARG:목욕탕 = MIN(CFLAG:ARG:목욕탕 + TIME_PROGRESS(TIME:1), 2500)
ENDIF

;껴안기금지시간의 감소
IF TCVAR:ARG:껴안기금지시간 > 0
	TCVAR:ARG:껴안기금지시간 = MAX(TCVAR:ARG:껴안기금지시간 - TIME_PROGRESS(TIME:1), 0)
ENDIF

;----------------------------
;부적절한 위치에 있는 캐릭터를 다른 장소에 이동시킨다
;----------------------------
@강제이동(ARG)
;시간정지중은 처리하지 않는다
IF !FLAG:70
	;벌레 바구니에 들어가지 않는 캐릭터를 벌레 바구니로부터 내쫓는다
	IF CFLAG:ARG:현재위치 == 54 && TALENT:ARG:체형 > -5
		IF ARG == [[신묘마루]]
			TALENT:ARG:체형 = -5
		ELSE
			CFLAG:ARG:현재위치 = 9
		ENDIF
	ENDIF

	;거점의 밖으로 쇠약중의 캐릭터가 있는 경우 스키마에 보낸다
	IF CFLAG:ARG:쇠약
		SIF GET_MAPID(CFLAG:ARG:현재위치) != MAIN_MAP
			CFLAG:ARG:현재위치 = SUKIMA()
	ENDIF
ENDIF

;----------------------------
;동행중의 캐릭터를 당신에 맞추어 이동시킨다
;----------------------------
@동행처리(ARG)
;※만취중은 가능
SIF FLAG:시간정지 || CFLAG:ARG:쇠약 || CFLAG:ARG:초대 || CFLAG:ARG:수면
	RETURN

;업무중은 기본적으로 무리, 다만 연회에서 만취하고 있는 경우는 예외
SIF CFLAG:ARG:행동 == 5 && CFLAG:ARG:직종 != 51
	RETURN

;동행 플래그는 1시간 지속
SIF !CHK_DATENOW(CFLAG:ARG:데이트중) && CFLAG:ARG:동행
	CFLAG:ARG:동행 = MAX(CFLAG:ARG:동행 - TIME_PROGRESS(TIME:1), 0)
SIF CFLAG:ARG:동행 || CHK_DATENOW(CFLAG:ARG:데이트중)
	CFLAG:ARG:현재위치 = CFLAG:MASTER:현재위치

;@캐릭터 이동 사전 처리(ARG)
;;쇠약중
;IF CFLAG:ARG:쇠약 || TCVAR:ARG:만취 || CFLAG:ARG:초대
;	RETURN
;ENDIF
;
;;초대중(수면등을 독자 처리)
;IF
;	CALL MOVEMENT_OMANEKI(ARG)
;	RETURN
;ENDIF
;
;;낮잠을 제외한 수면시간중
;IF !CFLAG:ARG:수면 && 수면시간(ARG)
;	;더부살이캐릭터의 집에 묵었을 때 는 돌아가지 않게 97 + MAIN_MAP * 100에 피난
;	IF CFLAG:(ARG):현재위치 != 97 + MAIN_MAP * 100
;		;데이트중이라면 강제적으로 중지해 귀가
;		CALL 수면시데이트중단(ARG)
;	ENDIF
;ENDIF

;------------------------------------------
;시간에 맞추어 캐릭터를 일으키는/재운다
;------------------------------------------
@기상취침처리(ARG)
SIF FLAG:시간정지 || CFLAG:ARG:쇠약 || TCVAR:ARG:만취
	RETURN
SIF CFLAG:ARG:우후후 && CFLAG:ARG:욕구불만도 > 0
	RETURN
;수면시간대의 경우
IF 수면시간(ARG)
	;일어나고 있으면(자) 재운다
	IF !CFLAG:ARG:수면 && !CFLAG:ARG:우후후
		;데이트중이라면 낮잠은 무시한다
		IF !(CHK_DATENOW(CFLAG:ARG:데이트중) && !수면시간(ARG))
			;CHARA_SLEEP 개선에 따라 일단 동결
			; ;더부살이캐릭터의 집에 묵었을 때 는 돌아가지 않게 97 + MAIN_MAP * 100에 피난
			; IF CFLAG:ARG:현재위치 != 97 + MAIN_MAP * 100
			; 	;데이트중에 취침시간이 되면 강제적으로 중지해 귀가
			; 	CALL 수면시데이트중단(ARG)
			; ENDIF
			IF !CFLAG:ARG:초대 && !(CFLAG:ARG:신사거주 && CFLAG:ARG:현재위치 == CFLAG:ARG:초기위치)
				IF CFLAG:MASTER:현재위치 == CFLAG:ARG:현재위치 && !CFLAG:MASTER:수면
					IF CFLAG:ARG:우후후 || CHK_DATENOW(CFLAG:ARG:데이트중)
						PRINTFORMW %ARG는% 졸음을 참을 수 없게 돼서、\@ CFLAG:ARG:신사거주 ? 자기 방 # 자택 \@으로 돌아가기로 했습니다
					ELSEIF IN_HOME(CFLAG:ARG:현재위치)
						PRINTFORMW %ARG는% 작별 인사를 하며, 졸린 듯이 떠나 갔습니다
					ENDIF
				ENDIF
			ENDIF
		ENDIF
	ENDIF
	;주인공이 기상중이라면 메시지 표시
	CALL CHARA_SLEEP, ARG, !CFLAG:MASTER:수면
;수면시간대부터 빗나가고 있는 경우
ELSE
	;자고 있으면(자) 일으킨다
	IF CFLAG:ARG:수면
		CALL CHARA_AWAKE, ARG
		;더부살이캐릭터가 자신의 집에서 일어났을 경우, 참배길저편에 이동시킨다
		SIF CFLAG:ARG:신사거주 && CFLAG:ARG:현재위치 == 97 + MAIN_MAP * 100
			CFLAG:ARG:현재위치 = MAXROOM
	ENDIF
ENDIF

;------------------------------------------
;방문 플래그가 서 있는 캐릭터를 당신의 거점 물건에 이동시킨다
;캐릭터를 자신의 집에 돌려주는/재택안의 처리를 실시한다
;------------------------------------------
@방문귀가처리(ARG)
SIF FLAG:시간정지 || CFLAG:ARG:쇠약 || TCVAR:ARG:만취 || CFLAG:ARG:초대 || CFLAG:ARG:우후후
	RETURN

;더부살이캐릭터·연회에 참가하는 캐릭터는 내방·귀가의 처리를 실시하지 않는다
IF !CFLAG:ARG:신사거주 && !CFLAG:ARG:연회참가
	;활동시 마우치
	IF VISIT(ARG)
		IF CFLAG:ARG:거점내방
			;내방플래그가 있다면 주인공의 거점에 출현시킨다(업무중은 무리)
			IF !AT_HOME(ARG) && !업무중체크(ARG)
				CALL 주인공물건으로향한다(ARG)
			ENDIF
		ENDIF
	;활동시간외
	ELSE
		;귀가·재택 처리
		CALL KITAKU(ARG)
	ENDIF
ENDIF

;------------------------------------------
;일이 없는 캐릭터를 외출시킨다
;------------------------------------------
@휴일이동처리(ARG)
SIF FLAG:시간정지 || CFLAG:ARG:쇠약 || TCVAR:ARG:만취 || CFLAG:ARG:수면 || CFLAG:ARG:초대 || CFLAG:ARG:우후후
	RETURN

;신사에 갈 예정의 캐릭터, 당일 일이 있는 캐릭터, 신사에 살고 있는 캐릭터는 무시
SIF CFLAG:ARG:거점내방 || 업무일체크(ARG) || CFLAG:ARG:신사거주
	RETURN

;방문시간에 아직 이동하고 있지 않는 경우
IF VISIT(ARG) && CFLAG:ARG:현재위치 != CFLAG:ARG:만난위치
	LOCAL = 0
	IF CFLAG:ARG:현재위치 == CFLAG:MASTER:현재위치
		;묵으면(자) 일어나는 현상(연동 캐릭터를 고려하면(자) 귀찮은 일로)
		LOCAL = 1
	ENDIF
	;전원 공통의 처리
	CFLAG:ARG:현재위치 = CFLAG:ARG:만난위치 ?  CFLAG:ARG:만난위치 # SUKIMA()
	CFLAG:ARG:동행 = 0
	IF CFLAG:ARG:현재위치 != CFLAG:MASTER:현재위치 && LOCAL
		IF TALENT:ARG:연모 && !GROUPMATCH(NAME_FROM_PLACE(CFLAG:ARG:만난위치), "", "불명", "스키마 공간")
			PRINTFORMW %ARG는% %조사처리(NAME_FROM_PLACE(CFLAG:ARG:만난위치),"으로")% 간다고 말하고 나갔다
		ELSE
			PRINTFORMW %ARG는% 어딘가에 나간 것 같다
		ENDIF
	ENDIF
ENDIF

;------------------------------------------
;업무중이라면 1을 돌려준다
;@WORKING와는 거동이 다르므로 주의
;------------------------------------------
@업무중체크(ARG)
#FUNCTION
SIF TCVAR:ARG:일개시 >= 0 && BETWEENTIME(TCVAR:ARG:일개시, TCVAR:ARG:일종료) && BASE:ARG:일량 > 0
	RETURNF 1
RETURNF 0

;------------------------------------------
;당일에 일의 예정이 있다면 1을 돌려준다
;@WORKING와는 거동이 다르므로 주의
;------------------------------------------
@업무일체크(ARG)
#FUNCTION
SIF TCVAR:ARG:일개시 >= 0
	RETURNF 1
RETURNF 0

@주인공물건으로향한다(ARG)
;내방불능（구상용）
IF CFLAG:ARG:내방불능
	CFLAG:ARG:거점내방 = 0
	RETURN
ENDIF
;묵으면(자) 일어나는 현상
IF CFLAG:ARG:현재위치 == CFLAG:MASTER:현재위치 && !CHK_DATENOW(CFLAG:ARG:데이트중)
	IF CFLAG:ARG:태도 && !FLAG:데이트상대
		PRINTFORMW %ARG는% %GET_MAPNAME(MAIN_MAP)%에 가는 듯 하다
		PRINTL [1] - 데이트를 신청한다
		PRINTL [2] - 함께 간다
		PRINTL [0] - 전송한다
		INPUT
		IF RESULT == 1
			PRINTFORMW %CALLNAME:ARG%와 데이트하기로 했다
			CFLAG:MASTER:동행 = 60
			CFLAG:ARG:동행 = 60
			CFLAG:ARG:데이트중 = CFLAG:MASTER:현재위치 / 100
			FLAG:데이트상대 = ARG
			TFLAG:데이트전호감도 = CFLAG:ARG:호감도
		ELSEIF RESULT == 2
			PRINTFORMW %CALLNAME:ARG%를 데려 돌아가기로 했다
			CALL 귀가의시간경과
			CALL SET_DATE(99, ARG)
			CFLAG:ARG:현재위치 = ENTRANCE
			CFLAG:MASTER:현재위치 = ENTRANCE
			CFLAG:ARG:데이트중 = MAIN_MAP
			CFLAG:MASTER:데이트중 = MAIN_MAP
			CFLAG:ARG:동행 = 60
			CFLAG:MASTER:동행 = 60
			IF TARGET == 93 && !GETBIT (FLAG:풀장, 0)
				TIME += 30
				BASE:MASTER:체력 = MAX(BASE:MASTER:체력 - 500,500)
			ENDIF
		ELSE
			PRINTFORMW %ARG는% %GET_MAPNAME(MAIN_MAP)%에 나갔다
			IF CFLAG:ARG:(450 + MAIN_MAP)
				CFLAG:ARG:현재위치 = CFLAG:ARG:(450 + MAIN_MAP)
			ELSE
				CFLAG:ARG:현재위치 = MAXROOM
			ENDIF
		ENDIF
	ELSE
		PRINTFORMW %ARG는% %GET_MAPNAME(MAIN_MAP)%에 나간 것 같다
		IF CFLAG:ARG:(450 + MAIN_MAP)
			CFLAG:ARG:현재위치 = CFLAG:ARG:(450 + MAIN_MAP)
		ELSE
			CFLAG:ARG:현재위치 = MAXROOM
		ENDIF
	ENDIF
ELSE
	IF CFLAG:ARG:(450 + MAIN_MAP)
		CFLAG:ARG:현재위치 = CFLAG:ARG:(450 + MAIN_MAP)
	;뒷문조(後戸組) 특수처리
	ELSEIF GROUPMATCH(ARG, [[마이]], [[사토노]], [[오키나]]) && AT_HOME(MASTER) && MAP_CAN_MOVE(CFLAG:MASTER:현재위치, ARG) && !CFLAG:MASTER:우후후
		CFLAG:ARG:현재위치 = CFLAG:MASTER:현재위치
	ELSE
		CFLAG:ARG:현재위치 = MAXROOM
	ENDIF
	SIF GETBIT(TALENT:MASTER:위치짐작, 1) && AT_HOME(MASTER) == 1 && !CFLAG:MASTER:수면 && !CFLAG:MASTER:우후후
		PRINTFORMW 【%ARG가% 방문해 온 것 같다】
ENDIF
CALL EX_COSTUME(ARG, "집 데이트")

;------------------------------------------
;일이나 연회의 개시/경과/종료나 메시지의 표시를 실시한다
;------------------------------------------
@일연회처리(ARG)
SIF FLAG:시간정지 || CFLAG:ARG:쇠약 || CFLAG:ARG:초대 || CFLAG:ARG:수면
	RETURN

IF TCVAR:ARG:만취
	;연회에서 만취했을 경우는 메시지만 표시해 돌아간다
	IF CFLAG:ARG:직종 == 51 && CFLAG:ARG:현재위치 == TFLAG:연회장 && CFLAG:MASTER:현재위치 == CFLAG:ARG:현재위치
		CALL 연회묘사(ARG)
	ENDIF
	RETURN
ENDIF

IF !CFLAG:ARG:우후후 || WORKING(ARG) || (CFLAG:ARG:우후후 == 2 && CFLAG:ARG:연회참가 == 2)
	;연회 시간대 호출
	IF CFLAG:ARG:연회참가 == 1 || CFLAG:ARG:연회참가 == 2
		CALL ENKAI_WORK(ARG)

	;연회회장에 들르거나 가까워진 캐릭터는 일정 확률로 연회에 참가한다
	ELSEIF FLAG:참가인수 >= 2 && (CFLAG:ARG:현재위치 == TFLAG:연회장 || CAN_MOVE(CFLAG:ARG:현재위치, TFLAG:연회장) >= 2) && !CFLAG:ARG:우후후
		IF CFLAG:ARG:연회참가 == 0 && RAND:5 < 4 && 연회개최중판정() && TIME_PROGRESS(TIME:1) && 업무중체크(ARG) == 0
			IF CFLAG:MASTER:현재위치 == TFLAG:연회장
				IF FLAG:참가인수 >= 8
					PRINTFORMW 즐거운 모습에, %ARG가% 연회에 참가했다!
				ELSE
					PRINTFORMW 상태를 보고 있던%ARG는%, 그대로 연회에 참가했다!
				ENDIF
			ENDIF
			CFLAG:ARG:연회참가 = 1
			CALL ENKAI_START(ARG)
		ENDIF
	ENDIF

	;데이트상대가 연회나 그 준비에 참가했을 경우, 데이트는 강제적으로 중지
	IF GROUPMATCH(CFLAG:ARG:직종, 48, 49, 50, 51) && CHK_DATENOW(CFLAG:ARG:데이트중)
		PRINTFORMW %ARG와%의 데이트는 일단 연회의 끝으로 하기로 했다
		CFLAG:ARG:데이트중 = MAIN_MAP
		FLAG:데이트상대 = 0
		TFLAG:데이트전호감도 = 0
		CFLAG:ARG:동행 = 0
	ENDIF

	;연회의정리 예정이 들어가 있는 캐릭터는 시간이 나는 대로 정리 개시
	IF CFLAG:ARG:정리일량
		IF CFLAG:ARG:행동 == 0 && FLAG:참가인수 == 0
			CALL ENKAI_KATAZUKE(ARG)
			CFLAG:ARG:정리일량 = 0
			CFLAG:ARG:정리장소 = 0
		ENDIF
	ENDIF

	;일시간중, 연회참가중, 연회준비중이라면 CHARA_JOBSTR(ARG)
	IF WORKING(ARG) || (GROUPMATCH(CFLAG:ARG:직종, 48, 49, 50) && BASE:ARG:일량 > 0) || GROUPMATCH(CFLAG:ARG:직종, 51)
		CALL CHARA_JOBSTR(ARG)
	;일종료하고 있으면 종료 처리
	ELSEIF CFLAG:ARG:행동 == 5
		CALL CHARA_JOBEND(ARG)
	ENDIF
ENDIF

;CHARA_SLEEP 개량에 따라 일단 동결
; @수면시데이트중단(ARG)
; IF CHK_DATENOW(CFLAG:ARG:데이트중)
; 	IF CFLAG:ARG:쇠약
; 		PRINTFORMW %ARG는% 녹초가 되어 졸린 것 같다…
; 	ELSE
; 		PRINTFORMW %ARG는% 이제 돌아가 자는 시간입니다…
; 	ENDIF
; 	IF GET_MAPID(CFLAG:ARG:자택위치) == MAIN_MAP
; 		PRINTFORMW 함께 %GET_MAPNAME(MAIN_MAP)%로 돌아가기로 했습니다
; 		CALL SET_DATE(99, ARG)
; 	ELSE
; 		CALL ASK_YN("집까지 바래다준다","그 자리에서 헤어진다")
; 		IF RESULT == 0
; 			PRINTFORMW %ARG를% 집까지 데려다 주기로 했습니다
; 			CALL SET_DATE(99, ARG)
; 		ELSE
; 			PRINTFORMW %ARG와%의 데이트는 그 자리에서 연회의 끝이 되었습니다
; 			FLAG:데이트상대 = 0
; 			TFLAG:데이트전호감도 = 0
; 			CFLAG:ARG:데이트중 = MAIN_MAP
; 		ENDIF
; 		CFLAG:ARG:현재위치 = CFLAG:ARG:자택위치
; 	ENDIF
; 	IF CFLAG:ARG:우후후
; 		CALL ENDUFUFU(ARG)
; 	ENDIF
; 	CFLAG:ARG:동행 = 0
; ENDIF

repo_name: DNS/eraTWKR

license: mit


code:
;FileName_MOVEMENT.ERB ----------------------------- Rev1. 01
;캐릭터이동처리
;CALL		USER
;RETURN		VOID
;COMMENT
;-----------------------------------------------------------
@CHARA_MOVEMENT()
LOCAL:99 = LINECOUNT
PRINTL 　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　(소녀이동중…)

;시간경과에 의한 BASE등의 자연 변동, 회화 누적도, 목욕탕의 처리
CALL MOVEMENT공통처리(MASTER)

;각 캐릭터마다의 그 날의 일정보를 갱신
FOR LOCAL, 1, CHARANUM
	;출금캐릭터를 스키마에 날린다
	IF CFLAG:LOCAL:출금
		CFLAG:LOCAL:현재위치 = SUKIMA()
	ELSE
		CALL 일내용설정(LOCAL)
	ENDIF
NEXT

;행동순서를 셔플
;CALL FISHER_YATES_SHAFFLE(CHARANUM)
;MASTER를 0번에 이동
;SWAP SHAFFLE_ARRAY:0 , SHAFFLE_ARRAY:(FINDELEMENT(SHAFFLE_ARRAY , 0))

FOR LOCAL, 1, CHARANUM
	;LOCAL = SHAFFLE_ARRAY:(LOCAL:100)

	SIF MOVEMENT스킵판정(LOCAL)
		CONTINUE

	CALL 침실로부터내쫓아(LOCAL)

	;시간경과에 의한 BASE등의 자연 변동, 회화 누적도, 목욕탕의 처리
	CALL MOVEMENT공통처리(LOCAL)

	;부적절한 위치에 있는 캐릭터를 다른 장소에 이동시킨다
	CALL 강제이동(LOCAL)
NEXT

CALL 연회참가인원수재계산

FOR LOCAL, 1, CHARANUM
	;LOCAL = SHAFFLE_ARRAY:(LOCAL:100)

	SIF MOVEMENT스킵판정(LOCAL)
		CONTINUE

	;시간에 맞추어 캐릭터를 일으키는/재운다
	CALL 기상취침처리(LOCAL)

	;방문 플래그가 서 있는 캐릭터를 당신의 거점 물건에 이동시킨다
	;캐릭터를 자신의 집에 돌려주는/재택안의 처리를 실시한다
	CALL 방문귀가처리(LOCAL)

	;일이 없는 캐릭터를 외출시킨다
	CALL 휴일이동처리(LOCAL)

	;초대방에 있는 캐릭터의 처리
	CALL 초대방처리(LOCAL)

	;동행중의 캐릭터를 당신의 이동에 맞추어 이동시킨다
	CALL 동행처리(LOCAL)

	;일이나 연회의 개시/경과/종료나 메시지의 표시를 실시한다
	CALL 일연회처리(LOCAL)

	;당신의 거점 물건에 있는 캐릭터를 이동시킨다
	CALL 캐릭터이동처리(LOCAL)

	;만취가 되는/만취로부터의 부활
	CALL CHARA_ACTION_DRUNK(LOCAL)

	;자유행동의 발생／経過／終了やメッセージの表示
	CALL 자유행동처리(LOCAL)

	SIF CFLAG:LOCAL:현재위치 == 0
		PRINTFORMW ### MOVEMENT LOCATION ERROR %CALLNAME:LOCAL%의 현재 위치가 이상합니다 ### CHARA_NO:{LOCAL}
NEXT

;CALL 연회참가인원수재계산
CALL ENKAI_SINKOU()

SIF LINECOUNT == LOCAL:99 + 1
	CLEARLINE 1


code:
;-----------------------------------------------------------
;거점 내에서 캐릭터의 거동을 처리하는 함수
;             ARG   판정하는 캐릭터
;        머물어비율   현재 위치 대비 이동률, 높을수록 머물며, 마이너스가 되면 이동하기가 쉬워진다
;          이동처   이동 판정을 하는 지점ID
;        이동결정   실제 이동하는 지점ID
;      무차별이동   이동처가 침입가능이면 일단 이동한다
;        강제이동   이동처로 무조건 이동한다（무차별 이동으로도 어디로도 이동 못하면 발동）
;             END   종료 플래그
;            N_ID   ARG의 현재위치
;         G_POINT   일시적 인력점
;          인력점   서서히 이동해 가는 목적지
;가능한한움직이지않는다   1턴만 지속되는 무차별 이동을 하지 않는 이상 이동하지 않는 상태, 이동 직후나 특정한 조치를 취했을 때
;-----------------------------------------------------------
@캐릭터이동처리(ARG)
#DIM 머물어비율
#DIM 이동처
#DIM 이동결정
#DIM 무차별이동
#DIM 강제이동
#DIM END
#DIM N_ID
#DIM G_POINT
VARSET LOCAL
END = 0
;あなたの拠点物件にいるキャラのみが対象
SIF !AT_HOME(ARG)
	END = 1
;行動不能
SIF FLAG:시간정지 || CFLAG:ARG:쇠약 || CFLAG:ARG:초대 || CFLAG:ARG:수면
	END = 1
;일, 데일리, 동침, 우후후, 동행중은 이동 처리 리셋
SIF CFLAG:ARG:행동 == 5 || CFLAG:ARG:데일리 || CFLAG:ARG:동침중 || CFLAG:ARG:우후후 || CFLAG:ARG:동행
	END = 1

;終了処置
IF END
	TCVAR:ARG:가능한한움직이지않는다 = 0
	RETURN
ENDIF

N_ID = CFLAG:ARG:현재위치

;まずその場に留まり率を設定
CALLFORM CHARAMOVE_DATA_{ARG}(4, N_ID)
머물어비율 = RESULT
;待機場所は固定
IF N_ID == MAXROOM
	머물어비율 = -10
;引力点も固定
ELSEIF N_ID == TCVAR:ARG:인력점
	머물어비율 = 5
ELSE
	;머물기 어려운 장소
	SIF N_ID == GET_ENTRANCE(MAIN_MAP) || ROOMDATA:(N_ID % 100) & 장소_머물지않는다
		머물어비율 += -5
	;당신과 동실이라면 태도로 머문다
	SIF N_ID == CFLAG:MASTER:현재위치
		머물어비율 += CFLAG:ARG:태도 * 2
ENDIF

무차별이동 = 0
강제이동 = 0
;お風呂にいる
IF BATHROOM(N_ID)
	;목욕탕
	IF CFLAG:ARG:목욕탕
		TCVAR:ARG:가능한한움직이지않는다 = 0
		RETURN
	;끝낸다
	ELSE
		무차별이동 = 1
	ENDIF
ENDIF
;トイレは10分経過したら出てくる,利尿剤が効いてると出てこない
IF IN_TOILET(N_ID) && TIME_PROGRESS(TIME:1) >= 10 && !TCVAR:ARG:이뇨제
	IF TCVAR:ARG:이뇨제
		TCVAR:ARG:가능한한움직이지않는다 = 1
	ELSEIF TIME_PROGRESS(TIME:1) >= 10 && !TCVAR:ARG:이뇨제
		무차별이동 = 1
	ENDIF
ENDIF
;날씨 대미지가 아프다
SIF 날씨에의한영향(ARG, N_ID) <= -3
	무차별이동 = 1
;現在位置の移動率を判定して、本来入らない場所（なおかつあなたが居ない）ならG_POINTを付けて無差別移動
CALL 캐릭터이동율(ARG, N_ID)
IF RESULT <= 0 && N_ID != CFLAG:MASTER:현재위치
	무차별이동 = 1
	;引力点が未設定ならとりあえず外に出ようとする
	SIF !TCVAR:ARG:인력점
		G_POINT = ENTRANCE
ELSE
	G_POINT = 0
ENDIF
;なるべく動かないなら終了
IF TCVAR:ARG:가능한한움직이지않는다 && !무차별이동
	TCVAR:ARG:가능한한움직이지않는다 = 0
	RETURN
ENDIF

CALL FISHER_YATES_SHAFFLE(MAXROOM - MINROOM())
이동결정 = 0
WHILE 1
	;引力点の設定を行う
	TCVAR:ARG:인력점 = 0
	CALLFORM CHARAMOVE_DATA_{ARG}(8)
	CALL KOJO_MESSAGE_SEND("GRAVITY", 1, ARG)
	;引力点または脱出用のG_POINTがある場合は引力点に向かって移動する,G_POINTは条件無し
	IF 인력점발동가능(ARG) || G_POINT
		;引力点かG_POINTを目指す
		이동처 = TCVAR:ARG:인력점 ? TCVAR:ARG:인력점 # G_POINT
		;スキップムーブでルート検索
		WHILE !(CAN_MOVE(N_ID, 이동처) & 1)
			TRYCALLFORM SKIP_MOVE_{MAIN_MAP}(이동처, N_ID)
			이동처 = RESULT
		WEND
		;이동처가 당신 사실이고, 그 캐릭터의 사실이 아니고, 거기서 당신이 우후후중일 경우에는 들어올 수 없어
		IF 이동처 == CFLAG:MASTER:초기위치 && 이동처 != CFLAG:ARG:초기위치 && 이동처 == CFLAG:MASTER:현재위치 && CFLAG:MASTER:우후후
		;結界発動中
		ELSEIF TEQUIP:MASTER:결계발동 && 이동처 == CFLAG:MASTER:현재위치
		ELSE
			;고정률을 보정하여 움직이기 쉽게 한다(요조정, -100이면 거의 움직인다)
			CALL 캐릭터이동율(ARG, 이동처, 머물어비율 - 100)
			;이동판정
			IF RESULT * TIME_PROGRESS(TIME:1) > RAND:1000
				이동결정 = 이동처
			;무차별이동시 가급적 이동, 강제이동시 무조건 이동
			ELSEIF (RESULT && 무차별이동) || 강제이동
				이동결정 = 이동처
			ENDIF
		ENDIF
	;通常の移動
	ELSE
		FOR LOCAL, 0, MAXROOM - MINROOM()
			이동처 = SHAFFLE_ARRAY:LOCAL + MAIN_MAP * 100 + 1
			;현재위치
			SIF 이동처 == N_ID
				CONTINUE
			;이동할 수 없다
			SIF !(CAN_MOVE(N_ID, 이동처) & 1)
				CONTINUE
			;移動できない２,ワンルーム制限等、移動に制限がある場所
			SIF !MAP_CAN_MOVE(이동처, ARG)
				CONTINUE
			;移動先があなた私室であり、そのキャラの私室でなく、そこであなたがウフフ中の場合は入ってこれない
			SIF 이동처 == CFLAG:MASTER:초기위치 && 이동처 != CFLAG:ARG:초기위치 && 이동처 == CFLAG:MASTER:현재위치 && CFLAG:MASTER:우후후
				CONTINUE
			;強制移動時は以下の条件はパスする
			IF !강제이동
				;天候が今いる場所より痛い
				SIF 날씨에의한영향(ARG, 이동처) <= -3 && N_ID != MAXROOM && 날씨에의한영향(ARG, N_ID) >= -2
					CONTINUE
				;追い出された先
				SIF 이동처 == TCVAR:ARG:쫒겨난장소
					CONTINUE
				;結界発動中
				SIF TEQUIP:MASTER:결계발동 && 이동처 == CFLAG:MASTER:현재위치
					CONTINUE
			ENDIF
			;最初にヒットした移動先で判定してBREAKする（分岐が多いほど移動確率が上がらないようにするため）
			CALL 캐릭터이동율(ARG, 이동처, 머물어비율)
			;通常の移動判定
			IF RESULT * TIME_PROGRESS(TIME:1) > RAND:1000
				이동결정 = 이동처
			;無差別移動時はなるべく移動,強制移動時は無条件に移動
			ELSEIF (RESULT && 무차별이동) || 강제이동
				이동결정 = 이동처
			;移動率が0%じゃないなら判定終了（マイナスでも終了）
			ELSEIF RESULT
				;ただし無差別移動時は強制移動を付けて再判定
				IF 무차별이동 && !강제이동
					강제이동 = 1
				ELSE
					TCVAR:ARG:가능한한움직이지않는다 = 0
					RETURN
				ENDIF
			;0%なら再判定
			ELSE
				CONTINUE
			ENDIF
			BREAK
		NEXT
	ENDIF
	;強制移動時は移動決定するまでループ
	IF 강제이동 && !이동결정
		CONTINUE
	ELSEIF 이동결정
		CALL 캐릭터이동처리２(ARG, 이동처, N_ID)
		RETURN
	ELSE
		TCVAR:ARG:가능한한움직이지않는다 = 0
		RETURN
	ENDIF
WEND

;-----------------------------------------------------------
;이동이 결정된 후의 처리
;ARG     이동하는 캐릭터
;이동처  이동하는 지점ID
;N_ID    ARG의 현재위치
;-----------------------------------------------------------
@캐릭터이동처리２(ARG, 이동처, N_ID)
#DIM 이동처
#DIM N_ID
#DIM 이동메시지
#DIM 원룸인원수카운트
#DIM SKIP
이동메시지 = 0
SKIP = 0
SETCOLOR C_YELLOW
IF CAN_SEE(ARG) && !CFLAG:MASTER:수면
	IF N_ID == MAXROOM
		PRINTFORML %ARG가%【%NAME_FROM_PLACE(이동처)%】에 왔다
	ELSE
		PRINTFORML %ARG는%【%NAME_FROM_PLACE(N_ID)%】에서【%NAME_FROM_PLACE(이동처)%】%조사만처리(NAME_FROM_PLACE(이동처),"로")% 이동했다
	ENDIF
	이동메시지 = 1
ENDIF
;ワンルーム処理
IF ROOMDATA:(N_ID % 100) & 장소_원룸
	;ワンルーム家主が外出する場合、相性が良くないキャラは一緒に外に出される
	IF N_ID == CFLAG:ARG:초기위치
		원룸인원수카운트 = 0
		FOR LOCAL, 1, CHARANUM
			IF CFLAG:LOCAL:현재위치 == N_ID && LOCAL != ARG
				;別の同居しているキャラがまだいる場合は追い出しが発生しない
				IF CFLAG:LOCAL:현재위치 == CFLAG:LOCAL:초기위치
					SKIP = 1
					BREAK
				;相性の良いキャラは居ても良い
				ELSEIF RELATION:ARG:LOCAL <= 100
					원룸인원수카운트 ++
					CFLAG:LOCAL:현재위치 = 이동처
					TCVAR:LOCAL:가능한한움직이지않는다 = 1
				ENDIF
			ENDIF
		NEXT
		;あなたは恋慕ならオッケー,あなた＋相性のいいキャラが留守番、他のキャラが締め出しだとちょっと地の文と齟齬があるのは仕様
		IF 이동메시지 && !SKIP
			IF !TALENT:ARG:연모
				PRINTFORML %CALLNAME:MASTER%\@ 원룸인원수카운트 ?  들 #  \@도, %CALLNAME:ARG%에게 촉구받아【%NAME_FROM_PLACE(N_ID)%】에서【%NAME_FROM_PLACE(이동처)%】%조사만처리(NAME_FROM_PLACE(이동처),"로")% 이동했다
				CFLAG:MASTER:현재위치 = 이동처
			ELSEIF 원룸인원수카운트
				PRINTFORML %CALLNAME:ARG%에게 촉구받아, %CALLNAME:MASTER%이외는【%NAME_FROM_PLACE(N_ID)%】에서【%NAME_FROM_PLACE(이동처)%】%조사만처리(NAME_FROM_PLACE(이동처),"로")% 이동했다
			ELSE
				PRINTFORML %ARG는% %CALLNAME:MASTER%에게 빈집을 지켜달라 부탁하고 이동했다
			ENDIF
		ENDIF
	ENDIF
ENDIF
RESETCOLOR
SIF 이동메시지
	WAIT
;이동 처리
CFLAG:ARG:현재위치 = 이동처
TCVAR:ARG:가능한한움직이지않는다 = 1

;--------------------------------------------------------
;캐릭터(ARG)가 지점(이동처)에 이동하는 확률/분
;머물어비율은 마이너스 보정
;실수치는  10배가 된 것
;식중 함수로 하고 싶었지만…
;--------------------------------------------------------
@캐릭터이동율(ARG, 이동처, 머물어비율)
#DIM 이동율
#DIM 머물어비율
#DIM 이동처
#DIM N_ID
#DIM 욕실들어가고싶다
#DIM 방주인
;お風呂入りたい度を設定
IF TALENT:ARG:빙정
	욕실들어가고싶다 = 2000
;お風呂が嫌いなキャラ(虎は泳げるけど)
ELSEIF GROUPMATCH(ARG, [[첸]], [[쇼]], [[세이자]], [[오린]], [[미케]])
	욕실들어가고싶다 = 2000
ELSEIF TALENT:ARG:악취내성 == -2
	욕실들어가고싶다 = 600
ELSEIF TALENT:ARG:악취내성 == -1
	욕실들어가고싶다 = 800
ELSEIF TALENT:ARG:악취내성 == 0
	욕실들어가고싶다 = 1000
ELSEIF TALENT:ARG:악취내성 == 1
	욕실들어가고싶다 = 1500
ELSEIF TALENT:ARG:악취내성 == 2
	욕실들어가고싶다 = 2000
ENDIF

N_ID = CFLAG:ARG:현재위치
;기본 이동율, 1.5% / 분 = 45.0% / 30분
이동율 = 15 + CFLAG:ARG:이동율보정
;당신이 보이면 태도로 업
SIF CFLAG:MASTER:현재위치 == 이동처 && CAN_MOVE(N_ID, 이동처) == 3
	이동율 += CFLAG:ARG:태도 * 2
;청소부는 청소중 더러움에 영향을 받는다
SIF TALENT:ARG:청소부 && CFLAG:ARG:신사거주 && BETWEENTIME(720, 1080)
	이동율 += YOGORE:이동처 / 300
;キャラごとの移動率設定
CALLFORM CHARAMOVE_DATA_{ARG}(4, 이동처)
이동율 = 이동율 + RESULT

;お風呂に入りたい時は入りに行く
IF BATHCHECK(이동처) & 장소_목욕탕
	IF CFLAG:ARG:목욕탕 >= 욕실들어가고싶다
		이동율 = 이동율 * 10
	ELSE
		이동율 = 0
	ENDIF
ENDIF
;은둔 형 외톨이 대책으로서 날씨 대미지가 없는 상황으로 옥내에 있는 경우 옥외에 가고 싶어하도록(듯이)
SIF INROOM(N_ID) && !INROOM(이동처) && 날씨에의한영향(ARG, 이동처) >= 0
	이동율 += 15

;－－－－－－－－－－－－－－－
;이동절도(節度)에 의해 가지 않는 장소를 설정
;MAP 거주자의 Private(사적인) 지점은 개별적으로 설정해 주세요
 ;0이상 = 사적인 장소에는 들어가지 않는다
;	 1=창고나 골목길 뒤, 지하실등 과소(過疎)지점에는 이동하지 않는다
;	-1=Private(사적인)장소에서도 그다지 신경쓰지 않고 이동한다
;	-2=온갖 곳으로 이동한다
;－－－－－－－－－－－－－－－
방주인 = PRIVATEROOM:(이동처 % 100)
IF 이동처 != CFLAG:ARG:초기위치 && N_ID != MAXROOM
	IF CFLAG:ARG:이동절도 >= 1
		SIF ROOMDATA:(이동처 % 100) & 장소_과소
			이동율 = 0
	ENDIF
	IF CFLAG:ARG:이동절도 >= 0 && !CFLAG:ARG:신사거주
		SIF ROOMDATA:(이동처 % 100) & 장소_Private && RELATION:방주인:ARG <= 100
			이동율 = 0
	ENDIF
	IF CFLAG:ARG:이동절도 >= -1
		SIF 자는아이가있다(이동처)
			이동율 = 이동율 * 1 / 3
		SIF ROOMDATA:(이동처 % 100) & 장소_Private && !CFLAG:ARG:신사거주 && RELATION:방주인:ARG <= 100
			이동율 = 이동율 * 2 / 3
		SIF 날씨에의한영향(ARG, 이동처) <= -1
			이동율 = 이동율 * 1 / 3
		SIF ROOMDATA:(이동처 % 100) & 장소_과소
			이동율 = 이동율 * 1 / 3
	ENDIF
ENDIF
;留まり率を差し引く
이동율 = MAX(이동율 - 머물어비율, 0)
RETURN 이동율

@자는아이가있다(ARG)
#FUNCTION
FOR LOCAL, 1, CHARANUM
	SIF CFLAG:LOCAL:현재위치 == ARG && CFLAG:LOCAL:수면
		RETURNF 1
NEXT

;ARG  判定キャラ
@인력점발동가능(ARG)
#FUNCTION
;引力点が無い
SIF !TCVAR:ARG:인력점
	RETURNF 0
;現在位置と同じ
SIF CFLAG:ARG:현재위치 == TCVAR:ARG:인력점
	RETURNF 0
;引力点が拠点の外
SIF IN_HOME(TCVAR:ARG:인력점) != 1
	RETURNF 0
;現在位置が拠点の外
SIF IN_HOME(CFLAG:ARG:현재위치) != 1
	RETURNF 0
;天候ダメージが痛い
SIF 날씨에의한영향(ARG, TCVAR:ARG:인력점) < 0
	RETURNF 0
RETURNF 1


code:
;FileName_SLEEP.ERB ----------------------------- Rev1. 00
;캐릭터 수면 처리
;CALL		USER
;ARG		0:캐릭터 NO, 1:MESSAGE 출력 필요와 불필요
;RETURN		VOID
;COMMENT
;-----------------------------------------------------------
@CHARA_SLEEP(CHARA, 메시지표시)
#DIM CHARA
#DIM 메시지표시
#DIM 굿나잇구상
#DIM 굿나잇구상2
#DIM 귀가구상
#DIM 표시끝
#DIM 인수
SIF TALENT:CHARA:망상의산물
	RETURN 0
SIF TCVAR:CHARA:만취
	RETURN 0

굿나잇구상 = 0
굿나잇구상2 = 0
표시끝 = 0
IF CFLAG:CHARA:현재위치 == CFLAG:MASTER:현재위치 && !CFLAG:CHARA:빡침 && 메시지표시
	;寝る場所にいる
	IF (IN_HOME(CFLAG:MASTER:현재위치) && CFLAG:CHARA:현재위치 == CFLAG:CHARA:초기위치) || CFLAG:MASTER:현재위치 == OMANEKIBEYA()
		;寝ている
		IF CFLAG:CHARA:수면
			IF TALENT:CHARA:연모 && CFLAG:CHARA:동침중
				PRINTDATA
					DATAFORM %조사처리(CALLNAME:CHARA,"는")% 행복한 미소를 짓고 있다
					DATAFORM %조사처리(CALLNAME:CHARA,"는")% %CALLNAME:MASTER%의 이름을 자그맣게 중얼거렸다
					DATAFORM %조사처리(CALLNAME:CHARA,"는")% 새근새근 자고 있다
					DATAFORM %조사처리(CALLNAME:CHARA,"는")% 무의식 중에 %마스터를% 껴안았다
				ENDDATA
				PRINTW
			ELSE
				PRINTFORM %조사처리(CALLNAME:CHARA,"는")% 자고 있다
			ENDIF
			;굿나잇구상,3,睡眠中
			굿나잇구상 = 3
		;동침중
		ELSEIF TALENT:CHARA:연모 && CFLAG:CHARA:동침중
			IF CFLAG:CHARA:데일리
				PRINTDATA
					DATAFORM %조사처리(CALLNAME:CHARA,"는")% 행복한 미소를 짓고 있다
					DATAFORM %조사처리(CALLNAME:CHARA,"는")% 작게 하품했다
					DATAFORM %조사처리(CALLNAME:CHARA,"는")% 볼을 붉히며 %마스터를% 바라보고 있다
					DATAFORM %조사처리(CALLNAME:CHARA,"는")% 살며시 %CALLNAME:MASTER%에게 밀착했다
				ENDDATA
				PRINTW
				;굿나잇구상,2,眠そうにしている
				굿나잇구상 = 2
				ELSE
					PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% 졸다가 결국 잠들었다…
				;굿나잇구상,9,寝室に居る状態でその場で寝る
				굿나잇구상 = 9
			ENDIF
		;자러갈 곳
		ELSEIF CFLAG:CHARA:현재위치 == CFLAG:CHARA:전턴위치
			IF CFLAG:CHARA:데일리
				PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% 졸린 눈치다
				;굿나잇구상,2,眠そうにしている
				굿나잇구상 = 2
			ELSE
				IF CFLAG:CHARA:쇠약
					PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% 피곤하다고 하고、누웠다
					;굿나잇구상,5,衰弱して寝る
					굿나잇구상 = 5
				ELSE
					PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% 졸음에 져서、잠이 들었다…
					;굿나잇구상,9,寝室に居る状態でその場で寝る
					굿나잇구상 = 9
				ENDIF
			ENDIF
			SIF !침실허가(CHARA)
				CALL 침실로부터내쫓아(CHARA)
		ELSE
			PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% 졸린 눈치다
			CALL 침실로부터내쫓아(CHARA)
			;굿나잇구상,2,眠そうにしている
			굿나잇구상 = 2
		ENDIF
		;은밀중 세트
		SIF CFLAG:MASTER:현재위치 != CFLAG:MASTER:전턴위치
			CALL SET_SNEAK(1, CHARA, 1)
	;자지 않은 경우
	ELSEIF 수면시간(CHARA) && CFLAG:MASTER:현재위치 == CFLAG:CHARA:현재위치 && CFLAG:CHARA:현재위치 == CFLAG:CHARA:전턴위치 && !TCVAR:CHARA:휴식중
		IF CFLAG:CHARA:신사거주
			CALL SLEEP_RESIDENT(CHARA)
		ELSE
			CALL SLEEP_VISITOR(CHARA)
		ENDIF
		표시끝 = 1
	;상대가 자기 방에 돌아간다
	ELSE
		;굿나잇구상,1-0,自室に帰って寝る
		굿나잇구상 = 1
	ENDIF
	;굿나잇구상or귀가구상
	IF (CFLAG:MASTER:현재위치 == CFLAG:CHARA:현재위치 || (수면시간(CHARA) && CFLAG:CHARA:현재위치 == CFLAG:CHARA:신사거주)) && !표시끝
		IF CFLAG:CHARA:신사거주 || CFLAG:MASTER:현재위치 == OMANEKIBEYA() || TCVAR:CHARA:휴식중
			CALL KOJO_MESSAGE_SEND("EVENT", 3, CHARA, 굿나잇구상)
		ELSE
			귀가구상 = 1
			SIF CHK_DATENOW(CFLAG:데이트중)
				귀가구상 = 2
			CALL KOJO_MESSAGE_SEND("EVENT", 20, CHARA, 귀가구상)
		ENDIF
	ENDIF
	IF BASE:MASTER:잠복율 > 0
		SIF CFLAG:CHARA:우후후
			CALL ENDUFUFU_ALL
	ELSEIF !CFLAG:CHARA:수면
			CALL ENDUFUFU_ALL
	ENDIF
ENDIF

;연회중에 잔 캐릭터는 연회 플래그가 빗나간다
IF GROUPMATCH(CFLAG:CHARA:직종, 48, 49, 50, 51)
	CFLAG:CHARA:연회참가 = 0
	CFLAG:CHARA:직종 = 0
	CFLAG:CHARA:행동 = 0
	BASE:CHARA:일량 = 0
ENDIF
SIF BASE:CHARA:일량 <= 0 && CFLAG:CHARA:행동 == 5
	CALL CHARA_JOBEND(CHARA)
;업무중 쓰러지면 일종료
IF CFLAG:CHARA:쇠약 && CFLAG:CHARA:행동 == 5
	CFLAG:CHARA:행동 = 0
	BASE:CHARA:일량 = 0
ENDIF

;자기 방에서 잘 수 있도록 돌아간다
IF CFLAG:CHARA:현재위치 != CFLAG:CHARA:초기위치 && !CFLAG:CHARA:수면 && !CFLAG:CHARA:출금
	IF CFLAG:MASTER:현재위치 == CFLAG:CHARA:초기위치
		CFLAG:CHARA:현재위치 = CFLAG:CHARA:초기위치
		PRINTFORML %조사처리(CALLNAME:CHARA,"가")% 방에 돌아왔다
		IF 침실허가(CHARA)
			;굿나잇구상,7-0,そのまま寝た
			굿나잇구상2 = 0
			IF CFLAG:MASTER:우후후
				LOCAL = FINDCHARA(CFLAG:우후후, CFLAG:MASTER:우후후, 1)
				IF BASE:MASTER:잠복율 > 0
					SIF CFLAG:CHARA:우후후
						CALL ENDUFUFU_ALL
				ELSE
					CALL ENDUFUFU_ALL
				ENDIF
				인수 = RESULT
				PRINTFORML 입술을 삐죽이는 %CALLNAME:CHARA%에게 %마스터는% 마지못해 %CALLNAME:TARGET%\@ 인수 > 1 ?  멀리  #  \@떠났다
				;굿나잇구상,7-2,他キャラとのＨを止めさせて寝た
				굿나잇구상2 = 2
			ENDIF
			PRINTL
			CALL 자고일어나기갈아입음(CHARA)
			CALL KOJO_MESSAGE_SEND("EVENT", 3, CHARA, 7, 굿나잇구상2)
		ELSE
			CALL 침실로부터내쫓아(CHARA)
		ENDIF
	ENDIF

	;잠옷에 갈아 입을 옷
	CALL CTRL_CLOTHES_SET(CHARA, "현재 의상의 변경_파자마")
	CALL 속옷확인리셋(CHARA)
	CALL CLOTHES_SETTING_TRAIN(CHARA)
ENDIF

;자기 방에서 잔다
IF !TCVAR:CHARA:휴식중
	CFLAG:CHARA:현재위치 = CFLAG:CHARA:초기위치
	DEBUGPRINTFORML %CALLNAME:CHARA%(은)는 {TIME}에 {CFLAG:CHARA:초기위치}에서 잤어
ENDIF

;施錠, 자물쇠를 채워 문을 잠금
SIF GET_MAPID(CFLAG:CHARA:초기위치) == MAIN_MAP && CFLAG:MASTER:초기위치 != CFLAG:CHARA:초기위치
	LOCK:(CFLAG:CHARA:초기위치) = 1
CFLAG:CHARA:동행 = 0
CALL SET_SLEEP(1,CHARA,0)
SIF CFLAG:CHARA:수면
	CALL SET_DERAY(99,CHARA)

;FileName_SLEEP.ERB ----------------------------- Rev1. 00
;캐릭터 기상 처리
;CALL		USER
;ARG		0:캐릭터 NO, 1:자물쇠를 채워 문을 잠금 해제 유무, 2:수면간으로부터의 기상인가 어떤가
;기상장소 수치 1이라면 동거(同棲), 수치 0이라면 비동거(同棲)
;RETURN		VOID
;COMMENT
;-----------------------------------------------------------
@CHARA_AWAKE, ARG,ARG:1,ARG:2
#DIM 기상장소
기상장소 = 0
IF CFLAG:ARG:수면 && CFLAG:ARG:현재위치 == CFLAG:MASTER:현재위치 && CFLAG:ARG:기상시간 <= TIME
	SIF ARG > 0 && !CFLAG:MASTER:수면 && !ARG:2
		PRINTFORMW %조사처리(CALLNAME:ARG,"가")% 깼다
	TCVAR:ARG:수면심도 = 0
	;수면간으로부터의 기상이라면 패스
	IF !ARG:2
		IF !IS_LOVER(ARG)
			PRINTFORML %마스터는% %조사처리(CALLNAME:ARG,"가")% 옷을 다 갈아입을 때까지 일단 밖으로 내쫓겼다
			;안녕 말
			IF !CFLAG:ARG:안면
				CALL KOJO_MESSAGE_SEND("ENCOUNTER",0,ARG,2,0)
			ELSEIF !ARG:1 && !CFLAG:MASTER:수면
				CALL KOJO_MESSAGE_SEND("EVENT",2,ARG,4,0)
			ENDIF
		ELSE
			SIF CFLAG:MASTER:초기위치 == CFLAG:ARG:초기위치
				기상장소 = 1
			;안녕 말
			IF !CFLAG:ARG:안면
				CALL KOJO_MESSAGE_SEND("ENCOUNTER",0,ARG,2,0)
			ELSEIF !ARG:1 && !CFLAG:MASTER:수면
				CALL KOJO_MESSAGE_SEND("EVENT",2,ARG,4,기상장소)
			ENDIF
			IF GETBIT(CFLAG:ARG:갈아입음실행, 1) && !CFLAG:MASTER:수면
				CALL 자고일어나기갈아입음(ARG)
			ENDIF
		ENDIF
		;修正前。
		;CALL CTRL_CLOTHES_SET(ARG, "現在衣装の変更_普段着")
		;CALL 下着確認リセット(ARG)
		;CALL CLOTHES_SETTING_TRAIN(ARG)
	ENDIF
ENDIF
;memo 開発者向けメモ
;上の処理は、同時刻でプレイヤーとキャラクターが一緒にいたときの対処のため
;上記の書き方だと、もともと寝ていたけど起床したパターンでの服の着替え（具体的にはバニー）は対処できなかったものと思われる
;見た限り、起床時に着替える処理は他で似たような処理はやっていないように見受けられたため、IF文の外に出して対処。
;ただ、着替えの処理は他でもやっているため、コレで良いかはちょっと判断がつかないです。
;とりあえず、バグらそうなことだけは確認しています。
IF SPECIAL_OUTFIT(ARG)
	CALL CTRL_CLOTHES_SET(ARG, "현재 의상의 변경_의상세트", SPECIAL_OUTFIT(ARG))
	[IF_DEBUG]
	PRINTFORML %ARG는% 평소와 다른 옷으로 갈아입었습니다
	[ENDIF]
	TCVAR:ARG:어나더_평상복 = 1
ELSE
	CALL CTRL_CLOTHES_SET(ARG, "현재 의상의 변경_평상복")
ENDIF
CALL 속옷확인리셋(ARG)
CALL CLOTHES_SETTING_TRAIN(ARG)

;데일리 SET
IF CFLAG:ARG:수면
	CALL SET_DERAY(2,ARG)
ENDIF

CALL SET_SLEEP(0,ARG,0)

;각 플래그 OFF
CALL SET_PRANK(0,ARG,2)
CALL SET_SNEAK(0,ARG,2)
;CALL SET_TOGETHER(0,ARG,0)
;자물쇠를 채워 문을 잠금
SIF ARG:1 == 0 && GET_MAPID(CFLAG:ARG:초기위치) == MAIN_MAP
	LOCK:(CFLAG:ARG:초기위치) = 0

;-----------------------------------------
;거점 캐릭터가 자는 처리
;-----------------------------------------
@SLEEP_RESIDENT(ARG)
IF CHK_DATENOW(CFLAG:ARG:데이트중)
	PRINTFORML %조사처리(CALLNAME:ARG,"가")% 졸린 눈치라 귀가합니다
	CALL SET_DATE(99, ARG)
	CALL 귀가의시간경과
	CFLAG:ARG:현재위치 = CFLAG:ARG:신사거주
	TCVAR:ARG:휴식중 = 1
	IF TALENT:ARG:연모 && MAP_CAN_MOVE(CFLAG:ARG:신사거주, MASTER)
		CFLAG:MASTER:현재위치 = CFLAG:ARG:신사거주
	ELSE
		CFLAG:MASTER:현재위치 = CFLAG:MASTER:초기위치
	ENDIF
	;굿나잇구상,1-1,デート中に帰って寝る
	CALL KOJO_MESSAGE_SEND("EVENT", 3, ARG, 1, 1)
ELSEIF AT_HOME(MASTER) && CFLAG:ARG:쇠약 && CFLAG:MASTER:현재위치 == CFLAG:ARG:현재위치
	PRINTFORM %ARG를%
	PRINTFORMS NAME_FROM_PLACE(CFLAG:ARG:현재위치)
	PRINT 에서
	PRINTFORMS NAME_FROM_PLACE(CFLAG:ARG:초기위치)
	PRINTW 로 옮겼습니다
	CFLAG:ARG:현재위치 = CFLAG:ARG:신사거주
	IF 침실허가(ARG) && MAP_CAN_MOVE(CFLAG:ARG:신사거주, MASTER)
		CFLAG:MASTER:현재위치 = CFLAG:ARG:신사거주
	ELSE
		CFLAG:MASTER:현재위치 = CFLAG:MASTER:초기위치
	ENDIF
	TCVAR:ARG:휴식중 = 1
	;굿나잇구상,5,衰弱して寝る
	CALL KOJO_MESSAGE_SEND("EVENT", 3, ARG, 5)
ELSEIF CFLAG:ARG:현재위치 != CFLAG:ARG:초기위치
	PRINTFORM %조사처리(CALLNAME:ARG,"는")%
	PRINTFORMS NAME_FROM_PLACE(CFLAG:ARG:현재위치)
	PRINT 에서
	PRINTFORMS NAME_FROM_PLACE(CFLAG:ARG:초기위치)
	PRINTW 로 돌아왔습니다
	CFLAG:ARG:현재위치 = CFLAG:ARG:신사거주
	TCVAR:ARG:휴식중 = 1
	;굿나잇구상,1-0,自室に帰って寝る
	CALL KOJO_MESSAGE_SEND("EVENT", 3, ARG, 1, 0)
ENDIF

;-----------------------------------------
;내방 캐릭터가 자는 처리
;-----------------------------------------
@SLEEP_VISITOR(ARG)
IF CHK_DATENOW(CFLAG:ARG:데이트중) && CFLAG:MASTER:현재위치 != OMANEKIBEYA()
	PRINTFORMW %조사처리(CALLNAME:ARG,"는")% \@ CFLAG:ARG:쇠약 ? 지쳤다 # 졸리다 \@며 돌아갔습니다
	CFLAG:MASTER:동행 = 0
	CFLAG:ARG:동행 = 0
	FLAG:데이트상대 = 0
	TFLAG:데이트전호감도 = 0
	;일상 ON
	TFLAG:102 = 1
	;삽입해제
	TFLAG:MASTER의P삽입중 = 0
	;귀가구상,2,デート中帰宅
	CALL KOJO_MESSAGE_SEND("EVENT", 20, ARG, 2)
ELSEIF TALENT:ARG:연모 && AT_HOME(MASTER) && CFLAG:MASTER:현재위치 == CFLAG:ARG:현재위치
	;眠い
	IF 수면시간(ARG) && !CFLAG:ARG:쇠약
		;귀가구상,1,通常帰宅
		CALL KOJO_MESSAGE_SEND("EVENT", 20, ARG, 1)
	;疲れた
	ELSE
	PRINTFORML %조사처리(CALLNAME:ARG,"는")% 녹초가 되었다…
	CALL ASK_YN(@"%NAME_FROM_PLACE(GET_ENTRANCE(MAIN_MAP))%까지 바래다줄게","잠깐 쉬다 가")
	IF RESULT == 0
		CFLAG:MASTER:현재위치 = GET_ENTRANCE(MAIN_MAP)
			CALL 거점에서돌아간다(ARG)
	ELSE
		PRINTFORM %CALLNAME:ARG%를
		PRINTFORMW %NAME_FROM_PLACE(Default초기위치)%로 옮겼습니다
		CFLAG:ARG:현재위치 = Default초기위치
		TCVAR:ARG:휴식중 = 1
		CFLAG:MASTER:현재위치 = Default초기위치
		SIF Default초기위치 == P54난쟁이벌레통 && TALENT:MASTER:체형 > -5
			CFLAG:ARG:현재위치 = P10툇마루
			;굿나잇구상,8,ちょっと休んでいきなよ
			CALL KOJO_MESSAGE_SEND("EVENT", 3, ARG, 8)
		ENDIF
	ENDIF
ELSEIF CFLAG:MASTER:현재위치 == OMANEKIBEYA()
	IF CFLAG:MASTER:장난 == 2
		PRINTFORMW %CALLNAME:ARG%에게 너무 무리한 것 같으니, 눈을 뜨기 전에 철수하자
	ELSE
		PRINTFORMW %조사처리(CALLNAME:ARG,"는")% 지쳤다며 드러누웠습니다
	ENDIF
	TCVAR:ARG:휴식중 = 1
	;굿나잇구상,5,疲れたと言って、横になりました
	CALL KOJO_MESSAGE_SEND("EVENT", 3, ARG, 5)
ELSE
	CALL 거점에서돌아간다(ARG)
ENDIF

;-----------------------------------------
;방문 캐릭터가 거점에서 돌아와 자는 처리
;-----------------------------------------
@거점에서돌아간다(ARG)
IF IN_HOME(CFLAG:ARG:현재위치)
	PRINTFORMW 피곤해진 %조사처리(CALLNAME:ARG,"는")% 돌아갔습니다
	;귀가구상,10,疲れて帰宅
	CALL KOJO_MESSAGE_SEND("EVENT", 20, ARG, 10)
	CFLAG:ARG:거점내방 = 0
ELSE
	PRINTFORMW 졸린 %조사처리(CALLNAME:ARG,"는")% 자기 방으로 돌아갔습니다
	;おやすみ口上,10,拠点外のキャラが自宅前で帰って寝る
	CALL KOJO_MESSAGE_SEND("EVENT", 3, ARG, 10)
ENDIF
CFLAG:ARG:현재위치 = CFLAG:ARG:초기위치

;-----------------------------------------
;침실에 들어갈수 있는지
;쫓겨나지않는다 = 쫓겨나지 않는지 여부
;-----------------------------------------
@침실허가(ARG, 쫓겨나지않는다)
#DIM 쫓겨나지않는다
#FUNCTION
;ブチギレ中は許可を貰えない
SIF CFLAG:ARG:빡침
	RETURNF 0
;恋慕or愛欲
SIF IS_LOVER(ARG)
	RETURNF 1
;開発済み
SIF EXP:ARG:수면간경험 > 300
	RETURNF 1
;複数のキャラが寝室を使ってる
SIF 공통침실(ARG)
	RETURNF 1
IF 쫓겨나지않는다
	;縛られてる(強制）
	SIF TEQUIP:ARG:밧줄
		RETURNF 1
	;うふふ中
	SIF CFLAG:ARG:우후후 == 1
		RETURNF 1
	;イタズラ中
	SIF CFLAG:ARG:장난
		RETURNF 1
	;一時滞在中
	SIF FLAG:일시체재 == ARG
		RETURNF 1
	;夜這い侵入成功中
	SIF GETBIT(CFLAG:ARG:요바이, 8)
		RETURNF 1
	;お招き部屋の中
	SIF CFLAG:ARG:현재위치 == OMANEKIBEYA()
		RETURNF 1
ENDIF

;-----------------------------------------
; 1개의 방을 여러 캐릭터가 침실로 사용하는 경우
;그 중 어떤 캐릭터가 연모 or 애욕이라면 침실의 허가를 얻을 수 있다.
;릴리 W&B, 아키자매, 청아와 요시카가 해당 (구영몽의 방 처리)
;-----------------------------------------
@공통침실(ARG)
#FUNCTION
SIF CFLAG:ARG:초기위치 == 99
	RETURNF 0
SIF CFLAG:ARG:초기위치 == SUKIMA()
	RETURNF 0

FOR LOCAL, 1, CHARANUM
	SIF LOCAL == ARG
		CONTINUE
	IF CFLAG:LOCAL:초기위치 == CFLAG:ARG:초기위치
		SIF IS_LOVER(LOCAL)
			RETURNF 1
	ENDIF
NEXT


code:
;--------------------------------------------------
;맵의 함수명
;--------------------------------------------------
@MAP_VIEWING_NAME_0
#FUNCTIONS
RETURNF "HAKUREI"

;--------------------------------------------------
;맵의 묘화
;--------------------------------------------------
@MAP_HAKUREI_1(AA)
#DIMS REF AA, 0
AA:00 = ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■#B#B#B#B#B
AA:01 = ■林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林■#B#B　#B#B
AA:02 = ■γ⌒ヽ石■■■■■■　　　　　　　　　　■■■　　　林林林木林林■　◆三◆
AA:03 = ■ゝ＿ノ　#A목욕■　■□□○　　　　　　　■06■　　　　　木56木林■　◆#C◆
AA:04 = ■ｖ　　　■ 13 │12■■■■■■■■■　　　￣　　　　　　　木林林■　　36
AA:05 = ■林ｖ　　■■■■─■└┘　　봉당　│　　　　　　　　　　　　　林■
AA:06 = ■林　　　■14│　　│ 08 　　 07 　■　　　　　　　　　　┏━┓　■
AA:07 = ■林　　　■■■　　■──■─■■■■　　■■■■■■　　　05　　■
AA:08 = ■林　　　　　||　　│54　　　■□□■　　■　　　　■　　　　　　■回
AA:09 = ■林#a　　　　||　　│。　　　│ 53 ■　　■　□□　■　　　狛　　●┳回
AA:10 = ■林#b　　　　||　　■　　　　■■■■ 20 ■□　　□■■　　　　　　┃┳回
AA:11 = ■林#c　　　　||　　│　거실　│ 17 ■　　■　 04 　||目03　 02 　01┃┃┳
AA:12 = ■林#d　11　　|| 10 │　 09 　■□□■　　■□　　□■■　　　　　　┃┃┃
AA:13 = ■林　　　　　||　　■　　　　■■■■　　■　□□　■　　　狛　　●┻┃┃22#p
AA:14 = ■林　　　　　||　　│　　　　■일본■　　■　　　　■　　　　　　■回┻┃
AA:15 = ■林　　　　　||　　│　　　　│식방■　　■■■■■■　　　　　　■　回┻
AA:16 = ■林■─■　　■─■■■──■■ 55 ■　　　　　　　　　　ｘ　　　■　　回
AA:17 = ■林■52■　　■　□■ 레이무 ■■■■　　　　　　　　　／守＼　　■
AA:18 = ■林■■■　　■19□■　 15 　│18■　　　〓─■　　　　| ☆ |　　■森　25　森
AA:19 = ■林林林　　　■■■■■■■■■■■　　　〓16〓　　　　￣21￣　林■森森　森森
AA:20 = ■林林林林　　　　　　　　　　　　　　　　＼〓／　　　　　　　林林■森森森森森
AA:21 = ■林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林■森森森森森
AA:22 = ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■森森森森森

;ボロ小屋
IF FLAG:더부살이캐릭터
	AA:18 = 　■林■■■　　■19□■　 15 　│18■　　　　■─■　　　| ☆ |　　■森　25　森
	AA:19 = 　■林林林　　　■■■■■■■■■■■　　　　■16■　　　￣21￣　林■森森　森森
	AA:20 = 　■林林林林　　　　　　　　　　　　　　　　　■■■　　　　　林林■森森森森森
ENDIF

;夢幻遺跡
@MAP_HAKUREI_2(AA)
#DIMS REF AA, 0
AA:00 = 　【일층】　　■■■■■■■■■■■■　　　｜　【이층】
AA:01 = 　　　　　　■　　　■┣46┫■　　　■■　　｜　　　　　■■■■■■■■■
AA:02 = 　　　　　■ 유메미 ■┣━┫■ 식당 □　■　｜　　　　■ 일 ■　　　■ 이 ■
AA:03 = 　　　　■　　 43 　■┣━┫■　41　□42■　｜　　　□■ 48 ■┣37┫■ 50 ■■
AA:04 = 　　　■■　　　　　■　　　■　　　　　■　｜　　□　■■─■￣￣￣■─■■　■
AA:05 = 　　■■■■■─■■■　　　■■─■■■■　｜　□　　■　　　　　　　　■창고■
AA:06 = 　■■■■　　　　　　　37　　　　　　　■　｜□　47　│　　　　46　　　│ 51 ■
AA:07 = 　　■■■■■─■■■　　　■■─■■■■　｜　□　　■　　　　　　　　■　　■
AA:08 = 　　　■■　　　　　■○　○■　　38　　■　｜　　□　■■─■■─■■─■■　■
AA:09 = 　　　　■　 치유리 ■　　　■■─■■─■　｜　　　□■　　　연구실　　　■■
AA:10 = 　　　　　■　 44 　■○　○■ 욕실 ■40■　｜　　　　■　　　　49　　　　■
AA:11 = 　　　　　　■　　　■　　　■　39　■■　　｜　　　　　■■■■■■■■■
AA:12 = 　　　　　　　■■■■■─■■■■■■　　　｜
AA:13 = 　　　　　　　　　　　◆三◆　　　　　　　　｜
AA:14 = 　　　　←참배길22　　　36　　　　　　　　　｜
AA:15 = 　　　　　　　　　　　　　　　　　　　　　　｜

;三妖精の家
@MAP_HAKUREI_3(AA)
#DIMS REF AA, 0
AA:00 = 　　　　 【이층】 　　　｜　　　 【일층】 　　　｜　　　 【지하】
AA:01 = 　　　　　　　　　　　　｜　　　　　　　　　　　｜
AA:02 = 　　　　■■■■■　　　｜　　　■┣━┫■　　　｜
AA:03 = 　　　■■┣━┫■■　　｜　　■■┣━┫■■　　｜　　■■┣━┫■■
AA:04 = 　　■■■￣￣￣■■■　｜　■■□￣￣￣　■■　｜　■■□┣━┫○■■
AA:05 = 　■■　■　　　■　■■｜■■　□　　　■■■■｜　■○　　　　□□■
AA:06 = 　■스타■　　　■서니■｜■　　□　　　■　　■｜　■□　　　　　　■
AA:07 = 　#F 34 │　31　│ 32 #D｜■　29　　27　│ 30 ■｜　■　　　35　　　■
AA:08 = 　■　　■　　　■　　■｜■　　□　　　■　　■｜　■　　　　　　○■
AA:09 = 　■■■■■─■■■■■｜■■　□　　　■□□■｜　■□○○　　□□■
AA:10 = 　　■■　 루나 　■■　｜　■■■■　■■■■　｜　■■□□□□○■■
AA:11 = 　　　■■　33　■■　　｜　　■■　　　■■　　｜　　■■■■■■■
AA:12 = 　　　　■■#E■■　　　｜森　　■■─■■　　森｜
AA:13 = 　　　　　　　　　　　　｜森森　　　　　　　森森｜
AA:14 = 　　　　　　　　　　　　｜森森森森　25　森森森森｜

;博麗神社周辺
@MAP_HAKUREI_4(AA)
#DIMS REF AA, 0
AA:00 = 森森森森森森森森森森森森森森森森森森森森森森森森森森森森
AA:01 = 森森森森森森森森森森森森森森森森森森森　　　　森森森森森
AA:02 = 森森森森森森森森森森森森森森森森森森　＿□□□＿森森森森
AA:03 = 森森森森森森森森森森森森森森森森森森　#H＿＿Π#I　森森森
AA:04 = 森森森森森森森■■■■■■■■■森森森　　　36　　森森森
AA:05 = 森森　　 ､森森■林林林林林林林■森森森森森　　　森森森森
AA:06 = 森 //X//X/X 森■　■■　　　#G●　　　　　　　　　森森森
AA:07 = 森ヾ/v/X//ﾉ 森■　■■　■　01　　 22 　　　　　　　#p
AA:08 = 森 #J|　y 　森■　■■　　　#G●　　　　　　　　　森森森
AA:09 = 森　 |#K|ゞ 森■林林林林林林林■森　　森森森森森森森森森
AA:10 = 森　 "27` 　森■■■■■■■■■森　　森森森森森森森森森
AA:11 = 森森　　　森森森森森■ 24 │23│　　　森森森森森森森森森
AA:12 = 森森　　　森森森森森■ ♨ ■■■森　　森森森森森森森森森
AA:13 = 森森森　森森森森森森■■■■森森森　　森森森森森森森森森
AA:14 = 森 森 森 森 森 森 森 森 森 森 森　 25 　森森森森森森森森　24:온천
AA:15 = 森森 森 森 森 森 森 森 森 森 森 森　　森森森森森森森森森　27:삼요정의 집
AA:16 = 森森森森森森森森森森森森森森森森森森森森森森森森森森森森　36:몽환유적
AA:17 = 森森森森森森森森森森森森森森森森森森森森森森森森森森森森　49:연구실

@ODEKAKEMAP_0(AA)
#DIMS REF AA, 0
AA:00 = 森森森森森森森森森森森森森森森森森森森森森森森森森森森森森森森森森森
AA:01 = 森森森森森森森森森森森森森森森森森森森森森森森森森森森　　　　森森森
AA:02 = 森森森森森森森■■■■■■■■■■■■■■■■森森森　＿□□□＿森森
AA:03 = 森森森森森森森■林林林林林林林林林林林林林林■森森森　#H＿＿Π#I　森
AA:04 = 森森森森森森森■　■■■　　　　　　　　　　■森森森森　　06　　　森
AA:05 = 森森森森森森森■　■　■　　　　　　　　　　■森森森森森森森　　森森
AA:06 = 森森森森森森森■　■　■　　■■■　　　狛　●　　　　　　　　　　森
AA:07 = 森森　　 ､森森■　■　||　　■03目　 02 　　01
AA:08 = 森 //X//X/X 森■　■　||04　■■■　　　狛　●　　　　　　　　　　森
AA:09 = 森ヾ/v/X//ﾉ 森■　■■■　　　　　　　　　　■森　　森森森森森森森森
AA:10 = 森 #J|　y 　森■　　　　　　　　　　　　　　■森　　森森森森森森森森
AA:11 = 森　 |#K|ゞ 森■林林林林林林林林林林林林林林■森　　森森森森森森森森
AA:12 = 森　 "05` 　森■■■■■■■■■■■■■■■■森　　森森森森森森森森
AA:13 = 森森森　森森森森森森森森森森森森森森森森森森森森　　森森森森森森森森
AA:14 = 森 森 森 森 森 森 森 森 森 森 森 森 森 森 森　　　　　森森森森森森森
AA:15 = 森森 森 森 森 森 森 森 森 森 森 森 森 森 森 森　　　森森森森森森森森
AA:16 = 森森森森森森森森森森森森森森森森森森森森森森森森森森森森森森森森森森

;--------------------------------------------------
;착색과 치환
;--------------------------------------------------
@DRAW_MAP_BG_0(SLICED)
#DIMS SLICED
#DIM CONST C_MUGEN = 0x4d5aaf
SELECTCASE SLICED
;▼着色
CASE "ｖ"
	SETCOLOR C_PLANT
	PRINTS SLICED
	RESETCOLOR
CASE "林", "木"
	SETCOLOR C_FOREST1
	PRINTS SLICED
	RESETCOLOR
CASE "森"
	SETCOLOR C_FOREST2
	PRINTS SLICED
	RESETCOLOR
CASE "■", "│", "─", "┐", "┌", "└", "┘", "￣", "／", "＼", "ｘ", "目"
	SELECTCASE TFLAG:맵변환
	CASE 2
		SETCOLOR C_MUGEN
	CASEELSE
		SETCOLOR C_WOOD1
	ENDSELECT
	PRINTS SLICED
	RESETCOLOR
CASE "□", "○", "┏", "┓", "┗", "┛", "〓"
	SELECTCASE TFLAG:맵변환
	CASE 2
		SETCOLOR 0x706caa
	CASE 4, 0
		SETCOLOR C_MUGEN
	CASEELSE
		SETCOLOR C_WOOD2
	ENDSELECT
	PRINTS SLICED
	RESETCOLOR
CASE "|"
	SETCOLOR C_WOOD2
	PRINTS SLICED
	RESETCOLOR
CASE "γ", "⌒", "ヽ", "ゝ", "＿", "ノ"
	SELECTCASE TFLAG:맵변환
	CASE 4, 0
		SETCOLOR C_MUGEN
	CASEELSE
		SETCOLOR C_AQUA
	ENDSELECT
	PRINTS SLICED
	RESETCOLOR
CASE "石", "狛", "回", "┃", "┳", "┻", "┣", "┫"
	SELECTCASE TFLAG:맵변환
	CASE 3
		SETCOLOR C_WOOD2
	CASEELSE
		SETCOLOR C_STONE1
	ENDSELECT
	PRINTS SLICED
	RESETCOLOR
CASE "━"
	SELECTCASE TFLAG:맵변환
	CASE 2
		SETCOLOR C_STONE1
	CASEELSE
		SETCOLOR C_WOOD2
	ENDSELECT
	PRINTS SLICED
	RESETCOLOR
CASE "☆"
	SETCOLOR C_L_GREEN
	PRINTS SLICED
	RESETCOLOR
CASE "三"
	SETCOLOR C_MUGEN
	PRINTS SLICED
	RESETCOLOR
CASE "。"
	SETCOLOR 0xec6d71
	PRINTS SLICED
	RESETCOLOR
CASE "◆", "Π"
	SETCOLOR C_MUGEN
	PRINTS SLICED
	RESETCOLOR
CASE "●"
	SETCOLOR C_TORII
	PRINTS SLICED
	RESETCOLOR
CASE "♨"
	SETCOLOR 0x59b9c6
	PRINTS SLICED
	RESETCOLOR
CASE "/", "X", "ヾ", "v", "ﾉ", "､"
	SETCOLOR C_FOREST1
	PRINTS SLICED
	RESETCOLOR
CASE "\"", "`", "ゞ", "ヽ", "y"
	SETCOLOR C_WOOD2
	PRINTS SLICED
	RESETCOLOR
;▼特殊な表示
CASE "#a", "#b", "#c", "#d", "#e", "#f", "#g", "#h", "#i", "#j", "#k", "#l", "#m", "#n", "#p"
	CALL MAP_PRINT(SLICED)
CASE "#A"
	SETCOLOR C_WINDOW
	PRINT □
	RESETCOLOR
CASE "#B"
	SETCOLOR C_MUGEN
	PRINT ■
	RESETCOLOR
CASE "#C"
	SETCOLOR C_MUGEN
	PRINT ニ
	RESETCOLOR
CASE "#D"
	SETCOLOR C_ORANGE
	PRINT ☀
	RESETCOLOR
CASE "#E"
	SETCOLOR C_YELLOW
	PRINT 🌙
	RESETCOLOR
CASE "#F"
	SETCOLOR 0x2ca9e1
	PRINT ☆
	RESETCOLOR
CASE "#G"
	SETCOLOR C_STONE1
	PRINT □
	RESETCOLOR
CASE "#H"
	SETCOLOR C_MUGEN
	PRINT ＼
	RESETCOLOR
CASE "#I"
	SETCOLOR C_MUGEN
	PRINT ｜
	RESETCOLOR
CASE "#J"
	SETCOLOR C_WOOD2
	PRINT ヽ
	RESETCOLOR
CASE "#K"
	SETCOLOR C_WOOD2
	PRINT Π
	RESETCOLOR
;ふつうの
CASEELSE
	PRINTS SLICED
ENDSELECT


code:
;--------------------------------------------------
;지점명 변경 함수
;--------------------------------------------------
@MAP_PLACENAME_0(ARG)
#FUNCTIONS
IF GET_MAPID(ARG) == MAIN_MAP
	SELECTCASE ARG
		CASE P53창고
			IF CFLAG:MASTER:초기위치 == ARG
				RETURNF CALLNAME:MASTER + "의 창고"
			ELSE
				RETURNF "창고"
			ENDIF
		CASE SUMIKOMI_ROOM
			IF FLAG:더부살이캐릭터
				RETURNF CALLNAME:(FLAG:더부살이캐릭터) + "의 오두막"
			ELSE
				RETURNF "낡은 오두막"
			ENDIF
		CASE MINROOM() TO (MAXROOM - 1)
			RETURNF STR:(ARG + 8000)
		CASE OMANEKIBEYA()
			RETURNF OMANEKI_PLACE()
		CASE SUKIMA()
			RETURNF "스키마 공간"
		CASE MAXROOM
			RETURNF "참배길 저편"
		CASEELSE
			RETURNF "불명"
	ENDSELECT
ELSE
	RETURNF "신사 밖"
ENDIF

;--------------------------------------------------
;장소 ARG가 어느 지역에 있는지
;표시하는 맵의 번호와 연동 (TFLAG:맵변환)
;ARG     장소ID
;--------------------------------------------------
@MAP_AREASELECT_0(ARG)
#FUNCTION
SELECTCASE ARG
	;삼요정의 집
	CASE P27삼요정의집・객실 TO P35삼요정의집・지하실
		RETURNF 3
	;몽환유적
	CASE P36몽환유적앞 TO P51몽환유적・창고
		RETURNF 2
	;신사주변
	CASE P22참배길 TO P25수호신의숲
		RETURNF 4
	;하쿠레이 신사
	CASEELSE
		RETURNF 1
ENDSELECT

;--------------------------------------------------
;내부구조가 있는 장소의 내부 판정
;		TFLAG:맵변환	내부감지(察知)가 필요한 맵 번호
;				P_ID  	표시버튼의 장소ID
;				Q_ID  	판정하는 내부 장소ID, 반드시 P_ID와 일치하는 수치도 포함
;--------------------------------------------------
@GETMAP_BUILDING_0(P_ID, Q_ID)
#FUNCTION
#DIM P_ID
#DIM Q_ID
IF TFLAG:맵변환 == 4
	SELECTCASE P_ID
		;三妖精の家
		CASE P27삼요정의집・객실
			SELECTCASE Q_ID
			CASE P27삼요정의집・객실 TO P35삼요정의집・지하실
				RETURNF 1
			ENDSELECT
		;몽환유적
		CASE P36몽환유적앞
			SELECTCASE Q_ID
			CASE P36몽환유적앞 TO P51몽환유적・창고
				RETURNF 1
			ENDSELECT
	ENDSELECT
ENDIF
RETURNF 0

;--------------------------------------------------
;이동제한설정
;ARG    장소ID
;CHARA  이동하는 캐릭터ID
;RETURNF 1=이동 가능, 0=이동 불가능
;TFLAG:이동불능메시지   ↓の@MAP_CANNOT_WORD용 설정
;--------------------------------------------------
@MAP_CAN_MOVE_0(ARG, CHARA)
#FUNCTION
#DIM CHARA
SELECTCASE ARG
	;虫かご
	CASE P54난쟁이벌레통
		;小人じゃないと入れない
		IF TALENT:CHARA:체형 > -5
			TFLAG:이동불능메시지 = 2
			RETURNF 0
		ENDIF
	;三妖精ハウス
	CASE P27삼요정의집・객실 TO P35삼요정의집・지하실
		;妖精なら入れる
		SIF TALENT:CHARA:요정
			RETURNF 1
		;中からは動ける
		SIF INRANGE(CFLAG:CHARA:현재위치, P27삼요정의집・객실, P35삼요정의집・지하실)
			RETURNF 1
		;あなたは恋慕か教養LV1以上で入れる
		IF CHARA == MASTER
			IF TALENT:[[서니]]:연모 || TALENT:[[루나]]:연모 || TALENT:[[스타]]:연모 || ABL:CHARA:교양 >= 1
				RETURNF 1
			ELSEIF INRANGE(CFLAG:MASTER:초기위치, P27삼요정의집・객실, P35삼요정의집・지하실)
				RETURNF 1
			ELSE
				TFLAG:이동불능메시지 = 1
				RETURNF 0
			ENDIF
		;それ以外は入れない
		ELSE
			RETURNF 0
		ENDIF
	;몽환유적,あなた以外は教養LV3が必要
	CASE P37몽환유적・1층통로 TO P51몽환유적・창고
		;中からは動ける
		IF INRANGE(CFLAG:CHARA:현재위치, P37몽환유적・1층통로, P51몽환유적・창고)
			RETURNF 1
		ELSEIF ABL:CHARA:교양 <= 2 && CHARA != MASTER
			RETURNF 0
		ENDIF
ENDSELECT
RETURNF 1

;--------------------------------------------------
;이동불능시 표시되는 메시지
;--------------------------------------------------
@MAP_CANNOT_WORD_0(ARG)
SELECTCASE TFLAG:이동불능메시지
	CASE 1
		PRINTFORMW 미숙한 %마스터로%는 찾아낼 수가 없다…
	CASE 2
		PRINTFORMW 도저히 %마스터로%는 들어갈 수 없다
ENDSELECT
CLEARLINE 2
REUSELASTLINE

;-----------------------------------------
;거점 전용의 정경묘사
;WAIT는 걸리지 않도록
;-----------------------------------------
@MAP_UNIQUEMESSAGE_0
SELECTCASE CFLAG:MASTER:현재위치
	CASEELSE
ENDSELECT

;-----------------------------------------
;비자택시 대체 장소ID를 반환하는 함수
;ARG,대상ID
;RETURNF,대체완료 대상ID
;-----------------------------------------
@MAP_SEARCH_REPLACEMENT_0(ARG)
#FUNCTION
SELECTCASE ARG
	CASE P1토리이, P22참배길
		RETURNF 벚꽃길토리이
	CASE P2경내, P5개수대, P6헛간, P20본전뒷편, P21모리야신사분사
		RETURNF 신사경내
	;賽銭箱,本堂
	CASE P3새전함, P4본당
		RETURNF 신사본당
	;三妖精の家
	CASE P27삼요정의집・객실 TO P35삼요정의집・지하실
		RETURNF 요정의큰나무
	;몽환유적
	CASE P36몽환유적앞 TO P51몽환유적・창고
		RETURNF 몽환유적
	CASEELSE
		RETURNF 신사툇마루
ENDSELECT
RETURNF 0

;--------------------------------------------------
;맵의 소개문
;--------------------------------------------------
@MAP소개_0
;일단 5줄
PRINTFORML eratohoTW에 있어서 원조 맵. 여러 가지 설정을 담고 있기 때문에, 신사는 큰 세대를 이루고 있다.
PRINTFORML 신사 외에도 삼요정이 살고 있는 큰 나무와 유메미&치유리가 사는 몽환 유적이 있다.
PRINTFORML 기본적인 시설은 대충 갖추어져 있고, 업무차 방문하는 캐릭터도 많다.
PRINTFORML 또한, 삼요정의 집은 교양이 일정 이상 있어야 들어갈 수 있다.
PRINTFORML 또 모리야 세 명의 신 중 하나와 동행중이라면 분사에서 모리야신사로 워프할 수 있다.


code:
;-----------------------------------------------------------
;지점의 연결 설정
;ARG    기준지점
;ARG:1  대상지점
;RETURNF 0=이동할 수 없다, 보이지 않는다
;        1=이동할 수 있다, 보이지 않는다
;        2=이동할 수 없다, 보인다
;        3=이동할 수 있다, 보인다 (직통)
;-----------------------------------------------------------
@CAN_MOVE_0(ARG, ARG:1)
#FUNCTION
SELECTCASE ARG
	CASE P1토리이
		SIF GROUPMATCH(ARG:1, P2경내, P22참배길)
			RETURNF 3
		SIF ARG:1 == MAXROOM
			RETURNF 2
	CASE P2경내
		SIF GROUPMATCH(ARG:1, P6헛간, P16낡은오두막, P20본전뒷편, P56아운의거처)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P1토리이, P3새전함, P5개수대, P21모리야신사분사)
			RETURNF 3
	CASE P3새전함
		SIF GROUPMATCH(ARG:1, P4본당)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P2경내)
			RETURNF 3
	CASE P4본당
		SIF GROUPMATCH(ARG:1, P3새전함)
			RETURNF 1
	CASE P5개수대
		SIF GROUPMATCH(ARG:1, P2경내)
			RETURNF 3
	CASE P6헛간
		SIF GROUPMATCH(ARG:1, P2경내, P20본전뒷편)
			RETURNF 1
	CASE P7봉당
		SIF GROUPMATCH(ARG:1, P9거실, P20본전뒷편)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P8부엌)
			RETURNF 3
	CASE P8부엌
		SIF GROUPMATCH(ARG:1, P9거실, P10툇마루)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P7봉당)
			RETURNF 3
	CASE P9거실
		SIF GROUPMATCH(ARG:1, P7봉당, P8부엌, P15레이무방, P17작은창고, P53창고, P54난쟁이벌레통, P55일본식방)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P10툇마루)
			RETURNF 3
	CASE P10툇마루
		SIF GROUPMATCH(ARG:1, P8부엌, P12탈의실, P14화장실, P19큰창고, P54난쟁이벌레통)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P9거실, P11마당)
			RETURNF 3
	CASE P11마당
		SIF GROUPMATCH(ARG:1, P20본전뒷편, P52별채)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P10툇마루)
			RETURNF 3
	CASE P12탈의실
		SIF GROUPMATCH(ARG:1, P10툇마루, P13목욕탕)
			RETURNF 1
	CASE P13목욕탕
		SIF GROUPMATCH(ARG:1, P12탈의실)
			RETURNF 1
	CASE P14화장실
		SIF GROUPMATCH(ARG:1, P10툇마루)
			RETURNF 1
	CASE P15레이무방
		SIF GROUPMATCH(ARG:1, P9거실, P17작은창고, P18벽장)
			RETURNF 1
	CASE P16낡은오두막
		SIF GROUPMATCH(ARG:1, P2경내, P20본전뒷편)
			RETURNF 1
	CASE P17작은창고
		SIF GROUPMATCH(ARG:1, P9거실)
			RETURNF 1
	CASE P18벽장
		SIF GROUPMATCH(ARG:1, P15레이무방)
			RETURNF 1
	CASE P19큰창고
		SIF GROUPMATCH(ARG:1, P10툇마루)
			RETURNF 1
	CASE P20본전뒷편
		SIF GROUPMATCH(ARG:1, P6헛간, P7봉당, P11마당, P16낡은오두막)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P2경내)
			RETURNF 3
	CASE P21모리야신사분사
		SIF GROUPMATCH(ARG:1, P2경내)
			RETURNF 3
	CASE P22참배길
		SIF ARG:1 == MAXROOM
			RETURNF 2
		SIF GROUPMATCH(ARG:1, P1토리이, P36몽환유적앞)
			RETURNF 3
		SIF GROUPMATCH(ARG:1, P23온천・탈의실, P25수호신의숲)
			RETURNF 1
	CASE P23온천・탈의실
		SIF GROUPMATCH(ARG:1, P22참배길, P24온천, P25수호신의숲)
			RETURNF 1
	CASE P24온천
		SIF GROUPMATCH(ARG:1, P23온천・탈의실)
			RETURNF 1
	CASE P25수호신의숲
		SIF GROUPMATCH(ARG:1, P22참배길)
			RETURNF 3
		SIF GROUPMATCH(ARG:1, P23온천・탈의실, P27삼요정의집・객실)
			RETURNF 1

	CASE P27삼요정의집・객실
		SIF GROUPMATCH(ARG:1, P25수호신의숲, P30삼요정의집・목욕탕, P31삼요정의집・2층복도, P35삼요정의집・지하실)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P29삼요정의집・부엌)
			RETURNF 3
	CASE P29삼요정의집・부엌
		SIF GROUPMATCH(ARG:1, P27삼요정의집・객실)
			RETURNF 3
	CASE P30삼요정의집・목욕탕
		SIF GROUPMATCH(ARG:1, P27삼요정의집・객실)
			RETURNF 1
	CASE P31삼요정의집・2층복도
		SIF GROUPMATCH(ARG:1, P27삼요정의집・객실, P32서니방, P33루나방, P34스타방)
			RETURNF 1
	CASE P32서니방, P33루나방, P34스타방
		SIF GROUPMATCH(ARG:1, P31삼요정의집・2층복도)
			RETURNF 1
	CASE P35삼요정의집・지하실
		SIF GROUPMATCH(ARG:1, P27삼요정의집・객실)
			RETURNF 1

	CASE P36몽환유적앞
		SIF GROUPMATCH(ARG:1, P22참배길)
			RETURNF 3
		SIF GROUPMATCH(ARG:1, P37몽환유적・1층통로)
			RETURNF 1
	CASE P37몽환유적・1층통로
		SIF GROUPMATCH(ARG:1, P36몽환유적앞, P38몽환유적・세면소, P41몽환유적・식당겸휴게실, P43유메미방, P44치유리방, P46몽환유적・2층통로)
			RETURNF 1
	CASE P38몽환유적・세면소
		SIF GROUPMATCH(ARG:1, P37몽환유적・1층통로, P39몽환유적・욕실, P40몽환유적・화장실)
			RETURNF 1
	CASE P39몽환유적・욕실, P40몽환유적・화장실
		SIF GROUPMATCH(ARG:1, P38몽환유적・세면소)
			RETURNF 1
	CASE P41몽환유적・식당겸휴게실
		SIF GROUPMATCH(ARG:1, P37몽환유적・1층통로)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P42몽환유적・조리실)
			RETURNF 3
	CASE P42몽환유적・조리실
		SIF GROUPMATCH(ARG:1, P41몽환유적・식당겸휴게실)
			RETURNF 3
	CASE P43유메미방, P44치유리방
		SIF GROUPMATCH(ARG:1, P37몽환유적・1층통로)
			RETURNF 1
	CASE P46몽환유적・2층통로
		SIF GROUPMATCH(ARG:1, P37몽환유적・1층통로, P47몽환유적・함교, P48몽환유적・제1자료실, P49몽환유적・연구실, P50몽환유적・제2자료실, P51몽환유적・창고)
			RETURNF 1
	CASE P47몽환유적・함교
		SIF GROUPMATCH(ARG:1, P46몽환유적・2층통로)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P36몽환유적앞)
			RETURNF 2
	CASE P48몽환유적・제1자료실, P49몽환유적・연구실, P50몽환유적・제2자료실, P51몽환유적・창고
		SIF GROUPMATCH(ARG:1, P46몽환유적・2층통로)
			RETURNF 1

	CASE P52별채
		SIF GROUPMATCH(ARG:1, P11마당)
			RETURNF 1
	CASE P53창고, P55일본식방
		SIF GROUPMATCH(ARG:1, P9거실)
			RETURNF 1
	CASE P54난쟁이벌레통
		SIF GROUPMATCH(ARG:1, P9거실, P10툇마루)
			RETURNF 1
	CASE P56아운의거처
		SIF GROUPMATCH(ARG:1, P2경내)
			RETURNF 1
	CASE MAXROOM
		SIF ARG:1 == P22참배길
			RETURNF 1
ENDSELECT
RETURNF 0


code:
;＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
;지점의 속성 설정 (DIM_t.ERH 참조)
;장소_원룸			집주인이 부재중일때 잠기고, 이불・옥내・주방・공부・휴식・음식・Private가 자동 부여
;장소_이불			휴식이 자동으로 부여
;장소_서양식		실내지만 신발을 신은 채, 옥내가 자동으로 부여
;장소_옥내
;장소_지붕			옥외지만 지붕이 있는 곳, 옥내라도 지붕이 없는 경우는 야외판정 (구 창공)
;장소_넓은
;장소_달구경		옥내나 지붕이 있어도 달이 보이는 장소
;장소_휴식
;장소_목욕탕
;장소_화장실
;장소_주방         	집어먹기가 자동으로 부여
;장소_훈련
;장소_공부
;장소_하늘의소리
;장소_텃밭
;장소_물긷기
;장소_신체측정
;장소_빨래너는곳	풍경묘사용
;장소_음식			자유행동 전용
;장소_집어먹기		자유행동 전용
;장소_머물지않는다	캐릭터가 잘 머물지 않는다 (이동하기 쉽다)
;장소_과소			캐릭터가 잘 들어가지 않는다 (이동해오기 어렵다)
;장소_Private		절도 있는 캐릭터는 들어오지 않는다, 주로 개인실과 목욕탕・화장실
;장소_코타츠		자유행동전용
;장소_공공장소		덮치지 않는다
;＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
@ROOMSETTING_0
#DIM ROOM
VARSET ROOMDATA
MAXROOM = 57
ENTRANCE = P22참배길
SUMIKOMI_ROOM = P16낡은오두막
피난처 = P14화장실
SIF GET_MAPID(거점_술벌레) != MAIN_MAP || 거점_술벌레 == 0
	거점_술벌레 = P8부엌
MAP_PAGES = 4
MAPNAME:1 = 하쿠레이 신사
MAPNAME:2 = 몽환유적
MAPNAME:3 = 삼요정의 집
MAPNAME:4 = 신사 주변

CFLAG:[[유카리]]:(450 + MAIN_MAP) = P9거실
CFLAG:[[사나에]]:(450 + MAIN_MAP) = P21모리야신사분사
CFLAG:[[카나코]]:(450 + MAIN_MAP) = P21모리야신사분사
CFLAG:[[스와코]]:(450 + MAIN_MAP) = P21모리야신사분사

FOR LOCAL, MINROOM(), MAXROOM
	ROOM = LOCAL % 100
	SELECTCASE LOCAL
	CASE P1토리이
	CASE P2경내
		ROOMDATA:ROOM |= 장소_넓은
		ROOMDATA:ROOM |= 장소_훈련
	CASE P3새전함
		ROOMDATA:ROOM |= 장소_하늘의소리
		ROOMDATA:ROOM |= 장소_과소
	CASE P4본당
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_과소
	CASE P5개수대
		ROOMDATA:ROOM |= 장소_물긷기
		ROOMDATA:ROOM |= 장소_머물지않는다
	CASE P6헛간
		ROOMDATA:ROOM |= 장소_지붕
		ROOMDATA:ROOM |= 장소_과소
	CASE P7봉당
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_머물지않는다
	CASE P8부엌
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_주방
	CASE P9거실
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_공부
		ROOMDATA:ROOM |= 장소_휴식
		ROOMDATA:ROOM |= 장소_음식
		ROOMDATA:ROOM |= 장소_코타츠
	CASE P10툇마루
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_휴식
		ROOMDATA:ROOM |= 장소_음식
		ROOMDATA:ROOM |= 장소_달구경
		ROOMDATA:ROOM |= 장소_빨래너는곳
	CASE P11마당
		ROOMDATA:ROOM |= 장소_넓은
		ROOMDATA:ROOM |= 장소_훈련
		ROOMDATA:ROOM |= 장소_텃밭
	CASE P12탈의실
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_신체측정
		ROOMDATA:ROOM |= 장소_머물지않는다
		ROOMDATA:ROOM |= 장소_Private
	CASE P13목욕탕
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_목욕탕
		ROOMDATA:ROOM |= 장소_Private
	CASE P14화장실
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_Private
	CASE P15레이무방, P54난쟁이벌레통, P55일본식방, P56아운의거처
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_이불
		ROOMDATA:ROOM |= 장소_Private
	;人が入るとワンルームが付与
	CASE P16낡은오두막
		ROOMDATA:ROOM |= 장소_과소
	CASE P17작은창고, P18벽장, P19큰창고, P53창고
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_이불
		ROOMDATA:ROOM |= 장소_Private
		ROOMDATA:ROOM |= 장소_과소
	CASE P52별채
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_이불
		ROOMDATA:ROOM |= 장소_공부
		ROOMDATA:ROOM |= 장소_Private

	CASE P20본전뒷편
		ROOMDATA:ROOM |= 장소_넓은
		ROOMDATA:ROOM |= 장소_훈련
	CASE P21모리야신사분사
		ROOMDATA:ROOM |= 장소_과소
	CASE P22참배길, P25수호신의숲
		ROOMDATA:ROOM |= 장소_넓은
	CASE P23온천・탈의실
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_신체측정
		ROOMDATA:ROOM |= 장소_머물지않는다
	CASE P24온천
		ROOMDATA:ROOM |= 장소_목욕탕

	CASE P27삼요정의집・객실
		ROOMDATA:ROOM |= 장소_서양식
		ROOMDATA:ROOM |= 장소_넓은
		ROOMDATA:ROOM |= 장소_휴식
		ROOMDATA:ROOM |= 장소_음식
		ROOMDATA:ROOM |= 장소_코타츠
	CASE P29삼요정의집・부엌
		ROOMDATA:ROOM |= 장소_서양식
		ROOMDATA:ROOM |= 장소_주방
	CASE P30삼요정의집・목욕탕
		ROOMDATA:ROOM |= 장소_서양식
		ROOMDATA:ROOM |= 장소_목욕탕
		ROOMDATA:ROOM |= 장소_Private
	CASE P31삼요정의집・2층복도
		ROOMDATA:ROOM |= 장소_서양식
		ROOMDATA:ROOM |= 장소_머물지않는다
	CASE P32서니방, P33루나방, P34스타방
		ROOMDATA:ROOM |= 장소_서양식
		ROOMDATA:ROOM |= 장소_이불
		ROOMDATA:ROOM |= 장소_달구경
		ROOMDATA:ROOM |= 장소_Private
	CASE P35삼요정의집・지하실
		ROOMDATA:ROOM |= 장소_서양식
		ROOMDATA:ROOM |= 장소_과소

	CASE P36몽환유적앞
		ROOMDATA:ROOM |= 장소_머물지않는다
	CASE P37몽환유적・1층통로, P46몽환유적・2층통로
		ROOMDATA:ROOM |= 장소_서양식
		ROOMDATA:ROOM |= 장소_머물지않는다
	CASE P38몽환유적・세면소
		ROOMDATA:ROOM |= 장소_서양식
		ROOMDATA:ROOM |= 장소_신체측정
	CASE P39몽환유적・욕실
		ROOMDATA:ROOM |= 장소_서양식
		ROOMDATA:ROOM |= 장소_목욕탕
		ROOMDATA:ROOM |= 장소_Private
	CASE P40몽환유적・화장실
		ROOMDATA:ROOM |= 장소_서양식
		ROOMDATA:ROOM |= 장소_화장실
		ROOMDATA:ROOM |= 장소_Private
	CASE P41몽환유적・식당겸휴게실
		ROOMDATA:ROOM |= 장소_서양식
		ROOMDATA:ROOM |= 장소_음식
	CASE P42몽환유적・조리실
		ROOMDATA:ROOM |= 장소_서양식
		ROOMDATA:ROOM |= 장소_주방
	CASE P43유메미방, P44치유리방
		ROOMDATA:ROOM |= 장소_서양식
		ROOMDATA:ROOM |= 장소_이불
		ROOMDATA:ROOM |= 장소_공부
		ROOMDATA:ROOM |= 장소_Private
		ROOMDATA:ROOM |= 장소_코타츠
	CASE P47몽환유적・함교
	CASE P48몽환유적・제1자료실, P50몽환유적・제2자료실, P49몽환유적・연구실
		ROOMDATA:ROOM |= 장소_서양식
		ROOMDATA:ROOM |= 장소_공부
	CASE P51몽환유적・창고
		ROOMDATA:ROOM |= 장소_서양식
		ROOMDATA:ROOM |= 장소_과소
	ENDSELECT
NEXT

;-----------------------------------------
;디폴트 초기위치 및 거점주인 설정
;-----------------------------------------
@DEFAULT_OWNER_0
Default초기위치 = P53창고
거점_주인 = [[레이무]]

;-----------------------------------------
;외출맵의 설정
;ARG   대상 지점
;ARGS  판정문자인수
;-----------------------------------------
@ODEKAKEMAP_SETTING_0(ARG, ARGS)
#FUNCTION
;＼1 2 3 4 5 6 7 8 9
;01
;02
;03
;04
;05　　　４
;06５
;07　　　３
;08　　　２
;09　　　１　　　６
SELECTCASE ARG
CASE 벚꽃길토리이
	SIF ARGS == "좌표"
		RETURNF 49
	SIF GROUPMATCH(ARGS, "도시락")
		RETURNF 1
CASE 신사경내
	SIF ARGS == "좌표"
		RETURNF 48
	SIF GROUPMATCH(ARGS, "넓은", "훈련")
		RETURNF 1
CASE 신사본당
	SIF ARGS == "좌표"
		RETURNF 47
	SIF GROUPMATCH(ARGS, "옥내")
		RETURNF 1
CASE 신사툇마루
	SIF ARGS == "좌표"
		RETURNF 45
	SIF GROUPMATCH(ARGS, "옥내", "달구경", "휴식")
		RETURNF 1
CASE 요정의큰나무
	SIF ARGS == "좌표"
		RETURNF 16
	SIF GROUPMATCH(ARGS, "옥내", "서양식", "달구경")
		RETURNF 1
CASE 몽환유적
	SIF ARGS == "좌표"
		RETURNF 88
	SIF GROUPMATCH(ARGS, "옥내", "서양식", "공부")
		RETURNF 1
ENDSELECT


code:
;-----------------------------------------------------------
;원거리 이동 설정
;ARG     목적지
;ARG:1   현위치
;RETURN  다음 목적지
;-----------------------------------------------------------
@SKIP_MOVE_0(ARG, ARG:1)
#DIM 현재의위치
;현재위치 취득
IF ARG:1
	현재의위치 = ARG:1
ELSE
	현재의위치 = CFLAG:MASTER:현재위치
ENDIF

;목적지로 직접 이동할 수 있는 경우 그곳으로 이동
SIF CAN_MOVE(현재의위치, ARG) & 1
	RETURN ARG

;막다른 골목에서 갈 수 있는 곳은 고정이므로, 그 곳을 목표로
SELECTCASE 현재의위치
	CASE P4본당
		RETURN P3새전함
	CASE P5개수대, P21모리야신사분사, P56아운의거처
		RETURN P2경내
	CASE P13목욕탕
		RETURN P12탈의실
	CASE P14화장실, P19큰창고
		RETURN P10툇마루
	CASE P17작은창고, P53창고, P55일본식방
		RETURN P9거실
	CASE P18벽장
		RETURN P15레이무방
	CASE P24온천
		RETURN P23온천・탈의실
	CASE P29삼요정의집・부엌, P30삼요정의집・목욕탕, P35삼요정의집・지하실
		RETURN P27삼요정의집・객실
	CASE P32서니방, P33루나방, P34스타방
		RETURN P31삼요정의집・2층복도
	CASE P39몽환유적・욕실, P40몽환유적・화장실
		RETURN P38몽환유적・세면소
	CASE P42몽환유적・조리실
		RETURN P41몽환유적・식당겸휴게실
	CASE P43유메미방, P44치유리방
		RETURN P37몽환유적・1층통로
	CASE P47몽환유적・함교, P48몽환유적・제1자료실, P49몽환유적・연구실, P50몽환유적・제2자료실, P51몽환유적・창고
		RETURN P46몽환유적・2층통로
	CASE P52별채
		RETURN P11마당
ENDSELECT

;직접 이동할 수 없는 경우, 1개 가까운 위치를 잠정 목적지로 설정하여 루프
;기본적으로 최단으로 갈 수 있는 코스를 설정하기
;현재지에 따라 코스가 바뀌는 것을 고려하여 대응함

SELECTCASE ARG
	CASE P1토리이
		SELECTCASE 현재의위치
		CASE P23온천・탈의실 TO P51몽환유적・창고
			RETURN P22참배길
		CASEELSE
			RETURN P2경내
		ENDSELECT
	CASE P2경내
		SELECTCASE 현재의위치
		CASE P22참배길 TO P51몽환유적・창고
			RETURN P1토리이
		CASEELSE
			RETURN P20본전뒷편
		ENDSELECT
	CASE P3새전함, P5개수대, P21모리야신사분사, P56아운의거처
		RETURN P2경내
	CASE P4본당
		RETURN P3새전함
	CASE P6헛간, P16낡은오두막
		SELECTCASE 현재의위치
		CASE P7봉당 TO P19큰창고, P54난쟁이벌레통
			RETURN P20본전뒷편
		CASEELSE
			RETURN P2경내
		ENDSELECT
	CASE P7봉당
		SELECTCASE 현재의위치
		CASE P10툇마루, P12탈의실 TO P15레이무방, P17작은창고 TO P19큰창고, P54난쟁이벌레통
			RETURN P9거실
		CASEELSE
			RETURN P20본전뒷편
		ENDSELECT
	CASE P8부엌
		SELECTCASE 현재의위치
		CASE P15레이무방, P54난쟁이벌레통
			RETURN P9거실
		CASE P11마당, P12탈의실
			RETURN P10툇마루
		CASEELSE
			RETURN P7봉당
		ENDSELECT
	CASE P9거실
		SELECTCASE 현재의위치
		CASE P11마당, P12탈의실
			RETURN P10툇마루
		CASEELSE
			RETURN P7봉당
		ENDSELECT
	CASE P10툇마루
		SELECTCASE 현재의위치
		CASE P7봉당, P15레이무방
			RETURN P9거실
		CASEELSE
			RETURN P11마당
		ENDSELECT
	CASE P11마당
		SELECTCASE 현재의위치
		CASE P8부엌, P9거실, P12탈의실, P15레이무방, P54난쟁이벌레통
			RETURN P10툇마루
		CASEELSE
			RETURN P9거실
		ENDSELECT
	CASE P12탈의실, P14화장실, P19큰창고
		RETURN P10툇마루
	CASE P13목욕탕
		RETURN P12탈의실
	CASE P15레이무방, P17작은창고, P53창고, P55일본식방
		RETURN P9거실
	CASE P18벽장
		RETURN P15레이무방
	CASE P20본전뒷편
		SELECTCASE 현재의위치
		CASE P10툇마루, P12탈의실
			RETURN P11마당
		CASE P7봉당 TO P19큰창고, P54난쟁이벌레통
			RETURN P7봉당
		CASEELSE
			RETURN P2경내
		ENDSELECT
	CASE P22참배길
		SELECTCASE 현재의위치
		CASE P27삼요정의집・객실 TO P35삼요정의집・지하실
			RETURN P25수호신의숲
		CASE P37몽환유적・1층통로 TO P51몽환유적・창고
			RETURN P36몽환유적앞
		CASEELSE
			RETURN P1토리이
		ENDSELECT
	CASE P23온천・탈의실
		SELECTCASE 현재의위치
		CASE P27삼요정의집・객실 TO P35삼요정의집・지하실
			RETURN P25수호신의숲
		CASEELSE
			RETURN P22참배길
		ENDSELECT
	CASE P24온천
		RETURN P23온천・탈의실
	CASE P25수호신의숲
		SELECTCASE 현재의위치
		CASE P29삼요정의집・부엌 TO P35삼요정의집・지하실
			RETURN P27삼요정의집・객실
		CASEELSE
			RETURN P22참배길
		ENDSELECT

	CASE P27삼요정의집・객실
		RETURN P25수호신의숲
	CASE P29삼요정의집・부엌, P30삼요정의집・목욕탕, P31삼요정의집・2층복도, P35삼요정의집・지하실
		RETURN P27삼요정의집・객실
	CASE P32서니방, P33루나방, P34스타방
		RETURN P31삼요정의집・2층복도

	CASE P36몽환유적앞
		SELECTCASE 현재의위치
		CASE P38몽환유적・세면소 TO P51몽환유적・창고
			RETURN P37몽환유적・1층통로
		CASEELSE
			RETURN P22참배길
		ENDSELECT
	CASE P37몽환유적・1층통로
		RETURN P36몽환유적앞
	CASE P38몽환유적・세면소, P41몽환유적・식당겸휴게실, P43유메미방, P44치유리방, P46몽환유적・2층통로
		RETURN P37몽환유적・1층통로
	CASE P39몽환유적・욕실, P40몽환유적・화장실
		RETURN P38몽환유적・세면소
	CASE P42몽환유적・조리실
		RETURN P41몽환유적・식당겸휴게실
	CASE P47몽환유적・함교, P48몽환유적・제1자료실, P49몽환유적・연구실, P50몽환유적・제2자료실, P51몽환유적・창고
		RETURN P46몽환유적・2층통로

	CASE P52별채
		RETURN P11마당
	CASE P54난쟁이벌레통
		SELECTCASE 현재의위치
		CASE P11마당, P12탈의실
			RETURN P10툇마루
		CASEELSE
			RETURN P9거실
		ENDSELECT
ENDSELECT


code:
;--------------------------------------------------
;맵의 함수명
;--------------------------------------------------
@MAP_VIEWING_NAME_1
#FUNCTIONS
RETURNF "TEMPLE"

;--------------------------------------------------
;맵의 묘화
;--------------------------------------------------
@MAP_TEMPLE_1(AA)
#DIMS REF AA, 0
AA:00 = 林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林林
AA:01 = 林　■■■　　■■■■■■■■■■■■■■■■■■■■■■■■■■　■■■林
AA:02 = 林　■20■　　||　■나즈린│이치린│무라사│ 누에 │ 쿄코 ■　　#B　■19■林
AA:03 = 林　■─■　　||　│　13　│　16　│　14　│　17　│　36　■목욕■　■　■林
AA:04 = 林　　　　　　||　■■─■■■─■■■─■■■─■■■─■■ 12 ■　■─■林
AA:05 = 林#a　　　　　||10　　　　　　　　　　　　35　　　　　　　■　　■　　　　林
AA:06 = 林#b　　06　　||　■■─■■■─■■■─■■■■■─■─■■■─■　　　　林
AA:07 = 林#c　　　　　||　■　쇼　■뱌쿠렌■ 조온 ■　　 거실 　　│　　■　　　　林
AA:08 = 林#d　　　　　||　│　15　│　18　│　09　│　　　08　　　│　　■　　　　林
AA:09 = 林　　　　　　||　■　　　■　　　■　　　■　　　　　　　■봉당■　　　　林
AA:10 = 林　　　　　　■■■■■■■■■■■■■■■■■■■■ 11 ■ 07 ■　　　　林
AA:11 = 林　　　　林林林林林林林林林林林林林林林林林林林林林■┌┐■] 　■　　　　林
AA:12 = 林　　　　　　　　　　　　　■■■■■■■木木木木木■■■■■─■　　　　林
AA:13 = 林　　　∩∩∩∩∩　　　　　■　 본당 　■　　　　　　　　　〒　　　　　　林
AA:14 = 林　　 /￣￣￣￣￣三　　　　■　　◎　　■　　　　　　　　　　　　　　　　林
AA:15 = 林　　∩∩∩∩∩∩三　　　　■　　03　　■　　　　　　　　　　　　　　　　林
AA:16 = 林　 /￣￣￣￣￣￣三　■■■■■　　　■■■■■　　　　　　　　　　　　　林
AA:17 = 林　∩∩∩∩∩∩∩三　■　　　　 강당 　　　　■　　　　　　　■■■■■■林
AA:18 = 林#D￣￣￣￣￣￣￣三　■□□□□　04　□□□□■┏━┓　　　　■　경당　■林
AA:19 = 林　　　　　21　　　　■　　　　　　　　　　　■┃종┃　　　　│　 05 　■林
AA:20 = 林林　　　　　　　　　■■■■■■三■■■■■■┗━┛　　　　■　　　　■林
AA:21 = 林林林　　　　　　　　　　　　 回 三 回 　　　　　22　　　　　■■■■■■林
AA:22 = 林林林林　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　林林林林
AA:23 = 林林林林林林　　　　　　　　　　　02　　　　　　　　　　　　　　　木林林林林
AA:24 = 林林林林林林林林　　　　　　　　　　　　　　　　　　　林林林林林木37木林林林
AA:25 = 林林林林林林林林林林林林　　　　　　　　　　　林林林林林林林林林林木林林林林
AA:26 = ■■■■■■■■■■■■■■■■＝01＝■■■■■■■■■■■■■■■■■■■
AA:27 = 　　　　　　　　　　　　　　回┣#A#A#A┫回　　　　　柳
AA:28 = ＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿┣#A#A#A┫＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
AA:29 = 　　　　　　　　　　　　　　　　　40　　　　　　　　　　　23신령묘→
AA:30 = ＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿　　#e　　＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿

@MAP_TEMPLE_2(AA)
#DIMS REF AA, 0
AA:00 = 　□□■■■■■■■■■■■■■■■■■■■■■■■■■■■■■□□
AA:01 = 　□　■　　　■　　■　　　■　　　　　||　_ _ _ _ _ 石林林林■　□
AA:02 = 　□　■조제실■　　■ 미코 ■　응접실　||　 _石 _ _ _ _ _ _ _■　□
AA:03 = 　□　■　32　│　　■　28　■　　29　　||　_ _ _ _ _ _ _ _ _ ■　□
AA:04 = 　□　■　　　■　　■　　　■　　　　　||　石 _ _  31 _ _ _石■　□
AA:05 = 　□　■■■■■　　■　　　■　　　　　||　　　　　　　　　　■　□
AA:06 = 　□　■　　　　　　■■─■■■■─■■■■■■■＝＝＝＝＝＝■　□
AA:07 = 　□　■　　　　　　　　　　　　　30　　　　　　　　　　　　　　　□
AA:08 = 　□　■■■■■　　■■■■■■■■■■■■■■■　　■■■■■　□
AA:09 = 　□　■토지코■　　■　　　　　 도장 　　　　　■　　■ 후토 ■　□
AA:10 = 　□　■　25　│　　■　　　　　　26　　　　　　■　　│　27　■　□
AA:11 = 　□　■　　　■　　■　　　　　　　　　　　　　■　　■　　　■　□
AA:12 = 　□　■　　　■　　■─■─■■───■■─■─■　　■　　　■　□
AA:13 = 　□　■■■■■　　　　　　#C■　　　■#C　　　　　　■■■■■　□
AA:14 = 　□　　　■■■■■■■■■■■三三三■■■■■■■■■■■　　　□
AA:15 = 　□　　　■ 목욕 ■　　　　　　　　　　　　　　　■ 곳간 ■　　　□
AA:16 = 　□　　　■　33　│　　　　　　　　　　　　　　　│　34　■　　　□
AA:17 = 　□　　　■　　　■　　　　　　　　　　　　　　　■　　　■　　　□
AA:18 = ■■■■■■■■■■　　　　　　　24　　　　　　　■■■■■■■■■■
AA:19 = ■　청아　■　　　　　　　　　　　　　　　　　　　　　　　■　 종 　■
AA:20 = ■　 39 　│　　　　　　　　　　　　　　　　　　　　　　　│　 38 　■
AA:21 = ■■■■■■■■■■■■■■■■＝23＝■■■■■■■■■■■■■■■■
AA:22 =
AA:23 = □□□□□□□□□□□□□□□□　　　□□□□□□□□□□□□□□□□
AA:24 = ＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿□　　　□＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
AA:25 = 　　　　←01명련사　　　　　　　　40
AA:26 = ＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿　　#e　　＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿

@ODEKAKEMAP_1(AA)
#DIMS REF AA, 0
AA:00 = 　■■■■■■■■■■■■■　｜　□□□□□□□□□□□□□
AA:01 = 　■林林林林■　　　　　　■　｜　□　■■■■■■■■■　□
AA:02 = 　■林林林林■　　 04 　　■　｜　□　■　　　　　　　■　□
AA:03 = 　■　　∩∩■　　　　　　■　｜　□　■　　　　　　　■　□
AA:04 = 　■　∩∩∩■■■■■　　■　｜　□　■　　　07　　　■　□
AA:05 = 　■∩∩∩∩　　　　■─■■　｜　□　■■　　　　　■■　□
AA:06 = 　■　 05 　■■■　　　　■　｜　□　　■■■三■■■　　□
AA:07 = 　■　　　　■　■　　　　■　｜　□　　■　　　　　■　　□
AA:08 = 　■林　　　■三■　　　林■　｜　□　　■　　06　　■　　□
AA:09 = 　■林林　　　03　　　■■■　｜　□　■■■　　　■■■　□
AA:10 = 　■林林林　　　　　林■■■　｜　□　■■■■　■■■■　□
AA:11 = 　■■■■■回三回■■■■■　柳　□□□□□□三□□□□□□
AA:12 = ＿＿＿＿＿＿＿三＿＿＿＿＿＿＿02＿＿＿＿＿＿＿三＿＿＿＿＿＿＿
AA:13 =
AA:14 = ＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿01＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿

;--------------------------------------------------
;착색과 치환
;--------------------------------------------------
@DRAW_MAP_BG_1(SLICED)
#DIMS SLICED
SELECTCASE SLICED
;▼着色
CASE "柳"
	SETCOLOR C_TEAL
	PRINTS SLICED
	RESETCOLOR
CASE "林", "木"
	SETCOLOR C_FOREST1
	PRINTS SLICED
	RESETCOLOR
CASE "■", "│", "─", "┐", "┌", "└", "┘"
	SETCOLOR C_WOOD1
	PRINTS SLICED
	RESETCOLOR
CASE "┏", "┓", "┗", "┛", "━", "┃", "|", "＝", "]"
	SETCOLOR C_WOOD2
	PRINTS SLICED
	RESETCOLOR
CASE "＿", "￣", "┣", "┫", "回", "三", "_", "/"
	SETCOLOR C_STONE1
	PRINTS SLICED
	RESETCOLOR
CASE "□"
	SELECTCASE TFLAG:맵변환
	CASE 1
		SETCOLOR C_WOOD2
	CASE 2, 0
		SETCOLOR 0xba2636
	ENDSELECT
	PRINTS SLICED
	RESETCOLOR
CASE "〒"
	SETCOLOR 0xba2636
	PRINTS SLICED
	RESETCOLOR
CASE "石", "◎", "∩"
	SETCOLOR C_STONE2
	PRINTS SLICED
	RESETCOLOR
;▼特殊な表示
CASE "#a", "#b", "#c", "#d", "#e", "#f", "#g", "#h", "#i", "#j", "#k", "#l", "#m", "#n"
	CALL MAP_PRINT(SLICED)
CASE "#A"
	SETCOLOR C_STONE1
	PRINT ━
	RESETCOLOR
CASE "#B"
	SETCOLOR C_WINDOW
	PRINT □
	RESETCOLOR
CASE "#C"
	SETCOLOR C_WOOD2
	PRINT □
	RESETCOLOR
CASE "#D"
	SETCOLOR C_STONE1
	PRINTS " |"
	RESETCOLOR
;ふつうの
CASEELSE
	PRINTS SLICED
ENDSELECT


code:
;--------------------------------------------------
;지점명 변경 함수
;--------------------------------------------------
@MAP_PLACENAME_1(ARG)
#FUNCTIONS
IF GET_MAPID(ARG) == MAIN_MAP
	SELECTCASE ARG
		CASE SUMIKOMI_ROOM
			;※このマップでは未実装
			IF FLAG:더부살이캐릭터
				RETURNF CALLNAME:(FLAG:더부살이캐릭터) + "의 방"
			ELSE
				RETURNF "빈 방"
			ENDIF
		CASE MINROOM() TO (MAXROOM - 1)
			RETURNF STR:(ARG + 8000)
		CASE OMANEKIBEYA()
			RETURNF OMANEKI_PLACE()
		CASE SUKIMA()
			RETURNF "스키마 공간"
		CASE MAXROOM
			RETURNF "참배길 저편"
		CASEELSE
			RETURNF "불명"
	ENDSELECT
ELSE
	RETURNF "길의 저편"
ENDIF

;--------------------------------------------------
;장소 ARG가 어느 지역에 있는지
;표시하는 맵의 번호와 연동 (TFLAG:맵변환)
;ARG     장소ID
;--------------------------------------------------
@MAP_AREASELECT_1(ARG)
#FUNCTION
SELECTCASE ARG
	CASE P140지장길
		RETURNF 1
	;命蓮寺
	CASE P101산문 TO P122범종루, P135복도 TO P137마미조의거처
		RETURNF 1
	;神霊廟
	CASEELSE
		RETURNF 2
ENDSELECT

;--------------------------------------------------
;내부구조가 있는 장소의 내부 판정
;		TFLAG:맵변환	내부감지(察知)가 필요한 맵 번호
;				P_ID  	표시버튼의 장소ID
;				Q_ID  	판정하는 내부 장소ID, 반드시 P_ID와 일치하는 수치도 포함
;--------------------------------------------------
@GETMAP_BUILDING_1(P_ID, Q_ID)
#FUNCTION
#DIM P_ID
#DIM Q_ID
IF TFLAG:맵변환 == 1
	SELECTCASE P_ID
		;神霊廟
		CASE P123영묘대문
			SELECTCASE Q_ID
			CASE P123영묘대문 TO P134곳간, P138종루, P139사선루
				RETURNF 1
			ENDSELECT
	ENDSELECT
ELSEIF TFLAG:맵변환 == 2
	SELECTCASE P_ID
		;命蓮寺
		CASE P101산문
			SELECTCASE Q_ID
			CASE P101산문 TO P122범종루, P135복도 TO P137마미조의거처
				RETURNF 1
			ENDSELECT
	ENDSELECT
ENDIF
RETURNF 0

;--------------------------------------------------
;이동제한설정
;ARG    장소ID
;CHARA  이동하는 캐릭터ID
;RETURNF 1=이동 가능, 0=이동 불가능
;TFLAG:이동불능메시지   ↓の@MAP_CANNOT_WORD용 설정
;--------------------------------------------------
@MAP_CAN_MOVE_1(ARG, CHARA)
#FUNCTION
#DIM CHARA
SELECTCASE ARG
	;誰かが住んでないと入れない
	CASE P119별채
		IF !PRIVATEROOM:(ARG % 100) && CFLAG:MASTER:초기위치 != ARG
			TFLAG:이동불능메시지 = 999
			RETURNF 0
		ENDIF
ENDSELECT
RETURNF 1

;--------------------------------------------------
;이동불능시 표시되는 메시지
;--------------------------------------------------
@MAP_CANNOT_WORD_1(ARG)
RETURN
SELECTCASE TFLAG:이동불능메시지
	CASE 1
		PRINTFORMW ※ここにメッセージを入れる。行数+1のCLEARLINEをする
		CLEARLINE 2
ENDSELECT
REUSELASTLINE

;-----------------------------------------
;거점 전용의 정경묘사
;WAIT는 걸리지 않도록
;-----------------------------------------
@MAP_UNIQUEMESSAGE_1
VARSET LOCAL
SELECTCASE CFLAG:MASTER:현재위치
	CASE P104강당
		PRINTFORML 큰 목탁이 놓여 있다
		RETURN 1
	CASE P129응접실
		PRINTFORML 목각 곰이 놓여 있다
		RETURN 1
	CASE P110툇마루
		PRINTFORML 처마 끝에 무가 매달려 있다
		RETURN 1
	CASE P119별채
		FOR LOCAL, 1, CHARANUM
			IF CFLAG:LOCAL:현재위치 == P112목욕탕
				LOCAL:1 = LOCAL
				LOCAL:2 ++
			ENDIF
		NEXT
		IF !LOCAL:2
			PRINTFORML 가만히 앉아서 목욕탕을 들여다볼 수 있는 비밀장치가 있다
		ELSE
			PRINTFORML 비밀장치를 통해 목욕중인 %CALLNAME:(LOCAL:1)%\@ LOCAL:2 > 1? 들# \@이 보인다
			PRINTFORML 절경일까나！
		ENDIF
		RETURN 1
	CASEELSE
ENDSELECT

;-----------------------------------------
;거점의 장소ID를 외출맵상의 장소ID로 치환하는 함수
;ARG      대상의 장소ID (거점맵)
;RETURNF  교체 장소ID (외출맵)
;-----------------------------------------
@MAP_SEARCH_REPLACEMENT_1(ARG)
#FUNCTION
SELECTCASE ARG
	CASE P140지장길
		RETURNF 지장길
	CASE P101산문 TO P106뒷마당, P119별채, P120헛간, P122범종루, P137마미조의거처
		RETURNF 명련사경내
	CASE P121묘지
		RETURNF 묘지
	CASE P123영묘대문, P124영묘광장, P138종루, P139사선루
		RETURNF 신령묘광장
	CASE P125토지코방 TO P134곳간
		RETURNF 신령묘도장
	CASEELSE
		RETURNF 명련사방장
ENDSELECT
RETURNF 0

;--------------------------------------------------
;맵의 소개문
;--------------------------------------------------
@MAP소개_1
;とりあえず5行
PRINTFORML ※소개문 모집 중※
PRINTFORML 맵 이름이 명련사인데 신령묘도 포함되어 있어 꽤 큰 살림집이다.
PRINTFORML
PRINTFORML
PRINTFORML


code:
;-----------------------------------------------------------
;지점의 연결 설정
;ARG    기준지점
;ARG:1  대상지점
;RETURNF 0=이동할 수 없다, 보이지 않는다
;        1=이동할 수 있다, 보이지 않는다
;        2=이동할 수 없다, 보인다
;        3=이동할 수 있다, 보인다 (직통)
;-----------------------------------------------------------
@CAN_MOVE_1(ARG, ARG:1)
#FUNCTION
SELECTCASE ARG
	CASE P101산문
		SIF GROUPMATCH(ARG:1, P102경내, P140지장길)
			RETURNF 3
	CASE P102경내
		SIF GROUPMATCH(ARG:1, P104강당, P105경당, P107봉당, P119별채, P121묘지, P137마미조의거처)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P101산문, P122범종루)
			RETURNF 3
	CASE P103본당
		SIF GROUPMATCH(ARG:1, P104강당)
			RETURNF 3
	CASE P104강당
		SIF GROUPMATCH(ARG:1, P102경내)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P103본당)
			RETURNF 3
	CASE P105경당
		SIF GROUPMATCH(ARG:1, P102경내)
			RETURNF 1
	CASE P106뒷마당
		SIF GROUPMATCH(ARG:1, P120헛간, P121묘지)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P110툇마루)
			RETURNF 3
	CASE P107봉당
		SIF GROUPMATCH(ARG:1, P102경내, P108거실, P112목욕탕)
			RETURNF 1
	CASE P108거실
		SIF GROUPMATCH(ARG:1, P107봉당, P109조온방, P135복도)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P111부엌)
			RETURNF 3
	CASE P109조온방
		SIF GROUPMATCH(ARG:1, P108거실, P118뱌쿠렌방, P135복도)
			RETURNF 1
	CASE P110툇마루
		SIF GROUPMATCH(ARG:1, P113나즈린방, P115쇼방)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P106뒷마당, P135복도)
			RETURNF 3
	CASE P111부엌
		SIF GROUPMATCH(ARG:1, P108거실)
			RETURNF 3
	CASE P112목욕탕
		SIF GROUPMATCH(ARG:1, P107봉당)
			RETURNF 1
	CASE P113나즈린방
		SIF GROUPMATCH(ARG:1, P110툇마루, P116이치린방, P135복도)
			RETURNF 1
	CASE P114무라사방
		SIF GROUPMATCH(ARG:1, P116이치린방, P117누에방, P135복도)
			RETURNF 1
	CASE P115쇼방
		SIF GROUPMATCH(ARG:1, P110툇마루, P118뱌쿠렌방, P135복도)
			RETURNF 1
	CASE P116이치린방
		SIF GROUPMATCH(ARG:1, P113나즈린방, P114무라사방, P135복도)
			RETURNF 1
	CASE P117누에방
		SIF GROUPMATCH(ARG:1, P114무라사방, P136쿄코방, P135복도)
			RETURNF 1
	CASE P118뱌쿠렌방
		SIF GROUPMATCH(ARG:1, P109조온방, P115쇼방, P135복도)
			RETURNF 1
	CASE P119별채
		SIF GROUPMATCH(ARG:1, P102경내)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P112목욕탕)
			RETURNF 2
	CASE P120헛간
		SIF GROUPMATCH(ARG:1, P106뒷마당)
			RETURNF 1
	CASE P121묘지
		SIF GROUPMATCH(ARG:1, P102경내, P106뒷마당)
			RETURNF 1
	CASE P122범종루
		SIF GROUPMATCH(ARG:1, P102경내)
			RETURNF 3

	CASE P123영묘대문
		SIF GROUPMATCH(ARG:1, P124영묘광장, P140지장길)
			RETURNF 3
	CASE P124영묘광장
		SIF GROUPMATCH(ARG:1, P126도장, P133목욕장, P134곳간, P138종루, P139사선루)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P123영묘대문)
			RETURNF 3
	CASE P125토지코방
		SIF GROUPMATCH(ARG:1, P130복도)
			RETURNF 1
	CASE P126도장
		SIF GROUPMATCH(ARG:1, P124영묘광장, P130복도)
			RETURNF 1
	CASE P127후토방
		SIF GROUPMATCH(ARG:1, P130복도)
			RETURNF 1
	CASE P128미코방
		SIF GROUPMATCH(ARG:1, P130복도)
			RETURNF 1
	CASE P129응접실
		SIF GROUPMATCH(ARG:1, P130복도)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P131고산수)
			RETURNF 3
	CASE P130복도
		SIF GROUPMATCH(ARG:1, P126도장, P125토지코방, P127후토방, P128미코방, P129응접실, P132조제실)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P131고산수)
			RETURNF 3
	CASE P131고산수
		SIF GROUPMATCH(ARG:1, P129응접실, P130복도)
			RETURNF 3
	CASE P132조제실
		SIF GROUPMATCH(ARG:1, P130복도)
			RETURNF 1
	CASE P133목욕장
		SIF GROUPMATCH(ARG:1, P124영묘광장)
			RETURNF 1
	CASE P134곳간
		SIF GROUPMATCH(ARG:1, P124영묘광장)
			RETURNF 1

	CASE P135복도
		SIF GROUPMATCH(ARG:1, P108거실, P109조온방, P113나즈린방, P114무라사방, P115쇼방, P116이치린방, P117누에방, P118뱌쿠렌방, P136쿄코방)
			RETURNF 1
		SIF GROUPMATCH(ARG:1, P110툇마루)
			RETURNF 3
	CASE P136쿄코방
		SIF GROUPMATCH(ARG:1, P117누에방, P135복도)
			RETURNF 1
	CASE P137마미조의거처
		SIF GROUPMATCH(ARG:1, P102경내)
			RETURNF 1
	CASE P138종루
		SIF GROUPMATCH(ARG:1, P124영묘광장)
			RETURNF 1
	CASE P139사선루
		SIF GROUPMATCH(ARG:1, P124영묘광장)
			RETURNF 1
	CASE P140지장길
		SIF ARG:1 == MAXROOM
			RETURNF 2
		SIF GROUPMATCH(ARG:1, P101산문, P123영묘대문)
			RETURNF 3

	CASE MAXROOM
		SIF ARG:1 == P140지장길
			RETURNF 1
ENDSELECT
RETURNF 0


code:
;＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
;지점의 속성 설정 (DIM_t.ERH 참조)
;장소_원룸			집주인이 부재중일때 잠기고, 이불・옥내・주방・공부・휴식・음식・Private가 자동 부여
;장소_이불			휴식이 자동으로 부여
;장소_서양식		실내지만 신발을 신은 채, 옥내가 자동으로 부여
;장소_옥내
;장소_지붕			옥외지만 지붕이 있는 곳, 옥내라도 지붕이 없는 경우는 야외판정 (구 창공)
;장소_넓은
;장소_달구경		옥내나 지붕이 있어도 달이 보이는 장소
;장소_휴식
;장소_목욕탕
;장소_화장실
;장소_주방         	집어먹기가 자동으로 부여
;장소_훈련
;장소_공부
;장소_하늘의소리
;장소_텃밭
;장소_물긷기
;장소_신체측정
;장소_빨래너는곳	풍경묘사용
;장소_음식			자유행동 전용
;장소_집어먹기		자유행동 전용
;장소_머물지않는다	캐릭터가 잘 머물지 않는다 (이동하기 쉽다)
;장소_과소			캐릭터가 잘 들어가지 않는다 (이동해오기 어렵다)
;장소_Private		절도 있는 캐릭터는 들어오지 않는다, 주로 개인실과 목욕탕・화장실
;장소_코타츠		자유행동전용
;장소_공공장소		덮치지 않는다
;＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
@ROOMSETTING_1
#DIM ROOM
VARSET ROOMDATA
MAXROOM = 141
ENTRANCE = P140지장길
피난처 = P119별채
SIF GET_MAPID(거점_술벌레) != MAIN_MAP
	거점_술벌레 = P111부엌

MAP_PAGES = 2
MAPNAME:1 = 명련사
MAPNAME:2 = 신령묘

FOR LOCAL, MINROOM(), MAXROOM
	ROOM = LOCAL % 100
	SELECTCASE LOCAL
	CASE P101산문
	CASE P102경내
		ROOMDATA:ROOM |= 장소_넓은
		ROOMDATA:ROOM |= 장소_훈련
	CASE P103본당
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_하늘의소리
	CASE P104강당
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_넓은
		ROOMDATA:ROOM |= 장소_공부
	CASE P105경당
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_공부
		ROOMDATA:ROOM |= 장소_과소
	CASE P106뒷마당
		ROOMDATA:ROOM |= 장소_넓은
		ROOMDATA:ROOM |= 장소_훈련
		ROOMDATA:ROOM |= 장소_텃밭
		ROOMDATA:ROOM |= 장소_물긷기
	CASE P107봉당
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_머물지않는다
	CASE P108거실
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_휴식
		ROOMDATA:ROOM |= 장소_음식
		ROOMDATA:ROOM |= 장소_코타츠
	CASE P110툇마루
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_휴식
		ROOMDATA:ROOM |= 장소_음식
		ROOMDATA:ROOM |= 장소_달구경
		ROOMDATA:ROOM |= 장소_빨래너는곳
	CASE P111부엌
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_주방
	CASE P112목욕탕
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_목욕탕
		ROOMDATA:ROOM |= 장소_신체측정
		ROOMDATA:ROOM |= 장소_Private
	CASE P113나즈린방, P114무라사방, P115쇼방, P116이치린방, P117누에방, P119별채, P109조온방, P136쿄코방
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_이불
		ROOMDATA:ROOM |= 장소_Private
	CASE P118뱌쿠렌방
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_이불
		ROOMDATA:ROOM |= 장소_공부
		ROOMDATA:ROOM |= 장소_Private
	CASE P120헛간
		ROOMDATA:ROOM |= 장소_지붕
		ROOMDATA:ROOM |= 장소_과소
		ROOMDATA:ROOM |= 장소_Private
	CASE P121묘지
		ROOMDATA:ROOM |= 장소_과소
	CASE P122범종루
		ROOMDATA:ROOM |= 장소_지붕
		ROOMDATA:ROOM |= 장소_달구경
	CASE P123영묘대문
	CASE P124영묘광장
		ROOMDATA:ROOM |= 장소_넓은
		ROOMDATA:ROOM |= 장소_훈련
	CASE P125토지코방, P127후토방, P128미코방
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_이불
		ROOMDATA:ROOM |= 장소_Private
	CASE P126도장
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_넓은
		ROOMDATA:ROOM |= 장소_훈련
		ROOMDATA:ROOM |= 장소_공부
	CASE P129응접실
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_넓은
		ROOMDATA:ROOM |= 장소_휴식
		ROOMDATA:ROOM |= 장소_음식
		ROOMDATA:ROOM |= 장소_달구경
		ROOMDATA:ROOM |= 장소_코타츠
	CASE P130복도
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_머물지않는다
	CASE P131고산수
		ROOMDATA:ROOM |= 장소_과소
	CASE P132조제실
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_주방
		ROOMDATA:ROOM |= 장소_공부
	CASE P133목욕장
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_목욕탕
		ROOMDATA:ROOM |= 장소_신체측정
		ROOMDATA:ROOM |= 장소_Private
	CASE P134곳간
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_과소
	CASE P135복도
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_머물지않는다
	CASE P137마미조의거처
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_이불
		ROOMDATA:ROOM |= 장소_Private
	CASE P138종루
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_과소
	CASE P139사선루
		ROOMDATA:ROOM |= 장소_옥내
		ROOMDATA:ROOM |= 장소_이불
		ROOMDATA:ROOM |= 장소_공부
		ROOMDATA:ROOM |= 장소_Private
	CASE P140지장길
		ROOMDATA:ROOM |= 장소_넓은
		ROOMDATA:ROOM |= 장소_머물지않는다
	ENDSELECT
NEXT

;-----------------------------------------
;디폴트 초기위치 및 거점주인 설정
;-----------------------------------------
@DEFAULT_OWNER_1
거점_주인 = [[뱌쿠렌]]
Default초기위치 = P119별채

;-----------------------------------------
;외출맵의 설정
;ARG   대상 지점
;ARGS  판정문자인수
;-----------------------------------------
@ODEKAKEMAP_SETTING_1(ARG, ARGS)
#FUNCTION
;＼1 2 3 4 5 6 7 8 9
;01
;02
;03
;04
;05　　　　　　　７
;06５　４
;07　３　　　　　６
;08　　　　２
;09　　　　１
SELECTCASE ARG
CASE 지장길
	SIF ARGS == "좌표"
		RETURNF 59
	SIF GROUPMATCH(ARGS, "넓은", "도시락", "모브")
		RETURNF 1
CASE 수양버들아래
	SIF ARGS == "좌표"
		RETURNF 58
	SIF GROUPMATCH(ARGS, "도시락", "모브")
		RETURNF 1
CASE 명련사경내
	SIF ARGS == "좌표"
		RETURNF 27
	SIF GROUPMATCH(ARGS, "넓은", "훈련", "모브")
		RETURNF 1
CASE 명련사방장
	SIF ARGS == "좌표"
		RETURNF 36
	SIF GROUPMATCH(ARGS, "옥내", "달구경")
		RETURNF 1
CASE 묘지
	SIF ARGS == "좌표"
		RETURNF 16
	SIF GROUPMATCH(ARGS, "")
		RETURNF 1
CASE 신령묘광장
	SIF ARGS == "좌표"
		RETURNF 87
	SIF GROUPMATCH(ARGS, "넓은", "훈련", "모브")
		RETURNF 1
CASE 신령묘도장
	SIF ARGS == "좌표"
		RETURNF 85
	SIF GROUPMATCH(ARGS, "옥내", "달구경")
		RETURNF 1
ENDSELECT


code:
;-----------------------------------------------------------
;원거리 이동 설정
;ARG     목적지
;ARG:1   현위치
;RETURN  다음 목적지
;-----------------------------------------------------------
@SKIP_MOVE_1(ARG, ARG:1)
#DIM 현재의위치
;現在位置取得
IF ARG:1
	현재의위치 = ARG:1
ELSE
	현재의위치 = CFLAG:MASTER:현재위치
ENDIF

;目的地に直接移動できる場合そこに移動
SIF CAN_MOVE(현재의위치, ARG) & 1
	RETURN ARG

;袋小路から行ける場所は固定なので、そこを目指す
SELECTCASE 현재의위치
	CASE P103본당
		RETURN P104강당
	CASE P105경당, P119별채, P122범종루, P137마미조의거처
		RETURN P102경내
	CASE P111부엌
		RETURN P108거실
	CASE P112목욕탕
		RETURN P107봉당
	CASE P120헛간
		RETURN P106뒷마당
	CASE P125토지코방, P127후토방, P128미코방, P132조제실
		RETURN P130복도
	CASE P133목욕장, P134곳간, P138종루, P139사선루
		RETURN P124영묘광장
ENDSELECT

;直接移動できない場合、1つ近い位置を暫定目的地に設定し直してループ
;基本的に最短で行けるコースを設定する
;現在地によってコースが変わることも考慮して対応する
SELECTCASE ARG
	CASE P101산문
		SELECTCASE 현재의위치
		CASE P123영묘대문 TO P134곳간, P138종루, P139사선루
			RETURN P140지장길
		CASEELSE
			RETURN P102경내
		ENDSELECT
	CASE P102경내
		SELECTCASE 현재의위치
		CASE P123영묘대문 TO P134곳간, P138종루, P139사선루, P140지장길
			RETURN P101산문
		CASE P106뒷마당, P110툇마루, P120헛간
			RETURN P121묘지
		CASEELSE
			RETURN P107봉당
		ENDSELECT
	CASE P103본당
		RETURN P104강당
	CASE P104강당, P105경당, P119별채, P122범종루, P137마미조의거처
		RETURN P102경내
	CASE P106뒷마당
		SELECTCASE 현재의위치
		CASE P108거실 TO P111부엌, P113나즈린방 TO P118뱌쿠렌방, P135복도, P136쿄코방
			RETURN P110툇마루
		CASEELSE
			RETURN P121묘지
		ENDSELECT
	CASE P107봉당
		SELECTCASE 현재의위치
		CASE P106뒷마당, P109조온방 TO P118뱌쿠렌방, P120헛간, P135복도, P136쿄코방
			RETURN P108거실
		CASEELSE
			RETURN P102경내
		ENDSELECT
	CASE P108거실
		SELECTCASE 현재의위치
		CASE P106뒷마당, P110툇마루, P113나즈린방 TO P118뱌쿠렌방, P120헛간, P136쿄코방
			RETURN P135복도
		CASEELSE
			RETURN P107봉당
		ENDSELECT
	CASE P109조온방
		SELECTCASE 현재의위치
		CASE P106뒷마당, P110툇마루, P113나즈린방 TO P118뱌쿠렌방, P120헛간, P136쿄코방
			RETURN P135복도
		CASEELSE
			RETURN P108거실
		ENDSELECT
	CASE P110툇마루
		SELECTCASE 현재의위치
		CASE P107봉당 TO P118뱌쿠렌방, P136쿄코방
			RETURN P135복도
		CASEELSE
			RETURN P106뒷마당
		ENDSELECT
	CASE P111부엌
		RETURN P108거실
	CASE P112목욕탕
		RETURN P107봉당
	CASE P113나즈린방, P115쇼방
		SELECTCASE 현재의위치
		CASE P109조온방 TO P118뱌쿠렌방, P136쿄코방
			RETURN P135복도
		CASEELSE
			RETURN P110툇마루
		ENDSELECT
	CASE P114무라사방, P116이치린방, P117누에방, P118뱌쿠렌방, P136쿄코방
		RETURN P135복도
	CASE P120헛간
		RETURN P106뒷마당
	CASE P121묘지
		SELECTCASE 현재의위치
		CASE P109조온방, P110툇마루, P113나즈린방 TO P118뱌쿠렌방, P120헛간, P135복도, P136쿄코방
			RETURN P106뒷마당
		CASEELSE
			RETURN P102경내
		ENDSELECT

	CASE P123영묘대문
		SELECTCASE 현재의위치
		CASE P125토지코방 TO P132조제실
			RETURN P124영묘광장
		CASEELSE
			RETURN P140지장길
		ENDSELECT
	CASE P124영묘광장
		SELECTCASE 현재의위치
		CASE P125토지코방 TO P132조제실
			RETURN P126도장
		CASEELSE
			RETURN P123영묘대문
		ENDSELECT
	CASE P125토지코방, P127후토방, P128미코방, P132조제실, P129응접실, P131고산수
		RETURN P130복도
	CASE P126도장
		SELECTCASE 현재의위치
		CASE P125토지코방 TO P132조제실
			RETURN P130복도
		CASEELSE
			RETURN P124영묘광장
		ENDSELECT
	CASE P130복도
		RETURN P126도장
	CASE P133목욕장, P134곳간, P138종루, P139사선루
		RETURN P124영묘광장

	CASE P135복도
		SELECTCASE 현재의위치
		CASE P106뒷마당, P110툇마루, P120헛간, P121묘지
			RETURN P110툇마루
		CASEELSE
			RETURN P108거실
		ENDSELECT
	CASE P140지장길
		SELECTCASE 현재의위치
		CASE P123영묘대문 TO P134곳간, P138종루, P139사선루
			RETURN P123영묘대문
		CASEELSE
			RETURN P101산문
		ENDSELECT
ENDSELECT


code:
;実際の江戸時代の大部分の長屋は表通りに面してなくて（裏長屋）、表通りに鈴奈庵のような店舗兼住宅を構えられるのはカネモチだったらしいよ！
;建物を取り囲むようにドブ板が敷いてあってその下は下水道！トイレ下水ゴミ捨て場が密集してるから病原菌の温床！
;壁は薄くてプライバシー皆無！安い部屋は畳とかなし、莚オンリー！
;もれなく大家を親、借家人を子に見立てたウェットでネチネチした人間関係がついてくる！キツイね！
;でもそういう都合の悪い部分はカット。そう、eraならね。

;　　　　　　店　　　　　　店
;　　表通り　店　　　　　　店
;　　　　　　店　裏長屋　　店　表
;裏路地を通る←ーーーーー→　　通
;　　　　　　店　裏長屋　　店　り
;　　　　　　店　　　　　　店
;　　　　　　店　　　　　　店

;실제의 에도시대의 대부분의 연립 주택은 큰길에 접하지 않아서(서민 연립 주택), 큰길에 스즈나안와 같은 점포겸주택을 지을 수 있는 것은 카네모치였던 것 같아!
;건물을 둘러싸도록(듯이) 시궁창판이 깔아 있어 그 아래는 하수도!화장실 하수 쓰레기 버리는 곳이 밀집하고 있으니 병원균의 온상!
;벽은 얇고 사생활 전무!싼 방은 다다미라든지 이루어, 연온리!
;빠짐없이 주인을 부모, 집을 빌린 사람을 아이에게 가정해서 웨트로 끈적끈적(치근치근) 한 인간 관계가 따라 온다!키트이군요!
;그렇지만 그러한 형편이 나쁜 부분은 컷. 그래, era라면.

;　　　　　　점　　　　　　점
;　　큰길　　점　　　　　　점
;　　　　　　가게 연립주택　점　　표
;뒤 골목길을 통과한다←-----→　통
;　　　　　　가게 연립주택　점　り
;　　　　　　점　　　　　　점
;　　　　　　점　　　　　　점

;--------------------------------------------------
;맵의 함수명
;--------------------------------------------------
@MAP_VIEWING_NAME_2
#FUNCTIONS
RETURNF "SATO"

;--------------------------------------------------
;맵의 묘화
;--------------------------------------------------
@MAP_SATO_1(AA)
#DIMS REF AA, 0
AA:01 = 　||■■■■■■■||　　　■|＝＝|　　□■　　　■■■■■■■■■■■■■■■■■■■■
AA:02 = 　||■　| 히에다■||　　　■|＝＝|삭도□■　　　■　　　■　　■　　　■케이네■└─┘■
AA:03 = 　||■29| 　21　■||　　　■■■■──■■　　　■■■■■■■■■■■■　24　│ 서당 ■
AA:04 = 　||■■■─■■■||　　　　　　　　　　　　북　　　　　　　　　　　　■■─■■　22　■
AA:05 = 　□＝＝●　●＝＝□　　　　　　　　　　　　05　　　　　　　　　　　　　　　　│　　□■
AA:06 = 　　　　　　　　　　　　■■■■■■■■　　　　□＋□■■■──■■■　　　　■□　□■
AA:07 = 　　　　　　　　　　　　■　　■　　　■　　　07＋龍＋■　 집회소 　■　　　　■□　□■
AA:08 = ■■■■■■■■■■　　■■■■■■■■　　　　□＋□■　　 19 　　■　　　　■■─■■
AA:09 = ■　　■ ┃예탄 □■　　■＼／||망■　　　　　　　　　■■─■■─■■
AA:10 = ■　　■ ┃ 38　□■　　■／＼■20■　　　　　　　　　■□　　　　　│
AA:11 = ■■■■■■─■■■　　■■■■─■　　　　　　　　　■■■■■■■■　　■■■■■■●
AA:12 = 　　　　　　　　　　 서 　　　　　　　　　 광장 　　　　　　　　　　　 동 ■목욕■ 28 ■
AA:13 = 　　　　　　　　　　 06 　　　　　　　　　　◇　　　　　　　　　　　　 04 │ 23 │ ♨ ■
AA:14 = 　　　　　　　　　　　　　　　　　　　　　　02　　　　　　　　　　　　　　■　　■━━■
AA:15 = ■■■──■　□□□　　■■─■■■　　　　　　　　　■──■■──■　　■　　│　　■
AA:16 = ■□□여관■　■■■　　■＠꽃집　│　　　　　　　　　■○  야채  ○■　　■　　■ ♨ ■
AA:17 = ■　　 25 ■　■　│　　■＠ 15 　■　　　　　　　　　■□□ 27 □□■　　■■■■■■■
AA:18 = ■■■　　■　■■■연립■■■■■■─■■　　　■■■■■■■■■■■
AA:19 = ■　│　　■　■　│ 14 ■□□ 식료품 　│　　　■　  카페  □■　　■
AA:20 = ■■■　　■　■■■　　■□□　 16 　　■　남　│　　 12 　□■과자■　　■■■■■■■
AA:21 = ■　│　　■　■　│　　■■■■■■■■■　03　■■■■■■■■ 17 │　　■영나암　┃■
AA:22 = ■■■　　■　■■■　　■○○　술집　　■　　　■　 요릿집 □■　　■　　│　13　□┃■
AA:23 = ■　│　　■　■　│　　■○○　 11 　　│　　　│　　 18 　□■□□■　　■□□□　┃■
AA:24 = ■■■　　■　■■■　　■■■■■■■■■　　　■■■■■■■■■■■　　■■■■■■■
AA:25 = ■　│　　■
AA:26 = ■■■■■■■■■■■■■■■■■■■■●　01　●■■■■■■■■■■■■■■■■■■■
AA:27 = 　　　　　　　　　　　　　　　　　　　　　　#e

@MAP_SATO_2(AA)
#DIMS REF AA, 0
AA:00 =
AA:01 = ■■＝■■■＝■■■＝■■■＝■■■＝■■
AA:02 = ■라이코┃ 야츠 ┃ 벤벤 ┃ 유키 ┃ 마이 ■
AA:03 = ■　08　┃　09　┃　10　┃　34　┃　35　■
AA:04 = ■　　　┃　　　┃　　　┃　　　┃　　　■
AA:05 = ■■■■■■■■■■■■■■■■■■■■■　　측　　 우물
AA:06 = ■　　　┃　　　┃ 반키 ┃ 렌코 ┃ 메리 ■　■■■　┏━┓
AA:07 = ■　41　┃　30　┃　31　┃　32　┃　33　■　■36■　┃□┃
AA:08 = ■　　　┃　　　┃　　　┃　　　┃　　　■　■─■　┗━┛
AA:09 = ■■＝■■■＝■■■＝■■■＝■■■＝■■　　　　　　37
AA:10 = 　　　　　　　　　　　　14
AA:11 = 　←남쪽거리　　　　　　　　　　　　　　　　　　서쪽거리→
AA:12 = 　　　03　　　　　　　　01　　　　　　　　02　　　　06
AA:13 = 　　　　　　　　　인간마을문↓　　　　　 광장→↓
AA:14 =

@MAP_SATO_3(AA)
#DIMS REF AA, 0
AA:01 = 　　　■■■■■■■■■■■■■■■■■■■■■■■　■■■■■■
AA:02 = 　　　■┌───────────┘　□□■　　　　■　■呂#Aﾛ日ﾛ■
AA:03 = 　　　■┘　　　　　　┌┐　┌┐　　　□■　　　　■　■　　　　□
AA:04 = 　　　■　┌───┐　││　││　　　　■　　　　■　／　 26 　□
AA:05 = 　동　│　└───┘　└┘　└┘　　□　■　　　　■／■#A呂日#A■
AA:06 = 　04　│　┌───┐　┌┐　┌┐　13□　■■■─■／　■■■■■■
AA:07 = 　　　■　└───┘　││　││　　　　│　　　／■
AA:08 = 　　　■┐　　　　　　└┘　└┘　　　□■■■─■■
AA:09 = 　　　■└───────────┐　□□■　　　　│
AA:10 = 　　　■■■■■■■■■■■■■■■■■■■■■■■

@MAP_SATO_4(AA)
#DIMS REF AA, 0
AA:01 = 　■■■■■■　■■■■■■■■■■■■■■■■■■■■
AA:02 = 　■□□　　■　■└────┘　│○　　　||#B#B　#B#B■
AA:03 = 　■　 39 　＼　■　　　○　　　│○　　　||#B#B　#B#B■
AA:04 = 　■#f#j#g　■＼■─■　　　　　│○ 38 　||　　　　　■
AA:05 = 　■#h#j#i　■　＼　■─────┘　　　　||#B#B　#B#B■
AA:06 = 　■■□□■■　■＼■○○○○○　　　　　||#B#B　#B#B■
AA:07 = 　　　　　　　　■■■■■■■■■■＝＝■■■■■■■■
AA:08 = 　　　　　　　　　　　　　　　┃예┃
AA:09 = 　　　　　　　　　　　　　　　　　　 서 　　　　광장→
AA:10 = 　　　　　　　　　　　　　　　　　　 06 　　　　　02

@ODEKAKEMAP_2(AA)
#DIMS REF AA, 0
;整合性を取る為に拠点マップとだいぶ配置が変わってます
AA:01 = ■■■■■■■■■■■|□|■　　　■■■■■■■■　■■■■■
AA:02 = ■ 宿 ■　　■　■索道|＝|■　　　■ 과자 ■　　■　■ 서당 ■
AA:03 = ■ 06 ■　　■　■　　　■■　　　■■　　■　　■　│　04　■
AA:04 = ■　　■■■■■■■─■■　　　　　■─■■■─■　■■■■■
AA:05 = ■─■■　　　　　　　　　　　　　　　　　　　　　　│　스■■
AA:06 = 　　　　　　　　　　　　　　　◇　　　　　　　　 02 ■■■■■
AA:07 = 　　　　　　　　　　　　　　　01　　　　　　　　　　│　꽃■■
AA:08 = ■■■■■　　■■■　■■　　　　　■■■■■■　　■■■■■
AA:09 = ■　■　│　　│　■　■■■　　　■■■■■八│　　│　食■■
AA:10 = ■■■■■　　■■■　■　■　　　■ 술 ■■■■　　■■■■■
AA:11 = ■　■　│　　　　　　■　│　　　│　　■■　│　　■　탕　■
AA:12 = ■■■■■ 07 ■■■　■■■　　　■■■■■■■　05│　♨　■
AA:13 = ■　■　│　　■　■　■　│　03　│ 鯨 ■■　│　　■　　　■
AA:14 = ■■■■■　　│　■　■　■　　　■　　■■■■　　■■■■■
AA:15 = ■　■　│　　■　■　■■■　　　■■■■■　　　　■　■　■
AA:16 = ■■■■■　　■■■　　　　　　　　　　　　　　　　■■■■■

;--------------------------------------------------
;착색과 치환
;--------------------------------------------------
@DRAW_MAP_BG_2(SLICED)
#DIMS SLICED
SELECTCASE SLICED
;▼着色
CASE "■", "│", "─", "┐", "┌", "└", "┘", "-", "|", "＝", "＼", "／", "＋"
	SETCOLOR C_WOOD1
	PRINTS SLICED
	RESETCOLOR
CASE "□", "●", "┃", "○", "┏", "┓", "┗", "┛", "━"
	SETCOLOR C_WOOD2
	PRINTS SLICED
	RESETCOLOR
CASE "＠"
	SETCOLOR 0xffdc00
	PRINTS SLICED
	RESETCOLOR
CASE "♨"
	SETCOLOR 0x59b9c6
	PRINTS SLICED
	RESETCOLOR
CASE "呂", "ﾛ", "日", "龍"
	SETCOLOR C_STONE1
	PRINTS SLICED
	RESETCOLOR
;▼特殊な表示
CASE "#a", "#b", "#c", "#d", "#e", "#f", "#g", "#h", "#i", "#j", "#k", "#l", "#m", "#n"
	CALL MAP_PRINT(SLICED)
CASE "#A"
	SETCOLOR C_STONE1
	PRINT 品
	RESETCOLOR
CASE "#B"
	SETCOLOR 0x3b7960
	PRINT □
	RESETCOLOR
;ふつうの
CASEELSE
	PRINTS SLICED
ENDSELECT


code:
;--------------------------------------------------
;지점명 변경 함수
;--------------------------------------------------
@MAP_PLACENAME_2(ARG)
#FUNCTIONS
IF GET_MAPID(ARG) == MAIN_MAP
	SELECTCASE ARG
		CASE P230빈방
			IF CFLAG:MASTER:초기위치 == ARG
				RETURNF CALLNAME:MASTER + "의 방"
			ELSE
				RETURNF "빈 방"
			ENDIF
		CASE SUMIKOMI_ROOM
			IF FLAG:더부살이캐릭터
				RETURNF CALLNAME:(FLAG:더부살이캐릭터) + "의 방"
			ELSE
				RETURNF "빈 방"
			ENDIF
		CASE MINROOM() TO (MAXROOM - 1)
			RETURNF STR:(ARG + 8000)
		CASE OMANEKIBEYA()
			RETURNF OMANEKI_PLACE()
		CASE SUKIMA()
			RETURNF "스키마 공간"
		CASE MAXROOM
			RETURNF "마을 밖"
		CASEELSE
			RETURNF "불명"
	ENDSELECT
ELSE
	RETURNF "인간마을 밖"
ENDIF

;--------------------------------------------------
;장소 ARG가 어느 지역에 있는지
;표시하는 맵의 번호와 연동 (TFLAG:맵변환)
;ARG     장소ID
;--------------------------------------------------
@MAP_AREASELECT_2(ARG)
#FUNCTION
SELECTCASE ARG
	;長屋
	CASE P214주택가앞, P230빈방 TO P237공동우물, P208라이코방 TO P210벤벤방, P241빈방
		RETURNF 2
	;鈴奈庵
	CASE P213스즈나안, P226코스즈방
		RETURNF 3
	;鯢呑亭
	CASE P238예탄정, P239미요이방
		RETURNF 4
	;人里
	CASEELSE
		RETURNF 1
ENDSELECT

;--------------------------------------------------
;내부구조가 있는 장소의 내부 판정
;		TFLAG:맵변환	내부감지(察知)가 필요한 맵 번호
;				P_ID  	표시버튼의 장소ID
;				Q_ID  	판정하는 내부 장소ID, 반드시 P_ID와 일치하는 수치도 포함
;--------------------------------------------------
@GETMAP_BUILDING_2(P_ID, Q_ID)
#FUNCTION
#DIM P_ID
#DIM Q_ID
IF TFLAG:맵변환 == 1
	SELECTCASE P_ID
		CASE P213스즈나안
			SELECTCASE Q_ID
			CASE P213스즈나안, P226코스즈방
				RETURNF 1
			ENDSELECT
		CASE P214주택가앞
			SELECTCASE Q_ID
			CASE P214주택가앞, P230빈방 TO P237공동우물, P208라이코방 TO P210벤벤방, P241빈방
				RETURNF 1
			ENDSELECT
		CASE P238예탄정
			SELECTCASE Q_ID
			CASE P238예탄정, P239미요이방
				RETURNF 1
			ENDSELECT
	ENDSELECT
ENDIF
RETURNF 0

;--------------------------------------------------
;이동제한설정
;ARG    장소ID
;CHARA  이동하는 캐릭터ID
;RETURNF 1=이동 가능, 0=이동 불가능
;TFLAG:이동불능메시지   ↓の@MAP_CANNOT_WORD용 설정
;--------------------------------------------------
@MAP_CAN_MOVE_2(ARG, CHARA)
#FUNCTION
#DIM CHARA
SELECTCASE ARG
	CASE P281코토히메방
		IF CHARA == MASTER
			IF FLAG:70
				RETURNF 1
			ELSEIF CFLAG:[[코토히메]]:동행
				RETURNF 1
			ELSEIF TALENT:[[코토히메]]:연모
				RETURNF 1
			ELSEIF TALENT:[[코토히메]]:사모 && CFLAG:[[코토히메]]:현재위치 == ARG
				RETURNF 1
			ELSE
				TFLAG:이동불능메시지 = 1
				RETURNF 0
			ENDIF
		;本人は入れる,相性の良いキャラも入れる
		ELSEIF CHARA == [[코토히메]] || RELATION:[[코토히메]]:CHARA >= 100
			RETURNF 1
		;他は入れない
		ELSE
			RETURNF 0
		ENDIF
	CASE P226코스즈방
		IF CHARA == MASTER
			IF FLAG:70
				RETURNF 1
			ELSEIF CFLAG:[[코스즈]]:동행 || CFLAG:[[아큐]]:동행
				RETURNF 1
			ELSEIF TALENT:[[코스즈]]:연모
				RETURNF 1
			ELSEIF TALENT:[[코스즈]]:사모 && CFLAG:[[코스즈]]:현재위치 == ARG
				RETURNF 1
			ELSE
				TFLAG:이동불능메시지 = 1
				RETURNF 0
			ENDIF
		;本人は入れる,阿求も入れる
		ELSEIF CHARA == [[코스즈]] || CHARA == [[아큐]]
			RETURNF 1
		;他は入れない
		ELSE
			RETURNF 0
		ENDIF
	CASE P229아큐방
		IF CHARA == MASTER
			IF FLAG:70
				RETURNF 1
			ELSEIF CFLAG:[[아큐]]:동행
				RETURNF 1
			ELSEIF TALENT:[[아큐]]:연모
				RETURNF 1
			ELSEIF TALENT:[[아큐]]:사모 && CFLAG:[[아큐]]:현재위치 == ARG
				RETURNF 1
			ELSE
				TFLAG:이동불능메시지 = 1
				RETURNF 0
			ENDIF
		;本人は入れる,相性の良いキャラも入れる
		ELSEIF CHARA == [[아큐]] || RELATION:[[아큐]]:CHARA >= 100
			RETURNF 1
		;他は入れない
		ELSE
			RETURNF 0
		ENDIF
	CASE P239미요이방
		IF CHARA == MASTER
			IF FLAG:시간정지
				RETURNF 1
			ELSEIF CFLAG:[[미요이]]:동행
				RETURNF 1
			ELSEIF TALENT:[[미요이]]:연모
				RETURNF 1
			ELSEIF TALENT:[[미요이]]:사모 && CFLAG:[[미요이]]:현재위치 == ARG
				RETURNF 1
			ELSE
				TFLAG:이동불능메시지 = 1
				RETURNF 0
			ENDIF
		;本人は入れる
		ELSEIF CHARA == [[미요이]]
			RETURNF 1
		;他は入れない
		ELSE
			RETURNF 0
		ENDIF
	;あなた以外は入らない
	CASE P220망루, P225혼숙여관
		SIF CHARA != MASTER
			RETURNF 0
	;あなた以外は入らない,貸し切っていないと入れない
	CASE P228대절욕탕
		IF CHARA != MASTER
			RETURNF 0
		ELSEIF !욕탕대절(DAY)
			TFLAG:이동불능메시지 = 2
			RETURNF 0
		ENDIF
	;誰かが住んでないと入れない
	CASE P230빈방, P241빈방
		IF !PRIVATEROOM:(ARG % 100) && CFLAG:MASTER:초기위치 != ARG
			TFLAG:이동불능메시지 = 999
			RETURNF 0
		ENDIF
ENDSELECT
RETURNF 1

;--------------------------------------------------
;대절욕장에 들어갈때의 판정
;유사 TFLAG로 취급, 날짜가 바뀌면 종료
;ARG = DAY
;--------------------------------------------------
@욕탕대절(ARG, 대절한다)
#FUNCTION
#DIM 대절일
#DIM 대절한다
IF 대절한다
	대절일 = ARG
	RETURNF 1
ELSEIF 대절일 == ARG
	RETURNF 1
ENDIF
RETURNF 0

;--------------------------------------------------
;이동불능시 표시되는 메시지
;--------------------------------------------------
@MAP_CANNOT_WORD_2(ARG)
SELECTCASE TFLAG:이동불능메시지
	CASE 1
		PRINTFORMW 함부로 들어가는 것은 좋지 않다
	CASE 2
		PRINTFORMW 직접 들어가려면 대절하지 않으면 안된다
ENDSELECT
CLEARLINE 2
REUSELASTLINE

;-----------------------------------------
;거점 전용의 정경묘사
;WAIT는 걸리지 않도록
;-----------------------------------------
@MAP_UNIQUEMESSAGE_2
IF WITH_MOB()
	RETURN 1
ELSE
	SELECTCASE CFLAG:MASTER:현재위치
		CASE P205북쪽거리
			IF INRANGE(TIME, 540, 1020)
				PRINTFORML 보기에도 의욕이 없어 보이는 캇파가 삭도의 접수를 받고 있다
			ELSE
				PRINTFORML 삭도역은 닫혀 있다
			ENDIF
		CASE P213스즈나안
			PRINTFORML 가게 안에는 많은 책장이 늘어서 있다
		CASE P222서당
			IF TIME >= 480 && TIME <= 720 || TIME >= 780 && TIME <= 840 && FLAG:시간정지 != 1
				PRINTDATA
					DATAFORM 서당의 아이들은 %타겟의% 수업을 받고 있다…
				ENDDATA
				PRINTL
			ELSEIF TIME >= 720 && TIME <= 780 && FLAG:시간정지 != 1
				PRINTDATA
					DATAFORM 서당의 아이들은 %타겟과% 식사하고 있다…
				ENDDATA
				PRINTL
			ELSEIF TIME >= 480 && TIME <= 840 && FLAG:시간정지 == 1 && !CFLAG:MASTER:우후후
				PRINTDATA
					DATAFORM 서당의 아이들은 정지해 있다…
				ENDDATA
				PRINTL
			ELSEIF TIME >= 480 && TIME <= 840 && FLAG:시간정지 == 1 && CFLAG:MASTER:우후후
				PRINTDATA
					DATAFORM %타겟은% 서당의 아이들의 앞에서 습격당하고 있다…
				ENDDATA
				PRINTL
			ENDIF
		CASE P203남쪽거리 TO P206서쪽거리
			SIF !RAND:50 && INRANGE(TIME, 540, 1020)
				PRINTFORML 약봉지를 든 수염난 남자가, 행인에게 무엇인가 열심히 말하고 있다
		;CASE P280경찰서
		;	PRINTFORML 지하로 향하는 문에 '극악무도한 범죄자 전용' 이라 쓰여있다...
	ENDSELECT
ENDIF
RETURN 1

;-----------------------------------------
;거점의 장소ID를 외출맵상의 장소ID로 치환하는 함수
;ARG      대상의 장소ID (거점맵)
;RETURNF  교체 장소ID (외출맵)
;-----------------------------------------
@MAP_SEARCH_REPLACEMENT_2(ARG)
#FUNCTION
SELECTCASE ARG
	CASE P280경찰서, P281코토히메방
		RETURNF 광장
	CASE P201인간마을문 TO P207용신상, P217과자가게, P219집회소, P220망루
		RETURNF 광장
	CASE P213스즈나안, P215꽃집, P216식료품가게, P226코스즈방, P227야채가게
		RETURNF 상가거리
	CASE P223대중목욕탕, P228대절욕탕
		RETURNF 대중목욕탕
	CASE P225혼숙여관
		RETURNF 혼숙여관
	CASE P211술집, P212카페, P218일품요릿집, P238예탄정, P239미요이방
		RETURNF 술집소로
	CASE P222서당, P224케이네댁
		RETURNF 서당
	CASEELSE
		RETURNF 주택가
ENDSELECT
RETURNF 0

;--------------------------------------------------
;맵의 소개문
;--------------------------------------------------
@MAP소개_2
;とりあえず5行
PRINTFORML 만화등으로 친숙한 인간 마을.
PRINTFORML 다른 지역에 접근성이 좋고, 스즈나암 등 각종 시설이 잘 갖춰져 있어 업무차 정기적으로 내방하는 캐릭터도 많지만,
PRINTFORML 텃밭을 가꿀 수 없고, 채집 장소가 존재하지 않는다는 단점이 있다.
PRINTFORML 요괴의 산 꼭대기로 가는 삭도가 있다.
PRINTFORML