Added sprite shape functions

This commit is contained in:
n00b
2025-03-20 17:29:11 -04:00
parent b6b1ecf86f
commit 14f87ecbf1
197 changed files with 5576 additions and 1203 deletions

View File

@@ -4443,18 +4443,9 @@ int main(int argc, char * argv[])
//ogles2 test
#ifdef RC_TESTING
std::string debug_opt = "a";
std::cin >> debug_opt;
if(debug_opt.compare("a")==0)
{
rc_intern_dirChange("/home/n00b/test/stp/");
//rc_intern_dirChange("");
rc_filename = "serenity_main.cbc";
}
else
{
rc_intern_dirChange("/home/n00b/Programs/RCBasic_v400_Linux64/examples/Simple 3D Platformer/");
}
rc_intern_dirChange("/home/n00b/test/SpriteShapeTest");
//rc_intern_dirChange("");
rc_filename = "main.cbc";
#endif
//---------------

File diff suppressed because it is too large Load Diff

View File

@@ -1694,6 +1694,33 @@ case FN_CastRay2D_All: //Number Function
case FN_GetRayHit2D: //Sub Procedure
rc_getRayHit2D( GETRAYHIT2D_INDEX, &GETRAYHIT2D_SPR_ID, &GETRAYHIT2D_X, &GETRAYHIT2D_Y, &GETRAYHIT2D_NORMAL_X, &GETRAYHIT2D_NORMAL_Y );
break;
case FN_SetSpriteCollisionShape: //Sub Procedure
rc_setSpriteCollisionShape( SETSPRITECOLLISIONSHAPE_SPR_ID, SETSPRITECOLLISIONSHAPE_SHAPE );
break;
case FN_GetSpriteCollisionShape: //Number Function
rc_push_num(rc_getSpriteCollisionShape( GETSPRITECOLLISIONSHAPE_SPR_ID ));
break;
case FN_SetSpriteRadius: //Sub Procedure
rc_setSpriteRadius( SETSPRITERADIUS_SPR_ID, SETSPRITERADIUS_RADIUS );
break;
case FN_GetSpriteRadius: //Number Function
rc_push_num(rc_getSpriteRadius( GETSPRITERADIUS_SPR_ID ));
break;
case FN_SetSpriteBox: //Sub Procedure
rc_setSpriteBox( SETSPRITEBOX_SPR_ID, SETSPRITEBOX_W, SETSPRITEBOX_H );
break;
case FN_GetSpriteBoxSize: //Sub Procedure
rc_getSpriteBoxSize( GETSPRITEBOXSIZE_SPR_ID, &GETSPRITEBOXSIZE_W, &GETSPRITEBOXSIZE_H );
break;
case FN_SetSpriteChain: //Sub Procedure
rc_setSpriteChain( SETSPRITECHAIN_SPR_ID, &SETSPRITECHAIN_VX, &SETSPRITECHAIN_VY, SETSPRITECHAIN_V_COUNT, SETSPRITECHAIN_PREV_X, SETSPRITECHAIN_PREV_Y, SETSPRITECHAIN_NEXT_X, SETSPRITECHAIN_NEXT_Y );
break;
case FN_SetSpriteChainLoop: //Sub Procedure
rc_setSpriteChainLoop( SETSPRITECHAINLOOP_SPR_ID, &SETSPRITECHAINLOOP_VX, &SETSPRITECHAINLOOP_VY, SETSPRITECHAINLOOP_V_COUNT );
break;
case FN_SetSpritePolygon: //Sub Procedure
rc_setSpritePolygon( SETSPRITEPOLYGON_SPR_ID, &SETSPRITEPOLYGON_VX, &SETSPRITEPOLYGON_VY, SETSPRITEPOLYGON_V_COUNT );
break;
case FN_createDistanceJoint: //Number Function
rc_push_num(rc_createDistanceJoint( CREATEDISTANCEJOINT_SPRITEA, CREATEDISTANCEJOINT_SPRITEB, CREATEDISTANCEJOINT_AX, CREATEDISTANCEJOINT_AY, CREATEDISTANCEJOINT_BX, CREATEDISTANCEJOINT_BY, CREATEDISTANCEJOINT_COLLIDE_CONNECT ));
break;

View File

