diff --git a/src/commands.rs b/src/commands.rs index f305d66..f7cfa86 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -49,6 +49,7 @@ struct ParserState { is_suited: bool, is_vehicle: bool, is_clickable: bool, + is_targeted_on_startup: bool, has_physics: bool, wants_maxrotation: Option, wants_maxvelocity: Option, @@ -93,6 +94,7 @@ impl Default for ParserState { is_suited: false, is_vehicle: false, is_clickable: true, + is_targeted_on_startup: false, has_physics: true, wants_maxrotation: None, wants_maxvelocity: None, @@ -186,6 +188,7 @@ pub fn load_defs( ["relativeto", id] => { // NOTE: call this command before "id", otherwise actors that // set their position relative to this actor will get the wrong offset + // TODO: fix the above match id2pos.get(&id.to_string()) { Some(pos) => { state.pos += *pos; @@ -419,6 +422,9 @@ pub fn load_defs( ["armodel", asset_name] => { state.ar_model = Some(asset_name.to_string()); } + ["targeted", "yes"] => { + state.is_targeted_on_startup = true; + } _ => { error!("No match for [{}]", parts.join(",")); } @@ -514,6 +520,9 @@ fn spawn_entities( actor.insert(actor::Player); actor.insert(actor::PlayerCamera); } + if state.is_targeted_on_startup { + actor.insert(hud::IsTargeted); + } if state.is_player || state.is_vehicle { // used to apply mouse movement to actor rotation actor.insert(ExternalTorque::ZERO.with_persistence(false));