#ifndef RC_SPRITE2D_H_INCLUDED #define RC_SPRITE2D_H_INCLUDED #include #include struct rc_sprite2D_physics_obj { b2Body* body; b2Fixture* fixture; b2Shape* shape; int offset_x; int offset_y; }; struct rc_sprite2D_animation_obj { irr::core::array frames; int num_frames; int current_frame; double fps; double frame_start_time; double frame_swap_time; }; struct rc_sprite2D_obj { int id; //This is needed to reference this sprite in the contact listener bool active = false; int image_id; int sheet_numFrames; int frames_per_row; irr::core::vector2d scale; irr::core::dimension2d frame_size; bool visible = true; Uint8 alpha; irr::video::SColor color_mod; bool isSolid = false; rc_sprite2D_physics_obj physics; int current_animation; int num_animation_loops; int current_animation_loop; bool isPlaying; irr::core::array deleted_animation; irr::core::array animation; int parent_canvas = -1; double z; }; irr::core::array rc_sprite; #define RC_JOINT_TYPE_DISTANCE 1 #define RC_JOINT_TYPE_FRICTION 2 #define RC_JOINT_TYPE_GEAR 3 #define RC_JOINT_TYPE_MOTOR 4 #define RC_JOINT_TYPE_PRISMATIC 5 #define RC_JOINT_TYPE_PULLEY 6 #define RC_JOINT_TYPE_REVOLUTE 7 #define RC_JOINT_TYPE_WELD 8 #define RC_JOINT_TYPE_WHEEL 9 struct rc_b2Joint_obj { b2Joint* joint; int type; bool active; int canvas; }; irr::core::array rc_joint; #endif // RC_SPRITE2D_H_INCLUDED