Finished initial implementation of Vehicles

This commit is contained in:
n00b87
2026-02-20 14:59:57 -06:00
parent b0f09c3aae
commit d53f5c43f6
13 changed files with 887 additions and 831 deletions

View File

@@ -719,6 +719,9 @@ rc_createLightActor( )
rc_createBillboardActor( )
rc_createTerrainActor( CREATETERRAINACTOR_HMAP_FILE$ )
rc_createParticleActor( CREATEPARTICLEACTOR_PARTICLE_TYPE )
rc_createProjectorActor( )
rc_createCompositeActor( )
rc_createVehicleActor( CREATEVEHICLEACTOR_CHASSIS_ACTOR )
rc_deleteActor( DELETEACTOR_ACTOR )
rc_getActorTransform( GETACTORTRANSFORM_ACTOR, GETACTORTRANSFORM_MATRIX )
rc_setActorPosition( SETACTORPOSITION_ACTOR, SETACTORPOSITION_X, SETACTORPOSITION_Y, SETACTORPOSITION_Z )
@@ -738,8 +741,7 @@ rc_getActorAutoCulling( GETACTORAUTOCULLING_ACTOR )
rc_addActorShadow( ADDACTORSHADOW_ACTOR )
rc_removeActorShadow( REMOVEACTORSHADOW_ACTOR )
rc_actorExists( ACTOREXISTS_ACTOR )
rc_createProjectorActor( )
rc_createCompositeActor( )
rc_getActorType( GETACTORTYPE_ACTOR )
rc_createActorAnimation( CREATEACTORANIMATION_ACTOR, CREATEACTORANIMATION_START_FRAME, CREATEACTORANIMATION_END_FRAME, CREATEACTORANIMATION_SPEED )
rc_setActorAnimation( SETACTORANIMATION_ACTOR, SETACTORANIMATION_ANIMATION, SETACTORANIMATION_NUM_LOOPS )
rc_setActorAnimationSpeed( SETACTORANIMATIONSPEED_ACTOR, SETACTORANIMATIONSPEED_ANIMATION, SETACTORANIMATIONSPEED_SPEED )
@@ -826,6 +828,7 @@ rc_castRay3D( CASTRAY3D_FROM_X, CASTRAY3D_FROM_Y, CASTRAY3D_FROM_Z, CASTRAY3D
rc_castRay3D_All( CASTRAY3D_ALL_FROM_X, CASTRAY3D_ALL_FROM_Y, CASTRAY3D_ALL_FROM_Z, CASTRAY3D_ALL_TO_X, CASTRAY3D_ALL_TO_Y, CASTRAY3D_ALL_TO_Z )
rc_getRayHit3D( GETRAYHIT3D_INDEX, &GETRAYHIT3D_ACTOR_ID, &GETRAYHIT3D_X, &GETRAYHIT3D_Y, &GETRAYHIT3D_Z, &GETRAYHIT3D_NORMAL_X, &GETRAYHIT3D_NORMAL_Y, &GETRAYHIT3D_NORMAL_Z )
rc_setActorCollisionShape( SETACTORSHAPEEX_ACTOR, SETACTORSHAPEEX_SHAPE_TYPE, SETACTORSHAPEEX_MASS, SETACTORSHAPEEX_RADIUS )
rc_setActorImpactMesh( SETACTORIMPACTMESH_ACTOR, SETACTORIMPACTMESH_MESH, SETACTORIMPACTMESH_MASS )
rc_createPointConstraint( CREATEPOINTCONSTRAINT_ACTORA, CREATEPOINTCONSTRAINT_PXA, CREATEPOINTCONSTRAINT_PYA, CREATEPOINTCONSTRAINT_PZA )
rc_createPointConstraintEx( CREATEPOINTCONSTRAINTEX_ACTORA, CREATEPOINTCONSTRAINTEX_ACTORB, CREATEPOINTCONSTRAINTEX_PXA, CREATEPOINTCONSTRAINTEX_PYA, CREATEPOINTCONSTRAINTEX_PZA, CREATEPOINTCONSTRAINTEX_PXB, CREATEPOINTCONSTRAINTEX_PYB, CREATEPOINTCONSTRAINTEX_PZB )
rc_setPointPivotA( SETPOINTPIVOTA_CONSTRAINT_ID, SETPOINTPIVOTA_X, SETPOINTPIVOTA_Y, SETPOINTPIVOTA_Z )

View File

@@ -7,6 +7,9 @@ function CreateLightActor( )
function CreateBillboardActor( )
function CreateTerrainActor( hmap_file$ )
function CreateParticleActor( particle_type )
Function CreateProjectorActor()
Function CreateCompositeActor()
Function CreateVehicleActor( chassis_actor )
sub DeleteActor( actor )
sub GetActorTransform( actor, matrix )
sub SetActorPosition( actor, x, y, z )
@@ -26,5 +29,4 @@ function GetActorAutoCulling( actor )
sub AddActorShadow( actor )
sub RemoveActorShadow( actor )
function ActorExists( actor )
Function CreateProjectorActor()
Function CreateCompositeActor()
function GetActorType( actor )

View File

@@ -61,3 +61,4 @@ function CastRay3D( from_x, from_y, from_z, to_x, to_y, to_z )
function CastRay3D_All( from_x, from_y, from_z, to_x, to_y, to_z )
sub GetRayHit3D( index, ByRef actor_id, ByRef x, ByRef y, ByRef z, ByRef normal_x, ByRef normal_y, ByRef normal_z )
sub SetActorShapeEx( actor, shape_type, mass, radius)
Sub SetActorImpactMesh( actor, mesh, mass )

View File

@@ -919,7 +919,7 @@ int main(int argc, char * argv[])
{
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";

View File

@@ -2173,6 +2173,10 @@ void init_embedded_functions()
add_embedded_arg("hmap_file$", ID_TYPE_STR);
embed_function("CreateParticleActor", ID_TYPE_FN_NUM);
add_embedded_arg("particle_type", ID_TYPE_NUM);
embed_function("CreateProjectorActor", ID_TYPE_FN_NUM);
embed_function("CreateCompositeActor", ID_TYPE_FN_NUM);
embed_function("CreateVehicleActor", ID_TYPE_FN_NUM);
add_embedded_arg("chassis_actor", ID_TYPE_NUM);
embed_function("DeleteActor", ID_TYPE_SUB);
add_embedded_arg("actor", ID_TYPE_NUM);
embed_function("GetActorTransform", ID_TYPE_SUB);
@@ -2244,8 +2248,8 @@ void init_embedded_functions()
add_embedded_arg("actor", ID_TYPE_NUM);
embed_function("ActorExists", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
embed_function("CreateProjectorActor", ID_TYPE_FN_NUM);
embed_function("CreateCompositeActor", ID_TYPE_FN_NUM);
embed_function("GetActorType", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
embed_function("CreateActorAnimation", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
add_embedded_arg("start_frame", ID_TYPE_NUM);
@@ -2635,6 +2639,10 @@ void init_embedded_functions()
add_embedded_arg("shape_type", ID_TYPE_NUM);
add_embedded_arg("mass", ID_TYPE_NUM);
add_embedded_arg("radius", ID_TYPE_NUM);
embed_function("SetActorImpactMesh", ID_TYPE_SUB);
add_embedded_arg("actor", ID_TYPE_NUM);
add_embedded_arg("mesh", ID_TYPE_NUM);
add_embedded_arg("mass", ID_TYPE_NUM);
embed_function("createPointConstraint", ID_TYPE_FN_NUM);
add_embedded_arg("actorA", ID_TYPE_NUM);
add_embedded_arg("pxA", ID_TYPE_NUM);

Binary file not shown.

View File

@@ -1,5 +1,5 @@
# depslib dependency file v1.0
1771292087 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp
1771619583 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp
<iostream>
<stack>
<vector>
@@ -54,7 +54,7 @@
1752004854 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_global.h
<inttypes.h>
1771232878 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_builtin.h
1771619592 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_builtin.h
"identifier.h"
1752004854 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_vm_asm.h

View File

@@ -2167,6 +2167,10 @@ embed_function("CreateTerrainActor", ID_TYPE_FN_NUM);
add_embedded_arg("hmap_file$", ID_TYPE_STR);
embed_function("CreateParticleActor", ID_TYPE_FN_NUM);
add_embedded_arg("particle_type", ID_TYPE_NUM);
embed_function("CreateProjectorActor", ID_TYPE_FN_NUM);
embed_function("CreateCompositeActor", ID_TYPE_FN_NUM);
embed_function("CreateVehicleActor", ID_TYPE_FN_NUM);
add_embedded_arg("chassis_actor", ID_TYPE_NUM);
embed_function("DeleteActor", ID_TYPE_SUB);
add_embedded_arg("actor", ID_TYPE_NUM);
embed_function("GetActorTransform", ID_TYPE_SUB);
@@ -2238,8 +2242,8 @@ embed_function("RemoveActorShadow", ID_TYPE_SUB);
add_embedded_arg("actor", ID_TYPE_NUM);
embed_function("ActorExists", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
embed_function("CreateProjectorActor", ID_TYPE_FN_NUM);
embed_function("CreateCompositeActor", ID_TYPE_FN_NUM);
embed_function("GetActorType", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
embed_function("CreateActorAnimation", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
add_embedded_arg("start_frame", ID_TYPE_NUM);
@@ -2629,6 +2633,10 @@ add_embedded_arg("actor", ID_TYPE_NUM);
add_embedded_arg("shape_type", ID_TYPE_NUM);
add_embedded_arg("mass", ID_TYPE_NUM);
add_embedded_arg("radius", ID_TYPE_NUM);
embed_function("SetActorImpactMesh", ID_TYPE_SUB);
add_embedded_arg("actor", ID_TYPE_NUM);
add_embedded_arg("mesh", ID_TYPE_NUM);
add_embedded_arg("mass", ID_TYPE_NUM);
embed_function("createPointConstraint", ID_TYPE_FN_NUM);
add_embedded_arg("actorA", ID_TYPE_NUM);
add_embedded_arg("pxA", ID_TYPE_NUM);

File diff suppressed because it is too large Load Diff

View File

@@ -2189,6 +2189,15 @@ case FN_CreateTerrainActor: //Number Function
case FN_CreateParticleActor: //Number Function
rc_push_num(rc_createParticleActor( CREATEPARTICLEACTOR_PARTICLE_TYPE ));
break;
case FN_CreateProjectorActor: //Number Function
rc_push_num(rc_createProjectorActor( ));
break;
case FN_CreateCompositeActor: //Number Function
rc_push_num(rc_createCompositeActor( ));
break;
case FN_CreateVehicleActor: //Number Function
rc_push_num(rc_createVehicleActor( CREATEVEHICLEACTOR_CHASSIS_ACTOR ));
break;
case FN_DeleteActor: //Sub Procedure
rc_deleteActor( DELETEACTOR_ACTOR );
break;
@@ -2246,11 +2255,8 @@ case FN_RemoveActorShadow: //Sub Procedure
case FN_ActorExists: //Number Function
rc_push_num(rc_actorExists( ACTOREXISTS_ACTOR ));
break;
case FN_CreateProjectorActor: //Number Function
rc_push_num(rc_createProjectorActor( ));
break;
case FN_CreateCompositeActor: //Number Function
rc_push_num(rc_createCompositeActor( ));
case FN_GetActorType: //Number Function
rc_push_num(rc_getActorType( GETACTORTYPE_ACTOR ));
break;
case FN_CreateActorAnimation: //Number Function
rc_push_num(rc_createActorAnimation( CREATEACTORANIMATION_ACTOR, CREATEACTORANIMATION_START_FRAME, CREATEACTORANIMATION_END_FRAME, CREATEACTORANIMATION_SPEED ));
@@ -2510,6 +2516,9 @@ case FN_GetRayHit3D: //Sub Procedure
case FN_SetActorShapeEx: //Sub Procedure
rc_setActorCollisionShape( SETACTORSHAPEEX_ACTOR, SETACTORSHAPEEX_SHAPE_TYPE, SETACTORSHAPEEX_MASS, SETACTORSHAPEEX_RADIUS );
break;
case FN_SetActorImpactMesh: //Sub Procedure
rc_setActorImpactMesh( SETACTORIMPACTMESH_ACTOR, SETACTORIMPACTMESH_MESH, SETACTORIMPACTMESH_MASS );
break;
case FN_createPointConstraint: //Number Function
rc_push_num(rc_createPointConstraint( CREATEPOINTCONSTRAINT_ACTORA, CREATEPOINTCONSTRAINT_PXA, CREATEPOINTCONSTRAINT_PYA, CREATEPOINTCONSTRAINT_PZA ));
break;

File diff suppressed because it is too large Load Diff

View File

@@ -2189,6 +2189,15 @@ case FN_CreateTerrainActor: //Number Function
case FN_CreateParticleActor: //Number Function
rc_push_num(rc_createParticleActor( CREATEPARTICLEACTOR_PARTICLE_TYPE ));
break;
case FN_CreateProjectorActor: //Number Function
rc_push_num(rc_createProjectorActor( ));
break;
case FN_CreateCompositeActor: //Number Function
rc_push_num(rc_createCompositeActor( ));
break;
case FN_CreateVehicleActor: //Number Function
rc_push_num(rc_createVehicleActor( CREATEVEHICLEACTOR_CHASSIS_ACTOR ));
break;
case FN_DeleteActor: //Sub Procedure
rc_deleteActor( DELETEACTOR_ACTOR );
break;
@@ -2246,11 +2255,8 @@ case FN_RemoveActorShadow: //Sub Procedure
case FN_ActorExists: //Number Function
rc_push_num(rc_actorExists( ACTOREXISTS_ACTOR ));
break;
case FN_CreateProjectorActor: //Number Function
rc_push_num(rc_createProjectorActor( ));
break;
case FN_CreateCompositeActor: //Number Function
rc_push_num(rc_createCompositeActor( ));
case FN_GetActorType: //Number Function
rc_push_num(rc_getActorType( GETACTORTYPE_ACTOR ));
break;
case FN_CreateActorAnimation: //Number Function
rc_push_num(rc_createActorAnimation( CREATEACTORANIMATION_ACTOR, CREATEACTORANIMATION_START_FRAME, CREATEACTORANIMATION_END_FRAME, CREATEACTORANIMATION_SPEED ));
@@ -2510,6 +2516,9 @@ case FN_GetRayHit3D: //Sub Procedure
case FN_SetActorShapeEx: //Sub Procedure
rc_setActorCollisionShape( SETACTORSHAPEEX_ACTOR, SETACTORSHAPEEX_SHAPE_TYPE, SETACTORSHAPEEX_MASS, SETACTORSHAPEEX_RADIUS );
break;
case FN_SetActorImpactMesh: //Sub Procedure
rc_setActorImpactMesh( SETACTORIMPACTMESH_ACTOR, SETACTORIMPACTMESH_MESH, SETACTORIMPACTMESH_MASS );
break;
case FN_createPointConstraint: //Number Function
rc_push_num(rc_createPointConstraint( CREATEPOINTCONSTRAINT_ACTORA, CREATEPOINTCONSTRAINT_PXA, CREATEPOINTCONSTRAINT_PYA, CREATEPOINTCONSTRAINT_PZA ));
break;

View File

@@ -37,7 +37,7 @@
1771296059 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_os_defines.h
<TargetConditionals.h>
1771309547 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_defines.h
1771619942 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_defines.h
1764140917 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_stdlib.h
"rc_os_defines.h"
@@ -2281,7 +2281,7 @@
"rc_gfx_core.h"
<irrtheora.h>
1771309547 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_func130_cases.h
1771619942 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_func130_cases.h
1760243468 source:/home/n00b/Projects/irrBullet/src/irrBullet.cpp
"irrBullet.h"