1use crate::Bgm;
2use crate::Me;
3use crate::Se;
4use crate::SystemTerms;
5use crate::SystemTestBattler;
6use crate::SystemVehicle;
7use crate::Table;
8
9#[derive(
10 Debug,
11 serde::Serialize,
12 serde::Deserialize,
13 ruby_marshal_derive::FromValue,
14 ruby_marshal_derive::IntoValue,
15)]
16#[ruby_marshal(object = b"RPG::System")]
17pub struct System {
18 #[ruby_marshal(
19 from_value = "crate::util::ruby_string2string",
20 into_value = "crate::util::string2ruby_string"
21 )]
22 pub game_title: String,
23 pub version_id: i32,
24 pub party_members: Vec<i32>,
25 #[ruby_marshal(
26 from_value = "crate::util::optional_ruby_string_array2optional_string_array",
27 into_value = "crate::util::optional_string_array2optional_ruby_string_array"
28 )]
29 pub elements: Vec<Option<String>>,
30 #[ruby_marshal(
31 from_value = "crate::util::optional_ruby_string_array2optional_string_array",
32 into_value = "crate::util::optional_string_array2optional_ruby_string_array"
33 )]
34 pub switches: Vec<Option<String>>,
35 #[ruby_marshal(
36 from_value = "crate::util::optional_ruby_string_array2optional_string_array",
37 into_value = "crate::util::optional_string_array2optional_ruby_string_array"
38 )]
39 pub variables: Vec<Option<String>>,
40 pub passages: Table,
41 pub boat: SystemVehicle,
42 pub ship: SystemVehicle,
43 pub airship: SystemVehicle,
44 pub title_bgm: Bgm,
45 pub battle_bgm: Bgm,
46 pub battle_end_me: Me,
47 pub gameover_me: Me,
48 pub sounds: Vec<Se>,
49 pub test_battlers: Vec<SystemTestBattler>,
50 pub test_troop_id: i32,
51 pub start_map_id: i32,
52 pub start_x: i32,
53 pub start_y: i32,
54 pub terms: SystemTerms,
55 #[ruby_marshal(
56 from_value = "crate::util::ruby_string2string",
57 into_value = "crate::util::string2ruby_string"
58 )]
59 pub battler_name: String,
60 pub battler_hue: i32,
61 pub edit_map_id: i32,
62 #[ruby_marshal(name = b"@_")]
63 pub underscore: i32,
64 pub magic_number: i32,
65}