/* 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_enginesound = 0; state_engine_trail_offset = 0; state_fuzz = math::randomf(); } ClientState::ClientState(Entity *entity) { state_visible = false; state_detailvisible = false; state_targetable = false; state_enginesound = 0; state_engine_trail_offset = 0; state_fuzz = math::randomf(); assign(entity); } ClientState::~ClientState() { clearsound(); } void ClientState::clearsound() { if (state_enginesound) { application()->notify_remove_sound(state_enginesound); state_enginesound = 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()); } }