Added new physics functions
* Added some new physics functions * Added new documentation * Added some auto checks for OS to rc_os_defines.h * Fixed bugs on settting and getting position of sprites
This commit is contained in:
6
doc/files/deletejoint.txt
Normal file
6
doc/files/deletejoint.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#title DeleteJoint [RCBasic Doc]
|
||||||
|
#header Sub DeleteJoint( joint_id )
|
||||||
|
|
||||||
|
Clears a joint from memory
|
||||||
|
|
||||||
|
#ref CreateDistanceJoint CreateFrictionJoint CreateGearJoint CreateMotorJoint CreatePrismaticJoint CreatePulleyJoint CreateRevoluteJoint CreateWeldJoint CreateWheelJoint
|
||||||
4
doc/files/getspriteaabb.txt
Normal file
4
doc/files/getspriteaabb.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#title GetSpriteAABB [RCBasic Doc]
|
||||||
|
#header sub GetSpriteAABB( spr_id, ByRef x1, ByRef y1, ByRef x2, ByRef y2 )
|
||||||
|
|
||||||
|
Returns the axis aligned bounding box for a sprite
|
||||||
6
doc/files/getspritedensity.txt
Normal file
6
doc/files/getspritedensity.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#title GetSpriteDensity [RCBasic Doc]
|
||||||
|
#header function GetSpriteDensity( spr_id )
|
||||||
|
|
||||||
|
Returns the density of a sprite. Higher density means a heavier sprite.
|
||||||
|
|
||||||
|
#ref SetSpriteDensity
|
||||||
7
doc/files/getspritefriction.txt
Normal file
7
doc/files/getspritefriction.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#title GetSpriteFriction [RCBasic Doc]
|
||||||
|
#header function GetSpriteFriction( spr_id )
|
||||||
|
|
||||||
|
Returns a sprite's friction
|
||||||
|
|
||||||
|
#ref GetSpriteFriction
|
||||||
|
|
||||||
6
doc/files/getspriterestitution.txt
Normal file
6
doc/files/getspriterestitution.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#title GetSpriteRestitution [RCBasic Doc]
|
||||||
|
#header function GetSpriteRestitution( spr_id )
|
||||||
|
|
||||||
|
Returns the restitution coefficient for a sprite
|
||||||
|
|
||||||
|
#ref SetSpriteRestitution
|
||||||
6
doc/files/getspriterestitutionthreshold.txt
Normal file
6
doc/files/getspriterestitutionthreshold.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#title GetSpriteRestitutionThreshold [RCBasic Doc]
|
||||||
|
#header function GetSpriteRestitutionThreshold( spr_id )
|
||||||
|
|
||||||
|
Returns the restitution velocity threshold for a sprite
|
||||||
|
|
||||||
|
#ref SetSpriteRestitutionThreshold
|
||||||
6
doc/files/getworld2dautoclearforces.txt
Normal file
6
doc/files/getworld2dautoclearforces.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#title GetWorld2DAutoClearForces [RCBasic Doc]
|
||||||
|
#header function GetWorld2DAutoClearForces()
|
||||||
|
|
||||||
|
Returns the auto clear forces flag for the active canvas
|
||||||
|
|
||||||
|
#ref SetWorld2DAutoClearForces
|
||||||
7
doc/files/getworld2dpositioniterations.txt
Normal file
7
doc/files/getworld2dpositioniterations.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#title GetWorld2DPositionIterations [RCBasic Doc]
|
||||||
|
#header function GetWorld2DPositionIterations()
|
||||||
|
|
||||||
|
Returns the number of position iterations for the position constraint solver
|
||||||
|
|
||||||
|
#ref SetWorld2DPositionIterations
|
||||||
|
|
||||||
6
doc/files/getworld2dtimestep.txt
Normal file
6
doc/files/getworld2dtimestep.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#title GetWorld2DTimeStep [RCBasic Doc]
|
||||||
|
#header function GetWorld2DTimeStep()
|
||||||
|
|
||||||
|
Returns the timestep for the active canvas
|
||||||
|
|
||||||
|
#ref SetWorld2DTimeStep
|
||||||
6
doc/files/getworld2dvelocityiterations.txt
Normal file
6
doc/files/getworld2dvelocityiterations.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#title GetWorld2DVelocityIterations [RCBasic Doc]
|
||||||
|
#header function GetWorld2DVelocityIterations()
|
||||||
|
|
||||||
|
Returns the number of velocity iterations for the velocity constraint solver
|
||||||
|
|
||||||
|
#ref SetWorld2DVelocityIterations
|
||||||
5
doc/files/getworld3dmaxsubsteps.txt
Normal file
5
doc/files/getworld3dmaxsubsteps.txt
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#title GetWorld3DMaxSubSteps [RCBasic Doc]
|
||||||
|
#header function GetWorld3DMaxSubSteps()
|
||||||
|
|
||||||
|
Returns the maximum substeps in the 3d physics time step
|
||||||
|
|
||||||
4
doc/files/getworld3dtimestep.txt
Normal file
4
doc/files/getworld3dtimestep.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#title GetWorld3DTimeStep [RCBasic Doc]
|
||||||
|
#header function GetWorld3DTimeStep()
|
||||||
|
|
||||||
|
Returns the timestep of the 3d physics simulation
|
||||||
9
doc/files/setspritedensity.txt
Normal file
9
doc/files/setspritedensity.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#title SetSpriteDensity [RCBasic Doc]
|
||||||
|
#header sub SetSpriteDensity( spr_id, density )
|
||||||
|
|
||||||
|
Sets the density of a sprite. Higher density means a heavier sprite.
|
||||||
|
|
||||||
|
Density is used to calculate mass for a sprite.
|
||||||
|
|
||||||
|
#ref GetSpriteDensity
|
||||||
|
|
||||||
6
doc/files/setspritefriction.txt
Normal file
6
doc/files/setspritefriction.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#title SetSpriteFriction [RCBasic Doc]
|
||||||
|
#header sub SetSpriteFriction( spr_id, friction )
|
||||||
|
|
||||||
|
Sets a sprite's friction
|
||||||
|
|
||||||
|
#ref GetSpriteFriction
|
||||||
7
doc/files/setspriterestitution.txt
Normal file
7
doc/files/setspriterestitution.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#title SetSpriteRestitution [RCBasic Doc]
|
||||||
|
#header sub SetSpriteRestitution( spr_id, restitution )
|
||||||
|
|
||||||
|
Sets the restitution coefficient for a sprite
|
||||||
|
|
||||||
|
#ref GetSpriteRestitution
|
||||||
|
|
||||||
6
doc/files/setspriterestitutionthreshold.txt
Normal file
6
doc/files/setspriterestitutionthreshold.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#title SetSpriteRestitutionThreshold [RCBasic Doc]
|
||||||
|
#header sub SetSpriteRestitutionThreshold( spr_id, threshold )
|
||||||
|
|
||||||
|
Sets the restitution threshold for a sprite.
|
||||||
|
|
||||||
|
#ref GetSpriteRestitutionThreshold
|
||||||
6
doc/files/setworld2dautoclearforces.txt
Normal file
6
doc/files/setworld2dautoclearforces.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#title SetWorld2DAutoClearForces [RCBasic Doc]
|
||||||
|
#header sub SetWorld2DAutoClearForces( flag )
|
||||||
|
|
||||||
|
Sets the auto clear forces flag for the active canvas
|
||||||
|
|
||||||
|
#ref GetWorld2DAutoClearForces
|
||||||
6
doc/files/setworld2dpositioniterations.txt
Normal file
6
doc/files/setworld2dpositioniterations.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#title SetWorld2DPositionIterations [RCBasic Doc]
|
||||||
|
#header sub SetWorld2DPositionIterations( p )
|
||||||
|
|
||||||
|
Sets the number of position iterations for the position constraint solver
|
||||||
|
|
||||||
|
#ref GetWorld2DPositionIterations
|
||||||
6
doc/files/setworld2dtimestep.txt
Normal file
6
doc/files/setworld2dtimestep.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#title SetWorld2DTimeStep [RCBasic Doc]
|
||||||
|
#header sub SetWorld2DTimeStep( ts )
|
||||||
|
|
||||||
|
Sets the timestep for the active canvas
|
||||||
|
|
||||||
|
#ref GetWorld2DTimeStep
|
||||||
6
doc/files/setworld2dvelocityiterations.txt
Normal file
6
doc/files/setworld2dvelocityiterations.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#title SetWorld2DVelocityIterations [RCBasic Doc]
|
||||||
|
#header sub SetWorld2DVelocityIterations( v )
|
||||||
|
|
||||||
|
Sets the number of velocity iterations for the velocity constraint solver
|
||||||
|
|
||||||
|
#ref GetWorld2DVelocityIterations
|
||||||
@@ -520,6 +520,25 @@ rc_setSpriteAwake( SETSPRITEAWAKE_SPR_ID, SETSPRITEAWAKE_FLAG )
|
|||||||
rc_spriteIsAwake( SPRITEISAWAKE_SPR_ID )
|
rc_spriteIsAwake( SPRITEISAWAKE_SPR_ID )
|
||||||
rc_setSpriteFixedRotation( SETSPRITEFIXEDROTATION_SPR_ID, SETSPRITEFIXEDROTATION_FLAG )
|
rc_setSpriteFixedRotation( SETSPRITEFIXEDROTATION_SPR_ID, SETSPRITEFIXEDROTATION_FLAG )
|
||||||
rc_spriteIsFixedRotation( SPRITEISFIXEDROTATION_SPR_ID )
|
rc_spriteIsFixedRotation( SPRITEISFIXEDROTATION_SPR_ID )
|
||||||
|
rc_setSpriteDensity( SETSPRITEDENSITY_SPR_ID, SETSPRITEDENSITY_DENSITY )
|
||||||
|
rc_getSpriteDensity( GETSPRITEDENSITY_SPR_ID )
|
||||||
|
rc_setSpriteFriction( SETSPRITEFRICTION_SPR_ID, SETSPRITEFRICTION_FRICTION )
|
||||||
|
rc_getSpriteFriction( GETSPRITEFRICTION_SPR_ID )
|
||||||
|
rc_setSpriteRestitution( SETSPRITERESTITUTION_SPR_ID, SETSPRITERESTITUTION_RESTITUTION )
|
||||||
|
rc_getSpriteRestitution( GETSPRITERESTITUTION_SPR_ID )
|
||||||
|
rc_setSpriteRestitutionThreshold( SETSPRITERESTITUTIONTHRESHOLD_SPR_ID, SETSPRITERESTITUTIONTHRESHOLD_THRESHOLD )
|
||||||
|
rc_getSpriteRestitutionThreshold( GETSPRITERESTITUTIONTHRESHOLD_SPR_ID )
|
||||||
|
rc_getSpriteAABB( GETSPRITEAABB_SPR_ID, &GETSPRITEAABB_X1, &GETSPRITEAABB_Y1, &GETSPRITEAABB_X2, &GETSPRITEAABB_Y2 )
|
||||||
|
rc_setGravity2D( SETGRAVITY2D_X, SETGRAVITY2D_Y )
|
||||||
|
rc_getGravity2D( &GETGRAVITY2D_X, &GETGRAVITY2D_Y )
|
||||||
|
rc_setWorld2DTimeStep( SETWORLD2DTIMESTEP_TS )
|
||||||
|
rc_setWorld2DVelocityIterations( SETWORLD2DVELOCITYITERATIONS_V )
|
||||||
|
rc_setWorld2DPositionIterations( SETWORLD2DPOSITIONITERATIONS_P )
|
||||||
|
rc_getWorld2DTimeStep( )
|
||||||
|
rc_getWorld2DVelocityIterations( )
|
||||||
|
rc_getWorld2DPositionIterations( )
|
||||||
|
rc_setWorld2DAutoClearForces( SETWORLD2DAUTOCLEARFORCES_FLAG )
|
||||||
|
rc_getWorld2DAutoClearForces( )
|
||||||
rc_createDistanceJoint( CREATEDISTANCEJOINT_SPRITEA, CREATEDISTANCEJOINT_SPRITEB, CREATEDISTANCEJOINT_AX, CREATEDISTANCEJOINT_AY, CREATEDISTANCEJOINT_BX, CREATEDISTANCEJOINT_BY, CREATEDISTANCEJOINT_COLLIDE_CONNECT )
|
rc_createDistanceJoint( CREATEDISTANCEJOINT_SPRITEA, CREATEDISTANCEJOINT_SPRITEB, CREATEDISTANCEJOINT_AX, CREATEDISTANCEJOINT_AY, CREATEDISTANCEJOINT_BX, CREATEDISTANCEJOINT_BY, CREATEDISTANCEJOINT_COLLIDE_CONNECT )
|
||||||
rc_createFrictionJoint( CREATEFRICTIONJOINT_SPRITEA, CREATEFRICTIONJOINT_SPRITEB, CREATEFRICTIONJOINT_X, CREATEFRICTIONJOINT_Y, CREATEFRICTIONJOINT_COLLIDE_CONNECT )
|
rc_createFrictionJoint( CREATEFRICTIONJOINT_SPRITEA, CREATEFRICTIONJOINT_SPRITEB, CREATEFRICTIONJOINT_X, CREATEFRICTIONJOINT_Y, CREATEFRICTIONJOINT_COLLIDE_CONNECT )
|
||||||
rc_createGearJoint( CREATEGEARJOINT_JOINTA, CREATEGEARJOINT_JOINTB, CREATEGEARJOINT_G_RATIO, CREATEGEARJOINT_COLLIDE_CONNECT )
|
rc_createGearJoint( CREATEGEARJOINT_JOINTA, CREATEGEARJOINT_JOINTB, CREATEGEARJOINT_G_RATIO, CREATEGEARJOINT_COLLIDE_CONNECT )
|
||||||
@@ -845,6 +864,8 @@ rc_addSceneSkyDomeEx( ADDSCENESKYDOMEEX_IMG, ADDSCENESKYDOMEEX_HORIRES, ADDSCE
|
|||||||
rc_removeSceneSky( )
|
rc_removeSceneSky( )
|
||||||
rc_setWorld3DMaxSubSteps( SETWORLD3DMAXSUBSTEPS_STEPS )
|
rc_setWorld3DMaxSubSteps( SETWORLD3DMAXSUBSTEPS_STEPS )
|
||||||
rc_setWorld3DTimeStep( SETWORLD3DTIMESTEP_TS )
|
rc_setWorld3DTimeStep( SETWORLD3DTIMESTEP_TS )
|
||||||
|
rc_getWorld3DMaxSubSteps( )
|
||||||
|
rc_getWorld3DTimeStep( )
|
||||||
rc_startParticleEmitter( STARTPARTICLEEMITTER_ACTOR )
|
rc_startParticleEmitter( STARTPARTICLEEMITTER_ACTOR )
|
||||||
rc_stopParticleEmitter( STOPPARTICLEEMITTER_ACTOR )
|
rc_stopParticleEmitter( STOPPARTICLEEMITTER_ACTOR )
|
||||||
rc_setParticleDirection( SETPARTICLEDIRECTION_ACTOR, SETPARTICLEDIRECTION_X, SETPARTICLEDIRECTION_Y, SETPARTICLEDIRECTION_Z )
|
rc_setParticleDirection( SETPARTICLEDIRECTION_ACTOR, SETPARTICLEDIRECTION_X, SETPARTICLEDIRECTION_Y, SETPARTICLEDIRECTION_Z )
|
||||||
|
|||||||
@@ -912,7 +912,7 @@ int main(int argc, char * argv[])
|
|||||||
{
|
{
|
||||||
string line = "";
|
string line = "";
|
||||||
|
|
||||||
rcbasic_dev("embedded_functions.bas"); rcbasic_output_debug_info(); return 0;
|
//rcbasic_dev("embedded_functions.bas"); rcbasic_output_debug_info(); return 0;
|
||||||
|
|
||||||
string rc_filename = "";// = "tst.bas";
|
string rc_filename = "";// = "tst.bas";
|
||||||
|
|
||||||
|
|||||||
@@ -1516,6 +1516,48 @@ void init_embedded_functions()
|
|||||||
add_embedded_arg("flag", ID_TYPE_NUM);
|
add_embedded_arg("flag", ID_TYPE_NUM);
|
||||||
embed_function("spriteIsFixedRotation", ID_TYPE_FN_NUM);
|
embed_function("spriteIsFixedRotation", ID_TYPE_FN_NUM);
|
||||||
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
embed_function("SetSpriteDensity", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
add_embedded_arg("density", ID_TYPE_NUM);
|
||||||
|
embed_function("GetSpriteDensity", ID_TYPE_FN_NUM);
|
||||||
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
embed_function("SetSpriteFriction", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
add_embedded_arg("friction", ID_TYPE_NUM);
|
||||||
|
embed_function("GetSpriteFriction", ID_TYPE_FN_NUM);
|
||||||
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
embed_function("SetSpriteRestitution", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
add_embedded_arg("restitution", ID_TYPE_NUM);
|
||||||
|
embed_function("GetSpriteRestitution", ID_TYPE_FN_NUM);
|
||||||
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
embed_function("SetSpriteRestitutionThreshold", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
add_embedded_arg("threshold", ID_TYPE_NUM);
|
||||||
|
embed_function("GetSpriteAABB", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
add_embedded_arg("x1", ID_TYPE_BYREF_NUM);
|
||||||
|
add_embedded_arg("y1", ID_TYPE_BYREF_NUM);
|
||||||
|
add_embedded_arg("x2", ID_TYPE_BYREF_NUM);
|
||||||
|
add_embedded_arg("y2", ID_TYPE_BYREF_NUM);
|
||||||
|
embed_function("SetGravity2D", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("x", ID_TYPE_NUM);
|
||||||
|
add_embedded_arg("y", ID_TYPE_NUM);
|
||||||
|
embed_function("GetGravity2D", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("x", ID_TYPE_BYREF_NUM);
|
||||||
|
add_embedded_arg("y", ID_TYPE_BYREF_NUM);
|
||||||
|
embed_function("SetWorld2DTimeStep", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("ts", ID_TYPE_NUM);
|
||||||
|
embed_function("SetWorld2DVelocityIterations", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("v", ID_TYPE_NUM);
|
||||||
|
embed_function("SetWorld2DPositionIterations", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("p", ID_TYPE_NUM);
|
||||||
|
embed_function("GetWorld2DTimeStep", ID_TYPE_FN_NUM);
|
||||||
|
embed_function("GetWorld2DVelocityIterations", ID_TYPE_FN_NUM);
|
||||||
|
embed_function("GetWorld2DPositionIterations", ID_TYPE_FN_NUM);
|
||||||
|
embed_function("SetWorld2DAutoClearForces", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("flag", ID_TYPE_NUM);
|
||||||
|
embed_function("GetWorld2DAutoClearForces", ID_TYPE_FN_NUM);
|
||||||
embed_function("createDistanceJoint", ID_TYPE_FN_NUM);
|
embed_function("createDistanceJoint", ID_TYPE_FN_NUM);
|
||||||
add_embedded_arg("spriteA", ID_TYPE_NUM);
|
add_embedded_arg("spriteA", ID_TYPE_NUM);
|
||||||
add_embedded_arg("spriteB", ID_TYPE_NUM);
|
add_embedded_arg("spriteB", ID_TYPE_NUM);
|
||||||
@@ -2647,6 +2689,8 @@ void init_embedded_functions()
|
|||||||
add_embedded_arg("steps", ID_TYPE_NUM);
|
add_embedded_arg("steps", ID_TYPE_NUM);
|
||||||
embed_function("SetWorld3DTimeStep", ID_TYPE_SUB);
|
embed_function("SetWorld3DTimeStep", ID_TYPE_SUB);
|
||||||
add_embedded_arg("ts", ID_TYPE_NUM);
|
add_embedded_arg("ts", ID_TYPE_NUM);
|
||||||
|
embed_function("GetWorld3DMaxSubSteps", ID_TYPE_FN_NUM);
|
||||||
|
embed_function("GetWorld3DTimeStep", ID_TYPE_FN_NUM);
|
||||||
embed_function("startParticleEmitter", ID_TYPE_SUB);
|
embed_function("startParticleEmitter", ID_TYPE_SUB);
|
||||||
add_embedded_arg("actor", ID_TYPE_NUM);
|
add_embedded_arg("actor", ID_TYPE_NUM);
|
||||||
embed_function("stopParticleEmitter", ID_TYPE_SUB);
|
embed_function("stopParticleEmitter", ID_TYPE_SUB);
|
||||||
|
|||||||
Binary file not shown.
@@ -1510,6 +1510,48 @@ add_embedded_arg("spr_id", ID_TYPE_NUM);
|
|||||||
add_embedded_arg("flag", ID_TYPE_NUM);
|
add_embedded_arg("flag", ID_TYPE_NUM);
|
||||||
embed_function("spriteIsFixedRotation", ID_TYPE_FN_NUM);
|
embed_function("spriteIsFixedRotation", ID_TYPE_FN_NUM);
|
||||||
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
embed_function("SetSpriteDensity", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
add_embedded_arg("density", ID_TYPE_NUM);
|
||||||
|
embed_function("GetSpriteDensity", ID_TYPE_FN_NUM);
|
||||||
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
embed_function("SetSpriteFriction", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
add_embedded_arg("friction", ID_TYPE_NUM);
|
||||||
|
embed_function("GetSpriteFriction", ID_TYPE_FN_NUM);
|
||||||
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
embed_function("SetSpriteRestitution", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
add_embedded_arg("restitution", ID_TYPE_NUM);
|
||||||
|
embed_function("GetSpriteRestitution", ID_TYPE_FN_NUM);
|
||||||
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
embed_function("SetSpriteRestitutionThreshold", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
add_embedded_arg("threshold", ID_TYPE_NUM);
|
||||||
|
embed_function("GetSpriteAABB", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("spr_id", ID_TYPE_NUM);
|
||||||
|
add_embedded_arg("x1", ID_TYPE_BYREF_NUM);
|
||||||
|
add_embedded_arg("y1", ID_TYPE_BYREF_NUM);
|
||||||
|
add_embedded_arg("x2", ID_TYPE_BYREF_NUM);
|
||||||
|
add_embedded_arg("y2", ID_TYPE_BYREF_NUM);
|
||||||
|
embed_function("SetGravity2D", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("x", ID_TYPE_NUM);
|
||||||
|
add_embedded_arg("y", ID_TYPE_NUM);
|
||||||
|
embed_function("GetGravity2D", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("x", ID_TYPE_BYREF_NUM);
|
||||||
|
add_embedded_arg("y", ID_TYPE_BYREF_NUM);
|
||||||
|
embed_function("SetWorld2DTimeStep", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("ts", ID_TYPE_NUM);
|
||||||
|
embed_function("SetWorld2DVelocityIterations", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("v", ID_TYPE_NUM);
|
||||||
|
embed_function("SetWorld2DPositionIterations", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("p", ID_TYPE_NUM);
|
||||||
|
embed_function("GetWorld2DTimeStep", ID_TYPE_FN_NUM);
|
||||||
|
embed_function("GetWorld2DVelocityIterations", ID_TYPE_FN_NUM);
|
||||||
|
embed_function("GetWorld2DPositionIterations", ID_TYPE_FN_NUM);
|
||||||
|
embed_function("SetWorld2DAutoClearForces", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("flag", ID_TYPE_NUM);
|
||||||
|
embed_function("GetWorld2DAutoClearForces", ID_TYPE_FN_NUM);
|
||||||
embed_function("createDistanceJoint", ID_TYPE_FN_NUM);
|
embed_function("createDistanceJoint", ID_TYPE_FN_NUM);
|
||||||
add_embedded_arg("spriteA", ID_TYPE_NUM);
|
add_embedded_arg("spriteA", ID_TYPE_NUM);
|
||||||
add_embedded_arg("spriteB", ID_TYPE_NUM);
|
add_embedded_arg("spriteB", ID_TYPE_NUM);
|
||||||
@@ -2641,6 +2683,8 @@ embed_function("SetWorld3DMaxSubSteps", ID_TYPE_SUB);
|
|||||||
add_embedded_arg("steps", ID_TYPE_NUM);
|
add_embedded_arg("steps", ID_TYPE_NUM);
|
||||||
embed_function("SetWorld3DTimeStep", ID_TYPE_SUB);
|
embed_function("SetWorld3DTimeStep", ID_TYPE_SUB);
|
||||||
add_embedded_arg("ts", ID_TYPE_NUM);
|
add_embedded_arg("ts", ID_TYPE_NUM);
|
||||||
|
embed_function("GetWorld3DMaxSubSteps", ID_TYPE_FN_NUM);
|
||||||
|
embed_function("GetWorld3DTimeStep", ID_TYPE_FN_NUM);
|
||||||
embed_function("startParticleEmitter", ID_TYPE_SUB);
|
embed_function("startParticleEmitter", ID_TYPE_SUB);
|
||||||
add_embedded_arg("actor", ID_TYPE_NUM);
|
add_embedded_arg("actor", ID_TYPE_NUM);
|
||||||
embed_function("stopParticleEmitter", ID_TYPE_SUB);
|
embed_function("stopParticleEmitter", ID_TYPE_SUB);
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1592,6 +1592,60 @@ case FN_setSpriteFixedRotation: //Sub Procedure
|
|||||||
case FN_spriteIsFixedRotation: //Number Function
|
case FN_spriteIsFixedRotation: //Number Function
|
||||||
rc_push_num(rc_spriteIsFixedRotation( SPRITEISFIXEDROTATION_SPR_ID ));
|
rc_push_num(rc_spriteIsFixedRotation( SPRITEISFIXEDROTATION_SPR_ID ));
|
||||||
break;
|
break;
|
||||||
|
case FN_SetSpriteDensity: //Sub Procedure
|
||||||
|
rc_setSpriteDensity( SETSPRITEDENSITY_SPR_ID, SETSPRITEDENSITY_DENSITY );
|
||||||
|
break;
|
||||||
|
case FN_GetSpriteDensity: //Number Function
|
||||||
|
rc_push_num(rc_getSpriteDensity( GETSPRITEDENSITY_SPR_ID ));
|
||||||
|
break;
|
||||||
|
case FN_SetSpriteFriction: //Sub Procedure
|
||||||
|
rc_setSpriteFriction( SETSPRITEFRICTION_SPR_ID, SETSPRITEFRICTION_FRICTION );
|
||||||
|
break;
|
||||||
|
case FN_GetSpriteFriction: //Number Function
|
||||||
|
rc_push_num(rc_getSpriteFriction( GETSPRITEFRICTION_SPR_ID ));
|
||||||
|
break;
|
||||||
|
case FN_SetSpriteRestitution: //Sub Procedure
|
||||||
|
rc_setSpriteRestitution( SETSPRITERESTITUTION_SPR_ID, SETSPRITERESTITUTION_RESTITUTION );
|
||||||
|
break;
|
||||||
|
case FN_GetSpriteRestitution: //Number Function
|
||||||
|
rc_push_num(rc_getSpriteRestitution( GETSPRITERESTITUTION_SPR_ID ));
|
||||||
|
break;
|
||||||
|
case FN_SetSpriteRestitutionThreshold: //Sub Procedure
|
||||||
|
rc_setSpriteRestitutionThreshold( SETSPRITERESTITUTIONTHRESHOLD_SPR_ID, SETSPRITERESTITUTIONTHRESHOLD_THRESHOLD );
|
||||||
|
break;
|
||||||
|
case FN_GetSpriteAABB: //Sub Procedure
|
||||||
|
rc_getSpriteAABB( GETSPRITEAABB_SPR_ID, &GETSPRITEAABB_X1, &GETSPRITEAABB_Y1, &GETSPRITEAABB_X2, &GETSPRITEAABB_Y2 );
|
||||||
|
break;
|
||||||
|
case FN_SetGravity2D: //Sub Procedure
|
||||||
|
rc_setGravity2D( SETGRAVITY2D_X, SETGRAVITY2D_Y );
|
||||||
|
break;
|
||||||
|
case FN_GetGravity2D: //Sub Procedure
|
||||||
|
rc_getGravity2D( &GETGRAVITY2D_X, &GETGRAVITY2D_Y );
|
||||||
|
break;
|
||||||
|
case FN_SetWorld2DTimeStep: //Sub Procedure
|
||||||
|
rc_setWorld2DTimeStep( SETWORLD2DTIMESTEP_TS );
|
||||||
|
break;
|
||||||
|
case FN_SetWorld2DVelocityIterations: //Sub Procedure
|
||||||
|
rc_setWorld2DVelocityIterations( SETWORLD2DVELOCITYITERATIONS_V );
|
||||||
|
break;
|
||||||
|
case FN_SetWorld2DPositionIterations: //Sub Procedure
|
||||||
|
rc_setWorld2DPositionIterations( SETWORLD2DPOSITIONITERATIONS_P );
|
||||||
|
break;
|
||||||
|
case FN_GetWorld2DTimeStep: //Number Function
|
||||||
|
rc_push_num(rc_getWorld2DTimeStep( ));
|
||||||
|
break;
|
||||||
|
case FN_GetWorld2DVelocityIterations: //Number Function
|
||||||
|
rc_push_num(rc_getWorld2DVelocityIterations( ));
|
||||||
|
break;
|
||||||
|
case FN_GetWorld2DPositionIterations: //Number Function
|
||||||
|
rc_push_num(rc_getWorld2DPositionIterations( ));
|
||||||
|
break;
|
||||||
|
case FN_SetWorld2DAutoClearForces: //Sub Procedure
|
||||||
|
rc_setWorld2DAutoClearForces( SETWORLD2DAUTOCLEARFORCES_FLAG );
|
||||||
|
break;
|
||||||
|
case FN_GetWorld2DAutoClearForces: //Number Function
|
||||||
|
rc_push_num(rc_getWorld2DAutoClearForces( ));
|
||||||
|
break;
|
||||||
case FN_createDistanceJoint: //Number Function
|
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 ));
|
rc_push_num(rc_createDistanceJoint( CREATEDISTANCEJOINT_SPRITEA, CREATEDISTANCEJOINT_SPRITEB, CREATEDISTANCEJOINT_AX, CREATEDISTANCEJOINT_AY, CREATEDISTANCEJOINT_BX, CREATEDISTANCEJOINT_BY, CREATEDISTANCEJOINT_COLLIDE_CONNECT ));
|
||||||
break;
|
break;
|
||||||
@@ -2567,6 +2621,12 @@ case FN_SetWorld3DMaxSubSteps: //Sub Procedure
|
|||||||
case FN_SetWorld3DTimeStep: //Sub Procedure
|
case FN_SetWorld3DTimeStep: //Sub Procedure
|
||||||
rc_setWorld3DTimeStep( SETWORLD3DTIMESTEP_TS );
|
rc_setWorld3DTimeStep( SETWORLD3DTIMESTEP_TS );
|
||||||
break;
|
break;
|
||||||
|
case FN_GetWorld3DMaxSubSteps: //Number Function
|
||||||
|
rc_push_num(rc_getWorld3DMaxSubSteps( ));
|
||||||
|
break;
|
||||||
|
case FN_GetWorld3DTimeStep: //Number Function
|
||||||
|
rc_push_num(rc_getWorld3DTimeStep( ));
|
||||||
|
break;
|
||||||
case FN_startParticleEmitter: //Sub Procedure
|
case FN_startParticleEmitter: //Sub Procedure
|
||||||
rc_startParticleEmitter( STARTPARTICLEEMITTER_ACTOR );
|
rc_startParticleEmitter( STARTPARTICLEEMITTER_ACTOR );
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -4447,7 +4447,9 @@ int main(int argc, char * argv[])
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
//ogles2 test
|
//ogles2 test
|
||||||
|
#ifdef RC_TESTING
|
||||||
rc_intern_dirChange("/home/n00b/projects/rcbasic_alpha3/test_project");
|
rc_intern_dirChange("/home/n00b/projects/rcbasic_alpha3/test_project");
|
||||||
|
#endif
|
||||||
rc_filename = "main.cbc";
|
rc_filename = "main.cbc";
|
||||||
//---------------
|
//---------------
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1592,6 +1592,60 @@ case FN_setSpriteFixedRotation: //Sub Procedure
|
|||||||
case FN_spriteIsFixedRotation: //Number Function
|
case FN_spriteIsFixedRotation: //Number Function
|
||||||
rc_push_num(rc_spriteIsFixedRotation( SPRITEISFIXEDROTATION_SPR_ID ));
|
rc_push_num(rc_spriteIsFixedRotation( SPRITEISFIXEDROTATION_SPR_ID ));
|
||||||
break;
|
break;
|
||||||
|
case FN_SetSpriteDensity: //Sub Procedure
|
||||||
|
rc_setSpriteDensity( SETSPRITEDENSITY_SPR_ID, SETSPRITEDENSITY_DENSITY );
|
||||||
|
break;
|
||||||
|
case FN_GetSpriteDensity: //Number Function
|
||||||
|
rc_push_num(rc_getSpriteDensity( GETSPRITEDENSITY_SPR_ID ));
|
||||||
|
break;
|
||||||
|
case FN_SetSpriteFriction: //Sub Procedure
|
||||||
|
rc_setSpriteFriction( SETSPRITEFRICTION_SPR_ID, SETSPRITEFRICTION_FRICTION );
|
||||||
|
break;
|
||||||
|
case FN_GetSpriteFriction: //Number Function
|
||||||
|
rc_push_num(rc_getSpriteFriction( GETSPRITEFRICTION_SPR_ID ));
|
||||||
|
break;
|
||||||
|
case FN_SetSpriteRestitution: //Sub Procedure
|
||||||
|
rc_setSpriteRestitution( SETSPRITERESTITUTION_SPR_ID, SETSPRITERESTITUTION_RESTITUTION );
|
||||||
|
break;
|
||||||
|
case FN_GetSpriteRestitution: //Number Function
|
||||||
|
rc_push_num(rc_getSpriteRestitution( GETSPRITERESTITUTION_SPR_ID ));
|
||||||
|
break;
|
||||||
|
case FN_SetSpriteRestitutionThreshold: //Sub Procedure
|
||||||
|
rc_setSpriteRestitutionThreshold( SETSPRITERESTITUTIONTHRESHOLD_SPR_ID, SETSPRITERESTITUTIONTHRESHOLD_THRESHOLD );
|
||||||
|
break;
|
||||||
|
case FN_GetSpriteAABB: //Sub Procedure
|
||||||
|
rc_getSpriteAABB( GETSPRITEAABB_SPR_ID, &GETSPRITEAABB_X1, &GETSPRITEAABB_Y1, &GETSPRITEAABB_X2, &GETSPRITEAABB_Y2 );
|
||||||
|
break;
|
||||||
|
case FN_SetGravity2D: //Sub Procedure
|
||||||
|
rc_setGravity2D( SETGRAVITY2D_X, SETGRAVITY2D_Y );
|
||||||
|
break;
|
||||||
|
case FN_GetGravity2D: //Sub Procedure
|
||||||
|
rc_getGravity2D( &GETGRAVITY2D_X, &GETGRAVITY2D_Y );
|
||||||
|
break;
|
||||||
|
case FN_SetWorld2DTimeStep: //Sub Procedure
|
||||||
|
rc_setWorld2DTimeStep( SETWORLD2DTIMESTEP_TS );
|
||||||
|
break;
|
||||||
|
case FN_SetWorld2DVelocityIterations: //Sub Procedure
|
||||||
|
rc_setWorld2DVelocityIterations( SETWORLD2DVELOCITYITERATIONS_V );
|
||||||
|
break;
|
||||||
|
case FN_SetWorld2DPositionIterations: //Sub Procedure
|
||||||
|
rc_setWorld2DPositionIterations( SETWORLD2DPOSITIONITERATIONS_P );
|
||||||
|
break;
|
||||||
|
case FN_GetWorld2DTimeStep: //Number Function
|
||||||
|
rc_push_num(rc_getWorld2DTimeStep( ));
|
||||||
|
break;
|
||||||
|
case FN_GetWorld2DVelocityIterations: //Number Function
|
||||||
|
rc_push_num(rc_getWorld2DVelocityIterations( ));
|
||||||
|
break;
|
||||||
|
case FN_GetWorld2DPositionIterations: //Number Function
|
||||||
|
rc_push_num(rc_getWorld2DPositionIterations( ));
|
||||||
|
break;
|
||||||
|
case FN_SetWorld2DAutoClearForces: //Sub Procedure
|
||||||
|
rc_setWorld2DAutoClearForces( SETWORLD2DAUTOCLEARFORCES_FLAG );
|
||||||
|
break;
|
||||||
|
case FN_GetWorld2DAutoClearForces: //Number Function
|
||||||
|
rc_push_num(rc_getWorld2DAutoClearForces( ));
|
||||||
|
break;
|
||||||
case FN_createDistanceJoint: //Number Function
|
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 ));
|
rc_push_num(rc_createDistanceJoint( CREATEDISTANCEJOINT_SPRITEA, CREATEDISTANCEJOINT_SPRITEB, CREATEDISTANCEJOINT_AX, CREATEDISTANCEJOINT_AY, CREATEDISTANCEJOINT_BX, CREATEDISTANCEJOINT_BY, CREATEDISTANCEJOINT_COLLIDE_CONNECT ));
|
||||||
break;
|
break;
|
||||||
@@ -2567,6 +2621,12 @@ case FN_SetWorld3DMaxSubSteps: //Sub Procedure
|
|||||||
case FN_SetWorld3DTimeStep: //Sub Procedure
|
case FN_SetWorld3DTimeStep: //Sub Procedure
|
||||||
rc_setWorld3DTimeStep( SETWORLD3DTIMESTEP_TS );
|
rc_setWorld3DTimeStep( SETWORLD3DTIMESTEP_TS );
|
||||||
break;
|
break;
|
||||||
|
case FN_GetWorld3DMaxSubSteps: //Number Function
|
||||||
|
rc_push_num(rc_getWorld3DMaxSubSteps( ));
|
||||||
|
break;
|
||||||
|
case FN_GetWorld3DTimeStep: //Number Function
|
||||||
|
rc_push_num(rc_getWorld3DTimeStep( ));
|
||||||
|
break;
|
||||||
case FN_startParticleEmitter: //Sub Procedure
|
case FN_startParticleEmitter: //Sub Procedure
|
||||||
rc_startParticleEmitter( STARTPARTICLEEMITTER_ACTOR );
|
rc_startParticleEmitter( STARTPARTICLEEMITTER_ACTOR );
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -767,38 +767,23 @@ bool rc_restoreWindow()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rc_setWindowIcon(int slot)
|
void rc_setWindowIcon(int img_id)
|
||||||
{
|
{
|
||||||
SDL_Rect img_rect;
|
if(img_id < 0 || img_id >= rc_image.size())
|
||||||
img_rect.x = 0;
|
return;
|
||||||
img_rect.y = 0;
|
|
||||||
//img_rect.w = rc_image_width[slot];
|
|
||||||
//img_rect.h = rc_image_height[slot];
|
|
||||||
/*
|
|
||||||
if(rc_himage[slot][win_num] != NULL)
|
|
||||||
{
|
|
||||||
//SDL_RendererFlip rf = (SDL_RendererFlip)(SDL_FLIP_VERTICAL);
|
|
||||||
|
|
||||||
SDL_Surface * tmp_surf = SDL_CreateRGBSurface(0, rc_image_width[slot], rc_image_height[slot], 32, 0, 0, 0, 0);
|
if(!rc_image[img_id].image)
|
||||||
SDL_Texture * tmp_tex = SDL_CreateTexture(rc_win_renderer[rc_active_window], rc_pformat->format, SDL_TEXTUREACCESS_TARGET, rc_image_width[slot], rc_image_height[slot]);
|
return;
|
||||||
SDL_SetRenderTarget(rc_win_renderer[rc_active_window],NULL);
|
|
||||||
SDL_RenderCopy(rc_win_renderer[rc_active_window],rc_himage[slot][rc_active_window],NULL,&img_rect);
|
|
||||||
//SDL_RenderCopyEx(rc_win_renderer[rc_active_window],rc_himage[slot][rc_active_window],NULL,NULL,0,NULL,rf);
|
|
||||||
|
|
||||||
SDL_RenderReadPixels(rc_win_renderer[rc_active_window], &img_rect, rc_pformat->format,tmp_surf->pixels,tmp_surf->pitch);
|
SDL_Surface* img_surface = convertTextureToSurface(rc_image[img_id].image);
|
||||||
|
|
||||||
SDL_SetColorKey(tmp_surf,SDL_TRUE,rc_image_colorKey[slot]);
|
if(!img_surface)
|
||||||
|
return;
|
||||||
|
|
||||||
SDL_SetWindowIcon(rc_win[rc_active_window], tmp_surf);
|
SDL_SetColorKey(img_surface,SDL_TRUE,0);
|
||||||
|
SDL_SetWindowIcon(rc_window, img_surface);
|
||||||
|
|
||||||
|
SDL_FreeSurface(img_surface);
|
||||||
if(rc_active_screen >= 0)
|
|
||||||
SDL_SetRenderTarget(rc_win_renderer[rc_active_window], rc_hscreen[rc_active_window][rc_active_screen]);
|
|
||||||
|
|
||||||
SDL_DestroyTexture(tmp_tex);
|
|
||||||
SDL_FreeSurface(tmp_surf);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -897,5 +897,34 @@ void draw2DImage2(irr::video::IVideoDriver *driver, irr::video::ITexture* textur
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SDL_Surface* convertTextureToSurface(irr::video::ITexture* itexture)
|
||||||
|
{
|
||||||
|
Uint32 t_width, t_height;
|
||||||
|
t_width = itexture->getSize().Width;
|
||||||
|
t_height = itexture->getSize().Height;
|
||||||
|
|
||||||
|
SDL_Surface* surface = SDL_CreateRGBSurface(0, t_width, t_height, 32, 0, 0, 0, 0);
|
||||||
|
|
||||||
|
if(surface)
|
||||||
|
{
|
||||||
|
Uint32* surface_pixels = (Uint32*)surface->pixels;
|
||||||
|
|
||||||
|
Uint32* texture_pixels = (Uint32*)rc_canvas[rc_active_canvas].texture->lock();
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
for(int y = 0; y < t_height; y++)
|
||||||
|
{
|
||||||
|
for(int x = 0; x < t_width; x++)
|
||||||
|
{
|
||||||
|
surface_pixels[i] = texture_pixels[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rc_canvas[rc_active_canvas].texture->unlock();
|
||||||
|
}
|
||||||
|
|
||||||
|
return surface;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif // RC_GFX_CORE_H_INCLUDED
|
#endif // RC_GFX_CORE_H_INCLUDED
|
||||||
|
|||||||
@@ -1,12 +1,27 @@
|
|||||||
#ifndef RC_OS_DEFINES_H_INCLUDED
|
#ifndef RC_OS_DEFINES_H_INCLUDED
|
||||||
#define RC_OS_DEFINES_H_INCLUDED
|
#define RC_OS_DEFINES_H_INCLUDED
|
||||||
|
|
||||||
#define RC_LINUX
|
//USED FOR TESTING ONLY
|
||||||
//#define RC_WEB
|
//#define RC_TESTING
|
||||||
//#define RC_WINDOWS
|
|
||||||
//#define RC_ANDROID
|
//I am checking Android first since I think it also defines __linux__
|
||||||
//#define RC_MAC
|
|
||||||
//#define RC_IOS
|
#if defined(__ANDROID__)
|
||||||
|
#define RC_ANDROID
|
||||||
|
#elif defined(__linux__)
|
||||||
|
#define RC_LINUX
|
||||||
|
#elif __EMSCRIPTEN__
|
||||||
|
#define RC_WEB
|
||||||
|
#elif defined(_WIN32) || defined(_WIN64)
|
||||||
|
#define RC_WINDOWS
|
||||||
|
#elif defined(__APPLE__) && defined(__MACH__) // Apple OSX and iOS (Darwin)
|
||||||
|
#include <TargetConditionals.h>
|
||||||
|
#if defined(TARGET_IPHONE_SIMULATOR) || defined(TARGET_OS_IPHONE)
|
||||||
|
#define RC_IOS
|
||||||
|
#else
|
||||||
|
#define RC_MAC
|
||||||
|
#endif // TARGET_IPHONE_SIMULATOR
|
||||||
|
#endif // defined
|
||||||
|
|
||||||
#ifdef RC_WEB
|
#ifdef RC_WEB
|
||||||
#define RC_LINUX
|
#define RC_LINUX
|
||||||
@@ -20,10 +35,13 @@
|
|||||||
|
|
||||||
#ifdef RC_IOS
|
#ifdef RC_IOS
|
||||||
#define RC_MOBILE
|
#define RC_MOBILE
|
||||||
|
#define RC_DRIVER_GLES2
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//FOR DEBUG PURPOSES
|
//FOR TESTING PURPOSES
|
||||||
|
#ifdef RC_TESTING
|
||||||
//#define RC_DRIVER_GLES2
|
//#define RC_DRIVER_GLES2
|
||||||
|
#endif // RC_TESTING
|
||||||
|
|
||||||
#define RC_PI 3.14159265359
|
#define RC_PI 3.14159265359
|
||||||
|
|
||||||
|
|||||||
@@ -32,4 +32,14 @@ void rc_setWorld3DTimeStep(double ts)
|
|||||||
rc_physics3D.fixedTimeStep = ts;
|
rc_physics3D.fixedTimeStep = ts;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double rc_getWorld3DMaxSubSteps()
|
||||||
|
{
|
||||||
|
return rc_physics3D.maxSubSteps;
|
||||||
|
}
|
||||||
|
|
||||||
|
double rc_getWorld3DTimeStep()
|
||||||
|
{
|
||||||
|
return rc_physics3D.fixedTimeStep;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // RC_PHYSICS3D_BASE_H_INCLUDED
|
#endif // RC_PHYSICS3D_BASE_H_INCLUDED
|
||||||
|
|||||||
@@ -43,6 +43,8 @@ void rc_setSpriteAngularVelocity(int spr_id, double av)
|
|||||||
if(!rc_sprite[spr_id].active)
|
if(!rc_sprite[spr_id].active)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
av = rc_util_radians(av);
|
||||||
|
|
||||||
rc_sprite[spr_id].physics.body->SetAngularVelocity(av);
|
rc_sprite[spr_id].physics.body->SetAngularVelocity(av);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,7 +56,7 @@ double rc_getSpriteAngularVelocity(int spr_id)
|
|||||||
if(!rc_sprite[spr_id].active)
|
if(!rc_sprite[spr_id].active)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return (double)rc_sprite[spr_id].physics.body->GetAngularVelocity();
|
return (double)rc_util_degrees(rc_sprite[spr_id].physics.body->GetAngularVelocity());
|
||||||
}
|
}
|
||||||
|
|
||||||
void rc_applySpriteForce(int spr_id, double fX, double fY, double pX, double pY)
|
void rc_applySpriteForce(int spr_id, double fX, double fY, double pX, double pY)
|
||||||
@@ -365,3 +367,211 @@ bool rc_spriteIsFixedRotation(int spr_id)
|
|||||||
|
|
||||||
return rc_sprite[spr_id].physics.body->IsFixedRotation();
|
return rc_sprite[spr_id].physics.body->IsFixedRotation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void rc_setSpriteDensity( int spr_id, double density )
|
||||||
|
{
|
||||||
|
if(spr_id < 0 || spr_id >= rc_sprite.size())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(!rc_sprite[spr_id].active)
|
||||||
|
return;
|
||||||
|
|
||||||
|
rc_sprite[spr_id].physics.fixture->SetDensity(density);
|
||||||
|
}
|
||||||
|
|
||||||
|
double rc_getSpriteDensity( 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.fixture->GetDensity();
|
||||||
|
}
|
||||||
|
|
||||||
|
void rc_setSpriteFriction( int spr_id, double friction )
|
||||||
|
{
|
||||||
|
if(spr_id < 0 || spr_id >= rc_sprite.size())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(!rc_sprite[spr_id].active)
|
||||||
|
return;
|
||||||
|
|
||||||
|
rc_sprite[spr_id].physics.fixture->SetFriction(friction);
|
||||||
|
}
|
||||||
|
|
||||||
|
double rc_getSpriteFriction( 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.fixture->GetFriction();
|
||||||
|
}
|
||||||
|
|
||||||
|
void rc_setSpriteRestitution( int spr_id, double restitution )
|
||||||
|
{
|
||||||
|
if(spr_id < 0 || spr_id >= rc_sprite.size())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(!rc_sprite[spr_id].active)
|
||||||
|
return;
|
||||||
|
|
||||||
|
rc_sprite[spr_id].physics.fixture->SetRestitution(restitution);
|
||||||
|
}
|
||||||
|
|
||||||
|
double rc_getSpriteRestitution( 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.fixture->GetRestitution();
|
||||||
|
}
|
||||||
|
|
||||||
|
void rc_setSpriteRestitutionThreshold( int spr_id, double threshold )
|
||||||
|
{
|
||||||
|
if(spr_id < 0 || spr_id >= rc_sprite.size())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(!rc_sprite[spr_id].active)
|
||||||
|
return;
|
||||||
|
|
||||||
|
rc_sprite[spr_id].physics.fixture->SetRestitutionThreshold(threshold);
|
||||||
|
}
|
||||||
|
|
||||||
|
void rc_getSpriteAABB( int spr_id, double* x1, double* y1, double* x2, double* y2 )
|
||||||
|
{
|
||||||
|
if(spr_id < 0 || spr_id >= rc_sprite.size())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(!rc_sprite[spr_id].active)
|
||||||
|
return;
|
||||||
|
|
||||||
|
b2AABB bound_box = rc_sprite[spr_id].physics.fixture->GetAABB(0);
|
||||||
|
*x1 = bound_box.upperBound.x;
|
||||||
|
*y1 = bound_box.upperBound.y;
|
||||||
|
*x2 = bound_box.lowerBound.x;
|
||||||
|
*y2 = bound_box.lowerBound.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rc_setWorld2DTimeStep( double ts )
|
||||||
|
{
|
||||||
|
if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(rc_canvas[rc_active_canvas].type != RC_CANVAS_TYPE_SPRITE)
|
||||||
|
return;
|
||||||
|
|
||||||
|
rc_canvas[rc_active_canvas].physics2D.timeStep = ts;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rc_setWorld2DVelocityIterations( double v )
|
||||||
|
{
|
||||||
|
if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(rc_canvas[rc_active_canvas].type != RC_CANVAS_TYPE_SPRITE)
|
||||||
|
return;
|
||||||
|
|
||||||
|
rc_canvas[rc_active_canvas].physics2D.velocityIterations = (int)v;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rc_setWorld2DPositionIterations( double p )
|
||||||
|
{
|
||||||
|
if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(rc_canvas[rc_active_canvas].type != RC_CANVAS_TYPE_SPRITE)
|
||||||
|
return;
|
||||||
|
|
||||||
|
rc_canvas[rc_active_canvas].physics2D.positionIterations = (int)p;
|
||||||
|
}
|
||||||
|
|
||||||
|
double rc_getWorld2DTimeStep()
|
||||||
|
{
|
||||||
|
if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size())
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if(rc_canvas[rc_active_canvas].type != RC_CANVAS_TYPE_SPRITE)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return rc_canvas[rc_active_canvas].physics2D.timeStep;
|
||||||
|
}
|
||||||
|
|
||||||
|
double rc_getWorld2DVelocityIterations()
|
||||||
|
{
|
||||||
|
if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size())
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if(rc_canvas[rc_active_canvas].type != RC_CANVAS_TYPE_SPRITE)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return rc_canvas[rc_active_canvas].physics2D.velocityIterations;
|
||||||
|
}
|
||||||
|
|
||||||
|
double rc_getWorld2DPositionIterations()
|
||||||
|
{
|
||||||
|
if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size())
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if(rc_canvas[rc_active_canvas].type != RC_CANVAS_TYPE_SPRITE)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return rc_canvas[rc_active_canvas].physics2D.positionIterations;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rc_setWorld2DAutoClearForces( bool flag )
|
||||||
|
{
|
||||||
|
if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(rc_canvas[rc_active_canvas].type != RC_CANVAS_TYPE_SPRITE)
|
||||||
|
return;
|
||||||
|
|
||||||
|
rc_canvas[rc_active_canvas].physics2D.world->SetAutoClearForces(flag);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool rc_getWorld2DAutoClearForces()
|
||||||
|
{
|
||||||
|
if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if(rc_canvas[rc_active_canvas].type != RC_CANVAS_TYPE_SPRITE)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return rc_canvas[rc_active_canvas].physics2D.world->GetAutoClearForces();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void rc_setGravity2D(double x, double y)
|
||||||
|
{
|
||||||
|
if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(rc_canvas[rc_active_canvas].type != RC_CANVAS_TYPE_SPRITE)
|
||||||
|
return;
|
||||||
|
|
||||||
|
b2Vec2 gravity(x, y);
|
||||||
|
rc_canvas[rc_active_canvas].physics2D.world->SetGravity(gravity);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void rc_getGravity2D(double* x, double* y)
|
||||||
|
{
|
||||||
|
if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(rc_canvas[rc_active_canvas].type != RC_CANVAS_TYPE_SPRITE)
|
||||||
|
return;
|
||||||
|
|
||||||
|
*x = rc_canvas[rc_active_canvas].physics2D.world->GetGravity().x;
|
||||||
|
*y = rc_canvas[rc_active_canvas].physics2D.world->GetGravity().y;
|
||||||
|
}
|
||||||
|
|||||||
@@ -796,34 +796,6 @@ bool rc_spriteIsVisible(int spr_id)
|
|||||||
return rc_sprite[spr_id].visible;
|
return rc_sprite[spr_id].visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rc_setGravity2d(double x, double y)
|
|
||||||
{
|
|
||||||
if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size())
|
|
||||||
return;
|
|
||||||
|
|
||||||
if(rc_canvas[rc_active_canvas].type != RC_CANVAS_TYPE_SPRITE)
|
|
||||||
return;
|
|
||||||
|
|
||||||
b2Vec2 gravity(x, y);
|
|
||||||
rc_canvas[rc_active_canvas].physics2D.world->SetGravity(gravity);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void rc_getGravity2d(double* x, double* y)
|
|
||||||
{
|
|
||||||
if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size())
|
|
||||||
return;
|
|
||||||
|
|
||||||
if(rc_canvas[rc_active_canvas].type != RC_CANVAS_TYPE_SPRITE)
|
|
||||||
return;
|
|
||||||
|
|
||||||
*x = 0;
|
|
||||||
*y = 0;
|
|
||||||
|
|
||||||
*x = rc_canvas[rc_active_canvas].physics2D.world->GetGravity().x;
|
|
||||||
*y = rc_canvas[rc_active_canvas].physics2D.world->GetGravity().y;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------PHYSICS----------------------------------------------------------------------------------
|
//-----------------------------------PHYSICS----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# depslib dependency file v1.0
|
# depslib dependency file v1.0
|
||||||
1731339939 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/main.cpp
|
1731681709 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/main.cpp
|
||||||
"rc_os_defines.h"
|
"rc_os_defines.h"
|
||||||
<emscripten.h>
|
<emscripten.h>
|
||||||
<sys/param.h>
|
<sys/param.h>
|
||||||
@@ -32,9 +32,10 @@
|
|||||||
<irrtheora.h>
|
<irrtheora.h>
|
||||||
"rc_func130_cases.h"
|
"rc_func130_cases.h"
|
||||||
|
|
||||||
1731678428 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_os_defines.h
|
1731717801 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_os_defines.h
|
||||||
|
<TargetConditionals.h>
|
||||||
|
|
||||||
1730315467 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_defines.h
|
1731684932 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_defines.h
|
||||||
|
|
||||||
1730291453 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_stdlib.h
|
1730291453 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_stdlib.h
|
||||||
"rc_os_defines.h"
|
"rc_os_defines.h"
|
||||||
@@ -1246,7 +1247,7 @@
|
|||||||
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/RealisticWater.h
|
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/RealisticWater.h
|
||||||
<irrlicht.h>
|
<irrlicht.h>
|
||||||
|
|
||||||
1731541468 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx.h
|
1731712885 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx.h
|
||||||
"SDL.h"
|
"SDL.h"
|
||||||
<SDL2/SDL.h>
|
<SDL2/SDL.h>
|
||||||
<irrlicht.h>
|
<irrlicht.h>
|
||||||
@@ -1270,7 +1271,7 @@
|
|||||||
"rc_joints.h"
|
"rc_joints.h"
|
||||||
<irrtheora.h>
|
<irrtheora.h>
|
||||||
|
|
||||||
1731249956 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx_core.h
|
1731709491 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx_core.h
|
||||||
"SDL.h"
|
"SDL.h"
|
||||||
"btBulletDynamicsCommon.h"
|
"btBulletDynamicsCommon.h"
|
||||||
"BulletSoftBody/btSoftRigidDynamicsWorld.h"
|
"BulletSoftBody/btSoftRigidDynamicsWorld.h"
|
||||||
@@ -2271,7 +2272,7 @@
|
|||||||
"rc_gfx_core.h"
|
"rc_gfx_core.h"
|
||||||
<irrtheora.h>
|
<irrtheora.h>
|
||||||
|
|
||||||
1730315467 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_func130_cases.h
|
1731711022 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_func130_cases.h
|
||||||
|
|
||||||
1724469097 source:/home/n00b/Projects/irrBullet/src/irrBullet.cpp
|
1724469097 source:/home/n00b/Projects/irrBullet/src/irrBullet.cpp
|
||||||
"irrBullet.h"
|
"irrBullet.h"
|
||||||
@@ -2486,7 +2487,7 @@
|
|||||||
<irrlicht.h>
|
<irrlicht.h>
|
||||||
<cmath>
|
<cmath>
|
||||||
|
|
||||||
1731679477 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_spritelib.h
|
1731693546 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_spritelib.h
|
||||||
"SDL.h"
|
"SDL.h"
|
||||||
<SDL2/SDL.h>
|
<SDL2/SDL.h>
|
||||||
"rc_sprite2D.h"
|
"rc_sprite2D.h"
|
||||||
@@ -2504,7 +2505,7 @@
|
|||||||
<irrlicht.h>
|
<irrlicht.h>
|
||||||
<vector>
|
<vector>
|
||||||
|
|
||||||
1730168962 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_sprite_physics.h
|
1731693615 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_sprite_physics.h
|
||||||
"rc_sprite2D.h"
|
"rc_sprite2D.h"
|
||||||
|
|
||||||
1730291453 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_joints.h
|
1730291453 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_joints.h
|
||||||
@@ -2513,12 +2514,12 @@
|
|||||||
"rc_sprite2D.h"
|
"rc_sprite2D.h"
|
||||||
"rc_gfx_core.h"
|
"rc_gfx_core.h"
|
||||||
|
|
||||||
1730291453 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_physics3D_base.h
|
1731695180 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_physics3D_base.h
|
||||||
"rc_gfx_core.h"
|
"rc_gfx_core.h"
|
||||||
|
|
||||||
1730291453 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_base_actor.h
|
1730291453 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_base_actor.h
|
||||||
|
|
||||||
1730291453 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_actor_material.h
|
1731710840 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_actor_material.h
|
||||||
|
|
||||||
1730291453 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_actor_animation.h
|
1730291453 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_actor_animation.h
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user