인게임 난이도별 재시작 버튼 병합
=============================

① 이번 예제에서 할 작업

게임 화면 오른쪽에 일반 / 악몽 / 지옥 재시작 버튼을 세로로 추가합니다.
각 버튼은 저장 및 종료 후 선택한 난이도로 바로 재입장합니다.


② 수정할 파일

[수정할 기존 파일]
data/global/ui/layouts/hudpanelhd.json

[새로 복사할 파일]
data/global/ui/layouts/quickrestarthudhd.json
data/global/ui/layouts/quickrestarthellactionhd.json
data/global/ui/layouts/quickrestartnightmareactionhd.json
data/global/ui/layouts/quickrestartnormalactionhd.json
data/global/ui/layouts/quickcreategamehd.json
data/global/ui/layouts/quickcreategame_nmhd.json
data/global/ui/layouts/quickcreategame_normalhd.json

[복사할 에셋]
data/hd/global/ui/panel/quick_restart/restart_hell.sprite
data/hd/global/ui/panel/quick_restart/restart_hell.lowend.sprite
data/hd/global/ui/panel/quick_restart/restart_nightmare.sprite
data/hd/global/ui/panel/quick_restart/restart_nightmare.lowend.sprite
data/hd/global/ui/panel/quick_restart/restart_normal.sprite
data/hd/global/ui/panel/quick_restart/restart_normal.lowend.sprite


③ 찾아야 할 위치

hudpanelhd.json의 최상위 "children" 배열 끝부분을 찾습니다.

"children": [
    ...기존 HUD 항목...
]

이 배열 안에 QuickRestartHud를 여는 TimerWidget을 추가합니다.


④ 실제로 삽입할 코드

{
    "type": "TimerWidget",
    "name": "OpenQuickRestartHud",
    "fields": {
        "time": 0,
        "message": "PanelManager:OpenPanel:QuickRestartHud"
    }
}

quickrestarthudhd.json에는 다음 세 버튼이 들어갑니다.

[지옥]
"rect": { "x": 2850, "y": 335, "width": 64, "height": 64, "scale": 1.0 }
"filename": "PANEL\\quick_restart\\restart_hell"
"onClickMessage": "PanelManager:OpenPanel:QuickRestartHellAction"

[악몽]
"rect": { "x": 2850, "y": 260, "width": 64, "height": 64, "scale": 1.0 }
"filename": "PANEL\\quick_restart\\restart_nightmare"
"onClickMessage": "PanelManager:OpenPanel:QuickRestartNightmareAction"

[일반]
"rect": { "x": 2850, "y": 185, "width": 64, "height": 64, "scale": 1.0 }
"filename": "PANEL\\quick_restart\\restart_normal"
"onClickMessage": "PanelManager:OpenPanel:QuickRestartNormalAction"

각 Action 파일은 대응하는 quickcreategame 패널을 엽니다.

지옥   -> quickcreategame       -> CharacterSelect:LoadCharacter:2
악몽   -> quickcreategame_nm    -> CharacterSelect:LoadCharacter:1
일반   -> quickcreategame_normal -> CharacterSelect:LoadCharacter:0


⑤ 삽입 후 형태

hudpanelhd.json에는 기존 항목을 유지한 채 아래 TimerWidget만 추가됩니다.

"children": [
    ...기존 HUD 항목...,

    {
        "type": "TimerWidget",
        "name": "OpenQuickRestartHud",
        "fields": {
            "time": 0,
            "message": "PanelManager:OpenPanel:QuickRestartHud"
        }
    }
]


⑥ 적용 원리

QuickRestartHud의 버튼은 먼저 대응하는 PausePanel 중계 파일을 엽니다.
그 중계 패널이 저장 및 종료 + 난이도 로드 명령을 가진 quickcreategame 패널로 연결합니다.
기본값은 위에서부터 정배열(일반-악몽-지옥)입니다.
역배열을 쓰려면 일반의 y를 335, 지옥의 y를 185로 서로 바꾸고 악몽 y=260은 유지합니다.
자동 인스톨러에서는 이 두 배열을 드롭다운으로 선택할 수 있습니다.
QuickRestartHud도 PlayerInventoryPanel이므로 "보관함 금화 호환.txt"를 함께 적용해야 합니다.
