Added missing functions to Projector Actors

This commit is contained in:
n00b87
2026-02-22 03:04:03 -06:00
parent 21e06b0848
commit c4d559f0d4
25 changed files with 2523 additions and 1926 deletions

View File

@@ -233,6 +233,7 @@ rc_drawTriangle( TRIANGLE_X1, TRIANGLE_Y1, TRIANGLE_X2, TRIANGLE_Y2, TRIANGL
rc_drawLine3D( LINE3D_X1, LINE3D_Y1, LINE3D_Z1, LINE3D_X2, LINE3D_Y2, LINE3D_Z2 )
rc_drawBox3D( BOX3D_MIN_X, BOX3D_MIN_Y, BOX3D_MIN_Z, BOX3D_MAX_X, BOX3D_MAX_Y, BOX3D_MAX_Z )
rc_drawTriangle3D( TRIANGLE3D_X1, TRIANGLE3D_Y1, TRIANGLE3D_Z1, TRIANGLE3D_X2, TRIANGLE3D_Y2, TRIANGLE3D_Z2, TRIANGLE3D_X3, TRIANGLE3D_Y3, TRIANGLE3D_Z3 )
rc_setRenderCirclePoints( SETRENDERCIRCLEPOINTS_NUM_POINTS )
rc_loadImage( LOADIMAGE_IMG$ )
rc_loadImageEx( LOADIMAGEEX_IMG$, LOADIMAGEEX_COLKEY )
rc_createImage( CREATEIMAGE_W, CREATEIMAGE_H, &CREATEIMAGE_BUFFER )
@@ -262,6 +263,7 @@ rc_drawImage_Rotozoom( DRAWIMAGE_ROTOZOOM_SLOT, DRAWIMAGE_ROTOZOOM_X, DRAWIMAG
rc_drawImage_RotozoomEx( DRAWIMAGE_ROTOZOOMEX_SLOT, DRAWIMAGE_ROTOZOOMEX_X, DRAWIMAGE_ROTOZOOMEX_Y, DRAWIMAGE_ROTOZOOMEX_SRC_X, DRAWIMAGE_ROTOZOOMEX_SRC_Y, DRAWIMAGE_ROTOZOOMEX_SRC_W, DRAWIMAGE_ROTOZOOMEX_SRC_H, DRAWIMAGE_ROTOZOOMEX_ANGLE, DRAWIMAGE_ROTOZOOMEX_ZX, DRAWIMAGE_ROTOZOOMEX_ZY )
rc_drawImage_Flip( DRAWIMAGE_FLIP_SLOT, DRAWIMAGE_FLIP_X, DRAWIMAGE_FLIP_Y, DRAWIMAGE_FLIP_H, DRAWIMAGE_FLIP_V )
rc_drawImage_FlipEx( DRAWIMAGE_FLIPEX_SLOT, DRAWIMAGE_FLIPEX_X, DRAWIMAGE_FLIPEX_Y, DRAWIMAGE_FLIPEX_SRC_X, DRAWIMAGE_FLIPEX_SRC_Y, DRAWIMAGE_FLIPEX_SRC_W, DRAWIMAGE_FLIPEX_SRC_H, DRAWIMAGE_FLIPEX_H, DRAWIMAGE_FLIPEX_V )
rc_saveBMP( SAVEBMP_IMG, SAVEBMP_FILE$ )
rc_setAntiAliasMode( SETANTIALIASMODE_AA_MODE )
rc_getAntiAliasMode( )
rc_convertToNormalMap( CONVERTTONORMALMAP_IMG_ID, CONVERTTONORMALMAP_AMP )
@@ -344,6 +346,7 @@ rc_drawText( DRAWTEXT_TXT$, DRAWTEXT_X, DRAWTEXT_Y )
rc_getTextSize( GETTEXTSIZE_TXT$, &GETTEXTSIZE_W, &GETTEXTSIZE_H )
rc_getTextWidth( TEXTWIDTH_TXT$ )
rc_getTextHeight( TEXTHEIGHT_TXT$ )
rc_activeFont( )
rc_touchPressure( )
rc_getTouch( &GETTOUCH_STATUS, &GETTOUCH_X, &GETTOUCH_Y, &GETTOUCH_DX, &GETTOUCH_DY )
rc_getMultiTouch( &GETMULTITOUCH_STATUS, &GETMULTITOUCH_X, &GETMULTITOUCH_Y, &GETMULTITOUCH_FINGERS, &GETMULTITOUCH_DIST, &GETMULTITOUCH_THETA )
@@ -531,6 +534,7 @@ rc_getSpriteCurrentAnimationFrame( GETSPRITECURRENTANIMATIONFRAME_SPRITE )
rc_numSpriteAnimationLoops( NUMSPRITEANIMATIONLOOPS_SPRITE )
rc_spriteAnimationIsPlaying( SPRITEANIMATIONISPLAYING_SPRITE )
rc_deleteSpriteAnimation( DELETESPRITEANIMATION_SPRITE, DELETESPRITEANIMATION_ANIMATION )
rc_getSpriteAnimationSource( GETSPRITEANIMATIONSOURCE_SPRITE, GETSPRITEANIMATIONSOURCE_ANIMATION )
rc_getSpriteCenter( GETSPRITECENTER_SPR_ID, &GETSPRITECENTER_X, &GETSPRITECENTER_Y )
rc_setSpriteLinearVelocity( SETSPRITELINEARVELOCITY_SPR_ID, SETSPRITELINEARVELOCITY_X, SETSPRITELINEARVELOCITY_Y )
rc_getSpriteLinearVelocity( GETSPRITELINEARVELOCITY_SPR_ID, &GETSPRITELINEARVELOCITY_X, &GETSPRITELINEARVELOCITY_Y )
@@ -1051,6 +1055,12 @@ rc_setProjectorTarget( SETPROJECTORTARGET_ACTOR, SETPROJECTORTARGET_X, SETPROJ
rc_getProjectorTarget( GETPROJECTORTARGET_ACTOR, &GETPROJECTORTARGET_X, &GETPROJECTORTARGET_Y, &GETPROJECTORTARGET_Z )
rc_setProjectorFOV( SETPROJECTORFOV_ACTOR, SETPROJECTORFOV_FOV )
rc_getProjectorFOV( GETPROJECTORFOV_ACTOR )
rc_setProjectorTexture( SETPROJECTORTEXTURE_ACTOR, SETPROJECTORTEXTURE_IMG_ID )
rc_getProjectorTexture( GETPROJECTORTEXTURE_ACTOR )
rc_addProjectorEffectActor( ADDPROJECTOREFFECTACTOR_ACTOR, ADDPROJECTOREFFECTACTOR_TGT_ACTOR )
rc_getProjectorEffectActorCount( GETPROJECTOREFFECTACTORCOUNT_ACTOR )
rc_getProjectorEffectActor( GETPROJECTOREFFECTACTOR_ACTOR, GETPROJECTOREFFECTACTOR_TGT_INDEX )
rc_removeProjectorEffectActor( REMOVEPROJECTOREFFECTACTOR_ACTOR, REMOVEPROJECTOREFFECTACTOR_TGT_INDEX )
rc_addCompositeChild( ADDCOMPOSITECHILD_ACTOR, ADDCOMPOSITECHILD_CHILD_ACTOR, ADDCOMPOSITECHILD_T_MATRIX )
rc_getCompositeChildCount( GETCOMPOSITECHILDCOUNT_ACTOR )
rc_getCompositeChild( GETCOMPOSITECHILD_ACTOR, GETCOMPOSITECHILD_CHILD_INDEX )

View File

@@ -27,6 +27,7 @@ sub DrawImage_Rotozoom(slot, x, y, angle, zx, zy)
sub DrawImage_RotozoomEx(slot, x, y, src_x, src_y, src_w, src_h, angle, zx, zy)
sub DrawImage_Flip(slot, x, y, h, v)
sub DrawImage_FlipEx(slot, x, y, src_x, src_y, src_w, src_h, h, v)
function SaveBMP(img, file$)
sub SetAntiAliasMode( aa_mode )
function GetAntiAliasMode( )
sub ConvertToNormalMap(img_id, amp)

View File

@@ -16,3 +16,4 @@ sub Triangle(x1, y1, x2, y2, x3, y3)
sub Line3D(x1, y1, z1, x2, y2, z2)
sub Box3D(min_x, min_y, min_z, max_x, max_y, max_z)
sub Triangle3D(x1, y1, z1, x2, y2, z2, x3, y3, z3)
Sub SetRenderCirclePoints(num_points)

View File

@@ -2,3 +2,9 @@ Sub SetProjectorTarget(actor, x, y, z)
Sub GetProjectorTarget(actor, ByRef x, ByRef y, ByRef z)
Sub SetProjectorFOV(actor, fov)
Function GetProjectorFOV(actor)
Sub SetProjectorTexture(actor, img_id)
Function GetProjectorTexture(actor)
Function AddProjectorEffectActor(actor, tgt_actor)
Function GetProjectorEffectActorCount(actor)
Function GetProjectorEffectActor(actor, tgt_index)
Sub RemoveProjectorEffectActor(actor, tgt_index)

View File

@@ -13,3 +13,4 @@ Function GetSpriteCurrentAnimationFrame(sprite)
Function NumSpriteAnimationLoops(sprite)
Function SpriteAnimationIsPlaying(sprite)
Sub DeleteSpriteAnimation(sprite, animation)
Function GetSpriteAnimationSource(sprite, animation)

View File

@@ -6,3 +6,4 @@ sub DrawText(txt$, x, y)
sub GetTextSize(txt$, byref w, byref h)
function TextWidth(txt$)
function TextHeight(txt$)
function ActiveFont()

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

@@ -662,6 +662,8 @@ void init_embedded_functions()
add_embedded_arg("x3", ID_TYPE_NUM);
add_embedded_arg("y3", ID_TYPE_NUM);
add_embedded_arg("z3", ID_TYPE_NUM);
embed_function("SetRenderCirclePoints", ID_TYPE_SUB);
add_embedded_arg("num_points", ID_TYPE_NUM);
embed_function("LoadImage", ID_TYPE_FN_NUM);
add_embedded_arg("img$", ID_TYPE_STR);
embed_function("LoadImageEx", ID_TYPE_FN_NUM);
@@ -794,6 +796,9 @@ void init_embedded_functions()
add_embedded_arg("src_h", ID_TYPE_NUM);
add_embedded_arg("h", ID_TYPE_NUM);
add_embedded_arg("v", ID_TYPE_NUM);
embed_function("SaveBMP", ID_TYPE_FN_NUM);
add_embedded_arg("img", ID_TYPE_NUM);
add_embedded_arg("file$", ID_TYPE_STR);
embed_function("SetAntiAliasMode", ID_TYPE_SUB);
add_embedded_arg("aa_mode", ID_TYPE_NUM);
embed_function("GetAntiAliasMode", ID_TYPE_FN_NUM);
@@ -978,6 +983,7 @@ void init_embedded_functions()
add_embedded_arg("txt$", ID_TYPE_STR);
embed_function("TextHeight", ID_TYPE_FN_NUM);
add_embedded_arg("txt$", ID_TYPE_STR);
embed_function("ActiveFont", ID_TYPE_FN_NUM);
embed_function("TouchPressure", ID_TYPE_FN_NUM);
embed_function("GetTouch", ID_TYPE_SUB);
add_embedded_arg("status", ID_TYPE_BYREF_NUM);
@@ -1525,6 +1531,9 @@ void init_embedded_functions()
embed_function("DeleteSpriteAnimation", ID_TYPE_SUB);
add_embedded_arg("sprite", ID_TYPE_NUM);
add_embedded_arg("animation", ID_TYPE_NUM);
embed_function("GetSpriteAnimationSource", ID_TYPE_FN_NUM);
add_embedded_arg("sprite", ID_TYPE_NUM);
add_embedded_arg("animation", ID_TYPE_NUM);
embed_function("getSpriteCenter", ID_TYPE_SUB);
add_embedded_arg("spr_id", ID_TYPE_NUM);
add_embedded_arg("x", ID_TYPE_BYREF_NUM);
@@ -3322,6 +3331,22 @@ void init_embedded_functions()
add_embedded_arg("fov", ID_TYPE_NUM);
embed_function("GetProjectorFOV", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
embed_function("SetProjectorTexture", ID_TYPE_SUB);
add_embedded_arg("actor", ID_TYPE_NUM);
add_embedded_arg("img_id", ID_TYPE_NUM);
embed_function("GetProjectorTexture", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
embed_function("AddProjectorEffectActor", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
add_embedded_arg("tgt_actor", ID_TYPE_NUM);
embed_function("GetProjectorEffectActorCount", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
embed_function("GetProjectorEffectActor", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
add_embedded_arg("tgt_index", ID_TYPE_NUM);
embed_function("RemoveProjectorEffectActor", ID_TYPE_SUB);
add_embedded_arg("actor", ID_TYPE_NUM);
add_embedded_arg("tgt_index", ID_TYPE_NUM);
embed_function("AddCompositeChild", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
add_embedded_arg("child_actor", ID_TYPE_NUM);

Binary file not shown.

View File

@@ -54,7 +54,7 @@
1752004854 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_global.h
<inttypes.h>
1771619942 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_builtin.h
1771626799 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_builtin.h
"identifier.h"
1752004854 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_vm_asm.h

View File

@@ -656,6 +656,8 @@ add_embedded_arg("z2", ID_TYPE_NUM);
add_embedded_arg("x3", ID_TYPE_NUM);
add_embedded_arg("y3", ID_TYPE_NUM);
add_embedded_arg("z3", ID_TYPE_NUM);
embed_function("SetRenderCirclePoints", ID_TYPE_SUB);
add_embedded_arg("num_points", ID_TYPE_NUM);
embed_function("LoadImage", ID_TYPE_FN_NUM);
add_embedded_arg("img$", ID_TYPE_STR);
embed_function("LoadImageEx", ID_TYPE_FN_NUM);
@@ -788,6 +790,9 @@ add_embedded_arg("src_w", ID_TYPE_NUM);
add_embedded_arg("src_h", ID_TYPE_NUM);
add_embedded_arg("h", ID_TYPE_NUM);
add_embedded_arg("v", ID_TYPE_NUM);
embed_function("SaveBMP", ID_TYPE_FN_NUM);
add_embedded_arg("img", ID_TYPE_NUM);
add_embedded_arg("file$", ID_TYPE_STR);
embed_function("SetAntiAliasMode", ID_TYPE_SUB);
add_embedded_arg("aa_mode", ID_TYPE_NUM);
embed_function("GetAntiAliasMode", ID_TYPE_FN_NUM);
@@ -972,6 +977,7 @@ embed_function("TextWidth", ID_TYPE_FN_NUM);
add_embedded_arg("txt$", ID_TYPE_STR);
embed_function("TextHeight", ID_TYPE_FN_NUM);
add_embedded_arg("txt$", ID_TYPE_STR);
embed_function("ActiveFont", ID_TYPE_FN_NUM);
embed_function("TouchPressure", ID_TYPE_FN_NUM);
embed_function("GetTouch", ID_TYPE_SUB);
add_embedded_arg("status", ID_TYPE_BYREF_NUM);
@@ -1519,6 +1525,9 @@ add_embedded_arg("sprite", ID_TYPE_NUM);
embed_function("DeleteSpriteAnimation", ID_TYPE_SUB);
add_embedded_arg("sprite", ID_TYPE_NUM);
add_embedded_arg("animation", ID_TYPE_NUM);
embed_function("GetSpriteAnimationSource", ID_TYPE_FN_NUM);
add_embedded_arg("sprite", ID_TYPE_NUM);
add_embedded_arg("animation", ID_TYPE_NUM);
embed_function("getSpriteCenter", ID_TYPE_SUB);
add_embedded_arg("spr_id", ID_TYPE_NUM);
add_embedded_arg("x", ID_TYPE_BYREF_NUM);
@@ -3316,6 +3325,22 @@ add_embedded_arg("actor", ID_TYPE_NUM);
add_embedded_arg("fov", ID_TYPE_NUM);
embed_function("GetProjectorFOV", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
embed_function("SetProjectorTexture", ID_TYPE_SUB);
add_embedded_arg("actor", ID_TYPE_NUM);
add_embedded_arg("img_id", ID_TYPE_NUM);
embed_function("GetProjectorTexture", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
embed_function("AddProjectorEffectActor", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
add_embedded_arg("tgt_actor", ID_TYPE_NUM);
embed_function("GetProjectorEffectActorCount", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
embed_function("GetProjectorEffectActor", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
add_embedded_arg("tgt_index", ID_TYPE_NUM);
embed_function("RemoveProjectorEffectActor", ID_TYPE_SUB);
add_embedded_arg("actor", ID_TYPE_NUM);
add_embedded_arg("tgt_index", ID_TYPE_NUM);
embed_function("AddCompositeChild", ID_TYPE_FN_NUM);
add_embedded_arg("actor", ID_TYPE_NUM);
add_embedded_arg("child_actor", ID_TYPE_NUM);

File diff suppressed because it is too large Load Diff

View File

@@ -730,6 +730,9 @@ case FN_Box3D: //Sub Procedure
case FN_Triangle3D: //Sub Procedure
rc_drawTriangle3D( TRIANGLE3D_X1, TRIANGLE3D_Y1, TRIANGLE3D_Z1, TRIANGLE3D_X2, TRIANGLE3D_Y2, TRIANGLE3D_Z2, TRIANGLE3D_X3, TRIANGLE3D_Y3, TRIANGLE3D_Z3 );
break;
case FN_SetRenderCirclePoints: //Sub Procedure
rc_setRenderCirclePoints( SETRENDERCIRCLEPOINTS_NUM_POINTS );
break;
case FN_LoadImage: //Number Function
rc_push_num(rc_loadImage( LOADIMAGE_IMG$ ));
break;
@@ -817,6 +820,9 @@ case FN_DrawImage_Flip: //Sub Procedure
case FN_DrawImage_FlipEx: //Sub Procedure
rc_drawImage_FlipEx( DRAWIMAGE_FLIPEX_SLOT, DRAWIMAGE_FLIPEX_X, DRAWIMAGE_FLIPEX_Y, DRAWIMAGE_FLIPEX_SRC_X, DRAWIMAGE_FLIPEX_SRC_Y, DRAWIMAGE_FLIPEX_SRC_W, DRAWIMAGE_FLIPEX_SRC_H, DRAWIMAGE_FLIPEX_H, DRAWIMAGE_FLIPEX_V );
break;
case FN_SaveBMP: //Number Function
rc_push_num(rc_saveBMP( SAVEBMP_IMG, SAVEBMP_FILE$ ));
break;
case FN_SetAntiAliasMode: //Sub Procedure
rc_setAntiAliasMode( SETANTIALIASMODE_AA_MODE );
break;
@@ -1063,6 +1069,9 @@ case FN_TextWidth: //Number Function
case FN_TextHeight: //Number Function
rc_push_num(rc_getTextHeight( TEXTHEIGHT_TXT$ ));
break;
case FN_ActiveFont: //Number Function
rc_push_num(rc_activeFont( ));
break;
case FN_TouchPressure: //Number Function
rc_push_num(rc_touchPressure( ));
break;
@@ -1625,6 +1634,9 @@ case FN_SpriteAnimationIsPlaying: //Number Function
case FN_DeleteSpriteAnimation: //Sub Procedure
rc_deleteSpriteAnimation( DELETESPRITEANIMATION_SPRITE, DELETESPRITEANIMATION_ANIMATION );
break;
case FN_GetSpriteAnimationSource: //Number Function
rc_push_num(rc_getSpriteAnimationSource( GETSPRITEANIMATIONSOURCE_SPRITE, GETSPRITEANIMATIONSOURCE_ANIMATION ));
break;
case FN_getSpriteCenter: //Sub Procedure
rc_getSpriteCenter( GETSPRITECENTER_SPR_ID, &GETSPRITECENTER_X, &GETSPRITECENTER_Y );
break;
@@ -3185,6 +3197,24 @@ case FN_SetProjectorFOV: //Sub Procedure
case FN_GetProjectorFOV: //Number Function
rc_push_num(rc_getProjectorFOV( GETPROJECTORFOV_ACTOR ));
break;
case FN_SetProjectorTexture: //Sub Procedure
rc_setProjectorTexture( SETPROJECTORTEXTURE_ACTOR, SETPROJECTORTEXTURE_IMG_ID );
break;
case FN_GetProjectorTexture: //Number Function
rc_push_num(rc_getProjectorTexture( GETPROJECTORTEXTURE_ACTOR ));
break;
case FN_AddProjectorEffectActor: //Number Function
rc_push_num(rc_addProjectorEffectActor( ADDPROJECTOREFFECTACTOR_ACTOR, ADDPROJECTOREFFECTACTOR_TGT_ACTOR ));
break;
case FN_GetProjectorEffectActorCount: //Number Function
rc_push_num(rc_getProjectorEffectActorCount( GETPROJECTOREFFECTACTORCOUNT_ACTOR ));
break;
case FN_GetProjectorEffectActor: //Number Function
rc_push_num(rc_getProjectorEffectActor( GETPROJECTOREFFECTACTOR_ACTOR, GETPROJECTOREFFECTACTOR_TGT_INDEX ));
break;
case FN_RemoveProjectorEffectActor: //Sub Procedure
rc_removeProjectorEffectActor( REMOVEPROJECTOREFFECTACTOR_ACTOR, REMOVEPROJECTOREFFECTACTOR_TGT_INDEX );
break;
case FN_AddCompositeChild: //Number Function
rc_push_num(rc_addCompositeChild( ADDCOMPOSITECHILD_ACTOR, ADDCOMPOSITECHILD_CHILD_ACTOR, ADDCOMPOSITECHILD_T_MATRIX ));
break;