/* core/clientstate.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_CORE_CLIENTSTATE_H__ #define __INCLUDED_CORE_CLIENTSTATE_H__ #include "math/axis.h" #include "math/mathlib.h" #include "math/vector3f.h" namespace core { class ClientState; } #include "core/entity.h" namespace core { /// Entity client render state class ClientState { public: ClientState(); ClientState(Entity *entity); ~ClientState(); inline math::Vector3f const & location() const { return state_location; } inline math::Vector3f const & previouslocation() const { return state_previouslocation; } inline math::Axis const & previousaxis() const { return state_previousaxis; } inline math::Axis const & axis() const { return state_axis; } inline bool visible() const { return state_visible; } inline bool detailvisible() const { return state_detailvisible; } inline bool targetable() const { return state_targetable; } inline float distance() const { return state_distance; } /// client render fuzz factor inline float fuzz() const { return state_fuzz; }; /// assign the content of an entity void assign(Entity *entity); /// clear attached sounds void clearsound(); math::Vector3f state_location; math::Axis state_axis; math::Vector3f state_previouslocation; math::Axis state_previousaxis; bool state_visible; bool state_detailvisible; bool state_targetable; float state_fuzz; float state_engine_trail_offset; /// distance from the camera eye to the entity float state_distance; /// index of the audio buffer containing the thruster sound loop size_t state_thusterloopbuffer; /// index of the audio buffer containing the impulse sound loop size_t state_impulseloopbuffer; /// index of the audio buffer containing the impulse drive start sound size_t state_impulsestartbuffer; /// index of the audio buffer containing the impulse drive stop sound size_t state_impulsestopbuffer; /// index of the audio buffer currently looping in enginesource size_t state_engineloopbuffer; /// index of the audio source used to play the engine sound loop size_t state_engineloopsource; /// index of the audio last played on the event source size_t state_engineeventbuffer; /// index of the audio source used to play engine sound events size_t state_engineeventsource; }; } #endif // __INCLUDED_CORE_CLIENTSTATE_H__