42 lines
884 B
Go
42 lines
884 B
Go
package topdata
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
func importLegacyBaseDialog(referenceBuilderDir, sourceDir string) (int, error) {
|
|
legacyPath := filepath.Join(referenceBuilderDir, "tlk", "base.json")
|
|
if _, err := os.Stat(legacyPath); err != nil {
|
|
if os.IsNotExist(err) {
|
|
return 0, nil
|
|
}
|
|
return 0, err
|
|
}
|
|
|
|
targetPath := filepath.Join(sourceDir, "base_dialog.json")
|
|
if fileExists(targetPath) {
|
|
current, err := loadJSONObject(targetPath)
|
|
if err == nil {
|
|
if entries, ok := current["entries"].(map[string]any); ok && len(entries) > 0 {
|
|
return 0, nil
|
|
}
|
|
}
|
|
}
|
|
|
|
obj, err := loadJSONObject(legacyPath)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
raw, err := json.MarshalIndent(obj, "", " ")
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
raw = append(raw, '\n')
|
|
if err := os.WriteFile(targetPath, raw, 0o644); err != nil {
|
|
return 0, err
|
|
}
|
|
return 1, nil
|
|
}
|