feat: 게임 가제 'One of the plans' UI 텍스트 적용

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-25 00:18:13 +09:00
parent 28c1b377df
commit f77a7e0e23

26
main.go
View File

@@ -306,7 +306,7 @@ func downloadWithProgress(downloadURL, destDir string) error {
y := (screenH - winH) / 2 y := (screenH - winH) / 2
// 창 타이틀은 비워서 타이틀바를 최소화 // 창 타이틀은 비워서 타이틀바를 최소화
titleStr, _ := windows.UTF16PtrFromString("A301 런처") titleStr, _ := windows.UTF16PtrFromString("One of the plans 런처")
hwnd, _, _ := createWindowExWProc.Call( hwnd, _, _ := createWindowExWProc.Call(
0, 0,
uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(className)),
@@ -328,7 +328,7 @@ func downloadWithProgress(downloadURL, destDir string) error {
// y=14 h=28 → "A301" 타이틀 (13pt bold, 강조색) // y=14 h=28 → "A301" 타이틀 (13pt bold, 강조색)
// y=52 h=20 → 상태 텍스트 (9pt, 밝은 회색) // y=52 h=20 → 상태 텍스트 (9pt, 밝은 회색)
// y=82 h=18 → 진행 막대 // y=82 h=18 → 진행 막대
titleText, _ := windows.UTF16PtrFromString("A301") titleText, _ := windows.UTF16PtrFromString("One of the plans")
titleLabelHwnd, _, _ = createWindowExWProc.Call( titleLabelHwnd, _, _ = createWindowExWProc.Call(
0, 0,
uintptr(unsafe.Pointer(staticClass)), uintptr(unsafe.Pointer(staticClass)),
@@ -560,7 +560,7 @@ func install() error {
return fmt.Errorf("레지스트리 키 생성 실패: %w", err) return fmt.Errorf("레지스트리 키 생성 실패: %w", err)
} }
defer key.Close() defer key.Close()
key.SetStringValue("", "URL:A301 Protocol") key.SetStringValue("", "URL:One of the plans Protocol")
key.SetStringValue("URL Protocol", "") key.SetStringValue("URL Protocol", "")
cmdKey, _, err := registry.CreateKey(registry.CURRENT_USER, `Software\Classes\`+protocolName+`\shell\open\command`, registry.SET_VALUE) cmdKey, _, err := registry.CreateKey(registry.CURRENT_USER, `Software\Classes\`+protocolName+`\shell\open\command`, registry.SET_VALUE)
@@ -658,15 +658,15 @@ func main() {
enableDPIAwareness() enableDPIAwareness()
if len(os.Args) < 2 { if len(os.Args) < 2 {
ret := msgBox("A301 런처", "게임 실행을 위해 프로토콜을 등록합니다.\n계속하시겠습니까?", mbYesNo|mbQ) ret := msgBox("One of the plans 런처", "게임 실행을 위해 프로토콜을 등록합니다.\n계속하시겠습니까?", mbYesNo|mbQ)
if ret != idYes { if ret != idYes {
return return
} }
if err := install(); err != nil { if err := install(); err != nil {
msgBox("A301 런처 - 오류", fmt.Sprintf("등록 실패:\n%v", err), mbOK|mbError) msgBox("One of the plans 런처 - 오류", fmt.Sprintf("등록 실패:\n%v", err), mbOK|mbError)
os.Exit(1) os.Exit(1)
} }
msgBox("A301 런처", "a301:// 프로토콜이 등록되었습니다.\n이제 웹에서 게임 시작 버튼을 사용할 수 있습니다.", mbOK|mbInfo) msgBox("One of the plans 런처", "a301:// 프로토콜이 등록되었습니다.\n이제 웹에서 게임 시작 버튼을 사용할 수 있습니다.", mbOK|mbInfo)
return return
} }
@@ -674,33 +674,33 @@ func main() {
switch { switch {
case arg == "install": case arg == "install":
if err := install(); err != nil { if err := install(); err != nil {
msgBox("A301 런처 - 오류", fmt.Sprintf("등록 실패:\n%v", err), mbOK|mbError) msgBox("One of the plans 런처 - 오류", fmt.Sprintf("등록 실패:\n%v", err), mbOK|mbError)
os.Exit(1) os.Exit(1)
} }
msgBox("A301 런처", "a301:// 프로토콜이 등록되었습니다.", mbOK|mbInfo) msgBox("One of the plans 런처", "a301:// 프로토콜이 등록되었습니다.", mbOK|mbInfo)
case arg == "uninstall": case arg == "uninstall":
if err := uninstall(); err != nil { if err := uninstall(); err != nil {
msgBox("A301 런처 - 오류", fmt.Sprintf("제거 실패:\n%v", err), mbOK|mbError) msgBox("One of the plans 런처 - 오류", fmt.Sprintf("제거 실패:\n%v", err), mbOK|mbError)
os.Exit(1) os.Exit(1)
} }
msgBox("A301 런처", "a301:// 프로토콜이 제거되었습니다.", mbOK|mbInfo) msgBox("One of the plans 런처", "a301:// 프로토콜이 제거되었습니다.", mbOK|mbInfo)
case strings.HasPrefix(arg, protocolName+"://"): case strings.HasPrefix(arg, protocolName+"://"):
if err := handleURI(arg); err != nil { if err := handleURI(arg); err != nil {
if strings.Contains(err.Error(), "버전이 최신이 아닙니다") { if strings.Contains(err.Error(), "버전이 최신이 아닙니다") {
ret := msgBox("A301 - 업데이트 필요", "새로운 버전이 있습니다. 다운로드 페이지로 이동할까요?", mbYesNo|mbInfo) ret := msgBox("One of the plans - 업데이트 필요", "새로운 버전이 있습니다. 다운로드 페이지로 이동할까요?", mbYesNo|mbInfo)
if ret == idYes { if ret == idYes {
openBrowser(webURL) openBrowser(webURL)
} }
} else { } else {
msgBox("A301 런처 - 오류", fmt.Sprintf("실행 실패:\n%v", err), mbOK|mbError) msgBox("One of the plans 런처 - 오류", fmt.Sprintf("실행 실패:\n%v", err), mbOK|mbError)
} }
os.Exit(1) os.Exit(1)
} }
default: default:
msgBox("A301 런처 - 오류", fmt.Sprintf("알 수 없는 명령: %s", arg), mbOK|mbError) msgBox("One of the plans 런처 - 오류", fmt.Sprintf("알 수 없는 명령: %s", arg), mbOK|mbError)
os.Exit(1) os.Exit(1)
} }
} }