1
0
Fork 0
mirror of https://codeberg.org/icewind/vbsp.git synced 2026-06-04 02:54:08 +02:00

3 actual css maps decode successfully

This commit is contained in:
Quaternions 2025-02-14 20:25:50 -08:00
commit 30b46fad06

View file

@ -30,7 +30,8 @@ pub enum Entity<'a> {
#[serde(borrow)] #[serde(borrow)]
EnvFade(EnvFade<'a>), EnvFade(EnvFade<'a>),
#[serde(rename = "env_fire")] #[serde(rename = "env_fire")]
EnvFire(EnvFire), #[serde(borrow)]
EnvFire(EnvFire<'a>),
#[serde(rename = "env_fire_trail")] #[serde(rename = "env_fire_trail")]
#[serde(borrow)] #[serde(borrow)]
EnvFireTrail(EnvFireTrail<'a>), EnvFireTrail(EnvFireTrail<'a>),
@ -109,9 +110,15 @@ pub enum Entity<'a> {
#[serde(rename = "func_areaportalwindow")] #[serde(rename = "func_areaportalwindow")]
#[serde(borrow)] #[serde(borrow)]
FuncAreaportalwindow(FuncAreaportalwindow<'a>), FuncAreaportalwindow(FuncAreaportalwindow<'a>),
#[serde(rename = "func_bomb_target")]
#[serde(borrow)]
FuncBombTarget(FuncBombTarget<'a>),
#[serde(rename = "func_breakable")] #[serde(rename = "func_breakable")]
#[serde(borrow)] #[serde(borrow)]
FuncBreakable(FuncBreakable<'a>), FuncBreakable(FuncBreakable<'a>),
#[serde(rename = "func_breakable_surf")]
#[serde(borrow)]
FuncBreakableSurf(FuncBreakableSurf<'a>),
#[serde(rename = "func_brush")] #[serde(rename = "func_brush")]
#[serde(borrow)] #[serde(borrow)]
FuncBrush(FuncBrush<'a>), FuncBrush(FuncBrush<'a>),
@ -207,6 +214,8 @@ pub enum Entity<'a> {
InfoCameraLink(InfoCameraLink<'a>), InfoCameraLink(InfoCameraLink<'a>),
#[serde(rename = "info_ladder")] #[serde(rename = "info_ladder")]
InfoLadder(InfoLadder), InfoLadder(InfoLadder),
#[serde(rename = "info_map_parameters")]
InfoMapParameters(InfoMapParameters),
#[serde(rename = "info_particle_system")] #[serde(rename = "info_particle_system")]
#[serde(borrow)] #[serde(borrow)]
InfoParticleSystem(InfoParticleSystem<'a>), InfoParticleSystem(InfoParticleSystem<'a>),
@ -291,6 +300,8 @@ pub enum Entity<'a> {
#[serde(rename = "phys_ragdollconstraint")] #[serde(rename = "phys_ragdollconstraint")]
#[serde(borrow)] #[serde(borrow)]
PhysRagdollconstraint(PhysRagdollconstraint<'a>), PhysRagdollconstraint(PhysRagdollconstraint<'a>),
#[serde(rename = "phys_ragdollmagnet")]
PhysRagdollmagnet(PhysRagdollmagnet),
#[serde(rename = "phys_thruster")] #[serde(rename = "phys_thruster")]
#[serde(borrow)] #[serde(borrow)]
PhysThruster(PhysThruster<'a>), PhysThruster(PhysThruster<'a>),
@ -306,6 +317,9 @@ pub enum Entity<'a> {
#[serde(rename = "point_clientcommand")] #[serde(rename = "point_clientcommand")]
#[serde(borrow)] #[serde(borrow)]
PointClientcommand(PointClientcommand<'a>), PointClientcommand(PointClientcommand<'a>),
#[serde(rename = "point_devshot_camera")]
#[serde(borrow)]
PointDevshotCamera(PointDevshotCamera<'a>),
#[serde(rename = "point_servercommand")] #[serde(rename = "point_servercommand")]
#[serde(borrow)] #[serde(borrow)]
PointServercommand(PointServercommand<'a>), PointServercommand(PointServercommand<'a>),
@ -521,6 +535,8 @@ pub struct EnvBeam<'a> {
pub damage: Option<f32>, pub damage: Option<f32>,
#[serde(default)] #[serde(default)]
pub decalname: Option<&'a str>, pub decalname: Option<&'a str>,
#[serde(default)]
pub framerate: Option<u8>,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)] #[serde(default)]
pub framestart: bool, pub framestart: bool,
@ -530,7 +546,7 @@ pub struct EnvBeam<'a> {
pub lightningend: &'a str, pub lightningend: &'a str,
pub lightningstart: &'a str, pub lightningstart: &'a str,
#[serde(default)] #[serde(default)]
pub noiseamplitude: Option<f32>, pub noiseamplitude: Option<&'a str>,
pub origin: Vector, pub origin: Vector,
#[serde(default)] #[serde(default)]
pub parentname: Option<&'a str>, pub parentname: Option<&'a str>,
@ -587,7 +603,7 @@ pub struct EnvEntityMaker<'a> {
#[derive(Debug, Clone, Deserialize)] #[derive(Debug, Clone, Deserialize)]
pub struct EnvExplosion<'a> { pub struct EnvExplosion<'a> {
pub fireballsprite: &'a str, pub fireballsprite: &'a str,
pub imagnitude: u8, pub imagnitude: u16,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)] #[serde(default)]
pub iradiusoverride: bool, pub iradiusoverride: bool,
@ -595,7 +611,8 @@ pub struct EnvExplosion<'a> {
#[serde(default)] #[serde(default)]
pub parentname: Option<&'a str>, pub parentname: Option<&'a str>,
pub rendermode: u8, pub rendermode: u8,
pub spawnflags: u32, #[serde(default)]
pub spawnflags: Option<u32>,
pub targetname: &'a str, pub targetname: &'a str,
} }
#[derive(Debug, Clone, Deserialize)] #[derive(Debug, Clone, Deserialize)]
@ -609,10 +626,10 @@ pub struct EnvFade<'a> {
pub targetname: &'a str, pub targetname: &'a str,
} }
#[derive(Debug, Clone, Deserialize)] #[derive(Debug, Clone, Deserialize)]
pub struct EnvFire { pub struct EnvFire<'a> {
pub damagescale: f32, pub damagescale: f32,
pub fireattack: u8, pub fireattack: u8,
pub firesize: u8, pub firesize: u16,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)] #[serde(default)]
pub firetype: bool, pub firetype: bool,
@ -623,6 +640,8 @@ pub struct EnvFire {
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)] #[serde(default)]
pub startdisabled: bool, pub startdisabled: bool,
#[serde(default)]
pub targetname: Option<&'a str>,
} }
#[derive(Debug, Clone, Deserialize)] #[derive(Debug, Clone, Deserialize)]
pub struct EnvFireTrail<'a> { pub struct EnvFireTrail<'a> {
@ -797,11 +816,14 @@ pub struct EnvShooter<'a> {
pub m_flvelocity: u16, pub m_flvelocity: u16,
pub m_igibs: u32, pub m_igibs: u32,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub massoverride: bool, pub massoverride: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub nogibshadows: bool, pub nogibshadows: bool,
pub origin: Vector, pub origin: Vector,
pub parentname: &'a str, #[serde(default)]
pub parentname: Option<&'a str>,
pub renderamt: u8, pub renderamt: u8,
pub rendercolor: Color, pub rendercolor: Color,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
@ -850,9 +872,19 @@ pub struct EnvSmokestack<'a> {
pub struct EnvSoundscape<'a> { pub struct EnvSoundscape<'a> {
pub origin: Vector, pub origin: Vector,
#[serde(default)] #[serde(default)]
pub position0: Option<&'a str>,
#[serde(default)]
pub position1: Option<&'a str>, pub position1: Option<&'a str>,
#[serde(default)] #[serde(default)]
pub position2: Option<&'a str>, pub position2: Option<&'a str>,
#[serde(default)]
pub position3: Option<&'a str>,
#[serde(default)]
pub position4: Option<&'a str>,
#[serde(default)]
pub position5: Option<&'a str>,
#[serde(default)]
pub position6: Option<&'a str>,
pub radius: f32, pub radius: f32,
pub soundscape: &'a str, pub soundscape: &'a str,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
@ -863,9 +895,24 @@ pub struct EnvSoundscape<'a> {
#[derive(Debug, Clone, Deserialize)] #[derive(Debug, Clone, Deserialize)]
pub struct EnvSoundscapeTriggerable<'a> { pub struct EnvSoundscapeTriggerable<'a> {
pub origin: Vector, pub origin: Vector,
#[serde(default)]
pub position0: Option<&'a str>,
#[serde(default)]
pub position1: Option<&'a str>,
#[serde(default)]
pub position2: Option<&'a str>,
#[serde(default)]
pub position3: Option<&'a str>,
#[serde(default)]
pub position4: Option<&'a str>,
#[serde(default)]
pub position5: Option<&'a str>,
#[serde(default)]
pub position6: Option<&'a str>,
pub radius: u16, pub radius: u16,
pub soundscape: &'a str, pub soundscape: &'a str,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub startdisabled: bool, pub startdisabled: bool,
pub targetname: &'a str, pub targetname: &'a str,
} }
@ -902,9 +949,8 @@ pub struct EnvSprite<'a> {
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)] #[serde(default)]
pub maxdxlevel: bool, pub maxdxlevel: bool,
#[serde(deserialize_with = "bool_from_int")]
#[serde(default)] #[serde(default)]
pub mindxlevel: bool, pub mindxlevel: Option<u8>,
pub model: &'a str, pub model: &'a str,
pub origin: Vector, pub origin: Vector,
#[serde(default)] #[serde(default)]
@ -976,7 +1022,25 @@ pub struct EnvSun<'a> {
#[serde(default)] #[serde(default)]
pub hdrcolorscale: Option<f32>, pub hdrcolorscale: Option<f32>,
#[serde(default)] #[serde(default)]
pub horzsize0: Option<u8>,
#[serde(default)]
pub horzsize1: Option<u8>,
#[serde(default)]
pub horzsize2: Option<u8>,
#[serde(default)]
pub horzsize3: Option<u8>,
#[serde(default)]
pub material: Option<&'a str>, pub material: Option<&'a str>,
#[serde(default)]
pub material0: Option<&'a str>,
#[serde(default)]
pub material1: Option<&'a str>,
#[serde(default)]
pub material2: Option<&'a str>,
#[serde(default)]
pub material3: Option<&'a str>,
#[serde(default)]
pub numlayers: Option<u8>,
pub origin: Vector, pub origin: Vector,
#[serde(default)] #[serde(default)]
pub overlaycolor: Option<&'a str>, pub overlaycolor: Option<&'a str>,
@ -993,6 +1057,14 @@ pub struct EnvSun<'a> {
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)] #[serde(default)]
pub use_angles: bool, pub use_angles: bool,
#[serde(default)]
pub vertsize0: Option<u8>,
#[serde(default)]
pub vertsize1: Option<u8>,
#[serde(default)]
pub vertsize2: Option<u8>,
#[serde(default)]
pub vertsize3: Option<u8>,
} }
#[derive(Debug, Clone, Deserialize)] #[derive(Debug, Clone, Deserialize)]
pub struct EnvTonemapController<'a> { pub struct EnvTonemapController<'a> {
@ -1022,7 +1094,8 @@ pub struct FilterActivatorClass<'a> {
} }
#[derive(Debug, Clone, Deserialize)] #[derive(Debug, Clone, Deserialize)]
pub struct FilterActivatorName<'a> { pub struct FilterActivatorName<'a> {
pub filtername: &'a str, #[serde(default)]
pub filtername: Option<&'a str>,
pub negated: &'a str, pub negated: &'a str,
#[serde(default)] #[serde(default)]
pub onfail: Option<&'a str>, pub onfail: Option<&'a str>,
@ -1080,6 +1153,11 @@ pub struct FuncAreaportalwindow<'a> {
pub translucencylimit: f32, pub translucencylimit: f32,
} }
#[derive(Debug, Clone, Deserialize)] #[derive(Debug, Clone, Deserialize)]
pub struct FuncBombTarget<'a> {
pub bombexplode: &'a str,
pub model: &'a str,
}
#[derive(Debug, Clone, Deserialize)]
pub struct FuncBreakable<'a> { pub struct FuncBreakable<'a> {
#[serde(default)] #[serde(default)]
pub _minlight: Option<f32>, pub _minlight: Option<f32>,
@ -1136,6 +1214,51 @@ pub struct FuncBreakable<'a> {
pub targetname: Option<&'a str>, pub targetname: Option<&'a str>,
} }
#[derive(Debug, Clone, Deserialize)] #[derive(Debug, Clone, Deserialize)]
pub struct FuncBreakableSurf<'a> {
#[serde(deserialize_with = "bool_from_int")]
pub disablereceiveshadows: bool,
#[serde(deserialize_with = "bool_from_int")]
pub disableshadows: bool,
#[serde(deserialize_with = "bool_from_int")]
pub error: bool,
#[serde(deserialize_with = "bool_from_int")]
pub explodedamage: bool,
#[serde(deserialize_with = "bool_from_int")]
pub explodemagnitude: bool,
#[serde(deserialize_with = "bool_from_int")]
pub exploderadius: bool,
#[serde(deserialize_with = "bool_from_int")]
pub explosion: bool,
pub fragility: u8,
pub gibdir: Vector,
#[serde(deserialize_with = "bool_from_int")]
pub health: bool,
pub lowerleft: Vector,
pub lowerright: Vector,
#[serde(deserialize_with = "bool_from_int")]
pub material: bool,
pub model: &'a str,
#[serde(deserialize_with = "bool_from_int")]
pub nodamageforces: bool,
#[serde(deserialize_with = "bool_from_int")]
pub performancemode: bool,
#[serde(deserialize_with = "bool_from_int")]
pub pressuredelay: bool,
pub propdata: u8,
pub renderamt: u8,
pub rendercolor: Color,
#[serde(deserialize_with = "bool_from_int")]
pub renderfx: bool,
#[serde(deserialize_with = "bool_from_int")]
pub rendermode: bool,
#[serde(deserialize_with = "bool_from_int")]
pub spawnobject: bool,
#[serde(deserialize_with = "bool_from_int")]
pub surfacetype: bool,
pub upperleft: Vector,
pub upperright: Vector,
}
#[derive(Debug, Clone, Deserialize)]
pub struct FuncBrush<'a> { pub struct FuncBrush<'a> {
#[serde(default)] #[serde(default)]
pub _minlight: Option<f32>, pub _minlight: Option<f32>,
@ -1156,6 +1279,7 @@ pub struct FuncBrush<'a> {
pub renderfx: u8, pub renderfx: u8,
pub rendermode: u8, pub rendermode: u8,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub solidbsp: bool, pub solidbsp: bool,
pub solidity: u8, pub solidity: u8,
#[serde(default)] #[serde(default)]
@ -1278,6 +1402,7 @@ pub struct FuncDoor<'a> {
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
pub locked_sentence: bool, pub locked_sentence: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub loopmovesound: bool, pub loopmovesound: bool,
pub model: &'a str, pub model: &'a str,
pub movedir: Vector, pub movedir: Vector,
@ -1356,7 +1481,7 @@ pub struct FuncDoorRotating<'a> {
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)] #[serde(default)]
pub spawnpos: bool, pub spawnpos: bool,
pub speed: u8, pub speed: u16,
#[serde(default)] #[serde(default)]
pub targetname: Option<&'a str>, pub targetname: Option<&'a str>,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
@ -1959,6 +2084,14 @@ pub struct InfoLadder {
pub mins_z: f32, pub mins_z: f32,
} }
#[derive(Debug, Clone, Deserialize)] #[derive(Debug, Clone, Deserialize)]
pub struct InfoMapParameters {
pub angles: Angles,
pub bombradius: u16,
#[serde(deserialize_with = "bool_from_int")]
pub buying: bool,
pub origin: Vector,
}
#[derive(Debug, Clone, Deserialize)]
pub struct InfoParticleSystem<'a> { pub struct InfoParticleSystem<'a> {
pub angles: Angles, pub angles: Angles,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
@ -2010,6 +2143,8 @@ pub struct InfoTarget<'a> {
pub angles: Angles, pub angles: Angles,
pub origin: Vector, pub origin: Vector,
#[serde(default)] #[serde(default)]
pub parentname: Option<&'a str>,
#[serde(default)]
pub spawnflags: Option<u32>, pub spawnflags: Option<u32>,
#[serde(default)] #[serde(default)]
pub targetname: Option<&'a str>, pub targetname: Option<&'a str>,
@ -2447,13 +2582,15 @@ pub struct PhysPulleyconstraint<'a> {
} }
#[derive(Debug, Clone, Deserialize)] #[derive(Debug, Clone, Deserialize)]
pub struct PhysRagdollconstraint<'a> { pub struct PhysRagdollconstraint<'a> {
pub angles: Angles, #[serde(default)]
pub angles: Option<Angles>,
pub attach1: &'a str, pub attach1: &'a str,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
pub forcelimit: bool, pub forcelimit: bool,
pub origin: Vector, pub origin: Vector,
pub spawnflags: u32, pub spawnflags: u32,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub teleportfollowdistance: bool, pub teleportfollowdistance: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
pub torquelimit: bool, pub torquelimit: bool,
@ -2473,6 +2610,17 @@ pub struct PhysRagdollconstraint<'a> {
pub zmin: bool, pub zmin: bool,
} }
#[derive(Debug, Clone, Deserialize)] #[derive(Debug, Clone, Deserialize)]
pub struct PhysRagdollmagnet {
pub angles: Angles,
pub axis: Vector,
pub force: u16,
pub origin: Vector,
pub radius: u16,
pub spawnflags: u32,
#[serde(deserialize_with = "bool_from_int")]
pub startdisabled: bool,
}
#[derive(Debug, Clone, Deserialize)]
pub struct PhysThruster<'a> { pub struct PhysThruster<'a> {
pub angles: Angles, pub angles: Angles,
pub attach1: &'a str, pub attach1: &'a str,
@ -2521,6 +2669,13 @@ pub struct PointClientcommand<'a> {
pub targetname: &'a str, pub targetname: &'a str,
} }
#[derive(Debug, Clone, Deserialize)] #[derive(Debug, Clone, Deserialize)]
pub struct PointDevshotCamera<'a> {
pub angles: Angles,
pub cameraname: &'a str,
pub fov: u8,
pub origin: Vector,
}
#[derive(Debug, Clone, Deserialize)]
pub struct PointServercommand<'a> { pub struct PointServercommand<'a> {
pub origin: Vector, pub origin: Vector,
pub targetname: &'a str, pub targetname: &'a str,
@ -2834,49 +2989,67 @@ pub struct PropDynamicOverride<'a> {
pub struct PropPhysics<'a> { pub struct PropPhysics<'a> {
pub angles: Angles, pub angles: Angles,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub damagetoenablemotion: bool, pub damagetoenablemotion: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub damagetype: bool, pub damagetype: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub disablereceiveshadows: bool, pub disablereceiveshadows: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub disableshadows: bool, pub disableshadows: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub explodedamage: bool, pub explodedamage: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub exploderadius: bool, pub exploderadius: bool,
pub fademaxdist: u16, pub fademaxdist: u16,
pub fademindist: i32, pub fademindist: i32,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
pub fadescale: bool, pub fadescale: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub forcetoenablemotion: bool, pub forcetoenablemotion: bool,
pub inertiascale: f32, pub inertiascale: f32,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub massscale: bool, pub massscale: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub maxdxlevel: bool, pub maxdxlevel: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub mindxlevel: bool, pub mindxlevel: bool,
pub minhealthdmg: u8, #[serde(default)]
pub minhealthdmg: Option<u8>,
pub model: &'a str, pub model: &'a str,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub nodamageforces: bool, pub nodamageforces: bool,
pub origin: Vector, pub origin: Vector,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub performancemode: bool, pub performancemode: bool,
pub physdamagescale: f32, pub physdamagescale: f32,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub pressuredelay: bool, pub pressuredelay: bool,
pub renderamt: u8, pub renderamt: u8,
pub rendercolor: Color, pub rendercolor: Color,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub renderfx: bool, pub renderfx: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub rendermode: bool, pub rendermode: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub shadowcastdist: bool, pub shadowcastdist: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub skin: bool, pub skin: bool,
pub spawnflags: u32, pub spawnflags: u32,
#[serde(default)] #[serde(default)]
@ -2891,34 +3064,48 @@ pub struct PropPhysicsMultiplayer<'a> {
#[serde(default)] #[serde(default)]
pub body: bool, pub body: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub damagetoenablemotion: bool, pub damagetoenablemotion: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub damagetype: bool, pub damagetype: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)] #[serde(default)]
pub disablereceiveshadows: bool, pub disablereceiveshadows: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub disableshadows: bool, pub disableshadows: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub explodedamage: bool, pub explodedamage: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub exploderadius: bool, pub exploderadius: bool,
pub fademaxdist: u16, #[serde(default)]
pub fademaxdist: Option<u16>,
pub fademindist: i32, pub fademindist: i32,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
pub fadescale: bool, pub fadescale: bool,
pub forcetoenablemotion: u16, #[serde(default)]
pub forcetoenablemotion: Option<u16>,
pub inertiascale: f32, pub inertiascale: f32,
pub massscale: f32, #[serde(default)]
pub massscale: Option<f32>,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub maxdxlevel: bool, pub maxdxlevel: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub mindxlevel: bool, pub mindxlevel: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub minhealthdmg: bool, pub minhealthdmg: bool,
pub model: &'a str, pub model: &'a str,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)] #[serde(default)]
pub multiplayer_physics_mode: bool,
#[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub nodamageforces: bool, pub nodamageforces: bool,
#[serde(default)] #[serde(default)]
pub onbreak: Option<&'a str>, pub onbreak: Option<&'a str>,
@ -2930,6 +3117,7 @@ pub struct PropPhysicsMultiplayer<'a> {
#[serde(default)] #[serde(default)]
pub physicsmode: Option<u8>, pub physicsmode: Option<u8>,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub pressuredelay: bool, pub pressuredelay: bool,
pub renderamt: u8, pub renderamt: u8,
pub rendercolor: Color, pub rendercolor: Color,
@ -2942,8 +3130,8 @@ pub struct PropPhysicsMultiplayer<'a> {
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)] #[serde(default)]
pub shadowcastdist: bool, pub shadowcastdist: bool,
#[serde(deserialize_with = "bool_from_int")] #[serde(default)]
pub skin: bool, pub skin: Option<u8>,
pub spawnflags: u32, pub spawnflags: u32,
#[serde(default)] #[serde(default)]
pub targetname: Option<&'a str>, pub targetname: Option<&'a str>,
@ -3204,6 +3392,8 @@ pub struct TriggerSoundscape<'a> {
pub spawnflags: u32, pub spawnflags: u32,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
pub startdisabled: bool, pub startdisabled: bool,
#[serde(default)]
pub targetname: Option<&'a str>,
} }
#[derive(Debug, Clone, Deserialize)] #[derive(Debug, Clone, Deserialize)]
pub struct TriggerTeleport<'a> { pub struct TriggerTeleport<'a> {
@ -3800,14 +3990,25 @@ pub struct Worldspawn<'a> {
pub coldworld: bool, pub coldworld: bool,
#[serde(default)] #[serde(default)]
pub comment: Option<&'a str>, pub comment: Option<&'a str>,
#[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub defaultteam: bool,
pub detailmaterial: &'a str, pub detailmaterial: &'a str,
pub detailvbsp: &'a str, pub detailvbsp: &'a str,
#[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub gametitle: bool,
#[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub light: bool,
#[serde(default)] #[serde(default)]
pub mapversion: Option<u16>, pub mapversion: Option<u16>,
#[serde(default)] #[serde(default)]
pub maxoccludeearea: Option<f32>, pub maxoccludeearea: Option<f32>,
pub maxpropscreenwidth: f32, pub maxpropscreenwidth: f32,
#[serde(default)] #[serde(default)]
pub maxrange: Option<u16>,
#[serde(default)]
pub message: Option<&'a str>, pub message: Option<&'a str>,
#[serde(default)] #[serde(default)]
pub minoccluderarea: Option<f32>, pub minoccluderarea: Option<f32>,
@ -3815,10 +4016,18 @@ pub struct Worldspawn<'a> {
pub minpropscreenwidth: Option<f32>, pub minpropscreenwidth: Option<f32>,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)] #[serde(default)]
pub newunit: bool,
#[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub no_decomp: bool, pub no_decomp: bool,
pub skyname: &'a str, pub skyname: &'a str,
#[serde(deserialize_with = "bool_from_int")] #[serde(deserialize_with = "bool_from_int")]
#[serde(default)] #[serde(default)]
pub sounds: bool,
#[serde(default)]
pub spawnflags: Option<u32>,
#[serde(deserialize_with = "bool_from_int")]
#[serde(default)]
pub startdark: bool, pub startdark: bool,
pub world_maxs: Vector, pub world_maxs: Vector,
pub world_mins: Vector, pub world_mins: Vector,