diff --git a/rcbasic_build/embedded_functions.bas b/rcbasic_build/embedded_functions.bas index fe347a1..c67a66d 100644 --- a/rcbasic_build/embedded_functions.bas +++ b/rcbasic_build/embedded_functions.bas @@ -28,7 +28,9 @@ Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/process.bas" Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/clipboard.bas" Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/textedit.bas" Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/sprites.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/sprite_animation.bas" Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/sprite_physics.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/joint2D.bas" Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/tilemaps.bas" Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/mesh.bas" Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/actor.bas" @@ -40,5 +42,5 @@ Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/particles.bas" Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/lights.bas" Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/terrain.bas" Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/water.bas" -Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/animation.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/actor_animation.bas" Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/materials.bas" diff --git a/rcbasic_build/intern_lib/actor.bas b/rcbasic_build/intern_lib/actor.bas index b9c982d..c60185a 100644 --- a/rcbasic_build/intern_lib/actor.bas +++ b/rcbasic_build/intern_lib/actor.bas @@ -1,8 +1,8 @@ -function CreateMeshActor( mesh ) -function CreateMeshOctreeActor( mesh ) +function CreateAnimatedActor( mesh ) +function CreateOctreeActor( mesh ) function CreateCubeActor( cube_size ) function CreateSphereActor( radius ) -function CreateWaterPlaneActor( w, h ) +function CreateWaterActor( mesh, waveHeight, waveSpeed, waveLength ) function CreateLightActor( ) function CreateBillboardActor( ) function CreateTerrainActor( hmap_file$ ) diff --git a/rcbasic_build/intern_lib/actor_animation.bas b/rcbasic_build/intern_lib/actor_animation.bas new file mode 100644 index 0000000..12d3aec --- /dev/null +++ b/rcbasic_build/intern_lib/actor_animation.bas @@ -0,0 +1,15 @@ +Function CreateActorAnimation(actor, start_frame, end_frame, speed) +sub SetActorAnimation( actor, animation, num_loops) +sub SetActorAnimationSpeed( actor, animation, speed ) +sub SetActorAnimationFrames(actor, animation, start_frame, end_frame) +Function GetActorCurrentAnimation(actor) +function GetActorAnimationSpeed( actor, animation ) +Function GetActorAnimationStartFrame(actor, animation) +Function GetActorAnimationEndFrame(actor, animation) +sub SetActorFrame(actor, frame) +function GetActorFrame(actor) +function ActorAnimationIsPlaying(actor) +function NumActorAnimationLoops(actor) +sub SetActorMD2Animation( actor, anim, num_loops ) +sub SetActorMD2AnimationByName( actor, anim_name$, num_loops ) +sub DeleteActorAnimation(actor, animation) diff --git a/rcbasic_build/intern_lib/camera.bas b/rcbasic_build/intern_lib/camera.bas index f2604cc..b47e930 100644 --- a/rcbasic_build/intern_lib/camera.bas +++ b/rcbasic_build/intern_lib/camera.bas @@ -12,3 +12,6 @@ sub SetCameraFarValue( zf ) function GetCameraFarValue( ) sub SetCameraNearValue( zn ) function GetCameraNearValue( ) +Sub SetProjectionMatrix(matA, projection_type) +Sub GetProjectionMatrix(matA ) +Sub GetWorldToViewportPosition(x, y, z, ByRef vx, ByRef vy) diff --git a/rcbasic_build/intern_lib/canvas.bas b/rcbasic_build/intern_lib/canvas.bas index 4bc360c..8c419db 100644 --- a/rcbasic_build/intern_lib/canvas.bas +++ b/rcbasic_build/intern_lib/canvas.bas @@ -1,6 +1,6 @@ function OpenCanvas( w, h, viewport_x, viewport_y, viewport_w, viewport_h, mode) Sub CloseCanvas(c_num) -function OpenCanvas3D( w, h, viewport_x, viewport_y, viewport_w, viewport_h, mode) +function OpenCanvas3D( viewport_x, viewport_y, viewport_w, viewport_h, mode) sub SetCanvasVisible(c_num, flag) function CanvasIsVisible(c_num) sub SetCanvasViewport(cnum, x, y, w, h) @@ -16,8 +16,8 @@ sub SetCanvasColorMod(c_num, c) function GetCanvasColorMod(c_num) function CloneCanvas(c_num, mode) sub SetCanvasZ(c_num, z) -function GetCanvasZ(c_num) +function CanvasZ(c_num) function CanvasClip(x, y, w, h) function ActiveCanvas() sub SetCanvasPhysics2D(c_num, state) -function OpenSpriteCanvas(w, h, viewport_x, viewport_y, viewport_w, viewport_h) +function OpenCanvasSpriteLayer(w, h, viewport_x, viewport_y, viewport_w, viewport_h) diff --git a/rcbasic_build/intern_lib/joint2D.bas b/rcbasic_build/intern_lib/joint2D.bas new file mode 100644 index 0000000..e69de29 diff --git a/rcbasic_build/intern_lib/mesh.bas b/rcbasic_build/intern_lib/mesh.bas index 93e7840..2b650ab 100644 --- a/rcbasic_build/intern_lib/mesh.bas +++ b/rcbasic_build/intern_lib/mesh.bas @@ -3,3 +3,8 @@ sub DeleteMesh( mesh ) function CreateMesh( ) sub AddMeshBuffer( mesh, vertex_count, ByRef vertex_data, ByRef normal_data, ByRef uv_data, index_count, ByRef index_data ) function LoadMeshFromArchive( archive$, mesh_file$ ) +Function CreatePlaneMesh( w, h, tileCount_w, tileCount_h ) +Function LoadAN8( an8_file$ ) +Function LoadMeshFromAN8(an8_project, an8_scene$) +Function GetNumAN8Scenes(an8_project) +Function GetAN8SceneName$(an8_project, scene_num) diff --git a/rcbasic_build/intern_lib/sprite_animation.bas b/rcbasic_build/intern_lib/sprite_animation.bas new file mode 100644 index 0000000..e91a106 --- /dev/null +++ b/rcbasic_build/intern_lib/sprite_animation.bas @@ -0,0 +1,15 @@ +Function CreateSpriteAnimation(sprite, anim_length, speed) +Sub SetSpriteFrame(sprite, frame) +Function GetSpriteFrame(sprite) +Sub SetSpriteAnimationFrame(sprite, animation, anim_frame, frame) +Function GetSpriteAnimationFrame(sprite, animation, anim_frame) +Sub SetSpriteAnimationLength(sprite, animation, anim_length) +Function GetSpriteAnimationLength(sprite, animation) +Sub SetSpriteAnimationSpeed(sprite, animation, speed) +Function GetSpriteAnimationSpeed(sprite, animation) +Sub SetSpriteAnimation(sprite, animation, num_loops) +Function GetSpriteAnimation(sprite) +Function GetSpriteCurrentAnimationFrame(sprite) +Function NumSpriteAnimationLoops(sprite) +Function SpriteAnimationIsPlaying(sprite) +Sub DeleteSpriteAnimation(sprite, animation) diff --git a/rcbasic_build/intern_lib/sprites.bas b/rcbasic_build/intern_lib/sprites.bas index 513f10c..3ac0e87 100644 --- a/rcbasic_build/intern_lib/sprites.bas +++ b/rcbasic_build/intern_lib/sprites.bas @@ -1,3 +1,26 @@ -function CreateSprite( img ) +function CreateSprite( img, frame_w, frame_h ) Sub DeleteSprite( sprite ) Sub SetSpritePosition( sprite, x, y ) +Sub TranslateSprite(sprite, x, y) +Sub GetSpritePosition(sprite, ByRef x, ByRef y) +Function SpriteX(sprite) +Function SpriteY(sprite) +Sub SetSpriteRotation(sprite, angle) +Sub RotateSprite(sprite, angle) +Function GetSpriteRotation(sprite) +Sub SetSpriteScale(sprite, x, y) +Sub ScaleSprite(sprite, x, y) +Sub GetSpriteScale(sprite, ByRef x, ByRef y) +Sub SetSpriteZ(sprite, z) +Function SpriteZ(sprite) +Sub GetSpriteSize(sprite, ByRef w, ByRef h) +Function SpriteWidth(sprite) +Function SpriteHeight(sprite) +Sub SetSpriteVisible(sprite, flag) +Function SpriteIsVisible(sprite) +Sub SetSpriteSolid(sprite, flag) +Function SpriteIsSolid(sprite) +Sub SetSpriteType(sprite, sprite_type) +Function GetSpriteType(sprite) +Sub SetSpriteSource(sprite, img) +Function GetSpriteSource(sprite) diff --git a/rcbasic_build/intern_lib/text.bas b/rcbasic_build/intern_lib/text.bas index e19086f..f9a19a7 100644 --- a/rcbasic_build/intern_lib/text.bas +++ b/rcbasic_build/intern_lib/text.bas @@ -4,5 +4,5 @@ Function FontExists(slot) sub SetFont(slot) sub DrawText(txt$, x, y) sub GetTextSize(txt$, byref w, byref h) -function GetTextWidth(txt$) -function GetTextHeight(txt$) +function TextWidth(txt$) +function TextHeight(txt$) diff --git a/rcbasic_build/intern_lib/water.bas b/rcbasic_build/intern_lib/water.bas index f7f95f9..e69de29 100644 --- a/rcbasic_build/intern_lib/water.bas +++ b/rcbasic_build/intern_lib/water.bas @@ -1,10 +0,0 @@ -sub setWaterWindForce( actor, f) -function getWaterWindForce( actor) -sub setWaterWaveHeight( actor, h) -function getWaterWaveHeight( actor) -sub setWaterWindDirection( actor, x, z) -sub getWaterWindDirection( actor, ByRef x, ByRef z) -sub setWaterColor( actor, c) -function getWaterColor( actor) -sub setWaterColorBlendFactor( actor, cbfactor) -function getWaterColorBlendFactor( actor) diff --git a/rcbasic_build/intern_lib/window.bas b/rcbasic_build/intern_lib/window.bas index 0972cd0..9f2fc12 100644 --- a/rcbasic_build/intern_lib/window.bas +++ b/rcbasic_build/intern_lib/window.bas @@ -45,6 +45,6 @@ sub RestoreWindow( ) sub GrabInput(flag) sub SetWindowAlwaysOnTop( flag ) sub SetMouseRelative(flag) -sub SetWindowVSync( flag ) function FlashWindow( flag ) function WindowIsGrabbed( ) +Sub PreUpdate( ) diff --git a/rcbasic_build/rcbasic4_changes.ods b/rcbasic_build/rcbasic4_changes.ods index bccdf7a..d4e13c5 100644 Binary files a/rcbasic_build/rcbasic4_changes.ods and b/rcbasic_build/rcbasic4_changes.ods differ diff --git a/rcbasic_runtime/rc_func130_cases.h b/rcbasic_runtime/rc_func130_cases.h index 3002e48..8b13789 100644 --- a/rcbasic_runtime/rc_func130_cases.h +++ b/rcbasic_runtime/rc_func130_cases.h @@ -1,2624 +1 @@ -case FN_Fprint: //Sub Procedure - rc_fprint( FPRINT_TXT$ ); - break; -case FN_Input$: //String Function - rc_push_str(rc_input( INPUT$_PROMPT$ )); - break; -case FN_tst: //Sub Procedure - rc_tst( ); - break; -case FN_ArrayDim: //Number Function - //DUMMY CASE - - break; -case FN_StringArrayDim: //Number Function - rc_push_num( rc_string_array_dim( (rc_strId*) str_var[0].sid_value.ref_parent ) ); - arr_ref_id.clear(); - - break; -case FN_NumberArrayDim: //Number Function - rc_push_num( rc_number_array_dim( (rc_numId*)num_var[0].nid_value.ref_parent ) ); - arr_ref_id.clear(); - - break; -case FN_ArraySize: //Number Function - //DUMMY CASE - - break; -case FN_StringArraySize: //Number Function - rc_push_num( rc_string_array_size( (rc_strId*) str_var[0].sid_value.ref_parent, STRINGARRAYSIZE_ARRAY_DIM)); - arr_ref_id.clear(); - - break; -case FN_NumberArraySize: //Number Function - rc_push_num( rc_number_array_size( (rc_numId*)num_var[0].nid_value.ref_parent, NUMBERARRAYSIZE_ARRAY_DIM)); - arr_ref_id.clear(); - - break; -case FN_NumberArrayCopy: //Sub Procedure - rc_number_array_copy( &num_var[0], &num_var[1]); - arr_ref_id.clear(); - - break; -case FN_StringArrayCopy: //Sub Procedure - rc_string_array_copy( &str_var[0], &str_var[1]); - arr_ref_id.clear(); - - break; -case FN_ArrayCopy: //Sub Procedure - //DUMMY CASE - - break; -case FN_NumberArrayFill: //Sub Procedure - rc_number_array_fill( &num_var[0], NUMBERARRAYFILL_FDATA); - arr_ref_id.clear(); - - break; -case FN_StringArrayFill: //Sub Procedure - rc_string_array_fill( &str_var[0], STRINGARRAYFILL_FDATA$); - arr_ref_id.clear(); - - break; -case FN_ArrayFill: //Sub Procedure - //DUMMY CASE - - break; -case FN_TypeArrayDim: //Number Function - rc_push_num( rc_type_array_dim( TYPEARRAYDIM_ID ) ); - arr_ref_id.clear(); - - break; -case FN_TypeArraySize: //Number Function - rc_push_num( rc_type_array_size( TYPEARRAYSIZE_ID, TYPEARRAYSIZE_ARRAY_DIM ) ); - arr_ref_id.clear(); - - break; -case FN_TypeArrayCopy: //Sub Procedure - rc_free_type(TYPEARRAYCOPY_DST); - rc_type_array_copy( TYPEARRAYCOPY_SRC, TYPEARRAYCOPY_DST ); - - break; -case FN_TypeArrayFill: //Sub Procedure - rc_type_array_fill( TYPEARRAYFILL_SRC, &TYPEARRAYFILL_FDATA ); - - break; -case FN_Abs: //Number Function - rc_push_num(rc_intern_abs( ABS_N )); - break; -case FN_Acos: //Number Function - rc_push_num(rc_intern_aCos( ACOS_N )); - break; -case FN_AndBit: //Number Function - rc_push_num(rc_intern_andBit( ANDBIT_A, ANDBIT_B )); - break; -case FN_Asin: //Number Function - rc_push_num(rc_intern_aSin( ASIN_N )); - break; -case FN_Atan: //Number Function - rc_push_num(rc_intern_aTan( ATAN_N )); - break; -case FN_Bin$: //String Function - rc_push_str(rc_intern_bin( BIN$_N )); - break; -case FN_CInt32: //Number Function - rc_push_num(rc_intern_cint32( CINT32_I )); - break; -case FN_CInt64: //Number Function - rc_push_num(rc_intern_cint64( CINT64_I )); - break; -case FN_Cos: //Number Function - rc_push_num(rc_intern_cos( COS_N )); - break; -case FN_Degrees: //Number Function - rc_push_num(rc_intern_degrees( DEGREES_R )); - break; -case FN_Exp: //Number Function - rc_push_num(rc_intern_exp( EXP_N )); - break; -case FN_Frac: //Number Function - rc_push_num(rc_intern_frac( FRAC_N )); - break; -case FN_Hex$: //String Function - rc_push_str(rc_intern_hex( HEX$_N )); - break; -case FN_HexVal: //Number Function - rc_push_num(rc_intern_hexInt( HEXVAL_N$ )); - break; -case FN_Int: //Number Function - rc_push_num(rc_intern_int( INT_N )); - break; -case FN_Log: //Number Function - rc_push_num(rc_intern_log( LOG_N )); - break; -case FN_Max: //Number Function - rc_push_num(rc_intern_max( MAX_A, MAX_B )); - break; -case FN_Min: //Number Function - rc_push_num(rc_intern_min( MIN_A, MIN_B )); - break; -case FN_OrBit: //Number Function - rc_push_num(rc_intern_orBit( ORBIT_A, ORBIT_B )); - break; -case FN_Radians: //Number Function - rc_push_num(rc_intern_radians( RADIANS_D )); - break; -case FN_Randomize: //Number Function - rc_push_num(rc_intern_randomize( RANDOMIZE_N )); - break; -case FN_Rand: //Number Function - rc_push_num(rc_intern_rand( RAND_N )); - break; -case FN_Round: //Number Function - rc_push_num(rc_intern_round( ROUND_N )); - break; -case FN_Sign: //Number Function - rc_push_num(rc_intern_sign( SIGN_N )); - break; -case FN_Sin: //Number Function - rc_push_num(rc_intern_sin( SIN_N )); - break; -case FN_Sqrt: //Number Function - rc_push_num(rc_intern_sqrt( SQRT_N )); - break; -case FN_Tan: //Number Function - rc_push_num(rc_intern_tan( TAN_N )); - break; -case FN_XOrBit: //Number Function - rc_push_num(rc_intern_xorbit( XORBIT_A, XORBIT_B )); - break; -case FN_GetLineIntersection: //Number Function - rc_push_num(GetLineIntersect( GETLINEINTERSECTION_P0_X, GETLINEINTERSECTION_P0_Y, GETLINEINTERSECTION_P1_X, GETLINEINTERSECTION_P1_Y, GETLINEINTERSECTION_P2_X, GETLINEINTERSECTION_P2_Y, GETLINEINTERSECTION_P3_X, GETLINEINTERSECTION_P3_Y, &GETLINEINTERSECTION_I_X, &GETLINEINTERSECTION_I_Y )); - break; -case FN_Interpolate: //Number Function - rc_push_num(Interpolate( INTERPOLATE_MIN_A, INTERPOLATE_MAX_A, INTERPOLATE_MID_A, INTERPOLATE_MIN_B, INTERPOLATE_MAX_B )); - break; -case FN_ATan2: //Number Function - rc_push_num(atan2( ATAN2_Y, ATAN2_X )); - break; -case FN_PointInQuad: //Number Function - rc_push_num(PointInQuad( POINTINQUAD_X, POINTINQUAD_Y, POINTINQUAD_X1, POINTINQUAD_Y1, POINTINQUAD_X2, POINTINQUAD_Y2, POINTINQUAD_X3, POINTINQUAD_Y3, POINTINQUAD_X4, POINTINQUAD_Y4 )); - break; -case FN_PointInTri: //Number Function - rc_push_num(PointInTri( POINTINTRI_X, POINTINTRI_Y, POINTINTRI_X1, POINTINTRI_Y1, POINTINTRI_X2, POINTINTRI_Y2, POINTINTRI_X3, POINTINTRI_Y3 )); - break; -case FN_Distance2D: //Number Function - rc_push_num(Distance2D( DISTANCE2D_X1, DISTANCE2D_Y1, DISTANCE2D_X2, DISTANCE2D_Y2 )); - break; -case FN_Distance3D: //Number Function - rc_push_num(Distance3D( DISTANCE3D_X1, DISTANCE3D_Y1, DISTANCE3D_Z1, DISTANCE3D_X2, DISTANCE3D_Y2, DISTANCE3D_Z2 )); - break; -case FN_GetCircleLineIntersection: //Number Function - rc_push_num(GetCircleLineIntersection( GETCIRCLELINEINTERSECTION_CIRCLE_X, GETCIRCLELINEINTERSECTION_CIRCLE_Y, GETCIRCLELINEINTERSECTION_RADIUS, GETCIRCLELINEINTERSECTION_X1, GETCIRCLELINEINTERSECTION_Y1, GETCIRCLELINEINTERSECTION_X2, GETCIRCLELINEINTERSECTION_Y2, &GETCIRCLELINEINTERSECTION_IX1, &GETCIRCLELINEINTERSECTION_IY1, &GETCIRCLELINEINTERSECTION_IX2, &GETCIRCLELINEINTERSECTION_IY2 )); - break; -case FN_GetLinePlaneIntersection: //Number Function - rc_push_num(GetLinePlaneIntersection( &GETLINEPLANEINTERSECTION_LINE_POINT, &GETLINEPLANEINTERSECTION_LINE_DIRECTION, &GETLINEPLANEINTERSECTION_PLANE_POINT_1, &GETLINEPLANEINTERSECTION_PLANE_POINT_2, &GETLINEPLANEINTERSECTION_PLANE_POINT_3, &GETLINEPLANEINTERSECTION_INTERSECTION )); - break; -case FN_Asc: //Number Function - rc_push_num(rc_intern_asc( ASC_C$ )); - break; -case FN_Chr$: //String Function - rc_push_str(rc_intern_chr( CHR$_N )); - break; -case FN_Insert$: //String Function - rc_push_str(rc_intern_insert( INSERT$_SRC$, INSERT$_TGT$, INSERT$_POS )); - break; -case FN_InStr: //Number Function - rc_push_num(rc_intern_instr( INSTR_SRC$, INSTR_SUBSTR$ )); - break; -case FN_Lcase$: //String Function - rc_push_str(rc_intern_lcase( LCASE$_SRC$ )); - break; -case FN_Left$: //String Function - rc_push_str(rc_intern_left( LEFT$_SRC$, LEFT$_N )); - break; -case FN_Length: //Number Function - rc_push_num(rc_intern_length( LENGTH_SRC$ )); - break; -case FN_Len: //Number Function - rc_push_num(rc_intern_length( LEN_SRC$ )); - break; -case FN_Ltrim$: //String Function - rc_push_str(rc_intern_ltrim( LTRIM$_SRC$ )); - break; -case FN_Mid$: //String Function - rc_push_str(rc_intern_mid( MID$_SRC$, MID$_START, MID$_N )); - break; -case FN_ReplaceSubstr$: //String Function - rc_push_str(rc_intern_replaceSubstr( REPLACESUBSTR$_SRC$, REPLACESUBSTR$_RPC$, REPLACESUBSTR$_POS )); - break; -case FN_Replace$: //String Function - rc_push_str(rc_intern_replace( REPLACE$_SRC$, REPLACE$_TGT$, REPLACE$_RPC$ )); - break; -case FN_Reverse$: //String Function - rc_push_str(rc_intern_reverse( REVERSE$_SRC$ )); - break; -case FN_Right$: //String Function - rc_push_str(rc_intern_right( RIGHT$_SRC$, RIGHT$_N )); - break; -case FN_Rtrim$: //String Function - rc_push_str(rc_intern_rtrim( RTRIM$_SRC$ )); - break; -case FN_StringFill$: //String Function - rc_push_str(rc_intern_stringfill( STRINGFILL$_SRC$, STRINGFILL$_N )); - break; -case FN_Str$: //String Function - rc_push_str(rc_intern_str( STR$_N )); - break; -case FN_Str_F$: //String Function - rc_push_str(rc_intern_str_f( STR_F$_N )); - break; -case FN_Str_S$: //String Function - rc_push_str(rc_intern_str_s( STR_S$_N )); - break; -case FN_Tally: //Number Function - rc_push_num(rc_intern_tally( TALLY_SRC$, TALLY_SUBSTR$ )); - break; -case FN_Trim$: //String Function - rc_push_str(rc_intern_trim( TRIM$_SRC$ )); - break; -case FN_Ucase$: //String Function - rc_push_str(rc_intern_ucase( UCASE$_SRC$ )); - break; -case FN_Val: //Number Function - rc_push_num(rc_intern_val( VAL_N$ )); - break; -case FN_Size: //Number Function - rc_push_num(rc_intern_size( SIZE_S$ )); - break; -case FN_BufferFromString: //Number Function - rc_push_num(rc_intern_bufferFromString( BUFFERFROMSTRING_S$, &BUFFERFROMSTRING_BUFFER )); - break; -case FN_StringFromBuffer$: //String Function - rc_push_str(rc_intern_stringFromBuffer( &STRINGFROMBUFFER$_BUFFER, STRINGFROMBUFFER$_BUFFER_SIZE )); - break; -case FN_CreateStack_N: //Number Function - rc_push_num(rc_intern_createStack_N( )); - break; -case FN_CreateStack_S: //Number Function - rc_push_num(rc_intern_createStack_S( )); - break; -case FN_ClearStack_N: //Sub Procedure - rc_intern_clearStack_N( CLEARSTACK_N_NUM_STACK ); - break; -case FN_ClearStack_S: //Sub Procedure - rc_intern_clearStack_S( CLEARSTACK_S_STR_STACK ); - break; -case FN_DeleteStack_N: //Sub Procedure - rc_intern_deleteStack_N( DELETESTACK_N_NUM_STACK ); - break; -case FN_DeleteStack_S: //Sub Procedure - rc_intern_deleteStack_S( DELETESTACK_S_STR_STACK ); - break; -case FN_Push_N: //Sub Procedure - rc_intern_push_n( PUSH_N_NUM_STACK, PUSH_N_N ); - break; -case FN_Pop_N: //Number Function - rc_push_num(rc_intern_pop_n( POP_N_NUM_STACK )); - break; -case FN_Push_S: //Sub Procedure - rc_intern_push_s( PUSH_S_STR_STACK, PUSH_S_S$ ); - break; -case FN_Pop_S$: //String Function - rc_push_str(rc_intern_pop_s( POP_S$_STR_STACK )); - break; -case FN_Stack_Size_N: //Number Function - rc_push_num(rc_intern_n_stack_size( STACK_SIZE_N_NUM_STACK )); - break; -case FN_Stack_Size_S: //Number Function - rc_push_num(rc_intern_s_stack_size( STACK_SIZE_S_STR_STACK )); - break; -case FN_OpenFile: //Number Function - rc_push_num(rc_intern_fileOpen( OPENFILE_FILENAME$, OPENFILE_MODE )); - break; -case FN_CloseFile: //Sub Procedure - rc_intern_fileClose( CLOSEFILE_STREAM ); - break; -case FN_ReadByte: //Number Function - rc_push_num(rc_intern_fileReadByte( READBYTE_STREAM )); - break; -case FN_WriteByte: //Sub Procedure - rc_intern_fileWriteByte( WRITEBYTE_STREAM, WRITEBYTE_BYTE ); - break; -case FN_ReadLine$: //String Function - rc_push_str(rc_intern_fileReadLine( READLINE$_STREAM )); - break; -case FN_Write: //Sub Procedure - rc_intern_fileWrite( WRITE_STREAM, WRITE_TXT$ ); - break; -case FN_WriteLine: //Sub Procedure - rc_intern_fileWriteLine( WRITELINE_STREAM, WRITELINE_TXT$ ); - break; -case FN_CopyFile: //Sub Procedure - rc_intern_fileCopy( COPYFILE_SRC$, COPYFILE_DST$ ); - break; -case FN_RemoveFile: //Number Function - rc_push_num(rc_intern_fileDelete( REMOVEFILE_FILENAME$ )); - break; -case FN_FileExists: //Number Function - rc_push_num(rc_intern_fileExist( FILEEXISTS_FILENAME$ )); - break; -case FN_MoveFile: //Number Function - rc_push_num(rc_intern_fileMove( MOVEFILE_SRC$, MOVEFILE_DST$ )); - break; -case FN_RenameFile: //Number Function - rc_push_num(rc_intern_fileRename( RENAMEFILE_SRC$, RENAMEFILE_DST$ )); - break; -case FN_FileLength: //Number Function - rc_push_num(rc_intern_fileLength( FILELENGTH_FILENAME$ )); - break; -case FN_Tell: //Number Function - rc_push_num(rc_intern_fileTell( TELL_STREAM )); - break; -case FN_Seek: //Number Function - rc_push_num(rc_intern_fileSeek( SEEK_STREAM, SEEK_POS )); - break; -case FN_EOF: //Number Function - rc_push_num(rc_intern_eof( EOF_STREAM )); - break; -case FN_WriteByteBuffer: //Number Function - rc_push_num(rc_intern_fileWriteByteBuffer( WRITEBYTEBUFFER_STREAM, &WRITEBYTEBUFFER_BUF, WRITEBYTEBUFFER_BUF_SIZE )); - break; -case FN_ReadByteBuffer: //Number Function - rc_push_num(rc_intern_fileReadByteBuffer( READBYTEBUFFER_STREAM, &READBYTEBUFFER_BUF, READBYTEBUFFER_BUF_SIZE )); - break; -case FN_ChangeDir: //Sub Procedure - rc_intern_dirChange( CHANGEDIR_P$ ); - break; -case FN_DirExists: //Number Function - rc_push_num(rc_intern_dirExist( DIREXISTS_P$ )); - break; -case FN_DirFirst$: //String Function - rc_push_str(rc_intern_dirFirst( )); - break; -case FN_Dir$: //String Function - rc_push_str(rc_intern_dir( )); - break; -case FN_DirNext$: //String Function - rc_push_str(rc_intern_dirNext( )); - break; -case FN_MakeDir: //Number Function - rc_push_num(rc_intern_dirCreate( MAKEDIR_P$ )); - break; -case FN_RemoveDir: //Number Function - rc_push_num(rc_intern_dirDelete( REMOVEDIR_P$ )); - break; -case FN_Date$: //String Function - rc_push_str(rc_intern_date( )); - break; -case FN_Easter$: //String Function - rc_push_str(rc_intern_easter( EASTER$_YEAR )); - break; -case FN_Ticks: //Number Function - rc_push_num(rc_intern_ticks( )); - break; -case FN_Time$: //String Function - rc_push_str(rc_intern_time( )); - break; -case FN_Timer: //Number Function - rc_push_num(rc_intern_timer( )); - break; -case FN_Wait: //Sub Procedure - rc_intern_wait( WAIT_M_SEC ); - break; -case FN_OpenWindow: //Number Function - rc_push_num(rc_windowOpen( OPENWINDOW_TITLE$, OPENWINDOW_W, OPENWINDOW_H, OPENWINDOW_FULLSCREEN, OPENWINDOW_VSYNC )); - break; -case FN_OpenWindowEx: //Number Function - rc_push_num(rc_windowOpenEx( OPENWINDOWEX_TITLE$, OPENWINDOWEX_X, OPENWINDOWEX_Y, OPENWINDOWEX_W, OPENWINDOWEX_H, OPENWINDOWEX_MODE, OPENWINDOWEX_AA, OPENWINDOWEX_STENCIL_BUFFER, OPENWINDOWEX_VSYNC )); - break; -case FN_CloseWindow: //Sub Procedure - rc_closeWindow_hw( ); - break; -case FN_RaiseWindow: //Sub Procedure - rc_raiseWindow( ); - break; -case FN_Update: //Sub Procedure - rc_update( ); - break; -case FN_Cls: //Sub Procedure - rc_cls( ); - break; -case FN_SetClearColor: //Sub Procedure - rc_setClearColor( SETCLEARCOLOR_C ); - break; -case FN_ShowWindow: //Sub Procedure - rc_showWindow( ); - break; -case FN_HideWindow: //Sub Procedure - rc_hideWindow( ); - break; -case FN_SetWindowTitle: //Sub Procedure - rc_setWindowTitle( SETWINDOWTITLE_TITLE$ ); - break; -case FN_WindowTitle$: //String Function - rc_push_str(rc_getWindowTitle( )); - break; -case FN_SetWindowPosition: //Sub Procedure - rc_setWindowPosition( SETWINDOWPOSITION_X, SETWINDOWPOSITION_Y ); - break; -case FN_GetWindowPosition: //Sub Procedure - rc_getWindowPosition( &GETWINDOWPOSITION_X, &GETWINDOWPOSITION_Y ); - break; -case FN_SetWindowSize: //Sub Procedure - rc_setWindowSize( SETWINDOWSIZE_W, SETWINDOWSIZE_H ); - break; -case FN_GetWindowSize: //Sub Procedure - rc_getWindowSize( &GETWINDOWSIZE_W, &GETWINDOWSIZE_H ); - break; -case FN_SetWindowMinSize: //Sub Procedure - rc_setWindowMinSize( SETWINDOWMINSIZE_W, SETWINDOWMINSIZE_H ); - break; -case FN_GetWindowMinSize: //Sub Procedure - rc_getWindowMinSize( &GETWINDOWMINSIZE_W, &GETWINDOWMINSIZE_H ); - break; -case FN_SetWindowMaxSize: //Sub Procedure - rc_setWindowMaxSize( SETWINDOWMAXSIZE_W, SETWINDOWMAXSIZE_H ); - break; -case FN_GetWindowMaxSize: //Sub Procedure - rc_getWindowMaxSize( &GETWINDOWMAXSIZE_W, &GETWINDOWMAXSIZE_H ); - break; -case FN_WindowIsFullscreen: //Number Function - rc_push_num(rc_windowIsFullscreen( )); - break; -case FN_WindowIsVisible: //Number Function - rc_push_num(rc_windowIsVisible( )); - break; -case FN_WindowIsBordered: //Number Function - rc_push_num(rc_windowIsBordered( )); - break; -case FN_WindowIsResizable: //Number Function - rc_push_num(rc_windowIsResizable( )); - break; -case FN_WindowIsMinimized: //Number Function - rc_push_num(rc_windowIsMinimized( )); - break; -case FN_WindowIsMaximized: //Number Function - rc_push_num(rc_windowIsMaximized( )); - break; -case FN_WindowHasInputFocus: //Number Function - rc_push_num(rc_windowHasInputFocus( )); - break; -case FN_WindowHasMouseFocus: //Number Function - rc_push_num(rc_windowHasMouseFocus( )); - break; -case FN_SetWindowFullscreen: //Sub Procedure - rc_setWindowFullscreen( SETWINDOWFULLSCREEN_FLAG ); - break; -case FN_MaximizeWindow: //Sub Procedure - rc_maximizeWindow( ); - break; -case FN_MinimizeWindow: //Sub Procedure - rc_minimizeWindow( ); - break; -case FN_SetWindowBordered: //Sub Procedure - rc_setWindowBordered( SETWINDOWBORDERED_FLAG ); - break; -case FN_WindowClip: //Number Function - rc_push_num(rc_windowClip( WINDOWCLIP_X, WINDOWCLIP_Y, WINDOWCLIP_W, WINDOWCLIP_H )); - break; -case FN_WindowExists: //Number Function - rc_push_num(rc_windowExists( )); - break; -case FN_WindowEvent_Close: //Number Function - rc_push_num(rc_windowEvent_Close( )); - break; -case FN_WindowEvent_Maximize: //Number Function - rc_push_num(rc_windowEvent_Maximize( )); - break; -case FN_WindowEvent_Minimize: //Number Function - rc_push_num(rc_windowEvent_Minimize( )); - break; -case FN_FPS: //Number Function - rc_push_num(rc_FPS( )); - break; -case FN_SetWindowIcon: //Sub Procedure - rc_setWindowIcon( SETWINDOWICON_SLOT ); - break; -case FN_WindowEvent_Resize: //Number Function - rc_push_num(rc_windowEvent_Resize( )); - break; -case FN_SetWindowAutoClose: //Sub Procedure - rc_setWindowAutoClose( SETWINDOWAUTOCLOSE_EXIT_ON_CLOSE ); - break; -case FN_SetWindowResizable: //Sub Procedure - rc_setWindowResizable( SETWINDOWRESIZABLE_FLAG ); - break; -case FN_WindowMode: //Number Function - rc_push_num(rc_windowMode( WINDOWMODE_VISIBLE, WINDOWMODE_FULLSCREEN, WINDOWMODE_RESIZABLE, WINDOWMODE_BORDERLESS, WINDOWMODE_HIGHDPI )); - break; -case FN_getWindowMode: //Number Function - rc_push_num(rc_getWindowMode( )); - break; -case FN_RestoreWindow: //Sub Procedure - rc_restoreWindow( ); - break; -case FN_GrabInput: //Sub Procedure - rc_grabInput( GRABINPUT_FLAG ); - break; -case FN_SetWindowAlwaysOnTop: //Sub Procedure - rc_setWindowAlwaysOnTop( SETWINDOWALWAYSONTOP_FLAG ); - break; -case FN_SetMouseRelative: //Sub Procedure - rc_setMouseRelative( SETMOUSERELATIVE_FLAG ); - break; -case FN_FlashWindow: //Number Function - rc_push_num(rc_flashWindow( FLASHWINDOW_FLAG )); - break; -case FN_WindowIsGrabbed: //Number Function - rc_push_num(rc_windowIsGrabbed( )); - break; -case FN_PreUpdate: //Sub Procedure - rc_preUpdate( ); - break; -case FN_OpenCanvas: //Number Function - rc_push_num(rc_canvasOpen( OPENCANVAS_W, OPENCANVAS_H, OPENCANVAS_VIEWPORT_X, OPENCANVAS_VIEWPORT_Y, OPENCANVAS_VIEWPORT_W, OPENCANVAS_VIEWPORT_H, OPENCANVAS_MODE )); - break; -case FN_CloseCanvas: //Sub Procedure - rc_canvasClose( CLOSECANVAS_C_NUM ); - break; -case FN_OpenCanvas3D: //Number Function - rc_push_num(rc_canvasOpen3D( OPENCANVAS3D_VIEWPORT_X, OPENCANVAS3D_VIEWPORT_Y, OPENCANVAS3D_VIEWPORT_W, OPENCANVAS3D_VIEWPORT_H, OPENCANVAS3D_MODE )); - break; -case FN_SetCanvasVisible: //Sub Procedure - rc_setCanvasVisible( SETCANVASVISIBLE_C_NUM, SETCANVASVISIBLE_FLAG ); - break; -case FN_CanvasIsVisible: //Number Function - rc_push_num(rc_canvasIsVisible( CANVASISVISIBLE_C_NUM )); - break; -case FN_SetCanvasViewport: //Sub Procedure - rc_setCanvasViewport( SETCANVASVIEWPORT_CNUM, SETCANVASVIEWPORT_X, SETCANVASVIEWPORT_Y, SETCANVASVIEWPORT_W, SETCANVASVIEWPORT_H ); - break; -case FN_GetCanvasViewport: //Sub Procedure - rc_getCanvasViewport( GETCANVASVIEWPORT_C_NUM, &GETCANVASVIEWPORT_X, &GETCANVASVIEWPORT_Y, &GETCANVASVIEWPORT_W, &GETCANVASVIEWPORT_H ); - break; -case FN_Canvas: //Sub Procedure - rc_setActiveCanvas( CANVAS_C_NUM ); - break; -case FN_SetCanvasOffset: //Sub Procedure - rc_setCanvasOffset( SETCANVASOFFSET_C_NUM, SETCANVASOFFSET_X, SETCANVASOFFSET_Y ); - break; -case FN_GetCanvasOffset: //Sub Procedure - rc_getCanvasOffset( GETCANVASOFFSET_C_NUM, &GETCANVASOFFSET_X, &GETCANVASOFFSET_Y ); - break; -case FN_GetCanvasSize: //Sub Procedure - rc_getCanvasSize( GETCANVASSIZE_C_NUM, &GETCANVASSIZE_W, &GETCANVASSIZE_H ); - break; -case FN_ClearCanvas: //Sub Procedure - rc_clearCanvas( ); - break; -case FN_SetCanvasAlpha: //Sub Procedure - rc_setCanvasAlpha( SETCANVASALPHA_C_NUM, SETCANVASALPHA_A ); - break; -case FN_GetCanvasAlpha: //Number Function - rc_push_num(rc_canvasAlpha( GETCANVASALPHA_C_NUM )); - break; -case FN_SetCanvasColorMod: //Sub Procedure - rc_setCanvasColorMod( SETCANVASCOLORMOD_C_NUM, SETCANVASCOLORMOD_C ); - break; -case FN_GetCanvasColorMod: //Number Function - rc_push_num(rc_getCanvasColorMod( GETCANVASCOLORMOD_C_NUM )); - break; -case FN_CloneCanvas: //Number Function - rc_push_num(rc_cloneCanvas( CLONECANVAS_C_NUM, CLONECANVAS_MODE )); - break; -case FN_SetCanvasZ: //Sub Procedure - rc_setCanvasZ( SETCANVASZ_C_NUM, SETCANVASZ_Z ); - break; -case FN_CanvasZ: //Number Function - rc_push_num(rc_getCanvasZ( CANVASZ_C_NUM )); - break; -case FN_CanvasClip: //Number Function - rc_push_num(rc_canvasClip( CANVASCLIP_X, CANVASCLIP_Y, CANVASCLIP_W, CANVASCLIP_H )); - break; -case FN_ActiveCanvas: //Number Function - rc_push_num(rc_activeCanvas( )); - break; -case FN_SetCanvasPhysics2D: //Sub Procedure - rc_setCanvasPhysics2D( SETCANVASPHYSICS2D_C_NUM, SETCANVASPHYSICS2D_STATE ); - break; -case FN_OpenCanvasSpriteLayer: //Number Function - rc_push_num(rc_canvasOpenSpriteLayer( OPENCANVASSPRITELAYER_W, OPENCANVASSPRITELAYER_H, OPENCANVASSPRITELAYER_VIEWPORT_X, OPENCANVASSPRITELAYER_VIEWPORT_Y, OPENCANVASSPRITELAYER_VIEWPORT_W, OPENCANVASSPRITELAYER_VIEWPORT_H )); - break; -case FN_Circle: //Sub Procedure - rc_drawCircle( CIRCLE_X, CIRCLE_Y, CIRCLE_RADIUS ); - break; -case FN_CircleFill: //Sub Procedure - rc_drawCircleFill( CIRCLEFILL_X, CIRCLEFILL_Y, CIRCLEFILL_RADIUS ); - break; -case FN_Ellipse: //Sub Procedure - rc_drawEllipse( ELLIPSE_X, ELLIPSE_Y, ELLIPSE_RX, ELLIPSE_RY ); - break; -case FN_EllipseFill: //Sub Procedure - rc_drawEllipseFill( ELLIPSEFILL_X, ELLIPSEFILL_Y, ELLIPSEFILL_RX, ELLIPSEFILL_RY ); - break; -case FN_FloodFill: //Sub Procedure - rc_floodFill( FLOODFILL_X, FLOODFILL_Y ); - break; -case FN_GetPixel: //Number Function - rc_push_num(rc_getPixel( GETPIXEL_X, GETPIXEL_Y )); - break; -case FN_SetColor: //Sub Procedure - rc_setColor( SETCOLOR_C ); - break; -case FN_Line: //Sub Procedure - rc_drawLine( LINE_X1, LINE_Y1, LINE_X2, LINE_Y2 ); - break; -case FN_Poly: //Sub Procedure - rc_poly( POLY_N, &POLY_X, &POLY_Y ); - break; -case FN_Rect: //Sub Procedure - rc_drawRect( RECT_X, RECT_Y, RECT_W, RECT_H ); - break; -case FN_RectFill: //Sub Procedure - rc_drawRectFill( RECTFILL_X, RECTFILL_Y, RECTFILL_W, RECTFILL_H ); - break; -case FN_RGB: //Number Function - rc_push_num(rc_rgb( RGB_R, RGB_G, RGB_B )); - break; -case FN_RGBA: //Number Function - rc_push_num(rc_rgba( RGBA_R, RGBA_G, RGBA_B, RGBA_A )); - break; -case FN_Pset: //Sub Procedure - rc_drawPixel( PSET_X, PSET_Y ); - break; -case FN_LoadImage: //Number Function - rc_push_num(rc_loadImage( LOADIMAGE_IMG$ )); - break; -case FN_LoadImageEx: //Number Function - rc_push_num(rc_loadImageEx( LOADIMAGEEX_IMG$, LOADIMAGEEX_COLKEY )); - break; -case FN_createImage: //Number Function - rc_push_num(rc_createImage( CREATEIMAGE_W, CREATEIMAGE_H, &CREATEIMAGE_BUFFER )); - break; -case FN_createImageEx: //Number Function - rc_push_num(rc_createImageEx( CREATEIMAGEEX_W, CREATEIMAGEEX_H, &CREATEIMAGEEX_BUFFER, CREATEIMAGEEX_COLOR )); - break; -case FN_BufferFromImage: //Sub Procedure - rc_getImageBuffer( BUFFERFROMIMAGE_SLOT, &BUFFERFROMIMAGE_BUFFER ); - break; -case FN_ImageExists: //Number Function - rc_push_num(rc_imageExists( IMAGEEXISTS_SLOT )); - break; -case FN_ColorKey: //Sub Procedure - rc_setColorKey( COLORKEY_SLOT, COLORKEY_C ); - break; -case FN_setBilinearFilter: //Sub Procedure - rc_setBilinearFilter( SETBILINEARFILTER_FLAG ); - break; -case FN_getBilinearFilter: //Number Function - rc_push_num(rc_getBilinearFilter( )); - break; -case FN_CopyImage: //Number Function - rc_push_num(rc_copyImage( COPYIMAGE_IMG_ID )); - break; -case FN_DeleteImage: //Sub Procedure - rc_deleteImage( DELETEIMAGE_SLOT ); - break; -case FN_SetImageAlpha: //Sub Procedure - rc_setImageAlpha( SETIMAGEALPHA_SLOT, SETIMAGEALPHA_A ); - break; -case FN_GetImageAlpha: //Number Function - rc_push_num(rc_getImageAlpha( GETIMAGEALPHA_IMG_ID )); - break; -case FN_GetImageSize: //Sub Procedure - rc_getImageSize( GETIMAGESIZE_SLOT, &GETIMAGESIZE_W, &GETIMAGESIZE_H ); - break; -case FN_SetBlendMode: //Sub Procedure - rc_setBlendMode( SETBLENDMODE_BLEND_MODE ); - break; -case FN_GetBlendMode: //Number Function - rc_push_num(rc_getBlendMode( )); - break; -case FN_SetImageColorMod: //Sub Procedure - rc_setImageColorMod( SETIMAGECOLORMOD_SLOT, SETIMAGECOLORMOD_C ); - break; -case FN_GetImageColorMod: //Number Function - rc_push_num(rc_getImageColorMod( GETIMAGECOLORMOD_SLOT )); - break; -case FN_DrawImage: //Sub Procedure - rc_drawImage( DRAWIMAGE_SLOT, DRAWIMAGE_X, DRAWIMAGE_Y ); - break; -case FN_DrawImage_Blit: //Sub Procedure - rc_drawImage_Blit( DRAWIMAGE_BLIT_SLOT, DRAWIMAGE_BLIT_X, DRAWIMAGE_BLIT_Y, DRAWIMAGE_BLIT_SRC_X, DRAWIMAGE_BLIT_SRC_Y, DRAWIMAGE_BLIT_SRC_W, DRAWIMAGE_BLIT_SRC_H ); - break; -case FN_DrawImage_BlitEx: //Sub Procedure - rc_drawImage_BlitEx( DRAWIMAGE_BLITEX_SLOT, DRAWIMAGE_BLITEX_X, DRAWIMAGE_BLITEX_Y, DRAWIMAGE_BLITEX_W, DRAWIMAGE_BLITEX_H, DRAWIMAGE_BLITEX_SRC_X, DRAWIMAGE_BLITEX_SRC_Y, DRAWIMAGE_BLITEX_SRC_W, DRAWIMAGE_BLITEX_SRC_H ); - break; -case FN_DrawImage_Rotate: //Sub Procedure - rc_drawImage_Rotate( DRAWIMAGE_ROTATE_SLOT, DRAWIMAGE_ROTATE_X, DRAWIMAGE_ROTATE_Y, DRAWIMAGE_ROTATE_ANGLE ); - break; -case FN_DrawImage_RotateEx: //Sub Procedure - rc_drawImage_RotateEx( DRAWIMAGE_ROTATEEX_SLOT, DRAWIMAGE_ROTATEEX_X, DRAWIMAGE_ROTATEEX_Y, DRAWIMAGE_ROTATEEX_SRC_X, DRAWIMAGE_ROTATEEX_SRC_Y, DRAWIMAGE_ROTATEEX_SRC_W, DRAWIMAGE_ROTATEEX_SRC_H, DRAWIMAGE_ROTATEEX_ANGLE ); - break; -case FN_DrawImage_Zoom: //Sub Procedure - rc_drawImage_Zoom( DRAWIMAGE_ZOOM_SLOT, DRAWIMAGE_ZOOM_X, DRAWIMAGE_ZOOM_Y, DRAWIMAGE_ZOOM_ZX, DRAWIMAGE_ZOOM_ZY ); - break; -case FN_DrawImage_ZoomEx: //Sub Procedure - rc_drawImage_ZoomEx( DRAWIMAGE_ZOOMEX_SLOT, DRAWIMAGE_ZOOMEX_X, DRAWIMAGE_ZOOMEX_Y, DRAWIMAGE_ZOOMEX_SRC_X, DRAWIMAGE_ZOOMEX_SRC_Y, DRAWIMAGE_ZOOMEX_SRC_W, DRAWIMAGE_ZOOMEX_SRC_H, DRAWIMAGE_ZOOMEX_ZX, DRAWIMAGE_ZOOMEX_ZY ); - break; -case FN_DrawImage_Rotozoom: //Sub Procedure - rc_drawImage_Rotozoom( DRAWIMAGE_ROTOZOOM_SLOT, DRAWIMAGE_ROTOZOOM_X, DRAWIMAGE_ROTOZOOM_Y, DRAWIMAGE_ROTOZOOM_ANGLE, DRAWIMAGE_ROTOZOOM_ZX, DRAWIMAGE_ROTOZOOM_ZY ); - break; -case FN_DrawImage_RotozoomEx: //Sub Procedure - 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 ); - break; -case FN_DrawImage_Flip: //Sub Procedure - rc_drawImage_Flip( DRAWIMAGE_FLIP_SLOT, DRAWIMAGE_FLIP_X, DRAWIMAGE_FLIP_Y, DRAWIMAGE_FLIP_H, DRAWIMAGE_FLIP_V ); - break; -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_InKey: //Number Function - rc_push_num(rc_inKey( )); - break; -case FN_Key: //Number Function - rc_push_num(rc_key( KEY_KEY_CODE )); - break; -case FN_WaitKey: //Number Function - rc_push_num(rc_waitKey( )); - break; -case FN_HideMouse: //Sub Procedure - rc_hideMouse( ); - break; -case FN_ShowMouse: //Sub Procedure - rc_showMouse( ); - break; -case FN_MouseIsVisible: //Number Function - rc_push_num(rc_mouseIsVisible( )); - break; -case FN_GetMouse: //Sub Procedure - rc_getMouse( &GETMOUSE_X, &GETMOUSE_Y, &GETMOUSE_MB1, &GETMOUSE_MB2, &GETMOUSE_MB3 ); - break; -case FN_MouseX: //Number Function - rc_push_num(rc_mouseX( )); - break; -case FN_MouseY: //Number Function - rc_push_num(rc_mouseY( )); - break; -case FN_MouseButton: //Number Function - rc_push_num(rc_mouseButton( MOUSEBUTTON_MB )); - break; -case FN_GetMouseWheel: //Sub Procedure - rc_getMouseWheel( &GETMOUSEWHEEL_X_AXIS, &GETMOUSEWHEEL_Y_AXIS ); - break; -case FN_MouseWheelX: //Number Function - rc_push_num(rc_mouseWheelX( )); - break; -case FN_MouseWheelY: //Number Function - rc_push_num(rc_mouseWheelY( )); - break; -case FN_GetGlobalMouse: //Sub Procedure - rc_getGlobalMouse( &GETGLOBALMOUSE_X, &GETGLOBALMOUSE_Y, &GETGLOBALMOUSE_MB1, &GETGLOBALMOUSE_MB2, &GETGLOBALMOUSE_MB3 ); - break; -case FN_GlobalMouseX: //Number Function - rc_push_num(rc_globalMouseX( )); - break; -case FN_GlobalMouseY: //Number Function - rc_push_num(rc_globalMouseY( )); - break; -case FN_WarpMouse: //Sub Procedure - rc_warpMouse( WARPMOUSE_X, WARPMOUSE_Y ); - break; -case FN_WarpMouseGlobal: //Sub Procedure - rc_warpMouseGlobal( WARPMOUSEGLOBAL_X, WARPMOUSEGLOBAL_Y ); - break; -case FN_SetMouseZone: //Sub Procedure - rc_setMouseZone( SETMOUSEZONE_X, SETMOUSEZONE_Y, SETMOUSEZONE_W, SETMOUSEZONE_H ); - break; -case FN_ClearMouseZone: //Sub Procedure - rc_clearMouseZone( ); - break; -case FN_CreateSound: //Number Function - rc_push_num(rc_createSound( &CREATESOUND_BUFFER, CREATESOUND_BUFFER_SIZE, CREATESOUND_VOL )); - break; -case FN_LoadSound: //Number Function - rc_push_num(rc_loadSound( LOADSOUND_SND_FILE$ )); - break; -case FN_LoadMusic: //Sub Procedure - rc_loadMusic( LOADMUSIC_MUSIC_FILE$ ); - break; -case FN_PlaySound: //Sub Procedure - rc_playSound( PLAYSOUND_SLOT, PLAYSOUND_CHANNEL, PLAYSOUND_LOOPS ); - break; -case FN_PlaySoundTimed: //Sub Procedure - rc_playSoundTimed( PLAYSOUNDTIMED_SLOT, PLAYSOUNDTIMED_CHANNEL, PLAYSOUNDTIMED_LOOPS, PLAYSOUNDTIMED_MS ); - break; -case FN_PlayMusic: //Sub Procedure - rc_playMusic( PLAYMUSIC_MLOOPS ); - break; -case FN_PauseSound: //Sub Procedure - rc_pauseSound( PAUSESOUND_CHANNEL ); - break; -case FN_ResumeSound: //Sub Procedure - rc_resumeSound( RESUMESOUND_CHANNEL ); - break; -case FN_PauseMusic: //Sub Procedure - rc_pauseMusic( ); - break; -case FN_ResumeMusic: //Sub Procedure - rc_resumeMusic( ); - break; -case FN_DeleteSound: //Sub Procedure - rc_deleteSound( DELETESOUND_SLOT ); - break; -case FN_DeleteMusic: //Sub Procedure - rc_deleteMusic( ); - break; -case FN_FadeMusicIn: //Sub Procedure - rc_fadeMusicIn( FADEMUSICIN_FADE_TIME, FADEMUSICIN_LOOPS ); - break; -case FN_FadeMusicOut: //Sub Procedure - rc_fadeMusicOut( FADEMUSICOUT_FADE_TIME ); - break; -case FN_MusicExists: //Number Function - rc_push_num(rc_musicExists( )); - break; -case FN_SetMusicVolume: //Sub Procedure - rc_setMusicVolume( SETMUSICVOLUME_VOL ); - break; -case FN_GetMusicVolume: //Number Function - rc_push_num(rc_getMusicVolume( )); - break; -case FN_SetMusicPosition: //Sub Procedure - rc_setMusicPosition( SETMUSICPOSITION_POS ); - break; -case FN_GetMusicPosition: //Number Function - rc_push_num(rc_getMusicPosition( )); - break; -case FN_RewindMusic: //Sub Procedure - rc_rewindMusic( ); - break; -case FN_SetSoundChannels: //Sub Procedure - rc_setSoundChannels( SETSOUNDCHANNELS_MAX_CHANNELS ); - break; -case FN_NumSoundChannels: //Number Function - rc_push_num(rc_getSoundChannels( )); - break; -case FN_SoundIsEnabled: //Number Function - rc_push_num(rc_soundIsEnabled( )); - break; -case FN_SoundExists: //Number Function - rc_push_num(rc_soundExists( SOUNDEXISTS_SLOT )); - break; -case FN_SetChannelVolume: //Sub Procedure - rc_setChannelVolume( SETCHANNELVOLUME_CHANNEL, SETCHANNELVOLUME_VOL ); - break; -case FN_GetChannelVolume: //Number Function - rc_push_num(rc_getChannelVolume( GETCHANNELVOLUME_CHANNEL )); - break; -case FN_SetSoundVolume: //Sub Procedure - rc_setSoundVolume( SETSOUNDVOLUME_SLOT, SETSOUNDVOLUME_VOL ); - break; -case FN_GetSoundVolume: //Number Function - rc_push_num(rc_getSoundVolume( GETSOUNDVOLUME_SLOT )); - break; -case FN_StopMusic: //Sub Procedure - rc_stopMusic( ); - break; -case FN_StopSound: //Sub Procedure - rc_stopSound( STOPSOUND_CHANNEL ); - break; -case FN_SetChannelPanning: //Number Function - rc_push_num(rc_setChannelPanning( SETCHANNELPANNING_CHANNEL, SETCHANNELPANNING_LEFT_VALUE, SETCHANNELPANNING_RIGHT_VALUE )); - break; -case FN_SetChannelDistance: //Number Function - rc_push_num(rc_setChannelDistance( SETCHANNELDISTANCE_CHANNEL, SETCHANNELDISTANCE_DIST_VALUE )); - break; -case FN_ChannelIsPlaying: //Number Function - rc_push_num(rc_channelIsPlaying( CHANNELISPLAYING_CHANNEL )); - break; -case FN_ChannelIsPaused: //Number Function - rc_push_num(rc_channelIsPaused( CHANNELISPAUSED_CHANNEL )); - break; -case FN_QueryAudioSpec: //Number Function - rc_push_num(rc_queryAudioSpec( &QUERYAUDIOSPEC_FREQ, &QUERYAUDIOSPEC_FORMAT, &QUERYAUDIOSPEC_CHANNELS )); - break; -case FN_MusicIsPlaying: //Number Function - rc_push_num(rc_musicIsPlaying( )); - break; -case FN_SetChannelSpacePosition: //Number Function - rc_push_num(rc_setChannelSpacePosition( SETCHANNELSPACEPOSITION_CHANNEL, SETCHANNELSPACEPOSITION_ANGLE, SETCHANNELSPACEPOSITION_DISTANCE )); - break; -case FN_NumJoysticks: //Number Function - rc_push_num(rc_getNumJoysticks( )); - break; -case FN_NumJoyAxes: //Number Function - rc_push_num(rc_numJoyAxes( NUMJOYAXES_JOY_NUM )); - break; -case FN_NumJoyButtons: //Number Function - rc_push_num(rc_numJoyButtons( NUMJOYBUTTONS_JOY_NUM )); - break; -case FN_NumJoyHats: //Number Function - rc_push_num(rc_numJoyHats( NUMJOYHATS_JOY_NUM )); - break; -case FN_NumJoyTrackBalls: //Number Function - rc_push_num(rc_numJoyTrackBalls( NUMJOYTRACKBALLS_JOY_NUM )); - break; -case FN_JoyAxis: //Number Function - rc_push_num(rc_joyAxis( JOYAXIS_JOY_NUM, JOYAXIS_JOY_AXIS )); - break; -case FN_JoyButton: //Number Function - rc_push_num(rc_joyButton( JOYBUTTON_JOY_NUM, JOYBUTTON_JOY_BUTTON )); - break; -case FN_JoyHat: //Number Function - rc_push_num(rc_joyHat( JOYHAT_JOY_NUM, JOYHAT_JOY_HAT )); - break; -case FN_GetJoyTrackBall: //Sub Procedure - rc_getJoyTrackBall( GETJOYTRACKBALL_JOY_NUM, GETJOYTRACKBALL_BALL, &GETJOYTRACKBALL_DX, &GETJOYTRACKBALL_DY ); - break; -case FN_JoyName$: //String Function - rc_push_str(rc_joyName( JOYNAME$_JOY_NUM )); - break; -case FN_JoystickIsConnected: //Number Function - rc_push_num(rc_joystickIsConnected( JOYSTICKISCONNECTED_JOY_NUM )); - break; -case FN_JoyRumblePlay: //Sub Procedure - rc_joyRumblePlay( JOYRUMBLEPLAY_JOY_NUM, JOYRUMBLEPLAY_STRENGTH, JOYRUMBLEPLAY_DURATION ); - break; -case FN_JoyRumbleStop: //Sub Procedure - rc_joyRumbleStop( JOYRUMBLESTOP_JOY_NUM ); - break; -case FN_JoystickIsHaptic: //Number Function - rc_push_num(rc_joystickIsHaptic( JOYSTICKISHAPTIC_JOY_NUM )); - break; -case FN_LoadFont: //Number Function - rc_push_num(rc_loadFont( LOADFONT_FNT_FILE$, LOADFONT_FONT_SIZE )); - break; -case FN_DeleteFont: //Sub Procedure - rc_deleteFont( DELETEFONT_SLOT ); - break; -case FN_FontExists: //Number Function - rc_push_num(rc_fontExists( FONTEXISTS_SLOT )); - break; -case FN_SetFont: //Sub Procedure - rc_setFont( SETFONT_SLOT ); - break; -case FN_DrawText: //Sub Procedure - rc_drawText( DRAWTEXT_TXT$, DRAWTEXT_X, DRAWTEXT_Y ); - break; -case FN_GetTextSize: //Sub Procedure - rc_getTextSize( GETTEXTSIZE_TXT$, &GETTEXTSIZE_W, &GETTEXTSIZE_H ); - break; -case FN_TextWidth: //Number Function - rc_push_num(rc_getTextWidth( TEXTWIDTH_TXT$ )); - break; -case FN_TextHeight: //Number Function - rc_push_num(rc_getTextHeight( TEXTHEIGHT_TXT$ )); - break; -case FN_TouchPressure: //Number Function - rc_push_num(rc_touchPressure( )); - break; -case FN_GetTouch: //Sub Procedure - rc_getTouch( &GETTOUCH_STATUS, &GETTOUCH_X, &GETTOUCH_Y, &GETTOUCH_DX, &GETTOUCH_DY ); - break; -case FN_GetMultiTouch: //Sub Procedure - rc_getMultiTouch( &GETMULTITOUCH_STATUS, &GETMULTITOUCH_X, &GETMULTITOUCH_Y, &GETMULTITOUCH_FINGERS, &GETMULTITOUCH_DIST, &GETMULTITOUCH_THETA ); - break; -case FN_GetTouchFinger: //Sub Procedure - rc_getTouchFinger( GETTOUCHFINGER_FINGER, &GETTOUCHFINGER_X, &GETTOUCHFINGER_Y, &GETTOUCHFINGER_PRESSURE ); - break; -case FN_NumFingers: //Number Function - rc_push_num(rc_numFingers( )); - break; -case FN_GetAccel: //Sub Procedure - rc_getAccel( GETACCEL_ACCEL_NUM, &GETACCEL_X, &GETACCEL_Y, &GETACCEL_Z ); - break; -case FN_AccelName$: //String Function - rc_push_str(rc_accelName( ACCELNAME$_ACCEL_NUM )); - break; -case FN_NumAccels: //Number Function - rc_push_num(rc_numAccels( )); - break; -case FN_GetGyro: //Sub Procedure - rc_getGyro( GETGYRO_GYRO_NUM, &GETGYRO_X, &GETGYRO_Y, &GETGYRO_Z ); - break; -case FN_GyroName$: //String Function - rc_push_str(rc_gyroName( GYRONAME$_GYRO_NUM )); - break; -case FN_NumGyros: //Number Function - rc_push_num(rc_numGyros( )); - break; -case FN_CheckSockets: //Number Function - rc_push_num(rc_net_checkSockets( CHECKSOCKETS_TIMEOUT_MS )); - break; -case FN_TCP_SocketReady: //Number Function - rc_push_num(rc_net_tcp_socketReady( TCP_SOCKETREADY_SOCKET )); - break; -case FN_UDP_SocketReady: //Number Function - rc_push_num(rc_net_udp_socketReady( UDP_SOCKETREADY_SOCKET )); - break; -case FN_TCP_OpenSocket: //Number Function - rc_push_num(rc_net_tcp_openSocket( TCP_OPENSOCKET_HOST$, TCP_OPENSOCKET_PORT )); - break; -case FN_TCP_CloseSocket: //Sub Procedure - rc_net_tcp_closeSocket( TCP_CLOSESOCKET_SOCKET ); - break; -case FN_TCP_RemoteHost: //Number Function - rc_push_num(rc_net_tcp_remoteHost( TCP_REMOTEHOST_SOCKET )); - break; -case FN_TCP_RemotePort: //Number Function - rc_push_num(rc_net_tcp_remotePort( TCP_REMOTEPORT_SOCKET )); - break; -case FN_TCP_GetData: //Number Function - rc_push_num(rc_net_tcp_getData_str( TCP_GETDATA_SOCKET, TCP_GETDATA_NUMBYTES, &TCP_GETDATA_SDATA$ )); - break; -case FN_TCP_SendData: //Sub Procedure - rc_net_tcp_sendData( TCP_SENDDATA_SOCKET, TCP_SENDDATA_SDATA$ ); - break; -case FN_TCP_AcceptSocket: //Number Function - rc_push_num(rc_net_tcp_acceptSocket( TCP_ACCEPTSOCKET_SERVER, TCP_ACCEPTSOCKET_CLIENT )); - break; -case FN_UDP_OpenSocket: //Number Function - rc_push_num(rc_net_udp_openSocket( UDP_OPENSOCKET_PORT )); - break; -case FN_UDP_CloseSocket: //Sub Procedure - rc_net_udp_closeSocket( UDP_CLOSESOCKET_SOCKET ); - break; -case FN_UDP_GetData: //Number Function - rc_push_num(rc_net_udp_readStream( UDP_GETDATA_SOCKET, &UDP_GETDATA_HOST$, &UDP_GETDATA_PORT, &UDP_GETDATA_SDATA$ )); - break; -case FN_UDP_Length: //Number Function - rc_push_num(rc_net_udp_len( )); - break; -case FN_UDP_MaxLength: //Number Function - rc_push_num(rc_net_udp_maxlen( )); - break; -case FN_UDP_RemoteHost$: //String Function - rc_push_str(rc_net_udp_getRemoteHost( UDP_REMOTEHOST$_SOCKET )); - break; -case FN_UDP_RemotePort: //Number Function - rc_push_num(rc_net_udp_getRemotePort( UDP_REMOTEPORT_SOCKET )); - break; -case FN_UDP_SendData: //Sub Procedure - rc_net_udp_sendData( UDP_SENDDATA_SOCKET, UDP_SENDDATA_HOST$, UDP_SENDDATA_PORT, UDP_SENDDATA_SDATA$ ); - break; -case FN_LoadVideo: //Sub Procedure - rc_loadVideo( LOADVIDEO_VID$ ); - break; -case FN_PlayVideo: //Sub Procedure - rc_playVideo( PLAYVIDEO_VLOOPS ); - break; -case FN_PauseVideo: //Sub Procedure - rc_pauseVideo( ); - break; -case FN_StopVideo: //Sub Procedure - rc_stopVideo( ); - break; -case FN_SetVideoPosition: //Sub Procedure - rc_setVideoPosition( SETVIDEOPOSITION_POS ); - break; -case FN_ResumeVideo: //Sub Procedure - rc_resumeVideo( ); - break; -case FN_GetVideoPosition: //Number Function - rc_push_num(rc_getVideoPosition( )); - break; -case FN_DeleteVideo: //Sub Procedure - rc_deleteVideo( ); - break; -case FN_VideoIsPlaying: //Number Function - rc_push_num(rc_videoIsPlaying( )); - break; -case FN_VideoEnd: //Number Function - rc_push_num(rc_videoEnd( )); - break; -case FN_GetVideoStats: //Sub Procedure - rc_getVideoStats( GETVIDEOSTATS_VFILE$, &GETVIDEOSTATS_VLEN, &GETVIDEOSTATS_VFPS, &GETVIDEOSTATS_FRAME_W, &GETVIDEOSTATS_FRAME_H ); - break; -case FN_SetVideoDrawRect: //Sub Procedure - rc_setVideoDrawRect( SETVIDEODRAWRECT_X, SETVIDEODRAWRECT_Y, SETVIDEODRAWRECT_W, SETVIDEODRAWRECT_H ); - break; -case FN_GetVideoDrawRect: //Sub Procedure - rc_getVideoDrawRect( &GETVIDEODRAWRECT_X, &GETVIDEODRAWRECT_Y, &GETVIDEODRAWRECT_W, &GETVIDEODRAWRECT_H ); - break; -case FN_GetVideoSize: //Sub Procedure - rc_getVideoSize( &GETVIDEOSIZE_W, &GETVIDEOSIZE_H ); - break; -case FN_VideoExists: //Number Function - rc_push_num(rc_videoExists( )); - break; -case FN_SetVideoVolume: //Sub Procedure - rc_setVideoVolume( SETVIDEOVOLUME_VOL ); - break; -case FN_GetVideoVolume: //Number Function - rc_push_num(rc_getVideoVolume( )); - break; -case FN_System: //Number Function - rc_push_num(rc_intern_system( SYSTEM_CMD$ )); - break; -case FN_OS$: //String Function - rc_push_str(rc_intern_OS( )); - break; -case FN_Command$: //String Function - rc_push_str(rc_intern_command( COMMAND$_ARG )); - break; -case FN_NumCommands: //Number Function - rc_push_num(rc_intern_numCommands( )); - break; -case FN_Env$: //String Function - rc_push_str(rc_intern_env( ENV$_V$ )); - break; -case FN_SetEnv: //Sub Procedure - rc_intern_setEnv( SETENV_VAR$, SETENV_VALUE$ ); - break; -case FN_PrefPath$: //String Function - rc_push_str(rc_intern_prefPath( PREFPATH$_ORG_NAME$, PREFPATH$_APP_NAME$ )); - break; -case FN_Android_GetExternalStoragePath$: //String Function - rc_push_str(rc_intern_android_getExternalStoragePath( )); - break; -case FN_Android_GetExternalStorageState: //Number Function - rc_push_num(rc_intern_android_getExternalStorageState( )); - break; -case FN_Android_GetInternalStoragePath$: //String Function - rc_push_str(rc_intern_android_getInternalStoragePath( )); - break; -case FN_Android_JNI_Message$: //String Function - rc_push_str(rc_intern_android_jni_message( ANDROID_JNI_MESSAGE$_ARG$ )); - break; -case FN_Runtime_Utility_Message$: //String Function - rc_push_str(rc_intern_runtime_utility( RUNTIME_UTILITY_MESSAGE$_ARG$ )); - break; -case FN_GetDesktopDisplayMode: //Sub Procedure - rc_getDesktopDisplayMode( GETDESKTOPDISPLAYMODE_INDEX, &GETDESKTOPDISPLAYMODE_W, &GETDESKTOPDISPLAYMODE_H, &GETDESKTOPDISPLAYMODE_FREQ ); - break; -case FN_GetPowerInfo: //Sub Procedure - rc_intern_getPowerInfo( &GETPOWERINFO_STATUS, &GETPOWERINFO_SECS, &GETPOWERINFO_PCT ); - break; -case FN_EvalJS$: //String Function - rc_push_str(rc_intern_evalJS( EVALJS$_JS_CODE$ )); - break; -case FN_SystemReturnStdOut$: //String Function - rc_push_str(rc_intern_sysReturnOutput( SYSTEMRETURNSTDOUT$_CMD$ )); - break; -case FN_OpenURL: //Number Function - rc_push_num(rc_openURL( OPENURL_URL$ )); - break; -case FN_MessageBox: //Number Function - rc_push_num(rc_messageBox( MESSAGEBOX_TITLE$, MESSAGEBOX_MSG$ )); - break; -case FN_Runtime$: //String Function - rc_push_str( rcbasic_runtime_path ); - - break; -case FN_NumCPUs: //Number Function - rc_push_num(rc_numCPUs( )); - break; -case FN_SystemRam: //Number Function - rc_push_num(rc_intern_systemRam( )); - break; -case FN_DimMatrix: //Number Function - rc_push_num(rc_dimMatrix( DIMMATRIX_M_ROWS, DIMMATRIX_M_COLS )); - break; -case FN_DeleteMatrix: //Sub Procedure - rc_deleteMatrix( DELETEMATRIX_MA ); - break; -case FN_AddMatrix: //Number Function - rc_push_num(rc_addMatrix( ADDMATRIX_MA, ADDMATRIX_MB, ADDMATRIX_MC )); - break; -case FN_AugmentMatrix: //Number Function - rc_push_num(rc_augmentMatrix( AUGMENTMATRIX_MA, AUGMENTMATRIX_MB, AUGMENTMATRIX_MC )); - break; -case FN_CopyMatrix: //Sub Procedure - rc_copyMatrix( COPYMATRIX_MA, COPYMATRIX_MB ); - break; -case FN_InsertMatrixColumns: //Number Function - rc_push_num(rc_insertMatrixColumns( INSERTMATRIXCOLUMNS_MA, INSERTMATRIXCOLUMNS_C, INSERTMATRIXCOLUMNS_NUM_COLS )); - break; -case FN_InsertMatrixRows: //Number Function - rc_push_num(rc_insertMatrixRows( INSERTMATRIXROWS_MA, INSERTMATRIXROWS_R, INSERTMATRIXROWS_NUM_ROWS )); - break; -case FN_MultiplyMatrix: //Number Function - rc_push_num(rc_multiplyMatrix( MULTIPLYMATRIX_MA, MULTIPLYMATRIX_MB, MULTIPLYMATRIX_MC )); - break; -case FN_CubeMatrix: //Number Function - rc_push_num(rc_cubeMatrix( CUBEMATRIX_MA, CUBEMATRIX_MB )); - break; -case FN_DeleteMatrixColumns: //Number Function - rc_push_num(rc_deleteMatrixColumns( DELETEMATRIXCOLUMNS_MA, DELETEMATRIXCOLUMNS_C, DELETEMATRIXCOLUMNS_NUM_COLS )); - break; -case FN_DeleteMatrixRows: //Number Function - rc_push_num(rc_deleteMatrixRows( DELETEMATRIXROWS_MA, DELETEMATRIXROWS_R, DELETEMATRIXROWS_NUM_ROWS )); - break; -case FN_ClearMatrix: //Sub Procedure - rc_clearMatrix( CLEARMATRIX_MA ); - break; -case FN_ClearMatrixColumns: //Number Function - rc_push_num(rc_clearMatrixColumns( CLEARMATRIXCOLUMNS_MA, CLEARMATRIXCOLUMNS_C, CLEARMATRIXCOLUMNS_NUM_COLS )); - break; -case FN_ClearMatrixRows: //Number Function - rc_push_num(rc_clearMatrixRows( CLEARMATRIXROWS_MA, CLEARMATRIXROWS_R, CLEARMATRIXROWS_NUM_ROWS )); - break; -case FN_FillMatrix: //Sub Procedure - rc_fillMatrix( FILLMATRIX_MA, FILLMATRIX_V ); - break; -case FN_FillMatrixColumns: //Number Function - rc_push_num(rc_fillMatrixColumns( FILLMATRIXCOLUMNS_MA, FILLMATRIXCOLUMNS_C, FILLMATRIXCOLUMNS_NUM_COLS, FILLMATRIXCOLUMNS_V )); - break; -case FN_FillMatrixRows: //Number Function - rc_push_num(rc_fillMatrixRows( FILLMATRIXROWS_MA, FILLMATRIXROWS_R, FILLMATRIXROWS_NUM_ROWS, FILLMATRIXROWS_V )); - break; -case FN_CopyMatrixColumns: //Number Function - rc_push_num(rc_copyMatrixColumns( COPYMATRIXCOLUMNS_MA, COPYMATRIXCOLUMNS_MB, COPYMATRIXCOLUMNS_C, COPYMATRIXCOLUMNS_NUM_COLS )); - break; -case FN_CopyMatrixRows: //Number Function - rc_push_num(rc_copyMatrixRows( COPYMATRIXROWS_MA, COPYMATRIXROWS_MB, COPYMATRIXROWS_R, COPYMATRIXROWS_NUM_ROWS )); - break; -case FN_SetIdentityMatrix: //Sub Procedure - rc_setIdentityMatrix( SETIDENTITYMATRIX_MA, SETIDENTITYMATRIX_N ); - break; -case FN_SolveMatrix: //Number Function - rc_push_num(rc_solveMatrix( SOLVEMATRIX_MA, SOLVEMATRIX_MB, SOLVEMATRIX_MC )); - break; -case FN_IsEqualMatrix: //Number Function - rc_push_num(rc_isEqualMatrix( ISEQUALMATRIX_MA, ISEQUALMATRIX_MB, ISEQUALMATRIX_TOLERANCE )); - break; -case FN_Determinant: //Number Function - rc_push_num(rc_determinant( DETERMINANT_MA )); - break; -case FN_AdjointMatrix: //Number Function - rc_push_num(rc_adjointMatrix( ADJOINTMATRIX_MA, ADJOINTMATRIX_MB )); - break; -case FN_InvertMatrix: //Number Function - rc_push_num(rc_invertMatrix( INVERTMATRIX_MA, INVERTMATRIX_MB )); - break; -case FN_MatrixFromBuffer: //Sub Procedure - rc_matrixFromBuffer( MATRIXFROMBUFFER_MA, MATRIXFROMBUFFER_R, MATRIXFROMBUFFER_C, &MATRIXFROMBUFFER_BUFFER ); - break; -case FN_BufferFromMatrix: //Sub Procedure - rc_bufferFromMatrix( &BUFFERFROMMATRIX_BUFFER, BUFFERFROMMATRIX_MA ); - break; -case FN_RandomizeMatrix: //Sub Procedure - rc_randomizeMatrix( RANDOMIZEMATRIX_MA, RANDOMIZEMATRIX_VMIN, RANDOMIZEMATRIX_VMAX ); - break; -case FN_MatrixValue: //Number Function - rc_push_num(rc_matrixValue( MATRIXVALUE_MA, MATRIXVALUE_R, MATRIXVALUE_C )); - break; -case FN_SetMatrixValue: //Sub Procedure - rc_setMatrixValue( SETMATRIXVALUE_MA, SETMATRIXVALUE_R, SETMATRIXVALUE_C, SETMATRIXVALUE_V ); - break; -case FN_ScalarMatrix: //Sub Procedure - rc_scalarMatrix( SCALARMATRIX_MA, SCALARMATRIX_MB, SCALARMATRIX_S_VALUE ); - break; -case FN_ScalarMatrixColumns: //Number Function - rc_push_num(rc_scalarMatrixColumns( SCALARMATRIXCOLUMNS_MA, SCALARMATRIXCOLUMNS_MB, SCALARMATRIXCOLUMNS_C, SCALARMATRIXCOLUMNS_NUM_COLS, SCALARMATRIXCOLUMNS_S_VALUE )); - break; -case FN_ScalarMatrixRows: //Number Function - rc_push_num(rc_scalarMatrixRows( SCALARMATRIXROWS_MA, SCALARMATRIXROWS_MB, SCALARMATRIXROWS_R, SCALARMATRIXROWS_NUM_ROWS, SCALARMATRIXROWS_S_VALUE )); - break; -case FN_SquareMatrix: //Number Function - rc_push_num(rc_squareMatrix( SQUAREMATRIX_MA, SQUAREMATRIX_MB )); - break; -case FN_CofactorMatrix: //Sub Procedure - rc_subMatrix( COFACTORMATRIX_MA, COFACTORMATRIX_R, COFACTORMATRIX_C ); - break; -case FN_SubtractMatrix: //Number Function - rc_push_num(rc_subtractMatrix( SUBTRACTMATRIX_MA, SUBTRACTMATRIX_MB, SUBTRACTMATRIX_MC )); - break; -case FN_SwapMatrix: //Sub Procedure - rc_swapMatrix( SWAPMATRIX_MA, SWAPMATRIX_MB ); - break; -case FN_SwapMatrixColumn: //Number Function - rc_push_num(rc_swapMatrixColumn( SWAPMATRIXCOLUMN_MA, SWAPMATRIXCOLUMN_C1, SWAPMATRIXCOLUMN_C2 )); - break; -case FN_SwapMatrixRow: //Number Function - rc_push_num(rc_swapMatrixRow( SWAPMATRIXROW_MA, SWAPMATRIXROW_R1, SWAPMATRIXROW_R2 )); - break; -case FN_TransposeMatrix: //Number Function - rc_push_num(rc_transposeMatrix( TRANSPOSEMATRIX_MA, TRANSPOSEMATRIX_MB )); - break; -case FN_UnAugmentMatrix: //Number Function - rc_push_num(rc_unAugmentMatrix( UNAUGMENTMATRIX_MA, UNAUGMENTMATRIX_MB, UNAUGMENTMATRIX_MC )); - break; -case FN_ZeroMatrix: //Sub Procedure - rc_zeroMatrix( ZEROMATRIX_MA ); - break; -case FN_GetMatrixSize: //Sub Procedure - rc_getMatrixSize( GETMATRIXSIZE_MA, &GETMATRIXSIZE_R, &GETMATRIXSIZE_C ); - break; -case FN_IncrementMatrixRows: //Sub Procedure - rc_incrementMatrixRows( INCREMENTMATRIXROWS_MA, INCREMENTMATRIXROWS_MB, INCREMENTMATRIXROWS_R, INCREMENTMATRIXROWS_NUM_ROWS, INCREMENTMATRIXROWS_VALUE ); - break; -case FN_IncrementMatrixColumns: //Sub Procedure - rc_incrementMatrixColumns( INCREMENTMATRIXCOLUMNS_MA, INCREMENTMATRIXCOLUMNS_MB, INCREMENTMATRIXCOLUMNS_C, INCREMENTMATRIXCOLUMNS_NUM_COLS, INCREMENTMATRIXCOLUMNS_VALUE ); - break; -case FN_JoinMatrixRows: //Sub Procedure - rc_joinMatrixRows( JOINMATRIXROWS_MA, JOINMATRIXROWS_MB, JOINMATRIXROWS_MC ); - break; -case FN_JoinMatrixColumns: //Sub Procedure - rc_joinMatrixColumns( JOINMATRIXCOLUMNS_MA, JOINMATRIXCOLUMNS_MB, JOINMATRIXCOLUMNS_MC ); - break; -case FN_ClipMatrix: //Sub Procedure - rc_clipMatrix( CLIPMATRIX_MA, CLIPMATRIX_R, CLIPMATRIX_C, CLIPMATRIX_NUM_ROWS, CLIPMATRIX_NUM_COLS, CLIPMATRIX_MB ); - break; -case FN_SetMatrixTranslation: //Sub Procedure - rc_setMatrixTranslation( SETMATRIXTRANSLATION_MA, SETMATRIXTRANSLATION_X, SETMATRIXTRANSLATION_Y, SETMATRIXTRANSLATION_Z ); - break; -case FN_SetMatrixRotation: //Sub Procedure - rc_setMatrixRotation( SETMATRIXROTATION_MA, SETMATRIXROTATION_X, SETMATRIXROTATION_Y, SETMATRIXROTATION_Z ); - break; -case FN_SetMatrixScale: //Sub Procedure - rc_setMatrixScale( SETMATRIXSCALE_MA, SETMATRIXSCALE_X, SETMATRIXSCALE_Y, SETMATRIXSCALE_Z ); - break; -case FN_GetMatrixTranslation: //Sub Procedure - rc_getMatrixTranslation( GETMATRIXTRANSLATION_MA, &GETMATRIXTRANSLATION_X, &GETMATRIXTRANSLATION_Y, &GETMATRIXTRANSLATION_Z ); - break; -case FN_GetMatrixRotation: //Sub Procedure - rc_getMatrixRotation( GETMATRIXROTATION_MA, &GETMATRIXROTATION_X, &GETMATRIXROTATION_Y, &GETMATRIXROTATION_Z ); - break; -case FN_GetMatrixScale: //Sub Procedure - rc_getMatrixScale( GETMATRIXSCALE_MA, &GETMATRIXSCALE_X, &GETMATRIXSCALE_Y, &GETMATRIXSCALE_Z ); - break; -case FN_GetClipboardText$: //String Function - rc_push_str(rc_getClipboardText( )); - break; -case FN_SetClipboardText: //Sub Procedure - rc_setClipboardText( SETCLIPBOARDTEXT_TXT$ ); - break; -case FN_HasClipboardText: //Number Function - rc_push_num(rc_hasClipboardText( )); - break; -case FN_ReadInput_Start: //Sub Procedure - rc_readInput_Start( ); - break; -case FN_ReadInput_Stop: //Sub Procedure - rc_readInput_Stop( ); - break; -case FN_ReadInput_Text$: //String Function - rc_push_str(rc_readInput_Text( )); - break; -case FN_ReadInput_SetText: //Sub Procedure - rc_readInput_SetText( READINPUT_SETTEXT_TXT$ ); - break; -case FN_ReadInput_ToggleBackspace: //Sub Procedure - rc_readInput_ToggleBackspace( READINPUT_TOGGLEBACKSPACE_FLAG ); - break; -case FN_CreateSprite: //Number Function - rc_push_num(rc_createSprite( CREATESPRITE_IMG, CREATESPRITE_FRAME_W, CREATESPRITE_FRAME_H )); - break; -case FN_DeleteSprite: //Sub Procedure - rc_deleteSprite( DELETESPRITE_SPRITE ); - break; -case FN_SetSpritePosition: //Sub Procedure - rc_setSpritePosition( SETSPRITEPOSITION_SPRITE, SETSPRITEPOSITION_X, SETSPRITEPOSITION_Y ); - break; -case FN_TranslateSprite: //Sub Procedure - rc_translateSprite( TRANSLATESPRITE_SPRITE, TRANSLATESPRITE_X, TRANSLATESPRITE_Y ); - break; -case FN_GetSpritePosition: //Sub Procedure - rc_getSpritePosition( GETSPRITEPOSITION_SPRITE, &GETSPRITEPOSITION_X, &GETSPRITEPOSITION_Y ); - break; -case FN_SpriteX: //Number Function - rc_push_num(rc_spriteX( SPRITEX_SPRITE )); - break; -case FN_SpriteY: //Number Function - rc_push_num(rc_spriteY( SPRITEY_SPRITE )); - break; -case FN_SetSpriteRotation: //Sub Procedure - rc_setSpriteRotation( SETSPRITEROTATION_SPRITE, SETSPRITEROTATION_ANGLE ); - break; -case FN_RotateSprite: //Sub Procedure - rc_rotateSprite( ROTATESPRITE_SPRITE, ROTATESPRITE_ANGLE ); - break; -case FN_GetSpriteRotation: //Number Function - rc_push_num(rc_getSpriteRotation( GETSPRITEROTATION_SPRITE )); - break; -case FN_SetSpriteScale: //Sub Procedure - rc_setSpriteScale( SETSPRITESCALE_SPRITE, SETSPRITESCALE_X, SETSPRITESCALE_Y ); - break; -case FN_ScaleSprite: //Sub Procedure - rc_scaleSprite( SCALESPRITE_SPRITE, SCALESPRITE_X, SCALESPRITE_Y ); - break; -case FN_GetSpriteScale: //Sub Procedure - rc_getSpriteScale( GETSPRITESCALE_SPRITE, &GETSPRITESCALE_X, &GETSPRITESCALE_Y ); - break; -case FN_SetSpriteZ: //Sub Procedure - rc_setSpriteZ( SETSPRITEZ_SPRITE, SETSPRITEZ_Z ); - break; -case FN_SpriteZ: //Number Function - rc_push_num(rc_spriteZ( SPRITEZ_SPRITE )); - break; -case FN_GetSpriteSize: //Sub Procedure - rc_getSpriteSize( GETSPRITESIZE_SPRITE, &GETSPRITESIZE_W, &GETSPRITESIZE_H ); - break; -case FN_SpriteWidth: //Number Function - rc_push_num(rc_spriteWidth( SPRITEWIDTH_SPRITE )); - break; -case FN_SpriteHeight: //Number Function - rc_push_num(rc_spriteHeight( SPRITEHEIGHT_SPRITE )); - break; -case FN_SetSpriteVisible: //Sub Procedure - rc_setSpriteVisible( SETSPRITEVISIBLE_SPRITE, SETSPRITEVISIBLE_FLAG ); - break; -case FN_SpriteIsVisible: //Number Function - rc_push_num(rc_spriteIsVisible( SPRITEISVISIBLE_SPRITE )); - break; -case FN_SetSpriteSolid: //Sub Procedure - rc_setSpriteSolid( SETSPRITESOLID_SPRITE, SETSPRITESOLID_FLAG ); - break; -case FN_SpriteIsSolid: //Number Function - rc_push_num(rc_spriteIsSolid( SPRITEISSOLID_SPRITE )); - break; -case FN_SetSpriteType: //Sub Procedure - rc_setSpriteType( SETSPRITETYPE_SPRITE, SETSPRITETYPE_SPRITE_TYPE ); - break; -case FN_GetSpriteType: //Number Function - rc_push_num(rc_getSpriteType( GETSPRITETYPE_SPRITE )); - break; -case FN_SetSpriteSource: //Sub Procedure - rc_setSpriteSource( SETSPRITESOURCE_SPRITE, SETSPRITESOURCE_IMG ); - break; -case FN_GetSpriteSource: //Number Function - rc_push_num(rc_getSpriteSource( GETSPRITESOURCE_SPRITE )); - break; -case FN_CreateSpriteAnimation: //Number Function - rc_push_num(rc_createSpriteAnimation( CREATESPRITEANIMATION_SPRITE, CREATESPRITEANIMATION_ANIM_LENGTH, CREATESPRITEANIMATION_SPEED )); - break; -case FN_SetSpriteFrame: //Sub Procedure - rc_setSpriteFrame( SETSPRITEFRAME_SPRITE, SETSPRITEFRAME_FRAME ); - break; -case FN_GetSpriteFrame: //Number Function - rc_push_num(rc_getSpriteFrame( GETSPRITEFRAME_SPRITE )); - break; -case FN_SetSpriteAnimationFrame: //Sub Procedure - rc_setSpriteAnimationFrame( SETSPRITEANIMATIONFRAME_SPRITE, SETSPRITEANIMATIONFRAME_ANIMATION, SETSPRITEANIMATIONFRAME_ANIM_FRAME, SETSPRITEANIMATIONFRAME_FRAME ); - break; -case FN_GetSpriteAnimationFrame: //Number Function - rc_push_num(rc_getSpriteAnimationFrame( GETSPRITEANIMATIONFRAME_SPRITE, GETSPRITEANIMATIONFRAME_ANIMATION, GETSPRITEANIMATIONFRAME_ANIM_FRAME )); - break; -case FN_SetSpriteAnimationLength: //Sub Procedure - rc_setSpriteAnimationLength( SETSPRITEANIMATIONLENGTH_SPRITE, SETSPRITEANIMATIONLENGTH_ANIMATION, SETSPRITEANIMATIONLENGTH_ANIM_LENGTH ); - break; -case FN_GetSpriteAnimationLength: //Number Function - rc_push_num(rc_getSpriteAnimationLength( GETSPRITEANIMATIONLENGTH_SPRITE, GETSPRITEANIMATIONLENGTH_ANIMATION )); - break; -case FN_SetSpriteAnimationSpeed: //Sub Procedure - rc_setSpriteAnimationSpeed( SETSPRITEANIMATIONSPEED_SPRITE, SETSPRITEANIMATIONSPEED_ANIMATION, SETSPRITEANIMATIONSPEED_SPEED ); - break; -case FN_GetSpriteAnimationSpeed: //Number Function - rc_push_num(rc_getSpriteAnimationSpeed( GETSPRITEANIMATIONSPEED_SPRITE, GETSPRITEANIMATIONSPEED_ANIMATION )); - break; -case FN_SetSpriteAnimation: //Sub Procedure - rc_setSpriteAnimation( SETSPRITEANIMATION_SPRITE, SETSPRITEANIMATION_ANIMATION, SETSPRITEANIMATION_NUM_LOOPS ); - break; -case FN_GetSpriteAnimation: //Number Function - rc_push_num(rc_getSpriteAnimation( GETSPRITEANIMATION_SPRITE )); - break; -case FN_GetSpriteCurrentAnimationFrame: //Number Function - rc_push_num(rc_getSpriteCurrentAnimationFrame( GETSPRITECURRENTANIMATIONFRAME_SPRITE )); - break; -case FN_NumSpriteAnimationLoops: //Number Function - rc_push_num(rc_numSpriteAnimationLoops( NUMSPRITEANIMATIONLOOPS_SPRITE )); - break; -case FN_SpriteAnimationIsPlaying: //Number Function - rc_push_num(rc_spriteAnimationIsPlaying( SPRITEANIMATIONISPLAYING_SPRITE )); - break; -case FN_DeleteSpriteAnimation: //Sub Procedure - rc_deleteSpriteAnimation( DELETESPRITEANIMATION_SPRITE, DELETESPRITEANIMATION_ANIMATION ); - break; -case FN_LoadMesh: //Number Function - rc_push_num(rc_loadMesh( LOADMESH_MESH_FILE$ )); - break; -case FN_DeleteMesh: //Sub Procedure - rc_deleteMesh( DELETEMESH_MESH ); - break; -case FN_CreateMesh: //Number Function - rc_push_num(rc_createMesh( )); - break; -case FN_AddMeshBuffer: //Sub Procedure - rc_addMeshBuffer( ADDMESHBUFFER_MESH, ADDMESHBUFFER_VERTEX_COUNT, &ADDMESHBUFFER_VERTEX_DATA, &ADDMESHBUFFER_NORMAL_DATA, &ADDMESHBUFFER_UV_DATA, ADDMESHBUFFER_INDEX_COUNT, &ADDMESHBUFFER_INDEX_DATA ); - break; -case FN_LoadMeshFromArchive: //Number Function - rc_push_num(rc_loadMeshFromArchive( LOADMESHFROMARCHIVE_ARCHIVE$, LOADMESHFROMARCHIVE_MESH_FILE$ )); - break; -case FN_CreatePlaneMesh: //Number Function - rc_push_num(rc_createPlaneMesh( CREATEPLANEMESH_W, CREATEPLANEMESH_H, CREATEPLANEMESH_TILECOUNT_W, CREATEPLANEMESH_TILECOUNT_H )); - break; -case FN_LoadAN8: //Number Function - rc_push_num(rc_loadAN8( LOADAN8_AN8_FILE$ )); - break; -case FN_LoadMeshFromAN8: //Number Function - rc_push_num(rc_loadMeshFromAN8( LOADMESHFROMAN8_AN8_PROJECT, LOADMESHFROMAN8_AN8_SCENE$ )); - break; -case FN_GetNumAN8Scenes: //Number Function - rc_push_num(rc_getNumAN8Scenes( GETNUMAN8SCENES_AN8_PROJECT )); - break; -case FN_GetAN8SceneName$: //String Function - rc_push_str(rc_getAN8SceneName( GETAN8SCENENAME$_AN8_PROJECT, GETAN8SCENENAME$_SCENE_NUM )); - break; -case FN_CreateAnimatedActor: //Number Function - rc_push_num(rc_createAnimatedActor( CREATEANIMATEDACTOR_MESH )); - break; -case FN_CreateOctreeActor: //Number Function - rc_push_num(rc_createOctreeActor( CREATEOCTREEACTOR_MESH )); - break; -case FN_CreateCubeActor: //Number Function - rc_push_num(rc_createCubeActor( CREATECUBEACTOR_CUBE_SIZE )); - break; -case FN_CreateSphereActor: //Number Function - rc_push_num(rc_createSphereActor( CREATESPHEREACTOR_RADIUS )); - break; -case FN_CreateWaterActor: //Number Function - rc_push_num(rc_createWaterActor( CREATEWATERACTOR_MESH, CREATEWATERACTOR_WAVEHEIGHT, CREATEWATERACTOR_WAVESPEED, CREATEWATERACTOR_WAVELENGTH )); - break; -case FN_CreateLightActor: //Number Function - rc_push_num(rc_createLightActor( )); - break; -case FN_CreateBillboardActor: //Number Function - rc_push_num(rc_createBillboardActor( )); - break; -case FN_CreateTerrainActor: //Number Function - rc_push_num(rc_createTerrainActor( CREATETERRAINACTOR_HMAP_FILE$ )); - break; -case FN_CreateParticleActor: //Number Function - rc_push_num(rc_createParticleActor( CREATEPARTICLEACTOR_PARTICLE_TYPE )); - break; -case FN_DeleteActor: //Sub Procedure - rc_deleteActor( DELETEACTOR_ACTOR ); - break; -case FN_GetActorTransform: //Sub Procedure - rc_getActorTransform( GETACTORTRANSFORM_ACTOR, GETACTORTRANSFORM_MATRIX ); - break; -case FN_SetActorPosition: //Sub Procedure - rc_setActorPosition( SETACTORPOSITION_ACTOR, SETACTORPOSITION_X, SETACTORPOSITION_Y, SETACTORPOSITION_Z ); - break; -case FN_TranslateActorLocal: //Sub Procedure - rc_translateActorLocal( TRANSLATEACTORLOCAL_ACTOR, TRANSLATEACTORLOCAL_X, TRANSLATEACTORLOCAL_Y, TRANSLATEACTORLOCAL_Z ); - break; -case FN_TranslateActorWorld: //Sub Procedure - rc_translateActorWorld( TRANSLATEACTORWORLD_ACTOR, TRANSLATEACTORWORLD_X, TRANSLATEACTORWORLD_Y, TRANSLATEACTORWORLD_Z ); - break; -case FN_GetActorPosition: //Sub Procedure - rc_getActorPosition( GETACTORPOSITION_ACTOR, &GETACTORPOSITION_X, &GETACTORPOSITION_Y, &GETACTORPOSITION_Z ); - break; -case FN_SetActorScale: //Sub Procedure - rc_setActorScale( SETACTORSCALE_ACTOR, SETACTORSCALE_X, SETACTORSCALE_Y, SETACTORSCALE_Z ); - break; -case FN_ScaleActor: //Sub Procedure - rc_scaleActor( SCALEACTOR_ACTOR, SCALEACTOR_X, SCALEACTOR_Y, SCALEACTOR_Z ); - break; -case FN_GetActorScale: //Sub Procedure - rc_getActorScale( GETACTORSCALE_ACTOR, &GETACTORSCALE_X, &GETACTORSCALE_Y, &GETACTORSCALE_Z ); - break; -case FN_SetActorRotation: //Sub Procedure - rc_setActorRotation( SETACTORROTATION_ACTOR, SETACTORROTATION_X, SETACTORROTATION_Y, SETACTORROTATION_Z ); - break; -case FN_RotateActor: //Sub Procedure - rc_rotateActor( ROTATEACTOR_ACTOR, ROTATEACTOR_X, ROTATEACTOR_Y, ROTATEACTOR_Z ); - break; -case FN_GetActorRotation: //Sub Procedure - rc_getActorRotation( GETACTORROTATION_ACTOR, &GETACTORROTATION_X, &GETACTORROTATION_Y, &GETACTORROTATION_Z ); - break; -case FN_SetActorVisible: //Sub Procedure - rc_setActorVisible( SETACTORVISIBLE_ACTOR, SETACTORVISIBLE_FLAG ); - break; -case FN_ActorIsVisible: //Number Function - rc_push_num(rc_actorIsVisible( ACTORISVISIBLE_ACTOR )); - break; -case FN_SetActorAutoCulling: //Sub Procedure - rc_setActorAutoCulling( SETACTORAUTOCULLING_ACTOR, SETACTORAUTOCULLING_CULL_TYPE ); - break; -case FN_GetActorAutoCulling: //Number Function - rc_push_num(rc_getActorAutoCulling( GETACTORAUTOCULLING_ACTOR )); - break; -case FN_AddActorShadow: //Sub Procedure - rc_addActorShadow( ADDACTORSHADOW_ACTOR ); - break; -case FN_RemoveActorShadow: //Sub Procedure - rc_removeActorShadow( REMOVEACTORSHADOW_ACTOR ); - break; -case FN_ActorExists: //Number Function - rc_push_num(rc_actorExists( ACTOREXISTS_ACTOR )); - break; -case FN_SetGravity3D: //Sub Procedure - rc_setGravity3D( SETGRAVITY3D_X, SETGRAVITY3D_Y, SETGRAVITY3D_Z ); - break; -case FN_GetGravity3D: //Sub Procedure - rc_getGravity3D( &GETGRAVITY3D_X, &GETGRAVITY3D_Y, &GETGRAVITY3D_Z ); - break; -case FN_SetActorCollisionShape: //Sub Procedure - rc_setActorCollisionShape( SETACTORCOLLISIONSHAPE_ACTOR, SETACTORCOLLISIONSHAPE_SHAPE_TYPE, SETACTORCOLLISIONSHAPE_MASS ); - break; -case FN_GetActorCollisionShape: //Number Function - rc_push_num(rc_getActorCollisionShape( GETACTORCOLLISIONSHAPE_ACTOR )); - break; -case FN_SetActorSolid: //Sub Procedure - rc_setActorSolid( SETACTORSOLID_ACTOR, SETACTORSOLID_FLAG ); - break; -case FN_ActorIsSolid: //Number Function - rc_push_num(rc_actorIsSolid( ACTORISSOLID_ACTOR )); - break; -case FN_GetActorCollision: //Number Function - rc_push_num(rc_getActorCollision( GETACTORCOLLISION_ACTOR1, GETACTORCOLLISION_ACTOR2 )); - break; -case FN_SetActorGravity: //Sub Procedure - rc_setActorGravity( SETACTORGRAVITY_ACTOR, SETACTORGRAVITY_X, SETACTORGRAVITY_Y, SETACTORGRAVITY_Z ); - break; -case FN_GetActorGravity: //Sub Procedure - rc_getActorGravity( GETACTORGRAVITY_ACTOR, &GETACTORGRAVITY_X, &GETACTORGRAVITY_Y, &GETACTORGRAVITY_Z ); - break; -case FN_setActorDamping: //Sub Procedure - rc_setActorDamping( SETACTORDAMPING_ACTOR, SETACTORDAMPING_LIN_DAMPING, SETACTORDAMPING_ANG_DAMPING ); - break; -case FN_getActorLinearDamping: //Number Function - rc_push_num(rc_getActorLinearDamping( GETACTORLINEARDAMPING_ACTOR )); - break; -case FN_getActorAngularDamping: //Number Function - rc_push_num(rc_getActorAngularDamping( GETACTORANGULARDAMPING_ACTOR )); - break; -case FN_getActorLinearSleepThreshold: //Number Function - rc_push_num(rc_getActorLinearSleepThreshold( GETACTORLINEARSLEEPTHRESHOLD_ACTOR )); - break; -case FN_getActorAngularSleepThreshold: //Number Function - rc_push_num(rc_getActorAngularSleepThreshold( GETACTORANGULARSLEEPTHRESHOLD_ACTOR )); - break; -case FN_applyActorDamping: //Sub Procedure - rc_applyActorDamping( APPLYACTORDAMPING_ACTOR, APPLYACTORDAMPING_TIMESTEP ); - break; -case FN_setActorMassProperties: //Sub Procedure - rc_setActorMassProperties( SETACTORMASSPROPERTIES_ACTOR, SETACTORMASSPROPERTIES_MASS, SETACTORMASSPROPERTIES_INERTIA_X, SETACTORMASSPROPERTIES_INERTIA_Y, SETACTORMASSPROPERTIES_INERTIA_Z ); - break; -case FN_getActorLinearFactor: //Sub Procedure - rc_getActorLinearFactor( GETACTORLINEARFACTOR_ACTOR, &GETACTORLINEARFACTOR_X, &GETACTORLINEARFACTOR_Y, &GETACTORLINEARFACTOR_Z ); - break; -case FN_setActorLinearFactor: //Sub Procedure - rc_setActorLinearFactor( SETACTORLINEARFACTOR_ACTOR, SETACTORLINEARFACTOR_X, SETACTORLINEARFACTOR_Y, SETACTORLINEARFACTOR_Z ); - break; -case FN_getActorInverseMass: //Number Function - rc_push_num(rc_getActorInverseMass( GETACTORINVERSEMASS_ACTOR )); - break; -case FN_integrateActorVelocities: //Sub Procedure - rc_integrateActorVelocities( INTEGRATEACTORVELOCITIES_ACTOR, INTEGRATEACTORVELOCITIES_V_STEP ); - break; -case FN_applyActorCentralForceLocal: //Sub Procedure - rc_applyActorCentralForceLocal( APPLYACTORCENTRALFORCELOCAL_ACTOR, APPLYACTORCENTRALFORCELOCAL_X, APPLYACTORCENTRALFORCELOCAL_Y, APPLYACTORCENTRALFORCELOCAL_Z ); - break; -case FN_applyActorCentralForceWorld: //Sub Procedure - rc_applyActorCentralForceWorld( APPLYACTORCENTRALFORCEWORLD_ACTOR, APPLYACTORCENTRALFORCEWORLD_X, APPLYACTORCENTRALFORCEWORLD_Y, APPLYACTORCENTRALFORCEWORLD_Z ); - break; -case FN_getActorTotalForce: //Sub Procedure - rc_getActorTotalForce( GETACTORTOTALFORCE_ACTOR, &GETACTORTOTALFORCE_X, &GETACTORTOTALFORCE_Y, &GETACTORTOTALFORCE_Z ); - break; -case FN_getActorTotalTorque: //Sub Procedure - rc_getActorTotalTorque( GETACTORTOTALTORQUE_ACTOR, &GETACTORTOTALTORQUE_X, &GETACTORTOTALTORQUE_Y, &GETACTORTOTALTORQUE_Z ); - break; -case FN_getActorInverseInertiaDiagLocal: //Sub Procedure - rc_getActorInverseInertiaDiagLocal( GETACTORINVERSEINERTIADIAGLOCAL_ACTOR, &GETACTORINVERSEINERTIADIAGLOCAL_X, &GETACTORINVERSEINERTIADIAGLOCAL_Y, &GETACTORINVERSEINERTIADIAGLOCAL_Z ); - break; -case FN_setActorInverseInertiaDiagLocal: //Sub Procedure - rc_setActorInverseInertiaDiagLocal( SETACTORINVERSEINERTIADIAGLOCAL_ACTOR, SETACTORINVERSEINERTIADIAGLOCAL_X, SETACTORINVERSEINERTIADIAGLOCAL_Y, SETACTORINVERSEINERTIADIAGLOCAL_Z ); - break; -case FN_setActorSleepThresholds: //Sub Procedure - rc_setActorSleepThresholds( SETACTORSLEEPTHRESHOLDS_ACTOR, SETACTORSLEEPTHRESHOLDS_LINEAR, SETACTORSLEEPTHRESHOLDS_ANGULAR ); - break; -case FN_applyActorTorqueLocal: //Sub Procedure - rc_applyActorTorqueLocal( APPLYACTORTORQUELOCAL_ACTOR, APPLYACTORTORQUELOCAL_X, APPLYACTORTORQUELOCAL_Y, APPLYACTORTORQUELOCAL_Z ); - break; -case FN_applyActorTorqueWorld: //Sub Procedure - rc_applyActorTorqueWorld( APPLYACTORTORQUEWORLD_ACTOR, APPLYACTORTORQUEWORLD_X, APPLYACTORTORQUEWORLD_Y, APPLYACTORTORQUEWORLD_Z ); - break; -case FN_applyActorForceLocal: //Sub Procedure - rc_applyActorForceLocal( APPLYACTORFORCELOCAL_ACTOR, APPLYACTORFORCELOCAL_X, APPLYACTORFORCELOCAL_Y, APPLYACTORFORCELOCAL_Z, APPLYACTORFORCELOCAL_REL_X, APPLYACTORFORCELOCAL_REL_Y, APPLYACTORFORCELOCAL_REL_Z ); - break; -case FN_applyActorForceWorld: //Sub Procedure - rc_applyActorForceWorld( APPLYACTORFORCEWORLD_ACTOR, APPLYACTORFORCEWORLD_X, APPLYACTORFORCEWORLD_Y, APPLYACTORFORCEWORLD_Z, APPLYACTORFORCEWORLD_REL_X, APPLYACTORFORCEWORLD_REL_Y, APPLYACTORFORCEWORLD_REL_Z ); - break; -case FN_applyActorCentralImpulseLocal: //Sub Procedure - rc_applyActorCentralImpulseLocal( APPLYACTORCENTRALIMPULSELOCAL_ACTOR, APPLYACTORCENTRALIMPULSELOCAL_X, APPLYACTORCENTRALIMPULSELOCAL_Y, APPLYACTORCENTRALIMPULSELOCAL_Z ); - break; -case FN_applyActorCentralImpulseWorld: //Sub Procedure - rc_applyActorCentralImpulseWorld( APPLYACTORCENTRALIMPULSEWORLD_ACTOR, APPLYACTORCENTRALIMPULSEWORLD_X, APPLYACTORCENTRALIMPULSEWORLD_Y, APPLYACTORCENTRALIMPULSEWORLD_Z ); - break; -case FN_applyActorTorqueImpulseLocal: //Sub Procedure - rc_applyActorTorqueImpulseLocal( APPLYACTORTORQUEIMPULSELOCAL_ACTOR, APPLYACTORTORQUEIMPULSELOCAL_X, APPLYACTORTORQUEIMPULSELOCAL_Y, APPLYACTORTORQUEIMPULSELOCAL_Z ); - break; -case FN_applyActorTorqueImpulseWorld: //Sub Procedure - rc_applyActorTorqueImpulseWorld( APPLYACTORTORQUEIMPULSEWORLD_ACTOR, APPLYACTORTORQUEIMPULSEWORLD_X, APPLYACTORTORQUEIMPULSEWORLD_Y, APPLYACTORTORQUEIMPULSEWORLD_Z ); - break; -case FN_applyActorImpulseLocal: //Sub Procedure - rc_applyActorImpulseLocal( APPLYACTORIMPULSELOCAL_ACTOR, APPLYACTORIMPULSELOCAL_X, APPLYACTORIMPULSELOCAL_Y, APPLYACTORIMPULSELOCAL_Z, APPLYACTORIMPULSELOCAL_REL_X, APPLYACTORIMPULSELOCAL_REL_Y, APPLYACTORIMPULSELOCAL_REL_Z ); - break; -case FN_applyActorImpulseWorld: //Sub Procedure - rc_applyActorImpulseWorld( APPLYACTORIMPULSEWORLD_ACTOR, APPLYACTORIMPULSEWORLD_X, APPLYACTORIMPULSEWORLD_Y, APPLYACTORIMPULSEWORLD_Z, APPLYACTORIMPULSEWORLD_REL_X, APPLYACTORIMPULSEWORLD_REL_Y, APPLYACTORIMPULSEWORLD_REL_Z ); - break; -case FN_clearActorForces: //Sub Procedure - rc_clearActorForces( CLEARACTORFORCES_ACTOR ); - break; -case FN_updateActorInertiaTensor: //Sub Procedure - rc_updateActorInertiaTensor( UPDATEACTORINERTIATENSOR_ACTOR ); - break; -case FN_getActorCOMPosition: //Sub Procedure - rc_getActorCOMPosition( GETACTORCOMPOSITION_ACTOR, &GETACTORCOMPOSITION_X, &GETACTORCOMPOSITION_Y, &GETACTORCOMPOSITION_Z ); - break; -case FN_getActorRotationQ: //Sub Procedure - rc_getActorRotationQ( GETACTORROTATIONQ_ACTOR, &GETACTORROTATIONQ_X, &GETACTORROTATIONQ_Y, &GETACTORROTATIONQ_Z, &GETACTORROTATIONQ_W ); - break; -case FN_getActorLinearVelocityWorld: //Sub Procedure - rc_getActorLinearVelocityWorld( GETACTORLINEARVELOCITYWORLD_ACTOR, &GETACTORLINEARVELOCITYWORLD_X, &GETACTORLINEARVELOCITYWORLD_Y, &GETACTORLINEARVELOCITYWORLD_Z ); - break; -case FN_getActorAngularVelocityWorld: //Sub Procedure - rc_getActorAngularVelocityWorld( GETACTORANGULARVELOCITYWORLD_ACTOR, &GETACTORANGULARVELOCITYWORLD_X, &GETACTORANGULARVELOCITYWORLD_Y, &GETACTORANGULARVELOCITYWORLD_Z ); - break; -case FN_setActorLinearVelocityLocal: //Sub Procedure - rc_setActorLinearVelocityLocal( SETACTORLINEARVELOCITYLOCAL_ACTOR, SETACTORLINEARVELOCITYLOCAL_X, SETACTORLINEARVELOCITYLOCAL_Y, SETACTORLINEARVELOCITYLOCAL_Z ); - break; -case FN_setActorLinearVelocityWorld: //Sub Procedure - rc_setActorLinearVelocityWorld( SETACTORLINEARVELOCITYWORLD_ACTOR, SETACTORLINEARVELOCITYWORLD_X, SETACTORLINEARVELOCITYWORLD_Y, SETACTORLINEARVELOCITYWORLD_Z ); - break; -case FN_setActorAngularVelocityLocal: //Sub Procedure - rc_setActorAngularVelocityLocal( SETACTORANGULARVELOCITYLOCAL_ACTOR, SETACTORANGULARVELOCITYLOCAL_X, SETACTORANGULARVELOCITYLOCAL_Y, SETACTORANGULARVELOCITYLOCAL_Z ); - break; -case FN_setActorAngularVelocityWorld: //Sub Procedure - rc_setActorAngularVelocityWorld( SETACTORANGULARVELOCITYWORLD_ACTOR, SETACTORANGULARVELOCITYWORLD_X, SETACTORANGULARVELOCITYWORLD_Y, SETACTORANGULARVELOCITYWORLD_Z ); - break; -case FN_getActorLocalPointVelocity: //Sub Procedure - rc_getActorLocalPointVelocity( GETACTORLOCALPOINTVELOCITY_ACTOR, GETACTORLOCALPOINTVELOCITY_REL_X, GETACTORLOCALPOINTVELOCITY_REL_Y, GETACTORLOCALPOINTVELOCITY_REL_Z, &GETACTORLOCALPOINTVELOCITY_X, &GETACTORLOCALPOINTVELOCITY_Y, &GETACTORLOCALPOINTVELOCITY_Z ); - break; -case FN_getActorLinearVelocityLocal: //Sub Procedure - rc_getActorLinearVelocityLocal( GETACTORLINEARVELOCITYLOCAL_ACTOR, &GETACTORLINEARVELOCITYLOCAL_X, &GETACTORLINEARVELOCITYLOCAL_Y, &GETACTORLINEARVELOCITYLOCAL_Z ); - break; -case FN_getActorAngularVelocityLocal: //Sub Procedure - rc_getActorAngularVelocityLocal( GETACTORANGULARVELOCITYLOCAL_ACTOR, &GETACTORANGULARVELOCITYLOCAL_X, &GETACTORANGULARVELOCITYLOCAL_Y, &GETACTORANGULARVELOCITYLOCAL_Z ); - break; -case FN_getActorAABB: //Sub Procedure - rc_getActorAABB( GETACTORAABB_ACTOR, &GETACTORAABB_MIN_X, &GETACTORAABB_MIN_Y, &GETACTORAABB_MIN_Z, &GETACTORAABB_MAX_X, &GETACTORAABB_MAX_Y, &GETACTORAABB_MAX_Z ); - break; -case FN_computeActorImpulseDenominator: //Number Function - rc_push_num(rc_computeActorImpulseDenominator( COMPUTEACTORIMPULSEDENOMINATOR_ACTOR, COMPUTEACTORIMPULSEDENOMINATOR_POS_X, COMPUTEACTORIMPULSEDENOMINATOR_POS_Y, COMPUTEACTORIMPULSEDENOMINATOR_POS_Z, COMPUTEACTORIMPULSEDENOMINATOR_NORMAL_X, COMPUTEACTORIMPULSEDENOMINATOR_NORMAL_Y, COMPUTEACTORIMPULSEDENOMINATOR_NORMAL_Z )); - break; -case FN_computeActorAngularImpulseDenominator: //Number Function - rc_push_num(rc_computeActorAngularImpulseDenominator( COMPUTEACTORANGULARIMPULSEDENOMINATOR_ACTOR, COMPUTEACTORANGULARIMPULSEDENOMINATOR_X, COMPUTEACTORANGULARIMPULSEDENOMINATOR_Y, COMPUTEACTORANGULARIMPULSEDENOMINATOR_Z )); - break; -case FN_setActorAngularFactor: //Sub Procedure - rc_setActorAngularFactor( SETACTORANGULARFACTOR_ACTOR, SETACTORANGULARFACTOR_X, SETACTORANGULARFACTOR_Y, SETACTORANGULARFACTOR_Z ); - break; -case FN_getActorAngularFactor: //Sub Procedure - rc_getActorAngularFactor( GETACTORANGULARFACTOR_ACTOR, &GETACTORANGULARFACTOR_X, &GETACTORANGULARFACTOR_Y, &GETACTORANGULARFACTOR_Z ); - break; -case FN_computeActorGyroImpulseLocal: //Sub Procedure - rc_computeActorGyroImpulseLocal( COMPUTEACTORGYROIMPULSELOCAL_ACTOR, COMPUTEACTORGYROIMPULSELOCAL_DT, &COMPUTEACTORGYROIMPULSELOCAL_X, &COMPUTEACTORGYROIMPULSELOCAL_Y, &COMPUTEACTORGYROIMPULSELOCAL_Z ); - break; -case FN_computeActorGyroImpulseWorld: //Sub Procedure - rc_computeActorGyroImpulseWorld( COMPUTEACTORGYROIMPULSEWORLD_ACTOR, COMPUTEACTORGYROIMPULSEWORLD_DT, &COMPUTEACTORGYROIMPULSEWORLD_X, &COMPUTEACTORGYROIMPULSEWORLD_Y, &COMPUTEACTORGYROIMPULSEWORLD_Z ); - break; -case FN_getActorLocalInertia: //Sub Procedure - rc_getActorLocalInertia( GETACTORLOCALINERTIA_ACTOR, &GETACTORLOCALINERTIA_X, &GETACTORLOCALINERTIA_Y, &GETACTORLOCALINERTIA_Z ); - break; -case FN_SetActorSleepState: //Sub Procedure - rc_setActorSleepState( SETACTORSLEEPSTATE_ACTOR, SETACTORSLEEPSTATE_STATE ); - break; -case FN_createPointConstraint: //Number Function - rc_push_num(rc_createPointConstraint( CREATEPOINTCONSTRAINT_ACTORA, CREATEPOINTCONSTRAINT_PXA, CREATEPOINTCONSTRAINT_PYA, CREATEPOINTCONSTRAINT_PZA )); - break; -case FN_createPointConstraintEx: //Number Function - rc_push_num(rc_createPointConstraintEx( CREATEPOINTCONSTRAINTEX_ACTORA, CREATEPOINTCONSTRAINTEX_ACTORB, CREATEPOINTCONSTRAINTEX_PXA, CREATEPOINTCONSTRAINTEX_PYA, CREATEPOINTCONSTRAINTEX_PZA, CREATEPOINTCONSTRAINTEX_PXB, CREATEPOINTCONSTRAINTEX_PYB, CREATEPOINTCONSTRAINTEX_PZB )); - break; -case FN_setPointPivotA: //Sub Procedure - rc_setPointPivotA( SETPOINTPIVOTA_CONSTRAINT_ID, SETPOINTPIVOTA_X, SETPOINTPIVOTA_Y, SETPOINTPIVOTA_Z ); - break; -case FN_setPointPivotB: //Sub Procedure - rc_setPointPivotB( SETPOINTPIVOTB_CONSTRAINT_ID, SETPOINTPIVOTB_X, SETPOINTPIVOTB_Y, SETPOINTPIVOTB_Z ); - break; -case FN_createHingeConstraint: //Number Function - rc_push_num(rc_createHingeConstraint( CREATEHINGECONSTRAINT_ACTORA, CREATEHINGECONSTRAINT_FRAMEA, CREATEHINGECONSTRAINT_USEREFERENCEFRAMEA )); - break; -case FN_createHingeConstraintEx: //Number Function - rc_push_num(rc_createHingeConstraintEx( CREATEHINGECONSTRAINTEX_ACTORA, CREATEHINGECONSTRAINTEX_ACTORB, CREATEHINGECONSTRAINTEX_FRAMEA, CREATEHINGECONSTRAINTEX_FRAMEB, CREATEHINGECONSTRAINTEX_USEREFERENCEFRAMEA )); - break; -case FN_createSlideConstraint: //Number Function - rc_push_num(rc_createSlideConstraint( CREATESLIDECONSTRAINT_ACTORA, CREATESLIDECONSTRAINT_FRAMEINB_MATRIX, CREATESLIDECONSTRAINT_USELINEARREFERENCEFRAMEA )); - break; -case FN_createSlideConstraintEx: //Number Function - rc_push_num(rc_createSlideConstraintEx( CREATESLIDECONSTRAINTEX_ACTORA, CREATESLIDECONSTRAINTEX_ACTORB, CREATESLIDECONSTRAINTEX_FRAMEINA_MATRIX, CREATESLIDECONSTRAINTEX_FRAMEINB_MATRIX, CREATESLIDECONSTRAINTEX_USELINEARREFERENCEFRAMEA )); - break; -case FN_createConeConstraint: //Number Function - rc_push_num(rc_createConeConstraint( CREATECONECONSTRAINT_ACTORA, CREATECONECONSTRAINT_RBAFRAME_MATRIX )); - break; -case FN_createConeConstraintEx: //Number Function - rc_push_num(rc_createConeConstraintEx( CREATECONECONSTRAINTEX_ACTORA, CREATECONECONSTRAINTEX_ACTORB, CREATECONECONSTRAINTEX_RBAFRAME_MATRIX, CREATECONECONSTRAINTEX_RBBFRAME_MATRIX )); - break; -case FN_deleteConstraint: //Sub Procedure - rc_deleteConstraint( DELETECONSTRAINT_CONSTRAINT_ID ); - break; -case FN_getConstraintFrameOffsetA: //Sub Procedure - rc_getConstraintFrameOffsetA( GETCONSTRAINTFRAMEOFFSETA_CONSTRAINT_ID, & GETCONSTRAINTFRAMEOFFSETA_X, & GETCONSTRAINTFRAMEOFFSETA_Y, & GETCONSTRAINTFRAMEOFFSETA_Z, & GETCONSTRAINTFRAMEOFFSETA_RX, & GETCONSTRAINTFRAMEOFFSETA_RY, & GETCONSTRAINTFRAMEOFFSETA_RZ ); - break; -case FN_getConstraintFrameOffsetB: //Sub Procedure - rc_getConstraintFrameOffsetB( GETCONSTRAINTFRAMEOFFSETB_CONSTRAINT_ID, & GETCONSTRAINTFRAMEOFFSETB_X, & GETCONSTRAINTFRAMEOFFSETB_Y, & GETCONSTRAINTFRAMEOFFSETB_Z, & GETCONSTRAINTFRAMEOFFSETB_RX, & GETCONSTRAINTFRAMEOFFSETB_RY, & GETCONSTRAINTFRAMEOFFSETB_RZ ); - break; -case FN_useConstraintFrameOffset: //Sub Procedure - rc_useConstraintFrameOffset( USECONSTRAINTFRAMEOFFSET_CONSTRAINT_ID, USECONSTRAINTFRAMEOFFSET_FLAG ); - break; -case FN_getHingeAngle: //Number Function - rc_push_num(rc_getHingeAngle( GETHINGEANGLE_CONSTRAINT_ID )); - break; -case FN_getHingeAngleEx: //Number Function - rc_push_num(rc_getHingeAngleEx( GETHINGEANGLEEX_CONSTRAINT_ID, GETHINGEANGLEEX_T_MATRIXA, GETHINGEANGLEEX_T_MATRIXB )); - break; -case FN_getConstraintBreakingImpulseThreshold: //Number Function - rc_push_num(rc_getConstraintBreakingImpulseThreshold( GETCONSTRAINTBREAKINGIMPULSETHRESHOLD_CONSTRAINT_ID )); - break; -case FN_getConstraintAFrame: //Number Function - rc_push_num(rc_getConstraintAFrame( GETCONSTRAINTAFRAME_CONSTRAINT_ID, GETCONSTRAINTAFRAME_MA )); - break; -case FN_getConstraintBFrame: //Number Function - rc_push_num(rc_getConstraintBFrame( GETCONSTRAINTBFRAME_CONSTRAINT_ID, GETCONSTRAINTBFRAME_MA )); - break; -case FN_setHingeAxis: //Sub Procedure - rc_setHingeAxis( SETHINGEAXIS_CONSTRAINT_ID, SETHINGEAXIS_X, SETHINGEAXIS_Y, SETHINGEAXIS_Z ); - break; -case FN_setConstraintBreakingImpulseThreshold: //Sub Procedure - rc_setConstraintBreakingImpulseThreshold( SETCONSTRAINTBREAKINGIMPULSETHRESHOLD_CONSTRAINT_ID, SETCONSTRAINTBREAKINGIMPULSETHRESHOLD_THRESHOLD ); - break; -case FN_setConstraintFrames: //Sub Procedure - rc_setConstraintFrames( SETCONSTRAINTFRAMES_CONSTRAINT_ID, SETCONSTRAINTFRAMES_FRAMEA_MATRIX, SETCONSTRAINTFRAMES_FRAMEB_MATRIX ); - break; -case FN_setHingeLimit: //Sub Procedure - rc_setHingeLimit( SETHINGELIMIT_CONSTRAINT_ID, SETHINGELIMIT_LOW, SETHINGELIMIT_HIGH, SETHINGELIMIT_SOFTNESS, SETHINGELIMIT_BIAS_FACTOR, SETHINGELIMIT_RELAXATION_FACTOR ); - break; -case FN_setConeLimit: //Sub Procedure - rc_setConeLimit( SETCONELIMIT_CONSTRAINT_ID, SETCONELIMIT_SWINGSPAN1, SETCONELIMIT_SWINGSPAN2, SETCONELIMIT_TWISTSPAN, SETCONELIMIT_SOFTNESS, SETCONELIMIT_BIAS_FACTOR, SETCONELIMIT_RELAXATION_FACTOR ); - break; -case FN_getHingeLimitBiasFactor: //Number Function - rc_push_num(rc_getHingeLimitBiasFactor( GETHINGELIMITBIASFACTOR_CONSTRAINT_ID )); - break; -case FN_getHingeLimitRelaxationFactor: //Number Function - rc_push_num(rc_getHingeLimitRelaxationFactor( GETHINGELIMITRELAXATIONFACTOR_CONSTRAINT_ID )); - break; -case FN_getHingeLimitSign: //Number Function - rc_push_num(rc_getHingeLimitSign( GETHINGELIMITSIGN_CONSTRAINT_ID )); - break; -case FN_getHingeSolveLimit: //Number Function - rc_push_num(rc_getHingeSolveLimit( GETHINGESOLVELIMIT_CONSTRAINT_ID )); - break; -case FN_useHingeReferenceFrameA: //Sub Procedure - rc_useHingeReferenceFrameA( USEHINGEREFERENCEFRAMEA_CONSTRAINT_ID, USEHINGEREFERENCEFRAMEA_FLAG ); - break; -case FN_getConstraintAppliedImpulse: //Number Function - rc_push_num(rc_getConstraintAppliedImpulse( GETCONSTRAINTAPPLIEDIMPULSE_CONSTRAINT_ID )); - break; -case FN_getConstraintFixedActor: //Number Function - rc_push_num(rc_getConstraintFixedActor( GETCONSTRAINTFIXEDACTOR_CONSTRAINT_ID )); - break; -case FN_getPointPivotA: //Sub Procedure - rc_getPointPivotA( GETPOINTPIVOTA_CONSTRAINT_ID, & GETPOINTPIVOTA_X, & GETPOINTPIVOTA_Y, & GETPOINTPIVOTA_Z ); - break; -case FN_getPointPivotB: //Sub Procedure - rc_getPointPivotB( GETPOINTPIVOTB_CONSTRAINT_ID, & GETPOINTPIVOTB_X, & GETPOINTPIVOTB_Y, & GETPOINTPIVOTB_Z ); - break; -case FN_getConstraintActorA: //Number Function - rc_push_num(rc_getConstraintActorA( GETCONSTRAINTACTORA_CONSTRAINT_ID )); - break; -case FN_getConstraintActorB: //Number Function - rc_push_num(rc_getConstraintActorB( GETCONSTRAINTACTORB_CONSTRAINT_ID )); - break; -case FN_setConstraintSolverIterations: //Sub Procedure - rc_setConstraintSolverIterations( SETCONSTRAINTSOLVERITERATIONS_CONSTRAINT_ID, SETCONSTRAINTSOLVERITERATIONS_NUM ); - break; -case FN_getConeBiasFactor: //Number Function - rc_push_num(rc_getConeBiasFactor( GETCONEBIASFACTOR_CONSTRAINT_ID )); - break; -case FN_getConeDamping: //Number Function - rc_push_num(rc_getConeDamping( GETCONEDAMPING_CONSTRAINT_ID )); - break; -case FN_getConeFixThresh: //Number Function - rc_push_num(rc_getConeFixThresh( GETCONEFIXTHRESH_CONSTRAINT_ID )); - break; -case FN_getConeLimit: //Number Function - rc_push_num(rc_getConeLimit( GETCONELIMIT_CONSTRAINT_ID, GETCONELIMIT_LIMIT_INDEX )); - break; -case FN_getConstraintLimitSoftness: //Number Function - rc_push_num(rc_getConstraintLimitSoftness( GETCONSTRAINTLIMITSOFTNESS_CONSTRAINT_ID )); - break; -case FN_getConstraintSolverIterations: //Number Function - rc_push_num(rc_getConstraintSolverIterations( GETCONSTRAINTSOLVERITERATIONS_CONSTRAINT_ID )); - break; -case FN_getConeAnglePoint: //Sub Procedure - rc_getConeAnglePoint( GETCONEANGLEPOINT_CONSTRAINT_ID, GETCONEANGLEPOINT_ANGLE, GETCONEANGLEPOINT_C_LEN, & GETCONEANGLEPOINT_X, & GETCONEANGLEPOINT_Y, & GETCONEANGLEPOINT_Z ); - break; -case FN_getConstraintAngularOnly: //Number Function - rc_push_num(rc_getConstraintAngularOnly( GETCONSTRAINTANGULARONLY_CONSTRAINT_ID )); - break; -case FN_getConeSolveSwingLimit: //Number Function - rc_push_num(rc_getConeSolveSwingLimit( GETCONESOLVESWINGLIMIT_CONSTRAINT_ID )); - break; -case FN_getConeSolveTwistLimit: //Number Function - rc_push_num(rc_getConeSolveTwistLimit( GETCONESOLVETWISTLIMIT_CONSTRAINT_ID )); - break; -case FN_getConeSwingSpan1: //Number Function - rc_push_num(rc_getConeSwingSpan1( GETCONESWINGSPAN1_CONSTRAINT_ID )); - break; -case FN_getConeSwingSpan2: //Number Function - rc_push_num(rc_getConeSwingSpan2( GETCONESWINGSPAN2_CONSTRAINT_ID )); - break; -case FN_getConeTwistAngle: //Number Function - rc_push_num(rc_getConeTwistAngle( GETCONETWISTANGLE_CONSTRAINT_ID )); - break; -case FN_getConeTwistLimitSign: //Number Function - rc_push_num(rc_getConeTwistLimitSign( GETCONETWISTLIMITSIGN_CONSTRAINT_ID )); - break; -case FN_getConeTwistSpan: //Number Function - rc_push_num(rc_getConeTwistSpan( GETCONETWISTSPAN_CONSTRAINT_ID )); - break; -case FN_setConstraintAngularOnly: //Sub Procedure - rc_setConstraintAngularOnly( SETCONSTRAINTANGULARONLY_CONSTRAINT_ID, SETCONSTRAINTANGULARONLY_FLAG ); - break; -case FN_setConeDamping: //Sub Procedure - rc_setConeDamping( SETCONEDAMPING_CONSTRAINT_ID, SETCONEDAMPING_DAMPING ); - break; -case FN_setConeFixThresh: //Sub Procedure - rc_setConeFixThresh( SETCONEFIXTHRESH_CONSTRAINT_ID, SETCONEFIXTHRESH_FIXTHRESH ); - break; -case FN_getSlideAnchorA: //Sub Procedure - rc_getSlideAnchorA( GETSLIDEANCHORA_CONSTRAINT_ID, & GETSLIDEANCHORA_X, & GETSLIDEANCHORA_Y, & GETSLIDEANCHORA_Z ); - break; -case FN_getSlideAnchorB: //Sub Procedure - rc_getSlideAnchorB( GETSLIDEANCHORB_CONSTRAINT_ID, & GETSLIDEANCHORB_X, & GETSLIDEANCHORB_Y, & GETSLIDEANCHORB_Z ); - break; -case FN_getSlideAngDepth: //Number Function - rc_push_num(rc_getSlideAngDepth( GETSLIDEANGDEPTH_CONSTRAINT_ID )); - break; -case FN_getSlideAngularPos: //Number Function - rc_push_num(rc_getSlideAngularPos( GETSLIDEANGULARPOS_CONSTRAINT_ID )); - break; -case FN_getSlideDampingDirAng: //Number Function - rc_push_num(rc_getSlideDampingDirAng( GETSLIDEDAMPINGDIRANG_CONSTRAINT_ID )); - break; -case FN_getSlideDampingDirLin: //Number Function - rc_push_num(rc_getSlideDampingDirLin( GETSLIDEDAMPINGDIRLIN_CONSTRAINT_ID )); - break; -case FN_getSlideDampingLimAng: //Number Function - rc_push_num(rc_getSlideDampingLimAng( GETSLIDEDAMPINGLIMANG_CONSTRAINT_ID )); - break; -case FN_getSlideDampingLimLin: //Number Function - rc_push_num(rc_getSlideDampingLimLin( GETSLIDEDAMPINGLIMLIN_CONSTRAINT_ID )); - break; -case FN_getSlideDampingOrthoAng: //Number Function - rc_push_num(rc_getSlideDampingOrthoAng( GETSLIDEDAMPINGORTHOANG_CONSTRAINT_ID )); - break; -case FN_getSlideDampingOrthoLin: //Number Function - rc_push_num(rc_getSlideDampingOrthoLin( GETSLIDEDAMPINGORTHOLIN_CONSTRAINT_ID )); - break; -case FN_getSlideLinearPos: //Number Function - rc_push_num(rc_getSlideLinearPos( GETSLIDELINEARPOS_CONSTRAINT_ID )); - break; -case FN_getSlideLinDepth: //Number Function - rc_push_num(rc_getSlideLinDepth( GETSLIDELINDEPTH_CONSTRAINT_ID )); - break; -case FN_getSlideLowerAngLimit: //Number Function - rc_push_num(rc_getSlideLowerAngLimit( GETSLIDELOWERANGLIMIT_CONSTRAINT_ID )); - break; -case FN_getSlideLowerLinLimit: //Number Function - rc_push_num(rc_getSlideLowerLinLimit( GETSLIDELOWERLINLIMIT_CONSTRAINT_ID )); - break; -case FN_getSlideRestitutionDirAng: //Number Function - rc_push_num(rc_getSlideRestitutionDirAng( GETSLIDERESTITUTIONDIRANG_CONSTRAINT_ID )); - break; -case FN_getSlideRestitutionDirLin: //Number Function - rc_push_num(rc_getSlideRestitutionDirLin( GETSLIDERESTITUTIONDIRLIN_CONSTRAINT_ID )); - break; -case FN_getSlideRestitutionLimAng: //Number Function - rc_push_num(rc_getSlideRestitutionLimAng( GETSLIDERESTITUTIONLIMANG_CONSTRAINT_ID )); - break; -case FN_getSlideRestitutionLimLin: //Number Function - rc_push_num(rc_getSlideRestitutionLimLin( GETSLIDERESTITUTIONLIMLIN_CONSTRAINT_ID )); - break; -case FN_getSlideRestitutionOrthoAng: //Number Function - rc_push_num(rc_getSlideRestitutionOrthoAng( GETSLIDERESTITUTIONORTHOANG_CONSTRAINT_ID )); - break; -case FN_getSlideRestitutionOrthoLin: //Number Function - rc_push_num(rc_getSlideRestitutionOrthoLin( GETSLIDERESTITUTIONORTHOLIN_CONSTRAINT_ID )); - break; -case FN_getSlideSoftnessDirAng: //Number Function - rc_push_num(rc_getSlideSoftnessDirAng( GETSLIDESOFTNESSDIRANG_CONSTRAINT_ID )); - break; -case FN_getSlideSoftnessDirLin: //Number Function - rc_push_num(rc_getSlideSoftnessDirLin( GETSLIDESOFTNESSDIRLIN_CONSTRAINT_ID )); - break; -case FN_getSlideSoftnessLimAng: //Number Function - rc_push_num(rc_getSlideSoftnessLimAng( GETSLIDESOFTNESSLIMANG_CONSTRAINT_ID )); - break; -case FN_getSlideSoftnessLimLin: //Number Function - rc_push_num(rc_getSlideSoftnessLimLin( GETSLIDESOFTNESSLIMLIN_CONSTRAINT_ID )); - break; -case FN_getSlideSoftnessOrthoAng: //Number Function - rc_push_num(rc_getSlideSoftnessOrthoAng( GETSLIDESOFTNESSORTHOANG_CONSTRAINT_ID )); - break; -case FN_getSlideSoftnessOrthoLin: //Number Function - rc_push_num(rc_getSlideSoftnessOrthoLin( GETSLIDESOFTNESSORTHOLIN_CONSTRAINT_ID )); - break; -case FN_getSlideSolveAngLimit: //Number Function - rc_push_num(rc_getSlideSolveAngLimit( GETSLIDESOLVEANGLIMIT_CONSTRAINT_ID )); - break; -case FN_getSlideSolveLinLimit: //Number Function - rc_push_num(rc_getSlideSolveLinLimit( GETSLIDESOLVELINLIMIT_CONSTRAINT_ID )); - break; -case FN_getSlideUpperAngLimit: //Number Function - rc_push_num(rc_getSlideUpperAngLimit( GETSLIDEUPPERANGLIMIT_CONSTRAINT_ID )); - break; -case FN_getSlideUpperLinLimit: //Number Function - rc_push_num(rc_getSlideUpperLinLimit( GETSLIDEUPPERLINLIMIT_CONSTRAINT_ID )); - break; -case FN_getSlideUseFrameOffset: //Number Function - rc_push_num(rc_getSlideUseFrameOffset( GETSLIDEUSEFRAMEOFFSET_CONSTRAINT_ID )); - break; -case FN_setSlideDampingDirAng: //Sub Procedure - rc_setSlideDampingDirAng( SETSLIDEDAMPINGDIRANG_CONSTRAINT_ID, SETSLIDEDAMPINGDIRANG_N ); - break; -case FN_setSlideDampingDirLin: //Sub Procedure - rc_setSlideDampingDirLin( SETSLIDEDAMPINGDIRLIN_CONSTRAINT_ID, SETSLIDEDAMPINGDIRLIN_N ); - break; -case FN_setSlideDampingLimAng: //Sub Procedure - rc_setSlideDampingLimAng( SETSLIDEDAMPINGLIMANG_CONSTRAINT_ID, SETSLIDEDAMPINGLIMANG_N ); - break; -case FN_setSlideDampingLimLin: //Sub Procedure - rc_setSlideDampingLimLin( SETSLIDEDAMPINGLIMLIN_CONSTRAINT_ID, SETSLIDEDAMPINGLIMLIN_N ); - break; -case FN_setSlideDampingOrthoAng: //Sub Procedure - rc_setSlideDampingOrthoAng( SETSLIDEDAMPINGORTHOANG_CONSTRAINT_ID, SETSLIDEDAMPINGORTHOANG_N ); - break; -case FN_setSlideDampingOrthoLin: //Sub Procedure - rc_setSlideDampingOrthoLin( SETSLIDEDAMPINGORTHOLIN_CONSTRAINT_ID, SETSLIDEDAMPINGORTHOLIN_N ); - break; -case FN_setSlideLowerAngLimit: //Sub Procedure - rc_setSlideLowerAngLimit( SETSLIDELOWERANGLIMIT_CONSTRAINT_ID, SETSLIDELOWERANGLIMIT_N ); - break; -case FN_setSlideLowerLinLimit: //Sub Procedure - rc_setSlideLowerLinLimit( SETSLIDELOWERLINLIMIT_CONSTRAINT_ID, SETSLIDELOWERLINLIMIT_N ); - break; -case FN_setSlideRestitutionDirAng: //Sub Procedure - rc_setSlideRestitutionDirAng( SETSLIDERESTITUTIONDIRANG_CONSTRAINT_ID, SETSLIDERESTITUTIONDIRANG_N ); - break; -case FN_setSlideRestitutionDirLin: //Sub Procedure - rc_setSlideRestitutionDirLin( SETSLIDERESTITUTIONDIRLIN_CONSTRAINT_ID, SETSLIDERESTITUTIONDIRLIN_N ); - break; -case FN_setSlideRestitutionLimAng: //Sub Procedure - rc_setSlideRestitutionLimAng( SETSLIDERESTITUTIONLIMANG_CONSTRAINT_ID, SETSLIDERESTITUTIONLIMANG_N ); - break; -case FN_setSlideRestitutionLimLin: //Sub Procedure - rc_setSlideRestitutionLimLin( SETSLIDERESTITUTIONLIMLIN_CONSTRAINT_ID, SETSLIDERESTITUTIONLIMLIN_N ); - break; -case FN_setSlideRestitutionOrthoAng: //Sub Procedure - rc_setSlideRestitutionOrthoAng( SETSLIDERESTITUTIONORTHOANG_CONSTRAINT_ID, SETSLIDERESTITUTIONORTHOANG_N ); - break; -case FN_setSlideRestitutionOrthoLin: //Sub Procedure - rc_setSlideRestitutionOrthoLin( SETSLIDERESTITUTIONORTHOLIN_CONSTRAINT_ID, SETSLIDERESTITUTIONORTHOLIN_N ); - break; -case FN_setSlideSoftnessDirAng: //Sub Procedure - rc_setSlideSoftnessDirAng( SETSLIDESOFTNESSDIRANG_CONSTRAINT_ID, SETSLIDESOFTNESSDIRANG_N ); - break; -case FN_setSlideSoftnessDirLin: //Sub Procedure - rc_setSlideSoftnessDirLin( SETSLIDESOFTNESSDIRLIN_CONSTRAINT_ID, SETSLIDESOFTNESSDIRLIN_N ); - break; -case FN_setSlideSoftnessLimAng: //Sub Procedure - rc_setSlideSoftnessLimAng( SETSLIDESOFTNESSLIMANG_CONSTRAINT_ID, SETSLIDESOFTNESSLIMANG_N ); - break; -case FN_setSlideSoftnessLimLin: //Sub Procedure - rc_setSlideSoftnessLimLin( SETSLIDESOFTNESSLIMLIN_CONSTRAINT_ID, SETSLIDESOFTNESSLIMLIN_N ); - break; -case FN_setSlideSoftnessOrthoAng: //Sub Procedure - rc_setSlideSoftnessOrthoAng( SETSLIDESOFTNESSORTHOANG_CONSTRAINT_ID, SETSLIDESOFTNESSORTHOANG_N ); - break; -case FN_setSlideSoftnessOrthoLin: //Sub Procedure - rc_setSlideSoftnessOrthoLin( SETSLIDESOFTNESSORTHOLIN_CONSTRAINT_ID, SETSLIDESOFTNESSORTHOLIN_N ); - break; -case FN_setSlideUpperAngLimit: //Sub Procedure - rc_setSlideUpperAngLimit( SETSLIDEUPPERANGLIMIT_CONSTRAINT_ID, SETSLIDEUPPERANGLIMIT_N ); - break; -case FN_setSlideUpperLinLimit: //Sub Procedure - rc_setSlideUpperLinLimit( SETSLIDEUPPERLINLIMIT_CONSTRAINT_ID, SETSLIDEUPPERLINLIMIT_N ); - break; -case FN_ConstraintExists: //Number Function - rc_push_num(rc_constraintExists( CONSTRAINTEXISTS_CONSTRAINT_ID )); - break; -case FN_SetCameraPosition: //Sub Procedure - rc_setCameraPosition( SETCAMERAPOSITION_X, SETCAMERAPOSITION_Y, SETCAMERAPOSITION_Z ); - break; -case FN_GetCameraPosition: //Sub Procedure - rc_getCameraPosition( &GETCAMERAPOSITION_X, &GETCAMERAPOSITION_Y, &GETCAMERAPOSITION_Z ); - break; -case FN_TranslateCamera: //Sub Procedure - rc_translateCamera( TRANSLATECAMERA_X, TRANSLATECAMERA_Y, TRANSLATECAMERA_Z ); - break; -case FN_SetCameraRotation: //Sub Procedure - rc_setCameraRotation( SETCAMERAROTATION_X, SETCAMERAROTATION_Y, SETCAMERAROTATION_Z ); - break; -case FN_GetCameraRotation: //Sub Procedure - rc_getCameraRotation( &GETCAMERAROTATION_X, &GETCAMERAROTATION_Y, &GETCAMERAROTATION_Z ); - break; -case FN_RotateCamera: //Sub Procedure - rc_rotateCamera( ROTATECAMERA_X, ROTATECAMERA_Y, ROTATECAMERA_Z ); - break; -case FN_SetCameraFOV: //Sub Procedure - rc_setCameraFOV( SETCAMERAFOV_FOV ); - break; -case FN_GetCameraFOV: //Number Function - rc_push_num(rc_getCameraFOV( )); - break; -case FN_SetCameraAspectRatio: //Sub Procedure - rc_setCameraAspectRatio( SETCAMERAASPECTRATIO_ASPECT ); - break; -case FN_GetCameraAspectRatio: //Number Function - rc_push_num(rc_getCameraAspectRatio( )); - break; -case FN_SetCameraFarValue: //Sub Procedure - rc_setCameraFarValue( SETCAMERAFARVALUE_ZF ); - break; -case FN_GetCameraFarValue: //Number Function - rc_push_num(rc_getCameraFarValue( )); - break; -case FN_SetCameraNearValue: //Sub Procedure - rc_setCameraNearValue( SETCAMERANEARVALUE_ZN ); - break; -case FN_GetCameraNearValue: //Number Function - rc_push_num(rc_getCameraNearValue( )); - break; -case FN_SetProjectionMatrix: //Sub Procedure - rc_setProjectionMatrix( SETPROJECTIONMATRIX_MATA, SETPROJECTIONMATRIX_PROJECTION_TYPE ); - break; -case FN_GetProjectionMatrix: //Sub Procedure - rc_getProjectionMatrix( GETPROJECTIONMATRIX_MATA ); - break; -case FN_GetWorldToViewportPosition: //Sub Procedure - rc_getWorldToViewportPosition( GETWORLDTOVIEWPORTPOSITION_X, GETWORLDTOVIEWPORTPOSITION_Y, GETWORLDTOVIEWPORTPOSITION_Z, &GETWORLDTOVIEWPORTPOSITION_VX, &GETWORLDTOVIEWPORTPOSITION_VY ); - break; -case FN_AddSceneSkyBox: //Sub Procedure - rc_addSceneSkyBox( ADDSCENESKYBOX_IMG_TOP, ADDSCENESKYBOX_IMG_BOTTOM, ADDSCENESKYBOX_IMG_LEFT, ADDSCENESKYBOX_IMG_RIGHT, ADDSCENESKYBOX_IMG_FRONT, ADDSCENESKYBOX_IMG_BACK ); - break; -case FN_AddSceneSkyDome: //Sub Procedure - rc_addSceneSkyDome( ADDSCENESKYDOME_IMG ); - break; -case FN_AddSceneSkyDomeEx: //Sub Procedure - rc_addSceneSkyDomeEx( ADDSCENESKYDOMEEX_IMG, ADDSCENESKYDOMEEX_HORIRES, ADDSCENESKYDOMEEX_VERTRES, ADDSCENESKYDOMEEX_TXPERCENTAGE, ADDSCENESKYDOMEEX_SPHEREPERCENTAGE, ADDSCENESKYDOMEEX_RADIUS ); - break; -case FN_RemoveSceneSky: //Sub Procedure - rc_removeSceneSky( ); - break; -case FN_SetWorld3DMaxSubSteps: //Sub Procedure - rc_setWorld3DMaxSubSteps( SETWORLD3DMAXSUBSTEPS_STEPS ); - break; -case FN_SetWorld3DTimeStep: //Sub Procedure - rc_setWorld3DTimeStep( SETWORLD3DTIMESTEP_TS ); - break; -case FN_startParticleEmitter: //Sub Procedure - rc_startParticleEmitter( STARTPARTICLEEMITTER_ACTOR ); - break; -case FN_stopParticleEmitter: //Sub Procedure - rc_stopParticleEmitter( STOPPARTICLEEMITTER_ACTOR ); - break; -case FN_setParticleDirection: //Sub Procedure - rc_setParticleDirection( SETPARTICLEDIRECTION_ACTOR, SETPARTICLEDIRECTION_X, SETPARTICLEDIRECTION_Y, SETPARTICLEDIRECTION_Z ); - break; -case FN_getParticleDirection: //Sub Procedure - rc_getParticleDirection( GETPARTICLEDIRECTION_ACTOR, & GETPARTICLEDIRECTION_X, & GETPARTICLEDIRECTION_Y, & GETPARTICLEDIRECTION_Z ); - break; -case FN_useParticleEveryMeshVertex: //Sub Procedure - rc_useParticleEveryMeshVertex( USEPARTICLEEVERYMESHVERTEX_ACTOR, USEPARTICLEEVERYMESHVERTEX_FLAG ); - break; -case FN_particleIsUsingEveryMeshVertex: //Number Function - rc_push_num(rc_particleIsUsingEveryMeshVertex( PARTICLEISUSINGEVERYMESHVERTEX_ACTOR )); - break; -case FN_setParticleNormalDirectionMod: //Sub Procedure - rc_setParticleNormalDirectionMod( SETPARTICLENORMALDIRECTIONMOD_ACTOR, SETPARTICLENORMALDIRECTIONMOD_ND_MOD ); - break; -case FN_getParticleNormalDirectionMod: //Number Function - rc_push_num(rc_getParticleNormalDirectionMod( GETPARTICLENORMALDIRECTIONMOD_ACTOR )); - break; -case FN_useParticleNormalDirection: //Sub Procedure - rc_useParticleNormalDirection( USEPARTICLENORMALDIRECTION_ACTOR, USEPARTICLENORMALDIRECTION_FLAG ); - break; -case FN_particleIsUsingNormalDirection: //Number Function - rc_push_num(rc_particleIsUsingNormalDirection( PARTICLEISUSINGNORMALDIRECTION_ACTOR )); - break; -case FN_setParticleMesh: //Sub Procedure - rc_setParticleMesh( SETPARTICLEMESH_ACTOR, SETPARTICLEMESH_MESH ); - break; -case FN_setMinParticlesPerSecond: //Sub Procedure - rc_setMinParticlesPerSecond( SETMINPARTICLESPERSECOND_ACTOR, SETMINPARTICLESPERSECOND_MINPARTICLESPERSECOND ); - break; -case FN_getMinParticlesPerSecond: //Number Function - rc_push_num(rc_getMinParticlesPerSecond( GETMINPARTICLESPERSECOND_ACTOR )); - break; -case FN_setMaxParticlesPerSecond: //Sub Procedure - rc_setMaxParticlesPerSecond( SETMAXPARTICLESPERSECOND_ACTOR, SETMAXPARTICLESPERSECOND_MAXPARTICLESPERSECOND ); - break; -case FN_getMaxParticlesPerSecond: //Number Function - rc_push_num(rc_getMaxParticlesPerSecond( GETMAXPARTICLESPERSECOND_ACTOR )); - break; -case FN_setParticleMinStartColor: //Sub Procedure - rc_setParticleMinStartColor( SETPARTICLEMINSTARTCOLOR_ACTOR, SETPARTICLEMINSTARTCOLOR_COLOR ); - break; -case FN_getParticleMinStartColor: //Number Function - rc_push_num(rc_getParticleMinStartColor( GETPARTICLEMINSTARTCOLOR_ACTOR )); - break; -case FN_setParticleMaxStartColor: //Sub Procedure - rc_setParticleMaxStartColor( SETPARTICLEMAXSTARTCOLOR_ACTOR, SETPARTICLEMAXSTARTCOLOR_COLOR ); - break; -case FN_getParticleMaxStartColor: //Number Function - rc_push_num(rc_getParticleMaxStartColor( GETPARTICLEMAXSTARTCOLOR_ACTOR )); - break; -case FN_setParticleMinLife: //Sub Procedure - rc_setParticleMinLife( SETPARTICLEMINLIFE_ACTOR, SETPARTICLEMINLIFE_MINLIFE ); - break; -case FN_getParticleMinLife: //Number Function - rc_push_num(rc_getParticleMinLife( GETPARTICLEMINLIFE_ACTOR )); - break; -case FN_setParticleMaxLife: //Sub Procedure - rc_setParticleMaxLife( SETPARTICLEMAXLIFE_ACTOR, SETPARTICLEMAXLIFE_MAXLIFE ); - break; -case FN_getParticleMaxLife: //Number Function - rc_push_num(rc_getParticleMaxLife( GETPARTICLEMAXLIFE_ACTOR )); - break; -case FN_setParticleMaxAngle: //Sub Procedure - rc_setParticleMaxAngle( SETPARTICLEMAXANGLE_ACTOR, SETPARTICLEMAXANGLE_MAXANGLE ); - break; -case FN_getParticleMaxAngle: //Number Function - rc_push_num(rc_getParticleMaxAngle( GETPARTICLEMAXANGLE_ACTOR )); - break; -case FN_setParticleMinStartSize: //Sub Procedure - rc_setParticleMinStartSize( SETPARTICLEMINSTARTSIZE_ACTOR, SETPARTICLEMINSTARTSIZE_W, SETPARTICLEMINSTARTSIZE_H ); - break; -case FN_getParticleMinStartSize: //Sub Procedure - rc_getParticleMinStartSize( GETPARTICLEMINSTARTSIZE_ACTOR, & GETPARTICLEMINSTARTSIZE_W, & GETPARTICLEMINSTARTSIZE_H ); - break; -case FN_setParticleMaxStartSize: //Sub Procedure - rc_setParticleMaxStartSize( SETPARTICLEMAXSTARTSIZE_ACTOR, SETPARTICLEMAXSTARTSIZE_W, SETPARTICLEMAXSTARTSIZE_H ); - break; -case FN_getParticleMaxStartSize: //Sub Procedure - rc_getParticleMaxStartSize( GETPARTICLEMAXSTARTSIZE_ACTOR, & GETPARTICLEMAXSTARTSIZE_W, & GETPARTICLEMAXSTARTSIZE_H ); - break; -case FN_setParticleCenter: //Sub Procedure - rc_setParticleCenter( SETPARTICLECENTER_ACTOR, SETPARTICLECENTER_X, SETPARTICLECENTER_Y, SETPARTICLECENTER_Z ); - break; -case FN_getParticleCenter: //Sub Procedure - rc_getParticleCenter( GETPARTICLECENTER_ACTOR, & GETPARTICLECENTER_X, & GETPARTICLECENTER_Y, & GETPARTICLECENTER_Z ); - break; -case FN_setParticleRadius: //Sub Procedure - rc_setParticleRadius( SETPARTICLERADIUS_ACTOR, SETPARTICLERADIUS_RADIUS ); - break; -case FN_getParticleRadius: //Number Function - rc_push_num(rc_getParticleRadius( GETPARTICLERADIUS_ACTOR )); - break; -case FN_setParticleRingThickness: //Sub Procedure - rc_setParticleRingThickness( SETPARTICLERINGTHICKNESS_ACTOR, SETPARTICLERINGTHICKNESS_RINGTHICKNESS ); - break; -case FN_getParticleRingThickness: //Number Function - rc_push_num(rc_getParticleRingThickness( GETPARTICLERINGTHICKNESS_ACTOR )); - break; -case FN_setParticleBox: //Sub Procedure - rc_setParticleBox( SETPARTICLEBOX_ACTOR, SETPARTICLEBOX_MIN_X, SETPARTICLEBOX_MIN_Y, SETPARTICLEBOX_MIN_Z, SETPARTICLEBOX_MAX_X, SETPARTICLEBOX_MAX_Y, SETPARTICLEBOX_MAX_Z ); - break; -case FN_getParticleBox: //Sub Procedure - rc_getParticleBox( GETPARTICLEBOX_ACTOR, & GETPARTICLEBOX_MIN_X, & GETPARTICLEBOX_MIN_Y, & GETPARTICLEBOX_MIN_Z, & GETPARTICLEBOX_MAX_X, & GETPARTICLEBOX_MAX_Y, & GETPARTICLEBOX_MAX_Z ); - break; -case FN_setParticleNormal: //Sub Procedure - rc_setParticleNormal( SETPARTICLENORMAL_ACTOR, SETPARTICLENORMAL_X, SETPARTICLENORMAL_Y, SETPARTICLENORMAL_Z ); - break; -case FN_getParticleNormal: //Sub Procedure - rc_getParticleNormal( GETPARTICLENORMAL_ACTOR, & GETPARTICLENORMAL_X, & GETPARTICLENORMAL_Y, & GETPARTICLENORMAL_Z ); - break; -case FN_setParticleLength: //Sub Procedure - rc_setParticleLength( SETPARTICLELENGTH_ACTOR, SETPARTICLELENGTH_P_LEN ); - break; -case FN_getParticleLength: //Number Function - rc_push_num(rc_getParticleLength( GETPARTICLELENGTH_ACTOR )); - break; -case FN_useParticleOutlineOnly: //Sub Procedure - rc_useParticleOutlineOnly( USEPARTICLEOUTLINEONLY_ACTOR, USEPARTICLEOUTLINEONLY_FLAG ); - break; -case FN_particleIsUsingOutlineOnly: //Number Function - rc_push_num(rc_particleIsUsingOutlineOnly( PARTICLEISUSINGOUTLINEONLY_ACTOR )); - break; -case FN_getParticleType: //Number Function - rc_push_num(rc_getParticleType( GETPARTICLETYPE_ACTOR )); - break; -case FN_lightIsCastingShadow: //Number Function - rc_push_num(rc_lightIsCastingShadow( LIGHTISCASTINGSHADOW_ACTOR )); - break; -case FN_getLightType: //Number Function - rc_push_num(rc_getLightType( GETLIGHTTYPE_ACTOR )); - break; -case FN_getLightRadius: //Number Function - rc_push_num(rc_getLightRadius( GETLIGHTRADIUS_ACTOR )); - break; -case FN_setLightType: //Sub Procedure - rc_setLightType( SETLIGHTTYPE_ACTOR, SETLIGHTTYPE_LIGHT_TYPE ); - break; -case FN_setLightRadius: //Sub Procedure - rc_setLightRadius( SETLIGHTRADIUS_ACTOR, SETLIGHTRADIUS_RADIUS ); - break; -case FN_setLightShadowCast: //Sub Procedure - rc_setLightShadowCast( SETLIGHTSHADOWCAST_ACTOR, SETLIGHTSHADOWCAST_FLAG ); - break; -case FN_SetLightAmbientColor: //Sub Procedure - rc_setLightAmbientColor( SETLIGHTAMBIENTCOLOR_ACTOR, SETLIGHTAMBIENTCOLOR_COLOR ); - break; -case FN_GetLightAmbientColor: //Number Function - rc_push_num(rc_getLightAmbientColor( GETLIGHTAMBIENTCOLOR_ACTOR )); - break; -case FN_SetLightAttenuation: //Sub Procedure - rc_setLightAttenuation( SETLIGHTATTENUATION_ACTOR, SETLIGHTATTENUATION_L_CONSTANT, SETLIGHTATTENUATION_L_LINEAR, SETLIGHTATTENUATION_L_QUADRATIC ); - break; -case FN_GetLightAttenuation: //Sub Procedure - rc_getLightAttenuation( GETLIGHTATTENUATION_ACTOR, &GETLIGHTATTENUATION_CONSTANT, &GETLIGHTATTENUATION_LINEAR, &GETLIGHTATTENUATION_QUADRATIC ); - break; -case FN_SetLightDiffuseColor: //Sub Procedure - rc_setLightDiffuseColor( SETLIGHTDIFFUSECOLOR_ACTOR, SETLIGHTDIFFUSECOLOR_COLOR ); - break; -case FN_GetLightDiffuseColor: //Number Function - rc_push_num(rc_getLightDiffuseColor( GETLIGHTDIFFUSECOLOR_ACTOR )); - break; -case FN_SetLightFalloff: //Sub Procedure - rc_setLightFalloff( SETLIGHTFALLOFF_ACTOR, SETLIGHTFALLOFF_FALLOFF ); - break; -case FN_GetLightFalloff: //Number Function - rc_push_num(rc_getLightFalloff( GETLIGHTFALLOFF_ACTOR )); - break; -case FN_SetLightInnerCone: //Sub Procedure - rc_setLightInnerCone( SETLIGHTINNERCONE_ACTOR, SETLIGHTINNERCONE_ANGLE ); - break; -case FN_GetLightInnerCone: //Number Function - rc_push_num(rc_getLightInnerCone( GETLIGHTINNERCONE_ACTOR )); - break; -case FN_SetLightOuterCone: //Sub Procedure - rc_setLightOuterCone( SETLIGHTOUTERCONE_ACTOR, SETLIGHTOUTERCONE_ANGLE ); - break; -case FN_GetLightOuterCone: //Number Function - rc_push_num(rc_getLightOuterCone( GETLIGHTOUTERCONE_ACTOR )); - break; -case FN_SetLightSpecularColor: //Sub Procedure - rc_setLightSpecularColor( SETLIGHTSPECULARCOLOR_ACTOR, SETLIGHTSPECULARCOLOR_COLOR ); - break; -case FN_GetLightSpecularColor: //Number Function - rc_push_num(rc_getLightSpecularColor( GETLIGHTSPECULARCOLOR_ACTOR )); - break; -case FN_GetTerrainPatchAABB: //Sub Procedure - rc_getTerrainPatchAABB( GETTERRAINPATCHAABB_ACTOR, GETTERRAINPATCHAABB_PATCHX, GETTERRAINPATCHAABB_PATCHZ, &GETTERRAINPATCHAABB_MINX, &GETTERRAINPATCHAABB_MINY, &GETTERRAINPATCHAABB_MINZ, &GETTERRAINPATCHAABB_MAXX, &GETTERRAINPATCHAABB_MAXY, &GETTERRAINPATCHAABB_MAXZ ); - break; -case FN_GetTerrainPatchLOD: //Number Function - rc_push_num(rc_getTerrainPatchLOD( GETTERRAINPATCHLOD_ACTOR, GETTERRAINPATCHLOD_PATCHX, GETTERRAINPATCHLOD_PATCHZ )); - break; -case FN_GetTerrainHeight: //Number Function - rc_push_num(rc_getTerrainHeight( GETTERRAINHEIGHT_ACTOR, GETTERRAINHEIGHT_PATCHX, GETTERRAINHEIGHT_PATCHZ )); - break; -case FN_GetTerrainCenter: //Sub Procedure - rc_getTerrainCenter( GETTERRAINCENTER_ACTOR, &GETTERRAINCENTER_X, &GETTERRAINCENTER_Y, &GETTERRAINCENTER_Z ); - break; -case FN_SetTerrainLODDistance: //Sub Procedure - rc_setTerrainLODDistance( SETTERRAINLODDISTANCE_ACTOR, SETTERRAINLODDISTANCE_LOD, SETTERRAINLODDISTANCE_DISTANCE ); - break; -case FN_ScaleTerrainTexture: //Sub Procedure - rc_scaleTerrainTexture( SCALETERRAINTEXTURE_ACTOR, SCALETERRAINTEXTURE_SCALE, SCALETERRAINTEXTURE_SCALE2 ); - break; -case FN_SetTerrainCameraMovementDelta: //Sub Procedure - rc_setTerrainCameraMovementDelta( SETTERRAINCAMERAMOVEMENTDELTA_ACTOR, SETTERRAINCAMERAMOVEMENTDELTA_DELTA ); - break; -case FN_SetTerrainCameraRotationDelta: //Sub Procedure - rc_setTerrainCameraRotationDelta( SETTERRAINCAMERAROTATIONDELTA_ACTOR, SETTERRAINCAMERAROTATIONDELTA_DELTA ); - break; -case FN_SetTerrainPatchLOD: //Sub Procedure - rc_setTerrainPatchLOD( SETTERRAINPATCHLOD_ACTOR, SETTERRAINPATCHLOD_PATCHX, SETTERRAINPATCHLOD_PATCHZ, SETTERRAINPATCHLOD_LOD ); - break; -case FN_CreateActorAnimation: //Number Function - rc_push_num(rc_createActorAnimation( CREATEACTORANIMATION_ACTOR, CREATEACTORANIMATION_START_FRAME, CREATEACTORANIMATION_END_FRAME, CREATEACTORANIMATION_SPEED )); - break; -case FN_SetActorAnimation: //Sub Procedure - rc_setActorAnimation( SETACTORANIMATION_ACTOR, SETACTORANIMATION_ANIMATION, SETACTORANIMATION_NUM_LOOPS ); - break; -case FN_SetActorAnimationSpeed: //Sub Procedure - rc_setActorAnimationSpeed( SETACTORANIMATIONSPEED_ACTOR, SETACTORANIMATIONSPEED_ANIMATION, SETACTORANIMATIONSPEED_SPEED ); - break; -case FN_SetActorAnimationFrames: //Sub Procedure - rc_setActorAnimationFrames( SETACTORANIMATIONFRAMES_ACTOR, SETACTORANIMATIONFRAMES_ANIMATION, SETACTORANIMATIONFRAMES_START_FRAME, SETACTORANIMATIONFRAMES_END_FRAME ); - break; -case FN_GetActorCurrentAnimation: //Number Function - rc_push_num(rc_getActorCurrentAnimation( GETACTORCURRENTANIMATION_ACTOR )); - break; -case FN_GetActorAnimationSpeed: //Number Function - rc_push_num(rc_getActorAnimationSpeed( GETACTORANIMATIONSPEED_ACTOR, GETACTORANIMATIONSPEED_ANIMATION )); - break; -case FN_GetActorAnimationStartFrame: //Number Function - rc_push_num(rc_getActorAnimationStartFrame( GETACTORANIMATIONSTARTFRAME_ACTOR, GETACTORANIMATIONSTARTFRAME_ANIMATION )); - break; -case FN_GetActorAnimationEndFrame: //Number Function - rc_push_num(rc_getActorAnimationEndFrame( GETACTORANIMATIONENDFRAME_ACTOR, GETACTORANIMATIONENDFRAME_ANIMATION )); - break; -case FN_SetActorFrame: //Sub Procedure - rc_setActorFrame( SETACTORFRAME_ACTOR, SETACTORFRAME_FRAME ); - break; -case FN_GetActorFrame: //Number Function - rc_push_num(rc_getActorFrame( GETACTORFRAME_ACTOR )); - break; -case FN_ActorAnimationIsPlaying: //Number Function - rc_push_num(rc_actorAnimationIsPlaying( ACTORANIMATIONISPLAYING_ACTOR )); - break; -case FN_NumActorAnimationLoops: //Number Function - rc_push_num(rc_numActorAnimationLoops( NUMACTORANIMATIONLOOPS_ACTOR )); - break; -case FN_SetActorMD2Animation: //Sub Procedure - rc_setActorMD2Animation( SETACTORMD2ANIMATION_ACTOR, SETACTORMD2ANIMATION_ANIM, SETACTORMD2ANIMATION_NUM_LOOPS ); - break; -case FN_SetActorMD2AnimationByName: //Sub Procedure - rc_setActorMD2AnimationByName( SETACTORMD2ANIMATIONBYNAME_ACTOR, SETACTORMD2ANIMATIONBYNAME_ANIM_NAME$, SETACTORMD2ANIMATIONBYNAME_NUM_LOOPS ); - break; -case FN_DeleteActorAnimation: //Sub Procedure - rc_deleteActorAnimation( DELETEACTORANIMATION_ACTOR, DELETEACTORANIMATION_ANIMATION ); - break; -case FN_createMaterial: //Number Function - rc_push_num(rc_createMaterial( )); - break; -case FN_deleteMaterial: //Sub Procedure - rc_deleteMaterial( DELETEMATERIAL_MATERIAL_ID ); - break; -case FN_setActorMaterial: //Sub Procedure - rc_setActorMaterial( SETACTORMATERIAL_ACTOR, SETACTORMATERIAL_MATERIAL_NUM, SETACTORMATERIAL_MATERIAL_ID ); - break; -case FN_getActorMaterial: //Number Function - rc_push_num(rc_getActorMaterial( GETACTORMATERIAL_ACTOR, GETACTORMATERIAL_MATERIAL_NUM )); - break; -case FN_copyActorMaterial: //Number Function - rc_push_num(rc_copyActorMaterial( COPYACTORMATERIAL_ACTOR, COPYACTORMATERIAL_MATERIAL_NUM )); - break; -case FN_copyMaterial: //Number Function - rc_push_num(rc_copyMaterial( COPYMATERIAL_SMATERIAL_ID )); - break; -case FN_setMaterialTextureCanvas: //Sub Procedure - rc_setMaterialTextureCanvas( SETMATERIALTEXTURECANVAS_MATERIAL_ID, SETMATERIALTEXTURECANVAS_LEVEL, SETMATERIALTEXTURECANVAS_CANVAS_ID ); - break; -case FN_setMaterialAmbientColor: //Sub Procedure - rc_setMaterialAmbientColor( SETMATERIALAMBIENTCOLOR_MATERIAL_ID, SETMATERIALAMBIENTCOLOR_COLOR ); - break; -case FN_getMaterialAmbientColor: //Number Function - rc_push_num(rc_getMaterialAmbientColor( GETMATERIALAMBIENTCOLOR_MATERIAL_ID )); - break; -case FN_setMaterialAntiAliasing: //Sub Procedure - rc_setMaterialAntiAliasing( SETMATERIALANTIALIASING_MATERIAL_ID, SETMATERIALANTIALIASING_AA ); - break; -case FN_getMaterialAntiAliasing: //Number Function - rc_push_num(rc_getMaterialAntiAliasing( GETMATERIALANTIALIASING_MATERIAL_ID )); - break; -case FN_setMaterialBackfaceCulling: //Sub Procedure - rc_setMaterialBackfaceCulling( SETMATERIALBACKFACECULLING_MATERIAL_ID, SETMATERIALBACKFACECULLING_FLAG ); - break; -case FN_getMaterialBackfaceCulling: //Number Function - rc_push_num(rc_getMaterialBackfaceCulling( GETMATERIALBACKFACECULLING_MATERIAL_ID )); - break; -case FN_setMaterialBlendFactor: //Sub Procedure - rc_setMaterialBlendFactor( SETMATERIALBLENDFACTOR_MATERIAL_ID, SETMATERIALBLENDFACTOR_BF ); - break; -case FN_getMaterialBlendFactor: //Number Function - rc_push_num(rc_getMaterialBlendFactor( GETMATERIALBLENDFACTOR_MATERIAL_ID )); - break; -case FN_setMaterialBlendMode: //Sub Procedure - rc_setMaterialBlendMode( SETMATERIALBLENDMODE_MATERIAL_ID, SETMATERIALBLENDMODE_BLEND_MODE ); - break; -case FN_getMaterialBlendMode: //Number Function - rc_push_num(rc_getMaterialBlendMode( GETMATERIALBLENDMODE_MATERIAL_ID )); - break; -case FN_setMaterialColorMask: //Sub Procedure - rc_setMaterialColorMask( SETMATERIALCOLORMASK_MATERIAL_ID, SETMATERIALCOLORMASK_COLOR_MASK ); - break; -case FN_getMaterialColorMask: //Number Function - rc_push_num(rc_getMaterialColorMask( GETMATERIALCOLORMASK_MATERIAL_ID )); - break; -case FN_setMaterialColorMode: //Sub Procedure - rc_setMaterialColorMode( SETMATERIALCOLORMODE_MATERIAL_ID, SETMATERIALCOLORMODE_COLOR_MODE ); - break; -case FN_getMaterialColorMode: //Number Function - rc_push_num(rc_getMaterialColorMode( GETMATERIALCOLORMODE_MATERIAL_ID )); - break; -case FN_setMaterialDiffuseColor: //Sub Procedure - rc_setMaterialDiffuseColor( SETMATERIALDIFFUSECOLOR_MATERIAL_ID, SETMATERIALDIFFUSECOLOR_COLOR ); - break; -case FN_getMaterialDiffuseColor: //Number Function - rc_push_num(rc_getMaterialDiffuseColor( GETMATERIALDIFFUSECOLOR_MATERIAL_ID )); - break; -case FN_setMaterialEmissiveColor: //Sub Procedure - rc_setMaterialEmissiveColor( SETMATERIALEMISSIVECOLOR_MATERIAL_ID, SETMATERIALEMISSIVECOLOR_COLOR ); - break; -case FN_getMaterialEmissiveColor: //Number Function - rc_push_num(rc_getMaterialEmissiveColor( GETMATERIALEMISSIVECOLOR_MATERIAL_ID )); - break; -case FN_setMaterialFog: //Sub Procedure - rc_setMaterialFog( SETMATERIALFOG_MATERIAL_ID, SETMATERIALFOG_FLAG ); - break; -case FN_getMaterialFog: //Number Function - rc_push_num(rc_getMaterialFog( GETMATERIALFOG_MATERIAL_ID )); - break; -case FN_setMaterialFrontfaceCulling: //Sub Procedure - rc_setMaterialFrontfaceCulling( SETMATERIALFRONTFACECULLING_MATERIAL_ID, SETMATERIALFRONTFACECULLING_FLAG ); - break; -case FN_getMaterialFrontfaceCulling: //Number Function - rc_push_num(rc_getMaterialFrontfaceCulling( GETMATERIALFRONTFACECULLING_MATERIAL_ID )); - break; -case FN_setMaterialGouraudShading: //Sub Procedure - rc_setMaterialGouraudShading( SETMATERIALGOURAUDSHADING_MATERIAL_ID, SETMATERIALGOURAUDSHADING_FLAG ); - break; -case FN_materialIsGouraudShaded: //Number Function - rc_push_num(rc_materialIsGouraudShaded( MATERIALISGOURAUDSHADED_MATERIAL_ID )); - break; -case FN_materialIsAplhaBlend: //Number Function - rc_push_num(rc_materialIsAplhaBlend( MATERIALISAPLHABLEND_MATERIAL_ID )); - break; -case FN_materialIsTransparent: //Number Function - rc_push_num(rc_materialIsTransparent( MATERIALISTRANSPARENT_MATERIAL_ID )); - break; -case FN_setMaterialLighting: //Sub Procedure - rc_setMaterialLighting( SETMATERIALLIGHTING_MATERIAL_ID, SETMATERIALLIGHTING_FLAG ); - break; -case FN_materialIsLit: //Number Function - rc_push_num(rc_materialIsLit( MATERIALISLIT_MATERIAL_ID )); - break; -case FN_setMaterialType: //Sub Procedure - rc_setMaterialType( SETMATERIALTYPE_MATERIAL_ID, SETMATERIALTYPE_MAT_TYPE ); - break; -case FN_getMaterialType: //Number Function - rc_push_num(rc_getMaterialType( GETMATERIALTYPE_MATERIAL_ID )); - break; -case FN_setMaterialNormalize: //Sub Procedure - rc_setMaterialNormalize( SETMATERIALNORMALIZE_MATERIAL_ID, SETMATERIALNORMALIZE_FLAG ); - break; -case FN_materialIsNormalized: //Number Function - rc_push_num(rc_materialIsNormalized( MATERIALISNORMALIZED_MATERIAL_ID )); - break; -case FN_setMaterialPointCloud: //Sub Procedure - rc_setMaterialPointCloud( SETMATERIALPOINTCLOUD_MATERIAL_ID, SETMATERIALPOINTCLOUD_FLAG ); - break; -case FN_materialIsPointCloud: //Number Function - rc_push_num(rc_materialIsPointCloud( MATERIALISPOINTCLOUD_MATERIAL_ID )); - break; -case FN_setMaterialFlag: //Sub Procedure - rc_setMaterialFlag( SETMATERIALFLAG_MATERIAL_ID, SETMATERIALFLAG_MATERIAL_FLAG, SETMATERIALFLAG_F_VALUE ); - break; -case FN_getMaterialFlag: //Number Function - rc_push_num(rc_getMaterialFlag( GETMATERIALFLAG_MATERIAL_ID, GETMATERIALFLAG_MATERIAL_FLAG )); - break; -case FN_setMaterialTexture: //Sub Procedure - rc_setMaterialTexture( SETMATERIALTEXTURE_MATERIAL_ID, SETMATERIALTEXTURE_LEVEL, SETMATERIALTEXTURE_IMG_ID ); - break; -case FN_setMaterialShininess: //Sub Procedure - rc_setMaterialShininess( SETMATERIALSHININESS_MATERIAL_ID, SETMATERIALSHININESS_SHININESS ); - break; -case FN_getMaterialShininess: //Number Function - rc_push_num(rc_getMaterialShininess( GETMATERIALSHININESS_MATERIAL_ID )); - break; -case FN_setMaterialSpecularColor: //Sub Procedure - rc_setMaterialSpecularColor( SETMATERIALSPECULARCOLOR_MATERIAL_ID, SETMATERIALSPECULARCOLOR_COLOR ); - break; -case FN_getMaterialSpecularColor: //Number Function - rc_push_num(rc_getMaterialSpecularColor( GETMATERIALSPECULARCOLOR_MATERIAL_ID )); - break; -case FN_setMaterialThickness: //Sub Procedure - rc_setMaterialThickness( SETMATERIALTHICKNESS_MATERIAL_ID, SETMATERIALTHICKNESS_THICKNESS ); - break; -case FN_getMaterialThickness: //Number Function - rc_push_num(rc_getMaterialThickness( GETMATERIALTHICKNESS_MATERIAL_ID )); - break; -case FN_setMaterialWireframe: //Sub Procedure - rc_setMaterialWireframe( SETMATERIALWIREFRAME_MATERIAL_ID, SETMATERIALWIREFRAME_FLAG ); - break; -case FN_materialIsWireframe: //Number Function - rc_push_num(rc_materialIsWireframe( MATERIALISWIREFRAME_MATERIAL_ID )); - break; -case FN_setActorTexture: //Sub Procedure - rc_setActorTexture( SETACTORTEXTURE_ACTOR, SETACTORTEXTURE_LAYER, SETACTORTEXTURE_IMAGE_ID ); - break; -case FN_getActorMaterialCount: //Number Function - rc_push_num(rc_getActorMaterialCount( GETACTORMATERIALCOUNT_ACTOR )); - break; -case FN_setActorMaterialFlag: //Sub Procedure - rc_setActorMaterialFlag( SETACTORMATERIALFLAG_ACTOR, SETACTORMATERIALFLAG_FLAG, SETACTORMATERIALFLAG_FLAG_VALUE ); - break; -case FN_getActorMaterialFlag: //Number Function - rc_push_num(rc_getActorMaterialFlag( GETACTORMATERIALFLAG_ACTOR, GETACTORMATERIALFLAG_MATERIAL, GETACTORMATERIALFLAG_FLAG )); - break; -case FN_setActorMaterialType: //Sub Procedure - rc_setActorMaterialType( SETACTORMATERIALTYPE_ACTOR, SETACTORMATERIALTYPE_MATERIAL_TYPE ); - break; -case FN_getActorMaterialType: //Number Function - rc_push_num(rc_getActorMaterialType( GETACTORMATERIALTYPE_ACTOR, GETACTORMATERIALTYPE_MATERIAL )); - break; -case FN_MaterialExists: //Number Function - rc_push_num(rc_materialExists( MATERIALEXISTS_MATERIAL )); - break; diff --git a/rcbasic_runtime/rc_gfx.h b/rcbasic_runtime/rc_gfx.h index 0d416b7..c55c28f 100644 --- a/rcbasic_runtime/rc_gfx.h +++ b/rcbasic_runtime/rc_gfx.h @@ -27,6 +27,7 @@ #include #include "rc_sprite2D.h" #include "rc_spritelib.h" +#include "rc_tilelib.h" #include using namespace irr; @@ -1019,9 +1020,10 @@ int rc_canvasOpen3D(int vx, int vy, int vw, int vh, int mode) return rc_canvasOpen(vw, vh, vx, vy, vw, vh, mode, RC_CANVAS_TYPE_3D); } -int rc_canvasOpenSpriteLayer(int w, int h, int vx, int vy, int vw, int vh) +int rc_canvasOpenSpriteLayer(int vx, int vy, int vw, int vh) { - return rc_canvasOpen(w, h, vx, vy, vw, vh, 1, RC_CANVAS_TYPE_SPRITE); + //sprite layers are basically infinite since you are just placing objects in the world + return rc_canvasOpen(vw, vh, vx, vy, vw, vh, 1, RC_CANVAS_TYPE_SPRITE); } void rc_setCanvasPhysics2D(int canvas_id, bool flag) @@ -3458,7 +3460,11 @@ bool rc_update() //std::cout << "draw canvas[" << canvas_id << "]" << std::endl; if(rc_canvas[canvas_id].type == RC_CANVAS_TYPE_SPRITE) + { + + src = irr::core::rect( irr::core::vector2d(0, 0), rc_canvas[canvas_id].viewport.dimension); //sprite layers will just offset the sprites in drawSprites() drawSprites(canvas_id); + } draw2DImage2(VideoDriver, rc_canvas[canvas_id].texture, src, dest, irr::core::position2d(0, 0), 0, true, color, screenSize); diff --git a/rcbasic_runtime/rc_spritelib.h b/rcbasic_runtime/rc_spritelib.h index 1b35bf5..6118b14 100644 --- a/rcbasic_runtime/rc_spritelib.h +++ b/rcbasic_runtime/rc_spritelib.h @@ -795,7 +795,8 @@ void drawSprites(int canvas_id) rc_canvas[canvas_id].physics2D.world->Step(step, velocityIterations, positionIterations); //Setting the render target to the current canvas. NOTE: I might change this target to a separate sprite layer later. - VideoDriver->setRenderTarget(rc_canvas[canvas_id].texture, true, false); + VideoDriver->setRenderTarget(rc_canvas[canvas_id].texture, true, true); + VideoDriver->clearBuffers(true, true, true, irr::video::SColor(0,0,0,0)); irr::core::dimension2d src_size; @@ -823,12 +824,38 @@ void drawSprites(int canvas_id) double spr_timer = SDL_GetTicks(); + int offset_x = rc_canvas[canvas_id].offset.X; + int offset_y = rc_canvas[canvas_id].offset.Y; + for(int spr_index = 0; spr_index < rc_canvas[canvas_id].sprite.size(); spr_index++) { rc_sprite2D_obj* sprite = rc_canvas[canvas_id].sprite[spr_index]; if(!sprite->visible) continue; + physics_pos = sprite->physics.body->GetPosition(); + x = (int)physics_pos.x - offset_x; + y = (int)physics_pos.y - offset_y; + + int xf = x + sprite->frame_size.Width; + int yf = y + sprite->frame_size.Height; + + //std::cout << "sprite info: " << xf << ", " << x << ", " << rc_canvas[canvas_id].viewport.dimension.Width << std::endl; + + if( (xf < 0) || (x > ((int)rc_canvas[canvas_id].viewport.dimension.Width)) ) + { + //std::cout << "skip draw[X]: " << spr_index << std::endl; + continue; + } + + if( (yf < 0) || (y > ((int)rc_canvas[canvas_id].viewport.dimension.Height)) ) + { + //std::cout << "skip draw[Y]: " << spr_index << std::endl; + continue; + } + + position.set(x, y); + int img_id = sprite->image_id; if(img_id < 0 || img_id >= rc_image.size()) continue; @@ -869,10 +896,10 @@ void drawSprites(int canvas_id) sourceRect = irr::core::rect( frame_pos, src_size); //sourceRect = irr::core::rect( irr::core::vector2d(0, 0), src_size); - physics_pos = sprite->physics.body->GetPosition(); - x = (int)physics_pos.x; - y = (int)physics_pos.y; - position.set(x, y); + //physics_pos = sprite->physics.body->GetPosition(); + //x = (int)physics_pos.x; + //y = (int)physics_pos.y; + //position.set(x, y); rotationPoint.set(x + (src_size.Width/2), y + (src_size.Height/2)); //TODO: need to account for offset once that is implemented diff --git a/rcbasic_runtime/rc_stdlib.h b/rcbasic_runtime/rc_stdlib.h index 480e70f..0d45899 100755 --- a/rcbasic_runtime/rc_stdlib.h +++ b/rcbasic_runtime/rc_stdlib.h @@ -370,7 +370,7 @@ inline std::string rc_intern_replace(std::string src, std::string tgt, std::stri return src; } -inline string rc_intern_reverse(std::string rpc_string) +inline std::string rc_intern_reverse(std::string rpc_string) { std::string n_str = ""; if(rpc_string.length()==0) @@ -409,7 +409,7 @@ inline std::string rc_intern_rtrim(std::string src) if(i < 0) return ""; - if(src.find_first_not_of(" ") == string::npos) + if(src.find_first_not_of(" ") == std::string::npos) return ""; return utf8_substr(src,0,i+1); @@ -436,7 +436,7 @@ inline std::string rc_intern_stringFromBuffer(double* buffer, size_t buffer_size return (std::string)c_buf; } -inline string rc_intern_stringfill(std::string f_string, size_t n) +inline std::string rc_intern_stringfill(std::string f_string, size_t n) { std::string f = ""; for(size_t i = 0; i < n; i++) @@ -446,21 +446,21 @@ inline string rc_intern_stringfill(std::string f_string, size_t n) inline std::string rc_intern_str(double n) { - stringstream ss; + std::stringstream ss; ss << n; return ss.str(); } inline std::string rc_intern_str_f(double n) { - stringstream ss; + std::stringstream ss; ss << fixed << n; return ss.str(); } inline std::string rc_intern_str_s(double n) { - stringstream ss; + std::stringstream ss; ss << scientific << n; return ss.str(); } @@ -608,7 +608,7 @@ inline double rc_intern_frac(double n) inline std::string rc_intern_hex(uint64_t n) { - stringstream ss; + std::stringstream ss; ss << hex << n; return ss.str(); } @@ -616,7 +616,7 @@ inline std::string rc_intern_hex(uint64_t n) inline double rc_intern_hexInt(std::string n) { uint64_t x; - stringstream ss; + std::stringstream ss; ss << hex << n; ss >> x; return (double)x; diff --git a/rcbasic_runtime/rc_tilelib.h b/rcbasic_runtime/rc_tilelib.h new file mode 100644 index 0000000..44fb271 --- /dev/null +++ b/rcbasic_runtime/rc_tilelib.h @@ -0,0 +1,413 @@ +#ifndef RC_TILELIB_H_INCLUDED +#define RC_TILELIB_H_INCLUDED + +#ifdef RC_ANDROID + #include "SDL.h" +#else + #include +#endif // _IRR_ANDROID_PLATFORM_ + +#include "rc_tilemap.h" +#include "rc_gfx_core.h" + + +int rc_createTileSet(int img_id, int tile_w, int tile_h) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return -1; + + if(!rc_image[img_id].image) + return -1; + + rc_tileset_obj tset; + + tset.active = true; + tset.img_id = img_id; + + tset.tile_width = tile_w; + tset.tile_height = tile_h; + + int num_tiles = ((int)rc_image[img_id].image->getSize().Width / tile_w) * ((int)rc_image[img_id].image->getSize().Height / tile_h); + tset.tiles.resize(num_tiles); + + for(int i = 0; i < tset.tiles.size(); i++) + { + tset.tiles[i].frames.push_back(i); + tset.tiles[i].fps = 0; + tset.tiles[i].frame_swap_time = 0; + tset.tiles[i].frame_start_time = 0; + } + + int tset_id = rc_tileset.size(); + + if(rc_deleted_tileset.size() > 0) + { + tset_id = rc_deleted_tileset[0]; + rc_deleted_tileset.erase(rc_deleted_tileset.begin()); + rc_tileset[tset_id] = tset; + } + else + rc_tileset.push_back(tset); + + return tset_id; +} + +void rc_setTileAnimationLength(int tileset, int base_tile, int num_frames) +{ + if(tileset < 0 || tileset >= rc_tileset.size()) + return; + + if(!rc_tileset[tileset].active) + return; + + if(base_tile < 0 || base_tile >= rc_tileset[tileset].tiles.size()) + return; + + rc_tileset[tileset].tiles[base_tile].frames.resize(num_frames); + rc_tileset[tileset].tiles[base_tile].num_frames = num_frames; +} + +int rc_getTileAnimationLength(int tileset, int base_tile) +{ + if(tileset < 0 || tileset >= rc_tileset.size()) + return 0; + + if(!rc_tileset[tileset].active) + return 0; + + if(base_tile < 0 || base_tile >= rc_tileset[tileset].tiles.size()) + return 0; + + return rc_tileset[tileset].tiles[base_tile].num_frames; +} + +void rc_setTileAnimationFrame(int tileset, int base_tile, int anim_frame, int tile_frame) +{ + if(tileset < 0 || tileset >= rc_tileset.size()) + return; + + if(!rc_tileset[tileset].active) + return; + + if(base_tile < 0 || base_tile >= rc_tileset[tileset].tiles.size()) + return; + + rc_tileset[tileset].tiles[base_tile].frames[anim_frame] = tile_frame; +} + +int rc_getTileAnimationFrame(int tileset, int base_tile, int anim_frame) +{ + if(tileset < 0 || tileset >= rc_tileset.size()) + return -1; + + if(!rc_tileset[tileset].active) + return -1; + + if(base_tile < 0 || base_tile >= rc_tileset[tileset].tiles.size()) + return -1; + + return rc_tileset[tileset].tiles[base_tile].frames[anim_frame]; +} + + +void rc_setTileAnimationSpeed(int tileset, int base_tile, double speed) +{ + if(tileset < 0 || tileset >= rc_tileset.size()) + return; + + if(!rc_tileset[tileset].active) + return; + + if(base_tile < 0 || base_tile >= rc_tileset[tileset].tiles.size()) + return; + + rc_tileset[tileset].tiles[base_tile].fps = speed; + rc_tileset[tileset].tiles[base_tile].frame_swap_time = 1000/speed; +} + +double rc_getTileAnimationSpeed(int tileset, int base_tile) +{ + if(tileset < 0 || tileset >= rc_tileset.size()) + return 0; + + if(!rc_tileset[tileset].active) + return 0; + + if(base_tile < 0 || base_tile >= rc_tileset[tileset].tiles.size()) + return 0; + + return rc_tileset[tileset].tiles[base_tile].fps; +} + + +//--------------------------------------TILEMAP----------------------------------------------- +int rc_createTileMap(int tileset, int widthInTiles, int heightInTiles) +{ + if(tileset < 0 || tileset >= rc_tileset.size()) + return -1; + + if(!rc_tileset[tileset].active) + return -1; + + rc_tilemap_obj tilemap; + + tilemap.active = true; + tilemap.texture = NULL; + tilemap.tileset = tileset; + + tilemap.num_tiles_across = widthInTiles; + tilemap.num_tiles_down = heightInTiles; + + tilemap.rows.resize(heightInTiles); + for(int i = 0; i < tilemap.rows.size(); i++) + { + tilemap.rows[i].tile.resize(widthInTiles); + } + + int tm_id = rc_tilemap.size(); + + if(rc_deleted_tilemap.size() > 0) + { + tm_id = rc_deleted_tilemap[0]; + rc_deleted_tilemap.erase(rc_deleted_tilemap.begin()); + rc_tilemap[tm_id] = tilemap; + } + else + rc_tilemap.push_back(tilemap); + + return tm_id; +} + +void rc_setTileMapSize(int tilemap, int widthInTiles, int heightInTiles) +{ + if(tilemap < 0 || tilemap >= rc_tilemap.size()) + return; + + if(!rc_tilemap[tilemap].active) + return; + + rc_tilemap[tilemap].num_tiles_across = widthInTiles; + rc_tilemap[tilemap].num_tiles_down = heightInTiles; + + rc_tilemap[tilemap].rows.resize(heightInTiles); + for(int i = 0; i < rc_tilemap[tilemap].rows.size(); i++) + { + rc_tilemap[tilemap].rows[i].tile.resize(widthInTiles); + } +} + +void rc_getTileMapSize(int tilemap, double* widthInTiles, double* heightInTiles) +{ + if(tilemap < 0 || tilemap >= rc_tilemap.size()) + return; + + if(!rc_tilemap[tilemap].active) + return; + + *widthInTiles = rc_tilemap[tilemap].num_tiles_across; + *heightInTiles = rc_tilemap[tilemap].num_tiles_down; +} + +void rc_setTile(int tilemap, int tile, int x, int y) +{ + if(tilemap < 0 || tilemap >= rc_tilemap.size()) + return; + + if(!rc_tilemap[tilemap].active) + return; + + int tileset = rc_tilemap[tilemap].tileset; + + //if tilemap exists, then its safe to assume tileset is in range since tilemap can't be created if its not + if(!rc_tileset[tileset].active) + return; + + int num_tset_tiles = rc_tileset[tileset].tiles.size(); + + if(tile < 0 || tile >= num_tset_tiles) + return; + + if( (x < 0 || x >= rc_tilemap[tilemap].num_tiles_across) || (y < 0 || y >= rc_tilemap[tilemap].num_tiles_down) ) + return; + + rc_tilemap[tilemap].rows[y].tile[x] = tile; +} + +int rc_getTile(int tilemap, int x, int y) +{ + if(tilemap < 0 || tilemap >= rc_tilemap.size()) + return -1; + + if(!rc_tilemap[tilemap].active) + return -1; + + if( (x < 0 || x >= rc_tilemap[tilemap].num_tiles_across) || (y < 0 || y >= rc_tilemap[tilemap].num_tiles_down) ) + return -1; + + return rc_tilemap[tilemap].rows[y].tile[x]; +} + +void rc_fillTile(int tilemap, int tile, int x, int y, int widthInTiles, int heightInTiles) +{ + if(tilemap < 0 || tilemap >= rc_tilemap.size()) + return; + + if(!rc_tilemap[tilemap].active) + return; + + int tileset = rc_tilemap[tilemap].tileset; + + //if tilemap exists, then its safe to assume tileset is in range since tilemap can't be created if its not + if(!rc_tileset[tileset].active) + return; + + int num_tset_tiles = rc_tileset[tileset].tiles.size(); + + if(tile < 0 || tile >= num_tset_tiles) + return; + + if( (x < 0 || x >= rc_tilemap[tilemap].num_tiles_across) || (y < 0 || y >= rc_tilemap[tilemap].num_tiles_down) ) + return; + + if( ( (x+widthInTiles) < 0 || (x+widthInTiles) > rc_tilemap[tilemap].num_tiles_across) || ( (y+heightInTiles) < 0 || (y+heightInTiles) > rc_tilemap[tilemap].num_tiles_down) ) + return; + + for(int iy = 0; iy < heightInTiles; iy++) + for(int ix = 0; ix < widthInTiles; ix++) + rc_tilemap[tilemap].rows[y+iy].tile[x+ix] = tile; +} + +void getTileInTileset(int tileset, int tile, int* x, int* y) +{ + int img_w = rc_image[ rc_tileset[tileset].img_id ].image->getSize().Width; + int img_h = rc_image[ rc_tileset[tileset].img_id ].image->getSize().Height; + int tile_w = rc_tileset[tileset].tile_width; + int tile_h = rc_tileset[tileset].tile_height; + int widthInTiles = img_w / tile_w; + + *x = (tile%widthInTiles) * tile_w; + *y = (tile/widthInTiles) * tile_h; +} + +int getNumTilesInTileset(int tileset) +{ + int img_w = rc_image[ rc_tileset[tileset].img_id ].image->getSize().Width; + int img_h = rc_image[ rc_tileset[tileset].img_id ].image->getSize().Height; + int tile_w = rc_tileset[tileset].tile_width; + int tile_h = rc_tileset[tileset].tile_height; + int widthInTiles = img_w / tile_w; + int heightInTiles = img_h / tile_h; + + return (widthInTiles*heightInTiles); +} + +void updateTileset(int tileset) +{ + Uint32 current_time_ms = SDL_GetTicks(); + for(int i = 0; i < rc_tileset[tileset].tiles.size(); i++) + { + if( (current_time_ms-rc_tileset[tileset].tiles[i].frame_start_time) >= rc_tileset[tileset].tiles[i].frame_swap_time ) + { + rc_tileset[tileset].tiles[i].current_frame++; + if(rc_tileset[tileset].tiles[i].current_frame >= rc_tileset[tileset].tiles[i].num_frames) + rc_tileset[tileset].tiles[i].current_frame = 0; + + rc_tileset[tileset].tiles[i].frame_start_time = current_time_ms; + } + } +} + +void rc_drawTileMap(int tilemap, int x, int y, int w, int h, int offset_x, int offset_y) +{ + if(tilemap < 0 || tilemap >= rc_tilemap.size()) + return; + + if(!rc_tilemap[tilemap].active) + return; + + if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size()) + return; + + if(!rc_canvas[rc_active_canvas].type == RC_CANVAS_TYPE_2D) + return; + + if(!rc_canvas[rc_active_canvas].texture) + return; + + rc_tilemap[tilemap].texture = VideoDriver->addRenderTargetTexture(irr::core::dimension2d(w,h), "rt", ECF_A8R8G8B8); + VideoDriver->setRenderTarget(rc_tilemap[tilemap].texture, true, true, irr::video::SColor(0,0,0,0)); + + + int tileset = rc_tilemap[tilemap].tileset; + + updateTileset(tileset); + + int vp_widthInTiles = w/rc_tileset[tileset].tile_width; + int vp_heightInTiles = h/rc_tileset[tileset].tile_height; + + int tset_img_id = rc_tileset[tileset].img_id; + int src_w = rc_tileset[tileset].tile_width; + int src_h = rc_tileset[tileset].tile_height; + + int tile_offset_x = offset_x / src_w; + int tile_offset_y = offset_y / src_h; + + int screen_offset_x = 0 - (offset_x % src_w); + int screen_offset_y = 0 - (offset_y % src_h); + + int num_tiles_in_tset = getNumTilesInTileset(tileset); + + for(int iy = 0; iy < vp_heightInTiles+1; iy++) + { + for(int ix = 0; ix < vp_widthInTiles+1; ix++) + { + int current_frame = 0; //TODO: ADD TIMING + int map_x = tile_offset_x + ix; + int map_y = tile_offset_y + iy; + + if(map_x < 0 || map_x >= rc_tilemap[tilemap].num_tiles_across || map_y < 0 || map_y >= rc_tilemap[tilemap].num_tiles_down) + continue; + + int tile = rc_tilemap[tilemap].rows[map_y].tile[map_x]; + + if(tile < 0 || tile >= num_tiles_in_tset) + continue; + + current_frame = rc_tileset[tileset].tiles[tile].current_frame; + tile = rc_tileset[tileset].tiles[tile].frames[current_frame]; + + if(tile < 0 || tile >= num_tiles_in_tset) + continue; + + int src_x = 0; + int src_y = 0; + getTileInTileset(tileset, tile, &src_x, &src_y); + irr::core::rect sourceRect( irr::core::vector2d(src_x, src_y), irr::core::dimension2d(src_w, src_h)); + + irr::video::SColor color(rc_image[tset_img_id].alpha, + rc_image[tset_img_id].color_mod.getRed(), + rc_image[tset_img_id].color_mod.getGreen(), + rc_image[tset_img_id].color_mod.getBlue()); + + int dst_x = screen_offset_x + (ix*src_w); + int dst_y = screen_offset_y + (iy*src_h); + irr::core::rect dest( irr::core::vector2d(dst_x, dst_y), irr::core::dimension2d(src_w, src_h)); + + + VideoDriver->draw2DImage(rc_image[tset_img_id].image, dest, sourceRect, 0, 0, true); + } + } + + VideoDriver->setRenderTarget(rc_canvas[rc_active_canvas].texture, false, false); + + irr::core::rect sourceRect( irr::core::vector2d(0, 0), irr::core::dimension2d(w, h)); + irr::core::rect dest( irr::core::vector2d(x, y), irr::core::dimension2d(w, h)); + + VideoDriver->draw2DImage(rc_tilemap[tilemap].texture, dest, sourceRect, 0, 0, false); + VideoDriver->removeTexture(rc_tilemap[tilemap].texture); + rc_tilemap[tilemap].texture = NULL; + //draw2DImage(VideoDriver, rc_tilemap[tilemap].texture, src, pos,) +} + + +#endif // RC_TILELIB_H_INCLUDED diff --git a/rcbasic_runtime/rc_tilemap.h b/rcbasic_runtime/rc_tilemap.h new file mode 100644 index 0000000..cf11a65 --- /dev/null +++ b/rcbasic_runtime/rc_tilemap.h @@ -0,0 +1,57 @@ +#ifndef RC_TILEMAP_H_INCLUDED +#define RC_TILEMAP_H_INCLUDED + +#include +#include + +struct rc_tile_obj +{ + int id; + + double fps; + int num_frames; + int current_frame; + std::vector frames; + + Uint32 frame_start_time; + Uint32 frame_swap_time; +}; + +struct rc_tileset_obj +{ + bool active; + + int img_id; + + int tile_width; + int tile_height; + + std::vector tiles; +}; + +struct rc_tilemap_row_obj +{ + std::vector tile; +}; + +struct rc_tilemap_obj +{ + bool active; + + int tileset; + irr::video::ITexture* texture; + + int num_tiles_across; + int num_tiles_down; + + std::vector rows; +}; + +std::vector rc_tileset; +std::vector rc_tilemap; + +std::vector rc_deleted_tileset; +std::vector rc_deleted_tilemap; + + +#endif // RC_TILEMAP_H_INCLUDED