@@ -4,14 +4,24 @@
#include <irrlicht.h>
#include <box2d/box2d.h>
#define RC_SPRITE_SHAPE_BOX 1
#define RC_SPRITE_SHAPE_POLYGON 2
#define RC_SPRITE_SHAPE_CIRCLE 3
#define RC_SPRITE_SHAPE_CHAIN 4
struct rc_sprite2D_physics_obj
{
b2Body* body;
b2Fixture* fixture;
b2Shape* shape;
int shape_type;
int offset_x;
int offset_y;
int box_width;
int box_height;
};
struct rc_sprite2D_animation_obj

View File

@@ -371,6 +371,9 @@ int rc_createSprite(int img_id, double w, double h)
rc_sprite[spr_id].physics.shape = new b2PolygonShape();
b2PolygonShape* fix_shape = (b2PolygonShape*)rc_sprite[spr_id].physics.shape;
fix_shape->SetAsBox(w/2, h/2);
rc_sprite[spr_id].physics.shape_type = RC_SPRITE_SHAPE_BOX;
rc_sprite[spr_id].physics.box_width = w;
rc_sprite[spr_id].physics.box_height = h;
sprFixtureDef.shape = rc_sprite[spr_id].physics.shape;
sprFixtureDef.isSensor = true;
sprFixtureDef.density = 1;
@@ -473,6 +476,335 @@ int rc_getSpriteSource(int spr_id)
return rc_sprite[spr_id].image_id;
}
void rc_setSpriteCollisionShape(int spr_id, int sprite_shape)
{
if(spr_id < 0 || spr_id >= rc_sprite.size())
return;
if(!rc_sprite[spr_id].active)
return;
//Delete Shape
bool isSensor = rc_sprite[spr_id].physics.fixture->IsSensor();
float density = rc_sprite[spr_id].physics.fixture->GetDensity();
if(rc_sprite[spr_id].physics.shape)
delete rc_sprite[spr_id].physics.shape;
rc_sprite[spr_id].physics.shape = NULL;
//Delete Fixture
if(rc_sprite[spr_id].physics.fixture)
rc_sprite[spr_id].physics.body->DestroyFixture(rc_sprite[spr_id].physics.fixture);
rc_sprite[spr_id].physics.fixture = NULL;
b2FixtureDef sprFixtureDef;
switch(sprite_shape)
{
case RC_SPRITE_SHAPE_BOX:
{
rc_sprite[spr_id].physics.shape = new b2PolygonShape();
b2PolygonShape* fix_shape = (b2PolygonShape*)rc_sprite[spr_id].physics.shape;
fix_shape->SetAsBox(rc_sprite[spr_id].frame_size.Width/2, rc_sprite[spr_id].frame_size.Height/2);
rc_sprite[spr_id].physics.box_width = rc_sprite[spr_id].frame_size.Width;
rc_sprite[spr_id].physics.box_height = rc_sprite[spr_id].frame_size.Height;
sprFixtureDef.shape = rc_sprite[spr_id].physics.shape;
sprFixtureDef.isSensor = isSensor;
sprFixtureDef.density = density;
rc_sprite[spr_id].physics.fixture = rc_sprite[spr_id].physics.body->CreateFixture(&sprFixtureDef);
rc_sprite[spr_id].physics.shape_type = RC_SPRITE_SHAPE_BOX;
}
break;
case RC_SPRITE_SHAPE_POLYGON:
{
rc_sprite[spr_id].physics.shape = new b2PolygonShape();
b2PolygonShape* fix_shape = (b2PolygonShape*)rc_sprite[spr_id].physics.shape;
fix_shape->SetAsBox(rc_sprite[spr_id].frame_size.Width/2, rc_sprite[spr_id].frame_size.Width/2);
sprFixtureDef.shape = rc_sprite[spr_id].physics.shape;
sprFixtureDef.isSensor = isSensor;
sprFixtureDef.density = density;
rc_sprite[spr_id].physics.fixture = rc_sprite[spr_id].physics.body->CreateFixture(&sprFixtureDef);
rc_sprite[spr_id].physics.shape_type = RC_SPRITE_SHAPE_POLYGON;
}
break;
case RC_SPRITE_SHAPE_CIRCLE:
{
rc_sprite[spr_id].physics.shape = new b2CircleShape();
b2CircleShape* fix_shape = (b2CircleShape*)rc_sprite[spr_id].physics.shape;
fix_shape->m_radius = (rc_sprite[spr_id].frame_size.Width > rc_sprite[spr_id].frame_size.Height ? rc_sprite[spr_id].frame_size.Width : rc_sprite[spr_id].frame_size.Height) /2;
sprFixtureDef.shape = rc_sprite[spr_id].physics.shape;
sprFixtureDef.isSensor = isSensor;
sprFixtureDef.density = density;
rc_sprite[spr_id].physics.fixture = rc_sprite[spr_id].physics.body->CreateFixture(&sprFixtureDef);
rc_sprite[spr_id].physics.shape_type = RC_SPRITE_SHAPE_CIRCLE;
}
break;
case RC_SPRITE_SHAPE_CHAIN:
{
rc_sprite[spr_id].physics.shape = new b2ChainShape();
b2ChainShape* fix_shape = (b2ChainShape*)rc_sprite[spr_id].physics.shape;
b2Vec2 v[3];
v[0].Set(0, 0);
v[1].Set(1, 1);
v[2].Set(2, 2);
fix_shape->Clear();
fix_shape->CreateLoop(v, 3);
fix_shape->m_radius = (rc_sprite[spr_id].frame_size.Width > rc_sprite[spr_id].frame_size.Height ? rc_sprite[spr_id].frame_size.Width : rc_sprite[spr_id].frame_size.Height) /2;
sprFixtureDef.shape = rc_sprite[spr_id].physics.shape;
sprFixtureDef.isSensor = isSensor;
sprFixtureDef.density = density;
rc_sprite[spr_id].physics.fixture = rc_sprite[spr_id].physics.body->CreateFixture(&sprFixtureDef);
rc_sprite[spr_id].physics.shape_type = RC_SPRITE_SHAPE_CHAIN;
}
break;
}
}
int rc_getSpriteCollisionShape(int spr_id)
{
if(spr_id < 0 || spr_id >= rc_sprite.size())
return 0;
if(!rc_sprite[spr_id].active)
return 0;
return rc_sprite[spr_id].physics.shape_type;
}
void rc_setSpriteRadius(int spr_id, double radius)
{
if(spr_id < 0 || spr_id >= rc_sprite.size())
return;
if(!rc_sprite[spr_id].active)
return;
if(rc_sprite[spr_id].physics.shape_type == RC_SPRITE_SHAPE_CIRCLE)
{
bool isSensor = rc_sprite[spr_id].physics.fixture->IsSensor();
float density = rc_sprite[spr_id].physics.fixture->GetDensity();
//Delete Fixture
if(rc_sprite[spr_id].physics.fixture)
rc_sprite[spr_id].physics.body->DestroyFixture(rc_sprite[spr_id].physics.fixture);
rc_sprite[spr_id].physics.fixture = NULL;
b2FixtureDef sprFixtureDef;
b2CircleShape* fix_shape = (b2CircleShape*)rc_sprite[spr_id].physics.shape;
fix_shape->m_radius = (float)radius;
sprFixtureDef.shape = rc_sprite[spr_id].physics.shape;
sprFixtureDef.isSensor = isSensor;
sprFixtureDef.density = density;
rc_sprite[spr_id].physics.fixture = rc_sprite[spr_id].physics.body->CreateFixture(&sprFixtureDef);
}
}
double rc_getSpriteRadius(int spr_id)
{
if(spr_id < 0 || spr_id >= rc_sprite.size())
return 0;
if(!rc_sprite[spr_id].active)
return 0;
if(rc_sprite[spr_id].physics.shape_type == RC_SPRITE_SHAPE_CIRCLE)
{
b2CircleShape* fix_shape = (b2CircleShape*)rc_sprite[spr_id].physics.shape;
return (double)fix_shape->m_radius;
}
return 0;
}
void rc_setSpriteBox(int spr_id, int w, int h)
{
if(spr_id < 0 || spr_id >= rc_sprite.size())
return;
if(!rc_sprite[spr_id].active)
return;
if(rc_sprite[spr_id].physics.shape_type == RC_SPRITE_SHAPE_BOX)
{
bool isSensor = rc_sprite[spr_id].physics.fixture->IsSensor();
float density = rc_sprite[spr_id].physics.fixture->GetDensity();
//Delete Fixture
if(rc_sprite[spr_id].physics.fixture)
rc_sprite[spr_id].physics.body->DestroyFixture(rc_sprite[spr_id].physics.fixture);
rc_sprite[spr_id].physics.fixture = NULL;
b2FixtureDef sprFixtureDef;
b2PolygonShape* fix_shape = (b2PolygonShape*)rc_sprite[spr_id].physics.shape;
fix_shape->SetAsBox(w/2, h/2);
rc_sprite[spr_id].physics.box_width = w;
rc_sprite[spr_id].physics.box_height = h;
sprFixtureDef.shape = rc_sprite[spr_id].physics.shape;
sprFixtureDef.isSensor = isSensor;
sprFixtureDef.density = density;
rc_sprite[spr_id].physics.fixture = rc_sprite[spr_id].physics.body->CreateFixture(&sprFixtureDef);
}
}
void rc_getSpriteBoxSize(int spr_id, double* w, double* h)
{
if(spr_id < 0 || spr_id >= rc_sprite.size())
return;
if(!rc_sprite[spr_id].active)
return;
*w = -1;
*h = -1;
if(rc_sprite[spr_id].physics.shape_type == RC_SPRITE_SHAPE_BOX)
{
*w = (double)rc_sprite[spr_id].physics.box_width;
*h = (double)rc_sprite[spr_id].physics.box_height;
}
}
void rc_setSpriteChain(int spr_id, double* vx, double* vy, int v_count, double prev_x, double prev_y, double next_x, double next_y)
{
if(spr_id < 0 || spr_id >= rc_sprite.size())
return;
if(!rc_sprite[spr_id].active)
return;
if(rc_sprite[spr_id].physics.shape_type == RC_SPRITE_SHAPE_CHAIN)
{
bool isSensor = rc_sprite[spr_id].physics.fixture->IsSensor();
float density = rc_sprite[spr_id].physics.fixture->GetDensity();
//Delete Fixture
if(rc_sprite[spr_id].physics.fixture)
rc_sprite[spr_id].physics.body->DestroyFixture(rc_sprite[spr_id].physics.fixture);
rc_sprite[spr_id].physics.fixture = NULL;
b2FixtureDef sprFixtureDef;
b2ChainShape* fix_shape = (b2ChainShape*)rc_sprite[spr_id].physics.shape;
fix_shape->Clear();
b2Vec2 vert[v_count+1];
for(int i = 0; i < v_count; i++)
{
vert[i] = b2Vec2((float)vx[i], (float)vy[i]);
}
b2Vec2 prev_vert((float)prev_x, (float)prev_y);
b2Vec2 next_vert((float)next_x, (float)next_y);
fix_shape->CreateChain(vert, v_count, prev_vert, next_vert);
sprFixtureDef.shape = rc_sprite[spr_id].physics.shape;
sprFixtureDef.isSensor = isSensor;
sprFixtureDef.density = density;
rc_sprite[spr_id].physics.fixture = rc_sprite[spr_id].physics.body->CreateFixture(&sprFixtureDef);
}
}
void rc_setSpriteChainLoop(int spr_id, double* vx, double* vy, int v_count)
{
if(spr_id < 0 || spr_id >= rc_sprite.size())
return;
if(!rc_sprite[spr_id].active)
return;
if(rc_sprite[spr_id].physics.shape_type == RC_SPRITE_SHAPE_CHAIN)
{
bool isSensor = rc_sprite[spr_id].physics.fixture->IsSensor();
float density = rc_sprite[spr_id].physics.fixture->GetDensity();
//Delete Fixture
if(rc_sprite[spr_id].physics.fixture)
rc_sprite[spr_id].physics.body->DestroyFixture(rc_sprite[spr_id].physics.fixture);
rc_sprite[spr_id].physics.fixture = NULL;
b2FixtureDef sprFixtureDef;
b2ChainShape* fix_shape = (b2ChainShape*)rc_sprite[spr_id].physics.shape;
fix_shape->Clear();
b2Vec2 vert[v_count];
for(int i = 0; i < v_count; i++)
{
vert[i] = b2Vec2((float)vx[i], (float)vy[i]);
}
fix_shape->CreateLoop(vert, v_count);
sprFixtureDef.shape = rc_sprite[spr_id].physics.shape;
sprFixtureDef.isSensor = isSensor;
sprFixtureDef.density = density;
rc_sprite[spr_id].physics.fixture = rc_sprite[spr_id].physics.body->CreateFixture(&sprFixtureDef);
}
}
void rc_setSpritePolygon(int spr_id, double* vx, double* vy, int v_count)
{
if(spr_id < 0 || spr_id >= rc_sprite.size())
return;
if(!rc_sprite[spr_id].active)
return;
if(v_count < 3)
return; // A convex hull must have atleast 3 points
if(rc_sprite[spr_id].physics.shape_type == RC_SPRITE_SHAPE_POLYGON)
{
bool isSensor = rc_sprite[spr_id].physics.fixture->IsSensor();
float density = rc_sprite[spr_id].physics.fixture->GetDensity();
//Delete Fixture
if(rc_sprite[spr_id].physics.fixture)
rc_sprite[spr_id].physics.body->DestroyFixture(rc_sprite[spr_id].physics.fixture);
rc_sprite[spr_id].physics.fixture = NULL;
b2FixtureDef sprFixtureDef;
b2PolygonShape* fix_shape = (b2PolygonShape*)rc_sprite[spr_id].physics.shape;
b2Vec2 vert[v_count];
for(int i = 0; i < v_count; i++)
{
vert[i] = b2Vec2((float)vx[i], (float)vy[i]);
}
fix_shape->Set(vert, v_count);
sprFixtureDef.shape = rc_sprite[spr_id].physics.shape;
sprFixtureDef.isSensor = isSensor;
sprFixtureDef.density = density;
rc_sprite[spr_id].physics.fixture = rc_sprite[spr_id].physics.body->CreateFixture(&sprFixtureDef);
}
}
void rc_setSpriteType(int spr_id, int body_type)
{

View File

@@ -1,5 +1,5 @@
# depslib dependency file v1.0
1738038582 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/main.cpp
1742479051 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/main.cpp
"rc_os_defines.h"
<emscripten.h>
<sys/param.h>
@@ -33,10 +33,10 @@
<irrtheora.h>
"rc_func130_cases.h"
1738038582 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_os_defines.h
1742504995 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_os_defines.h
<TargetConditionals.h>
1737863743 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_defines.h
1742442075 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_defines.h
1734372966 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_stdlib.h
"rc_os_defines.h"
@@ -1248,7 +1248,7 @@
1734372058 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/RealisticWater.h
<irrlicht.h>
1736029837 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx.h
1738504435 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx.h
"SDL.h"
<SDL2/SDL.h>
<irrlicht.h>
@@ -1272,7 +1272,7 @@
"rc_joints.h"
<irrtheora.h>
1738103687 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx_core.h
1738504435 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx_core.h
"SDL.h"
"btBulletDynamicsCommon.h"
"BulletSoftBody/btSoftRigidDynamicsWorld.h"
@@ -1306,7 +1306,7 @@
<irrlicht.h>
<iostream>
1734900354 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_sprite2D.h
1742434895 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_sprite2D.h
<irrlicht.h>
<box2d/box2d.h>
@@ -2275,7 +2275,7 @@
"rc_gfx_core.h"
<irrtheora.h>
1737863743 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_func130_cases.h
1742442075 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_func130_cases.h
1724469097 source:/home/n00b/Projects/irrBullet/src/irrBullet.cpp
"irrBullet.h"
@@ -2491,7 +2491,7 @@
<cmath>
<cstdint>
1734919451 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_spritelib.h
1742504452 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_spritelib.h
"SDL.h"
<SDL2/SDL.h>
"rc_sprite2D.h"
@@ -2499,7 +2499,7 @@
"rc_sprite_physics.h"
"rc_joints.h"
1734658467 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_tilelib.h
1738504435 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_tilelib.h
"SDL.h"
<SDL2/SDL.h>
"rc_tilemap.h"
@@ -2509,10 +2509,10 @@
<irrlicht.h>
<vector>
1734900354 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_sprite_physics.h
1738504435 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_sprite_physics.h
"rc_sprite2D.h"
1734910148 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_joints.h
1738504435 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_joints.h
"SDL.h"
<SDL2/SDL.h>
"rc_sprite2D.h"
@@ -2521,7 +2521,7 @@
1734372966 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_physics3D_base.h
"rc_gfx_core.h"
1738038581 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_base_actor.h
1738504435 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_base_actor.h
1734372966 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_actor_material.h
@@ -2531,16 +2531,16 @@
1734372966 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_constraint.h
1737867146 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_mesh.h
1738504435 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_mesh.h
1734372058 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_particles.h
1734719003 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_scene.h
1738504435 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_scene.h
"rc_gfx_core.h"
1734372058 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_camera.h
1738103687 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_windowclose.h
1738504435 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_windowclose.h
1608686973 /usr/include/bullet/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h
"BulletCollision/CollisionShapes/btTriangleCallback.h"

View File

@@ -2,39 +2,62 @@
<CodeBlocks_layout_file>
<FileVersion major="1" minor="0" />
<ActiveTarget name="Debug" />
<File name="rc_defines.h" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_windowclose.h" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="190390" topLine="2847" />
<Cursor1 position="24178" topLine="335" />
</Cursor>
<Folding>
<Collapse line="157" />
</Folding>
</File>
<File name="rc_matrix.h" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="116" topLine="804" />
</Cursor>
</File>
<File name="rc_gfx.h" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_actor_animation.h" open="0" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="4981" topLine="158" />
<Cursor1 position="1461" topLine="42" />
</Cursor>
</File>
<File name="rc_sprite2D.h" open="0" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="main.cpp" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1019" topLine="31" />
<Cursor1 position="133462" topLine="4441" />
</Cursor>
</File>
<File name="rc_test.h" open="0" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_sprite_physics.h" open="1" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="115" topLine="0" />
<Cursor1 position="13990" topLine="0" />
</Cursor>
</File>
<File name="rc_base_actor.h" open="1" top="1" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="../../irrBullet/src/irrBulletcommon.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="27800" topLine="1008" />
<Cursor1 position="924" topLine="6" />
</Cursor>
</File>
<File name="rc_physics3D_base.h" open="0" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_geometry.h" open="0" top="0" tabpos="20" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3283" topLine="66" />
<Cursor1 position="20919" topLine="652" />
</Cursor>
</File>
<File name="rc_mesh.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_scene.h" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="5389" topLine="242" />
<Cursor1 position="1364" topLine="33" />
</Cursor>
</File>
<File name="../../irrBullet/src/irrBulletRigidBody.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2046" topLine="42" />
</Cursor>
</File>
<File name="rc_constraint.h" open="0" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="8391" topLine="231" />
</Cursor>
</File>
<File name="camera.h" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="640" topLine="13" />
</Cursor>
</File>
<File name="../../irrBullet/src/irrBulletCollisionObject.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@@ -42,6 +65,21 @@
<Cursor1 position="0" topLine="384" />
</Cursor>
</File>
<File name="rc_os_defines.h" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="91" topLine="0" />
</Cursor>
</File>
<File name="rc_video.h" open="0" top="0" tabpos="21" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="169" topLine="6" />
</Cursor>
</File>
<File name="rc_actor_physics.h" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="0" />
</Cursor>
</File>
<File name="rc_gfx3D.h" open="0" top="0" tabpos="14" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="565" topLine="0" />
@@ -52,147 +90,9 @@
<Cursor1 position="17752" topLine="630" />
</Cursor>
</File>
<File name="rc_joints.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_defines.h" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="310" topLine="0" />
</Cursor>
</File>
<File name="rc_stdlib.h" open="0" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="24491" topLine="1083" />
</Cursor>
</File>
<File name="rc_windowclose.h" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="24178" topLine="335" />
</Cursor>
<Folding>
<Collapse line="157" />
</Folding>
</File>
<File name="../../irrBullet/src/irrBulletWorld.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2750" topLine="75" />
</Cursor>
</File>
<File name="rc_audio.h" open="0" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="6531" topLine="311" />
</Cursor>
</File>
<File name="rc_actor_physics.h" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="0" />
</Cursor>
</File>
<File name="rc_os_defines.h" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="91" topLine="0" />
</Cursor>
</File>
<File name="../../irrBullet/src/irrBullet.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="7" />
</Cursor>
</File>
<File name="main.cpp" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="133462" topLine="4441" />
</Cursor>
</File>
<File name="rc_actor_material.h" open="0" top="0" tabpos="24" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="14123" topLine="456" />
</Cursor>
</File>
<File name="rc_sprite_physics.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="13990" topLine="547" />
</Cursor>
</File>
<File name="rc_tilelib.h" open="0" top="0" tabpos="22" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3693" topLine="136" />
</Cursor>
</File>
<File name="camera.h" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="640" topLine="13" />
</Cursor>
</File>
<File name="RealisticWater.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="7671" topLine="204" />
</Cursor>
</File>
<File name="rc_actor_animation.h" open="0" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1461" topLine="42" />
</Cursor>
</File>
<File name="../../irrBullet/src/irrBulletRigidBody.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2046" topLine="42" />
</Cursor>
</File>
<File name="rc_video.h" open="0" top="0" tabpos="21" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="169" topLine="6" />
</Cursor>
</File>
<File name="rc_constraint.h" open="0" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="8391" topLine="231" />
</Cursor>
</File>
<File name="../../irrBullet/src/irrBulletcommon.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="924" topLine="6" />
</Cursor>
</File>
<File name="rc_scene.h" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1364" topLine="33" />
</Cursor>
</File>
<File name="rc_particles.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="6262" topLine="213" />
</Cursor>
</File>
<File name="rc_net.h" open="0" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3769" topLine="186" />
</Cursor>
</File>
<File name="rc_font.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="0" />
</Cursor>
</File>
<File name="rc_spritelib.h" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="20148" topLine="829" />
</Cursor>
</File>
<File name="gui_freetype_font.h" open="0" top="0" tabpos="23" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="183" topLine="0" />
</Cursor>
</File>
<File name="gui_freetype_font.cpp" open="0" top="0" tabpos="24" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="792" topLine="0" />
</Cursor>
</File>
<File name="rc_geometry.h" open="0" top="0" tabpos="20" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="20919" topLine="652" />
</Cursor>
</File>
<File name="rc_gfx_core.h" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="22508" topLine="757" />
<Cursor1 position="190390" topLine="2847" />
</Cursor>
</File>
<File name="rc_tilemap.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@@ -200,14 +100,114 @@
<Cursor1 position="243" topLine="26" />
</Cursor>
</File>
<File name="rc_func130_cases.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_physics3D_base.h" open="0" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="79957" topLine="1947" />
<Cursor1 position="3283" topLine="66" />
</Cursor>
</File>
<File name="rc_matrix.h" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_font.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="116" topLine="804" />
<Cursor1 position="0" topLine="0" />
</Cursor>
</File>
<File name="RealisticWater.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="7671" topLine="204" />
</Cursor>
</File>
<File name="rc_mesh.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="5389" topLine="242" />
</Cursor>
</File>
<File name="rc_gfx_core.h" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="22508" topLine="757" />
</Cursor>
</File>
<File name="gui_freetype_font.cpp" open="0" top="0" tabpos="24" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="792" topLine="0" />
</Cursor>
</File>
<File name="rc_test.h" open="0" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="115" topLine="0" />
</Cursor>
</File>
<File name="rc_base_actor.h" open="1" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="27800" topLine="996" />
</Cursor>
</File>
<File name="rc_stdlib.h" open="0" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="24491" topLine="1083" />
</Cursor>
</File>
<File name="rc_audio.h" open="0" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="6531" topLine="311" />
</Cursor>
</File>
<File name="rc_actor_material.h" open="0" top="0" tabpos="24" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="14123" topLine="456" />
</Cursor>
</File>
<File name="rc_particles.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="6262" topLine="213" />
</Cursor>
</File>
<File name="rc_sprite2D.h" open="1" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="111" topLine="3" />
</Cursor>
</File>
<File name="../../irrBullet/src/irrBulletWorld.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2750" topLine="75" />
</Cursor>
</File>
<File name="rc_joints.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="310" topLine="0" />
</Cursor>
</File>
<File name="rc_tilelib.h" open="0" top="0" tabpos="22" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3693" topLine="136" />
</Cursor>
</File>
<File name="rc_func130_cases.h" open="1" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="79957" topLine="1937" />
</Cursor>
</File>
<File name="rc_gfx.h" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="4981" topLine="158" />
</Cursor>
</File>
<File name="gui_freetype_font.h" open="0" top="0" tabpos="23" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="183" topLine="0" />
</Cursor>
</File>
<File name="rc_net.h" open="0" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3769" topLine="186" />
</Cursor>
</File>
<File name="../../irrBullet/src/irrBullet.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="7" />
</Cursor>
</File>
<File name="rc_spritelib.h" open="1" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="15607" topLine="560" />
</Cursor>
</File>
</CodeBlocks_layout_file>