Skip to content

Commit

Permalink
fix: timer interval signed (#88)
Browse files Browse the repository at this point in the history
fixes #87
  • Loading branch information
francisdb authored Jun 9, 2024
1 parent b89ef83 commit 16a0e2a
Show file tree
Hide file tree
Showing 12 changed files with 51 additions and 51 deletions.
8 changes: 4 additions & 4 deletions src/vpx/gameitem/flipper.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ pub struct Flipper {
override_physics: u32,
mass: f32,
is_timer_enabled: bool,
timer_interval: u32,
timer_interval: i32,
surface: String,
material: String,
pub name: String,
Expand Down Expand Up @@ -65,7 +65,7 @@ pub(crate) struct FlipperJson {
override_physics: u32,
mass: f32,
is_timer_enabled: bool,
timer_interval: u32,
timer_interval: i32,
surface: String,
material: String,
name: String,
Expand Down Expand Up @@ -296,7 +296,7 @@ impl BiffRead for Flipper {
flipper.is_timer_enabled = reader.get_bool();
}
"TMIN" => {
flipper.timer_interval = reader.get_u32();
flipper.timer_interval = reader.get_i32();
}
"SURF" => {
flipper.surface = reader.get_string();
Expand Down Expand Up @@ -410,7 +410,7 @@ impl BiffWrite for Flipper {
writer.write_tagged_u32("OVRP", self.override_physics);
writer.write_tagged_f32("FORC", self.mass);
writer.write_tagged_bool("TMON", self.is_timer_enabled);
writer.write_tagged_u32("TMIN", self.timer_interval);
writer.write_tagged_i32("TMIN", self.timer_interval);
writer.write_tagged_string("SURF", &self.surface);
writer.write_tagged_string("MATR", &self.material);
writer.write_tagged_wide_string("NAME", &self.name);
Expand Down
8 changes: 4 additions & 4 deletions src/vpx/gameitem/gate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ pub struct Gate {
pub is_timer_enabled: bool, // 6 TMON
pub show_bracket: bool, // 7 GSUP
pub is_collidable: bool, // 8 GCOL
pub timer_interval: u32, // 9 TMIN
pub timer_interval: i32, // 9 TMIN
pub imgf: Option<String>, // IMGF (was in use in 10.01)
pub imgb: Option<String>, // IMGB (was in use in 10.01)
pub surface: String, // 10 SURF
Expand Down Expand Up @@ -147,7 +147,7 @@ pub(crate) struct GateJson {
is_timer_enabled: bool,
show_bracket: bool,
is_collidable: bool,
timer_interval: u32,
timer_interval: i32,
imgf: Option<String>,
imgb: Option<String>,
surface: String,
Expand Down Expand Up @@ -285,7 +285,7 @@ impl BiffRead for Gate {
gate.is_collidable = reader.get_bool();
}
"TMIN" => {
gate.timer_interval = reader.get_u32();
gate.timer_interval = reader.get_i32();
}
"IMGF" => {
gate.imgf = Some(reader.get_string());
Expand Down Expand Up @@ -368,7 +368,7 @@ impl BiffWrite for Gate {
writer.write_tagged_bool("TMON", self.is_timer_enabled);
writer.write_tagged_bool("GSUP", self.show_bracket);
writer.write_tagged_bool("GCOL", self.is_collidable);
writer.write_tagged_u32("TMIN", self.timer_interval);
writer.write_tagged_i32("TMIN", self.timer_interval);
if let Some(imgf) = &self.imgf {
writer.write_tagged_string("IMGF", imgf);
}
Expand Down
12 changes: 6 additions & 6 deletions src/vpx/gameitem/hittarget.rs
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ pub struct HitTarget {
pub is_dropped: bool,
pub drop_speed: f32,
pub is_timer_enabled: bool,
pub timer_interval: u32,
pub timer_interval: i32,
pub raise_delay: Option<u32>,
// RADE (added in 10.?)
pub physics_material: Option<String>,
Expand Down Expand Up @@ -212,7 +212,7 @@ impl Default for HitTarget {
let is_dropped: bool = false;
let drop_speed: f32 = 0.5;
let is_timer_enabled: bool = false;
let timer_interval: u32 = 0;
let timer_interval: i32 = 0;
let raise_delay: Option<u32> = None; //100;
let physics_material: Option<String> = None;
let overwrite_physics: Option<bool> = None; //false;
Expand Down Expand Up @@ -285,7 +285,7 @@ struct HitTargetJson {
is_dropped: bool,
drop_speed: f32,
is_timer_enabled: bool,
timer_interval: u32,
timer_interval: i32,
raise_delay: Option<u32>,
physics_material: Option<String>,
overwrite_physics: Option<bool>,
Expand Down Expand Up @@ -412,7 +412,7 @@ impl BiffRead for HitTarget {
let mut is_dropped: bool = false;
let mut drop_speed: f32 = 0.5;
let mut is_timer_enabled: bool = false;
let mut timer_interval: u32 = 0;
let mut timer_interval: i32 = 0;
let mut raise_delay: Option<u32> = None; //100;
let mut physics_material: Option<String> = None;
let mut overwrite_physics: Option<bool> = None; //false;
Expand Down Expand Up @@ -503,7 +503,7 @@ impl BiffRead for HitTarget {
"TMON" => {
is_timer_enabled = reader.get_bool();
}
"TMIN" => timer_interval = reader.get_u32(),
"TMIN" => timer_interval = reader.get_i32(),
"RADE" => raise_delay = Some(reader.get_u32()),
"MAPH" => physics_material = Some(reader.get_string()),
"OVPH" => overwrite_physics = Some(reader.get_bool()),
Expand Down Expand Up @@ -600,7 +600,7 @@ impl BiffWrite for HitTarget {
writer.write_tagged_bool("ISDR", self.is_dropped);
writer.write_tagged_f32("DRSP", self.drop_speed);
writer.write_tagged_bool("TMON", self.is_timer_enabled);
writer.write_tagged_u32("TMIN", self.timer_interval);
writer.write_tagged_i32("TMIN", self.timer_interval);
if let Some(raise_delay) = self.raise_delay {
writer.write_tagged_u32("RADE", raise_delay);
}
Expand Down
8 changes: 4 additions & 4 deletions src/vpx/gameitem/kicker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ pub struct Kicker {
center: Vertex2D,
radius: f32,
is_timer_enabled: bool,
timer_interval: u32,
timer_interval: i32,
material: String,
surface: String,
is_enabled: bool,
Expand All @@ -161,7 +161,7 @@ struct KickerJson {
center: Vertex2D,
radius: f32,
is_timer_enabled: bool,
timer_interval: u32,
timer_interval: i32,
material: String,
surface: String,
is_enabled: bool,
Expand Down Expand Up @@ -292,7 +292,7 @@ impl BiffRead for Kicker {
kicker.is_timer_enabled = reader.get_bool();
}
"TMIN" => {
kicker.timer_interval = reader.get_u32();
kicker.timer_interval = reader.get_i32();
}
"MATR" => {
kicker.material = reader.get_string();
Expand Down Expand Up @@ -360,7 +360,7 @@ impl BiffWrite for Kicker {
writer.write_tagged("VCEN", &self.center);
writer.write_tagged_f32("RADI", self.radius);
writer.write_tagged_bool("TMON", self.is_timer_enabled);
writer.write_tagged_u32("TMIN", self.timer_interval);
writer.write_tagged_i32("TMIN", self.timer_interval);
writer.write_tagged_string("MATR", &self.material);
writer.write_tagged_string("SURF", &self.surface);
writer.write_tagged_bool("EBLD", self.is_enabled);
Expand Down
10 changes: 5 additions & 5 deletions src/vpx/gameitem/light.rs
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ pub struct Light {
pub color: Color, // COLR
pub color2: Color, // COL2
pub is_timer_enabled: bool, // TMON
pub timer_interval: u32, // TMIN
pub timer_interval: i32, // TMIN
pub blink_pattern: String, // BPAT
pub off_image: String, // IMG1
pub blink_interval: u32, // BINT
Expand Down Expand Up @@ -248,7 +248,7 @@ struct LightJson {
color: Color,
color2: Color,
is_timer_enabled: bool,
timer_interval: u32,
timer_interval: i32,
blink_pattern: String,
off_image: String,
blink_interval: u32,
Expand Down Expand Up @@ -394,7 +394,7 @@ impl Default for Light {
// Default to 2700K incandescent bulb (burst is useless since VPX is HDR)
let color2: Color = Color::rgb(255, 169, 87);
let is_timer_enabled: bool = false;
let timer_interval: u32 = Default::default();
let timer_interval: i32 = Default::default();
let blink_pattern: String = "10".to_owned();
let off_image: String = Default::default();
let blink_interval: u32 = Default::default();
Expand Down Expand Up @@ -484,7 +484,7 @@ impl BiffRead for Light {
"COLR" => light.color = Color::biff_read(reader),
"COL2" => light.color2 = Color::biff_read(reader),
"TMON" => light.is_timer_enabled = reader.get_bool(),
"TMIN" => light.timer_interval = reader.get_u32(),
"TMIN" => light.timer_interval = reader.get_i32(),
"BPAT" => light.blink_pattern = reader.get_string(),
"IMG1" => light.off_image = reader.get_string(),
"BINT" => light.blink_interval = reader.get_u32(),
Expand Down Expand Up @@ -548,7 +548,7 @@ impl BiffWrite for Light {
writer.write_tagged_with("COLR", &self.color, Color::biff_write);
writer.write_tagged_with("COL2", &self.color2, Color::biff_write);
writer.write_tagged_bool("TMON", self.is_timer_enabled);
writer.write_tagged_u32("TMIN", self.timer_interval);
writer.write_tagged_i32("TMIN", self.timer_interval);
writer.write_tagged_string("BPAT", &self.blink_pattern);
writer.write_tagged_string("IMG1", &self.off_image);
writer.write_tagged_u32("BINT", self.blink_interval);
Expand Down
8 changes: 4 additions & 4 deletions src/vpx/gameitem/lightsequencer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ pub struct LightSequencer {
pos_y: f32,
update_interval: u32,
is_timer_enabled: bool,
timer_interval: u32,
timer_interval: i32,
pub name: String,
backglass: bool,

Expand All @@ -34,7 +34,7 @@ struct LightSequencerJson {
pos_y: f32,
update_interval: u32,
is_timer_enabled: bool,
timer_interval: u32,
timer_interval: i32,
name: String,
backglass: bool,
}
Expand Down Expand Up @@ -145,7 +145,7 @@ impl BiffRead for LightSequencer {
light_sequencer.is_timer_enabled = reader.get_bool();
}
"TMIN" => {
light_sequencer.timer_interval = reader.get_u32();
light_sequencer.timer_interval = reader.get_i32();
}
"NAME" => {
light_sequencer.name = reader.get_wide_string();
Expand Down Expand Up @@ -189,7 +189,7 @@ impl BiffWrite for LightSequencer {
writer.write_tagged_f32("CTRY", self.pos_y);
writer.write_tagged_u32("UPTM", self.update_interval);
writer.write_tagged_bool("TMON", self.is_timer_enabled);
writer.write_tagged_u32("TMIN", self.timer_interval);
writer.write_tagged_i32("TMIN", self.timer_interval);
writer.write_tagged_wide_string("NAME", &self.name);
writer.write_tagged_bool("BGLS", self.backglass);

Expand Down
8 changes: 4 additions & 4 deletions src/vpx/gameitem/plunger.rs
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ pub struct Plunger {
scatter_velocity: f32,
momentum_xfer: f32,
is_timer_enabled: bool,
timer_interval: u32,
timer_interval: i32,
is_visible: bool,
is_reflection_enabled: Option<bool>, // REEN (was missing in 10.01)
surface: String,
Expand Down Expand Up @@ -213,7 +213,7 @@ struct PlungerJson {
scatter_velocity: f32,
momentum_xfer: f32,
is_timer_enabled: bool,
timer_interval: u32,
timer_interval: i32,
is_visible: bool,
is_reflection_enabled: Option<bool>,
surface: String,
Expand Down Expand Up @@ -402,7 +402,7 @@ impl BiffRead for Plunger {
plunger.is_timer_enabled = reader.get_bool();
}
"TMIN" => {
plunger.timer_interval = reader.get_u32();
plunger.timer_interval = reader.get_i32();
}
"VSBL" => {
plunger.is_visible = reader.get_bool();
Expand Down Expand Up @@ -491,7 +491,7 @@ impl BiffWrite for Plunger {
writer.write_tagged_f32("PSCV", self.scatter_velocity);
writer.write_tagged_f32("MOMX", self.momentum_xfer);
writer.write_tagged_bool("TMON", self.is_timer_enabled);
writer.write_tagged_u32("TMIN", self.timer_interval);
writer.write_tagged_i32("TMIN", self.timer_interval);
writer.write_tagged_bool("VSBL", self.is_visible);
if let Some(is_reflection_enabled) = self.is_reflection_enabled {
writer.write_tagged_bool("REEN", is_reflection_enabled);
Expand Down
8 changes: 4 additions & 4 deletions src/vpx/gameitem/ramp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ pub struct Ramp {
pub width_top: f32, // 4
pub material: String, // 5
pub is_timer_enabled: bool, // 6
pub timer_interval: u32, // 7
pub timer_interval: i32, // 7
pub ramp_type: RampType, // TYPE 8
pub name: String, // 9
pub image: String, // 10
Expand Down Expand Up @@ -174,7 +174,7 @@ struct RampJson {
width_top: f32,
material: String,
is_timer_enabled: bool,
timer_interval: u32,
timer_interval: i32,
ramp_type: RampType,
name: String,
image: String,
Expand Down Expand Up @@ -375,7 +375,7 @@ impl BiffRead for Ramp {
ramp.is_timer_enabled = reader.get_bool();
}
"TMIN" => {
ramp.timer_interval = reader.get_u32();
ramp.timer_interval = reader.get_i32();
}
"TYPE" => {
ramp.ramp_type = reader.get_u32().into();
Expand Down Expand Up @@ -489,7 +489,7 @@ impl BiffWrite for Ramp {
writer.write_tagged_f32("WDTP", self.width_top);
writer.write_tagged_string("MATR", &self.material);
writer.write_tagged_bool("TMON", self.is_timer_enabled);
writer.write_tagged_u32("TMIN", self.timer_interval);
writer.write_tagged_i32("TMIN", self.timer_interval);
writer.write_tagged_u32("TYPE", (&self.ramp_type).into());
writer.write_tagged_wide_string("NAME", &self.name);
writer.write_tagged_string("IMAG", &self.image);
Expand Down
8 changes: 4 additions & 4 deletions src/vpx/gameitem/reel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ pub struct Reel {
ver2: Vertex2D, // position on map (top right corner)
back_color: Color, // colour of the background
is_timer_enabled: bool,
timer_interval: u32,
timer_interval: i32,
is_transparent: bool, // is the background transparent
image: String,
sound: String, // sound to play for each turn of a digit
Expand Down Expand Up @@ -44,7 +44,7 @@ struct ReelJson {
ver2: Vertex2D,
back_color: Color,
is_timer_enabled: bool,
timer_interval: u32,
timer_interval: i32,
is_transparent: bool,
image: String,
sound: String,
Expand Down Expand Up @@ -192,7 +192,7 @@ impl BiffRead for Reel {
reel.is_timer_enabled = reader.get_bool();
}
"TMIN" => {
reel.timer_interval = reader.get_u32();
reel.timer_interval = reader.get_i32();
}
"TRNS" => {
reel.is_transparent = reader.get_bool();
Expand Down Expand Up @@ -270,7 +270,7 @@ impl BiffWrite for Reel {
writer.write_tagged("VER2", &self.ver2);
writer.write_tagged_with("CLRB", &self.back_color, Color::biff_write);
writer.write_tagged_bool("TMON", self.is_timer_enabled);
writer.write_tagged_u32("TMIN", self.timer_interval);
writer.write_tagged_i32("TMIN", self.timer_interval);
writer.write_tagged_bool("TRNS", self.is_transparent);
writer.write_tagged_string("IMAG", &self.image);
writer.write_tagged_string("SOUN", &self.sound);
Expand Down
8 changes: 4 additions & 4 deletions src/vpx/gameitem/spinner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ pub struct Spinner {
center: Vertex2D,
rotation: f32,
is_timer_enabled: bool,
timer_interval: u32,
timer_interval: i32,
height: f32,
length: f32,
damping: f32,
Expand Down Expand Up @@ -37,7 +37,7 @@ struct SpinnerJson {
center: Vertex2D,
rotation: f32,
is_timer_enabled: bool,
timer_interval: u32,
timer_interval: i32,
height: f32,
length: f32,
damping: f32,
Expand Down Expand Up @@ -175,7 +175,7 @@ impl BiffRead for Spinner {
spinner.is_timer_enabled = reader.get_bool();
}
"TMIN" => {
spinner.timer_interval = reader.get_u32();
spinner.timer_interval = reader.get_i32();
}
"HIGH" => {
spinner.height = reader.get_f32();
Expand Down Expand Up @@ -248,7 +248,7 @@ impl BiffWrite for Spinner {
writer.write_tagged("VCEN", &self.center);
writer.write_tagged_f32("ROTA", self.rotation);
writer.write_tagged_bool("TMON", self.is_timer_enabled);
writer.write_tagged_u32("TMIN", self.timer_interval);
writer.write_tagged_i32("TMIN", self.timer_interval);
writer.write_tagged_f32("HIGH", self.height);
writer.write_tagged_f32("LGTH", self.length);
writer.write_tagged_f32("AFRC", self.damping);
Expand Down
Loading

0 comments on commit 16a0e2a

Please sign in to comment.