/* core/clientstate.cc This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #include "core/clientstate.h" #include "core/application.h" #include "sys/sys.h" namespace core { ClientState::ClientState() { state_visible = false; state_detailvisible = false; state_targetable = false; state_thusterloopbuffer = 0; state_impulseloopbuffer = 0; state_impulsestartbuffer = 0; state_impulsestopbuffer = 0; state_engineloopbuffer = 0; state_engineloopsource = 0; state_engineeventbuffer = 0; state_engineeventsource = 0; state_engine_trail_offset = 0; state_fuzz = math::randomf(); state_distance = -1; } ClientState::ClientState(Entity *entity) { state_visible = false; state_detailvisible = false; state_targetable = false; state_thusterloopbuffer = 0; state_impulseloopbuffer = 0; state_impulsestartbuffer = 0; state_impulsestopbuffer = 0; state_engineloopbuffer = 0; state_engineloopsource = 0; state_engineeventbuffer = 0; state_engineeventsource = 0; state_engine_trail_offset = 0; state_fuzz = math::randomf(); state_distance = -1; assign(entity); } ClientState::~ClientState() { clearsound(); } void ClientState::clearsound() { if (state_engineloopsource) { application()->notify_remove_sound(state_engineloopsource); application()->notify_remove_sound(state_engineeventsource); state_engineloopsource = 0; state_engineloopbuffer = 0; } } void ClientState::assign(Entity * entity) { state_location.assign(entity->location()); state_axis.assign(entity->axis()); state_previouslocation.assign(entity->location()); state_previousaxis.assign(entity->axis()); state_distance = -1; } }