Skip to content

Commit a875be5

Browse files
committed
triggers: Default engine values
1 parent b498a41 commit a875be5

3 files changed

Lines changed: 43 additions & 11 deletions

File tree

assets/triggers_gforce.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
11
icon_scale: 0.25
2-
extra_values:
3-
0: { name: Visual Object, type: hashcode }
4-
1: { name: File, type: hashcode }
5-
2: { name: Script Index, type: u32 }
6-
3: { name: Collision Index, type: u32 }
72
triggers:
83
0:
94
name: OB_Static

assets/triggers_spyro.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
11
icon_scale: 1.25
2-
extra_values:
3-
0: { name: Visual Object, type: hashcode }
4-
1: { name: File, type: hashcode }
5-
4: { name: Trigger Color, type: u32 }
62
triggers:
73
0x41000001:
84
name: HT_TriggerType_Undefined

eurochef/shared/src/maps.rs

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,47 @@ fn default_icon_scale() -> f32 {
2727
0.25
2828
}
2929

30-
#[derive(Default, Clone, Debug, Deserialize)]
30+
fn default_engine_values() -> BTreeMap<u32, TriggerValue> {
31+
BTreeMap::from([
32+
(
33+
0,
34+
TriggerValue::new(Some("Visual Object"), TrigDataType::Hashcode),
35+
),
36+
(1, TriggerValue::new(Some("File"), TrigDataType::Hashcode)),
37+
(
38+
2,
39+
TriggerValue::new(Some("Script Index"), TrigDataType::U32),
40+
),
41+
(
42+
3,
43+
TriggerValue::new(Some("Collision Index"), TrigDataType::U32),
44+
),
45+
(
46+
4,
47+
TriggerValue::new(Some("Trigger Color"), TrigDataType::U32),
48+
),
49+
])
50+
}
51+
52+
#[derive(Clone, Debug, Deserialize)]
3153
pub struct TriggerInformation {
3254
#[serde(default = "default_icon_scale")]
3355
pub icon_scale: f32,
34-
#[serde(default)]
56+
#[serde(default = "default_engine_values")]
3557
pub extra_values: BTreeMap<u32, TriggerValue>,
3658
pub triggers: BTreeMap<u32, TriggerDefinition>,
3759
}
3860

61+
impl Default for TriggerInformation {
62+
fn default() -> Self {
63+
Self {
64+
icon_scale: default_icon_scale(),
65+
extra_values: default_engine_values(),
66+
triggers: Default::default(),
67+
}
68+
}
69+
}
70+
3971
#[derive(Clone, Debug, Deserialize)]
4072
pub struct TriggerDefinition {
4173
pub name: String,
@@ -51,6 +83,15 @@ pub struct TriggerValue {
5183
pub dtype: TrigDataType,
5284
}
5385

86+
impl TriggerValue {
87+
pub fn new(name: Option<&str>, dtype: TrigDataType) -> Self {
88+
Self {
89+
name: name.map(|v| v.to_owned()),
90+
dtype,
91+
}
92+
}
93+
}
94+
5495
#[derive(Copy, Clone, Debug, Deserialize)]
5596
#[serde(rename_all = "lowercase")]
5697
pub enum TrigDataType {

0 commit comments

Comments
 (0)