// // BtPhysTest // // Copyright: (c) 2009-2013 Benjamin "Touky" Huet // (c) 2012 Sam Hocevar // #pragma once class CatShaderData : public GpuShaderData { friend class CRenderer; public: //--- CatShaderData(uint32_t vert_decl_flags, Shader* shader); //--- void SetupDefaultData(); virtual void SetupShaderDatas(mat4 const &model); //-- virtual lol::String GetInVertexName() { return lol::String("in_vertex"); } virtual lol::String GetInNormalName() { return lol::String("in_normal"); } virtual lol::String GetInColorName() { return lol::String("in_color"); } virtual lol::String GetInTexCoordName() { return lol::String("in_texcoord"); } TextureUniform m_tex_uniform; float m_sprite_orientation; float m_sprite_flip; }; class BtPhysTest : public WorldEntity { public: BtPhysTest(bool editor = false); virtual ~BtPhysTest(); char const *GetName() { return ""; } protected: virtual void TickGame(float seconds); virtual void TickDraw(float seconds, Scene &scene); void InitApp(); private: enum { KEY_MOVE_FORWARD, KEY_MOVE_BACK, KEY_MOVE_LEFT, KEY_MOVE_RIGHT, KEY_MOVE_UP, KEY_MOVE_DOWN, KEY_MOVE_JUMP, KEY_QUIT, KEY_MAX, }; TileSet* m_cat_texture; Shader* m_cat_shader; CatShaderData* m_cat_sdata; Camera* m_camera; Controller * m_controller; Light * m_light1; Light * m_light2; int m_init_status; bool m_ready; lol::phys::Simulation* m_simulation; array m_constraint_list; array m_physobj_list; array m_ground_list; array m_platform_list; array m_character_list; array m_stairs_list; float m_loop_value; float m_target_timer; int m_cam_target; float m_fov_dp; float m_loc_dp; };