|
- //
- // BtPhysTest
- //
- // Copyright: (c) 2009-2013 Benjamin "Touky" Huet <huet.benjamin@gmail.com>
- // (c) 2012 Sam Hocevar <sam@hocevar.net>
- //
-
- #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 "<BtPhysTest>"; }
-
- 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<EasyConstraint*> m_constraint_list;
- array<PhysicsObject*, float> m_physobj_list;
- array<PhysicsObject*> m_ground_list;
- array<PhysicsObject*> m_platform_list;
- array<PhysicsObject*> m_character_list;
- array<PhysicsObject*> m_stairs_list;
-
- float m_loop_value;
- float m_target_timer;
- int m_cam_target;
- float m_fov_dp;
- float m_loc_dp;
- };
|