diff --git a/lib/bsp_loader/src/bsp.rs b/lib/bsp_loader/src/bsp.rs index 328c820..eb206eb 100644 --- a/lib/bsp_loader/src/bsp.rs +++ b/lib/bsp_loader/src/bsp.rs @@ -214,25 +214,135 @@ pub fn convert<'a>( const ENTITY_TRIGGER_ATTRIBUTE:gameplay_attributes::CollisionAttributesId=ATTRIBUTE_INTERSECT_DEFAULT; for raw_ent in &bsp.entities{ match raw_ent.parse(){ + Ok(Entity::AmbientGeneric(_ambient_generic))=>(), Ok(Entity::Cycler(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,brush.rendercolor,ENTITY_ATTRIBUTE), + Ok(Entity::EnvBeam(_env_beam))=>(), + Ok(Entity::EnvBubbles(_env_bubbles))=>(), + Ok(Entity::EnvDetailController(_env_detail_controller))=>(), + Ok(Entity::EnvEmbers(_env_embers))=>(), + Ok(Entity::EnvEntityMaker(_env_entity_maker))=>(), + Ok(Entity::EnvExplosion(_env_explosion))=>(), + Ok(Entity::EnvFade(_env_fade))=>(), + Ok(Entity::EnvFire(_env_fire))=>(), + Ok(Entity::EnvFireTrail(_env_fire_trail))=>(), + Ok(Entity::EnvFiresource(_env_firesource))=>(), + Ok(Entity::EnvFogController(_env_fog_controller))=>(), + Ok(Entity::EnvHudhint(_env_hudhint))=>(), + Ok(Entity::EnvLaser(_env_laser))=>(), + Ok(Entity::EnvLightglow(_env_lightglow))=>(), + Ok(Entity::EnvPhysexplosion(_env_physexplosion))=>(), + Ok(Entity::EnvProjectedtexture(_env_projectedtexture))=>(), + Ok(Entity::EnvScreenoverlay(_env_screenoverlay))=>(), + Ok(Entity::EnvShake(_env_shake))=>(), + Ok(Entity::EnvShooter(_env_shooter))=>(), + Ok(Entity::EnvSmokestack(_env_smokestack))=>(), + Ok(Entity::EnvSoundscape(_env_soundscape))=>(), + Ok(Entity::EnvSoundscapeProxy(_env_soundscape_proxy))=>(), + Ok(Entity::EnvSoundscapeTriggerable(_env_soundscape_triggerable))=>(), + Ok(Entity::EnvSpark(_env_spark))=>(), Ok(Entity::EnvSprite(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,brush.rendercolor,ENTITY_ATTRIBUTE), + Ok(Entity::EnvSpritetrail(_env_spritetrail))=>(), + Ok(Entity::EnvSteam(_env_steam))=>(), + Ok(Entity::EnvSun(_env_sun))=>(), + Ok(Entity::EnvTonemapController(_env_tonemap_controller))=>(), + Ok(Entity::EnvWind(_env_wind))=>(), + Ok(Entity::FilterActivatorClass(_filter_activator_class))=>(), + Ok(Entity::FilterActivatorName(_filter_activator_name))=>(), + Ok(Entity::FilterDamageType(_filter_damage_type))=>(), + Ok(Entity::FilterMulti(_filter_multi))=>(), + Ok(Entity::FuncAreaportal(_func_areaportal))=>(), + Ok(Entity::FuncAreaportalwindow(_func_areaportalwindow))=>(), + Ok(Entity::FuncBombTarget(_func_bomb_target))=>(), Ok(Entity::FuncBreakable(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,brush.rendercolor,ENTITY_ATTRIBUTE), + Ok(Entity::FuncBreakableSurf(_func_breakable_surf))=>(), Ok(Entity::FuncBrush(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,brush.rendercolor,ENTITY_ATTRIBUTE), Ok(Entity::FuncButton(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,brush.rendercolor,ENTITY_ATTRIBUTE), + Ok(Entity::FuncBuyzone(_func_buyzone))=>(), + Ok(Entity::FuncClipVphysics(_func_clip_vphysics))=>(), + Ok(Entity::FuncConveyor(_func_conveyor))=>(), Ok(Entity::FuncDoor(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,brush.rendercolor,ENTITY_ATTRIBUTE), Ok(Entity::FuncDoorRotating(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,brush.rendercolor,ENTITY_ATTRIBUTE), + Ok(Entity::FuncDustcloud(_func_dustcloud))=>(), + Ok(Entity::FuncDustmotes(_func_dustmotes))=>(), + Ok(Entity::FuncFishPool(_func_fish_pool))=>(), + Ok(Entity::FuncFootstepControl(_func_footstep_control))=>(), + Ok(Entity::FuncHostageRescue(_func_hostage_rescue))=>(), Ok(Entity::FuncIllusionary(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,brush.rendercolor,ENTITY_ATTRIBUTE), + Ok(Entity::FuncLod(_func_lod))=>(), Ok(Entity::FuncMonitor(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,brush.rendercolor,ENTITY_ATTRIBUTE), Ok(Entity::FuncMovelinear(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,brush.rendercolor,ENTITY_ATTRIBUTE), + Ok(Entity::FuncOccluder(_func_occluder))=>(), Ok(Entity::FuncPhysbox(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,brush.rendercolor,ENTITY_ATTRIBUTE), Ok(Entity::FuncPhysboxMultiplayer(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,brush.rendercolor,ENTITY_ATTRIBUTE), + Ok(Entity::FuncPrecipitation(_func_precipitation))=>(), Ok(Entity::FuncRotButton(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,WHITE,ENTITY_ATTRIBUTE), Ok(Entity::FuncRotating(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,brush.rendercolor,ENTITY_ATTRIBUTE), + Ok(Entity::FuncSmokevolume(_func_smokevolume))=>(), Ok(Entity::FuncTracktrain(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,brush.rendercolor,ENTITY_ATTRIBUTE), Ok(Entity::FuncTrain(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,brush.rendercolor,ENTITY_ATTRIBUTE), Ok(Entity::FuncWall(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin.unwrap_or_default(),brush.rendercolor,ENTITY_ATTRIBUTE), Ok(Entity::FuncWallToggle(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin.unwrap_or_default(),brush.rendercolor,ENTITY_ATTRIBUTE), Ok(Entity::FuncWaterAnalog(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,brush.rendercolor.unwrap_or(WHITE),ENTITY_ATTRIBUTE), + Ok(Entity::GamePlayerEquip(_game_player_equip))=>(), + Ok(Entity::GameText(_game_text))=>(), + Ok(Entity::GameUi(_game_ui))=>(), + Ok(Entity::GameWeaponManager(_game_weapon_manager))=>(), + Ok(Entity::HostageEntity(_hostage_entity))=>(), + Ok(Entity::InfoCameraLink(_info_camera_link))=>(), + Ok(Entity::InfoLadder(_info_ladder))=>(), + Ok(Entity::InfoLightingRelative(_info_lighting_relative))=>(), + Ok(Entity::InfoMapParameters(_info_map_parameters))=>(), + Ok(Entity::InfoNode(_info_node))=>(), + Ok(Entity::InfoNodeHint(_info_node_hint))=>(), + Ok(Entity::InfoParticleSystem(_info_particle_system))=>(), + Ok(Entity::InfoPlayerCounterterrorist(spawn))=>{ + found_spawn=Some(valve_transform(spawn.origin.into())); + }, + Ok(Entity::InfoPlayerLogo(_info_player_logo))=>(), + Ok(Entity::InfoPlayerStart(_info_player_start))=>(), + Ok(Entity::InfoPlayerTerrorist(spawn))=>{ + found_spawn=Some(valve_transform(spawn.origin.into())); + }, + Ok(Entity::InfoTarget(_info_target))=>(), + // InfoTeleportDestination is Spawn# + Ok(Entity::InfoTeleportDestination(_info_teleport_destination))=>(), + Ok(Entity::Infodecal(_infodecal))=>(), + Ok(Entity::KeyframeRope(_keyframe_rope))=>(), + Ok(Entity::Light(_light))=>(), + Ok(Entity::LightEnvironment(_light_environment))=>(), + Ok(Entity::LightSpot(_light_spot))=>(), + Ok(Entity::LogicAuto(_logic_auto))=>(), + Ok(Entity::LogicBranch(_logic_branch))=>(), + Ok(Entity::LogicCase(_logic_case))=>(), + Ok(Entity::LogicCompare(_logic_compare))=>(), + Ok(Entity::LogicMeasureMovement(_logic_measure_movement))=>(), + Ok(Entity::LogicRelay(_logic_relay))=>(), + Ok(Entity::LogicTimer(_logic_timer))=>(), + Ok(Entity::MathCounter(_math_counter))=>(), + Ok(Entity::MoveRope(_move_rope))=>(), + Ok(Entity::PathTrack(_path_track))=>(), + Ok(Entity::PhysBallsocket(_phys_ballsocket))=>(), + Ok(Entity::PhysConstraint(_phys_constraint))=>(), + Ok(Entity::PhysConstraintsystem(_phys_constraintsystem))=>(), + Ok(Entity::PhysHinge(_phys_hinge))=>(), + Ok(Entity::PhysKeepupright(_phys_keepupright))=>(), + Ok(Entity::PhysLengthconstraint(_phys_lengthconstraint))=>(), + Ok(Entity::PhysPulleyconstraint(_phys_pulleyconstraint))=>(), + Ok(Entity::PhysRagdollconstraint(_phys_ragdollconstraint))=>(), + Ok(Entity::PhysRagdollmagnet(_phys_ragdollmagnet))=>(), + Ok(Entity::PhysThruster(_phys_thruster))=>(), + Ok(Entity::PhysTorque(_phys_torque))=>(), + Ok(Entity::PlayerSpeedmod(_player_speedmod))=>(), + Ok(Entity::PlayerWeaponstrip(_player_weaponstrip))=>(), + Ok(Entity::PointCamera(_point_camera))=>(), + Ok(Entity::PointClientcommand(_point_clientcommand))=>(), + Ok(Entity::PointDevshotCamera(_point_devshot_camera))=>(), + Ok(Entity::PointServercommand(_point_servercommand))=>(), + Ok(Entity::PointSpotlight(_point_spotlight))=>(), + Ok(Entity::PointSurroundtest(_point_surroundtest))=>(), + Ok(Entity::PointTemplate(_point_template))=>(), + Ok(Entity::PointTesla(_point_tesla))=>(), + Ok(Entity::PointViewcontrol(_point_viewcontrol))=>(), Ok(Entity::PropDoorRotating(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,WHITE,ENTITY_ATTRIBUTE), Ok(Entity::PropDynamic(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,WHITE,ENTITY_ATTRIBUTE), Ok(Entity::PropDynamicOverride(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,WHITE,ENTITY_ATTRIBUTE), @@ -240,6 +350,8 @@ pub fn convert<'a>( Ok(Entity::PropPhysicsMultiplayer(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,WHITE,ENTITY_ATTRIBUTE), Ok(Entity::PropPhysicsOverride(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,WHITE,ENTITY_ATTRIBUTE), Ok(Entity::PropRagdoll(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,WHITE,ENTITY_ATTRIBUTE), + Ok(Entity::ShadowControl(_shadow_control))=>(), + Ok(Entity::SkyCamera(_sky_camera))=>(), Ok(Entity::TriggerGravity(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,WHITE,ENTITY_TRIGGER_ATTRIBUTE), Ok(Entity::TriggerHurt(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,WHITE,ENTITY_TRIGGER_ATTRIBUTE), Ok(Entity::TriggerLook(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,WHITE,ENTITY_TRIGGER_ATTRIBUTE), @@ -251,12 +363,32 @@ pub fn convert<'a>( Ok(Entity::TriggerTeleport(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model.unwrap_or_default(),brush.origin,WHITE,ENTITY_TRIGGER_ATTRIBUTE), Ok(Entity::TriggerVphysicsMotion(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,WHITE,ENTITY_TRIGGER_ATTRIBUTE), Ok(Entity::TriggerWind(brush))=>add_brush(mesh_deferred_loader,&mut world_models,&mut prop_models,brush.model,brush.origin,WHITE,ENTITY_TRIGGER_ATTRIBUTE), - Ok(Entity::InfoPlayerCounterterrorist(spawn))=>{ - found_spawn=Some(valve_transform(spawn.origin.into())); - }, - Ok(Entity::InfoPlayerTerrorist(spawn))=>{ - found_spawn=Some(valve_transform(spawn.origin.into())); - }, + Ok(Entity::WaterLodControl(_water_lod_control))=>(), + Ok(Entity::WeaponAk47(_weapon_ak47))=>(), + Ok(Entity::WeaponAwp(_weapon_awp))=>(), + Ok(Entity::WeaponDeagle(_weapon_deagle))=>(), + Ok(Entity::WeaponElite(_weapon_elite))=>(), + Ok(Entity::WeaponFamas(_weapon_famas))=>(), + Ok(Entity::WeaponFiveseven(_weapon_fiveseven))=>(), + Ok(Entity::WeaponFlashbang(_weapon_flashbang))=>(), + Ok(Entity::WeaponG3sg1(_weapon_g3sg1))=>(), + Ok(Entity::WeaponGlock(_weapon_glock))=>(), + Ok(Entity::WeaponHegrenade(_weapon_hegrenade))=>(), + Ok(Entity::WeaponKnife(_weapon_knife))=>(), + Ok(Entity::WeaponM249(_weapon_m249))=>(), + Ok(Entity::WeaponM3(_weapon_m3))=>(), + Ok(Entity::WeaponM4a1(_weapon_m4a1))=>(), + Ok(Entity::WeaponMac10(_weapon_mac10))=>(), + Ok(Entity::WeaponP228(_weapon_p228))=>(), + Ok(Entity::WeaponP90(_weapon_p90))=>(), + Ok(Entity::WeaponScout(_weapon_scout))=>(), + Ok(Entity::WeaponSg550(_weapon_sg550))=>(), + Ok(Entity::WeaponSmokegrenade(_weapon_smokegrenade))=>(), + Ok(Entity::WeaponTmp(_weapon_tmp))=>(), + Ok(Entity::WeaponUmp45(_weapon_ump45))=>(), + Ok(Entity::WeaponUsp(_weapon_usp))=>(), + Ok(Entity::WeaponXm1014(_weapon_xm1014))=>(), + Ok(Entity::Worldspawn(_worldspawn))=>(), Err(e)=>{ println!("Bsp Entity parse error: {e}"); },