/*! \brief Special effects for bag dropping and retrieval. */ #ifdef EYE_CANDY #ifndef EFFECT_BAG_H #define EFFECT_BAG_H // I N C L U D E S //////////////////////////////////////////////////////////// #include "eye_candy.h" namespace ec { // C L A S S E S ////////////////////////////////////////////////////////////// class BagParticle : public Particle { public: BagParticle(Effect* _effect, ParticleMover* _mover, const Vec3 _pos, const Vec3 _velocity, const coord_t size); ~BagParticle() {} virtual bool idle(const Uint64 delta_t); virtual GLuint get_texture(const Uint16 res_index); virtual light_t estimate_light_level() const { return 0.0; }; // No glow. virtual light_t get_light_level() { return 0.0; }; // Same. virtual void draw(const Uint64 usec); }; class BagEffect : public Effect { public: BagEffect(EyeCandy* _base, bool* _dead, Vec3* _pos, const bool _picked_up, const Uint16 _LOD); ~BagEffect(); virtual EffectEnum get_type() { return EC_BAG; }; bool idle(const Uint64 usec); static Uint64 get_max_end_time() { return 2000000; }; virtual Uint64 get_expire_time() { return 2000000 + born; }; GravityMover* mover; ParticleSpawner* spawner; Vec3 effect_center; bool picked_up; }; /////////////////////////////////////////////////////////////////////////////// } // End namespace ec #endif // defined EFFECT_BAG_H #endif // #ifdef EYE_CANDY