1use std::fs;
5use std::path::Path;
6
7use binrw::binrw;
8
9#[binrw]
10#[brw(repr(u8))]
11#[repr(u8)]
12#[derive(Copy, Clone)]
13pub enum Language {
15 None,
17 Japanese,
19 English,
21 German,
23 French,
25 ChineseSimplified,
27 ChineseTraditional,
29 Korean,
31}
32
33pub fn get_language_code(lang: &Language) -> &'static str {
35 match &lang {
36 Language::None => "",
37 Language::Japanese => "ja",
38 Language::English => "en",
39 Language::German => "de",
40 Language::French => "fr",
41 Language::ChineseSimplified => "chs",
42 Language::ChineseTraditional => "cht",
43 Language::Korean => "ko",
44 }
45}
46
47#[binrw]
49#[brw(repr = i16)]
50#[derive(Debug, PartialEq, Eq)]
51pub enum Region {
52 Global = -1,
54 KoreaChina = 1,
56}
57
58pub fn read_version(p: &Path) -> Option<String> {
60 fs::read_to_string(p).ok()
61}
62
63#[binrw]
64#[brw(repr = u8)]
65#[derive(Clone, Debug, PartialEq, Eq)]
66pub enum Platform {
67 Win32 = 0x0,
69 PS3 = 0x1,
71 PS4 = 0x2,
73 PS5 = 0x3,
75 Xbox = 0x4,
77}
78
79pub fn get_platform_string(id: &Platform) -> &'static str {
80 match &id {
81 Platform::Win32 => "win32",
82 Platform::PS3 => "ps3",
83 Platform::PS4 => "ps4",
84 Platform::PS5 => "ps5",
85 Platform::Xbox => "lys",
86 }
87}